How to install UT2004 DEMO
This tutorial is for Fiber-Hosting customers or anyone else who wants to install Unreal Tournament 2004 demo. The game version in this demo is 3334. This version of the game can be downloaded at
Downloads.com or here at Fiber Hosting.
- Downloading the game
- wget www.fiber-hosting.com/ut2004-lnx-demo3334.run
- Or you can use Downloads.com
- Installing the game
- chmod +x ut2004-lnx-demo3334.run
- ./ut2004-lnx-demo3334.run –target /home/YOURHOMEDIR/UTFOLDER
- cd /YOURDIR/UTFOLDER
- tar jxvf ut2004demo.tar.bz2
- tar jxvf linux-x86.tar.bz2 (For non Fiber Hosting customers that have amd use line below)
- tar jxvf linux-amd64.tar.bz2 ( DO NOT use if you are a Fiber Hosting customer)
- cd /home/YOURHOMEDIR/UTFOLDER/System
- pico UT2004.ini (if you do not have this file you can download a sample here)
- Below are the lines to edit (note that you will have to search through the ini file) change everything in CAPS.
Port=PORTYOUWANTTOUSE [Engine.GameReplicationInfo] ServerName=NAME OF THE SERVER YOU WANT ShortName=SHORT NAME OF THE SERVER YOU WANT ServerRegion=0 AdminName=INPUT ADMIN NAME AdminEmail=ADMIN EMAIL MessageOfTheDay=MESSAGE OF THE DAY [UWeb.WebServer] bEnabled=True <--ENABLES WEBADMIN FOR THE GAME "False" Disables it ListenPort=8080 <--CHANGE PORT FOR WEB SERVER [Engine.AccessControl] AdminPassword=CHANGE PASSWORD GamePassword= <-- Password to make game server private
10. Close out of the text editor and save
- Running UT2004 Demo
- screen -S ut04
- cd UTFOLDER/Systems
- ./ucc-bin server ons-torlan ini=UT2004.ini
- ctrl+a+d to detach from the screen
- screen -x ut04 to reattach
Detaching screen will allow you to keep the game server running while disconnected from the server
To access your game webmin use http://IPOFSERVER:PORTUADDED
- UT2004 SAMPLE CONF FILE
[URL] Protocol=ut2004 ProtocolDescription=Unreal Protocol Name=Player Map=Index.ut2 LocalMap=NvidiaLogo.ut2 NetBrowseMap=Entry.ut2 Host= Portal= MapExt=ut2 EXEName=UT2004.exe SaveExt=usa Port=CHANGEME Class=Engine.Pawn Character=Gorge [FirstRun] FirstRun=0 [Engine.Engine] RenderDevice=D3DDrv.D3DRenderDevice ;RenderDevice=D3D9Drv.D3D9RenderDevice ;RenderDevice=Engine.NullRenderDevice ;RenderDevice=OpenGLDrv.OpenGLRenderDevice ;RenderDevice=PixoDrv.PixoRenderDevice AudioDevice=ALAudio.ALAudioSubsystem NetworkDevice=IpDrv.TcpNetDriver DemoRecordingDevice=Engine.DemoRecDriver Console=XInterface.ExtendedConsole GUIController=GUI2K4.UT2K4GUIController StreamPlayer=Engine.StreamInteraction Language=int Product=UT2004 GameEngine=Engine.GameEngine EditorEngine=Editor.EditorEngine DefaultGame=XGame.XDeathmatch DefaultServerGame=XGame.XDeathmatch ViewportManager=WinDrv.WindowsClient ;ViewportManager=SDLDrv.SDLClient Render=Render.Render Input=Engine.Input Canvas=Engine.Canvas DetectedVideoMemory=0 [Core.System] PurgeCacheDays=30 SavePath=../Save CachePath=../Cache CacheExt=.uxx CacheRecordPath=../System/*.ucl MusicPath=../Music SpeechPath=../Speech Paths=../System/*.u Paths=../Maps/*.ut2 Paths=../Textures/*.utx Paths=../Sounds/*.uax Paths=../Music/*.umx Paths=../StaticMeshes/*.usx Paths=../Animations/*.ukx Paths=../Saves/*.uvx Suppress=DevLoad Suppress=DevSave Suppress=DevNetTraffic Suppress=DevGarbage Suppress=DevKill Suppress=DevReplace Suppress=DevCompile Suppress=DevBind Suppress=DevBsp Suppress=DevNet Suppress=DevKarma Suppress=RecordCache Suppress=MapVoteDebug suppress=MapVote Suppress=Init Suppress=VoiceChat Suppress=ChatManager Suppress=Timer [Engine.GameEngine] CacheSizeMegs=32 UseSound=True VoIPAllowVAD=False ServerActors=IpDrv.MasterServerUplink ServerActors=UWeb.WebServer ServerPackages=Core ServerPackages=Engine ServerPackages=Fire ServerPackages=Editor ServerPackages=IpDrv ServerPackages=UWeb ServerPackages=GamePlay ServerPackages=UnrealGame ServerPackages=XEffects ServerPackages=XPickups ServerPackages=XGame ServerPackages=XWeapons ServerPackages=XInterface ServerPackages=Vehicles ServerPackages=TeamSymbols_UT2003 ServerPackages=UTClassic ServerPackages=UT2k4Assault ServerPackages=Onslaught ServerPackages=GUI2K4 ServerPackages=xVoting UseStaticMeshBatching=True ColorHighDetailMeshes=False ColorSlowCollisionMeshes=False ColorNoCollisionMeshes=False ColorWorldTextures=False ColorPlayerAndWeaponTextures=False ColorInterfaceTextures=False MainMenuClass=GUI2K4.UT2K4MainMenu ConnectingMenuClass=GUI2K4.UT2K4ServerLoading DisconnectMenuClass=GUI2K4.UT2K4DisconnectOptionPage LoadingClass=GUI2K4.UT2K4SP_LadderLoading SinglePlayerMenuClass=GUI2K4.UT2K4SP_Main [WinDrv.WindowsClient] WindowedViewportX=640 WindowedViewportY=480 FullscreenViewportX=800 FullscreenViewportY=600 MenuViewportX=640 MenuViewportY=480 Brightness=0.800000 Contrast=0.700000 Gamma=0.800000 UseJoystick=False CaptureMouse=True StartupFullscreen=True ScreenFlashes=True NoLighting=False MinDesiredFrameRate=35.000000 AnimMeshDynamicLOD=0.0 Decals=True Coronas=True DecoLayers=True Projectors=True NoDynamicLights=False ReportDynamicUploads=False TextureDetailInterface=Normal TextureDetailTerrain=Normal TextureDetailWeaponSkin=Normal TextureDetailPlayerSkin=Normal TextureDetailWorld=Normal TextureDetailRenderMap=Normal TextureDetailLightmap=UltraHigh TextureMaxLOD=0 TextureMinLOD=0 NoFractalAnim=False ScaleHUDX=0.0 MouseXMultiplier=1.000 MouseYMultiplier=1.000 UseSpeechRecognition=True WeatherEffects=True DrawDistanceLOD=1.0 [SDLDrv.SDLClient] WindowedViewportX=640 WindowedViewportY=480 FullscreenViewportX=800 FullscreenViewportY=600 MenuViewportX=640 MenuViewportY=480 Brightness=0.800000 Contrast=0.700000 Gamma=0.800000 UseJoystick=False JoystickNumber=0 IgnoreHat=False JoystickHatNumber=0 CaptureMouse=True StartupFullscreen=True ScreenFlashes=True NoLighting=False MinDesiredFrameRate=35.000000 AnimMeshDynamicLOD=0.0 Decals=True Coronas=True DecoLayers=True Projectors=True NoDynamicLights=False ReportDynamicUploads=False TextureDetailInterface=Normal TextureDetailTerrain=Normal TextureDetailWeaponSkin=Normal TextureDetailPlayerSkin=Normal TextureDetailWorld=Normal TextureDetailRenderMap=Normal TextureDetailLightmap=UltraHigh TextureMaxLOD=0 TextureMinLOD=0 NoFractalAnim=False WeatherEffects=True DrawDistanceLOD=1.0 [Engine.Player] ConfiguredInternetSpeed=2600 ConfiguredLanSpeed=20000 [ALAudio.ALAudioSubsystem] UseEAX=False Use3DSound=False UseDefaultDriver=True CompatibilityMode=False MaxEAXVersion=255 UsePrecache=True ReverseStereo=False Channels=32 MusicVolume=0.4 AmbientVolume=0.5 SoundVolume=1.0 VoiceVolume=2.5 VolumeScaleRec=0.1 DopplerFactor=1.0 Rolloff=0.5 TimeBetweenHWUpdates=15 DisablePitch=False LowQualitySound=False UseVoIP=True UseVAD=False UseSpatializedVoice=False SpatializedVoiceRadius=100000 EnhancedDenoiser=False LocalZOffset=0.0 [IpDrv.TcpNetDriver] AllowDownloads=True ConnectionTimeout=20.0 InitialConnectTimeout=200.0 AckTimeout=1.0 KeepAliveTime=0.2 MaxClientRate=15000 MaxInternetClientRate=10000 SimLatency=0 RelevantTimeout=5.0 SpawnPrioritySeconds=1.0 ServerTravelPause=4.0 NetServerMaxTickRate=20 LanServerMaxTickRate=35 DownloadManagers=IpDrv.HTTPDownload DownloadManagers=Engine.ChannelDownload AllowPlayerPortUnreach=False LogPortUnreach=False MaxConnPerIPPerMinute=5 LogMaxConnPerIPPerMin=False [IpServer.UdpServerQuery] GameName=ut2 [IpDrv.MasterServerUplink] DoUplink=True UplinkToGamespy=True SendStats=True ServerBehindNAT=False [IpDrv.MasterServerLink] LANPort=11777 LANServerPort=10777 CurrentMasterServer=0 MasterServerPort[0]=28902 MasterServerAddress[0]=ut2004master1.epicgames.com MasterServerPort[1]=28902 MasterServerAddress[1]=ut2004master2.epicgames.com MasterServerPort[2]=0 MasterServerAddress[2]= MasterServerPort[3]=0 MasterServerAddress[3]= MasterServerPort[4]=0 MasterServerAddress[4]= [IpDrv.HTTPDownload] RedirectToURL= ProxyServerHost= ProxyServerPort=3128 UseCompression=True [Engine.DemoRecDriver] AllowDownloads=True DemoSpectatorClass=UnrealGame.DemoRecSpectator MaxClientRate=25000 ConnectionTimeout=15.0 InitialConnectTimeout=200.0 AckTimeout=1.0 KeepAliveTime=1.0 SimLatency=0 RelevantTimeout=5.0 SpawnPrioritySeconds=1.0 ServerTravelPause=4.0 NetServerMaxTickRate=30 LanServerMaxTickRate=30 [Engine.GameReplicationInfo] ServerName=NAME OF SERVER ShortName=SHORTNAME OF SERVER ServerRegion=0 AdminName=ADMIN NAME AdminEmail=ADMIN EMAIL MessageOfTheDay=Display message [D3DDrv.D3DRenderDevice] DetailTextures=True HighDetailActors=True SuperHighDetailActors=True UsePrecaching=True UseTrilinear=True AdapterNumber=-1 ReduceMouseLag=True UseTripleBuffering=False UseHardwareTL=True UseHardwareVS=True UseCubemaps=True DesiredRefreshRate=60 UseCompressedLightmaps=True UseStencil=False Use16bit=False Use16bitTextures=False MaxPixelShaderVersion=255 UseVSync=False LevelOfAnisotropy=1 DetailTexMipBias=0.0 DefaultTexMipBias=-0.5 UseNPatches=False TesselationFactor=1.0 CheckForOverflow=False AvoidHitches=False OverrideDesktopRefreshRate=False ReportUnusedTextures=False [D3D9Drv.D3D9RenderDevice] DetailTextures=True HighDetailActors=True SuperHighDetailActors=True UsePrecaching=True UseTrilinear=True AdapterNumber=-1 ReduceMouseLag=True UseTripleBuffering=False UseHardwareTL=True UseHardwareVS=True UseCubemaps=True DesiredRefreshRate=60 UseCompressedLightmaps=True UseStencil=False Use16bit=False Use16bitTextures=False MaxPixelShaderVersion=255 UseVSync=False LevelOfAnisotropy=1 DetailTexMipBias=0.0 DefaultTexMipBias=-0.5 UseNPatches=False TesselationFactor=1.0 CheckForOverflow=False OverrideDesktopRefreshRate=False [OpenGLDrv.OpenGLRenderDevice] DetailTextures=True HighDetailActors=True SuperHighDetailActors=True UsePrecaching=True UseCompressedLightmaps=True UseTrilinear=True UseStencil=False MaxTextureUnits=8 VARSize=32 ReduceMouseLag=True UseVSync=False LevelOfAnisotropy=1 DetailTexMipBias=0.0 DefaultTexMipBias=-0.5 UseVBO=True UseVSync=False AppleVA=1 [PixoDrv.PixoRenderDevice] FogEnabled=True Zoom2X=True SimpleMaterials=True LimitTextureSize=True LowQualityTerrain=True TerrainLOD=10 SkyboxHack=True FilterQuality3D=1 FilterQualityHUD=1 HighDetailActors=False SuperHighDetailActors=False ReduceMouseLag=False DesiredRefreshRate=0 DetailTexMipBias=0.000000 Use16bitTextures=False Use16bit=True UseStencil=False UseCompressedLightmaps=False DetailTextures=False UsePrecaching=True [Engine.NullRenderDevice] DetailTextures=True HighDetailActors=True SuperHighDetailActors=True UsePrecaching=True UseCompressedLightmaps=True UseStencil=False [Editor.EditorEngine] UseSound=True CacheSizeMegs=32 GridEnabled=True SnapVertices=False SnapDistance=1.000000 GridSize=(X=4.000000,Y=4.000000,Z=4.000000) RotGridEnabled=True RotGridSize=(Pitch=1024,Yaw=1024,Roll=1024) GameCommandLine=-log FovAngleDegrees=90.000000 GodMode=True AutoSave=True AutoSaveTimeMinutes=5 AutoSaveIndex=6 UseAxisIndicator=True MatineeCurveDetail=0.1 ShowIntWarnings=False UseSizingBox=True RenderDevice=D3DDrv.D3DRenderDevice AudioDevice=ALAudio.ALAudioSubsystem NetworkDevice=IpDrv.TcpNetDriver DemoRecordingDevice=Engine.DemoRecDriver Console=Engine.Console Language=ute AlwaysShowTerrain=False UseActorRotationGizmo=False LoadEntirePackageWhenSaving=0 EditPackages=Core EditPackages=Engine EditPackages=Fire EditPackages=Editor EditPackages=UnrealEd EditPackages=IpDrv EditPackages=UWeb EditPackages=GamePlay EditPackages=UnrealGame EditPackages=XGame_rc EditPackages=XEffects EditPackages=XWeapons_rc EditPackages=XPickups_rc EditPackages=XPickups EditPackages=XGame EditPackages=XWeapons EditPackages=XInterface EditPackages=XAdmin EditPackages=XWebAdmin EditPackages=SampleSkin EditPackages=Vehicles EditPackages=BonusPack EditPackages=SkaarjPack_rc EditPackages=SkaarjPack EditPackages=OggPlayer EditPackages=UTClassic EditPackages=UT2k4Assault EditPackages=Onslaught EditPackages=GUI2K4 EditPackages=xVoting CutdownPackages=Core CutdownPackages=Editor CutdownPackages=Engine CutdownPackages=Fire CutdownPackages=GamePlay CutdownPackages=GUI2K4 CutdownPackages=IpDrv CutdownPackages=OggPlayer CutdownPackages=UT2K4Assault CutdownPackages=Onslaught CutdownPackages=UnrealEd CutdownPackages=UnrealGame CutdownPackages=UTClassic CutdownPackages=UWeb CutdownPackages=Vehicles CutdownPackages=XAdmin CutdownPackages=XEffects CutdownPackages=XGame CutdownPackages=XGame_rc CutdownPackages=XInterface CutdownPackages=XPickups CutdownPackages=XPickups_rc CutdownPackages=XWeapons CutdownPackages=XWeapons_rc CutdownPackages=XWebAdmin CutdownPackages=XVoting [UWeb.WebServer] Applications[0]=xWebAdmin.UTServerAdmin ApplicationPaths[0]=/ServerAdmin Applications[1]=xWebAdmin.UTImageServer ApplicationPaths[1]=/images bEnabled=True <---OR "False" if you dont want admin ListenPort=8080 <--LISTEN PORT FOR ADMIN [Engine.Console] ConsoleHotKey=9 TimePerTitle=30.0 TimePerDemo=60.0 TimePerSoak=3600.0 TimeTooIdle=60.0 DemoLevels[0]=DM-Curse3 DemoLevels[1]=DM-Antalus DemoLevels[2]=CTF-Chrome DemoLevels[3]=DOM-SunTemple DemoLevels[4]=BR-Endagra [Engine.AccessControl] AdminPassword=CHANGEPASS GamePassword= <----IF YOU WANT GAME TO BE PRIV bBanByID=True [Engine.GameInfo] GoreLevel=2 MaxSpectators=0 MaxPlayers=8 AutoAim=1.000000 GameSpeed=1.000000 bChangeLevels=True bStartUpLocked=False bNoBots=False bAttractAlwaysFirstPerson=False NumMusicFiles=13 bEnableStatLogging=false HUDType=Engine.Hud MaxLives=0 TimeLimit=0 GoalScore=0 GameStatsClass=IpDrv.MasterServerGameStats SecurityClass=UnrealGame.UnrealSecurity AccessControlClass=Engine.AccessControl VotingHandlerType=xVoting.xVotingHandler [Engine.AmbientSound] AmbientVolume=0.25 [Engine.LevelInfo] PhysicsDetailLevel=PDL_Medium MeshLODDetailLevel=MDL_Medium bLowSoundDetail=False DecalStayScale=1.0 bNeverPrecache=false [XInterface.ExtendedConsole] ConsoleHotKey=192 NeedPasswordMenuClass=GUI2K4.UT2K4GetPassword bSpeechMenuUseMouseWheel=True bSpeechMenuUseLetters=False SMOriginX=0.01 SMOriginY=0.3 LetterKeys[0]=IK_Q LetterKeys[1]=IK_W LetterKeys[2]=IK_E LetterKeys[3]=IK_R LetterKeys[4]=IK_A LetterKeys[5]=IK_S LetterKeys[6]=IK_D LetterKeys[7]=IK_F LetterKeys[8]=IK_Z LetterKeys[9]=IK_X MusicManagerClassName=GUI2K4.StreamPlayer [XGame.xDeathMatch] HUDType=XInterface.HudBDeathMatch MaxLives=0 TimeLimit=20 GoalScore=25 bTeamScoreRound=False bPlayersMustBeReady=False bAllowTaunts=True bForceRespawn=True bWeaponStay=true [XGame.xTeamGame] HUDType=XInterface.HudBTeamDeathMatch MaxLives=0 TimeLimit=20 GoalScore=60 bTeamScoreRound=False bPlayersMustBeReady=False bAllowTaunts=True FriendlyFireScale=0 MaxTeamSize=8 bForceRespawn=True bWeaponStay=true [XGame.xCTFGame] HUDType=XInterface.HudBCaptureTheFlag MaxLives=0 TimeLimit=20 GoalScore=3 bTeamScoreRound=False bPlayersMustBeReady=False bAllowTaunts=True FriendlyFireScale=0 MaxTeamSize=8 bForceRespawn=True bWeaponStay=true [XGame.xDoubleDom] HUDType=XInterface.HudBDoubleDomination MaxLives=0 TimeLimit=20 GoalScore=3 bTeamScoreRound=False bPlayersMustBeReady=False bAllowTaunts=True TimeToScore=10 TimeDisabled=10 FriendlyFireScale=0 MaxTeamSize=16 bForceRespawn=False bWeaponStay=true [XGame.xBombingRun] HUDType=XInterface.HudBBombingRun MaxLives=0 TimeLimit=20 GoalScore=15 bTeamScoreRound=False bPlayersMustBeReady=False bAllowTaunts=True FriendlyFireScale=0 MaxTeamSize=16 bForceRespawn=False bWeaponStay=true [XInterface.MapListDeathMatch] MapNum=0 Maps=DM-Rankin [XInterface.MapListTeamDeathMatch] MapNum=0 Maps=DM-Rankin [XInterface.MapListCaptureTheFlag] MapNum=0 Maps=CTF-BridgeOfFate [XInterface.MapListBombingRun] MapNum=0 Maps=BR-Colossus [Onslaught.ONSMapListOnslaught] Maps=ONS-TORLAN [UT2K4Assault.ASMapList] Maps=AS-CONVOY [UnrealGame.UnrealMPGameInfo] bPreloadAllSkins=false [UnrealGame.DMMutator] bBrightSkins=True [UnrealGame.Deathmatch] bNeverShieldStack=true [Engine.BroadcastHandler] bMuteSpectators=false bPartitionSpectators=false [xVoting.xVotingHandler] VoteTimeLimit=70 ScoreBoardDelay=10 bAutoOpen=True MidGameVotePercent=50 bScoreMode=False bAccumulationMode=False bEliminationMode=False MinMapCount=2 MapVoteHistoryType=xVoting.MapVoteHistory_INI RepeatLimit=4 DefaultGameConfig=0 bDefaultToCurrentGameType=True bMapVote=False bKickVote=False bMatchSetup=False KickPercent=51 bAnonymousKicking=True MapListLoaderType=xVoting.DefaultMapListLoader ServerNumber=0 GameConfig=(GameClass="XGame.xDeathMatch",Prefix="DM",Acronym="DM",GameName="DeathMatch",Mutators="",Options="") GameConfig=(GameClass="XGame.xTeamGame",Prefix="DM",Acronym="TDM",GameName="Team DeathMatch",Mutators="",Options="") GameConfig=(GameClass="XGame.xCTFGame",Prefix="CTF",Acronym="CTF",GameName="Capture the Flag",Mutators="",Options="") GameConfig=(GameClass="XGame.xBombingRun",Prefix="BR",Acronym="BR",GameName="Bombing Run",Mutators="",Options="") GameConfig=(GameClass="UT2k4Assault.ASGameInfo",Prefix="AS",Acronym="AS",GameName="Assault",Mutators="",Options="") GameConfig=(GameClass="Onslaught.ONSOnslaughtGame",Prefix="ONS",Acronym="ONS",GameName="Onslaught",Mutators="",Options="") [xVoting.DefaultMapListLoader] bUseMapList=False MapNamePrefixes=DM,DOM,CTF,BR,AS,ONS [UnrealGame.UnrealPlayer] CustomStatusAnnouncerPack=UnrealGame.FemaleAnnouncer CustomRewardAnnouncerPack=UnrealGame.MaleAnnouncer [GUI2K4.UT2K4ServerLoading] Backgrounds=2k4Menus.Loading.loadingscreen1 Backgrounds=2k4Menus.Loading.loadingscreen2 Backgrounds=2k4Menus.Loading.loadingscreen2 Backgrounds=2k4Menus.Loading.loadingscreen4 [DefaultTDM MaplistRecord] DefaultTitle=Default TDM DefaultGameType=XGame.xTeamGame DefaultActive=0 DefaultMaps=DM-Rankin [Engine.MaplistManager] Games=(GameType="XGame.xTeamGame",ActiveMaplist="Default TDM") Games=(GameType="XGame.xDeathMatch",ActiveMaplist="Default DM") Games=(GameType="XGame.xCTFGame",ActiveMaplist="Default CTF") Games=(GameType="XGame.xBombingRun",ActiveMaplist="Default BR") Games=(GameType="UT2k4Assault.ASGameInfo",ActiveMaplist="Default AS") Games=(GameType="Onslaught.ONSOnslaughtGame",ActiveMaplist="Default ONS") [DefaultDM MaplistRecord] DefaultTitle=Default DM DefaultGameType=XGame.xDeathMatch DefaultActive=0 DefaultMaps=DM-Rankin [DefaultCTF MaplistRecord] DefaultTitle=Default CTF DefaultGameType=XGame.xCTFGame DefaultActive=0 DefaultMaps=CTF-BridgeOfFate [DefaultBR MaplistRecord] DefaultTitle=Default BR DefaultGameType=XGame.xBombingRun DefaultActive=0 DefaultMaps=BR-Colossus [DefaultAS MaplistRecord] DefaultTitle=Default AS DefaultGameType=UT2k4Assault.ASGameInfo DefaultActive=0 DefaultMaps=AS-CONVOY [DefaultONS MaplistRecord] DefaultTitle=Default ONS DefaultGameType=Onslaught.ONSOnslaughtGame DefaultActive=0 DefaultMaps=ONS-TORLAN [IpDrv.UdpGamespyQuery] MinNetVer=0 OldQueryPortNumber=7787 bRestartServerOnPortSwap=True bDebugPortSwaps=True
This concludes the tutorial on how to install and run UT2004 on a linux server.
Tags: UT2004 Demo on linux











![Validate my RSS feed [Valid RSS]](http://fiber-hosting.com/docs/valid-rss.png)