Title | Chrome Dedicated Server 1.2.2.0ww Server Setup guide Author | Fallout Date | 31.08.2006 Version | 2.0 Modified | 10.04.2008 FileName | ch-serversetup.txt Email | Falloutdc@gmail(remove-me!).com Email2 | falout1@hotmail(remove-me!).com Web | http://www.chrome.6x.to Contributors: BOE-Bumper-USA - Was Reading through my bad english and fixed some typos BOS Adriano - Translated lots of polish source comments into english ====================================================================== TABLE OF CONTENTS ====================================================================== -1.0 # UPDATES -1.1 # FAQ -1.2 # INTRODUCION -1.3 # PREREQUISITES -1.4 # REQUIREMENTS -1.5 # CONFIG FILES ---2.0 # CREATE A PROFILE ----3.0 # MAPROTATION ----3.1 # CUSTOM MAP SETTINGS ----3.2 # CUSTOM MAP SETTINGS DESCRIPTION ----3.3 # ADVANCED MAP CONFIGURATION ----3.4 # ADVANCED MAP CONFIGURATION DESCRIPTION ------4.0 # SERVER ADMINISTRATION SCRIPT ------4.1 # SERVER BROADCAST SCRIPT --------5.0 # STARTING OF YOUR SERVER --------5.1 # RUN AS SERVICE ----------6.0 # THE BOTTOMLINE ====================================================================== #1.0 UPDATES ====================================================================== 2.0 Many new Additions, to much to list - added FAQ - Fixed typos - How to run as Service - Added Requirements Section - Converted txt document to html -http://txt2html.sourceforge.net/ 1.1 layout Change 1.0 initial ====================================================================== #1.1 FAQ - Frequently asked Questions ====================================================================== Q: When i edited chrome configuration files with the extension .scr , the game or Server don't boot anymore whats wrong? A: The Chrome Engine needs to have a Blank line on the end of the config file . Else he displays error message - (Parse Error in file XXXXX) or yust don't load it . Make sure to add atleast 1 blank line on the end of the file . Q: The server always crash ONCE I added a new map that was not played before. A: It seems they exist 2 dedicated server packages. I got my hand on this version from dhl.net chromedds122.zip Make sure to add a map configuration file for each map into your profile folder. Then it do not crash . I have yet to test if this version is more vunerable/unstable then the later version. Or runs more stable.. ====================================================================== #1.2 Chrome Dedicated Server Setup Guide Introducion ====================================================================== ====================================================================== #1.3 Prerequisites ====================================================================== Before we start let's see how the Chrome Server works . The general configuration consist of 5 steps "While some can be left out .." 1: Setup General Server Config 2: Setup Maprotation 3: Setup Map Specific Settings 4: Setup additionaly scripts 5: Start the Server This is how the engine reads config files and starts the server . -> ChromeNet.exe -CommandLine -Options -profile -> Parse ServerSettings.scr -> Parse - FavoriteMaps.scr -> Take first map -> Parse MapName_Settings_GameMode.dat -> Load Map -> Load ServerAdmins.scr -> Load ServerAutoMessages.scr -> Finish Here You can also see that the ServerAutoMessages.scr and ServerAdmins.scr are only parsed once per map ! So if you make changes on the fly to these file , you have to wait for the next mapchange for the changes to - take effect . Or force a mapchange via the ServerConsole/Ingame . ServerSettings.scr is only read on serverstartup i think , but this is untested i never changed settings inside this file while the Server was running . ====================================================================== #1.4 Requirements ====================================================================== -Minimum Requirements Cpu: 600 Mhz Processing Speed Ram: 256 Mb of Physical Ram Nic: Network Card with 10MBit Hd: 500 Mb free space on a Physical Drive (IDE,SCSI,SATA,USB flash drive,Microdrive,CompactFlash...) +Extensive cooling! -Recommend Cpu: 2GHZ or faster Ram: 512Mb or more Nic: Network Card with 10MBit Hd: 500 Mb free space on a Physical Drive (IDE,SCSI,SATA,USB flash drive,Microdrive,CompactFlash...) +Extensive cooling! -Cpu The faster the cpu the faster the server loads maps, less lag spilkes by overloaded cpu. The game likes to use the cpu then use it less then use it again alot . The game won't benefit from a quad core 8ghz cpu though -Memory The more memory your server have available the less I/O reads are performed on your harddrive. less memory = more access to pagefile = bad . The gameserver itself takes around 100mb of ram with 10 players -Nic Theres NO difference in performance if you use a 1000€$ Network card or a 1€$ bargain one. You should only consider upgrading your network card if your server is under very heavy load (Webserver 100visits a second + ftp + gameserver) in this case you should consider investing into a server grade nic with integrated cpu . And think about moving the webserver to a load balanced server... -Hd Any harddrive or flashdrive should perform well but remember they have a limited lifetime (Write Read Cycles). SCSI Drives should only be used if the server runs for a looong time, as there not designed to spindown and up alot. In case you plan to use USB flash drive make sure they comply with the USB 2.0 or later standard and that your motherbard support this standard. -Cooling If you plan to keep the server running 24/7. It is very important to plan system cooling acordingly your requirements. Desktop systems are not designed to run 24 hours a day 7 days a week, and may malfunction after a short period of time running Atleast a Case fan should be bought and installed, and optional a fan to cool harddrives. ====================================================================== #1.5 Short note to Config Files ====================================================================== All Config files have a deffinition of config flags available, you should not alter these if your not sure what they are doing. On top of all config files you define the available config flags starting with ! sign . Example: !ServerName(s) Without these the following wouldn't be parsed by the engine ServerName(MyServerName) Text Starting with // are comments and ignored by the engine // THIS IS A COMMENT The engine requires atleast one tab at the end of the config files! What does (s) (i) stand for? (i) = INTEGER Can be any number/s -http://en.wikipedia.org/wiki/Integer (s) = STRING Can be a string of letters and numbers -http://en.wikipedia.org/wiki/String () = SET Yust enables the flag ====================================================================== #2.0 Create a Profile ====================================================================== For your convience I included 3 Sample profiles located in \Data\profiles\* DemoServer RetailServer CustomMapsServer -DemoServer Multiplayer Demo 2004 Only! Maps for full compatibility with the Demo . Retail players can connect and play aswell. -RetailServer Only Retail Maps that where shipped with the retail game . And maps that got added with latest 1.2.0.0ww Patch -CustomMapsServer All Maps Retail + Custom . Note that Players that want to connect need to download the maps! Eighter use one of these profiles, or create a new folder with a unique name for your own profile . Remember to edit CurrentProfile.scr to reflect the profile you want to use on the Server . Or pass the Profile name via the -profile commandline switch . A complete Profile should have the following files inside located in the directory . 1* ServerSettings.scr 2* FavoritesMaps.scr 3* GameSettings_*****.dat Though the ServerLoads up even if you have nothing in there he yust loads the default settings ... I guess we don't want that right ? Then lets move on .. Let's take a closer look at the ServerSettings Config file . The following vars can be edited and altered - to reflect your Server Settings . To open use your favorite texteditor like notepad . \Data\profiles\yourprofile\ServerSettings.scr !ServerName(s) !MaxPlayer(i) !LoopLevels() !Dedicated() !Password(s) !InternetGame() !GamePort(i) ServerName("ServerName") MaxPlayer(32) LoopLevels() Dedicated() Password("ServerPasswordHere") InternetGame() GamePort(27015) ServerName("XXX") This Sets the ServerName Peopel see in the ServerBrowser . Don't make it to long , as the Ingame Browser cuts - the names! Try to limit your ServerName to 20 letters ! MaxPlayer(X) Sets the Playerslots count . Eg 16 for 16 Player Slots Set according your Server Bandwidth! LoopLevels() Important for Dedicated Servers ! Sets that after the last Map in the Map Rotation file the Server goes - back to the first map . If this is not set the server stops after last map! Dedicated() This tells the Engine to run the Server in command Line mode , Ex to run on a dedicated machine "RootServer" Without graphical interface . Password("XXX") Here you can Set a Password for a PrivateServer. Peopel that want to connect to the Server have to issue - the password ! Please remove this string if you don't want to password your server ! InternetGame() This tells the engine to broadcast the Server to the Techland MasterServer and ASE Gametracker . For Lan only games remove this string ! GamePort(XXXXX) With this cvar you can force the Game to listen on a different Port "Default 27015" . Eg to run more then one instance ! * Please make sure to add atleast 1 tab on the end of the config file ! Else the engine reports a "could not parse file" error . ====================================================================== #3.0 MapRotation ====================================================================== You can Setup a simple MapRotation for your Server to cycle through as many maps as you want . You have to add the maps you want to rotate on the Server into the FavoritesMaps.scr located in the profile folder you want to use . Your MapRotation could look like these \Data\profiles\yourprofile\FavoriteMaps.scr !LevelMapNet(s, i) LevelMapNet("Data/LevelsNet/Trench3/Trench3.map", 4) LevelMapNet("Data/LevelsNet/Soilent/Soilent.map", 2) LevelMapNet("Data/LevelsNet/Loomia2/Loomia2.map", 4) LevelMapNet("Data/LevelsNet/Skirmish/Skirmish.map", 1) LevelMapNet("Data/LevelsNet/Narrow/Narrow.map", 4) The Numbers at the end of each map sets the Gamemode . Most Maps can be played on several Gamemodes . But most are only playable by default with one gamemode ! You can identify Maps that offer more then one Gamemode by the .scr files in there folder . Eg if a map have .scr files with the names td.scr ctf.scr and dm.scr . Then the map is playable in - TeamDomination + CaptureTheFlag and Deathmatch . * Note: All maps can be played in Deathmatch or TeamDeathmatch mode !! You yust have to add a config file for it into the mapfolder "DM.scr TDM.scr" as a guidance look at "LevelsNet\DexonsHideout\DM.scr" or "LevelsNet\Skirmish\TDM.scr" # GameMode Codes NR--SHORT---Description 0 = DM - Death Match 1 = TDM - Team Death Match 2 = CTF - Capture The Flag 3 = SMD - Single Man Domination 4 = TD - Team Domination 5 = SMTD - Single Man Total Domination 6 = TTD - Team Total Domination 7 = AS - Assault ====================================================================== #3.1 Custom Map Settings ====================================================================== Custom Map Settings Setup This is a optional step and your Server works without ! By default all maps have a file called GameMode.dat "Ex: DM.dat" that holds all default settings like timelimit, fraglimit ect . To override them you have to create a File Named like this In your current profile folder -> * GameSettings_MapName_GameMode.dat Where GameMode stands ? for the Gamemode ;) and MapName for the Map ...dooh Please see under # 1.4 MapRotation for a list of available Gamemode Codes . here are 3 example for the map Soilent GameSettings_Soilent_CTF.dat * Soilent - Capture The Flag Settings GameSettings_Soilent_DM.dat * Soilent - Deathmatch Settings GameSettings_Soilent_TDM.dat * Soilent - Team Deathmatch Settings ... Example: for a Custom Map CTF Rule Settings file for the map Soilent \Data\profiles\yourprofile\GameSettings_Soilent_CTF.dat //CUT !include("../../LevelsNet/LevelNet.def") GameSettings() { GameTime(30) MaxPoints(5) RespawnCntLimit(-1) MinRespawnTime(7.0) VehicleRespawnCntLimit(-1) EnemiesVisibleOnHudMap("no") AvailableInventoryRoom("yes") IdentifyEnemyPlayers("no") TeamKillLimitToKickOut(3) TeamBalance("yes") FriendlyFire("yes") FriendsVisibleOnHudMap("yes") MinTeamsToStartGame(2) FlagsVisibleOnHudMap("yes") FlagAutoReturnTime(60.0) } //CUT * See next Article for description of each variable ====================================================================== #3.2 Custom Map Settings Description ====================================================================== GameTime(xx) Time In minutes the map is played . After the Time runs out the game ends and next map in rotation is loaded Maxpoints(xx) Point Limit Example: 15 Flag Captures . Or for TeamDomination 300 Flag Capture points MaxFrags(xx) Sets The FragLimit for Deathmatch and TeamDeathmatch RespawnCntLimit(xx) Sets a respawn Limit . EG if you set to 100 , after you died 100 times you Can no longer respawn . Good for suddenDeath and more Tactical Servers . MinRespawnTime(xx) Time in seconds after you died you can respawn into battle . Don't set to low or to High ! 5-10 Seconds seems to be a good Setting . As you don't have to wait to long. VehicleRespawnCntLimit(xx) Set a limit for vehicles . Example 10 so after a vehicle was destroyed 10 times it does not respawn anymore . Set it to -1 for infinite vehicles Respawns . VehicleRespawnTime(xx) Time in seconds after destroyed vehicles respawn . During this time they stay in wrecked state on the map. VehicleAutoReturnTime(xx) Time in seconds Vehicles return automatical after nobody used them for the given time . EnemiesVisibleOnHudMap(1/0) Enable/Disable if you can see enemys on radar . VehiclesVisibleOnHudMap(1/0) Enable/Disable if vehicles are visible on radar . AvailableInventoryRoom(1/0) Enable/Disable Inventory room . Disable only on maps that have weapon respawn points! Or to allow only 1 weapon "edit the map .scr file for the default weapon" IdentifyEnemyPlayers(1/0) Sets if you can see names of enemys when your hud goes over there body . TeamKillLimitToKickOut(xx) Sets how many times you can Frag a teammate before you are kicked from the Server for TeamKills . 3 is a good setting (I use on my server) . This value is reset on mapchange ! TeamBalance(1/0) Auto TeamBalance . Eg no uneven Teams 10 Versus 6 . The Server automatical Forces even teams . Only works on mapreload and it shuffles all players FriendlyFire(1/0) Enable/Disable Friendly fire . Controls If you can damage your Teammates or friendly vehicles . FriendsVisibleOnHudMap(1/0) Sets if teammates are visible on radar for your team . MinTeamsToStartGame(xx) Min Players that have to be on the Server before the round starts . if not enough players are on the Server Client have to wait on the join screen (Showing the ScoreGameTab) For Team games this counts for each team , a setting of 1 would require 1 player in each team FlagsVisibleOnHudMap(1/0) Sets if the Ctf Flag is visible on radar . FlagAutoReturnTime(xx) Time in seconds after dropped flags are returned to the base . ScoreUpdateTime(xx) Time in seconds Assault/TeamDomination scores are updated in Scoreboard screen . BasesVisibleOnHudMap(1/0) Sets if you can see captured bases in TeamDomination Mode ? ChangeSideOnNextRound(1/0) Setting for Assault Mode . Sets if teams should change sides after 1 round ends . RevengeMatch("1/0") Sets if after 1 team won Assault match . The other team gets a revenge round ====================================================================== #3.3 Advanced Map Config ====================================================================== Theres more you can setup for each map . All maps read the Settings out of an .scr text file that holds custom settings like the Default Weapon ect . heres a example from the map PIT - CTF.scr \Data\LevelsNet\Pit\CTF.scr GameSettings() { AvailableVehicles( "no" ) MaxPoints( 15 ) MinRespawnTime( 10.0 ) VehicleRespawnTime( 30.0 ) } InventoryRoom() { SetInvWeaponNum("WeaponPistolNet", 1) SetInvWeaponNum("WeaponPistolHeavyNet", 1) SetInvWeaponNum("WeaponRifleShortNet", 1) SetInvWeaponNum("WeaponRifleShotgunNet", 1) SetInvWeaponNum("WeaponRifleNet", 1) SetInvWeaponNum("WeaponRifleSniperNet", 1) SetInvWeaponNum("WeaponRifleSniperHeavyNet", 1) SetInvWeaponNum("WeaponRifleMachineGunNet", 1) SetInvWeaponNum("WeaponRifleHeavyNet", 1) SetInvWeaponNum("WeaponHeavyRocketLauncherNet", 1) SetInvWeaponNum("WeaponGrenadeOffensiveNet", 2) AddInvEquip("DrugHealthex", 1) SetInvAmmoNum("Ammo9mmShort", 3) SetInvAmmoNum("Ammo8mmLong", 3) SetInvAmmoNum("Ammo12mmShort", 2) SetInvAmmoNum("Ammo14mmLong", 2) SetInvAmmoNum("AmmoShotgun", 2) SetInvAmmoNum("AmmoRockets", 1) DefaultWeapon("WeaponRifleNet") DefaultWeapon("Ammo8mmLong") DefaultWeapon("Ammo8mmLong") DefaultWeapon("WeaponPistolNet") DefaultWeapon("Ammo9mmShort") DefaultWeapon("DrugHealthex") DefaultWeapon("WeaponGrenadeOffensiveNet") DefaultWeapon("WeaponGrenadeOffensiveNet") } ImplantsRoom() { ImplantAssimilation("ImplantZoom", 1.0) ImplantAssimilation("ImplantArmor", 1.0) ImplantAssimilation("ImplantSpeed", 1.0) ImplantAssimilation("ImplantAccuracy", 1.0) ImplantAssimilation("ImplantStrength", 1.0) * See #3.4 Next Article for description ====================================================================== #3.4 Advanced Map Config Description ====================================================================== * For a comprehensive list of available items and weapon codes see itemlist.txt SetInvWeaponNum("ObjectName", Value) With this command you can add or remove weapons from the inventory and also set how many are available . To remove put 0 (zero) as the value . Now the object is greyed out in the inventory and players cannot - select it to put into there loadout . You can also delet the entry and players wont even see the weapon . AddInvEquip(ObjectName", value) With this command you can add healtpacks or neural packs , and also set how many are available . DelInvWeapon(s, i) NOT TESTED AddInvAmmo(s, i) NOT TESTED DelInvAmmo(s, i) NOT TESTED DisableInvObject(s) NOT TESTED DefaultWeapon("objectName", value) In my eyes the most important setting . This let's you setup the default loadout a player spawns with when he initialy connects to the server . The default setting on all maps (Cafs + 2x8MM Ammo + Handgun + 1X9MM Ammo + 2X Nades + 1X Healthpack) ImplantAssimilation("ImplantName" , Value) Let's you disable/Enable Implants . And set there strenght . See below for a more inbrief description! ImplantsRoom: To disable a implant replace the 1.0 with a 0.0 . This set the implant strenght to 0 % and thus it can't be used anymore and it's also removed from the players hud . If you only want to make Implants less powerfull , you can specify there strengh in percents "see below" 1.0 = 100 % 0.5 = 50 % 0.25 = 25 % 0.1 = 10 % 0.0 = 0 % Disabled And so on .. You can also use values like 0.77 for 77% or 0.83 ect ect If you played the singleplayer portion of the game, and wan't to adjust the implants according to one of the SP levels. You can look at the appropiate config for the wanted level in \Data\LevelsSingle_*.scr Example : In the very first level implants have the following value \Data\LevelsSingle_0.scr ("ImplantHack", 0.75) ("ImplantSlomo", 0.8) ("ImplantArmor", 0.5) Level 2 \Data\LevelsSingle_2.scr ("ImplantAccuracy", 0.75) ("ImplantZoom", 0.55) ("ImplantSpeed", 0.6) ("ImplantArmor", 0.5) ("ImplantStrength", 0.15) ("ImplantTermovision", 0.3) ("ImplantSlomo", 0.2) ("ImplantHack", 0.8) * NOTE Hack CAMO Hack and Slowmotion Implants are not available in multiplayer matches! ====================================================================== #4.0 Server Admins Script ====================================================================== Now after you setup a Maprotation + Custom map Settings lets see what else we can setup . A nice "Feature" is the abilty to administrate your server eg: kick Abusive users , force teams ect . While it is laking some elementar features, I really like the multiuser support. In order to enable administrator/moderator accounts for ingame administration you have to edit the following file \Data\ServerAdmins.scr If the file does not exist, yust create a blank text document and rename it to ServerAdmins.scr Example: \Data\ServerAdmins.scr //CUT //Admin( sUserName, sPassword, iRights ) //iRights: // 0 - standard // 1 - full //-0 - None !Admin( s, s, i ) Admin( "ServerAdminName", "AdminPassword", 1 ) Admin( "SubAdminName", "SubAdminPassword", 1 ) Admin( "ServerModerator", "ModeratorPassword", 0 ) //CUT You can add as many Administrators/moderators as you wish from the example above you should clearly see how to do it . Moderator or Administrator If you only want a moderator that keeps an eye on your server can kick players and change map give him standard access . If you however need full access (Can shutdown server beware!) use full access . PLEASE read the console-commands.txt for all Admin/Mod commands ! ====================================================================== #4.1 Server Message Broadcast Script ====================================================================== If you want you can setup a file that holds messages that then are broadcast to connected players on your server . This is very usefull to announce important messages to connected players . I included a example file called \Data\ServerAutoMessages.scr \Data\ServerAutoMessages.scr !MessagesPeriod(i) !Message(s,i,i) MessagesPeriod(30) Message("Messages displays every 30 seconds",5 , 0) Message("This is low priority message ",10 , 0) Message("This is HIGH priority message ",0 , 0) SETTINGS DESCRIPTION (Source: Taken from old chrome wiki only added some descriptions) MessagesPeriod( i ) one, global parameter which defines period between displaying messages. Value is in seconds (integer). Message( s, i, i ) This is message definition. There can be many messages. 1st param (string) message text 2nd param - (integer) priority of the message value: 0 highest - 10 lowest. the higher priority the more often message displays. 3rd param - (integer) mode of the message. Possible values: 0 - normal, * Displays to all clients 1 - full version, * Only display to clients with version string 1.2.0.0 2 - demo version. * Only display to clients with version string 1.1.2.0 ====================================================================== #5.0 Starting the Server ====================================================================== Now after you completed the setup of your MapRotation ect... You can start your Server . Do this by Double clicking the ChromeNet.exe in the main folder eg c:\Chrome\ChromeNet.exe , or via the command promt . Downside of this simple and fast way is the game opens "atleast on all systems i tested" a second window that cannot be minimized! Better use the following script to start the Server . Create a new text Document and Take one of the following code snippets as a guide . 'ChromeNet.exe dedicated -profile profilename' or. 'ChromeNet dedicated lan -profile profilename' or. 'C:\Games\ChromeServer\ChromeNet dedicated -profile profilename' (For a full list of commandline parameters see commandline-options.txt) Save the finished script as "Dedicated_Server_ProfileName.bat" or choose a different name.. into the mainfolder of your DedicatedChromeServer instalation . If you want to save it on your desktop or another folder you HAVE! to use the third code snippet and specify the full path to the ChromeNet.exe . Now if you followed the guide and not yust fly over it ;) a console window should appear displaying the status and the stuff the Server have to load . The last Message should be "Loaded xxxmap.map" . This means loading is done and the Server have been started and is ready to accept connections . * Note: They are many other way to start the Server . Do a search on your favorite SearchEngine for... * GameDeamon * Game Deamon * Game Server Deamon * Game Server Start Restart Scripts ====================================================================== #5.1 Run as Service ====================================================================== To run the server process as system service, you need to download the Windows NT Ressource Kit for your Operating System http://www.microsoft.com/downloads/ more blabla instsrv.exe namebla run.. http://support.microsoft.com/kb/137890 http://support.microsoft.com/kb/137890/de ... ... regedit.exe ... ... ====================================================================== #6.0 The bottom line ====================================================================== Congratulations for reading this far (or did you yust scroll down all the way, shame on you!) I hope this guide was usefull in anyway for you , and that you could succesfully start your very own dedicated Chrome Multiplay Server . If they are still open questions or you did not understand something you can use your community bbs http://chrome.rawgameservers.net/bbs/YaBB.pl?catselect=Chrome.6x.to And ask your open questions there . Please don't email me your questions use the bbs ! ======================================================================