Fix: nextmap / mapcycle Not Advancing to the Next Map

March 12, 2026 Daemon666 8 min read 3 wyświetleń

Your server plays the same map endlessly, or ignores the order in mapcycle.txt and jumps somewhere unexpected. Two separate things govern map flow and people conflate them: something has to end the current map, and then something has to choose the next one. If the map never ends, the cycle never advances no matter how perfect the file is; if the map ends but the next-map logic is wrong, it advances to the wrong place. Diagnose which half is broken before editing files.

1. Confirm the map can even end

A map that never ends can never advance. The clock is the usual culprit:

mp_timelimit 30

If mp_timelimit is 0 and you have no round or frag limit set, nothing tells the map to end and it loops forever — which looks exactly like a broken cycle but is not. Set a non-zero mp_timelimit, or a round/win limit on ReGameDLL, so there is an end event at all. The full interaction of the end-of-map limits is in the map-flow tuning guide. Fix this first; the rest is moot until the map ends.

2. Understand who picks the next map

Once a map ends, the next one is chosen by one of two systems, and they can fight:

  • The engine's mapcycle — the engine reads mapcycle.txt and advances to the next entry.
  • The AMXX nextmap plugin (nextmap.amxx) — it manages the next map itself, sets the amx_nextmap cvar, and announces "Next map:" in chat.

When nextmap.amxx is loaded, it is the authority — it reads the mapcycle and drives the transition. If you also have a map-chooser or RTV plugin, that can override the plain cycle with a vote. Two plugins both trying to set the next map is a classic reason it jumps somewhere you did not expect.

3. Check the mapcycle file the engine actually uses

The engine reads the file named by the mapcyclefile cvar, which defaults to mapcycle.txt in the mod folder:

mapcyclefile "mapcycle.txt"

Two things break here: the cvar points at a file that does not exist (so the engine falls back and loops the current map), or the file exists but is malformed. A valid mapcycle.txt is one map name per line, no .bsp extension, and every map must exist in maps/:

de_dust2
de_inferno
cs_office

A single-entry file loops that one map by definition. A file full of maps you do not have makes the engine skip or stall. Confirm each listed map file is present.

4. Watch for the config that resets the map

If the map reloads itself rather than advancing, a config executed at map start may be forcing it. Check that no server.cfg line, ReGameDLL config, or plugin is calling changelevel back to the same map, and that amx_nextmap is not being pinned. Read the live next map with:

amx_nextmap

If it shows the current map, the nextmap plugin computed the wrong target — usually because the current map is not found in the mapcycle, so the plugin defaults to repeating it.

5. Reconcile the vote with the plain cycle

If you run an end-of-map vote or Rock The Vote, it deliberately overrides the sequential cycle — the winning map becomes the next map regardless of what comes next in mapcycle.txt. That is not a bug, it is the point of the vote, but it surprises admins who expect strict file order and instead see the map players voted for. Two consequences to hold in mind: the vote is scheduled off mp_timelimit, so a purely round-based flow with mp_timelimit 0 gives it nothing to hook onto and it never appears; and if two plugins both try to set the next map, the last one to run wins and the result looks random. Decide which system owns the next-map decision — the plain engine cycle, the nextmap plugin, or a vote — and do not run two that fight. The timing details are in the map-flow guide.

Troubleshooting

  • Same map forever, no end at allmp_timelimit 0 with no other limit. Set a limit so the map ends.
  • Map ends but repeats itself — the current map is not listed in mapcycle.txt, so the nextmap logic falls back to it. Add it to the cycle.
  • Advances but ignores your order — an RTV/map-chooser plugin is overriding the plain cycle with a vote. That is expected; configure the chooser, not the file.
  • Cycle file edits do nothingmapcyclefile points at a different file, or the file is read only at map end. Check the cvar and change the map.
  • Skips maps — listed maps are missing from maps/; the engine passes over what it cannot load.

Verification

Set a short limit on a test server — mp_timelimit 2 — put three known-present maps in mapcycle.txt, and let it run. Confirm the map ends on time and advances to the second entry, then the third, then wraps. Read amx_nextmap mid-map and confirm it names the next entry, not the current one. If the ends and the order both behave, both halves — ending and choosing — are correct. Restore your real mp_timelimit once the flow is proven.

Współtwórcy: Daemon666 ✦
Udostępnij: