How toOpenArena

OpenArena server.cfg Explained: Game Types, Bots and Map Rotation

Every important OpenArena server.cfg setting: g_gametype 0 to 12, limits, sv_maxclients, bot_minplayers, rcon, votes and a vstr map rotation that works.

Updated Oct 7, 2026 · 6 min read

On this page

An OpenArena server.cfg is a plain text list of console settings in the baseoa folder, loaded with exec server.cfg. The settings that matter most are g_gametype (0 Free For All through 12 Domination), fraglimit, timelimit and capturelimit, sv_maxclients (which counts bots), bot_minplayers with g_spskill for bots, rconPassword for remote admin, and a vstr map rotation at the end. Set g_gametype before any map command, or the map may load twice.

How the file works

Each line is a console command. The file is read top to bottom when you run exec server.cfg, either from the start line (+exec server.cfg) or from the server console.

  • set, seta and sets all set a variable. sets also shows it in server info that browsers display, which is why examples use it for the hostname.
  • // starts a comment.
  • Settings typed in the console are lost on restart. Anything you want to keep belongs in the file.
  • Some settings, such as sv_maxclients and g_gametype, only apply after a map change or map_restart.

OpenArena, an arena shooter on the Quake III engine

Identity and access

sets sv_hostname "^1Rail^7 Night | CTF"
seta g_motd "Teams auto balance. No spawn camping."
seta g_password ""
seta rconPassword "a-long-secret"
Setting What it does
sv_hostname Server name. ^1 style codes add colors
g_motd Short message on the loading screen, best under about 43 characters
g_password Join password for a private server, empty for public
rconPassword Lets admins control the server from the game with \rconpassword and \rcon
sv_privateClients, sv_privatePassword Reserve some slots for players with a separate password

Players and network

sets sv_maxclients 12
seta sv_maxPing 400
seta sv_maxRate 25000
sets sv_fps 25
sv_pure 1
seta sv_allowdownload 1
Setting Notes
sv_maxclients Total slots for humans and bots. Applies after a map change
sv_maxPing Players with a higher ping cannot join
sv_maxRate Bytes per second per player. 25000 suits modern connections; VoIP needs clients at 25000 or more
sv_fps Server frame rate. The community example uses 25, or 20 with g_delagHitscan
sv_pure Always 1. Clients only use pk3 files the server has
sv_allowdownload Lets players download missing pk3 files from the server (slow)
sv_dlURL A web address with your pk3 files, for fast downloads

Game types

g_gametype picks the mode. OpenArena 0.8.8 includes:

Value Mode
0 Free For All (deathmatch)
1 Tournament (1v1)
2 Single Player (do not use online)
3 Team Deathmatch
4 Capture The Flag
5 One Flag Capture
6 Overload
7 Harvester
8 Elimination
9 CTF Elimination
10 Last Man Standing
11 Double Domination
12 Domination

Avoid 2 on a server: the wiki warns a match can get stuck at the end. For a deathmatch filled with bots, the usual combination is g_gametype 0 with bot_minplayers.

Limits

seta fraglimit 30
seta timelimit 15
seta capturelimit 8
seta g_doWarmup 1
seta g_warmup 20

fraglimit ends deathmatch rounds, capturelimit ends CTF style rounds, and timelimit (minutes) ends any match. Set at least one, or a Tournament match may never end on its own.

Bots

seta bot_minplayers 4
seta g_spskill 3

bot_minplayers keeps at least that many players in the arena (or in each team, in team modes) by adding bots, and removes bots as humans join. g_spskill sets their skill from 1 (Hurt Me Plenty) to 5 (Nightmare), for bots added after you change it.

Two rules from the community wiki: keep bot_minplayers below sv_maxclients in free for all modes, and below half of sv_maxclients in team modes. Otherwise bots fill the server and humans cannot join.

You can also add a specific bot from the console with addbot sarge 4 blue, and remove all bots with kick allbots.

Special modes

seta g_instantgib 0
seta g_rockets 0
seta g_vampire 0
seta g_regen 0
seta g_delagHitscan 1

g_instantgib 1 gives everyone a one shot railgun (2 also gives the gauntlet). g_rockets 1 is rockets only. g_vampire gives health back on hits, g_regen regenerates health per second. g_delagHitscan 1 turns on lag compensation for hitscan weapons.

OpenArena gameplay

Voting

seta g_allowvote 1
seta g_voteNames "/map_restart/nextmap/map/g_gametype/kick/clientkick/timelimit/fraglimit/"
seta g_voteGametypes "/0/1/3/4/5/6/7/8/9/10/11/12/"

Restrict what players can vote for. A tip from the wiki's map rotation page: voting for a game type change breaks vstr rotation scripts, leaving the server stuck on one map. If you use a rotation, leave g_gametype out of g_voteNames.

Map rotation

The classic method chains maps with vstr, at the end of the file:

set d1 "map aggressor; set nextmap vstr d2"
set d2 "map oa_dm1; set nextmap vstr d3"
set d3 "map oasago2; set nextmap vstr d4"
set d4 "map wrackdm17; set nextmap vstr d1"
vstr d1

Each step loads a map and sets what comes next; the last step loops back to the first. To change mode as part of the rotation, put the game type before the map:

set d5 "g_gametype 4; map oa_ctf4ish; set nextmap vstr d1"

Two warnings from the wiki: an admin typing map directly resets nextmap and breaks the loop (use vstr d1 to restart it), and to change mode by hand without breaking it, use g_gametype 4; vstr nextmap on one line.

The alternative in 0.8.8 is set g_autonextmap 1, which picks the next map randomly from built in map pools for each game type and ignores vstr rotations.

Loading the file every time

Put +exec server.cfg on the start line so the file loads at boot. If you cannot change the start line, run exec server.cfg in the server console after each start, or try what the community wiki suggests for starting a rotation automatically: an autoexec.cfg in baseoa containing an exec server.cfg line. Test it once by restarting and checking that the console shows your hostname and settings. For the full setup, see how to host an OpenArena server.

Run it without a spare PC

An OpenArena server from GamezServers puts baseoa and your server.cfg in a file manager and over SFTP, gives you a live console for exec, addbot and map, and sets the boot map in the panel. It runs comfortably on the smallest plan. If players say they cannot see it in the browser, see OpenArena server not showing in the server list.

FAQ

What g_gametype is CTF in OpenArena?

4 is Capture The Flag. 5 is One Flag Capture and 9 is CTF Elimination.

Why does my OpenArena map rotation keep playing the same map?

Someone changed the game type by vote or typed map directly, which resets nextmap. Restart the loop with vstr d1 and remove g_gametype from g_voteNames.

How do I add bots to an OpenArena server?

Set bot_minplayers and g_spskill in server.cfg, or use addbot in the console.

Why can't players join when bots are on?

sv_maxclients counts bots. Keep bot_minplayers below sv_maxclients, or below half of it in team modes.

Does sv_maxclients apply right away?

No. It takes effect after a map change or map_restart.

Skip the setup. Your own OpenArena server.

$1.49USD first month

Then $2.99/mo. Just trying it? $0.75 for 3 days

Keep reading