# Squad Map & Layer Rotation Setup (/docs/squad/map-and-layer-rotation)



Squad controls what maps play, in what order, using a **rotation mode** in `Server.cfg` plus one or more rotation files in `SquadGame/ServerConfig/`. This page explains how they fit together.

<div className="fd-steps">
  <div className="fd-step">
    Pick a Rotation Mode [#1-pick-a-rotation-mode]

    In `Server.cfg`, set `MapRotationMode`:

    | Mode                   | Behaviour                                                    |
    | ---------------------- | ------------------------------------------------------------ |
    | `LevelList`            | Play **maps** in the order listed in `LevelRotation.cfg`.    |
    | `LevelList_Randomized` | Random maps from `LevelRotation.cfg`.                        |
    | `LayerList`            | Play **specific layers** in order from `LayerRotation.cfg`.  |
    | `LayerList_Randomized` | Random layers from `LayerRotation.cfg`.                      |
    | `LayerList_Vote`       | Players vote for the next layer at end of round *(default)*. |

    ```ini
    MapRotationMode=LayerList
    RandomizeAtStart=true
    ```

    * `RandomizeAtStart=true` shuffles the list when the server boots.
    * **Level** = a whole map (e.g. `Belaya`). **Layer** = a map + game mode + version (e.g. `Belaya_AAS_v1`).
  </div>

  <div className="fd-step">
    Fill the Rotation File [#2-fill-the-rotation-file]

    Layer rotation — LayerRotation.cfg [#layer-rotation--layerrotationcfg]

    One **Layer ID** per line. Layer IDs are *not* the display names:

    ```ini
    Belaya_AAS_v1
    GooseBay_Invasion_v1
    Yehorivka_RAAS_v1
    Sumari_AAS_v1
    ```

    > Use the internal **Layer\_Id** (e.g. `Belaya_AAS_v1`), not the pretty name (`Belaya AAS v1`). The full list is on the [Squad Fandom wiki](https://squad.fandom.com/wiki/Maps).

    **Forcing factions on a layer** — append two faction tags:

    ```ini
    AlBasrah_AAS_v1 CAF RGF
    ```

    Both factions must be available on that layer, and you can't pit two factions from the same alliance against each other.

    Level rotation — LevelRotation.cfg [#level-rotation--levelrotationcfg]

    Used when `MapRotationMode=LevelList`. One map name per line:

    ```ini
    Belaya
    Yehorivka
    Narva
    ```

    > In-line comments are **not** supported in the rotation files — put any comment on its own line starting with `//`.
  </div>

  <div className="fd-step">
    Exclusions [#3-exclusions]

    You can blacklist content without editing the rotation:

    | File                   | Excludes        |
    | ---------------------- | --------------- |
    | `ExcludedLevels.cfg`   | Whole maps      |
    | `ExcludedLayers.cfg`   | Specific layers |
    | `ExcludedFactions.cfg` | Factions        |

    These are handy with the randomized modes and voting — e.g. exclude night layers or a map your community dislikes.
  </div>

  <div className="fd-step">
    End-of-Round Voting [#4-end-of-round-voting]

    If you use `LayerList_Vote`, the vote pool is controlled by the `LayerVoting*.cfg` files. See [Layer Voting](/docs/squad/layer-voting) for the full setup, including separate pools for low-player and night rounds.
  </div>
</div>

Applying Changes [#applying-changes]

Stop the server, edit the files under **Files → SquadGame/ServerConfig**, then start again. Admins with the `changemap` permission can also switch layers live via RCON — see [RCON](/docs/squad/rcon).

Related Guides [#related-guides]

* [Change Map](/docs/squad/change-map)
* [Layer Voting](/docs/squad/layer-voting)
* [Server.cfg Reference](/docs/squad/server-cfg-reference)
