# TrackMania Nations methods

# Available methods:

- system.listMethods
  array system.listMethods()
  Return an array of all available XML-RPC methods on this server.
- system.methodSignature
  array system.methodSignature(string)
  Given the name of a method, return an array of legal signatures. Each signature is an array of strings. The first item of each signature is the return type, and any others items are parameter types.
- system.methodHelp
  string system.methodHelp(string)
  Given the name of a method, return a help string.
- system.multicall
  array system.multicall(array)
  Process an array of calls, and return an array of results. Calls should be structs of the form {'methodName': string, 'params': array}. Each result will either be a single-item array containg the result value, or a struct of the form {'faultCode': int, 'faultString': string}. This is useful when you need to make lots of small calls without lots of round trips.
- Authenticate
  boolean Authenticate(string, string)
  Allow user authentication by specifying a login and a password, to gain access to the set of functionalities corresponding to this authorization level
- ChangeAuthPassword
  boolean ChangeAuthPassword(string, string)
  Change the password for the specified login/user. Only available to SuperAdmin.
- EnableCallbacks
  boolean EnableCallbacks(boolean)
  Allow the GameServer to call you back.
- GetVersion
  struct GetVersion()
  Returns a struct with the Name, Version and Build of the application remotely controled.
- CallVote
  boolean CallVote(string)
  Call vote for cmd. The command is a XML string corresponding to an XmlRpc request. Only available to Admin.
- InternalCallVote
  boolean InternalCallVote()
  Used internally by game.
- CancelVote
  boolean CancelVote()
  Cancel the current vote. Only available to Admin.
- AddChatCommand
  boolean AddChatCommand(string)
  Add a new command 'cmd' for the chat, i.e. a chat message that begins with '/cmd ' will not be transmitted to clients. Only available to Admin.
- RemoveChatCommand
  boolean RemoveChatCommand(string)
  Remove a chat command. Only available to Admin.
- CleanChatCommand
  boolean CleanChatCommand()
  Remove all chat commands. Only available to Admin.
- GetChatCommandList
  array GetChatCommandList(int, int)
  Returns the list of chat commands. This method takes two parameters. The first parameter specifies the maximum number of infos to be returned, and the second one the starting index in the list. The list is an array of structures. Each structure contains the following fields : Name.
- ChatSend
  boolean ChatSend(string)
  Send a text message to all clients. Only available to Admin.
- ChatSendServerMessage
  boolean ChatSendServerMessage(string)
  Send a text message to all clients without the server login. Only available to Admin.
- ChatSendServerMessageToId
  boolean ChatSendServerMessageToId(string, int)
  Send a text message to the client with the specified PlayerId without the server login. Only available to Admin.
- ChatSendServerMessageToLogin
  boolean ChatSendServerMessageToLogin(string, string)
  Send a text message to the client with the specified login without the server login. Only available to Admin.
- ChatSendToLogin
  boolean ChatSendToLogin(string, string)
  Send a text message to the client with the specified login. Only available to Admin.
- ChatSendToId
  boolean ChatSendToId(string, int)
  Send a text message to the client with the specified PlayerId. Only available to Admin.
- GetChatLines
  array GetChatLines()
  Returns the last chat lines. Maximum of 20 lines. Only available to Admin.
- SendDisplayServerMessage
  boolean SendDisplayServerMessage(string, string, string, int)
  Display a text message on all clients. The parameters are the text message to display, the label of the first button, the label of the second button, a timeout for the message box. This message is displayed in a message box with one or two buttons, if the label are not empty. The message box will disappear after the timeout if it's non-zero. Only available to Admin.
- SendDisplayServerMessageToId
  boolean SendDisplayServerMessageToId(int, string, string, string, int)
  Display a text message on the client with the specified UId. The parameters are the UId of the player, the text message to display, the label of the first button, the label of the second button, and a timeout for the message box. This message is displayed in a message box with one or two buttons, if the corresponding label are not empty. The message box will disappear after the timeout if it's non-zero. Only available to Admin.
- SendDisplayServerMessageToLogin
  boolean SendDisplayServerMessageToLogin(string, string, string, string, int)
  Display a text message on the client with the specified login. The parameters are the login of the player, the text message to display, the label of the first button, the label of the second button, and a timeout for the message box. This message is displayed in a message box with one or two buttons, if the corresponding label are not empty. The message box will disappear after the timeout if it's non-zero. Only available to Admin.
