Hosting

From Front lines Fuel of War

This page will contain information for running a server.

Return to the Main Page

Contents

Server Hosting

The files are available to download at the link below:

http://www.kaosstudios.com/ffow-server

This is a stand-alone dedicated server application for Frontlines: Fuel of War 1.0.2 and will run on Windows XP, Vista, and 2003 Server.

The application will let you host Frontlines servers. The full game, CD key, disc, and registration is not required.

Please note that THQ and Kaos Studios do not provide support for these tools and materials.

For assistance, please visit our community forums:

http://community.kaosstudios.com/forumdisplay.php?f=105

Notes

You will need to have the following installed:

.NET 2.0 Ageia PhysX - http://www.ageia.com/drivers/drivers.html DirectX Visual C++ Redistributable

kiff's Remote Console Application

NOTE: This is a third party developed tool that is not associated with Kaos Studios.

Dedicated Server Guide

Frontlines: Fuel of War Dedicated Server Guide Guide Version: 4 Date: March 27th, 2008 Game Version: 1.0.2

NOTE: There is currently a bug with multiple instancing. A hotfix will be released shortly.

Welcome to the Frontlines: Fuel of War Dedicated Server Setup Guide.

This guide will help you get your own dedicated started and explain the various configuration options available.

Hardware Requirements for Dedicated Server

HDD Space: 15GB (1.5GB for standalone dedicated server) OS: Windows XP (32/64) or Windows Vista (32/64) Addtl: Microsoft DirectX 9.0c & up http://www.microsoft.com/directx

Microsoft .Net Framework 2.0 http://www.microsoft.com/net/

AGEIA PhysX Drivers http://www.ageia.com/drivers/drivers.html


BANDWIDTH:

8 players 512Kb upload 16 players 1Mb upload 32 players 2Mb upload 64 players 5Mb upload

CPU:

8 players Intel Pentium 2.8HT or AMD Athlon 2800+ 16 players Intel Pentium 3.0HT or AMD Athlon 3000+ 32 players Intel Pentium 3.4HT or AMD Athlon 3400+ 64 players Intel Core2 E6600 (2.4Ghz) or AMD 2.8Ghz X2

(faster processors will do better, results vary based on maps hosted and system configuration)

RAM:

8 players 1GB 16 players 1.5GB 32 players 2GB 64 players 2GB

Note: Above specs are subject to change and are to be used as a guidelines only, observed results will vary.

Note: Larger maps with more vehicles have higher system requirements than smaller maps containing less vehicles.

Note: Maps SolarFarm and Oilfield will take the most bandwidth, cpu, and memory.

FFOW Installation

The first step in getting a dedicated server up and going is to install the game on the PC. Follow the instructions given during the installation process.

Starting a dedicated server

There are two types of dedicated servers available: LAN (Local Area Network) or Online servers.

Servers are launched from the command line by using the following syntax:

"FFOW.exe Server <mapname> -<server type> -unattended"

Where <mapname> is the name of the first map to be loaded on the server (fl-gnaw, fl-oilfield, etc) and <server type> is the kind of server to load (online or lan). The -unattended command will automatically handle any prompt caused by changes in the .ini files without requiring user interaction.

To launch an dedicated online server with the map FL-Village as the first map loaded use: "FFOW.exe Server fl-village -online -unattended"

To launch a dedicated LAN server with the map FL-Village as the first map loaded use: "FFOW.exe Server fl-village -lan -unattended"

Multiple Instances

These commands and settings will allow running multiple server instances on one machine:

CustomHomeDir=C:\MyAbsoluteCustomDir\ "FFOW.exe Server fl-village -online -unattended CustomHomeDir=C:\MyAbsoluteCustomDir\" "FFOW.exe Server fl-village -online -unattended CustomHomeDir=..\MyRelativeCustomDir\" Overides \My Documents\My Games\ behavior to a custom directory path CustomHomeDir will be checked first when reading DefaultGame.ini files and most all other files in the game CustomHomeDir will be where most all files are saved such as GCGame.ini, Launch.Log

