RO2 Dedicated Server

From Tripwire Interactive Wiki
Jump to navigation Jump to search

Downloading and Running the SteamCMD Update Tool

  1. Download the SteamCMD Update Tool:
  2. 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.
  3. Launch SteamCmd
NOTE: To automate this process for future updates, see #Automating SteamCmd.
    1. 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.
  1. 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 RO2 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 RO2 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
If Tripwire is currently running a beta update of the dedicated server files:
app_update 212542 -beta "branch name"

Where "branch name" is the current beta branch. Currently there is not a live dedicated server beta branch.

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:

Server Passwords

[Engine.AccessControl] in ROGame.ini:
Option Name Valid Entries What this option controls
AdminPassword Alpha numeric character combinations. Example: Abd32Sdn53 This is the master server administrator password
GamePassword Alpha numeric character combinations. Example: cl4ng4m3 This sets a password players will need to enter to join the server

Server Name

[Engine.GameReplicationInfo] in ROGame.ini:
Option Name Valid Entries What this option controls
ServerName Alpha numeric character combinations. Example: Yoshi's House of 32 Compressed Pancakes This is the displayed server name to all players in the server and the server browser

General Global Game Settings

[ROGame.ROGameInfo] in ROGame.ini:
Option Name Valid Entries What this option controls
RoundStartScreenTime Numbers in seconds. Example: 8 // This is 8 seconds The time at which players will spawn into the game before pre-start time ends. Valid entries are in seconds.
bLANServer True or False Sets the server to broadcast to the internet if set to False. Sets the server to be local network only if set to True.

Team Balance

Option Name Valid Entries What this option controls
bBalanceTeams True or False True turns on auto-team balance functionality
bAutoBalanceTeamsOnDeath True or False Sets the server to auto-team balance dead players only. True turns this on. Only works if bBalanceTeams=True
MaxTeamDifference Numerical values between 1 and 63. Example: 2 Sets the maximum number of players the teams can be unbalanced by. Only works if bBalanceTeams=True

Game Rounds, Ready Up System and AI Difficulty

Option Name Valid Entries What this option controls
RoundLimit Numerical values between 0 and X Sets the amount of rounds in a match. This is how many times a map will be played before moving on // 0-Best 2 out of 3, 1 = 1 round, 2 = 2 rounds, 3 and above = Best out of X.
EndOfMapDelay Numerical value in seconds. Example: 45 Sets the amount of time after a match before the server loads the next map
GameDifficulty Numerical values between 1 and 5. Example: 2 Sets the AI difficulty level in the server. At higher values the AI will be more accurate
bUseReadySystem True or False Sets the server to use the Ready Up system if set to True. This means players will need to ready up before the first round will play

Hero Count and Battlefield Commissions

Option Name Valid Entries What this option controls
MaxHeroes16Player Numerical values between 0 and X. Example 2 Sets the amount of Hero slots allowed per team in a 16 max player sized server
MaxHeroes32Player Numerical values between 0 and X. Example 3 Sets the amount of Hero slots allowed per team in a 32 max player sized server
MaxHeroes64Player Numerical values between 0 and X. Example 5 Sets the amount of Hero slots allowed per team in a 64 max player sized server
bEnableBattlefieldCommissions True or False Sets the ability for players to receive in game battlefield commissions for doing well in a round. This allows them to select an already filled role

In Game Admin Messages to Players

Option Name Valid Entries What this option controls
ServerAdvertisementMessages String of text. Example: Server Rules: No TKing, have fun! Sets an admin message to be printed to all players in the server. It shows up in the text chat area
ServerAdvertisementInterval Numerical value in seconds. Example: 60 Sets the rate at which the Server Advertisement Message is sent to players

Minimum Amount of Players For a Round to Start

Option Name Valid Entries What this option controls
MinNetPlayers Numerical values between 1 and 64. Example: 1 Sets the amount of players needed on the server for a round to start

Friendly Fire Settings

