Romania XPlayZM.CSBlackDevil.COM # Zombie Plague UltimateX [ Respawn + FDL + VIP 22-12PM + POINTS] ® 32/32
Unknown ❤ RESPAWN.ZAFEST.RO | VIP FREE | FREE FOR ALL ❤ 0/32
France EMIRATES.KiNGS 亗 GAMEAREA ||͇̿P͇̿U͇̿B͇̿L͇̿I͇̿C͇̿| ✪ 32/32
Sunucu tanitimi
16 lines 6.1 KiB Markdown Source Rendered Raw Permalink History
---
title: "Fix: mapcycle.txt Ignored / The Same Map Repeats"
excerpt: "Why the server loops one map or ignores mapcycle.txt, the mapcyclefile cvar, why maps must end for the cycle to advance, nextmap plugins overriding it, file format traps, and verifying rotation."
category: "errors"
tags: "mapcycle, config"
image: ""
read_time: "8 min read"
---
<p>Your server plays <code>de_dust2</code> forever, or ignores the rotation you wrote in <code>mapcycle.txt</code> entirely. The map cycle in CS 1.6 has a subtle dependency that trips everyone: <strong>the cycle only advances when a map ends</strong>, and "ending" is governed by completely separate cvars. So an "ignored" mapcycle is usually either a map that never ends, a file the engine is not reading, or a plugin overriding the next map. Here is how to sort which.</p><h2>1. Confirm the engine is reading the right file</h2><p>The file the engine uses is set by <code>mapcyclefile</code>, defaulting to <code>mapcycle.txt</code> in <code>cstrike/</code>. If you edited a file the server does not use, nothing changes. Check the cvar from the console:</p><pre>mapcyclefile</pre><p>It should print <code>mapcycle.txt</code> (or whatever you intend). Confirm that file actually exists in <code>cstrike/</code> and is the one you edited &mdash; not a copy in the wrong directory. Set it explicitly in <a href="/tutorials/setup-server-cfg-cs16">server.cfg</a> if in doubt:</p><pre>mapcyclefile "mapcycle.txt"
</pre><h2>2. Make sure maps actually end</h2><p>This is the real cause most of the time. The cycle advances at map end, and a map ends only when one of the end-of-map limits fires. If all of <code>mp_timelimit</code>, <code>mp_maxrounds</code>, <code>mp_winlimit</code> and <code>mp_fraglimit</code> are <code>0</code>, nothing ever ends the map and it loops forever &mdash; which looks exactly like a broken mapcycle but is not. Set at least one:</p><pre>mp_timelimit 25
</pre><p>Remember <code>mp_maxrounds</code> and <code>mp_winlimit</code> require <a href="/tutorials/install-regamedll-cs16">ReGameDLL</a>; on stock CS only <code>mp_timelimit</code> and <code>mp_fraglimit</code> work. The full interaction is in <a href="/tutorials/timelimit-maxrounds-flow">the map-flow tuning guide</a>. If your map never changes, check these four cvars <em>before</em> touching the cycle file.</p><h2>3. Check the file format</h2><p><code>mapcycle.txt</code> is one map name per line, no <code>.bsp</code> extension, and every map must exist in <code>cstrike/maps/</code>:</p><pre>de_dust2
de_inferno
de_nuke
cs_office
</pre><p>Traps that break it: a Windows CRLF file with stray characters, a trailing blank/space, a map name misspelled, or a hidden <code>.txt.txt</code> extension. A map listed but missing from <code>maps/</code> is skipped, and if <em>every</em> entry is bad the engine falls back to repeating the current map. Keep names lowercase and exact.</p><h2>4. Rule out a nextmap/RTV plugin override</h2><p>If you run AMX Mod X, the <code>nextmap</code>, <code>mapchooser</code>, or a Rock The Vote plugin frequently <strong>overrides</strong> <code>mapcycle.txt</code> &mdash; they pick the next map themselves, sometimes from their own <code>maps.ini</code> or a vote, ignoring the engine cycle. Check what is loaded:</p><pre>amxx plugins</pre><p>If a map-management plugin is running, <em>it</em> decides the next map, and the amx cvar <code>amx_nextmap</code> reflects that choice. This is not a bug &mdash; it is the plugin doing its job &mdash; but it means editing <code>mapcycle.txt</code> has no visible effect. Configure the rotation in the plugin's file (or its vote list) instead. See <a href="/tutorials/rtv-nextmap-setup">the RTV and nextmap guide</a>.</p><h2>5. Check the current nextmap value</h2><p>You can see what the server thinks is next:</p><pre>amx_nextmap</pre><p>If this shows a map you did not expect, a plugin set it. If you run stock (no AMXX), the engine advances through <code>mapcycle.txt</code> in order and wraps at the end &mdash; and the position is remembered, so a restart mid-cycle continues from where it was, which can look like it "skipped" your first map.</p><h2>6. Watch for servercfgfile re-runs</h2><p>If your rotation seems to reset to the same map after each round or map, check whether a config is re-executing and forcing a map. Some setups put a <code>map</code> or <code>changelevel</code> command, or a hard-coded <code>+map</code>, into a config that runs on every load, which overrides the natural cycle. Grep your <code>server.cfg</code>, <code>amxx.cfg</code> and any ReGameDLL <code>game.cfg</code> for stray map-setting lines. The engine cycle, a nextmap plugin, and a config that forces a map can all be fighting each other; only one should be deciding the next map. Decide which authority you want &mdash; engine cycle for a plain server, a nextmap/RTV plugin for an AMXX server &mdash; and remove the others.</p><h2>Common errors</h2><ul><li><strong>Same map forever</strong> &mdash; all four end-of-map limits are <code>0</code>. Set <code>mp_timelimit</code> or another.</li><li><strong>Edited the file, no change</strong> &mdash; a nextmap/RTV plugin overrides it, or <code>mapcyclefile</code> points elsewhere.</li><li><strong>A listed map is skipped</strong> &mdash; it is missing from <code>cstrike/maps/</code> or misspelled.</li><li><strong>Cycle resets or jumps</strong> &mdash; the engine remembers its position; a restart continues mid-cycle.</li><li><strong>File looks right but is ignored</strong> &mdash; hidden <code>.txt.txt</code> extension or CRLF/encoding junk. Re-save as clean plain text.</li></ul><h2>Verification</h2><p>Set a short limit on a test server so maps end quickly:</p><pre>mp_timelimit 2
mapcyclefile</pre><p>Confirm <code>mapcyclefile</code> names your file, then let the timelimit expire and watch the server advance to the <em>next</em> entry in <code>mapcycle.txt</code>, not repeat the current one. Run through two or three entries to confirm order and wrap-around. If a plugin is managing rotation, verify <code>amx_nextmap</code> matches your intended sequence instead. Once it advances correctly, restore your real <code>mp_timelimit</code>.</p>