TrackMania Forever server controller utilizing Node.JS
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

nodeTM - Columns and their card count

TrackMania Forever server controller utilizing Node.JS

Before you continue! The code has been moved to GitLab!


  1. Make sure you already installed Node.JS, MySQL and have a working TrackMania Forever server set up on the same PC. The Database server may be on a different device than the TMF server/NodeTM.

  2. Open a command shell capable of running npm and node and navigate to the folder where you extracted nodeTM to and run npm install to install the dependant packages. Rerun this command after updating nodeTM to a newer version.

  3. (a) To use the wizard make sure a file called newinstall exists in the main folder and run node . to launch nodeTM automatically


  1. (b) Open config.js in an editor and do changes manually. If you just cloned the repository or downloaded a release version each single field will be documented if the name isn't already obvious. Remember the config file is based on JavaScript objects, if you're not sure how to fill out the file correctly or if you get thrown errors from that file, take a look at the W3School's tutorial about JS objects.


  1. (c) In case you only upgrade to a newer version of nodeTM you can use an old configuration file mostly, however, please make sure the old configuration file is adjusted to also provide the new config values.

  2. To start nodeTM normally make sure there isn't any file called newinstall and run node .!

Discord feature

At first register a new application at the Discord website and create a bot user for the new application on the discord website. Then get the bot token - never publish it! - and paste it into the configuration file or the wizard. You can also specify a picture for the bot for aesthetic purposes.

Afterwards create a new channel (you can also use an existing one, only the bot features might cause a little spam) and enable the developer mode in Discord in order to get the channel ID. Paste it into the configuration file or the wizard.

Also in the configuration file you can specify what messages the bot should send into the channel to adjust the spam-factor.

This feature can be disabled by setting enabled: false in the config file at the right place!

Alternatively you can use a Discord Webhook to get the server's chat into a Discord channel, this is one-direction only, however. This doesn't need you to set up an application.

Web Interface feature

The Web interface just needs a small set of configuration. Either by the wizard or by manually changing the config file you'll need to specify the port to reach it (default: 3621), an invite to the discord server (if avaliable) and for your own admin profile a password to access the admin panel. For any other administrators or moderators you will have to specify a password manually in the config file. This way you can limit the accessibility to the admin panel.

The Web Interface provides a neat landing page, a statistics page allowing to look at recent statistics and and a status page featuring some related stats to track, ... - to access it

A more automated way to add admins will be added in a later version of nodeTM. This is a planned feature for v2.0.

This feature can be disabled by setting enabled: false in the config file at the right place!

halp I want to contribute

Feel free to do so, at the XAseco Website you'll find a list of the Callbacks and Methods of the TMF server and then just start coding via fork + pull request!