CustomPublicIP=127.0.0.1 "FFOW.exe Server fl-village -online -unattended CustomPublicIP=127.0.0.1" When players join your online game this IP will be used instead of the automatically determined IP address. Use when players have problems connecting to your server

MultiHome=127.0.0.1 "FFOW.exe Server fl-village -online -unattended MultiHome=127.0.0.1" Sockets bind to this IP address to allow for multiple game severs on a single box

QueryPort=5478 "FFOW.exe Server fl-village -online -unattended QueryPort=5478" Game query port customization External tools can query a running game server via 8 byte UDP packet sent to this port "ÿÿÿÿFLSQ" DefaultEngine.ini [Engine.QueryProtocol] QueryPort=5478 ListenBindIP=0.0.0.0

Port=5476 "FFOW.exe Server fl-village -online -unattended Port=5476" N/A Slated to future game revision, clients will attempt to join on the default 5476 game port until a future client patch is released A LAN game started with a custom port can be joined like so: "FFOW.exe 127.0.0.1:5476" Game port customization DefaultEngine.ini [URL] Port=5476

MatchmakingPort=9103 "FFOW.exe Server fl-village -online -unattended MatchmakingPort=9103" N/A Slated to future game revision In game lobby uses this port to ping the game server DefaultEngine.ini [GCGameLobby.GCGameLobbyPC] MatchmakingPort=9103

Configuration of a dedicated server

Use binaries\ServerLauncher.exe as an alternative to modifying the .ini files directly. ServerLauncher.exe is included in the standalone dedicated server build.

The following server settings can be modified by editing the DefaultGame.ini file found under My Documents\My Games\Frontlines - Fuel of War Server\GCGame\Config

ServerName= Sets the name of your server.

Password= Set a password on your server. Players will be prompted for this password when attempting to join your game.

NumberOfRounds=3 Number of consecutive rounds played on a map before moving to the next map in the queue.

PercentTicketsPerTeam=100 Percentile modifier of the map's base ticket count (ie 200 sets ticket count to double the default). Applies to all maps.

NumberOfPublicSlots=32 Maximum number of player slots on the server.

bAllowFriendlyFire=false Enables friendly fire.

InfantryFriendlyFire=100 Percentile modifier to infantry friendly fire. If set to 50, infantry will only receive 50% of the default damage from friendly fire. Must have bAllowFriendlyFire set to true.

VehicleFriendlyFire=100 Percentile modifier to infantry friendly fire. If set to 50, infantry will only receive 50% of the default damage from friendly fire. Must have bAllowFriendlyFire set to true.

bAutoBalanceTeams=true Enables the autobalance system.

bAutoKickTeamKillers=false Enables the autokick team killer system. TK threshold is set in MaximumTeamKills.

MaximumTeamKills=3 Number of TK allowed before automatically getting kicked out of the server. Must have the bAutoKickTeamKillers setting set to true.

SpawnDelaySeconds=7 Sets the respawn time.

Loadouts_bGroundAssault=true Loadouts_bHeavyAssult=true Loadouts_bSniper=true Loadouts_bAntiTank=true Loadouts_bSpecialOps=true Loadouts_bCloseCombat=true Allows the enabling & disabling of specific loadouts.

WARNING: YOU MUST LEAVE AT LEAST ONE LOADOUT AVAILABLE IN ORDER TO BE ABLE TO SPAWN INTO THE GAME!

Roles_UpgradeSpeed=100 Percentile modifier to the role upgrade speed. Setting this to 200 will double the role upgrade speed from the default, for all roles.

Roles_GroundSupport=true Roles_AirSupport=true Roles_DroneTech=true Roles_Countermeasures=true Allows the enabling & disabling of specific loadouts.

WARNING: YOU MUST LEAVE AT LEAST ONE ROLE AVAILABLE IN ORDER TO BE ABLE TO SPAWN INTO THE GAME!

