See also: Manual/Multiplayer
Server List Edit
See a list of currently-active 0.8.1, 0.8.5 and 0.8.8 servers:
It includes a "Find player" feature, too (you can type all or a part of a player's nickname or of a clan tag).
Known Servers Edit
This list is intended to provide extra information about the OpenArena servers.
|Einherjer Europe Public FFA||Germany||Public deathmatch server with statistics provided by pyqscore.|
|Blackwood's E+ FFA||USA||E+ OpenArena|
|OACL2010||Germany, USA||ExcessivePlus v2.1+oacl addon pack|
|The Rainbow Networks||Germany, Sweden||Map-pack required|
|ArenaWarriors||Italy||Running AS mod.|
|cat-man-du.com||Amarillo, Texas, USA|
|ROFL/tuxfamily||France||Depends of the server, but usually nothing ;-)|
|oaarg||Buenos Aires, Argentina|
|omfg servers||Netherlands||a place for fragging|
|ncore.sk servers||Slovakia||Local ncore.sk network servers powered by Next-Com sro Slovakia running 0.7.1 ctf and 0.8.1 ctf,dm,tournament|
|ClubBFG||Southeastern USA||Running OpenArena version 8.1, open to the public, Mostly stock maps but set OA to allow downloads|
|WASP Servers||Atlanta, G.A., USA||1 public Excessive Plus 2.2b server - "Americas #1 Server" - running OA version 0.8.8. The server runs no custom maps and can be accessed with or without the E+ Mod.|
|+] Frag hard [+||Roubaix, France|
|*rocket VS Insta||Germany||This is an "instangib + rocket" server using Unlagged-RR mod (can be downloaded here). Running 0.8.1. Set OA to allow downloads.|
|pownedclan.com V0.88||France||32 Slots, public server, deathmatch. Running OpenArena 0.8.8, stock - no downloads.|
|The Cookie Jar||Atlanta, GA, USA||A CTF/DM server running OpenArena 0.8.5. Offers custom votes for all weapons, instagib, rocket rail for CTF. Also a custom vote for Deathmatch. Mix of baseoa maps and custom maps. Requires auto downloaded to be on.|
Some useful multiplayer (client or server) related tools, that are not part of the game itself, are from third-party developers, etc.
External tools that help finding and launching online OpenArena games (a.k.a. server browsers).
Note: for some info about the integrated server browser, take a look to Manual/Multiplayer page instead.
- Dpmaster Realtime OpenArena listings, a web page accessible with any web browser that allows to see many informations about the servers. It includes a "find player" feature, plus you can see all the online players clicking here. It cannot predict the ping you will have on that server.
- OAWire (Mozilla repository page), free (open source) Mozilla Firefox plugin for one-click connecting from the dpmaster web site. Simple and effective. Note: Firefox 29 removed the add-on bar (see here for more info): if you like to see the OAWire icon in the lower right corner of the screen, you can install The Addon Bar (Restored) addon, too.
- OAcon, Windows plugin for one-click connecting via a protocol
- Qtracker, freeware server browser program (optionally you can purchase it for extra support). Supports many games. It allows to predict the ping you probably will have on the servers.
- RN Launcher, open source server browser for Rainbow Network's OpenArena servers. Written in Python. (Readme file).
- XQF (qstat frontend), for Linux. Note: you may need to download the latest source code from its SVN and re-compile it by yourself, in order to see OpenArena threated as a standalone game; otherwise, with the pre-compiled XQF 1.0.5 (year 2006), one has to add the dpmaster OpenArena master server address to the Quake3 master servers list, and to manually set the correct protocol number.
- OpenArena Friends Finder (OAFF), a Perl script to find players and allow to join the server they're on.
- OpenArena Blast Friend Finder (OABFF), an ad-supported application for Android OS that helps you finding out on which servers your friends are playing.
- aGSM(download page), a small win32 program that may check your favorite OA servers (add them as Quake3Arena servers. It supports various games, but OpenArena is not yet officially supported: manually specifying OA servers as Q3A servers works though). It shows servername, map, query-ping, server-variables and player-details.
Tools to manage a server :
- OpenArena Multi-Purpose Server Launcher for Linux (oamps.sh), an automatic server maintenance tool that also extends GTV for OA, automating launch and connection of GTV, and listing GTV server on dpmaster.
- GamersTV, a free tool to retransmit matches, that was designed for Q3A. A version adapted for OA is available here (version 0.9.9). The OA version is included, with other server management tools, in "Open Arena Server PowerPack v1.1.2": download link.
- SwiftPanel, a free game server panel
- AdminPANEL, a free and opensource game server panel
- OpenArena Server Administration (also known as !admin system), instead, is a system integrated within OpenArena, designed to empower Server Operators and Clans in managing gameplay on their servers. You can find some help directly on the wiki pages of OAX. Since the Admin System is derived from the Tremolous project (another ioquake3-based game), maybe you may find some more related info in the Tremolous manual or in the Tremolous wiki...
- Big Brother Bot (B3), a server admin tool that allows to automatically send warnings and hint messages, and even kick or ban players that do not follow the rules. It is free and open source, has got a plugin system and supports various games, including OpenArena.
- MapList Generator is a very simple online tool that creates a simple map rotation script with the names of the maps that you enter in a text field.
- Crcon, a lightweight cli rcon library build to provide access to OA servers through bash. Can be used to read input from server and run other bash commands.
Here are a few gamelog parsers:
- VSP: http://vsp.goquake.com/
- AEstats: http://aeons.planetquake.gamespy.com/aestats/
- oastat, a versatile tool to convert OA logs into a PostgreSQL or MySQL database.
- Pyqscore is a Python script which reads OA logs and outputs an HTML file with numbers. You can download it from here and you can find the forum thread about it here.
Server Setup Edit
OpenArena Servers are set up in the same way as Quake 3 servers.
Servers can be "dedicated" or not. If you simply want to have a quick match with your friends and then close the server, probably you don't need to run it in "dedicated" mode, and you could simply use "Multiplayer - Create" menu to create an online game. If you want to use a "stable" sever, available to other players also when you are not at your machine, you should create a dedicated server.
Basic Steps for creating a "dedicated server" include the following:
- upload OA to your server: this can be done via ftp, ssh/scp or whatever you prefer
- create an OA user account, do NOT run the server with root (administrator) priviledges (for security reasons)
- get / create a server config file (see example below)
- make sure your firewall/router (if any) allows connections to the OA ports. Default is incoming port UDP 27960 and outgoing port UDP 27950 (master server) + responses. 27960 can be changed during startup, master server port cannot.
- run the server and make sure it stays active when you log out, usually with the help of the screen-utility under linux <and under Windows, is it possible?>
If you need more detailed instructions on setting up Q3A/OA servers, you may want to have a look at one of these guides:
- Vindimy's guide to setting up an OpenArena server, english
- Q3A Server guides at gameadmins.com, english
- Q3A Dedicated Server Guide at Holarse-Gaming, german
- Quake III Arena linux dedicated server HOWTO at rcmd.org, english
- This script can create a map rotation file for you, english
- OpenArena Clan League 2010 General Config : download link - a big package for admins who want to organize big events, with featured tools and instructions.
If you simply want to have a quick match with your friends and then close the server, probably you don't need to run it in "dedicated" mode, and you could simply use "Multiplayer - Create" menu to create an online game.
Please note that all of these guides explain how to setup a dedicated server. This is a server that runs on a machine that is only used as the server: you can't play on a dedicated server. You need to start a game client (even from the same machine, if you want, but this may slow down a bit your server's performances)and join the server.
You can find some information about non-dedicated server mode in Manual/Multiplayer page.
Note: sv_allowDownload "1" is enough to enable downloading from your server, but the classic download system allows only slow download rate: it is very advisable to enable HTTP download on your server.
Server config exampleEdit
- sets sv_hostname "My OA server"
- sets sv_maxclients 16 // Total players slots enabled, for both bots and humans. How many human players you can support is related with your connection bandwidth (especially upload bandwidth) and your sv_maxrate value.
- sets sv_master1 "dpmaster.deathmask.net"
- seta sv_maxPing 400 // Clients with ping higher than this cannot connect.
- seta sv_minPing 0 // Clients with ping lower than this cannot connect.
- sv_pure 1 // If enabled, prevents clients from loading pk3 files that are not present on the server to guarantee compatibility. This should ALWAYS be 1.
- //sv_maxRate is number of bytes per second. 25000 is the maximum that can be set through the gui. The integrated VoIP protocol requires 25000 to work. Setting sv_maxrate to more than 25k has no effect.
- seta sv_maxRate 25000
- //Tip: If g_delaghitscan is used sv_fps should be 20 for best results
- sets sv_fps 25
- sets sv_allowdownload 1 // allow clients to automatically download from your server additional files that they may need to play on it
- //sv_dlURL "http://www.yourwebserver.com/folder" // Path of a web space that contains pk3 files that clients can get with fast downloading.
- //g_password "<privpass for everyone>" // Set if you want a private server (everyone will need the password to be able to join)
- //sv_privateClients "2" // slots subtracted from sv_maxclients (slots reserved for private clients). Not needed for a completely private server.
- //sv_privatePassword "<privpass for privclients>" // Password required for reserved slots. Not needed for a completely private server.
- seta capturelimit 8
- seta timelimit 15
- seta fraglimit 35
- seta bot_minplayers 0 // If there are not enough human players, bots are automatically added or removed to have the specified number of players in the arena (or in each team).
- //seta g_spskill 3.0 // Sets the skill level for the bots added by bot_minplayers. 1 = Hurt me plenty, 5 = Nightmare.
- //seta rconPassword "<rconpassword>" // for remote ingame servercontrol: comment this line if you don't want to remote control your server. If you enable this, remember to customize the password!
- //seta g_warmup 20 // Sets the time of the warmup at the beginning of the match.
- //seta g_dowarmup 0 // Enables (1) or disables (0) the warmup time at the beginning of the match. Default is 0.
- //seta g_motd "<message of the day>"
- //seta g_quadfactor 3 // Modify the damage when using "quad damage" (default value is 3)
- seta g_inactivity 0
- seta g_allowvote 1
- //Special vote restriction since 0.8.0
- //The next three variables holds the allowed vote options, gametypes, and maps that can be voted for.
- //seta g_voteNames "/map_restart/nextmap/map/g_gametype/kick/clientkick/g_doWarmup/timelimit/fraglimit/shuffle"
- //seta g_voteGametypes "/0/1/3/4/5/6/7/8/9/10/11/12/" // Gametype 2 is not meant for multiplayer
- //seta g_voteMaps "/ctf_inyard/oa_ctf4ish/hydronex/oasago2/" // No longer available in 0.8.5; if you want to specify a list of maps available for callvote, create a text file called "votemaps.cfg" instead
- //If you want to allow every vote option, all gametypes, and all the maps you can write it like this:
- //seta g_voteNames *
- //seta g_voteGametypes *
- //seta g_voteMaps *
- //You can prevent the server from getting unrealistic time or fraglimits here (0 = no limit)
- seta g_voteMaxTimelimit 1000
- seta g_voteMinTimelimit 0
- seta g_voteMaxFraglimit 0
- seta g_voteMinFraglimit 0
- //If you want to use unlagged functionality (since 0.7.6)
- seta g_delagHitscan 1
- //You might want to count pushing players over the side of a map as kills. In that case:
- seta g_awardPushing 1
- //seta g_awardPushing has been modified many times but as of 0.8.1 is still not that reliable. Rather reliable in 0.8.5 and default there.
- //Special modes since 0.7.6:
- //seta g_instantgib 0 // If enabled, players will have only railgun, with instant kill. If set to 2, also gauntlet is available.
- //seta g_rockets 0 // If enabled, players will have only rocket launcher.
- //seta g_vampire 0.25 //25% of Vapiric health (players will gain health when will hit their opponents)
- //seta g_regen 5 //5 health per sec. (health will automatically renerate)
- // 0 = Free For All
- // 1 = Tourney
- // 3 = Team Deathmatch
- // 4 = Capture The Flag
- // 5 = One Flag Capture
- // 6 = Overload (Obelisk)
- // 7 = Harvester
- // 8 = Elimination
- // 9 = CTF Elimination
- // 10 = Last Man Standing
- // 11 = Double Domination
- // 12 = Domination
- seta g_gametype 0
- set d1 "map aggressor; set nextmap vstr d2"
- set d2 "map oa_dm1; set nextmap vstr d3"
- set d3 "map oa_dm2; set nextmap vstr d4"
- set d4 "map oa_dm3; set nextmap vstr d5"
- set d5 "map oa_dm4; set nextmap vstr d6"
- set d6 "map kaos2; set nextmap vstr d7"
- set d7 "map oa_dm5; set nextmap vstr d8"
- set d8 "map oa_rpg3dm2; set nextmap vstr d9"
- set d9 "map oa_shouse; set nextmap vstr d1"
- vstr d1 // start loop at d1
- //you can change gametype or any other variable like this:
- //set d10 "g_gametype 5; g_instantgib 0; map oasago2; set nextmap vstr d1"
- //"g_gametype" should always be before "map" or the map might load twice.
- //From 0.8.8 and forward you can also set the g_autonextmap cvar that will randomly select the next map from a given mappool. 0.8.8 has got default mappools for all gametypes. Setting this ignores the map list above.
- //set g_autonextmap 1
Since 0.8.5, admins can set up custom votes. See this post.
You can copy-paste the example config above to a plain text file (naming it, for example, "server.cfg"), put it in your "baseoa" subfolder, then run the program with +exec server.cfg option from your OS command prompt.
You can try various configurations, storing them into separate cfg files. Remember that many settings will be saved in your default q3config.cfg file when you quit the game, and others not.
If you want to know more about the pmove_float, pmove_fixed and pmove_msec variables (that control how the in-game physics, in particular gravity, is calculated), please read Game physics.
Note: You can find more configuration examples in the Configuration examples page: you can create your own cfg files mixing those examples with the standard configuration here above.
Message of the dayEdit
There are two options for displaying a "message of the day", with different effects. You can use both of them, if you wish.
The first method (if we want to call it somehow, let's say "the short motd" or "the original motd") is to use the CVAR "g_motd" like in the example config file above. This message will be a simple all-uppercase white text line shown by the client during the "loading screen" (when connecting, reconnecting, or simply after a \vid_restart command), under the server name and the "pure server" lines. It is advisable to stay within 43 characters. The new text will be updated after the server will load another map or re-start the current one. It is not shown when playing locally (on your own machine, in non-dedicated mode), but it is later shown when loading a demo anyway.
The second method (if we want to call it somehow, let's say "the extended motd", or "the new motd") is to create a plain text file, name it "motd.cfg" and place it inside the baseoa folder: the content of the file will be printed on the screen of every client that connects, when it gets in the game (not during the "loading screen", but after), for some moments (it will be shown again when the player will change team or switch to spectator mode, or after a \reconnect or when the map restarts). It allows to use text colors and multiple lines. It is advisable to stay within 40 characters for line and 18 lines (and remember that the message lasts for few seconds only). After you update and save the file, the new text will be immediately shown to the new connecting clients (no need to restart the server or to load another map).
The motd.cfg file shown is the first found in this order: in your homepath\current_mod folder, then in your OAinstallation\current_mod folder, then in your homepath\baseoa folder, and then in your OAinstallation\baseoa folder. This means that the game may print the motd.cfg file you previously set for baseoa also when you are running a mod: simply be careful to place the files in the right folders and do some tests. If you do not want a message of the day, you can simply delete the modt.cfg file, or save it empty (the latter method will prevent the engine from searching for a modt.cfg file in the next folder). For some info about the "homepath folder" location under different operating systems, take a look here.
Message of the day can be used, for example, to promote your web site, to generally invite users to be polite, to inform them about special game options or kind of game physics you enabled, as well as suggesting to them to tweak some network parameters to get best experience when playing on your server. If you are the server admin, it's your choice.
Note: both short and extended MOTD, as well as sv_hostname, are recored into demos and later shown during playback.
When you are a client, and you have to connect to a password-protected server, you have to set \password <text> variable with the password (provided by the server admin), before connecting to it. Starting from OpenArena 0.8.5, you will be prompted for a password when connecting to a password-protected server, if you do not have the "password" variable set.
The in-game server browser can include or exclude private servers from the list. External server browsers may allow to specify the password for the selected server before launching OpenArena.
To setup your own server as "private" (requiring a password to access it; for example, your own clan's server), simply set a text for the g_password variable (e.g. \g_password "test"), and give (email, forum, chat, telephone, fax, sms, voice, message in a bottle, ok you get it...) that password to the players that will be allowed to enter the server. Doing this, the g_needpass variable will be automatically set to 1: your server will be hidden for clients that decide to hide private servers. Simply set g_password to empty (\g_password "") or "none" (\g_password none) to make your server open again.
You can also subtract a certain number of slots from the "sv_maxclients" total to reserve them for password-using clients, without the need to make the whole server private (allowing for a partially private server). To do it, use \sv_privateClients "<number>" to set the number or reserved slots, and use \sv_privatePassword "<password>" to set the related password.
Tip: do not use "/sets" command to define g_password or sv_privatepassword variables, or they may be pubicly shown in server status info ("sets" flags a variable as "serverinfo" kind).
For info about the password to remote control your server, instead, please refer to remote control.
Every client connected to a server requires bandwidth, so how many players your server is able to host is limited by its upstream bandwidth. You must either limit the maximum number of players, or limit the players maximum rates, or both, so your server will never try to send more data to the players simultaneously than its upstream bandwidth allows for. If you don't, your players will experience severe lag in certain situations (the slowest connections usually experiencing the most lag because they're slowest to accept the servers data which leads the network to prefer the faster connections in case of data congestion).
The Quake 3 engine was designed with analog modems in mind so the minimum required bandwidth per client is very small: about 3 kB/s (33K modem). At this low data rate clients lose lots of information (like sound events) about the game so the game is not very enjoyable; at a rate of about 5 kB/s (56K modem) the game is much more enjoyable so 5 kB/s should be considered a practical minimum. If you intend to enable the servers VoIP features you should add 2 kB/s so the practical minimum bandwidth per player for a VoIP enabled server becomes 7 kB/s. And please take in account that accurate physics mode requires some more bandwidth than framerate-dependent or fixed framerate physics.
The maximum bandwidth per client is hard coded to 25 kB/s for internet games but this hard coded maximum can be disabled for LAN games by setting sv_lanforcerate to 1 (this enables "Optimize for LAN" feature). If you are running an internet-accessible server behind a NAT/router -with server on a private network address like 192.168.x.x or 172.16.x.x-, but not published on master server listings (not using "dedicated 2" mode... thus being an "hidden internet server"), you should set it to 0; else, you can leave it to 1 ("optimize for LAN" option does not work when using "dedicated 2" mode, to prevent internet bandwidth congestion). See Manual/Multiplayer#Optimize for LAN for more info.
A few reminders:
- Between 5 kB/s minimum bandwidth per player and 25 kB/s maximum bandwidth per player you've got a lot of leeway: on the same server you can host five times as many players on the lowest bandwidth per player than on the highest.
- Bandwidth is always expressed in a decimal prefix so for instance 1 Mbit/s is exactly 1000 kbit/s (and not 1024 kbit/s).
- Most connection bandwidths are expressed in kilobits/s while the Quake engine expects rates in bytes/s. 1 byte (over a digital line) = 8 bits, thus 5000 bytes/s means 40000 bps, 40 kbps.
- When doing bandwidth calculations you should keep in mind to reserve at least 10% of the available bandwidth for overhead to assure there will be no data congestion (lag).
- Considering the above we can easily convert kbit/s to bytes/s while reserving 10% overhead by multiplying by 112.5 (multiply by 1000 to convert from kilobits to bits, multiply by 0.9 to shave off 10%, divide by 8 to convert from bits into bytes: 1000 * 0.9 / 8 = 112.5).
- "Maxplayers" (maximum number of players allowed in the server) is controlled by "sv_maxclients" variable (this includes also possible players slots used by bots, that do not require network bandwidth). "Maxrate" (maximum data rate sent to each connected client) is controlled by "sv_maxrate" variable.
- Your actual bandwidth may be lower than the nominal bandwidth of your ISP contract, and may vary due to many factors, e.g. ISP network congestion. There are various sites and tools which can be used to try to measure your bandwidth (just an example, http://www.speedtest.net). Many internet connections are "asymmetric", with your download bandwidth much bigger than your upload bandwidth... so pay particular attention to your upload bandwidth.
- If you run more servers instances over the same network connection, the total assigned to all servers should not exceed your bandwidth.
How many players can I host at a rate of R bytes/s with an upload of U kbps?
- maxplayers = int( U * 112.5 / R )
- U = 1 Mbps upload, R = 25000 bytes/s -> int( 1000 * 112.5 / 25000 ) = 4
- U = 750 kbps upload, R = 5000 bytes/s -> int( 750 * 112.5 / 5000 ) = 16
I want to host P players with an upload of U kbps, what value do I set sv_maxrate to?
- maxrate = int( U * 112.5 / P )
- U = 2 Mbps upload, P = 12 players -> int( 2000 * 112.5 / 12 ) = 18750
- U = 500 kbps upload, P = 6 players -> int( 500 * 112.5 / 6 ) = 9375
I want as much players possible with a rate as close to the maximum rate as possible so I use my upload of U kbps as efficiently as possible?
- maxplayers = ceil( U * 112.5 / 25000 )
- maxrate = int( U * 112.5 / maxplayers )
- ceil() means to round up if there is a fractional part (numbers behind the dot).
- U = 1 Mbps upload ->
- maxplayers = ceil( 1000 * 112.5 / 25000 ) = 5
- maxrate = int( 1000 * 112.5 / 5 ) = 22500
- U = 2.5 Mbps upload ->
- maxplayers = ceil( 2500 * 112.5 / 25000 ) = 12
- maxrate = int( 2500 * 112.5 / 12 ) = 23437
Running a ServerEdit
You can "rent" a server from a service provider, or simply use your machine and internet connection to start a server by your own.
Using hosting servicesEdit
The following companies offer OpenArena servers hosting, and charge for it:
Note: OpenArena Team does not "certify" these third-party services. This does not mean that those services aren't good, but only that we don't test them.
Place the config file (usually server.cfg) in %appdata%\openarena\baseoa\ (%appdata% is a variable in windows for "C:\Documents and Settings\<username>\application data"). Then open in command (windows-key+R, type cmd and hit enter) and type: <OA program path>\oa_ded.exe +set dedicated 2 +set net_port 27960 +exec server.cfg +map aggressor
Place your server config file ("server.cfg", or whatever you named it) in ~/.openarena/baseoa/, then start it with:
/path_to_openarena/oaded.i386 +set dedicated 2 +set net_port 27960 +exec server.cfg +map aggressor
You might want to use an automatic script to start and stop it. InitScript
Take the server.cfg above and put it in ~/Library/Application\ Support/OpenArena/baseoa/, then start the server with:
/Applications/openarena-0.8.1/OpenArena.app/Contents/MacOS/oa_ded.ub +set dedicated 2 +set net_port 27960 +exec server.cfg +map aggressor
Consider running the server in a forked process. Use the command 'nohup', or use Ctrl+Z and enter 'bg' to background a running server. You can leave the shell now.
- ↑ If an old mod or a previous OA version is being used, you may not get the password request screen. Remember that you can always use the console to set the password, then /connect <server:ip> (or /reconnect) to connect to the desired server. Some external "server browser" tools may include their own way to provide a password.