Linux Server

From AAManual

Jump to: navigation, search
TABLE OF CONTENTS

The examples that follow explain how to install the America's Army Linux Server onto a generic Linux distribution via a SSH connection. Please note that the installation steps shown here are the most commonly used. There are other methods of installing, setting up, and running an America's Army Linux Server.

Before you begin, you may wish to glance over the frequently asked questions section at the end of this manual. You must decide which Linux user to install and where the America's Army server should be installed.

Download and Installation Process

Downloading the Linux Dedicated Server Package

The first step is to download the America's Army Linux Dedicated Server package. This can be done with a program such as GNU wget. GNU wget is standard on most Linux distributions. The package can be downloaded from a number of different mirrors; a listing of mirrors is available on the America's Army website.

Use the following instructions to download the installer. Type the commands at the command console.

What to Type: Explanation:
wget fileurl <enter> Replace fileurl with the URL (web address beginning with http:// or ftp://) that leads to the America's Army installer file. This file will take some time to download as it is quite large.


Downloading the Server Package onto the Linux Machine
Enlarge
Downloading the Server Package onto the Linux Machine

Installation Process

The following table displays the installation procedure for the America's Army Linux Server Dedicated Package.

What to Type: Explanation:
tar xvfj americasarmy-lnxded-270.tar.bz2 <enter> After the file has been downloaded, decompress it.

The Linux Server files will be decompressed into a directory called aops-lnxded-2.7.0.


Decompressing the Linux Server Package
Enlarge
Decompressing the Linux Server Package


What to Type: Explanation:
cd aops-lnxded-2.7.0/System The next step is to navigate to the System directory of the Server install.


Changing Directories
Enlarge
Changing Directories

Basic Setup

Now that the America's Army Dedicated Linux Server has been installed, you are ready to set up the server.

Basic Server Settings Defined

This section covers the basic settings that can safely be changed and the settings that need to be changed to have your server listed on the America's Army in-game browser.


Server Configuration Example Settings
Enlarge
Server Configuration Example Settings


The following sections detail each group of settings that must be configured during the server setup. To find these settings in the server configuration file, look for the header in brackets, and the settings will be contained under the header.


[Engine.GameReplicationInfo]

Setting: Description:
ServerName= The name for your server. This name will appear in the game browser and at the top of your server when players are logged in.
ShortServerName= A shorter name for your server.
AdminName= The Administrator's name.
AdminEmail= The e-mail address of the administrator.


[Engine.AccessControl]

Setting: Description:
AdminPassword= Password used to connect to the server as an administrator.
GamePassword= Password required to join the server. This is useful for "locking" the server so that only players who know the password can join. Leave blank to allow anyone to join the server.
PlayerAdmin= Enter the usernames of the players who should have admin abilities while playing on the server. Add more PlayerAdmin= lines if necessary.


[IpDrv.GameSpyQR]

Next find [IpDrv.GameSpyQR]. If the Linux server has more than one IP address, remove the semicolon in front of IP= and set the IP address you want the server to use. if your Linux server has only one IP address, leave the semicolon.

Note: The IP address specified here must be the actual IP address of a network interface in the machine. You can see what IP addresses are assigned to the network interfaces by using the ifconfig command.


[DBAuth.DBAuth]

Next find [DBAuth.DBAuth]. Enter the Internet IP address of the server directly after GameServerIP=.

Firewall Port Settings

In order for the Master Server Browser (MBS), GameSpy and Authentication to work correctly and to allow players outside of your internal network to join the server, several ports must be open to the server. These ports must be opened through your firewall and/or router; more information on how to open and forward ports can be found in the documentation supplied with your firewall and/or router.


The following ports must be open
UDP 1716, 1717, 1718, 8777, 27900
TCP 20025, 20045, 20046, 20047


PunkBuster

Use the following instructions to activate the PunkBuster anti-cheat system.

What to Do:
1. Navigate to the pb folder inside of the System folder (armyops/System/pb)
2. Using the text editor of your choice, create a file called pbsvgame.cfg
3. The file should contain one line: sv_punkbuster 1

PunkBuster is now enabled. If you wish to disable PunkBuster, simply open the pbsvgame.cfg file and change the 1 to a 0.

For more information on all of the different PunkBuster settings and admin commands, see the Punkbuster for Server Administrators manual:

http://www.evenbalance.com/publications/aa-ad/index.htm

Logging and Statistics

Logs can be an incredibly useful tool in troubleshooting problems, seeing who is using your server, and finding out what they are doing and when. There are two different types of log files that the America's Army server can produce:

Server Status Logs

The server status log file is automatically created when the server starts. You can specify a name for this log file when starting the server with the -log=<logname> parameter. If you don't specify a name, the default name of ucc.log is used. This log file shows the general status of the server, and any troubleshooting information. Keep in mind this log file is not automatically archived, and is erased and recreated every time the server is started. This log file is stored in the armyops/System folder.

General Logs

The general log files are created in the logs directory in the armyops/System folder. To enable these logs, simply type: mkdir logs within the armyops/System directory to create the folder. Every time the server is started, a new log file is created. These log files show detailed data about players, round information and other various events.

Startup

Now you can start the server. Starting the server allows you to set a number of options for the game via switches added to the command to start it.

To start the server, type the following from within your armyops/System directory:

./server-bin <servertype> <mapname> -nohomedir ini=server.ini log=<logname>
Switch Name: Replace With: Description:
<servertype> GLOBAL or LAN A GLOBAL server will show up on the in-game browser, and anyone can join. A LAN server will only appear on the LAN in-game browser, and only players on your internal network (LAN) can join.
<mapname> Bridge_SE.aao, Border.aao, etc Determines the map that the server will run.
-nohomedir Do not replace

(See FAQ section for more information)

Ensures that the server loads the correct server and PunkBuster settings from the System directory.
<logname> AALog.log, bridge.log, etc. Name for the server status log file. This log file is erased and recreated every time the server is started.


As the server starts, you should see a screen similar to the following screenshot:


Starting the America's Army Server
Enlarge
Starting the America's Army Server


Congratulations! You've just created your own America's Army Linux Server.


A Few More Tips

To stop the server, press <ctrl><c>. Note that if you are connected via SSH, closing the SSH window will also shut down the server.

An easy way to have the server run in the background is to append the server startup line with an &.

Setting: Description:
<ctrl> <c> Stops the server. Note that if you are connected via SSH, closing the SSH window will also shut down the server.
Adding & to the startup command. So that:
./server-bin <servertype> <mapname> -nohomedir ini=server.ini log=<logname>

Becomes:

./server-bin <servertype> <mapname> -nohomedir ini=server.ini log=<logname> &

This will allow the server to continue to run in the background if the SSH window is closed.


Another way to send the server to a background process is to use the GNU Screen program. Screen allows you to start the server and then "detatch" from that screen session. Many Linux distributions include Screen.


What to Type: Explanation:
screen <enter> Starts the Screen program.
./server-bin <servertype> <mapname> -nohomedir ini=server.ini log=<logname>
Starts the server.
<ctrl><a><d> After the server loads, use this key combination to detatch from the screen session. The server will continue to run in the background and you can close the SSH window.
screen -r <enter> Use this key combination to bring the screen session back to the foreground. You will see the server still running.

GNU Screen has many other configuration options; for the complete documentation, type: man screen.

Registration

Once your server is up and running, the final step is registration. Registration is required to run your server in Authorized mode and appear on the in-game browser.

Use the following instructions to register your server:


What to Do:
1. Open your web browser to the following URL: http://login.americasarmy.com.
2. Click Maintain Account.
3. Using your in-game user name, log into the account.
4. Click Register Server.
5. Enter the Name, IP Address, and Connection Speed for your server. The query port defaults to 1717 (game port +1), and unless you specified a different port while setting up the server you should leave the default query port at 1717.
6. Click OK. Your server will be entered into the Authentication database and will now run in Authorized mode.


Activating Honor on your Server

America's Army allows server owners to license Honor on their servers. For more information on licensing Honor, please visit: http://www.aahonor.com/.

Use the following instructions to activate Honor on your server:


What to Do:
1. Open your server.ini file using a text editor.
2. Find the [DBAuth.AuthorizeServerRequestAdapter] section.
3. Insert your honor server username after ServerAuthUserName=.
4. Insert your honor server password after ServerAuthPassword=.
5. Ensure the IP address after GameServerIP= is correct.
6. Save and close the file.


Alternatively, the IP address, username and password can be specified when starting the server.

./server-bin <servertype> <mapname> -nohomedir ini=server.ini log=<logname>
serverauthip=<ipaddress> serverauthusername=<username> serverauthpassword=<password>

Server Settings

This section covers all of the important confirmation settings that can be changed in the server configuration file. Tournament mode settings are covered in the next section.


[URL]

Setting: Description:
Port= The port the server will listen on. The default port is 1716.


[Engine.GameReplicationInfo]

Setting: Description:
ServerName= The name of the server. This name appears on the in-game browser.
ShortServerName= A shorter name for the server.
AdminName= The server administrator's name.
AdminEmail= The e-mail address of the server administrator.
MOTDLine1-4= Message of the Day (MOTD) displayed to players when connecting.
MOTDDisplaySections= Number of seconds the MOTD is displayed to players.
bHudHide...= Enables or disables hiding of the specific HUD item.


[Engine.AccessControl]

Setting: Description:
AdminPassword= Password used to connect to the server as an administrator.
GamePassword= Password required to join the server. This is useful for "locking" the server so that only players who know the password can join. Leave blank to allow anyone to join the server.
PlayerAdmin= Enter the usernames of the players who should have admin abilities while playing on the server. Add more PlayerAdmin= lines if necessary.


[Engine.GameInfo]

Setting: Description:
MaxSpectators= Maximum number of spectators that the server will allow.
MaxPlayers= Maximum number of players that the server will allow. Note that certain maps have a specific number of player slots; setting MaxPlayers to a higher number than the map will allow will force the extra players to spectate.
MaxAdmins= Maximum number of administrators or player admins that are allowed on the server.
bDeathMessages= Enables or disables death messages.
ScoreMode= SSM_ON - Allows viewing of the scoreboard at all times.

SSM_Off - Disables viewing of the scoreboard.

SSM_Round - Limits viewing of the scoreboard to between rounds.

SSM_Match - Limits viewing of the scoreboard to between matches.

TimeLimit= Number of minutes each round will last.


[AGP_Gameplay.AGP_GameMultiPlayer]

Setting: Description:
bRequireAuthorization= Enables or disables authorization on LAN servers. Global servers always have authorization enabled.
bMPCheatsEnabled= Enables or disables the built-in multiplayer cheat commands.
MinHonor= Mininum honor level required to join the server.
MaxHonor= Maximum honor level allowed on the server.


[AGP_Gameplay.AGP_GameTeam]

Setting: Description:
FFScoreLimit= Maximum amount of ROE a player is allowed before being kicked or killed.
MaxTeamSize= Maximum size of each team.
bPlayersBalanceTeams= Enables or disables automatic team balancing; new players will be forced to join the smaller team.
bAutoBalanceBetweenRounds= Enables or disables automatic team balancing between rounds.
bNeverAutoBalance= Enables or disables automatic team balancing. Overrides bPlayersBalanceTeams and bAutoBalanceBetweenRounds.
bSpectatePlayersOnly= Enables or disables ability to spectate scenic viewpoints.
bSpectateFirstPersonOnly= Enables or disables ability to spectate from first person view only.
bSpectateFriendsOnly= Enables or disables ability to spectate teammates or both teammates and enemy players.
bEnableROEKickTimer= Enables or disables kicking for ROE violations that occur within the first 15 seconds of the round.
bEnableROEKick= Enables or disables kicking for ROE violations.
bEnableROEKickDeath= Enables or disables killing the ROE violator rather than kicking them.


[AGP_Gameplay.AGP_GameDeathmatch]

Setting: Description:
MinNetPlayers= Mininum number of players required before the round will start.
InitialWarmupTime= Number of seconds before the round starts after a map cycle.
bCycleMaps= Enables or disables server map cycling.
RoundsPerMatch= Number of rounds per match.
MatchesBeforeCycle= Number of matches before the server will cycle maps.
bKickIdlePlayersTimed= Enables or disables timed kicking of idle players.
bKickIdlePlayersRounds= Enables or disables kicking of idle players between rounds.
bKickIdleSpectators= Enables or disables kicking of idle spectators.
IdlePlayerKickTime= Number of minutes before an idle player is kicked.
IdlePlayerKickRounds= Number of rounds before an idle player is kicked.


[AGP_GamePlay.AGP_MapList]

Setting: Description:
Maps= Specify here the maps that the server should cycle. Each map must be placed on a separate line.
MapNum= Number of maps to cycle.


[AGP_GamePlay.AGP_GameInfo]

Setting: Description:
ForceGameplay= Determines the gameplay type.

Gameplay Types:

FORCE_None - Gameplay type will be dependent on the map.

FORCE_Normal - Forces the "live fire" gameplay type.

FORCE_Miles - Forces the MILES gameplay type.

bEnableCodetesting= Enables or disables comparing client code files to server code files.
bEnableMapTesting= Enables or disables comparing client map files to server map files.

Tournament Mode

This section covers all of the settings and procedures required to run in tournament mode. All players should familiarize themselves with tournament mode by reading the Tournament Mode Manual included in the Help directory of the America's Army install.

Tournament Specific Configuration Settings

[Engine.AccessControl]

Setting: Description:
asTeamPasswords[0]= Password required to join team 0.
asTeamPasswords[1]= Password required to join team 1.


[AGP_GamePlay.AGP_GameTeamObjective]

Setting: Description:
bTournamentMode= Enables or disables tournament mode.


[AGP_GamePlay.AGP_GameTournament]

Setting: Description:
asTournamentTeamName[0]= Name of tournament team 0.
asTournamentTeamName[1]= Name of tournament team 1.
sMatchName= Name of the tournament match.
sTournamentName= Name of the tournament.
sLeagueName= Name of the tournament league.
iTournamentRequestDelayTime= Number of sections after a team captain makes a request until that team captain can make another request.
iTournamentRoundDelayTime= Number of seconds between rounds.
iTournamentWarmupDuration= Number of minutes the planning round will last.
iTournamentSwapTime= Number of seconds each team or team captain has in order to set up their team's player class roles after a team swap.
iTournamentPauseLimit= Number of seconds "time-outs" requested by a team captain will last. Set to 0 to enable unlimited time-outs.
bTournamentMercyRule= Enables or disables the "EndEx" rule.
bTournamentOpenAllWeaponClassSlots= Enables or disables all weapon class slots.
bTournamentTeamCaptainsAllowed= Enables or disables team captains.
bTournamentTeamPasswordsRequired= Enables or disables whether team passwords are required.
bTournamentTieSuddenDeath= Enables or disables the sudden death round.
bTournamentTieScore= Enables or disables ties.
bTournamentEnableRandomTeamAssignments= Enables or disables random team assignment.


Starting the Server in Tournament Mode

To start the server in Tournament Mode, type the following from within your armyops/System directory:

./server-bin <servertype> <mapname> -nohomedir ini=server.ini log=<logname>
Switch Name: Replace With: Description:
<servertype> TOURNAMENT or LANTOURNAMENT A TOURNAMENT server will show up on the in-game browser, and anyone can join. A LANTOURNAMENT server will only appear on the LAN in-game browser, and only players on your internal network (LAN) can join.
<mapname> Bridge_SE.aao, Border.aao, etc Determines the map that the server will run.
-nohomedir Do not replace

(See FAQ section for more information)

Ensures that the server loads the correct server and PunkBuster settings from the System directory.
<logname> AALog.log, bridge.log, etc. Name for the server status log file. This log file is erased and recreated every time the server is started.


Frequently Asked Questions

Should the server be installed as root or as a normal Linux user?

The answer depends on what you plan to do with the server. If you would like multiple Linux users to be able to share the same server install then you need to install the server as root to a location that all Linux users can access. For example, the directory: (/usr/local/games/armyops/) is adequate. If you do not plan on having multiple Linux users share the server files then you should install the server as a normal Linux user in that user’s home directory (i.e., /home/<username>/). Running the server as root is not recommended.


Can multiple Linux users use the same America's Army server installation?

Yes! Install the game as root to a location that will be accessible to all Linux users (/usr/local/games/armyops is a good choice). The default install permissions will allow all Linux users read-only permissions to the server install. Each Linux user will have their own server configuration file and PunkBuster install located in the .armyops270/System folder of their home directory. This directory is automatically created when the Linux user executes server-bin for the first time. When starting the server, it is no longer necessary to use the -nohomedir parameter as the server configuration and PunkBuster files will be located in each user's home directory under .armyops270/System. In order for PunkBuster to work properly, each Linux user must add the following to their server configuration file:

[Engine.User]

fs_homepath=/home/<username>/.armyops270/System

Replace <username> with the name of the Linux user.

The Linux user should update their PunkBuster files manually to ensure that PunkBuster will work properly and be able to update itself in the future. The easiest way to do this is to download and execute pbweb.x86 in /home/<username>/.armyops270/System/pb/.


What exactly does the –nohomedir parameter do? Normally the server will use the configuration files and PunkBuster install from within .armyops270 of the Linux user’s home directory. If the –nohomedir parameter is used, the server will attempt to use the configuration files and PunkBuster install from the path server-bin is executed from.


How can I manually update my PunkBuster files?

Run pbweb.x86 in your armyops/System/pb/ folder.


Where can I find the most recent version of PBWeb?

The most recent version of PBWeb is available on the official PunkBuster website located at http://www.evenbalance.com/. Any issues you encounter with PBWeb should be sent via email to support@evenbalance.com.


Why doesn’t the server appear on the MBS server browser?

If you are behind a firewall/router/NAT device, make sure that the proper ports have been forwarded to the machine hosting the America's Army server. As a reminder, the following ports are required: UDP 1716, 1717, 1718, 8777, 27900 and TCP 20025, 20045, 20046, 20047.


Why doesn’t the server appear on the GameSpy server browser?

First, if you are behind a firewall/router/NAT device, make sure that the proper ports have been forwarded to the machine hosting the America's Army server. As a reminder, the following ports are required: UDP 1716, 1717, 1718, 8777, 27900 and TCP 20025, 20045, 20046, 20047, 20048, 14200.

Second, if the server has several network cards, you must specify the network card the server should use. You must specify the IP address of the network card that the server should use under [IpDrv.GameSpyQR] in the server configuration file. The server must also be started with the multihome=<ipaddress> parameter.

If the server only has one network card you should leave IP= commented-out (Place a ; in front).

Note: GameSpy will attempt to bind to the IP address that you specify in the IP= part of the server configuration file. This means that the IP address entered here must be the actual IP address assigned to the network card in the server. Do not enter the Internet IP address if your server's network card is assigned a LAN IP (such as 192.168.x.x or 10.x.x.x.). This is a common error; (use ifconfig to get the actual IP address of the network card).


I have multiple network interfaces and need to bind the server to one IP address, how do I do that?

The multihome= parameter will bind the server to the specified IP address or network interface.

Example:

./server-bin <servertype> <mapname> -nohomedir ini=server.ini log=<logname> multihome=1.2.3.4

Also, be sure to uncomment IP= and specify the IP address here as well. This setting is located under [IpDrv.GameSpyQR] in your server.ini file.


For more information, please see the General Linux, Linux Support, and Linux Server forums at the America’s Army Official website: http://forum.americasarmy.com.


Views

Personal tools