Vehicles_bTransportHelicopters=true Vehicles_bAttackHelicopters=true Vehicles_bJets=true Vehicles_bAntiAircraft=true Vehicles_bHeavyArmor=true Vehicles_bMediumArmor=true Vehicles_bLightArmor=true Vehicles_bCivilian=true Allows the enabling & disabling of specific vehicles.

+MapCycle=2 Used to specify the map rotation. Each map to be played needs a MapCycle= entry on a separate line. For example, to create a map list consisting of Gnaw, Solarfarm, Oilfield and Solarfarm, the following should be entered:

+MapCycle=2 +MapCycle=7 +MapCycle=5 +MapCycle=7

Refer to below to find the maps index number:

Gnaw Map Index=2 Invasion Map Index=3 MountainTop Map Index=4 OilField Map Index=5 Roundabout Map Index=6 Solar Farm Map Index=7 Village Map Index=8 Street Map Index=9

bLoopingMapCycles=true Setting this to true will repeat the map rotation once the last map in the list has been played. If set to false, the last map in the list will be played continuously.

MinimumNumberOfPlayers=0 Sets the minimum number of players required to start the game. Game will play warm-up rounds until that number has been met. Role upgrading is disabled during warm-up rounds.

RoundTimeSeconds=240 Sets the round timer, in seconds. Needs to be configured per map above

Connectivity Issues

If the server is behind a firewall or a router, the following ports should be forwarded for both UDP and TCP in order to avoid connectivity problems:

Port Description ____ ___________ 5476 Game Port 5477 Broadcast 5478 Query Port 6623 ServerBeacon Port 7623 Beacon Port 9378 Listen Port 9103 Game Lobby 9855 Game Lobby 9856 Game Lobby 14507 Remote Console Port (disabled by default)

Standalone Dedicated Server

HDD Space required: 1.5GB

Binaries\ServerLauncher.exe - GUI tool for launching a dedicated server, will save a series of .ini files local to the path the tool was launched from

Binaries\FFOW_RConStandard.exe - GUI tool for remote administration of server, see Binaries\FFOW_RConStandard_Readme.txt for more information on RCon

Binaries\Tools\FFOW_QueryProtocolTest\ - Configure FFOW_QueryProtocolTest.bat to query a running server using UDP (useful when running without debugging information)

By Default, the localhost is queried on the default query port 127.0.0.1:5478 For more info see file: Binaries\Tools\FFOW_QueryProtocolTest\FFOW_QueryProtocolTest_Readme.txt

Binaries\FFOW-Dedicated.exe - Game server exe, logging information is not generated

Binaries\FFOW-Dedicated-Logging.exe - Game server exe, debug logging information is generated

Query Port Configuration

Default query port is 5478 Optional, Customize query port on the server via command line argument: QueryPort=5478 Optional, Customize query port on the server via .ini file settings: DefaultEngine.ini [Engine.QueryProtocol] QueryPort=5478 ListenBindIP=0.0.0.0

See file: Binaries\Tools\FFOW_QueryProtocolTest\FFOW_QueryProtocolTest_Readme.txt

RCON Enabling remote console on a dedicated server

See file: Binaries\FFOW_RConStandard_Readme.txt

Edit this file to enable remote console access: My Documents\My Games\Frontlines - Fuel of War Server\GCGame\Config\GCEngine.ini

This block of text will configure the properties of the remote console. By default several options are commented out (lines starting with with ;) If no password is given the remote console will be disabled

[Engine.RemoteConsole]

-- Admin username

AdminName=admin

-- Admin Password (blank for disable remote console)

AdminPassword=123

-- ListenPort 14507 is default

ListenPort=14507

-- ListenBindIP 0.0.0.0 is default

ListenBindIP=0.0.0.0

-- MaxClients that can connect via remote console at the same time

MaxClients=7

-- Time in seconds after initial connection to wait for username/password response

LoginTimeout=7

-- Prevent an individual IP address from taking up all remote console slots