- SendHideServerMessage
  boolean SendHideServerMessage()
  Hide the displayed message on all clients. Only available to Admin.
- SendHideServerMessageToId
  boolean SendHideServerMessageToId(int)
  Hide the displayed message on the client with the specified UId. Only available to Admin.
- SendHideServerMessageToLogin
  boolean SendHideServerMessageToLogin(string)
  Hide the displayed message on the client with the specified login. Only available to Admin.
- GetServerMessageResults - CRASHES SERVER WHEN CALLED FROM COMMAND LINE
  array GetServerMessageResults()
  Returns the results of the message boxes, as an array of structs {login, playerid, result} result==0 -> no answer, result==1 or 2 -> answer from the player. Only available to Admin.
- Kick
  boolean Kick(string)
  Kick the player with the specified login. Only available to Admin.
- KickId
  boolean KickId(int)
  Kick the player with the specified PlayerId. Only available to Admin.
- Ban
  boolean Ban(string)
  Ban the player with the specified login. Only available to Admin.
- BanId
  boolean BanId(int)
  Ban the player with the specified PlayerId. Only available to Admin.
- UnBan
  boolean UnBan(string)
  Unban the player with the specified login. Only available to Admin.
- CleanBanList
  boolean CleanBanList()
  Clean the ban list of the server. Only available to Admin.
- GetBanList
  array GetBanList(int, int)
  Returns the list of players banned. This method takes two parameters. The first parameter specifies the maximum number of infos to be returned, and the second one the starting index in the list. The list is an array of structures. Each structure contains the following fields : Login, ClientName and IPAddress.
- BlackList
  boolean BlackList(string)
  Blacklist the player with the specified login. Only available to SuperAdmin.
- UnBlackList
  boolean UnBlackList(string)
  UnBlackList the player with the specified login. Only available to SuperAdmin.
- CleanBlackList
  boolean CleanBlackList()
  Clean the blacklist of the server. Only available to SuperAdmin.
- GetBlackList
  array GetBlackList(int, int)
  Returns the list of players blacklisted. This method takes two parameters. The first parameter specifies the maximum number of infos to be returned, and the second one the starting index in the list. The list is an array of structures. Each structure contains the following fields : Login.
- AddGuest
  boolean AddGuest(string)
  Add the player with the specified login on the guest list. Only available to Admin.
- RemoveGuest
  boolean RemoveGuest(string)
  Remove the player with the specified login from the guest list. Only available to Admin.
- CleanGuestList
  boolean CleanGuestList()
  Clean the guest list of the server. Only available to Admin.
- GetGuestList
  array GetGuestList(int, int)
  Returns the list of players on the guest list. This method takes two parameters. The first parameter specifies the maximum number of infos to be returned, and the second one the starting index in the list. The list is an array of structures. Each structure contains the following fields : Login.
- WriteFile
  boolean WriteFile(string, base64)
  Write the data to the specified file. The filename is relative to the Tracks path. Only available to Admin.
- SetServerName
  boolean SetServerName(string)
  Set a new server name in utf8 format. Only available to Admin. Max. length: 26 chars (incl. colors & tags)
- GetServerName
  string GetServerName()
  Get the server name in utf8 format.
- SetServerComment
  boolean SetServerComment(string)
  Set a new server comment in utf8 format. Only available to Admin.
- GetServerComment
  string GetServerComment()
  Get the server comment in utf8 format.
- SetServerPassword
  boolean SetServerPassword(string)
  Set a new password for the server. Only available to Admin.
- GetServerPassword
  string GetServerPassword()
  Get the server password if called as Admin or Super Admin, else returns if a password is needed or not.
- SetServerPasswordForSpectator
  boolean SetServerPasswordForSpectator(string)
  Set a new password for the spectator mode. Only available to Admin.
- GetServerPasswordForSpectator
  string GetServerPasswordForSpectator()
  Get the password for spectator mode if called as Admin or Super Admin, else returns if a password is needed or not.
- SetMaxPlayers
  boolean SetMaxPlayers(int)
  Set a new maximum number of players. Only available to Admin. Requires a challenge restart to be taken into account.
