Counter-Strike: Source Updated April 27, 2026

How to Set Up Map Rotation on Your CSS Server

Configure mapcycle.txt, RTV voting, and SourceMod's MapChooser plugin to keep your CSS server's map rotation fresh.

Counter-Strike: SourceCSSmap rotationmapcycleRTVMapChooserSourceMod

Map Rotation in CSS

CSS map rotation is driven by two plain-text files plus SourceMod plugins. There's no Steam Workshop server subscription system like in CS2 — maps live in cstrike/maps/ as .bsp files and you distribute them to clients via FastDL.

mapcycle.txt

cstrike/mapcycle.txt lists the maps the server cycles through. One map name per line, no file extension:

de_dust2
de_inferno
de_nuke
de_cbble
de_train
de_mirage

The server reads this file when a map ends and mp_timelimit or mp_maxrounds triggers a change. If you're using SourceMod's MapChooser (recommended), MapChooser manages the actual transitions — mapcycle.txt is still the source of truth for which maps are eligible.

maplist.txt

cstrike/maplist.txt is a separate list used for map nominations (the !nominate command). Keep it in sync with mapcycle.txt unless you want players to be able to nominate maps that aren't in the rotation — usually you don't.

When Map Changes Trigger

Two cvars control rotation timing:

mp_timelimit 25        // minutes per map; 0 = no time limit
mp_maxrounds 0         // rounds per map; 0 = no round limit

Set both to 0 and the map never changes automatically — only manual changes or RTV votes will move things along.

SourceMod MapChooser + RTV

SourceMod ships with three plugins that work together:

  • mapchooser.smx — runs the end-of-map vote
  • rockthevote.smx — lets players trigger an early vote with !rtv
  • nominations.smx — lets players nominate specific maps with !nominate <mapname>

These are already installed with a default SourceMod setup. If they're not running:

sm plugins load mapchooser
sm plugins load rockthevote
sm plugins load nominations

Player commands in chat:

!rtv                    // vote to rock the vote (change map early)
!nominate de_dust2      // nominate a map for the next vote
!maps                   // list available maps

Admin Map Control

As an admin, you can override the rotation at any time:

sm_map de_dust2         // change map immediately
sm_nextmap de_inferno   // set the next map without changing now

Via RCON:

rcon sm_map de_dust2

Custom Maps

Custom maps must be physically present in cstrike/maps/ on the server before you add them to mapcycle.txt. Add them to both mapcycle.txt and maplist.txt, then reload the map list:

sm plugins reload mapchooser
sm plugins reload nominations

For distributing custom maps to clients without the slow in-game download, set up FastDL — see the Custom Maps guide.