MaxConnectionsPerIP=2

Startup the game server as normal and the remote console will now be active.

RCON TCP/IP communication with a remote console enabled server

Open a TCP/IP streaming socket to the remote console port of the server

All commands sent and received are separated with new line characters '\n' or 0x04

The server will send back a string (without the quotes): "WELCOME! Frontlines: Fuel of War (RCON) VER=2 CHALLENGE=38D384D07C"

Note: Challenge string length is not fixed and will vary

To generate a response use the MD5 algorithm to hash an ansi string: ResponseString = MD5Hash( ChallengeStringFromServer + Password );

The client will send this string to the server to login: "RESPONSE UserNameHere ResponseString"

If the login was successful the client will receive: "Login Success!"

If the login failed, the client will be disconnected immediately

Once the client is logged in commands can be sent to be run and responses can come back

RCON Example commands

> PLAYERLIST PlayerList: Map=Fl-Gnaw Time=340 Players=1/8 Tickets=47,187 ID Name Ping Team Squad Score Kills Deaths TK CP Time Idle Loadout Role RoleLvl Vehicle Hash ProfileID 1 DevPC2 2 1 1 2 0 0 0 47 57 0 Assault AirSupport 1 WDEP_RCDroneHeli 123 // Note the Hash will be blank until a future patch // The ProfileID corresponds to the player's profile, this can be used to identify individual players

> KICK PlayerName="PlayerNameHere" PlayerID=3 ProfileID=123 // Playername, PlayerID, or ProfileID can be used, only one is required

> PLAYERSAY PlayerName="PlayerNameHere" PlayerID=2 SayText="Example of speaking directly to a specific player" // Broadcasts a text message to a single player in game (playing on the running server)

> SAY Example of speaking directly to a specific player // Broadcasts a text message to all players in a game

> CHATLOGGING FALSE // This will enable/disable logging of all player chat to the connected remote console

> FORCEMAPCHANGE FL-Street // Immediately force a map change to the map name given, same as calling SetNextMap then NextMap

> RESTARTMAP // Immediately restarts the current map

> NEXTMAP // Immediately force a map change to the next map in the maplist, should now bring up scoreboard first

> MAPLIST MapList: CurrentCycleIndex:0 CycleIndex MapName 0 FL-Gnaw 1 FL-Invasion 2 FL-MountainTop // Note the cycle index corresponds to the order of the maps in the list

> SETMAPLIST FL-SolarFarm FL-Village FL-Street // Replaces the current list of maps with the new list given

> SETNEXTMAP fl-roundabout // Inserts the given map name to be next in the map list

> RestartRound // Restarts the current round

> NextRound // Advances to the next round

> SetNumRounds 5 // Sets the current total number of rounds to 5

> GetCurrentMap // Returns the name of the current map

> GetNextMap // Returns the name of the next map

> SetNextMapCycleIndex 4 // Sets the next map cycle index to land on the user specified value

Remote Console

Frontlines: Fuel of War Remote console

Requires v1.02 of game

RCON Enabling remote console on a dedicated server

See file: Binaries\FFOW_RConStandard_Readme.txt

Edit this file to enable remote console access: \GCGame\Config\GCEngine.ini

This block of text will configure the properties of the remote console. By default several options are commented out (lines starting with with ;) If no password is given the remote console will be disabled

[Engine.RemoteConsole]

-- Admin username

AdminName=admin

-- Admin Password (blank for disable remote console)

AdminPassword=123

-- ListenPort 14507 is default

ListenPort=14507

-- ListenBindIP 0.0.0.0 is default

ListenBindIP=0.0.0.0

-- MaxClients that can connect via remote console at the same time

MaxClients=7

-- Time in seconds after initial connection to wait for username/password response

LoginTimeout=7

-- Prevent an individual IP address from taking up all remote console slots

MaxConnectionsPerIP=2

Startup the game server as normal and the remote console will now be active.

