OpenArena Updated May 11, 2026

OpenArena Map Rotation Setup

Set up automatic map rotation in OpenArena using the chained variable method, enable g_autonextmap, and force map changes at runtime via RCON.

OpenArenamap rotationg_autonextmapvstrnextmapRCONserver.cfg

OpenArena Map Rotation

OpenArena does not use a plain-text mapcycle file like Source engine games. Instead, map rotation is configured using chained variables — each map variable sets the next map when it loads.

How Chained Variables Work

Each variable stores a map command and a pointer to the next variable in the chain:

set d1 "map oa_dm1; set nextmap vstr d2"
set d2 "map oa_dm2; set nextmap vstr d3"
set d3 "map oa_dm3; set nextmap vstr d1"
vstr d1

When d1 executes, it loads oa_dm1 and sets nextmap to point to d2. When the map ends, OpenArena executes nextmap, which runs vstr d2, which loads oa_dm2 and sets nextmap to d3. And so on. The last entry loops back to d1.

The final line (vstr d1) triggers the chain on server startup.

Enabling Automatic Rotation

For the rotation to advance automatically at the end of each map, set:

set g_autonextmap 1

Without this, nextmap is set correctly but the server does not execute it automatically — the map repeats or the server idles. Add this to your server.cfg.

Example: 5-Map FFA Rotation

Place this in server.cfg:

set d1 "map aggressor; set nextmap vstr d2"
set d2 "map oa_dm1; set nextmap vstr d3"
set d3 "map oa_dm3; set nextmap vstr d4"
set d4 "map kaos; set nextmap vstr d5"
set d5 "map hydronex; set nextmap vstr d1"
vstr d1

set g_autonextmap 1
seta g_gametype 0
seta fraglimit 35
seta timelimit 15

This rotation cycles through five FFA maps and returns to aggressor after hydronex.

Example: CTF Rotation

set c1 "map oa_ctf1; set nextmap vstr c2"
set c2 "map oa_ctf2; set nextmap vstr c3"
set c3 "map ctf_gate1; set nextmap vstr c4"
set c4 "map ctf_compromise; set nextmap vstr c1"
vstr c1

set g_autonextmap 1
seta g_gametype 4
seta capturelimit 8
seta timelimit 20

Forcing a Map Change at Runtime

Skip to the next map in the rotation immediately:

\rconpassword yourpassword
\rcon vstr nextmap

Jump to a specific map (overrides rotation for one map, then continues):

\rcon map oa_dm5

After a manual \rcon map, the rotation resumes from whichever variable nextmap currently points to. To reset the rotation to the beginning:

\rcon vstr d1

Rotation Length

There is no hard limit on the number of maps in a rotation. Large rotations simply require more variable definitions (d1 through dN). Use consistent naming (d1, d2, ... d20) to keep the config readable.