Alien Arena server guide
Dedicated servers typically run on a PC in the home over a DSL connection. This page will help you set up and get the most out of a dedicated server run from home.
NAT configuration
Servers
that run through NAT require the following UDP ports to opened for
inbound access: 27900, 27901, 27910. If you plan to run more than one
server, enable some other ports too, for example 27920, 27930, 27940.
Please make sure that your Windows/Linux firewall also allows these inbound UDP ports.
DSL line configuration
DSL
lines often use a technique called "interleaving" to improve line
stability and robustness. However, this typically adds 30ms to the
connection between the home PC and the ISP, which is bad for both
playing Alien Arena, and serving dedicated servers.
For stable lines this can usually be turned off safely - ask your ISP or telecoms provider to do this for you.
How can you tell if your line is interleaved?
Your router should tell you under the DSL line status page. Look for "interleaved" or "fastpath".
Alternatively,
use traceroute to a server on the internet. If the first hop (your DSL
connection) is around 30ms, then it is likely that interleaving is
enabled on your line.
Quality of Service
Since you''re likely to use your connection for activities other than serving Alien Arena, it''s a good idea to prioritise game traffic over web and ftp traffic. Many routers will allow you to do this using Quality of Service (QoS). Look for these pages in your router configuration. You should be able to either prioritise UDP traffic on the ports you defined above, or at least reduce the priority of web (TCP port 80) and ftp (TCP port 21) traffic.
Bandwidth considerations
Monthly UDP bandwidth usage per player per month = 9.5 GiB (assuming always connected)
Average throughput = ~3872 bytes/sec
Traffic is 67% inbound, 33% outbound
Results obtained 7th March 2007 using iptraf.
An
uninterrupted CTF game between two average players alongside four bots
was monitored over ten minutes, and values derived from those
statistics.
EuroArena, one of the more popular dedicated servers, shifts between 40-60Gb/month in games traffic alone.
Server configuration
Server game type and rules are defined in .cfg files in the /arena/ subdirectory. Typically a different config file would be created for each server that is run.
For example, "myconfig.cfg" might be configured like this:
set port 27910
set dmflags 540688
set hostname "Example Server"
set website "http://www.myhomepage.com/" s
set Admin "Admin" s
set deathmatch 1
set maxclients 16
set maxspectators 2
set fraglimit 20
set timelimit 20
set sv_maplist "dm-dynamo2 tourney0 dm-vesuvius dm-furious"
set sv_public 1
set logfile 1
set allow_download 1
set allow_download_maps 1
set allow_download_models 1
set allow_download_players 1
set allow_download_sounds 1
set rcon_password "password"
setmaster master.corservers.com master2.corservers.com
map dm-dynamo2
To kick off the bots after a certain number of players join, use
set sv_botkickthreshold XX
The following mutators can also be applied:
| MUTATOR | DESCRIPTION |
| set ctf 1 | Capture the flag mode |
| set excessive 1 | Everyone starts with all weapons, which fire fast and don't run out of ammo |
| set tca 1 | Team Core Assault mode - clear the other team's beacons and attack the spider |
| set instagib 1 | Everyone starts with the disruptor, infinite ammo and one hit to kill |
| set rocket_arena 1 | Everyone starts with the rocket launcher and infinite ammo |
| set low_grav 1 | Gravity is reduced |
| set regeneration 1 | Health slowly regenerates |
| set vampire 1 | Suck other players health by shooting them |
| set grapple 1 | The grappling hook is enabled |
| set playerspeed 1 | Players move extra fast |
| set quickweap 1 | Weapons can be changed quickly |
| set sv_joustmode 1 | Players can keep pressing jump to gain height |
Anti-camp can be turned on like this:
set anticamp 1
set camptime 5
camptime is the number of seconds a player has to stand in one place before a warning is issued and health starts to reduce.
Server options
| Var |
Default |
Description |
| g_spawnprotect | 2 | Maximum time in seconds that a player will be invunerable after respawning (0 disables spawn protection) |
| sv_downloadurl | URL of CURL source for third party content (must match games server content) |
|
| wep_selfdmgmulti | 1.0 | Modifier for amount of self damage weapons do (0.5 => half damage) |
| wep_disruptor_dmg |
55 | Damage inflicted by the disruptor |
| wep_disruptor_kick |
55 | Kick from the disruptor |
| g_spawnhealth |
125 (300 for excessive) |
Health at spawntime |
| g_maxhealth |
100 (200 vampire, 300 excessive) |
Max health allowed (aside from armour shards) |
| g_maxbullets |
200 | Max ammo for chaingun |
| g_maxshells | 100 | Max shells for smartgun |
| g_maxrockets |
50 | Max rockets |
| g_maxgrenades | 50 | Max napalm for flamethrower |
| g_maxcells | 200 | Max cells for disruptor, beamgun and guided rockets |
| g_maxslugs |
50 | Max slugs for vaporizer |
| g_antilag |
1 | Enable antilag, though this is somewhat experiemental at the time of writing |
DMFLAGS
Below is a table of dmflags supported by the CRX engine.
Normally
these would be added together to give the resulting dmflags value, but
to reduce the guesswork, use the DMFLAGs calculator here.
| FLAG | HEX | DECIMAL |
| DF_NO_HEALTH | 0x00000001 | 1 |
| DF_NO_ITEMS | 0x00000002 | 2 |
| DF_WEAPONS_STAY | 0x00000004 | 4 |
| DF_NO_FALLING | 0x00000008 | 8 |
| DF_INSTANT_ITEMS | 0x00000010 | 16 |
| DF_SAME_LEVEL | 0x00000020 | 32 |
| DF_SKINTEAMS | 0x00000040 | 64 |
| DF_MODELTEAMS | 0x00000080 | 128 |
| DF_NO_FRIENDLY_FIRE | 0x00000100 | 256 |
| DF_SPAWN_FARTHEST | 0x00000200 | 512 |
| DF_FORCE_RESPAWN | 0x00000400 | 1024 |
| DF_NO_ARMOR | 0x00000800 | 2048 |
| DF_ALLOW_EXIT | 0x00001000 | 4096 |
| DF_INFINITE_AMMO | 0x00002000 | 8192 |
| DF_QUAD_DROP | 0x00004000 | 16384 |
| DF_FIXED_FOV | 0x00008000 | 32768 |
| DF_BOT_AUTOSAVENODES | 0x00020000 | 131072 |
| DF_BOTCHAT | 0x00040000 | 262144 |
| DF_BOT_FUZZYAIM | 0x00080000 | 524288 |
| DF_BOTS | 0x00100000 | 1048576 |
| DF_BOT_LEVELAD | 0x00200000 | 2097152 |
Launching a server in Windows
Under the main game directory, create (or copy and modify) a myconfig.bat file, containing the line:
crx +set game arena +set dedicated 1 +exec myconfig.cfg
...where myconfig.cfg exists in the arena/ directory.
Now you're set - just run the batch file to start the server.
If you wish to run more than one server on a machine, then each server must have a different port number assigned in the config file. Alternatively, add -port to the command line in the batch file (.cfg file port assignment takes precidence).
Launching a server in Linux
Linux servers can be launched using the command line:
crded +set game arena +exec myconfig.cfg
...where myconfig.cfg is a server config file located in the arena/ subdirectory.
(If you don't have crded you should soft link it to crded.i686 or whatever is appropriate for your architecture using ln -s crded.i686 crded)
Troubleshooting
If your server doesn't appear in Galaxy or the in-game browser, try this server healthcheck.
If you know your IP, you can see if it is registered with the master or not, and if it is, why your server isn't appearing.
Custom bots for the server
This is one for Windows based server admin since it requires Win32 executable "bot configurator".
Open bot configurator, Make a name for bot and enter skill levels, Repeat for as many bots as you are making.
Save to "Bot Info" file in your Alien Arena folder.
Start a temporary server, remove any bots there and add the ones you made by name, model and skin desired (using, for example, sv addbot Cherry AI/AI). The order you start them is the order that will be the remaining bot as they are kicked. So say if you add Cherry first to your temp server, she will be the first to join, and last to leave on your dedicated server. Play them till 10 frags and close server.
The botinfo/ folder will have your bots in a file called bots.tmp
Copy this file to your Desktop and rename the file to custom1.tmp
Put the renamed file back into the botinfo/ folder
That is it!
Now all you have to do is add this command line in your server cfg: set sv_custombots 1