RCON TCP/IP communication with a remote console enabled server

Open a TCP/IP streaming socket to the remote console port of the server

All commands sent and received are separated with new line characters '\n' or 0x04

The server will send back a string (without the quotes): "WELCOME! Frontlines: Fuel of War (RCON) VER=2 CHALLENGE=38D384D07C"

Note: Challenge string length is not fixed and will vary

To generate a response use the MD5 algorithm to hash an ansi string: ResponseString = MD5Hash( ChallengeStringFromServer + Password );

The client will send this string to the server to login: "RESPONSE UserNameHere ResponseString"

If the login was successful the client will receive: "Login Success!"

If the login failed, the client will be disconnected immediately

Once the client is logged in commands can be sent to be run and responses can come back

RCON Example commands

> PLAYERLIST PlayerList: Map=Fl-Gnaw Time=340 Players=1/8 Tickets=47,187 ID Name Ping Team Squad Score Kills Deaths TK CP Time Idle Loadout Role RoleLvl Vehicle Hash ProfileID 1 DevPC2 2 1 1 2 0 0 0 47 57 0 Assault AirSupport 1 WDEP_RCDroneHeli 123 // Note the Hash will be blank until a future patch // The ProfileID corresponds to the player's profile, this can be used to identify individual players

> KICK PlayerName="PlayerNameHere" PlayerID=3 ProfileID=123 // Playername, PlayerID, or ProfileID can be used, only one is required

> PLAYERSAY PlayerName="PlayerNameHere" PlayerID=2 SayText="Example of speaking directly to a specific player" // Broadcasts a text message to a single player in game (playing on the running server)

> SAY Example of speaking directly to a specific player // Broadcasts a text message to all players in a game

> CHATLOGGING FALSE // This will enable/disable logging of all player chat to the connected remote console

> FORCEMAPCHANGE FL-Street // Immediately force a map change to the map name given, same as calling SetNextMap then NextMap

> RESTARTMAP // Immediately restarts the current map

> NEXTMAP // Immediately force a map change to the next map in the maplist, should now bring up scoreboard first

> MAPLIST MapList: CurrentCycleIndex:0 CycleIndex MapName 0 FL-Gnaw 1 FL-Invasion 2 FL-MountainTop // Note the cycle index corresponds to the order of the maps in the list

> SETMAPLIST FL-SolarFarm FL-Village FL-Street // Replaces the current list of maps with the new list given

> SETNEXTMAP fl-roundabout // Inserts the given map name to be next in the map list

> RestartRound // Restarts the current round

> NextRound // Advances to the next round

> SetNumRounds 5 // Sets the current total number of rounds to 5

> GetCurrentMap // Returns the name of the current map

> GetNextMap // Returns the name of the next map

> SetNextMapCycleIndex 4 // Sets the next map cycle index to land on the user specified value

> PLAYERSAY PlayerName="PlayerNameHere" PlayerID=2 SayText="Example of speaking directly to a specific player"

> SAY Example of speaking directly to a specific player

> CHATLOGGING FALSE // This will enable/disable logging of all player chat to the connected remote console

> FORCEMAPCHANGE FL-Street // Immediately force a map change to the map name given

> RESTARTMAP // Immediately restarts the current map

> NEXTMAP // Immediately force a map change to the next map in the maplist, should now bring up scoreboard first

> MAPLIST MapList: CurrentCycleIndex:0 CycleIndex MapName 0 FL-Gnaw 1 FL-Invasion 2 FL-MountainTop

> SETMAPLIST FL-SolarFarm FL-Village FL-Street SetMapList Success!

> SETNEXTMAP fl-roundabout SetNextMap Success!

> RestartRound // Restarts the current round

> NextRound // Advances to the next round

> SetNumRounds 5 // Sets the current total number of rounds to 5

> GetCurrentMap // Returns the name of the current map

> GetNextMap // Returns the name of the next map

> SetNextMapCycleIndex 4 // Sets the next map cycle index to land on the user specified value