- GetMaxPlayers
  struct GetMaxPlayers()
  Get the current and next maximum number of players allowed on server. The struct returned contains two fields CurrentValue and NextValue.
- SetMaxSpectators
  boolean SetMaxSpectators(int)
  Set a new maximum number of Spectators. Only available to Admin. Requires a challenge restart to be taken into account.
- GetMaxSpectators
  struct GetMaxSpectators()
  Get the current and next maximum number of Spectators allowed on server. The struct returned contains two fields CurrentValue and NextValue.
- EnableP2PUpload
  boolean EnableP2PUpload(boolean)
  Enable or disable peer-to-peer upload from server. Only available to Admin.
- IsP2PUpload
  boolean IsP2PUpload()
  Returns if the peer-to-peer upload from server is enabled.
- EnableP2PDownload
  boolean EnableP2PDownload(boolean)
  Enable or disable peer-to-peer download for server. Only available to Admin.
- IsP2PDownload
  boolean IsP2PDownload()
  Returns if the peer-to-peer download for server is enabled.
- AllowChallengeDownload
  boolean AllowChallengeDownload(boolean)
  Allow clients to download challenges from the server. Only available to Admin.
- IsChallengeDownloadAllowed
  boolean IsChallengeDownloadAllowed()
  Returns if clients can download challenges from the server.
- SetLadderMode
  boolean SetLadderMode(int)
  Set a new ladder mode between ladder inactive (0), normal mode (1), and forced ladder (2). Only available to Admin. Requires a challenge restart to be taken into account.
- GetLadderMode
  struct GetLadderMode()
  Get the current and next ladder mode on server. The struct returned contains two fields CurrentValue and NextValue.
- SetVehicleNetQuality
  boolean SetVehicleNetQuality(int)
  Set the network vehicle quality to Fast (0) or High (1). Only available to Admin. Requires a challenge restart to be taken into account.
- GetVehicleNetQuality
  struct GetVehicleNetQuality()
  Get the current and next network vehicle quality on server. The struct returned contains two fields CurrentValue and NextValue.
- SetCallVoteTimeOut
  boolean SetCallVoteTimeOut(int)
  Set a new timeout for waiting for votes. A zero value disables callvote. Only available to Admin. Requires a challenge restart to be taken into account.
- GetCallVoteTimeOut
  struct GetCallVoteTimeOut()
  Get the current and next timeout for waiting for votes. The struct returned contains two fields 'CurrentValue' and 'NextValue'.
- SetCallVoteRatio
  boolean SetCallVoteRatio(double)
  Set a new ratio for accepting callvote. Must lie between 0 and 1. Only available to Admin.
- GetCallVoteRatio
  double GetCallVoteRatio()
  Get the current ratio for accepting callvote. This value lies between 0 and 1.
- SetServerOptions
  boolean SetServerOptions(struct)
  Set new server options using the struct passed as parameters. This struct must contain the following fields : Name, Comment, Password, PasswordForSpectator, NextMaxPlayers, NextMaxSpectators, IsP2PUpload, IsP2PDownload, NextLadderMode, NextVehicleNetQuality, NextCallVoteTimeOut, CallVoteRatio and AllowChallengeDownload. Only available to Admin. A change of NextMaxPlayers, NextMaxSpectators, NextLadderMode, NextVehicleNetQuality or NextCallVoteTimeOut requires a challenge restart to be taken into account.
- GetServerOptions
  struct GetServerOptions()
  Returns a struct containing the server options i.e. Name, Comment, Password, PasswordForSpectator, CurrentMaxPlayers, NextMaxPlayers, CurrentMaxSpectators, NextMaxSpectators, IsP2PUpload, IsP2PDownload, CurrentLadderMode, NextLadderMode, CurrentVehicleNetQuality, NextVehicleNetQuality, CurrentCallVoteTimeOut, NextCallVoteTimeOut, CallVoteRatio and AllowChallengeDownload.
- LoadBlackList
  boolean LoadBlackList(string)
  Load the black list file with the specified file name. Only available to SuperAdmin.
- SaveBlackList
  boolean SaveBlackList(string)
  Save the black list in the file with specified file name. Only available to SuperAdmin.
- LoadGuestList
  boolean LoadGuestList(string)
  Load the guest list file with the specified file name. Only available to Admin.
