Skip to content

Commit 673b75d

Browse files
authored
Adding TMNF / TMUF Documentation for Server Hosting (#109)
- Account setup - Start parameters
1 parent dcc0290 commit 673b75d

File tree

1 file changed

+261
-0
lines changed

1 file changed

+261
-0
lines changed

game-servers/trackmania-forever.md

Lines changed: 261 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,261 @@
1+
# Trackmania Nations Forever / Trackmania United Forever
2+
![TMNF Logo](https://www.gamers.org/tmf/banner.jpg)
3+
4+
## Ports
5+
6+
- Game Port Default: 2350 UDP
7+
- P2P Port for downloading Custom Maps / Files: 3450 TCP
8+
- XMLRPC Port: 5000 TCP
9+
10+
## Online Hosting Requirements
11+
12+
Hosting an Internet accessable Online Server requires a login to the master server. It can't be your game login and every server needs an unique account.
13+
14+
For LAN Hosting a server login isn't required!
15+
16+
### Trackmania Nations Forever Server Account
17+
18+
- Start your gameclient and create an account there
19+
20+
### Trackmania United Forever Server Account
21+
22+
- Login with your gaming credentials at http://official.trackmania.com/tmf-playerpage/ (either use http or setup your browser to support older https protocols)
23+
- On "Dedicated servers" you have to type your Serial Code of the Game to allow access of dedicated server accounts. If your bought Trackmania United Forever on Steam it's easy to get your product code
24+
- Create there a new login for the dedicated Server
25+
26+
## Startparameters
27+
28+
Startparameters override Settings in the configuration of `dedicated_cfg`
29+
30+
| Startparameter | Function
31+
|--|--|
32+
| dedicated_cfg=xxx | Specifies the name of the dedicated configuration |
33+
| game_settings=xxx | Specifies the name of game settings configuration |
34+
| login=xxx | Username of Server Account |
35+
| password=xxx | Password of Server Account |
36+
| servername=xxx | Name of the Server |
37+
| serverpassword=xxx | Connection Password for clients to connect if you want to make the server private |
38+
| lan | Start server in LAN mode |
39+
| forceip=xxx(:xx) | Forces the public ip address (and optionally port) to this value |
40+
| bindip=xxx(:xx) | Binds server to ip address if multiple network interfaces are on the machine |
41+
| join=xxx | Joins a server, to make a relay server. (xxx = the server ip adress with optional port, or the server login) |
42+
| joinpassword=xxx | Password to use to join the remote server if the server is private |
43+
| loadcache | Loads the "checksum.txt" instead of recomputing it, to speed up first launch time if P2P is enabled. *DO NOT USE* if you run several servers in the same directory |
44+
| nologs | Disables the creation of "GameLog.txt" and "ConsoleLog.txt" in Logs/ directory |
45+
| noautoquit | Keeps the server running "waiting for rpc commands", even if it is not live (with a map loaded and ready to receive players) |
46+
| nodaemon | Doesn't detach the process |
47+
| verbose_rpc_full | Display the whole contents of the xml-rpc requests the dedicated server receives. |
48+
| verbose_rpc | Displays the xml-rpc requests the dedicated server receives, but only the name of the XmlRpc? command and some parameters |
49+
50+
Example: `TrackmaniaServer /dedicated_cfg=dedicated_cfg.txt /game_settings=MatchSettings/custom_game_settings.txt /nodaemon /lan`
51+
52+
Source of parameters: https://web.archive.org/web/20221003213817/https://www.tm-forum.com/viewtopic.php?p=154464#p154464
53+
54+
## Configuration
55+
56+
Configuration happens on two `.txt` files which are formatted in XML, name can be anything you like. The dedicated configuration needs to be located in `GameData/Config/` and game settings in `GameData/Tracks/`.
57+
58+
### Dedicated Server Configuration
59+
60+
Example:
61+
62+
```
63+
<?xml version="1.0" encoding="utf-8" ?>
64+
<dedicated>
65+
<authorization_levels>
66+
<level>
67+
<name>SuperAdmin</name>
68+
<password>SuperAdmin</password>
69+
</level>
70+
<level>
71+
<name>Admin</name>
72+
<password>Admin</password>
73+
</level>
74+
<level>
75+
<name>User</name>
76+
<password>User</password>
77+
</level>
78+
</authorization_levels>
79+
80+
<masterserver_account>
81+
<login></login>
82+
<password></password>
83+
</masterserver_account>
84+
85+
<server_options>
86+
<name></name>
87+
<comment></comment>
88+
89+
<max_players>32</max_players>
90+
<password></password>
91+
92+
<max_spectators>32</max_spectators>
93+
<password_spectator></password_spectator>
94+
95+
<ladder_mode>forced</ladder_mode> <!-- value between 'inactive', 'forced' (or '0', '1') -->
96+
97+
<enable_p2p_upload>True</enable_p2p_upload>
98+
<enable_p2p_download>True</enable_p2p_download>
99+
100+
<callvote_timeout>60000</callvote_timeout>
101+
<callvote_ratio>0.5</callvote_ratio>
102+
103+
<allow_challenge_download>True</allow_challenge_download>
104+
<autosave_replays>False</autosave_replays>
105+
</server_options>
106+
107+
<system_config>
108+
<connection_uploadrate>512</connection_uploadrate> <!-- KBps -->
109+
<connection_donwloadrate>8192</connection_donwloadrate> <!-- KBps -->
110+
111+
<force_ip_address></force_ip_address>
112+
<server_port>2350</server_port>
113+
<server_p2p_port>3450</server_p2p_port>
114+
<client_port>0</client_port>
115+
<bind_ip_address></bind_ip_address>
116+
<use_nat_upnp></use_nat_upnp>
117+
118+
<xmlrpc_port>5000</xmlrpc_port>
119+
<xmlrpc_allowremote>False</xmlrpc_allowremote> <!-- If you specify an ip adress here, it'll be the only accepted adress. this will improve security. -->
120+
121+
<blacklist_url></blacklist_url>
122+
<guestlist_filename></guestlist_filename>
123+
<blacklist_filename></blacklist_filename>
124+
125+
<use_proxy>False</use_proxy>
126+
<proxy_login></proxy_login>
127+
<proxy_password></proxy_password>
128+
</system_config>
129+
</dedicated>
130+
```
131+
132+
133+
### Game Settings
134+
135+
Example:
136+
137+
```
138+
<?xml version="1.0" encoding="utf-8" ?>
139+
<playlist>
140+
<gameinfos>
141+
<game_mode>1</game_mode>
142+
<chat_time>10000</chat_time>
143+
<finishtimeout>1</finishtimeout>
144+
<allwarmupduration>1</allwarmupduration>
145+
<disablerespawn>0</disablerespawn>
146+
<forceshowallopponents>0</forceshowallopponents>
147+
<rounds_pointslimit>30</rounds_pointslimit>
148+
<rounds_usenewrules>0</rounds_usenewrules>
149+
<rounds_forcedlaps>0</rounds_forcedlaps>
150+
<rounds_pointslimitnewrules>5</rounds_pointslimitnewrules>
151+
<team_pointslimit>50</team_pointslimit>
152+
<team_maxpoints>6</team_maxpoints>
153+
<team_usenewrules>0</team_usenewrules>
154+
<team_pointslimitnewrules>5</team_pointslimitnewrules>
155+
<timeattack_limit>180000</timeattack_limit>
156+
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
157+
<laps_nblaps>3</laps_nblaps>
158+
<laps_timelimit>300000</laps_timelimit>
159+
<cup_pointslimit>100</cup_pointslimit>
160+
<cup_roundsperchallenge>3</cup_roundsperchallenge>
161+
<cup_nbwinners>3</cup_nbwinners>
162+
<cup_warmupduration>2</cup_warmupduration>
163+
</gameinfos>
164+
165+
<hotseat>
166+
<game_mode>0</game_mode>
167+
<time_limit>300000</time_limit>
168+
<rounds_count>5</rounds_count>
169+
</hotseat>
170+
171+
<filter>
172+
<is_lan>1</is_lan>
173+
<is_internet>1</is_internet>
174+
<is_solo>0</is_solo>
175+
<is_hotseat>0</is_hotseat>
176+
<sort_index>1000</sort_index>
177+
<random_map_order>0</random_map_order>
178+
<force_default_gamemode>0</force_default_gamemode>
179+
</filter>
180+
181+
<startindex>0</startindex>
182+
<challenge>
183+
<file>Campaigns\Nations\Blue\C01-Race.Challenge.Gbx</file>
184+
<ident>eDgWjoKe2dT3GfoTCGCmI_qMvfk</ident>
185+
</challenge>
186+
<challenge>
187+
<file>Campaigns\Nations\Blue\C02-Race.Challenge.Gbx</file>
188+
<ident>hlRjJEZGm0yr1sT91CtdIwmqsti</ident>
189+
</challenge>
190+
<challenge>
191+
<file>Campaigns\Nations\Blue\C03-Acrobatic.Challenge.Gbx</file>
192+
<ident>c4oQLgleEPkNtehypwdYXTkmVvi</ident>
193+
</challenge>
194+
<challenge>
195+
<file>Campaigns\Nations\Blue\C04-Race.Challenge.Gbx</file>
196+
<ident>yWy7ROt2lgk2zL44HKdBgUjuthi</ident>
197+
</challenge>
198+
<challenge>
199+
<file>Campaigns\Nations\Blue\C05-Endurance.Challenge.Gbx</file>
200+
<ident>UR7xWwTkMeFB2kqVLVVOGDBCKFb</ident>
201+
</challenge>
202+
<challenge>
203+
<file>Campaigns\Nations\Blue\C06-Speed.Challenge.Gbx</file>
204+
<ident>fwj7Gn1nSQ_8qx6MPUtzAfHngTj</ident>
205+
</challenge>
206+
<challenge>
207+
<file>Campaigns\Nations\Blue\C07-Race.Challenge.Gbx</file>
208+
<ident>PLVn84D8NoVGjidP1pLafZP8qA8</ident>
209+
</challenge>
210+
<challenge>
211+
<file>Campaigns\Nations\Blue\C08-Obstacle.Challenge.Gbx</file>
212+
<ident>Hb_oIOr6Y4_I3aoMogsTPufz8hl</ident>
213+
</challenge>
214+
<challenge>
215+
<file>Campaigns\Nations\Blue\C09-Race.Challenge.Gbx</file>
216+
<ident>9MOwoNkpYZhw8e99cxFI3hVZrvi</ident>
217+
</challenge>
218+
<challenge>
219+
<file>Campaigns\Nations\Blue\C10-Acrobatic.Challenge.Gbx</file>
220+
<ident>XYiTfAdultrTWVJpjl_Bdnf7x4l</ident>
221+
</challenge>
222+
<challenge>
223+
<file>Campaigns\Nations\Blue\C11-Race.Challenge.Gbx</file>
224+
<ident>npRjhClGPZMs_YK_T5yUrnWY0q9</ident>
225+
</challenge>
226+
<challenge>
227+
<file>Campaigns\Nations\Blue\C12-Obstacle.Challenge.Gbx</file>
228+
<ident>znbgMZayw8uBByLWqc6kYsEfG6l</ident>
229+
</challenge>
230+
<challenge>
231+
<file>Campaigns\Nations\Blue\C13-Race.Challenge.Gbx</file>
232+
<ident>qxHe8iBNC2soNhkOoOvEKDkxZ58</ident>
233+
</challenge>
234+
<challenge>
235+
<file>Campaigns\Nations\Blue\C14-Endurance.Challenge.Gbx</file>
236+
<ident>uuGCAivChymPBU6TAHp6qIKSoR4</ident>
237+
</challenge>
238+
<challenge>
239+
<file>Campaigns\Nations\Blue\C15-Speed.Challenge.Gbx</file>
240+
<ident>n4QZfCzSzwMxsY2ILHFUEEipjtg</ident>
241+
</challenge>
242+
</playlist>
243+
```
244+
245+
## Deeplink Support
246+
247+
Deeplinking is supported to make your server easier accessable for players.
248+
249+
`tmtp://#join=IPAddress:Port`
250+
251+
## Testing Rechability of Internetserver
252+
253+
Can be tested on http://dedimania.net/deditest
254+
255+
## Source
256+
257+
More Information about Serverhosting can be aquired on https://server.xaseco.org/
258+
259+
## Game Modes
260+
261+
TBW

0 commit comments

Comments
 (0)