Skip to content

Latest commit

 

History

History
69 lines (42 loc) · 2.39 KB

CONTRIBUTING.md

File metadata and controls

69 lines (42 loc) · 2.39 KB

Contribution guidelines

Resources

You may find some of these resources useful when working on this project:

Some notes about commands and callbacks

onStatusChange and respective callbacks are called in varying order:

  • onStatusChange (Launching) -> onBeginRace
  • onStatusChange (Synchronization) ->
  • onBeginRound -> onStatusChange (Play)
  • onEndRace -> onStatusChange (Finish)

I've added a "callback" function onBeginSynchronization which fills the gap here.

Some XML-RPC methods only work at specific points in a match. Calling them at an unsuitable time may yield no result or an error from the client. Some of these cases are listed below:


  • RestartChallenge/ChallengeRestart

Results in error code -1000 (Change in progress) in Synchronization. Results in error code -1000 (Change in progress) in Finish but only if proceeding to next round on the same map; it works in the podium sequence.


  • NextChallenge

Results in error code -1000 (Change in progress) during Synchronization and Finish.


  • SendDisplayManialinkPage
  • SendDisplayManialinkPageToId
  • SendDisplayManialinkPageToLogin

May not have an effect with custom_ui when called in onBeginSynchronization (but could be due to TMGery). Results in error code -1000 if the target player can not be found.


  • ForceSpectatorTarget
  • ForceSpectatorTargetId

Results in error code -1000 if you try to force a spectator target but the player is not in spec.


  • SetRoundCustomPoints
  • SetRoundPointsLimit

Has to be set before onStatusChange (Synchronization) in order to have effect on the upcoming round.


  • ForceEndRound

Works in Cup, Laps, Rounds and Team but not in Stunts and Time Attack (contrary to XML-RPC documentation).

Debugging

The following places are useful to look at for information regarding a bug or crash:

  • Console output
  • /ko status, if TMGery didn't crash
  • Video recordings

The next step, if the source of the bug is still unknown, is to set MinimumLogLevel to Log::Debug in plugin.knockout.php in order to get more information in the console window. Note that this may have a negative impact on the server performance, so only do this temporarily.