- SaveGuestList
  boolean SaveGuestList(string)
  Save the guest list in the file with specified file name. Only available to SuperAdmin.
- GetLastConnectionErrorMessage
  string GetLastConnectionErrorMessage()
  Returns the last error message for an internet connection. Only available to SuperAdmin.
- ChallengeRestart
  boolean ChallengeRestart()
  Restarts the challenge. Only available to Admin.
- NextChallenge
  boolean NextChallenge()
  Switch to next challenge. Only available to Admin.
- StopServer
  boolean StopServer()
  Stop the server. Only available to SuperAdmin.
- ForceEndRound
  boolean ForceEndRound()
  In Rounds or Laps mode, force the end of round without waiting for all players to giveup/finish. Only available to Admin.
- SetGameInfos
  boolean SetGameInfos(struct)
  Set new game settings using the struct passed as parameters. This struct must contain the following fields : GameMode, RoundsPointsLimit, RoundsUseNewRules, TimeAttackLimit, TimeAttackSynchStartPeriod, TeamPointsLimit, TeamMaxPoints, TeamUseNewRules, LapsNbLaps, LapsTimeLimit and ChatTime. Only available to Admin. Requires a challenge restart to be taken into account.
- GetCurrentGameInfo
  struct GetCurrentGameInfo()
  Returns a struct containing the current game settings i.e. GameMode, RoundsPointsLimit, RoundsUseNewRules, TimeAttackLimit, TimeAttackSynchStartPeriod, TeamPointsLimit, TeamMaxPoints, TeamUseNewRules, LapsNbLaps, LapsTimeLimit, ChatTime and NbChallenge.
- GetNextGameInfo
  struct GetNextGameInfo()
  Returns a struct containing the game settings for the next challenge i.e. GameMode, RoundsPointsLimit, RoundsUseNewRules, TimeAttackLimit, TimeAttackSynchStartPeriod, TeamPointsLimit, TeamMaxPoints, TeamUseNewRules, LapsNbLaps, LapsTimeLimit, ChatTime and NbChallenge.
- GetGameInfos
  struct GetGameInfos()
  Returns a struct containing two other structures, the first containing the current game settings and the second the game settings for next challenge. The first structure is named CurrentGameInfos and the second NextGameInfos.
- SetChatTime
  boolean SetChatTime(int)
  Set a new chat time value in milliseconds. Only available to Admin. Requires a challenge restart to be taken into account.
- GetChatTime
  struct GetChatTime()
  Get the current and next chat time. The struct returned contains two fields CurrentValue and NextValue.
- SetFinishTimeout
  boolean SetFinishTimeout(int)
  Set a new finish timeout (for rounds/laps mode) value in milliseconds. 0 means default. 1 means adaptative to the duration of the challenge. Not available in 'nations'. Only available to Admin. Requires a challenge restart to be taken into account.
- GetFinishTimeout
  struct GetFinishTimeout()
  Get the current and next FinishTimeout. The struct returned contains two fields CurrentValue and NextValue.
- SetGameMode
  boolean SetGameMode(int)
  Set a new game mode between Rounds (0), TimeAttack (1), Team (2), Laps (3) and Stunts (4). Only available to Admin. Requires a challenge restart to be taken into account.
- GetGameMode
  int GetGameMode()
  Get the current game mode.
- SetTimeAttackLimit
  boolean SetTimeAttackLimit(int)
  Set a new time limit for time attack mode. Only available to Admin. Requires a challenge restart to be taken into account.
- GetTimeAttackLimit
  struct GetTimeAttackLimit()
  Get the current and next time limit for time attack mode. The struct returned contains two fields CurrentValue and NextValue.
- SetTimeAttackSynchStartPeriod
  boolean SetTimeAttackSynchStartPeriod(int)
  Set a new synchronised start period for time attack mode. Only available to Admin. Requires a challenge restart to be taken into account.
- GetTimeAttackSynchStartPeriod
  struct GetTimeAttackSynchStartPeriod()
  Get the current and synchronised start period for time attack mode. The struct returned contains two fields CurrentValue and NextValue.
- SetLapsTimeLimit
  boolean SetLapsTimeLimit(int)
  Set a new time limit for laps mode. Only available to Admin. Requires a challenge restart to be taken into account.
- GetLapsTimeLimit
  struct GetLapsTimeLimit()
  Get the current and next time limit for laps mode. The struct returned contains two fields CurrentValue and NextValue.
