Trackmania Competition XMLRPC Commands
Trackmania servers expose a GBXRemote XMLRPC interface that controller software (and custom scripts) use to manage matches. This reference covers the most important methods for running competitions — searchable by method name or description.
Authentication
Connect a GBXRemote client to the XMLRPC port (recommend 5001),
then call Authenticate before any other method.
The credentials are from the authorization_levels section
of dedicated_cfg.txt.
# Python — direct GBXRemote connection
import xmlrpc.client
server = xmlrpc.client.ServerProxy('http://localhost:5001/RPC2')
server.Authenticate('Admin', 'YourAdminPassword')
# Or with PyPlanet GbxClient (asyncio)
from pyplanet.utils.gbxclient import GbxClient
import asyncio
async def main():
client = GbxClient('localhost', 5001)
await client.connect()
await client.authenticate('Admin', 'YourAdminPassword')
await client.execute('ChatSend', 'Hello competition!')
asyncio.run(main())Server Control
| Method | Auth Required | Description |
|---|---|---|
| GetServerInfo | User | Returns server name, comment, max players, and current player count. |
| GetSystemInfo | User | Returns server port, P2P port, XMLRPC port, and IP. |
| SetServerName | SuperAdmin | Set the server's display name. |
| SetServerComment | SuperAdmin | Set the server description visible in server browser. |
| SetServerPassword | SuperAdmin | Set or clear the join password. |
| SetMaxPlayers | SuperAdmin | Change the maximum player count at runtime. |
| SetMaxSpectators | SuperAdmin | Change the maximum spectator count at runtime. |
| Quit | SuperAdmin | Gracefully shut down the dedicated server process. |
Map Control
| Method | Auth Required | Description |
|---|---|---|
| GetCurrentMapInfo | User | Returns metadata (name, uid, author) for the currently playing map. |
| GetMapList | User | Returns the list of maps in the current playlist. |
| NextMap | Admin | Skip to the next map in the playlist immediately. |
| RestartMap | Admin | Restart the current map from the beginning. |
| ChooseNextMap | Admin | Set a specific map as the next map to play. |
| AddMap | Admin | Add a map file to the end of the current playlist. |
| RemoveMap | Admin | Remove a map from the playlist by filename. |
| SetGameSettings | SuperAdmin | Load a new MatchSettings file and apply it. |
Player Management
| Method | Auth Required | Description |
|---|---|---|
| GetPlayerList | User | Returns a list of all currently connected players and spectators. |
| GetPlayerInfo | User | Get detailed info for a specific player by login. |
| Kick | Admin | Kick a player from the server with an optional reason message. |
| Ban | Admin | Temporarily ban a player login from the server. |
| UnBan | Admin | Remove a ban for a player login. |
| BlackList | SuperAdmin | Permanently blacklist a player login from connecting. |
| UnBlackList | SuperAdmin | Remove a player login from the blacklist. |
| GetBanList | Admin | Returns the current ban list. |
| GetBlackList | SuperAdmin | Returns the current blacklist. |
| ForceSpectator | Admin | Force a player into spectator mode (0=player, 1=spectator, 2=pure spectator). |
Match Control
| Method | Auth Required | Description |
|---|---|---|
| SetCallVoteTimeOut | Admin | Set how long (ms) players have to vote on a call vote. |
| SetCallVoteRatio | Admin | Set the ratio (0.0–1.0) of yes votes needed to pass a call vote. |
| ForceEndRound | Admin | Immediately end the current round and advance to the next. |
| CallVoteCancel | Admin | Cancel the currently active call vote. |
| SetCurrentCallVote | Admin | Programmatically submit a call vote on behalf of a player. |
| EndMatch | Admin | End the current match and trigger end-of-match scoring. |
| SetWarmUp | Admin | Enable or disable warm-up mode (True/False). |
Chat
| Method | Auth Required | Description |
|---|---|---|
| ChatSend | Admin | Broadcast a chat message to all players from the server. |
| ChatSendToLogin | Admin | Send a private chat message to a specific player login. |
| ChatSendServerMessage | Admin | Send a server-coloured broadcast message to all players. |
| ChatSendServerMessageToLogin | Admin | Send a server-coloured private message to a specific player. |
About GBXRemote
The GBXRemote protocol is a custom binary-framed XML-RPC protocol used by Trackmania (and
ManiaPlanet) dedicated servers. It is not standard HTTP XML-RPC — you need a GBXRemote-aware
client library. Libraries exist for Python (xmlrpc.client with
PyPlanet's GbxClient), PHP (ManiaControl, EvoSC), C# (GbxRemoteClient.NET), and
TypeScript (NextControl). Connect to the port configured as xmlrpc_port
in your dedicated_cfg.txt (recommended: 5001).
Run your own Trackmania server.
Rent a private Trackmania server on real hardware — full control-panel access, your mods, your configs, your rules. It's your server; run it your way.
Don't want to run it yourself? Our managed services & consulting team will set it up and keep it running for you — game servers, Windows, Linux, and cloud, from 10+ years of MSP work.