Changes from TMN dedicated: the option '/game=' has disapeared (it's always TMU), and de dedicated.cfg file have now to be in the GameData/Config/ directory. Options /internet and /autoquit have disapeared too, it's now the default. The server MUST be joignable on its p2p ports, so if you are behing a NAT router, you have to redirect the main server port (tcp and udp) and the p2p server port (tcp) to make it visible and joignable by players.

Changes from TMU dedicated: options /internet and /autoquit have disapeared too, it's now the default.

Both: the config file have some changes, verify it ! On windows, if the window disappear before you have time to read the error, then try using the option /noautoquit
The <validation_key> needs to be provided to allow the server to manipulate coppers, and it should be set to the last 3 characters of the united account your server is associated to. In other cases you can ignore the validation_key, and just leave it empty.
It only needs to be provided to allow the server to manipulate coppers, and it should be set to the last 3 characters of the united account your server is associated to.

To make a TMN-F dedicated, you have to set in the config: <packmask>stadium</packmask>, else your server will not be visible by TMN Forever games.

To make a TMU-F dedicated, keep packmask empty: <packmask></packmask>.

Note: since december 2010, players using a free TMNF account can't connect any more directly from the ingame servers list to the standard servers, but only to FreeZone servers. Connection to standard servers still can be made in 2 cases : via the players own favorites server list (a favorite server can be added with a tmtp link: tmtp://#addfavourite=serverlogin ), or if the server is in hidden mode (so not visible in sersers list) using a tmtp direct link ( example: tmtp://#join=serverlogin ). For more infos, search FreeZone topics on this forum and on http://forum.maniaplanet.com/ .

So the commandline should look something like this, and can be included in a unix script, .bat, or target or a windows shortcut :
(linux) ./TrackmaniaServer /game_settings=MatchSettings/Nations/NationsBlue.txt /dedicated_cfg=dedicated_cfg.txt
(windows) "TrackmaniaServer.exe" /game_settings=MatchSettings\Nations\NationsBlue.txt /dedicated_cfg=dedicated_cfg.txt
Don't forget to edit the cfg file for your needs, and eventually add /noautoquit or /lan options.

* Note: a TMUF dedicated account can also be used for a TMNF dedicated. In fact it's the only way to have the dedicated account able to handle coppers (it needs to send to the dedicated login few coppers using the game messenging system, else it is not able to make coppers transactions).

Anyway, the way to use the dedicated is the same that for the previous TMO/TMU/TMN and TMU ones (so you can refer to all tutorials about it, these two from Blahitis for example: tmf tutorial and old tutorial, except for that : the option '/game=' has disapeared (it's always TMF), and de dedicated.cfg file has now to be in the GameData/Config/ directory. Another change : a TMF server MUST be joignable on its p2p ports, so if you are behing a NAT router, you have to redirect the main server port (tcp and udp) and the p2p server port (tcp) to make it visible and joignable by players.

If you have problems, first try to see in topics about the old dedicated if you find the solution please. It really work the same way.

For TM Forever server utilities, see the 2nd post in this topic.

Linux multicore: you ca try to use the taskset command to set a process on a specified cpu

Windows users: if you have invalid time problems, try this (thanks to TrabTowN and eyez) :
- open taskmanager
- go to the "Processes" tab
- right click on the server app
- set priority to "Above Normal"
- set affinity -> deselect all but one core (if multi core)
If the dedicated don't start at all, you can try to start it in Windows2000 compatibility mode (in the .exe properties)

If it seems to help, you can try that to launch it with cpu affinity easier :

Assembler Maniac wrote:download http://www.pchotshots.com/amaniac/priaffin.zip
Unzip to the same folder/directory where the server exe is.
Change your startup for the server and ADD "priaffin 3 10 " to the beginning of the command line.
This will make the server exe run at "above normal", only on cpu #2. It will run this way every time you start it up and you won't have to remember to adjust it with task manager.
It's simple to use. If you have any problems, post back there.

xbx wrote:Here's a new release to fix once for good (hopefully) the player's authentication.
Summary of the previous episodes: a few additional checks were added to the server to detected players that were changing login or using other people logins or fake logins. But they were only fixing the issue on the surface, and were easily circumvented.
So in this new version, we've introduce the correct fix (tm) for the issue, using rsa signature and the like, to make sure that people trying to connect with some login were actually validated and trusted by the master server.

The new protocol is supposed to allow a smooth transition (new clients can still connect to old servers, old clients can still connect to the new servers (if not forbiden via the config option).

Note: servers and coppers

lille79 wrote:To have a server that can handle coppers, you've got to have a TMUF-server login. Log in on the Player page with your TMUF-player-account. Then you have to go to the Dedicated servers section, type in your player key (XXXX-XXXX-XXXX-XXX) and create the server-login. That is the one you put into your dedicated_cfg.txt

Example:
If my login was: server_lille
and password: abc123
and my last 3 characters in the player key is: DEF
then my dedicated_cfg.txt would look like this:

Now I have to send some coppers to the server before it can receive coppers from players while they're playing on your server. How?
Start your TMUF-game, go to the top of my screen and push the "envelope"-button. Type in your server-login and send for example 50 coppers to that login.

NOTE !
This message is not an error but really a warning ! It will always appear (if the dedicated is not start from a public IP but from a private IP), joignable or not.

- Warning! -
You seem to be on a private network.
Unless you've configured your NAT, the
other players on internet will not be
able to join in...

<connection_uploadrate> and <connection_downloadrate> : always set them at a lower values than the real available bandwidth that your server can use : the dedicated can eventually succeed to not work to bad when it autolimit itself at a low bandwidth, but things won't be good if it want to do more and is rejected by the connection bandwidth !<force_ip_address> : never set it (except if the naturally visible public ip is not the right one)<bind_ip_address> : never set it (except if the computer has several IP and a specific one should be used, in such case force_ip_address is probably needed too)<server_port> : set an unused port on the computer, else another port will be really used. It should be between 2350 and 2370 if you want local games (on same LAN) to find the server automatically), it has to be opened on firewall, and redirected on router/NAT if needed (ie the computer ip is not the public one but a private ip), both in UDP and TCP.<server_p2p_port> : set an unused port on the computer, else another port will be really used. it has to be opened on firewall, and redirected on router/NAT if needed (ie the computer ip is not the public one but a private ip), in TCP only.<use_nat_upnp> : empty<xmlrpc_port> : set an unused port on the computer, else another port will be really used. <xmlrpc_allowremote> : False, except if you want to use script tools or manager from another computer than the dedicated one. You can set True to accept all, or a specific IP.<packmask> : usually empty for TMUF servers, or "stadium" for a TMNF server.

Note (can be obsolete): it seems that there is a bug somewhere on Nadeo masters and that a server fail to send coppers if its account password has some uppercase letters. So if you have a message like wrong passwd (which is not logical as your server succeeded to start with it!), then try to change your server account password.

Have fun

Changelog:

2011-02-21

New callback "VoteUpdated()" to know who is casting what votes, and what is the result.

new method GetCurrentRankingForLogin(), which is like GetCurrentRankings(), but for a specific login or list of logins (useful for teammode as GetCurrentRankings() just returns the score for the 2 teams and not for the individual players)

ChatSendToLanguage() & ChatSendServerMessageToLanguage() now also work with a login list.

SetConnectionRates() and new fields in GetSystemInfo(), was needed to set up the freezone and hot-tune the performance settings.

2010-03-15

fixed ForcePlayerTeam()

"disable_coherence_checks" is now "laps" by default.

2009-11-19

guest player no longer need to input the password, as expected.

a new attempt at fixing the abusive ban of players in timeattack with laps races.

a few left-over issues from the protocol changes.

server crash when a player validated a race.

2009-10-09

fix new client backward compatibility with older dedicated servers

ChooseNextChallengeList() and ChooseNextChallenge() now set IsListModified == true in the ChallengeListModified() callback

2009-10-08

don't ban players when using a mix-mapped challenge with two checkpoints on the same spot. (not that this means it's supported, but at least it will hopefully not ban for no apparent reason people in good faith)

ChatEnableManualRouting() can now take a additional boolean to enable a mode where only the player's message go through the routing callback but not the server ones. (This is to both avoid useless work, and to work around the issue that it is anyway impossible to make the server messages work correctly given that the callback doesn't give the recipient of the message)

when the config was <p2p_cache_size>0</p2p_cache_size> (or in some other cases where the cache was too small), the server crashed at start time.

Added more checks on invalid packets or invalid challenges to avoid crashes.

New connection protocol with a signature check on the player login before allowing the connection, (if the client supports it.)

New configuration to only allow recent client to connect:
add <minimum_client_build>2009-10-08</minimum_client_build> to the <system_config> section to only allow client supporting the new connection protocol.

2009-08-01

Fix the a warning when the xml-rpc admin password is not changed and foreign connections are allowed

it is now possible to start a server with 0 players and a guest list.

Fix a security issue.

2009-05-25

Fix the crash in SaveBestGhostsReplay()

actually download the blacklist from <blacklist_url>

ForceSpectator() no longer changes the server max players setting

new function SpectatorReleasePlayerSlot() for use with autoqueue like plugins: just changing a player to spectator doesn't free his player slot; this function allows to do it.

And added a new flag "HasPlayerSlot" to the PlayerInfo struct to expose this status.

Add a warning when the xml-rpc admin password is not changed and foreign connections are allowed

2009-05-04

fix SaveBestGhostsReplay() to behave as it should. (that is only saving the players replay when a login is given, and saving all the replays when no login is given)

return to previous behaviour when saving a replay with an explicit filename (ie, don't put it in a subdirectory with the server name).

update server coppers when a transaction is paid.

(!) fixed an issue (introduced in 2008-12-05) with players getting banned in LAN mode at first connection. (the generated unique lan logins are now "name_1.2.3.4_2350" instead of "name/1.2.3.4:2350")

fixed the ladder limits that were sometimes being reset to the default values by the master server.

On a relay server, trying to xxxToLogin() to a player from the main server will now return an error message (instead of silently failing)

(!) GetCurrentChallengeInfo() now returns NbLaps and NbCheckpoints of the track as well, as do the BeginRace()... callbacks (nblaps as defined in the challenge, not as defined by the current server settings)

When a track is added, it is now tested against the next game mode (instead of the current mode) --> it is now possible to switch to laps or stunts mode by using LoadMatchSettings() without restarting the server.

Various improvements to GbxRemote.inc.php.

rare bug in team mode when a player finish was being ignored by the server but taken into account by the xml-rpc clients.

some more coherence check to detect most common cheats.

(!) new callbacks: BeginChallenge() and EndChallenge() that are called around the BeginRace() / EndRace() sequence, to simplify code dealing with the warm-up phase.

fixed a bug with number of spectators on relay servers.

fixed a bug with the tunnel and relay servers.

(!) marks changes that may affect compatibility with some strict xml-rpc scripts.

(bug introduced in 2008-10-07) Players were banned because of "coherence check" in some multilaps challenges.

CupMode: Make sure the scores stay properly ordered, when a winner changes to spectator mode.

CupMode: Sometimes players were still included in the race for the second place after having won the match.

Referee: Better timeout to avoid kicking referees at the end of a race in rounds mode

Added some checks to detect players faking their logins. (will only report the abuse to the master server for now)

Add some infos in the log when a player is banned.

Referee: Big challenges with heavy mediatracker use were locking the server in the podium when a referee was enabled.

2008-10-07

Referee: when a player disconnected after making a new score, the score wasn't validated and wasn't reset and the server blocked in the podium. (added a timeout on the server, and fixed the client - check the end of the message)

CupMode: added an optional parameter to NextChallenge() and RestartChallenge() to allow keeping the current match scores.

CupMode: fixed SetWarmUp() (SetWarmUp(false) did reset all the current scores, and SetWarmUp(true) didn't restart counting the number of warmup runs from zero)

CupMode: don't overwrite scores at the end of the warmup. (ie any calls to ForceScores() were previously useless during warmup)

CupMode: added CheckEndMatchCondition(), to help knowing whether the cup mode match is over or will switch to another map, without having to reimplement the rules in the plugins.

Laps mode: added a new header in the replays: <checkpoints cur="10" onelap="5"/>, to help making sense out of the validation replays saved in laps mode.

The player tags were broken when the P2P was disabled on the server.

ForceSpectator() now also respects ladder limits.

new method GetLadderServerLimits()

SetForcedSkins()/GetForcedSkins(): new method to help people doing F1 or Monster trucks, ... competitions have everybody use a "good" skin. It allows to have an explicit list of allowed skins and replacement skins.)

SetForcedMusic() can now take either an url or a filename to a file on the server (relative to Gamedata folder)

GetDetailedPlayerInfo().Skins.Environnement now contains the environment name, rather than always 'Vehicles'

fixed rare crash when build a replay.

bug workaround: after ~45 days, the time overflows (a bit like the Y2K bug) and the sever starts doing weird stuff... It will now quit preventively instead.

2008-08-05

the replays are now saved in GameData/Tracks/Replays/{name of the server}/....

the BeginRace() callbacks is now correctly called after a warm-up.

2008-07-30

fixed the scores sorting (most notably, laps mode was really broken.)

in laps mode: the score of a disconnected player isn't reset any more.

2008-07-25

fixed "adding a track on one path, then removing and re-adding it on another makes the server unable to load it."

fixed the tunnel bandwidth control (the tunnel got stalled after a few packets..)

a little referee mode fix

2008-07-22

"Podium -> Synchro" transition fixed.

a few issues left with score sorting: the scores are sorted against score, and then bestime, and then if still equal, playerId; and also works for team mode and round arrival.

2008-07-18

crash when using maps with music

relays of relays are now supported

an issue where sometimes UDP was broken if the expected port was already in use.

the proxy settings are now always used. (for locators instead of just for masterserver requests)

increase tunnel bandwidth for server-to-relay communication

in case of points equality in round, team... modes, the scores are sorted using the bestime (of all rounds) of the players.

a few other small fixes.

2008-07-01

a relay can now join a server with both player and spectator password.

GetCurrentChallengeInfo now fully filled-in on the relay.

it is now possible to run a relay on internet mode that relays a lan server. (just use the lan ip for the command line /join=192.168....:port)

new GetMainServerPlayerInfo() that returns the player info of the main server (or itfself if this is not a relay server)

to help compatibility with old scripts, the server tries to allocate the PlayerId '0' to the main server. (beware: on a relay server, the server's id still won't be 0)

the PlayerId of the server is now available with GetSystemInfo()

a few issues with ladder limits access verification. (even the guests cannot connect if they don't have correct ladder points)

chat command "/serverlogin" gives the login of the server.

the number of spectators can be 0

somewhat better error messages

"Internal server error" connection problem introduced with previous beta on some linuxes should be fixed.

2008-06-10

Configurable ladder limits (in dedicated_cfg.txt). You have to restart the server to change them.

Spectator relay mode.

SetForceShowAllOpponents() & friends now take a integer argument to specify the minimum visible players.

GetPlayerRankings() now return a rank of '0' for the players that are pure spectators.

GetPlayerList() can now optionally return the server(s) as well, and the flags now contain this information.

GetDetailedPlayerInfo() has an added field, with the client version. (for instance the spectator target issues have been fixed in the client, so you can know what to expect. or tell the user to update...

StartServerInternet() doesn't work like in TMU/TMN -> return an error instead of pretending everything is fine...

A few settings that influence the server ressource usage (SetMaxPlayers, SetMaxSpectators, EnableP2PUpload, EnableP2PDownload, AutoSaveReplays, AutoSaveValidationReplays) are now reserved to the SuperAdmin.

Avoid to waste server P2P and cache by downloading the skins, avatar and lightmaps that everybody already has. (the ones given with the game)

other little bug fixes (like the server taking hours to launch if there are many autosaved replays.)

2008-05-07

crash when a tcp connection is broken under certain rare conditions.

server restart no longer wipes the guestlist.txt and blacklist.txt

ForceSpectatorTarget() now works with cameratype = 2 and no target

Cup Mode: the game no longers loops when there's a winner and everybody else is disconected or in spectator mode.

use fallback timer for FreeBSD

detailed playerinfos work for the server login

new functions SetBuddyNotification() GetBuddyNotification() to be able to disable the chat message. (either per player or for all the players on the server)

2008-04-18

Just a few bugfixes and tunings, for the issues revealed by having the 200+ players servers..

2008-04-16

wrong version of the windows exe

rare crash in P2P

SetForcedMusic(False,"") now works

fixed timestamp in ConsoleLog

2008-04-15b

fixed crash when many players (>~70)

About Relay server :

About the "Spectator relay"/ManiaChannel thing:
This allows to create a relay server that connects to a game server, that allows many spectators to view what's going on in the race without disturbing the match. And that helps with P2P of players on the server.

How to use it:
1) run the game server as usual, but:
* set the maxplayers and maxspectators to small values.
* enable the "allow_spectator_relays" option in the config file. !!! when this option is activated, you cannot change the maxplayers and spectators settings.
2) run others servers (with an other login), with a command line resembling:

Now the spectators can connect to this other server and will be able to see everything going on on the game server, and they will be abale to chat with each others (but the players on the game server will not see them).

the maximum spectators on the relays is 250-(maxplayers+maxspectators) on the game server.

to write xml-rpc plugins dealing with this:
* you have IsRelayServer() to know where you are.
* you can know for each player whether it is local to the server or comming from an other server (=game server)
* you can use TunnelSendDataToLogin() to communicate with the game server from the relay or the other way around.

Note for relay servers : the main server must not be private, so must not have both player password and spectator password.

xbx wrote:

Easy question, whats the limit for sending tunneldata?

server<->client: 1 packet of maximum 4ko every 5seconds. server<->server: 8 packets of maximum 256ko per second. (those values are smoothed over a period of time, those are averrage values.)

You will find there links for most TM server utilities (note: some are not up to date, so see also links below), mainly remote server control programs and possibility to use them directly from the site if your dedicated is remotely reachable, some of the records scripts and a records database common for some of them (actually OnyxV2 and Fast3.1). Dedimania records and servers are visible here too : http://dedimania.com/tmstats/?do=stat