- SetNbLaps
  boolean SetNbLaps(int)
  Set a new number of laps for laps mode. Only available to Admin. Requires a challenge restart to be taken into account.
- GetNbLaps
  struct GetNbLaps()
  Get the current and next number of laps for laps mode. The struct returned contains two fields CurrentValue and NextValue.
- SetRoundPointsLimit
  boolean SetRoundPointsLimit(int)
  Set a new points limit for rounds mode. Only available to Admin. Requires a challenge restart to be taken into account.
- GetRoundPointsLimit
  struct GetRoundPointsLimit()
  Get the current and next points limit for rounds mode. The struct returned contains two fields CurrentValue and NextValue.
- SetUseNewRulesRound
  boolean SetUseNewRulesRound(int)
  Set if new rules are used for rounds mode. Only available to Admin. Requires a challenge restart to be taken into account.
- GetUseNewRulesRound
  struct GetUseNewRulesRound()
  Get if the new rules are used for rounds mode (Current and next values). The struct returned contains two fields CurrentValue and NextValue.
- SetTeamPointsLimit
  boolean SetTeamPointsLimit(int)
  Set a new points limit for team mode. Only available to Admin. Requires a challenge restart to be taken into account.
- GetTeamPointsLimit
  struct GetTeamPointsLimit()
  Get the current and next points limit for team mode. The struct returned contains two fields CurrentValue and NextValue.
- SetMaxPointsTeam
  boolean SetMaxPointsTeam(int)
  Set a new number of maximum points per round for team mode. Only available to Admin. Requires a challenge restart to be taken into account.
- GetMaxPointsTeam
  struct GetMaxPointsTeam()
  Get the current and next number of maximum points per round for team mode. The struct returned contains two fields CurrentValue and NextValue.
- SetUseNewRulesTeam
  boolean SetUseNewRulesTeam(int)
  Set if new rules are used for team mode. Only available to Admin. Requires a challenge restart to be taken into account.
- GetUseNewRulesTeam
  struct GetUseNewRulesTeam()
  Get if the new rules are used for team mode (Current and next values). The struct returned contains two fields CurrentValue and NextValue.
- GetCurrentChallengeIndex
  int GetCurrentChallengeIndex()
  Returns the current challenge index in the selection.
- GetCurrentChallengeInfo
  struct GetCurrentChallengeInfo()
  Returns a struct containing the infos for the current challenge. The struct contains the following fields : Name, UId, FileName, Author, Environnement, Mood, BronzeTime, SilverTime, GoldTime, AuthorTime, CopperPrice and LapRace.
- GetChallengeInfo
  struct GetChallengeInfo(string)
  Returns a struct containing the infos for the challenge with the specified filename. The struct contains the following fields : Name, UId, FileName, Author, Environnement, Mood, BronzeTime, SilverTime, GoldTime, AuthorTime, CopperPrice and LapRace.
- GetChallengeList
  array GetChallengeList(int, int)
  Returns a list of challenges among the current selection of the server. This method takes two parameters. The first parameter specifies the maximum number of infos to be returned, and the second one the starting index in the selection. The list is an array of structures. Each structure contains the following field : Name, UId, FileName, Environnement, Mood, GoldTime and CopperPrice.
- AddChallenge
  boolean AddChallenge(string)
  Add the challenge with the specified filename at the end of the current selection. Only available to Admin.
- AddChallengeList
  int AddChallengeList(array)
  Add the list of challenges with the specified filename at the end of the current selection. Only available to Admin.
- RemoveChallenge
  boolean RemoveChallenge(string)
  Remove the challenge with the specified filename from the current selection. Only available to Admin.
- RemoveChallengeList
  int RemoveChallengeList(array)
  Remove the list of challenges with the specified filenames from the current selection. The list of challenges to remove is an array of strings. Only available to Admin.
- InsertChallenge
  boolean InsertChallenge(string)
  Insert the challenge with the specified filename after the current challenge. Only available to Admin.
- InsertChallengeList
  int InsertChallengeList(array)
  Insert the list challenges with the specified filename after the current challenge. The list of challenges to insert is an array of strings. Only available to Admin.
- ChooseNextChallenge
  boolean ChooseNextChallenge(string)
  Set as next challenge the one with the specified filename, if it is present in the selection. Only available to Admin.
