Trackmania Map Rotation and Match Settings
Configure the Trackmania (TMNF/ManiaPlanet) map playlist and game rules using the MatchSettings XML file. Covers track list format, game mode selection, and time/point limits.
Trackmania Map Rotation and Match Settings
The map rotation and game rules are defined in a separate XML file called the match settings file (also called a map list or playlist). This file is specified at server launch via the /game_settings= parameter.
File Location
- TMNF/TMUF:
GameData/Tracks/MatchSettings/ - ManiaPlanet:
UserData/Maps/MatchSettings/
TMNF ships with default match settings in GameData/Tracks/MatchSettings/Nations/:
NationsBlue.txt— Easier tracksNationsGreen.txt— Mid-difficulty tracksNationsWhite.txt— Expert tracks
Create your own file in the MatchSettings/ directory for a custom rotation.
TMNF Match Settings Format
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<!-- 0=Rounds, 1=TimeAttack, 2=Team, 3=Laps, 4=Stunts -->
<game_mode>1</game_mode>
<!-- Chat time between rounds/maps in milliseconds -->
<chat_time>15000</chat_time>
<!-- TimeAttack: time limit per track in milliseconds -->
<timeattack_limit>300000</timeattack_limit>
<!-- Rounds: points needed to win a map -->
<rounds_pointslimit>50</rounds_pointslimit>
<!-- Rounds: point distribution table (top-N places get points) -->
<rounds_pointsnoroundsifwin>0</rounds_pointsnoroundsifwin>
<!-- Laps: number of laps per track -->
<laps_nblaps>3</laps_nblaps>
<!-- Laps: time limit in milliseconds (0 = no limit) -->
<laps_timelimit>0</laps_timelimit>
<!-- Team: points needed to win a map -->
<team_pointslimit>50</team_pointslimit>
</gameinfos>
<filter>
<!-- 0 = play in order, 1 = shuffle -->
<random_map_order>0</random_map_order>
<!-- Skip maps with fewer players than this (0 = never skip) -->
<min_server_players>0</min_server_players>
</filter>
<!-- Track entries — paths are relative to GameData/Tracks/ -->
<challenge>
<file>Campaigns\Nadeo\Nations\Race\A01.Challenge.Gbx</file>
</challenge>
<challenge>
<file>Challenges\MyCustomTrack.Challenge.Gbx</file>
</challenge>
</playlist>
ManiaPlanet / TM2 Match Settings Format
ManiaPlanet uses <map> instead of <challenge>, and paths are relative to UserData/Maps/:
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<game_mode>1</game_mode>
<chat_time>15000</chat_time>
<timeattack_limit>300000</timeattack_limit>
<script_name>TimeAttack.Script.txt</script_name>
</gameinfos>
<filter>
<random_map_order>0</random_map_order>
</filter>
<map>
<file>MyCoolTrack.Map.Gbx</file>
</map>
<map>
<file>MatchSettings\MyOtherTrack.Map.Gbx</file>
</map>
</playlist>
Game Modes
<game_mode> |
Mode | Description |
|---|---|---|
0 |
Rounds | Players accumulate points across multiple attempts; first to point limit wins |
1 |
TimeAttack | All players drive simultaneously; best time wins; most popular for community servers |
2 |
Team | Blue vs Red teams competing for points |
3 |
Laps | Race a set number of laps; fastest wins |
4 |
Stunts | Score-based mode rewarding trick jumps and drifts |
TimeAttack (mode 1) is the standard for most public servers — it lets players join and race at any time without waiting for a round to finish.
Adding Custom Tracks
- Place
.Challenge.Gbxfiles (TMNF) or.Map.Gbxfiles (ManiaPlanet) in theTracks/Challenges/orUserData/Maps/directory respectively. - Add a
<challenge><file>...</file></challenge>(or<map>) entry to your match settings file for each track. - Restart the server, or use your XMLRPC controller to reload the playlist live.
Applying Changes
The match settings file is read at server startup and at each map change. If you use an XMLRPC controller (XASECO, PyPlanet, etc.), you can reload the map list live without restarting the server.