A LAN-Party time-challenge server for Trackmania Nations Forever

What TMNF-TAS is and how the idea was born

As I am loving Trackmania Nations Forever and got involved in LAN-Partys again, in the recent years, I decided to create this nice little project.

On the NLPT 2021 event I discovered it’s not just me loving TMNF but a lot more people. At the same time it is hard to have all players racing agains eachother at the same time, as there is not just Trackmania been played on a LAN-Party.

But due to Trackmanias nature it is not really neccessary to have all players on one serer at the same time. It came to my mind the easiest solution would be to let everyone hunt for the best laptime whenever they like. A server running the whole time with a given challenge pool, recording every laptime and calculating global points for all players would be nice.

— and thats exactly what TMNF-TAS is.

After I figured out how to talk to the Dedicated-Server via RPC it was just a matter of a few hours till I had a Python-Daemon that stored all laptimes inside a MongoDB. This technically allready covered all my goals. But then I thougt; a nice little wallboard would be good to have, where the players could see their results via a projector. And after that was done I fell down the rabbithole…
I added a Challenge-Ticker, a Challenge- and Players-List (both with all recorded data browsable), thumbnail generation, optional dowloadlinks for Challenges and Replays, selectable translation and even a Player-HUD that is capable of letting individual Players follow their live-progress whilst racing… and I guess more, that I just forgot 😀

Further information

If you like to jump straight into the code or want to try out TMNF-TAS head over to the GitHub Projectpage where you find all the required information. Or you might read a bit more about the technical implementation of TMNF-TAS. I’ve also prepared some impressions of TMNF-TAS with some screenshots.