-
Notifications
You must be signed in to change notification settings - Fork 6
Controller Events
lythx edited this page Mar 31, 2023
·
9 revisions
Events prefixed with TrackMania
are emitted directly from the dedicated server, rest are emitted from the controller.
USE CONTROLLER EVENTS IF THEY ARE AVAILABLE
They exist to reduce number of database and client calls, as they call them once (if needed) and pass the result in arguments.
In some cases using dedicated server event instead of controller event might even cause errors, as the order of actions performed by the core and the plugins will be unclear.
To use events call the tm.addListener controller method:
tm.addListener('PlayerJoin', (player) => {
tm.sendMessage(`Welcome ${player.nickname}`)
})
See the list of types for additional information regarding returned parameters.
-
Startup
('result' | 'race') - Triggered on startup, after all core services are ready. Passes current server state as parameter -
ServerStateChanged
(ServerState) - Triggered on dedicated server state change -
PlayerChat
(MessageInfo) - Triggered after every player message -
PlayerJoin
(JoinInfo) - Triggered after player joins the server -
PlayerLeave
(LeaveInfo) - Triggered after player leaves the server -
LocalRecord
(RecordInfo) - Triggered after player gets a local record -
LiveRecord
(FinishInfo) - Triggered after player gets a live record -
PlayerFinish
(FinishInfo) - Triggered after every player finish -
PlayerInfoChanged
(InfoChangedInfo) - Triggered after player state changes (Trackmania.PlayerInfoChanged callback) -
ManialinkClick
(ManialinkClickInfo) - Triggered when player clicks a manialink which has an actionID -
PlayerCheckpoint
(CheckpointInfo) - Triggered after player gets a checkpoint -
BeginMap
(BeginMapInfo) - Triggered when new map starts -
EndMap
(EndMapInfo) - Triggered when map ends -
KarmaVote
(KarmaVoteInfo[]) - Triggered on map karma vote -
RecordsPrefetch
(Record[]) - Triggered on prefetched records change -
VotesPrefetch
(Vote[]) - Triggered on prefetched karma votes change -
MapAdded
(MapAddedInfo) - Triggered when a map gets added to the server playlist -
MapRemoved
(MapRemovedInfo) - Triggered when a map gets removed from the server playlist -
BillUpdated
(BillUpdatedInfo) - Triggered after player coppers bill state gets updated (Trackmania.BillUpdated callback) -
MatchSettingsUpdated
(Map[]) - Triggered on dedicated server match settings update -
PrivilegeChanged
(PrivilegeChangedInfo) - Triggered on player privilege level change -
LocalRecordsRemoved
(Record[]) - Triggered when local record gets removed -
JukeboxChanged
(Map[]) - Triggered when map jukebox gets changed -
RanksAndAveragesUpdated
({ login: string, average: number }[]) - Triggered after player server ranks and averages get calculated. This happens shortly after BeginMap event -
Ban
(BanlistEntry) - Triggered on player ban -
Unban
(BanlistEntry) - Triggered on player unban -
Blacklist
(BlacklistEntry) - Triggered on player blacklist -
Unblacklist
(BlacklistEntry) - Triggered on player unblacklist -
Mute
(MutelistEntry) - Triggered on player mute -
Unmute
(MutelistEntry) - Triggered on player unmute -
AddGuest
(GuestlistEntry) - Triggered when a new guest gets added -
RemoveGuest
(GuestlistEntry) - Triggered when a guest gets removed -
PlayerDataUpdated
(PlayerDataUpdatedInfo[]) - Triggered after player data gets updated in the controller -
DynamicTimerStateChanged
('enabled' | 'disabled') - Triggered after the dynamic timer gets enabled or disabled -
BeginRound
(FinishInfo[]) - Triggered on round start (Rounds/Cup/Teams gamemode only) -
EndRound
(Finishinfo[]) - Triggered on round end (Rounds/Cup/Teams gamemode only) -
GameConfigChanged
(GameInfo) - Triggered on game config change (tm.config.game) -
ServerConfigChanged
(ServerInfo) - Triggered on server config change (tm.config.server) -
PlayerLap
(LapFinishInfo) - Triggered after player finishes a lap (Multilap maps in Cup/Rounds/Teams/Laps gamemode only) -
LapRecord
(LapRecordInfo) - Triggered after player gets a lap record (Multilap maps in Cup/Rounds/Teams/Laps gamemode only)
These events do not have a controller counterpart either because they are undone yet, unneeded or simply too obscure.
-
TrackMania.BeginRace
- Appears to be the same asTrackMania.BeginChallenge
but passes less information -
TrackMania.EndRace
- Appears to be the same asTrackMania.EndChallenge
but passes less information -
TrackMania.BeginRound
- Triggered after a new round starts in rounds-based gamemodes. -
TrackMania.EndRound
- Triggered after a round ends in rounds-based gamemodes. -
TrackMania.PlayerIncoherence
- Triggered when a player gets redtime. -
TrackMania.Echo
- Presumably triggered whenEcho
method is executed. See here -
TrackMania.VoteUpdated
- Callvote specific event, the controller has internal voting system so callvotes are disabled