It's easy to configure your Pingperfect Red Orchestra 2 Server. Just follow the steps below.
- Open the 'Configuration Files' section from your control panel.
- Select the 'Text Editor' option next to 'rogame\config\ROGame.ini'
- Refer to the Example Configuration below and change the respective settings where you need to do so in order to configure your server to your desires.
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 and Admin Contact
[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 |
AdminContact | Alpha numeric character combinations. Example: testemail@testemail.com | This is the displayed admin contact in 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 = Use the game mode setting, 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 |
bAllPlayersMustReadyUp | True or False | Sets if all players must be readied up or only a majority before the game will start |
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 punish 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 punish the player |
FriendlyFireScale | Numerical values between 0 and 1. Example: 1 | Sets the global friendly fire damage scale for small arms to the player hit by friendly fire. 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 to the player hit by friendly fire. 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 to the player hit by friendly fire. 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 as on his limit before he is punished |
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 as on his limit before he is punished |
FriendlyFirePunishment | Numerical values between 0 and 2. Example: 1 | Sets the punishment for players who have exceeded the friendly fire or damage limits. 0 = kick, 1 = session ban, 2 = perm ban |
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. 0 = Never, 1 = within 10 meters, 2= always |
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 |
Communication
Option Name | Valid Entries | What this option controls |
---|---|---|
bEnableVOIP | True or False | Sets if voice over IP is enabled on the server |
bDisablePublicVOIPChannel | True or False | Sets if the public voip channel is enabled |
bDisablePublicTextChat | True or False | Sets if the public text chat is enabled |
bEnableDeadToDeadVOIP | True or False | Sets dead players can talk to each other |
bPartitionSpectators | True or False | Sets spectators having the ability to talk and chat with non spectators |
bPositional3DVOIP | True or False | This is a non functional setting |
bPositional3DVOIPAllHear | True or False | This is a non functional setting |
Game Mode
Option Name | Valid Entries | What this option controls |
---|---|---|
RealismLevel | Numerical value between 0 and 3 | Sets the game mode for the server. 0 = Realism, 1 = Action, 2 = Classic, 3 = Custom |
Specating
Option Name | Valid Entries | What this option controls |
---|---|---|
SpectatingMode | Numerical value between 0 and 3 | Sets globally. 0 = 3rd person (and 1 and 2), 1 = Locked 3rd person ( and 2), 2 = 1st person only |
bAllowDeadRoaming | True or False | Sets if dead or spectating players can freely roam around the map |
bAllowViewpointSpectating | True or False | Sets if dead or spectating players can view the map from map viewpoint characters |
bLockTrueSpectatorsView | True or False | Sets if spectating players can only view from the first person camera |
bAllowKillCamera | True or False | Sets if dead players will get a "kill cam" of the location they were killed from |
Reinforcments
Option Name | Valid Entries | What this option controls |
---|---|---|
ReinforcementTimeScale | Numerical value between 0 and 1 | Sets globally if the map designated reinforcement times are scaled up or down |
Honor Gating
Option Name | Valid Entries | What this option controls |
---|---|---|
MinimumHonor | Numerical value between 0 and 99 | Sets the minimum player honor needed to join the server |
MaximumHonor | Numerical value between 1 and 100 | Sets the maximum player honor needed to join the server |
Welcome Screen and Message Of The Day
Option Name | Valid Entries | What this option controls |
---|---|---|
BannerLink | A URL to the servers banner of choice. Must be a .png. Example: http://www.heroesofstalingrad.com/ServerAd/RO2_ServerTest.png | Sets the the welcome screen banner image players see when joining the server |
ClanMotto | Text string. Exmaple: Welcome to our Red Orchestra 2 server! | Sets the Motto line of the welcome screen that players see when joining the server |
ClanMottoColor | Numeric Color Code. Example: (B=0,G=0,R=0,A=255) | Sets the text color of the motto line |
ServerMOTD | Text string. Exmaple: This is our message of the day ...@nl@@nl@Please enjoy your time on our server@nl@@nl@@nl@This is the last line | Sets the MOTD text. @nl represents a line break |
ClanMottoColor | Numeric Color Code. Example: (B=0,G=0,R=0,A=255) | Sets the text color of the MOTD text |
WebLink | A URL to the server owners webpage. Example: www.redorchestra2.com | Sets the welcome screen link to direct players to the servers/communities website |
WebLinkColor | Numeric Color Code. Example: (B=0,G=0,R=0,A=255) | Sets the welcome screen link color |
Maps
bUseMapList=True - This sets the server to use a custom map list you specify instead of the entire default map list.
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:
Game Map Cycle |
---|
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.
Enable/Disable Functionality
Option Name | Valid Entries | What this option controls |
---|---|---|
bDisableSpawnOnSquadLeader | True or False | Sets Spawn on Squad Leader system on or off |
bHalfTimeTeamSwap | True or False | Sets teams to swap sides after the first round is over |
bDisableOverheadMap | True or False | Sets the overhead map to be on or off |
bDisableCompass | True or False | Sets the compass to be on or off |
bDisableTeamDeathIcons | True or False | Sets team death icons on the main HUD on or off |
bDisableSquadMemberIcons | True or False | Sets Squad Member icons on the main HUD on or off |
bDisableSquadLeaderIcon | True or False | Sets Squad Leader icons on the main HUD on or off |
bDisableEnemySpottedIcons | True or False | Sets Enemy Spotted icons on the main HUD on or off |
bDisableTacticalView | True or False | Sets Tactical View on or off |
bDisableTacticalSquadLeaderIcons | True or False | Sets Squad Leader icons in tactical view on or off |
bDisablePeripheralActionIndicators | True or False | Sets Peripheral Action Indicator system on or off |
bDisablePeripheralWhips | True or False | Sets Peripheral whips to be on or off (indicator that rounds are passing near player) |
bDisableObjectiveForceOutput | True or False | Sets if player force indicators (silhouettes on cap bar) are visible by players |
bDisableObjectiveNotifications | True or False | Sets if players receive messages about objectives being under attack |
bLimitedGrenades | True or False | Sets explosive (except smoke) grenades to be limited to 1 per soldiers |
bNoGrenades | True or False | Sets no grenades (except smoke) for all players on or off |
Information on Scoreboard
Option Name | Valid Entries | What this option controls |
---|---|---|
bShowIPOnScoreboard | True or False | Sets if server IP is visible on the scoreboard |
bShowDateOnScoreboard | True or False | Sets if the date is visible on the scoreboard |
bShowSteamIDsOnScoreboard | True or False | Sets if player's SteamIDs instead of names are on the scoreboard |
Clan Match Functionality
Some of these options may not yet be implemented
Option Name | Valid Entries | What this option controls |
---|---|---|
bForceDemoRecording | True or False | Forces every connecting client to record a client side demo when connecting to the server |
bAutoEndOfMatchScoreboardScreenshot | True or False | Forces every connecting client to take a screenshot of their scoreboard at the end of the round |
bIgnoreScoreForTieBreaking | True or False | Game will ignore team scores as a tie-breaker condition |
bUseCapturesForTieBreaking | True or False | Game will ignore team capture points held as a tie-breaker condition |
Restrictions
Option Name | Valid Entries | What this option controls |
---|---|---|
bNoVehicles | True or False | Sets if vehicles will be available on the server on combined arms and tank only maps |
bNoWeaponLimits | True or False | Sets if the server enforces a weapon limit |
bClassicWeaponLoadout | True or False | Sets if server will ignore ranking system and use the Classic loadouts and availability |
bRealisticPistolLoadouts | True or False | Sets if all classes or only select roles will have access to pistols |
bRealisticDrivingRestrictions | True or False | Sets if drivers of tanks can move the vehicle while in positions that would prohibit them from doing so realistically |
Tank AI Firing
Option Name | Valid Entries | What this option controls |
---|---|---|
TankAIFiringSetting | Numerical values 0 - 6 | Sets how AI in player controlled tanks will react. 0 = Only fire at human designated tarts, 1 = Only Hull MG can fire at human designated targets, 2 = Only Main Cannon can fire at human designated targets, 3 = AI will never engage, 4 = Only Hull MG will engage at will, 5 = Only Main Cannon will engage at will, 6 = All AI will engage at will |
Client Side Hit Detection
Option Name | Valid Entries | What this option controls |
---|---|---|
bClientSideHitDetection | True or False | Sets if the server will use client side hit detection |
Tank Damage Model
Option Name | Valid Entries | What this option controls |
---|---|---|
VehicleMobilityDamageMode | Numerical values 0 - 2 | Sets tank mobility damage limits. 0 = Can not be damaged or destroyed, 1 = Can not be destroyed, 2 = Can be destroyed |
TankTurretDamageMode | Numerical values 0 - 2 | Sets tank turret damage limits. 0 = Can not be damaged or destroyed, 1 = Can not be destroyed, 2 = Can be destroyed |
VehicleCrewDamageMode | Numerical values 0 - 2 | Sets tank crew damage limits. 0 = Can not be killed, 1 = Can only be killed if exposed, 2 = Can be killed |
Friendly Player Collision
Option Name | Valid Entries | What this option controls |
---|---|---|
FriendlyInfantryCollisionType | Numerical values 0 - 2 | Sets collision between friendly players (non AI). 0 = none, 1 = reduced collision size, 2 = full collision |
Enemy Spotted
Option Name | Valid Entries | What this option controls |
---|---|---|
Enemy Spotted Mode | Numerical values 0 - 2 | Sets the enemy spotted mode. 0 = Hud, Map and Tactical View, 1 = Tactical View and Map, 2 = Map Only |
Death Messages
Option Name | Valid Entries | What this option controls |
---|---|---|
KillMessageMode | Accepted values: ROKMM_None, ROKMM_OwnDeath, ROKMM_Own, ROKMM_ALL | Sets the death messages players see. None = None, OwnDeath = Own Death Messages, Own = Players Kills, All = All Death Messages |
DelayedKillMessages | Value in seconds. Example: 10 | Sets the delay in seconds after a death happens before the death is broadcast |
Melee Only
Option Name | Valid Entries | What this option controls |
---|---|---|
bMeleeOnly | True or False | Sets the game to only allow melee strikes |
Game Mode Options For Custom
Option Name | Valid Entries | What this option controls |
---|---|---|
bDisableProgressionBonuses | True or False | Sets the game to ignore all level progression bonuses |
bClassicWeaponLoadout | True or False | Sets the game to use the classic weapon loadout instead of players unlocks |
bSlowBandaging | True or False | Sets the game to use the slower bandaging system that takes twice as long |
bLegDamageSlowsPlayer | True or False | Sets the game to make player leg damage slow the player |
bClassicStaminaAndSprinting | True or False | Sets the game to use the classic modes stamina pool and sprint speed |
bStopSprintingWhenExhausted | True or False | Sets the game to stop players from sprinting when they are out of stamina (similar to RO 1) |
bWeaponHandlingClassic | True or False | Sets the game to use the classic weapon handling model |
bCasualWeaponFunctionality | True or False | Sets the game to use action modes weapon functionality with no free-aim and the addition of crosshairs |
bNoControlledBreathingZoom | True or False | Sets the game to only zoom in on iron sights and have any additional focus zoom (this will make targets smaller on screen then in real life) |
bIncreasedSuppressionEffects | True or False | Sets the game to have increased suppression effects (more screen shake, etc) |
bIncreasedBreathStaminaEffects | True or False | Sets the game to have increased breathing effects when stamina is low (faster breathing, more weapon movement) |
PlayerHitSoundMode | Numerical values between 0 - 2 | Sets the sound level when players are hit by bullets. 0 = exaggerated, 1 = mildly exaggerated, 2 = not exaggerated |
Firefight Settings
Option Name | Valid Entries | What this option controls |
---|---|---|
TimeLimit | Numerical value in seconds. Example: 300 | Sets the time limit for a firefight game |
FinalCountdownTime | Numerical value in seconds. Example: 60 | Sets the time limit for Sudden Death. This will trigger if both teams are tied when the time limit is reached for the game. |
WinStrengthPoints16 | Numerical value in kills. Example: 40 | Sets the kill point win condition for a 16 player sized server |
WinStrengthPoints32 | Numerical value in kills. Example: 60 | Sets the kill point win condition for a 32 player sized server |
WinStrengthPoints64 | Numerical value in kills. Example: 100 | Sets the kill point win condition for a 64 player sized server |
bUseReadySystem | True or False | Sets the Firefight game type to use the Ready Up system if it is not set globally |
bUseMatchWarmup | True or False | Sets the Firefight game type to use the Match Warmup system if it is not set globally |
WarmupRoundDuration | Numerical value in seconds. Example: 0 | Sets the Firefight game kill message delay time. Overrides global setting for Firefight |
KillMessageDelay | Numerical value in seconds. Example: 30 | Sets the Firefight game type match warmup time |
KillMessageMode | Accepted values: ROKMM_None, ROKMM_OwnDeath, ROKMM_Own, ROKMM_ALL | Sets the Firefight death messages players see. None = None, OwnDeath = Own Death Messages, Own = Players Kills, All = All Death Messages. Overrides global setting for firefight |
bMeleeOnly | True or False | Sets the Firefight game type to be melee only |
bAllowDeadRoaming | True or False | Sets the Firefight game type to allow dead players to free roam |
bAllowViewpointSpectating | True or False | Sets the Firefight game type to allow dead players to view map viewpoints |
bAllowKillCamera | True or False | Sets the Firefight game type to have kill camera |
ReinforcementTimeScale | Numerical value between 0 - 1 | Sets the Firefight spawn time scale. |
Territory Settings
Option Name | Valid Entries | What this option controls |
---|---|---|
bUseReadySystem | True or False | Sets the Territory game type to use the Ready Up system if it is not set globally |
bUseMatchWarmup | True or False | Sets the Territory game type to use the Match Warmup system if it is not set globally |
WarmupRoundDuration | Numerical value in seconds. Example: 0 | Sets the Territory game kill message delay time. Overrides global setting for Firefight |
KillMessageDelay | Numerical value in seconds. Example: 30 | Sets the Territory game type match warmup time |
KillMessageMode | Accepted values: ROKMM_None, ROKMM_OwnDeath, ROKMM_Own, ROKMM_ALL | Sets the Territory death messages players see. None = None, OwnDeath = Own Death Messages, Own = Players Kills, All = All Death Messages. Overrides global setting for firefight |
bMeleeOnly | True or False | Sets the Territory game type to be melee only |
bAllowDeadRoaming | True or False | Sets the Territory game type to allow dead players to free roam |
bAllowViewpointSpectating | True or False | Sets the Territory game type to allow dead players to view map viewpoints |
bAllowKillCamera | True or False | Sets the Territory game type to have kill camera |
ReinforcementTimeScale | Numerical value between 0 - 1 | Sets the Territory spawn time scale. |
bDisableTimeLimit | True or False | Sets the Territory game type to have no map time limit |
bDisableReinforcementLimit | True or False | Sets the Territory game type to have no reinforcement limits |
ReinforcementScale | Numerical value between 0 - 1 | Sets the Territory game type reinforcement scale. 1 = full, .5 = half |
bUseCapturesForTieBreaking | True or False | Sets the Territory game type to ignore the capture of points to break a tie condition |
RoundLimit | Numerical values 1 - x | Sets the Territory game type round limits (if not set globally or per map). 1 = 1 round, 2 = 2 rounds, 3 and up = Best out of X rounds |
EndOfMapDelay | Numerical values in seconds. Example: 45 | Sets the Territory game type end of map delay before the server travels to the next map |
bLockdownEnabled | True or False | Sets the Territory game type to to enable or disable the lockdown system |
Countdown Settings
Option Name | Valid Entries | What this option controls |
---|---|---|
bUseReadySystem | True or False | Sets the Countdown game type to use the Ready Up system if it is not set globally |
bUseMatchWarmup | True or False | Sets the Countdown game type to use the Match Warmup system if it is not set globally |
WarmupRoundDuration | Numerical value in seconds. Example: 0 | Sets the Countdown game kill message delay time. Overrides global setting for Firefight |
KillMessageDelay | Numerical value in seconds. Example: 30 | Sets the Countdown game type match warmup time |
KillMessageMode | Accepted values: ROKMM_None, ROKMM_OwnDeath, ROKMM_Own, ROKMM_ALL | Sets the Countdown death messages players see. None = None, OwnDeath = Own Death Messages, Own = Players Kills, All = All Death Messages. Overrides global setting for firefight |
bMeleeOnly | True or False | Sets the Countdown game type to be melee only |
bAllowDeadRoaming | True or False | Sets the Countdown game type to allow dead players to free roam |
bAllowViewpointSpectating | True or False | Sets the Countdown game type to allow dead players to view map viewpoints |
bAllowKillCamera | True or False | Sets the Countdown game type to have kill camera |
bDisableTimeLimit | True or False | Sets the Countdown game type to have no map time limit |
RoundLimit | Numerical values 1 - x | Sets the Countdown game type round limits (if not set globally or per map). 1 = 1 round, 2 = 2 rounds, 3 and up = Best out of X rounds |
EndOfMapDelay | Numerical values in seconds. Example: 45 | Sets the Territory game type end of map delay before the server travels to the next map |
Looking for a game server host known for brilliant 24/7 customer support and quality hardware?
Try a Pingperfect Red Orchestra 2 server today! https://pingperfect.com/gameservers/red-orchestra-2-heroes-of-stalingrad-rising-storm-unranked-ro2-game-server-hosting-rental.php