RO2 Dedicated Server
Downloading and Running the SteamCMD Update Tool
- Download the SteamCMD Update Tool:
- Extract the contents to a directory (Windows example: C:\SteamCmd\).
- Do not extract the contents of the updater tool to the regular Steam Client folder or to a folder that has the older HLDSUpdateTool program.
- Launch SteamCmd
- NOTE: To automate this process for future updates, see #Automating SteamCmd.
- Open a command prompt in that directory and start SteamCmd
- Windows: Type steamcmd
- The program will automatically update and enter you in to a Steam> prompt. Type help for more information.
- Open a command prompt in that directory and start SteamCmd
- Log in with your Steam Account. We recommend server admins set up a server steam account for this process.
- You must log out of the regular Steam client in order to properly log in to SteamCMD Update Tool (if you use your personal steam account)
login username password
- 4a. If you receive a Steam Guard error, check your e-mail for your access code and execute the following commands (you'll only need to do this once):
set_steam_guard_code yourcodehere login username password
- 5. You should see a message stating that you have successfully logged in with your account.
Downloading the Red Orchestra 2: Heroes of Stalingrad Dedicated Server
- This describes the process of updating the CS:GO dedicated server application. These steps are required every time the game is updated. To automate this process for future updates, see #Automating SteamCmd.
- 1. If you aren't proceeding from the previous set of instructions, first launch SteamCmd.
- 2. At the Steam> prompt, set your CS:GO Dedicated Server install directory.
- Examples:
- Absolute Path:
force_install_dir c:\RO2Server\
- Up one folder:
force_install_dir ..\RO2Server\
- In the Steam Command folder:
force_install_dir .\RO2Server\
- 3. Install or Update RO2.
- If this is your first time installing or if you are trying to verify the integrity of the server files:
app_update 212542 validate
- If this is simply an update to an existing RO2 dedicated server:
app_update 212542
- 4. Once finished, type quit at the Steam> prompt to properly log off of the Steam servers.
Automating SteamCmd
There are two ways to automate SteamCmd.
- 1. Add commands to the command line. Example:
SteamCmd +login user password +force_install_dir ./ro2_ds +app_update 212542 validate
- 2. Create a script.
- a. Put your SteamCmd commands in a text file. Example:
// update_ro2_ds.txt // login user password force_install_dir ./ro2server app_update 212542 validate exit
- b. Run SteamCmd with the +runscript option. Example:
SteamCmd +runscript ro2_ds.txt
Starting the Server
Classic Casual: start .\Binaries\win32\rogame te-Apartments?minplayers=0?maxplayers=32? -seekfreeloadingserver
Advanced Configuration
Configuring your new Red Orchestra 2: Heroes of Stalingrad server will be very similar to those who have set up any Unreal Engine 3 server (such as UT 3). However to those who are from other engines such as IdTech and Source there are many differences, which we'll cover here. Those who are also looking for specific sever config settings will likely find what they are looking for below.
rogame.ini
The rogame.ini file can be found under \ROGame\Config\
This file controls all the various game elements that can be configured by admins in Red Orchestra 2: Heroes of Stalingrad. From game modes such as Classic or Action to spectating options and death cams, everything can be set up to the admins liking from this file.
First admins will want to configure this file to update the WebAdmin, server password and other settings that you do have access to. Here is an example of a very simple ROGame.ini settings admins will want to change first:
- [Engine.AccessControl]:
AdminPassword= "thisisapassword111" // Admins can set any alpha numeric set of characters to create the password GamePassword= "thisisapassword222" // Admins can set any alpha numeric set of characters to create the password
- [Engine.GameReplicationInfo]:
ServerName= "Red Orchestra Server" // This is the displayed server name to all players and the server browser
- [ROGame.ROGameInfo]:
RoundStartScreenTime= "8" // The time at which players will spawn into the game before pre-start time ends. Valid entries are in seconds. bLANServer= "false" // Set to true if you only want to create a LAN server.
bBalanceTeams=true - Turn on team balancing. bAutoBalanceTeamsOnDeath=true - This will only work if bBlanaceTeams=true. It will balance teams only when an player is available to switch teams while dead. MaxTeamDifference=2 - This will only work if bBalanceTeams=true. It is the maximum size the game will let teams become out of balance.
RoundLimit=2 - This setting controls how many times a map will be played. Example entries: 1, 2, X where x is 3 and over (best out of x rounds will be played ex: 2/3). EndOfMapDelay=45.000000 - This setting controls how long the map will wait at the end of a match before switching to the next map
GameDifficulty=1.0 - This settings controls the bot difficulty if bots are on the server.
bUseReadySystem=false - This setting globally configures the use of the ready up system. Maps will not start until both teams ready up.
MaxHeroes16Player=2 - The amount of hero slots per team on a 16 player server. MaxHeroes32Player=3 - The amount of hero slots per team on a 32 player server. MaxHeroes64Player=5 - The amount of hero slots per team on a 64 player server.
bEnableBattlefieldCommissions=true - Enables or disables players recieving in game Battlefield commissions to grab a contested role.
ServerAdvertisementMessages= - What is written here is printed out in game to all players in the chat window ServerAdvertisementInterval=30 - How often in seconds the Advertisement Message is sent to the chat area
MinNetPlayers=1 - How many human players must be on the server before a round will start
FriendlyFireKillLimit=6 - How many unforgiven TK's a player can have before the server will kick him. FriendlyFireDamageLimit=800.000000 - How much damage a player can deal to friendlies before being kicked FriendlyFireScale=1.000000 - Global friendly fire scale. Accepted values are between 0 and 1. 1 being full damage. FriendlyFireArtilleryScale=1.000000 - Artillery friendly fire scale. Accepted values are between 0 and 1. 1 being full damage. FriendlyFireExplosiveScale=1.000000 - Grenade and other explosive friendly fire scale. Accepted values are between 0 and 1. 1 being full damage. FriendlyFireArtilleryPunishScale=0.100000 - How much damage is returned to the user who cased friendly fire via artillery. FF punishment must be on for this to work. FriendlyFireExplosivePunishScale=0.500000 - How much damage is returned to the user who caused friendly fire via grenade. FF punishment must be on for this to work. FriendlyFirePunishment=1 - Does the player receive damage for damaging team mates. Accepted values are 0 and 1. 1 is no punishment. bEnableTeamKillForgiving=true - Allows players to forgive TK's in game by typing NP after being killed.
FriendlyPlayerNames=2
PunkbusterServerProfile=2
bEnableMapVoting=true MapVotingTime=30.000000 bEnableKickVoting=true bAnonymousVoteKicking=False KickVotingTime=30.000000 bEnableRoleVoting=true RoleVotingTime=30.000000 bUseScoreAsVoteWeight=false bAllowMidGameVoting=false MidGameVotingPercentage=50.000000 EndGameVotingPercentage=50.000000 MapRepeatLimit=0
bEnableVOIP=true bDisablePublicVOIPChannel=false bDisablePublicTextChat=false bEnableDeadToDeadVOIP=true bPartitionSpectators=true bPositional3DVOIP=false bPositional3DVOIPAllHear=false
RealismLevel=0 - This sets the gamemode for the server. 0 - Realism, 1 - Action, 2 - Classic, 3 - Custom. SpectatingMode=0
ReinforcementTimeScale=1.000000
MinimumHonor=0 - The minimum player honor required to join the server. MaximumHonor=100 - The maximum player honor required to join the server
BannerLink=http://www.heroesofstalingrad.com/ServerAd/RO2_ServerTest.png - This is the banner image displayed to players who enter your server. ClanMotto=Welcome to our Red Orchestra 2 server! - The title message on the welcome page for players who enter your server. ClanMottoColor=(B=0,G=0,R=0,A=255) - Allows you to color the text of the Clan Motto ServerMOTD=This is our message of the day ...@nl@@nl@Please enjoy your time on our server@nl@@nl@@nl@This is the last line - Message of the day on the welcome screen. @nl creates a new line ServerMOTDColor=(B=0,G=0,R=16,A=255) - Allows you to color the text of your MOTD WebLink=www.redorchestra2.com - Clickable web link on the welcome page. WebLinkColor=(B=0,G=0,R=16,A=255) - Allows you to change the color of your web link.
bUseMapList=True - This sets the server to use a custom map list you specify instead of the entire default map list.
Maps
Maps can be set to run by gametype and amount of rounds played. The following is an example map list that can be put in your rogame.ini:
GameMapCycles=(Maps=("TE-Apartments","FF-Barracks","CD-Station","TE-Spartanovka","TE-CommissarsHouse","CD-RedOctoberFactory","TE-Gumrak","FF-Station","CD-PavlovsHouse","TE-RedOctoberFactory","CD-Barracks","TE-Station","CD-FallenFighters","FF-GrainElevator","TE-Barracks","CD-CommissarsHouse","TE-FallenFighters","CD-Gumrak","CD-Apartments","TE-GrainElevator","CD-GrainElevator","TE-PavlovsHouse","CD-Spartanovka"),RoundLimits=(1,1,1,2,1,3,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,3))
The first part specifies the exact maps and their game types, while the round limits section (which has to match the number of maps in the cycle) determines how many rounds you want each map to play.
Setting Up Web Admin
To enable webadmin: Open ROWeb.ini. In the [IpDrv.WebServer] section set
bEnabled=true
By default webadmin will listen on port 8080 on the IP of the game server using, but you'll want to customize this port for multiple servers on the same IP. To change this, open ROweb.ini and modify the following line:
ListenPort=8080
Admins will now be able to log into their servers web admin panel. They can do by either connecting via a local address (if the server is local) or web address (the servers IP) followed by the port. They can use any of their favorite modern internet browsers such as Chrome, Firefox, and IE. An example of what to put in the address bar of the browser is:
192.168.0.100:8080
They will be presented with a login screen. The default user is: Admin. The password will be whatever was set as the admin pass in rogame.ini. If no admin pass was set, the admin will not be able to log in.
Setting up multiple web admins
Open ROWebAdmin.ini and add the following under [WebAdmin.WebAdmin]:
AuthenticationClass=WebAdmin.MultiWebAdminAuth
Start the server once to generate a new ROMultiAdmin.ini. Now you can either add new admin names and passwords from within the Web Admin itself, or you can add them manually in the file. To do so add the following information for each admin under [Admin MultiAdminData] in ROMultiAdmin.ini
DisplayName= "AdminNameHere" // Punctuation does matter for these names Password= "123" // Any alpha numeric set of characters will work here Order= "DenyAllow" bEnabled= "True" // This enables this admin
How To Use Web Admin
Go to web admin to find out more details on how to use the system.