- ChooseNextChallengeList
  int ChooseNextChallengeList(array)
  Set as next challenge the list of challenges with the specified filenames, if they are present in the selection. Only available to Admin.
- LoadMatchSettings
  int LoadMatchSettings(string)
  Set a list of challenges defined in the playlist with the specified filename as the current selection of the server, and load the gameinfos from the same file. Only available to Admin.
- AppendPlaylistFromMatchSettings
  int AppendPlaylistFromMatchSettings(string)
  Add a list of challenges defined in the playlist with the specified filename at the end of the current selection. Only available to Admin.
- SaveMatchSettings
  int SaveMatchSettings(string)
  Save the current selection of challenges in the playlist with the specified filename, as well as the current gameinfos. Only available to Admin.
- InsertPlaylistFromMatchSettings
  int InsertPlaylistFromMatchSettings(string)
  Insert a list of challenges defined in the playlist with the specified filename after the current challenge. Only available to Admin.
- GetPlayerList
  array GetPlayerList(int, int)
  Returns the list of players on the server. This method takes two parameters. The first parameter specifies the maximum number of infos to be returned, and the second one the starting index in the list. The list is an array of structures. Each structure contains the following field : Login, NickName, PlayerId, TeamId, IsSpectator, IsInOfficialMode and LadderRanking.
- GetPlayerInfo
  struct GetPlayerInfo(string)
  Returns a struct containing the infos on the player with the specified login. The structure contains the following fields : Login, NickName, IPAddress, ConnectionType, PlayerId, IsSpectator, IsInOfficialMode, HasJoinMatch, a structure named Avatar, an array of structures named Skins and a structure named LadderStats. The structure Avatar and each structure of the array Skins contains two fields FileName and Checksum. The structure LadderStats contains the following fields : Ranking, Score, LastMatchScore, NbrMatchWins, NbrMatchDraws, NbrMatchLosses, NbrTotalPlayers, TeamName, TeamRanking, NbrTotalTeams.
- GetCurrentRanking
  array GetCurrentRanking(int, int)
  Returns the current ranking for the race in progress. This method takes two parameters. The first parameter specifies the maximum number of infos to be returned, and the second one the starting index in the ranking. The ranking returned is a list of structures. Each structure contains the following fields : Login, NickName, PlayerId, Rank, BestTime, Score, NbrLapsFinished and LadderScore. It also contains an array BestCheckpoints that contains the checkpoints times for the best race.
- ForceScores
  boolean ForceScores(array)
  Force the scores of the current game. Only available in rounds and team mode. You have to pass an array of structs with two fields: PlayerId and Score. Only available to Admin.
- GetNetworkStats
  struct GetNetworkStats()
  Returns a struct containing the networks stats of the server. The structure contains the following fields : Uptime, NbrConnection, MeanConnectionTime, MeanNbrPlayer, RecvNetRate, SendNetRate, TotalReceivingSize, TotalSendingSize and an array of structures named PlayerNetInfos. Each structure of the array PlayerNetInfos contains the following fields : Login, IPAddress, LastTransferTime, DeltaBetweenTwoLastNetState, PacketLossRate. Only available to SuperAdmin.
- GetValidationReplay
  base64 GetValidationReplay(string)
  Returns a replay containing the data needed to validate the current best time of the player.
- StartServerLan
  boolean StartServerLan()
  Start a server on lan, using the current configuration. Only available to SuperAdmin.
- StartServerInternet
  boolean StartServerInternet(struct)
  Start a server on internet using the 'Login' and 'Password' specified in the struct passed as parameters. Only available to SuperAdmin.
- GetStatus
  struct GetStatus()
  Returns the current status of the server.
- QuitGame
  boolean QuitGame()
  Quit the application. Only available to SuperAdmin.
- GetBaseDirectory
  string GetBaseDirectory()
  Returns the path of the dedicated server application. Only available to Admin.
- GameDataDirectory
  string GameDataDirectory()
  Returns the path of the game datas directory. Only available to Admin.
- GetTracksDirectory
  string GetTracksDirectory()
  Returns the path of the tracks directory. Only available to Admin.
- GetSkinsDirectory
  string GetSkinsDirectory()
  Returns the path of the skins directory. Only available to Admin.