Option Name Valid Entries What this option controls
FriendlyFireKillLimit Numerical values between 1 and X. Example: 6 Sets the amount of TK's a player can have before the server will temp ban the player
FriendlyFireDamageLimit Numerical values between 1 and X. Example: 800 Sets the amount of friendly fire damage (non TK) a player can have before the server will temp ban the player
FriendlyFireScale Numerical values between 0 and 1. Example: 1 Sets the global friendly fire damage scale for small arms. 0 is no damage, .5 is half damage and 1 is full damage
FriendlyFireArtilleryScale Numerical values between 0 and 1. Example: 1 Sets the artillery friendly fire damage scale. 0 is no damage, .5 is half damage and 1 is full damage
FriendlyFireExplosiveScale Numerical values between 0 and 1. Example: 1 Sets the grenade/explosive friendly fire damage scale. 0 is no damage, .5 is half damage and 1 is full damage
FriendlyFireArtilleryPunishScale Numerical values between 0 and 1. Example: 0.1 Sets how much damage a player who has injured or killed teammates with artillery receives back on his own health status
FriendlyFireExplosivePunishScale Numerical values between 0 and 1. Example: 0.1 Sets how much damage a player who has injured or killed teammates with grenades/explosives receives back on his own health status
FriendlyFirePunishment Numerical values between 0 and 1. Example: 1 Sets how much damage a player who has injured or killed teammates with small arms receives back on his own health status.
bEnableTeamKillForgiving True or False Sets if players are allowed to forgive TK's in game by typing "NP" after a TK in the player chat

Visability of Friend Player Names

Option Name Valid Entries What this option controls
FriendlyPlayerNames Numerical Values between 0 and 2. Example: 2 Sets the conditions on when friendly player names are visible to players

Punkbuster Levels of Security

Option Name Valid Entries What this option controls
PunkbusterServerProfile Numerical Values between 0 and 3. Example: 2 Sets the level of Punkbuster security. 0= Off, 1 = Server screenshots only, 2 = Standard security checks on players, 3 = Stringent security checks on players - This level may impact player performance.

Voting

Option Name Valid Entries What this option controls
bEnableMapVoting True or False Sets if players can vote for the next map at the end of a match. If not, map cycle will auto rotate.
MapVotingTime Numerical value in seconds. Example: 30 Sets the amount of time after a match is done that players have to vote for the next map if map voting is enabled.
bEnableKickVoting True or False Sets if players can kick vote players from the server
bAnonymousVoteKicking True or False Sets if players can kick vote anonymously if kick voting is enabled
bEnableKickVoting True or False Sets if players can kick vote players from the server.
KickVotingTime Numerical value in seconds. Example: 30 Sets the amount of time a kick vote has a chance to succeed in before it will fail without the needed amount of votes.
bEnableRoleVoting True or False Sets if players can kick vote players from roles such as sniper, squad leader and commander for poor performance
RoleVotingTime Numerical value in seconds. Example: 30 Sets the amount of time a role vote has a chance to succeed in before it will fail without the needed amount of votes.
bUseScoreAsVoteWeight True or False Sets if players with higher scores will have multiple votes counted based on their score
bAllowMidGameVoting True or False Sets if map voting can happen mid match instead of just at the end
MidGameVotingPercentage Numerical value between 1 and 100. Example: 50 Sets the percentage needed for a successful vote
EndGameVotingPercentage Numerical value between 1 and 100. Example: 50 Sets the percentage needed for a successful vote
MapRepeatLimit Numerical value between 0 and X. Example: 1 Sets the amount of times a map be voted back to before players will no longer be able to select it


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.

Setting Up Redirect

To enable redirect for third party custom maps to be able to run on their server, admins needs to install the "cooked server" files in their "\ROGame\CookedPCServer" directory on the dedicated server.

Now unless users already have the cooked client map files installed manually or previously downloaded in their clients cache, the server will need to be set up to redirect clients without the map to download it from a redirect server. To enable this, the admin must open the roengine.ini file and add a new section near the bottom of the file. The section is called [IpDrv.HTTPDownload] and should look like this:

[IpDrv.HTTPDownload]
RedirectToURL=http://redirect.tripwireinteractive.com/ro2/

Where the RedirectToURL is a web location that is a repository of the client map files. The example above is the location of Tripwire's public redirect server which will host several near complete and complete custom maps. The client map file (.roe and not any supporting .upk packages) must be renamed as a .upk file. Thus RedirectTestMap.ROE should be renamed to redirecttestmap.upk on the redirect.

Known Issues to Avoid

As a redirect server can be a Linux machine, it is very important admins have the closing forward slash in the URL as well as spell all map names in lowercase. Failure to do so will result in a broken redirect and clients will only obtain a 1kb file of the proper name but not the actual files. A redirect server needs fast speeds and as much bandwidth as possible, but little else.