This is a modified version of the official Royal Time Attack mode for Trackmania. It fixes a few things that worked in normal Time Attack but does not work in Royal Time Attack.
The EvoSC controller is officially compatible with this custom mode if you'd like to have local records and server administration tools.
The official Royal TA mode has some issues like not reporting times properly to XMLRPC and dynamic time limit not working. This modified version attempts to fix several of these issues.
- Two new callbacks:
Royal.PlayerFinish
- Triggers when a player finishes the whole map (the last segment of the map) and returns the time it took from first start to the finish of the last segment.Royal.PlayerFinishSegment
- Triggers every time a player finishes a segment. It also reports which segment and the time it took from first start to the current segment finish.
- Fix for changing the time limit live.
- Ability to set script environment in the settings.
- In your server files, copy the
Evo_Royal_TA.Script.txt
file intoUserData/Scripts
. - Create a new matchsettings with the custom mode:
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<game_mode>0</game_mode>
<script_name>Evo_Royal_TA</script_name>
</gameinfos>
<mode_script_settings>
<setting name="S_TimeLimit" type="integer" value="150" />
<setting name="S_ScriptEnvironment" type="string" value="production" />
</mode_script_settings>
<startindex>0</startindex>
<map><file>MyAwesomeRoyalMap.Map.Gbx</file></map>
</playlist>
- Name: Royal.PlayerFinish
- Type: CallbackArray
- Description: Callback sent when a player finishes all segments.
- Data:
- Version >=2.0.0:
[ { "login": "player-login", // The login id of the player "racetime" 12345, // the time the player took from first segment to last. "totalsegments": 1234 // the total number of segments the player has finished } ]
- Name: Royal.PlayerFinishSegment
- Type: CallbackArray
- Description: Callback sent when a player finishes all segments.
- Data:
- Version >=2.0.0:
[ { "login": "player-login", // The login id of the player "racetime" 12345 // the time the player took to the current segment "segment": <n> // The current segment the player finished where 1 <= n <= 5 "totalsegments": 1234 // the total number of segments the player has finished } ]