Trackmania Dedicated Server Setup Guide 2026
Set up a Trackmania dedicated server on Windows, Linux, or Docker, configure ports, maps, security, and troubleshoot connection issues confidently.

Launching a Trackmania server is only the beginning. The real challenge is keeping it reachable, secure, and ready for every map, mode, and event your community wants to run.
A Trackmania dedicated server hosts races without requiring your game client to stay open. Online hosting needs a separate server login, current server files, a dedicated_cfg.txt configuration, MatchSettings, and reachable TCP and UDP ports.
You can run the server on Windows, Linux, or Docker, depending on your preferred level of control and uptime.
Optional controllers add records, voting, chat commands, statistics, and administration through a private XML-RPC connection. Club Access is required only when creating or binding the server to a Club room.
This guide walks through account creation, installation, configuration, ports, maps, controllers, security, and troubleshooting in the safest order.
By the end, you will understand how the setup works and avoid mistakes that make a server invisible or unreachable.
Quick Facts About Trackmania Dedicated Servers
Before you start the setup, check these basics first. Most Trackmania dedicated server issues come from the wrong server file, missing server account, blocked ports, exposed XML-RPC access, or mixed-up Trackmania versions.
| Item | Detail |
|---|---|
| Main Focus | Trackmania 2020 / modern Trackmania |
| Supported Hosting | Windows, Linux, and Docker |
| Server File | TrackmaniaServer_Latest.zip |
| Main Config File | Copy dedicated_cfg.default.txt and rename it to dedicated_cfg.txt |
| Config Path | UserData/Config/dedicated_cfg.txt |
| MatchSettings Path | UserData/Maps/MatchSettings/ |
| MatchSettings Launch Path | Use /game_settings=MatchSettings/example.txt when starting the server |
| Default Game Port | 2350 TCP/UDP |
| Default XML-RPC Port | 5000 TCP |
| Trackmania Server Account | Required for online dedicated servers; Club Access is a separate requirement for creating or binding a Club room |
| Server Account Password | Save it during creation because you cannot view it again later |
| Same-PC Port Rule | Use 2351 and 5001 if the game and server run on the same PC |
| Same-PC Auto-Bump | Manually use 2351 for the game port and 5001 for XML-RPC if the game client and dedicated server run on the same PC |
| Join Methods | Local network, join link, or Club room |
| Console Support | Self-hosted dedicated servers are not available for PlayStation or Xbox players |
| Server Controllers | EvoSC, PyPlanet, and ManiaControl |
| XML-RPC Rule | Never port-forward XML-RPC to the public internet |
A Trackmania dedicated server needs the right server files, server account, config file, MatchSettings file, and game ports to work online.
Trackmania Dedicated Server Requirements
A Trackmania dedicated server does not need high-end hardware for a small room, but it does need the right account, files, ports, and network access. Prepare these items before you edit the config file or start the server.
Basic Requirements
You need these items for a working Trackmania 2020 dedicated server:
- Trackmania account: Use your normal Trackmania account to create and manage server access.
- Trackmania dedicated server account: Online dedicated servers need a separate server login. Do not use your normal player login as the server login.
- Club Access: You need Club Access when you want to create or bind an online Club room to your dedicated server.
- Saved server password: Save the dedicated server password when you create it. You cannot view it again later.
- Trackmania dedicated server download: Use the latest modern Trackmania server files. Do not use old Trackmania Nations Forever files for Trackmania 2020.
- Windows, Linux, or Docker host: Run the server on Windows, Linux, or a Docker-based setup.
- Correct game ports: Use 2350 TCP/UDP for the default game server port. Use 2351 TCP/UDP if the game and server run on the same machine.
- Private XML-RPC port: XML-RPC uses 5000 TCP by default. Use 5001 TCP for same-machine setups when needed. Never expose XML-RPC to the public internet.
- Firewall and router access: You need access to the OS firewall, router, or hosting firewall so players can reach the game port.
A Trackmania dedicated server free setup can work for LAN testing, small friend groups, or home hosting. Public hosting still needs a server account, reachable ports, and a network that accepts inbound traffic.
Advanced Requirements
You need these items for a stable public server, event room, or community setup:
- Public IPv4: Use a public IPv4 address if outside players need to join directly. A home connection behind CGNAT can block public access even when your local firewall looks correct.
- Backup plan: Back up UserData, config files, MatchSettings, maps, controller files, and controller databases before updates.
- Controller setup: Use EvoSC, PyPlanet, or ManiaControl when you need records, votes, map queues, admin tools, chat commands, or player stats.
- Database for controller tools: Major Trackmania controller stacks need a database to store records, player data, rankings, map votes, and server activity.
- Club access for Club room binding: Use Club access when you want to bind your dedicated server to a Club room.
- PC-player limitation: A self-hosted dedicated server can run on Windows, Linux, or Docker, but players can join that server only from PC clients. PlayStation and Xbox players need supported in-game room options instead.
- Dedicated infrastructure for always-on hosting: Use dedicated server infrastructure when you need stable public access, custom ports, multiple instances, full file control, logs, backups, and controller/database stacks.
How To Create A Trackmania Dedicated Server Account
- Create the dedicated server account before editing dedicated_cfg.txt.
- Use a clean server login name.
- Avoid spaces in the server login.
- Use simple Latin letters, numbers, dots, underscores, or hyphens where possible.
- Save the generated server login and password as soon as you create them.
- The generated password cannot be viewed again later.
- Add the dedicated server login and password inside dedicated_cfg.txt.
- The server uses these details when it starts and connects online.
- Place the generated password inside the <password> field.
- Wrap the password in CDATA to avoid XML parsing issues with special characters.
- If you lose the generated password, create a new server login and update dedicated_cfg.txt.
- Never share the server password in:
- Screenshots
- GitHub repos
- Discord messages
- Public config examples
- Support threads
- Common mistake: Do not use your normal Ubisoft account password as the Trackmania server account password.
- Use only the password generated for the dedicated server account.
How To Download Trackmania Dedicated Server Files
- Modern Trackmania uses TrackmaniaServer_Latest.zip for dedicated server files.
- Download the latest server package from the Trackmania dedicated server download location before starting the setup.
- A modern Trackmania dedicated server download is not a normal SteamCMD server install.
- Do not use SteamCMD as the main install method for the Trackmania 2020 dedicated server.
- Extract the server files into a clean folder.
- Use a simple folder name.
- Avoid spaces and unusual characters in the server folder name.
- Keep folder names short, clear, and easy to reference in commands.
- Do not mix Trackmania 2020 files with older server files.
- A Trackmania Nations Forever dedicated server download is for TMNF, not Trackmania 2020.
- Old TMNF, Trackmania United Forever, and Trackmania 2 Stadium files use different tools, paths, configs, and workflows.
- Keep the UserData folder safe during updates.
- Back up UserData before replacing server files.
- UserData can contain:
- Server config files
- Maps
- MatchSettings
- Logs
- Local server data
- Do not assume controller databases live inside UserData.
- Controller data may live in a separate database, Docker volume, mounted directory, or external database service.
- Back up controller storage separately from UserData.
- After updating the server files, restart the server and test:
- Config file
- Server account login
- Game ports
- MatchSettings
- Custom maps
- Controller connection
- Club room binding
How To Set Up A Trackmania Dedicated Server On Windows
Use Windows when you want a direct file-based setup with simple access to configs, logs, and batch files. Keep the server folder clean from the start, because most setup errors come from mixed files, wrong paths, or missing config copies.
Step 1: Download And Extract Server Files
- Download the latest TrackmaniaServer_Latest.zip.
- Create a clean folder for the server.
- Use a simple path, such as:
C:\trackmania-server\ - Avoid spaces and unusual characters in the folder name.
- Do not extract the zip into a folder that already contains old Trackmania server files.
- Do not mix Trackmania 2020 files with Trackmania Nations Forever, Trackmania United Forever, or Trackmania 2 Stadium files.
- Run TrackmaniaServer.exe once after extraction.
- The first run may show errors because the server has no config yet.
- This first run can still create needed folders such as UserData, Config, and Logs.
Step 2: Create dedicated_cfg.txt
- Open this folder:
UserData\Config\ - Find this file:
dedicated_cfg.default.txt - Copy it in the same folder.
- Rename the copy to:
dedicated_cfg.txt - Keep dedicated_cfg.default.txt untouched as a clean reference.
- Edit only dedicated_cfg.txt.
Step 3: Add Server Account Details
- Open dedicated_cfg.txt.
- Find the masterserver_account section.
- Add your dedicated server login inside <login>.
- Add your generated dedicated server password inside <password>.
- Wrap the password in CDATA to prevent XML errors when the password contains special characters.
Example:
<masterserver_account>
<login>yourserverlogin</login>
<password><![CDATA[yourGeneratedPassword]]></password></masterserver_account>
- Do not add your normal Ubisoft password here.
- Do not share this config file publicly unless you remove the password first.
Step 4: Set Name, Comment, And Ports
- Find the server name and comment fields in dedicated_cfg.txt.
- Add a clear server name.
- Add a short comment if you want players to understand the room purpose.
Example:<name>RedSwitches Trackmania Server</name>
<comment>Time Attack practice room</comment>
- Check the game server port.
- Use this default game port for a normal single-server setup: <server_port>2350</server_port>
- Use this default XML-RPC port for controllers: <xmlrpc_port>5000</xmlrpc_port>
- Use 2351 and 5001 when the game client and server run on the same PC.
- Use a new port pair for each extra server instance.
- Forward the game port only when players need public access.
- Never port-forward XML-RPC to the public internet.
Step 5: Create A Launch Batch File
- Create a new file in the main server folder.
- Name it:
start-trackmania.bat - Add this code:
@echo offcd
/d "%~dp0"
TrackmaniaServer.exe /dedicated_cfg=dedicated_cfg.txt /game_settings=MatchSettings/example.txt
if %errorlevel% neq 0 pause - /dedicated_cfg=dedicated_cfg.txt tells the server which config file to load.
- /game_settings=MatchSettings/example.txt tells the server which MatchSettings file to load.
- The MatchSettings path is relative to:
UserData\Maps\ - Replace example.txt with your real MatchSettings file when you create a custom playlist.
Step 6: Start And Test The Server
- Double-click start-trackmania.bat.
- Check the console output for these signs:
- Config file loaded
- Dedicated server account connected
- MatchSettings loaded
- Server started
- Join link generated
- Check the Logs folder when the server fails.
- Fix these common first-run errors:
- Wrong server login
- Lost or wrong-generated password
- Password not wrapped in CDATA
- Missing dedicated_cfg.txt
- Wrong MatchSettings file name
- Wrong /game_settings= path
- Port already used by the game client
- Windows Firewall blocking 2350 TCP/UDP
- XML-RPC exposed by mistake
How To Set Up A Trackmania Dedicated Server On Linux
Use Linux for always-on hosting, cleaner process control, easier remote access, and better restart handling. Run the server under its own user so one game process does not get broad system access.
Step 1: Create A Non-Root User
- Create a dedicated Linux user for the server.
sudo useradd -m -r -s /bin/bash trackmania - Use this account to own and run the server files.
- Do not run the Trackmania server as root.
- A non-root user limits damage if the server process, controller, or config gets exposed.
Step 2: Download And Extract Server Files
- Switch to the server user.
sudo -iu trackmania - Create a clean server folder.
mkdir -p ~/server cd ~/server - Download the latest server zip.
wget http://files.v04.maniaplanet.com/server/TrackmaniaServer_Latest.zip -O TrackmaniaServer_Latest.zip - Extract it inside the clean folder.
unzip TrackmaniaServer_Latest.zip - Do not unzip it directly into the home folder.
- Set safe execute permission on the server binary.
chmod 755 TrackmaniaServer - Run the server once to create required folders.
./TrackmaniaServer - The first run can fail because the config is not ready yet.
- That failure is normal during first setup.
Step 3: Configure dedicated_cfg.txt
- Go to the config folder.
cd ~/server/UserData/Config - Copy the default config.
cp dedicated_cfg.default.txt dedicated_cfg.txt - Edit the new config file.
nano dedicated_cfg.txt - Add the dedicated server login and generated password. <masterserver_account>
<login>yourserverlogin</login>
<password><![CDATA[yourGeneratedPassword]]></password> </masterserver_account> - Set the server name and comment.
<name>RedSwitches Trackmania Server</name>
<comment>Linux-hosted Time Attack room</comment> - Set the game port.
<server_port>2350</server_port> - Set the XML-RPC port.
<xmlrpc_port>5000</xmlrpc_port> - Change the XML-RPC authorization passwords for SuperAdmin, Admin, and User.
- Keep XML-RPC private and block public access to port 5000.
- Review bandwidth fields such as connection_uploadrate and connection_downloadrate before hosting larger rooms.
- Use conservative values first, then adjust after real player testing.
Step 4: Add MatchSettings
- Keep MatchSettings files in:
~/server/UserData/Maps/MatchSettings/ - Use the existing example file for a first test.
- Create a custom file later when you add your own maps and mode settings.
- The launch command points to MatchSettings with a path relative to: UserData/Maps/
- This path format is correct:
/game_settings=MatchSettings/example.txt - This path format can break because it repeats the full local folder path: /game_settings=UserData/Maps/MatchSettings/example.txt
Step 5: Test With A Manual Launch Command
- Return to the server folder.
cd ~/server - Start the server manually.
./TrackmaniaServer /nodaemon /dedicated_cfg=dedicated_cfg.txt /game_settings=MatchSettings/example.txt - Use /nodaemon during testing so you can see console errors.
- Check for these startup signs:
- Dedicated config loaded
- Master server connection succeeds
- MatchSettings file loads
- XML-RPC starts on the expected port
- Join link appears
- Server waits for players or starts the room
- Stop the test after it works.
Ctrl+C - Exit the trackmania user’s shell before running the following administrative commands.
exit
Step 6: Create A systemd Service
- Create a service file as root.
sudo nano /etc/systemd/system/trackmania.service - Add this service file:
[Unit] Description=Trackmania Dedicated Server
After=network-online.target
Wants=network-online.target
[Service] Type=simple
User=trackmania
Group=trackmania
WorkingDirectory=/home/trackmania/server ExecStart=/home/trackmania/server/TrackmaniaServer /nodaemon h /dedicated_cfg=dedicated_cfg.txt /game_settings=MatchSettings/example.txt Restart=on-failure
RestartSec=10
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target - Reload systemd.
sudo systemctl daemon-reload - Start the server.
sudo systemctl start trackmania - Enable startup on boot.
sudo systemctl enable trackmania - Check service status.
sudo systemctl status trackmania - Read live logs.
sudo journalctl -u trackmania -f - Use journalctl and the server Logs folder together when debugging.
Step 7: Add Backup And Update Workflow
- Stop the service before major updates.
sudo systemctl stop trackmania - Create the backup directory if it does not already exist.
sudo mkdir -p /var/backups - Back up UserData.
sudo tar -czf /var/backups/trackmania-userdata-$(date +%F).tar.gz -C /home/trackmania/server UserData - Back up custom MatchSettings.
sudo tar -czf /var/backups/trackmania-matchsettings-$(date +%F).tar.gz -C /home/trackmania/server/UserData/Maps MatchSettings - Back up custom maps if you store them under UserData/Maps.
- Back up controller databases separately.
- Do not assume controller data lives inside UserData.
- Controller data may live in:
- MariaDB
- MySQL
- SQLite
- Docker volumes
- Mounted controller folders
- External database servers
- Replace server binaries carefully during updates.
- Keep your current UserData folder unless the update guide tells you to change it.
- Start the service after the update. sudo systemctl start trackmania
- If the update fails, stop the service, restore the previous server files and UserData backup, then start the service and review the logs before reopening the server to players.
- Test the server after every update:
- Server login
- MatchSettings
- Ports
- Maps
- Controller connection
- Club room binding
How To Run A Trackmania Dedicated Server With Docker
Use Docker when you want repeatable deployment, clear volumes, easier rebuilds, and a cleaner controller/database stack. Docker works best when you understand port mapping, persistent storage, and public IP handling.
Docker Compose Items To Include
Your Docker Compose file should include these parts:
- Trackmania server image
- Container name
- Persistent UserData volume
- Persistent map or MatchSettings mount
- 2350 TCP mapping
- 2350 UDP mapping
- Server login variable
- Server password variable
- TM_SYSTEM_FORCE_IP_ADDRESS when the server must advertise a specific public address
- Restart policy
- Separate the database service when using a major controller
- Separate controller service when using EvoSC or PyPlanet
Example:
services:
trackmania:
image: evoesports/trackmania:latest
container_name: trackmania-server
restart: unless-stopped
ports:
- "2350:2350/tcp"
- "2350:2350/udp"
environment:
TM_MASTERSERVER_LOGIN: "yourserverlogin"
TM_MASTERSERVER_PASSWORD: "yourGeneratedPassword"
TM_GAME_SETTINGS: "maplist.txt"
TM_SYSTEM_FORCE_IP_ADDRESS: "YOUR_PUBLIC_IPV4:2350"
TM_SERVER_NAME: "RedSwitches Trackmania Server"
TM_SERVER_MAX_PLAYERS: "32"
TM_SERVER_MAX_SPECTATORS: "32"
volumes:
- trackmania_userdata:/server/UserData
- ./Maps:/server/UserData/Maps
volumes:
trackmania_userdata: {}
- Replace YOUR_PUBLIC_IPV4 with the server’s reachable public IPv4 when TM_SYSTEM_FORCE_IP_ADDRESS is required by your network configuration.
- For LAN-only hosting, set TM_SYSTEM_FORCE_IP_ADDRESS to the host’s LAN IP and mapped game port if the container would otherwise advertise its private Docker address.
- Leave TM_SYSTEM_FORCE_IP_ADDRESS unset when the container can detect and advertise the correct reachable address automatically.
- Keep the XML-RPC port closed from the public internet.
- Do not publish 5000:5000 unless you place it behind a trusted private network, VPN, or strict firewall allowlist.
Docker With Controller And Database Stack
- Add a controller only after the base server works.
- Use EvoSC or PyPlanet when you need:
- Local records
- Map voting
- Jukebox
- Admin commands
- Chat tools
- Player stats
- Major controller stacks need a database.
- Use MariaDB or another supported database based on your controller’s docs.
- Store database files in a named volume.
- Back up the database volume apart from UserData.
- Keep controller config and module folders in their own volumes.
- Set the controller to connect to the Trackmania container over the internal Docker network.
- Do not expose XML-RPC publicly just to let the controller connect.
Docker Mistakes To Avoid
- Do not map only TCP.
- Trackmania player traffic needs UDP too.
- Do not forget this mapping:ports:- "2350:2350/tcp"- "2350:2350/udp"
- Do not configure an incorrect public IP in TM_SYSTEM_FORCE_IP_ADDRESS.
- Do not use a container-only private IP as the public join address; outside players need an address and port reachable from the internet.
- Do not store UserData only inside the container.
- A non-persistent UserData setup can lose config files, maps, and MatchSettings when the container gets removed.
- Do not expose XML-RPC to the internet.
- Do not assume ARM64 works with every Trackmania Docker setup.
- Use an x86_64 host unless your chosen image clearly supports ARM64.
- Do not start with a controller stack before the base server works.
- Fix the core server first, then add database and controller services.
- Do not place controller data only inside short-lived containers.
- Put controller config, modules, cache, and database storage into volumes.
- Do not ignore container logs.
- Use these commands during testing:
docker compose up
docker compose up -d
docker compose logs -f
docker compose stop - Check the logs for:
- Master server login errors
- Wrong generated password
- Missing MatchSettings
- Wrong map path
- Private network warning
- Incorrect TM_SYSTEM_FORCE_IP_ADDRESS
- Controller XML-RPC connection failure
- Missing database service
The fastest safe path is simple: start the base Trackmania server first, confirm players can join, then add controllers, databases, backups, and Club room binding.
Trackmania Dedicated Server Ports And Firewall Rules
Trackmania needs the game server port open so players can join. XML-RPC should stay private because controllers and admin tools use it to control the server.
| Port | Protocol | Purpose | Public Or Private |
|---|---|---|---|
| 2350 | TCP/UDP | Main server traffic | Public if hosting online |
| 2351+ | TCP/UDP | Extra instance or same-PC setup | Public if used |
| 5000 | TCP | XML-RPC controller and admin channel | Private |
| 5001+ | TCP | XML-RPC for extra instances | Private |
Open 2350 TCP/UDP when you host one public Trackmania dedicated server.
- Use 2351 TCP/UDP, 2352 TCP/UDP, and higher ports for extra server instances.
- Use 2351 if the Trackmania game client and the dedicated server run on the same machine.
- Open both TCP and UDP for the game server port. UDP-only checks can miss part of the traffic path.
- Keep XML-RPC closed to the public internet.
- Do not port-forward 5000 TCP or 5001 TCP to the open internet.
- Allow XML-RPC only from localhost, a private network, a VPN, or a strict firewall allowlist.
- Check every firewall layer:
- Windows Defender Firewall
- Linux firewall
- Router port forwarding
- Hosting provider firewall
- Docker port mapping
- Controller network rules
- Use unique game and XML-RPC ports for each server instance.
- Do not run two servers on the same game port.
- Do not run two controllers on the same XML-RPC port.
- Forward the game port to the correct local server IP.
- Use a static LAN IP or DHCP reservation for home hosting.
- Check for CGNAT if players outside your network cannot join.
- CGNAT means your router does not receive a real public IPv4 address.
- Conventional IPv4 port forwarding usually will not work behind CGNAT unless your ISP provides a public IPv4 address or another supported inbound-access method.
- A UDP port checker may show false results because UDP does not always reply like TCP.
- Test with a real external player instead of trusting only a web-based port checker.
- The best test is simple: ask someone outside your network to join the server from a PC client.
Joining A Trackmania Dedicated Server
You can join Trackmania servers through a local network, a join link, or a Club room. For public modern Trackmania 2020 servers, Club room binding gives players the clearest path.
Join On Local Network
- Use local joining when the server and player PC use the same LAN.
- Open Trackmania on the player PC.
- Go to Play > Local > Local network.
- Select the server when it appears.
- Local joining works without public port forwarding.
- Local joining does not prove that outside players can join.
- Test remote access separately if you want a public server.
Join With A Join Link
- Start the dedicated server.
- Watch the server console after startup.
- Look for a join link that contains the server identifier.
- Copy the join part from the link.
- Open Trackmania.
- Go to the Join Link option in the game settings.
- Paste the join value and press Enter.
- Use join links for direct testing, private rooms, or quick access.
- If the join link fails, check the game port, firewall, public IP, and server account.
Join Through A Club Room
- Use a Club room when you want players to find your server more easily.
- Start the dedicated server first.
- Bind the dedicated server login to a Club room.
- Open the Club area in Trackmania.
- Select the room from the Club activity list.
- Test the room from a PC client.
- A Club room is the most practical way to present modern Trackmania servers to a community.
- A Trackmania dedicated server list can mean several things:
- Local network server list
- Club room list
- Join links shared by communities
- Older legacy server lists
- Public community directories
Binding A Dedicated Server To A Trackmania Club Room
Club binding connects your running dedicated server to a visible Club activity. This makes the server easier to find than a raw join link.
Follow this flow:
- Start the Trackmania dedicated server.
- Confirm the server login works.
- Confirm the server has loaded the correct MatchSettings file.
- Open Trackmania from a PC client.
- Open the Club area.
- Select the Club you manage.
- Go to the Administration area.
- Add a new Club Activity.
- Choose Room.
- Select Use Dedicated Server.
- Enter the room name.
- Select the dedicated server login from the list.
- Create the room.
- Open the room from the Club activity list.
- Test the room from a PC client.
- Ask another PC player to test the room from outside your network.
Use these checks if the room does not work:
| Problem | What To Check |
|---|---|
| Server login does not appear | Check the dedicated server account and Club access |
| The room opens, but does not connect | Check game port, public IP, and firewall |
| The server shows the wrong map list | Check the MatchSettings file loaded at startup |
| The controller does not work | Check XML-RPC port, password, and private network path |
| The console player cannot find the room | Self-hosted dedicated server rooms can only be joined from PC clients |
Self-hosted dedicated server rooms can run on Windows, Linux, or Docker, but players can join them only from PC. PlayStation and Xbox players need supported cross-platform room options, such as selected tracks or campaign-based rooms.
Trackmania Server Status Checks
Trackmania server status can mean many different things. A server can run locally while still failing online, or appear online while the controller cannot connect.
Use this table to isolate the issue.
| Check | What To Verify |
|---|---|
| Process | Is TrackmaniaServer running? |
| Logs | Are there login, port, or MatchSettings errors? |
| Local Join | Can a local PC see the server? |
| Remote Join | Can an outside player join? |
| Ports | Is 2350 TCP/UDP open and forwarded? |
| XML-RPC | Is the controller connected through a private path? |
| Club Room | Is the correct server account selected? |
| Version | Are server files current? |
Check these areas in order:
- Game service status: Confirm the game can connect online.
- Server process status: Check that the dedicated server process is still running.
- Log status: Read the latest log file for account, config, port, or MatchSettings errors.
- Local reachability: Join from another PC on the same network.
- Internet reachability: Ask an outside player to test the join link or Club room.
- Port status: Confirm 2350 TCP/UDP points to the server.
- XML-RPC status: Confirm the controller can reach XML-RPC without exposing it publicly.
- Club room visibility: Confirm the Club room uses the correct dedicated server login.
- Version match: Update server files if players see a version mismatch.
A good Trackmania server status check should test the process, logs, ports, remote join path, Club room, and controller separately.
Trackmania MatchSettings Explained
MatchSettings tell the dedicated server what to run. They define the game mode, map playlist, map order, and mode settings.
- MatchSettings files live in:
UserData/Maps/MatchSettings/ - The server loads MatchSettings at startup with: /game_settings=MatchSettings/example.txt
- The /game_settings= path should be relative to:
UserData/Maps/ - Editing the wrong MatchSettings file will not change the live server.
- Updating the file does not help if the launch command points to a different file.
- Use one clear MatchSettings file per server instance.
- Keep file names simple.
- Avoid spaces and unusual characters in MatchSettings file names.
What MatchSettings Should Include
A MatchSettings file should define the game mode and map playlist, plus only the mode-specific settings required by the selected script:
- script_name for the game mode
- Map list
- Relative map paths
- Start index
- Time-limit settings when supported by the selected mode
- Rounds settings when using a rounds-based mode
- Laps settings when using a lap-based mode
- Points or win-condition settings required by the selected mode
- Optional warmup settings supported by the selected mode
- Map rotation behavior
- Mode-specific script settings
Example Time Attack MatchSettings file:
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<game_mode>0</game_mode>
<script_name>Trackmania/TM_TimeAttack_Online</script_name>
</gameinfos>
<mode_script_settings>
<setting name="S_TimeLimit" type="integer" value="300"/>
<setting name="S_WarmUpNb" type="integer" value="0"/>
</mode_script_settings>
<startindex>0</startindex>
<map>
<file>MyMaps/training-01.Map.Gbx</file>
</map>
<map>
<file>MyMaps/training-02.Map.Gbx</file>
</map>
</playlist>In this example, the map files must exist under: UserData/Maps/MyMaps/
Common Trackmania Game Modes
| Game Mode | What It Does | Good For |
|---|---|---|
| Time Attack | Players chase the best time within a time limit | Practice, public rooms, casual racing |
| Rounds | Players earn points each round based on finish order | Competitive lobbies |
| Cup | Players earn points to become finalists, then a finalist must win a round to take the match | Finals, tournaments, events |
| Knockout | Players get eliminated through rounds | Party rooms and elimination events |
| Laps | Players race over lap-based maps | Longer races and circuits |
| Teams | Players score as teams instead of only as individuals | Team events and community matches |
Start with Time Attack if you are new. Move to Rounds, Cup, Knockout, Laps, or Teams when you understand MatchSettings and server testing.
Adding Custom Maps To A Trackmania Dedicated Server
Custom maps work when the server can find the .Map.Gbx files and the MatchSettings file points to the correct relative paths.
- Add custom .Map.Gbx files under:
UserData/Maps/ - Create a clear folder for your maps.
Example: UserData/Maps/MyMaps/ - Add each map to your MatchSettings file.
Example:
<map>
<file>MyMaps/training-01.Map.Gbx</file>
</map>
<map>
<file>MyMaps/training-02.Map.Gbx</file>
</map>
- Keep map paths relative to:
UserData/Maps/ - Match the file name exactly.
- Check uppercase and lowercase characters on Linux.
- Avoid special characters in map file names when possible.
- Save the MatchSettings file in:
UserData/Maps/MatchSettings/ - Start the server with the correct MatchSettings file.
Example: /game_settings=MatchSettings/my-room.txt - Restart the server after manual MatchSettings edits.
- Use a controller if you want easier map queues, voting, jukebox features, or admin map commands
| Method | Best For | Limitation |
|---|---|---|
| Manual MatchSettings editing | Small private servers | Slow and easy to break with wrong paths |
| Controller map queue | Active communities | Needs a controller and a database setup |
| Club selected tracks | Simple rooms | Gives less server-side control |
- The safest first test uses two custom maps, one simple MatchSettings file, and one clean server restart. Add controller features only after the base map rotation works.
Trackmania Server Controllers: EvoSC, EvoSC#, PyPlanet, ManiaControl, And Legacy Tools
A Trackmania server controller adds features that the base dedicated server does not handle alone. Controllers connect through XML-RPC and can manage records, chat commands, admin tools, jukebox queues, map voting, player statistics, live rankings, moderation, and server tasks.
Start with the base dedicated server first. Add a controller only when your server needs records, votes, map queues, admin commands, or player activity tracking.
| Controller | Best For | Notes |
|---|---|---|
| EvoSC# | Modern Trackmania 2020 communities | A C#/.NET controller built for Trackmania 2020 dedicated servers. It is still in development, so check current release notes before writing setup steps. |
| EvoSC | TM² and older TM2020 controller setups | A PHP-based controller for Trackmania² and Trackmania 2020. Do not treat it as the same project as EvoSC#. |
| PyPlanet | Records, jukebox, MX links, admin tools | A Python-based controller with strong community features. It needs database and config knowledge. |
| ManiaControl | ManiaPlanet-era server control | A ManiaPlanet server controller. Use it mainly when your setup matches the ManiaPlanet workflow. |
| Trakman | Trackmania Forever server control | A controller for Trackmania Forever servers; do not use it as a Trackmania 2020 controller recommendation. |
| XASECO | Trackmania Forever and older setups | Legacy controller for older Trackmania versions. |
| UASECO | Trackmania 2 / ManiaPlanet | Legacy context for ManiaPlanet mode script servers. |
Major controller stacks need database storage or persistent state for records, rankings, player data, map activity, and server history. Back up controller storage apart from UserData, especially when you use Docker volumes, mounted folders, or an external database.
Use a controller when your Trackmania server becomes a real community space. Skip it for a first local test, a short private session, or a simple room with a few maps.
XML-RPC Security For Trackmania Dedicated Servers
XML-RPC is the server control interface. Controllers use it to send commands, read server state, manage maps, show records, and run admin features.
XML-RPC is not the game server port. The default XML-RPC port is 5000 TCP, while the default game server port is 2350 TCP/UDP.
Keep XML-RPC private. Public XML-RPC access can expose admin control, controller access, or sensitive server actions.
Use this checklist:
- Change the default SuperAdmin, Admin, and User passwords.
- Use strong XML-RPC passwords that differ from the server account password.
- Keep XML-RPC on localhost, a private network, or an internal Docker network.
- Do not forward 5000 TCP to the public internet.
- Use a VPN or strict firewall allowlist if you need remote admin access.
- Do not publish XML-RPC credentials in screenshots, GitHub repos, Discord messages, or support threads.
- Rotate XML-RPC passwords if they were exposed.
- Restrict controller database access to the controller host or private network.
- Keep database users limited to the permissions the controller needs.
- Block public access to database ports.
- Store controller config files outside public web folders.
- Review Docker Compose files before sharing them.
Performance Tuning For Trackmania Dedicated Servers
Trackmania server performance depends on player count, spectator count, upload rate, download rate, CPU load, packet handling, controller load, database load, latency, and server location. Larger rooms need more careful network and controller testing than small private rooms.
Do not promise fixed gains from one setting. Test changes with real players, then compare logs, join quality, map changes, controller delay, and player feedback.
| Setting | Where It Belongs | Meaning | When To Change |
|---|---|---|---|
| max_players | dedicated_cfg.txt | Player slots | Larger rooms |
| max_spectators | dedicated_cfg.txt | Spectator slots | Events or streams |
| connection_uploadrate | dedicated_cfg.txt | Server upload limit | More players or spectators |
| connection_downloadrate | dedicated_cfg.txt | Server download handling | Busy servers |
| workerthreadcount | dedicated_cfg.txt | CPU worker threads | Larger servers after testing |
| packetassembly_multithread | dedicated_cfg.txt | Packet preparation | Higher network load |
| disable_replay_recording | dedicated_cfg.txt | In-memory replay recording | Large rooms experiencing memory pressure, after testing |
| clientinputs_maxlatency | dedicated_cfg.txt | High-ping input tolerance | Global player groups |
| S_TrustClientSimu | MatchSettings / mode script settings | Client simulation trust | Advanced mode tuning |
| S_UseCrudeExtrapolation | MatchSettings / mode script settings | Opponent prediction behavior | Advanced mode tuning |
Use these practical rules:
- Keep player slots realistic for your upload speed and CPU.
- Treat spectators as extra load, not free capacity.
- Place the server close to most players when possible.
- Keep controllers and databases on the same server or private network when latency matters.
- Watch controller logs during map changes, votes, and peak player activity.
- Change one setting at a time.
- Save a working config before tuning.
- Revert changes that make joins, map changes, or controller actions slower.
- Tune MatchSettings separately from dedicated_cfg.txt.
- Do not place mode script settings inside the wrong file.
Trackmania Dedicated Server Not Showing Or Friends Cannot Join
This issue usually comes from account, port, NAT, Club binding, Docker, or version problems. Treat it as a network and config checklist, not a single error.
| Problem | Likely Cause | What To Check |
|---|---|---|
| Works locally but friends cannot join | NAT, firewall, or CGNAT | WAN IP, router forwarding, OS firewall, hosting firewall |
| Server not visible in Club | Server not bound correctly | Club room settings and dedicated server login |
| Join link fails | Server unreachable | Game port, public IP, server process, server account |
| Controller cannot connect | XML-RPC issue | XML-RPC port, password, private network path |
| Docker server unreachable | Port or IP mapping issue | Compose file, UDP mapping, TM_SYSTEM_FORCE_IP_ADDRESS |
| Server breaks after update | File mismatch or overwritten data | Backup, update process, preserved UserData |
Check these causes in order:
- Wrong dedicated server account.
- Lost or wrong generated server password.
- Server password not wrapped correctly in dedicated_cfg.txt.
- Blocked 2350 TCP/UDP.
- UDP not forwarded.
- Windows or Linux firewall blocking the server.
- Router forwarding to the wrong local IP.
- Hosting firewall blocking inbound traffic.
- CGNAT on a home internet connection.
- Wrong public IP in server config or Docker variables.
- Wrong TM_SYSTEM_FORCE_IP_ADDRESS in Docker.
- Game client and server fighting over the same default ports on the same PC.
- Multiple server instances using the same game port.
- Multiple controllers using the same XML-RPC port.
- Club room not bound to the correct dedicated server login.
- Console player trying to join a PC-only self-hosted dedicated server room.
- Outdated server files after a Trackmania update.
- MatchSettings file missing or loaded from the wrong path.
- Custom map path mismatch.
Use real external testing when possible. A server can work on LAN while still failing for players outside your network.
A Trackmania server status check should test four things separately: the server process, the game port, the Club room, and the controller connection.
Trackmania Nations Forever, United Forever, And Trackmania 2 Server Notes
Modern Trackmania 2020 setup should not be mixed with older Trackmania server guides. Legacy versions use different files, paths, controllers, and community tools.
Trackmania Nations Forever uses older setup paths and older controller stacks. Trackmania United and United Forever belong to an older game family.
Trackmania 2 Stadium belongs to the ManiaPlanet era. XASECO and UASECO remain useful for legacy context, but they are not the clean starting point for a modern Trackmania 2020 dedicated server.
Confirm your exact game version before downloading files or copying config examples.
| Query | Usually Refers To | Guidance |
|---|---|---|
| trackmania nations forever dedicated server | TMNF legacy server | Use TMNF-specific server files and legacy setup guides |
| trackmania united dedicated server | Older United server | Do not mix its files with Trackmania 2020 |
| trackmania united forever dedicated server | TMUF legacy server | Use legacy resources for that game version |
| trackmania 2 stadium dedicated server | ManiaPlanet-era server | Some concepts overlap, but files and tools differ |
| trackmania stadium dedicated server | Ambiguous query | Confirm the exact game before setup |
Best Trackmania Dedicated Server Setup Options Compared
Choose the setup model based on your goal: quick testing, simple Club hosting, full server control, repeatable Docker deployment, or always-on community hosting.
| Setup Option | Best For | Use It When | Control Level | Public Hosting | Main Limitation |
|---|---|---|---|---|---|
| Local PC Server | Testing and small friend groups | You want to test configs, maps, MatchSettings, and LAN play before going public | Medium | Possible, but weak on many home networks | Home upload, CGNAT, uptime, and home IP exposure |
| Club Room With Selected Tracks | Simple rooms without full server control | You want players to find the room inside Trackmania without managing server files, ports, or XML-RPC | Low | Yes, through supported room options | Less control over files, controllers, and server behavior |
| Windows Dedicated Server | Direct setup and easy file access | You want to edit files in File Explorer, run a .bat file, and manage logs without Linux commands | High | Yes | Needs manual care for uptime, firewall rules, and multi-instance ports |
| Linux Dedicated Server | Stable always-on hosting | You want systemd, SSH access, cleaner logs, scheduled backups, and better service control | High | Yes | Requires Linux server skills and careful file permissions |
| Docker Dedicated Server | Repeatable deployment and controller/database stacks | You want persistent volumes, clean port mapping, rebuildable containers, and controller services beside the server | High | Yes | Needs correct UDP mapping, volumes, public IP handling, and private XML-RPC networking |
| Dedicated Infrastructure | Public communities, events, persistent rooms, and multiple server instances | You need public IPv4, full port control, uptime planning, backups, logs, and a location close to players | Very High | Yes | Costs more and still needs correct config, ports, MatchSettings, and server account details |
Build a Reliable Trackmania Server With RedSwitches
A reliable Trackmania dedicated server needs more than the correct server files. It also requires a valid server account, working MatchSettings, reachable TCP and UDP ports, private XML-RPC access, regular backups, and infrastructure that stays available when players are ready to race.
RedSwitches dedicated servers provide a practical foundation for Windows, Linux, and Docker deployments. You retain control over the operating system, ports, server files, controllers, databases, logs, and backup workflow.
This makes it easier to run persistent rooms, manage multiple instances, and avoid home-network limitations such as CGNAT, unstable uptime, and restricted port access.
Communities that share maps, replays, screenshots, or event media can also use separate CDN-ready infrastructure without adding unnecessary delivery load to the game server.
Start with a clean configuration, test every layer, and scale as your community grows. RedSwitches gives you the control and reliable infrastructure needed to keep every race ready to start.
Frequently Asked Questions
Common questions about trackmania dedicated server setup guide 2026.
Does Trackmania have dedicated servers?
How do I download the Trackmania dedicated server?
What is a Trackmania dedicated server account?
Do I need a Trackmania server account?
What ports does a Trackmania dedicated server use?
Can console players join a self-hosted Trackmania dedicated server?
Can I host a Trackmania dedicated server for free?
Why is my Trackmania dedicated server not showing?
Hafsa Qadeer
Technical Writer
Hafsa Qadeer is a Technical Content Writer at RedSwitches and a journalist with a background in molecular biology and oncology. She brings research precision to technical writing and SEO strategy, turning complex topics in infrastructure, biotech, and AI into content that informs and engages.
Power Your Next Project With Bare Metal
10 min delivery, zero setup fees, and 24/7/365 human engineers across 20+ global locations.


