# Events/Hooks The server communicates with the controller through callbacks/events. Some of the more important events are preprocessed by EvoSC to make them easier to use. All those events called "Hooks" will be listed below. ### Registering a Hook To bind a method to an EvoSC-Hook or TM-Event, you simply call ```PHP Hook::add('NameOfHookOrEvent', [FullyQualifiedClassName, 'methodName'); ``` inside the start method of the module. You can always create a hook for the methods listed in [https://github.com/maniaplanet/script-xmlrpc/blob/master/XmlRpcListing.md#callbacks](https://github.com/maniaplanet/script-xmlrpc/blob/master/XmlRpcListing.md#callbacks) ### Hooks
**Name** | **Passed arguments** | **Description** |
PlayerConnect | **Player** $player | Called when a player spawns in the server |
PlayerDisconnect | **Player** $player | Called when a player leaves the server |
PlayerFinish | **Player** $player, **int** $timeInMilliseconds, **string** $checkpointsCommaSeparated | Called when a player finishes or resets, then the time is 0 |
PlayerCheckpoint | **Player** $player, **int** $timeInMilliseconds, **int** $checkpointNumber, **bool** $isFinish | Called when a player passes a checkpoint |
PlayerStartCountdown | **Player** $player | Called when the 3-2-1-countdown starts for a player |
PlayerPb | **Player** $player, **int** $timeInMilliseconds | Called when player drives a new personal best |
BeginMatch | - | Called when the countdown/match starts |
EndMatch | - | Called when the match ended |
BeginMap | **Map** $map | Called when a map starts and when EvoSC boots |
EndMap | **Map** $map | Called when a map ends |
MatchSettingsLoaded | **string** $matchSettingsFile | Called when a match-settings is loaded |
AddedTimeChanged | **int** $addedSeconds | Called when the timelimit was in/decreased |
MapPoolUpdated | - | Called when the maplist changed |
MatchTrackerUpdated | **Collection** $scores | Called when scores affecting the match changed (player finished with better time, got points, etc...) |
MapQueueUpdated | **Collection** $mapsInQueue | Called when a map was added/removed to/from the jukebox |
WarmUpStart | - | Called when the warmup phase starts |
WarmUpEnd | - | Called when the warmup phase ends |
AnnounceWinner | **Player** $winner | Called on match end, when the winner is decided |
ShowScores | **Collection** $allPlayersThatParticipatedInMatch | Called when ther end result is displayed after the match ended |
GroupChanged | **Player** $player | Called when the group of a player was changed |