diff --git a/.gitignore b/.gitignore
index da8ecb1..069bcd1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/scripts
.gitignore
-
+docker-compose.yml
+/.tmp
\ No newline at end of file
diff --git a/README.md b/README.md
index 3fc7e16..682d707 100644
--- a/README.md
+++ b/README.md
@@ -5,17 +5,17 @@ Docker image for simple or customizable Trackmania Nations Forever server
```docker run -e {required environment variables} -p {selected ports} fanyx/tmserver```
### There are several required environment variables that you need to set:
- - `$SERVER_LOGIN` | Server account login
- - `$SERVER_LOGIN_PASSWORD` | Server account password
+ - $SERVER_LOGIN | Server account login
+ - $SERVER_LOGIN_PASSWORD | Server account password
### Optional environment variables are:
- - `$SERVER_PORT` | Port for server communications -> Default : 2350
- - `$SERVER_P2P_PORT` | Port for peer2peer communication -> Default : 3450
- - `$SERVER_SA_PASSWORD` | Password for SuperAdmin credential -> when left empty will be randomly generated
- - `$SERVER_ADM_PASSWORD` | Password for Admin credential -> when left empty will be randomly generated
- - `$SERVER_NAME` | Server name in ingame browser -> Default : "Trackmania Server"
- - `$SERVER_COMMENT` | Server description -> Default : "This is a Trackmania Server"
- - `$SERVER_PASSWORD` | If you want to secure your server against unwanted logins, set a server password
+ - $SERVER_PORT | Port for server communications -> Default : 2350
+ - $SERVER_P2P_PORT | Port for peer2peer communication -> Default : 3450
+ - $SERVER_SA_PASSWORD | Password for SuperAdmin credential -> when left empty will be randomly generated
+ - $SERVER_ADM_PASSWORD | Password for Admin credential -> when left empty will be randomly generated
+ - $SERVER_NAME | Server name in ingame browser -> Default : "Trackmania Server"
+ - $SERVER_COMMENT | Server description -> Default : "This is a Trackmania Server"
+ - $SERVER_PASSWORD | If you want to secure your server against unwanted logins, set a server password
## Running this image with `docker-compose`
I have a default [`docker-compose.yml`](https://github.com/ryluth/docker-tmserver/blob/master/docker-compose.yml) included in this repository.
@@ -24,10 +24,3 @@ You can adjust this file to your needs but running with docker-compose is more c
## Configuring the Trackmania server
Without manual configuration the server launches with Nadeo's default config.
This means round based driving.
-To configure the server on your own demands edit the `config.txt` file in `tmserver/GameData/Config`.
-To configure the tracklist edit the `playlist.txt` in `tmserver/GameData/Tracks/MatchSettings/`.
-
-## Further information
-You can open volumes to the Trackmania server files and Xaseco files (`docker-compose` does this per default) and edit configuration files.
-This is needed since the default track playlist just runs the white Nadeo tracks so i advise examining the config volumes to adjust the track playlist.
-Furthermore you can edit the Xaseco plugins to your need and adjust ingame administrator accounts and so on.
diff --git a/docker-compose.yml b/docker-compose.yml
index 2d8a8f5..992ccef 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -5,10 +5,10 @@ services:
container_name: trackmania_db
restart: always
environment:
- - MYSQL_ROOT_PASSWORD=
+ - MYSQL_ROOT_PASSWORD=consortiumRootDb
- MYSQL_DATABASE=trackmania
- MYSQL_USER=trackmania
- - MYSQL_PASSWORD=
+ - MYSQL_PASSWORD=consortiumTrackmania
volumes:
- ./db-data:/var/lib/mysql
pma:
@@ -17,7 +17,7 @@ services:
depends_on:
- db
environment:
- - PMA_ARBITRARY=1
+ - PMA_HOST=db
restart: always
ports:
- "8080:80"
@@ -28,15 +28,15 @@ services:
- db
restart: always
environment:
- - SERVER_LOGIN=
- - SERVER_LOGIN_PASSWORD=
+ - SERVER_LOGIN=pott_trupp
+ - SERVER_LOGIN_PASSWORD=pott_trupp
- SERVER_PORT=2350
- SERVER_P2P_PORT=3450
- - SERVER_SA_PASSWORD=
- - SERVER_ADM_PASSWORD=
+ - SERVER_SA_PASSWORD=SuperAdminTrackmania
+ - SERVER_ADM_PASSWORD=AdminTrackmania
- SERVER_NAME=Trackmania Server
- SERVER_COMMENT=This is a Trackmania Server
- - SERVER_PASSWORD=
+ - SERVER_PASSWORD=gtfo
ports:
- "2350:2350"
- "2350:2350/udp"
@@ -50,8 +50,8 @@ services:
- tmserver
restart: on-failure
environment:
- - SERVER_SA_PASSWORD=
+ - SERVER_SA_PASSWORD=SuperAdminTrackmania
- DB_HOST=db
- DB_LOGIN=trackmania
- - DB_LOGIN_PASSWORD=
+ - DB_LOGIN_PASSWORD=consortiumTrackmania
- DB_NAME=trackmania
diff --git a/docker-tmserver/.entrypoint-tmserver.sh.swp b/docker-tmserver/.entrypoint-tmserver.sh.swp
new file mode 100644
index 0000000..9d62005
Binary files /dev/null and b/docker-tmserver/.entrypoint-tmserver.sh.swp differ
diff --git a/docker-tmserver/Dockerfile b/docker-tmserver/Dockerfile
index b8c9791..6e0bfce 100644
--- a/docker-tmserver/Dockerfile
+++ b/docker-tmserver/Dockerfile
@@ -2,11 +2,14 @@ FROM debian:stretch-slim
RUN mkdir /opt/tmserver
-COPY tmserver/ /opt/tmserver/
-COPY ./entrypoint-tmserver.sh /
+COPY tmserver/ /opt/tmserver
+COPY entrypoint-tmserver.sh /opt/tmserver
+
+ENV PATH
RUN apt update \
&& apt install pwgen
+
RUN groupadd trackmania
RUN useradd -M -g trackmania trackmania
RUN chown -R trackmania:trackmania /opt/tmserver
@@ -14,4 +17,7 @@ RUN chown trackmania:trackmania /entrypoint-tmserver.sh
USER trackmania
WORKDIR /opt/tmserver
-CMD ["/entrypoint-tmserver.sh"]
+
+ENTRYPOINT ["entrypoint-tmserver.sh"]
+
+CMD ["TrackmaniaServer","/nodaemon"]
diff --git a/docker-tmserver/entrypoint-tmserver.sh b/docker-tmserver/entrypoint-tmserver.sh
index 5e1570f..10debf6 100755
--- a/docker-tmserver/entrypoint-tmserver.sh
+++ b/docker-tmserver/entrypoint-tmserver.sh
@@ -3,11 +3,6 @@
set -e
-if [[ -e /etc/tmserver/env ]]
-then
- . /etc/tmserver/env
-fi
-
# Evaluate all the available environment variables
if [[ -z "${SERVER_LOGIN}" ]]; then
echo "Server account login is missing. Server cannot start."
@@ -51,15 +46,6 @@ fi
#Trackmania Files
-sed -i -e "s/--\$SERVER_SA_PASSWORD--/$SERVER_SA_PASSWORD/" \
- -e "s/--\$SERVER_ADM_PASSWORD--/$SERVER_ADM_PASSWORD/" \
- -e "s/--\$SERVER_LOGIN--/$SERVER_LOGIN/" \
- -e "s/--\$SERVER_LOGIN_PASSWORD--/$SERVER_LOGIN_PASSWORD/" \
- -e "s/--\$SERVER_NAME--/$SERVER_NAME/" \
- -e "s/--\$SERVER_COMMENT--/$SERVER_COMMENT/" \
- -e "s/--\$SERVER_PASSWORD--/$SERVER_PASSWORD/" \
- -e "s/--\$SERVER_PORT--/$SERVER_PORT/" \
- -e "s/--\$SERVER_P2P_PORT--/$SERVER_P2P_PORT/" \
- /opt/tmserver/GameData/Config/config.txt
+envsubst > GameData/Config/config.txt < GameData/Config/_config.txt
-exec "/opt/tmserver/TrackmaniaServer" "/nodaemon" "/internet" "/game_settings=MatchSettings/playlist.txt" "/dedicated_cfg=config.txt"
+exec "./TrackmaniaServer" "/nodaemon" "/internet" "/game_settings=MatchSettings/playlist.txt" "/dedicated_cfg=config.txt"
diff --git a/docker-tmserver/tmserver/CommandLine.html b/docker-tmserver/tmserver/CommandLine.html
deleted file mode 100644
index 02ad1ab..0000000
--- a/docker-tmserver/tmserver/CommandLine.html
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
-
-
-
- TrackMania CommandLine
-
-
-
-
-
Command line options
-
-Dedicated server:
-
-
-
-
-
/dedicated_cfg=xxx
Specify a configuration file "dedicated_cfg.txt" to use. (xxx = name of the file in GameData/Config/)
-
/game_settings=xxx
Specify a match settings file to use. (xxx = absolute file name or relative to GameData/Tracks/)
-
--
-
/login=xxx
Account login to be used to play online.
-
-
/password=xxx
Account password
-
/servername=xxx
Name of the server to create.
-
/serverpassword=xxx
Makes the server private for players, xxx is the password to use.
-
-
--
-
/lan
Must be specified to join or create a LAN game (that is, not an internet server)
-
--
-
/forceip=xxx(:xx)
Forces the public ip address to this value. optionally with a port as well.
-
/bindip=xxx(:xx)
Chooses the ip to bind to, and sets the public ip to this value. (you still can use /forceip to chose a different public ip). This is used when the machine has several network interfaces.
-
-
--
-
/join=xxx
Joins a server, to make a relay server. (xxx = the server ip adress with optional port, or the server login.)
-
/joinpassword=xxx
Password to use to join the remote server if the server is private.
-
--
-
/loadcache
Loads the "checksum.txt" instead of recomputing it, to speed up first launch time if P2P is enabled. *DO NOT USE* if you run several servers in the same directory!
-
-
/nologs
Disables the creation of "GameLog.txt" and "ConsoleLog.txt" in Logs/ directory.
-
/noautoquit
Keeps the server running "waiting for rpc commands", even if it is not live (with a map loaded and ready to receive players). The default behaviour is to quit, because this situation is mostly caused by configuration errors.
-
--
-
/nodaemon
(linux) Doesn't detach the process.
-
-
/verbose_rpc_full
(Debug option) Display the whole contents of the xml-rpc requests the dedicated server receives.
-
/verbose_rpc
(Debug option) Displays the xml-rpc requests the dedicated server receives, but only the name of the XmlRpc? command and some parameters.
-
-
-
-
-Note: the command line settings when present override the values from the configuration file.
-
Forces using a specific profile on disk. (to avoid the profile choice dialog)
-
-
/validation=xxx
Specifies the account validation key (the last three chracters of the player key) to be able to perform copper transactions.
-
/nickname=xxx
Sets the player's nickname. (If not specified, the nickname used is the one stored in the online account.)
-
/team=xxx
Sets the default player team. ("red" or "0" / "blue" or "1")
-
-
--
-
/join=xxx
Joins a server. (xxx = the server ip adress with optional port, or the server login.)
-
/spectate=xxx
Same as /join, but join as spectator.
-
/joinasreferee=xxx
Same as /join, but join as referee. The referee log will be in "My Documents/TmUnited/RefereeLog.txt".
-
-
/serverpassword=xxx
Password to use to join the server if the server is private.
-
/silent
Skips news, etc... to allow joining a server without any user interaction
-
--
-
/file=xxx
Opens a Replay.Gbx or a Challenge.Gbx file. (xxx = full path to the file.)
-
-
/url=xxx
Opens a tmtp:// url with the game.
-
--
-
/shootvideo=xxx
Shoots a replay to a video file. (xxx = replay file. aboslute file name or relative to Tracks/Replays/).
-
/validatepath=xxx
Mass validates all the replays in a directory (xxx = name relative to Tracks/Replays/). The results will be in "My Documents/TmUnited/ValidateLog.txt".
-
-
/windowless
Disable creation of the 3D viewport. (useful for batch processing with /validatepath, for instance)
-
--
-
/list_benchs=xxx
Benchmarks a list of replays. (xxx = name of a text file containing the replays file names.)
-
/bench=xxx
Benchmarks a replay (xxx = replay file name) (Internal: if no filename is specified, performs a quick technical benchmark for the default launcher settings)
-
-
/out=xxx
Output filename for the bench results.
-
--
-
/computeallshadows
Computes the lightmaps for all the challenges on disk.
-
--
-
/singleinst
Try to send the command to an already running instance of the program instead of creating a new one.
-
-
/config=xxx
Use a specific ".SystemConfig.Gbx" config file.
-
/ini=xxx
Use a specific ".ini" config file.
-
/userdir=xxx
Changes the default "My Documents/TmUnited/" location. (either a full path, or just "exe" to use the exe directory.)
-
-
/useexedir
Run in the directory where the executable is, instead of the current directory.
-
/noscancache
Disables the use of the launch time scan cache, forces re-reading of directory entries from the disk.
-
/title
Changes the window title.
-
-
-
-
-If any of /login, /password, /serverpassword is missing, the game will ask them to the player.
-
Quick link to join a server: TmForever.exe /login=xxx /join=serverlogin /silent
-
Show a manialink page: TmForever.exe /login=xxx /url=tmtp://:webisodeen /singleinst
-
Batch validate some replays: TmForever.exe /login=xxx /validatepath=Downloaded
-
-
Launch a referee in windowless mode: TmForever.exe /login=xxx /joinasreferee=serverlogin /serverpassword=refereepassword /windowless
-
-
-
-
-Launcher:
-
-
-
-
/configmode
Don't run the game when exiting the launcher. (can be useful with /silent, to create initialize the system config without running the game afterwards)
-
-
/silent
Don't show the dialog boxes.
-
/userdir=xxx
Same as the game.
-
/ini=xxx
Same as the game.
-
-
/useexedir
Same as the game.
-
-
-
-Note: All the parameters on the launcher command line are also passed through to the game.
-
- TrackMania.PlayerManialinkPageAnswer(int PlayerUid, string Login, int Answer);
- difference with previous TM: this is not called if the player doesn't answer, and thus '0' is also a valid answer.
-
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 containing 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 a vote for a cmd. The command is a XML string corresponding to an XmlRpc request. Only available to Admin.
-
CallVoteEx
-boolean CallVoteEx(string, double, int, int)
-Extended call vote. Same as CallVote, but you can additionally supply specific parameters for this vote: a ratio, a time out and who is voting. Special timeout values: a timeout of '0' means default, '1' means indefinite; a ratio of '-1' means default; Voters values: '0' means only active players, '1' means any player, '2' is for everybody, pure spectators included. Only available to Admin.
-
InternalCallVote
-boolean InternalCallVote()
-Used internally by game.
-
CancelVote
-boolean CancelVote()
-Cancel the current vote. Only available to Admin.
-
GetCurrentCallVote
-struct GetCurrentCallVote()
-Returns the vote currently in progress. The returned structure is { CallerLogin, CmdName, CmdParam }.
-
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 default ratio for passing a vote. Must lie between 0 and 1. Only available to Admin.
-
GetCallVoteRatio
-double GetCallVoteRatio()
-Get the current default ratio for passing a vote. This value lies between 0 and 1.
-
SetCallVoteRatios
-boolean SetCallVoteRatios(array)
-Set new ratios for passing specific votes. The parameter is an array of structs {string Command, double Ratio}, ratio is in [0,1] or -1 for vote disabled. Only available to Admin.
-
GetCallVoteRatios
-array GetCallVoteRatios()
-Get the current ratios for passing votes.
-
ChatSendServerMessage
-boolean ChatSendServerMessage(string)
-Send a text message to all clients without the server login. Only available to Admin.
-
ChatSendServerMessageToLanguage
-boolean ChatSendServerMessageToLanguage(array, string)
-Send a localised text message to all clients without the server login, or optionally to a Login (which can be a single login or a list of comma-separated logins). The parameter is an array of structures {Lang='??', Text='...'}. If no matching language is found, the last text in the array is used. Only available to Admin.
-
ChatSendServerMessageToId
-boolean ChatSendServerMessageToId(string, int)
-Send a text message without the server login to the client with the specified PlayerId. Only available to Admin.
-
ChatSendServerMessageToLogin
-boolean ChatSendServerMessageToLogin(string, string)
-Send a text message without the server login to the client with the specified login. Login can be a single login or a list of comma-separated logins. Only available to Admin.
-
ChatSend
-boolean ChatSend(string)
-Send a text message to all clients. Only available to Admin.
-
ChatSendToLanguage
-boolean ChatSendToLanguage(array, string)
-Send a localised text message to all clients, or optionally to a Login (which can be a single login or a list of comma-separated logins). The parameter is an array of structures {Lang='??', Text='...'}. If no matching language is found, the last text in the array is used. Only available to Admin.
-
ChatSendToLogin
-boolean ChatSendToLogin(string, string)
-Send a text message to the client with the specified login. Login can be a single login or a list of comma-separated logins. 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 40 lines. Only available to Admin.
-
ChatEnableManualRouting
-boolean ChatEnableManualRouting(boolean, boolean)
-The chat messages are no longer dispatched to the players, they only go to the rpc callback and the controller has to manually forward them. The second (optional) parameter allows all messages from the server to be automatically forwarded. Only available to Admin.
-
ChatForwardToLogin
-boolean ChatForwardToLogin(string, string, string)
-(Text, SenderLogin, DestLogin) Send a text message to the specified DestLogin (or everybody if empty) on behalf of SenderLogin. DestLogin can be a single login or a list of comma-separated logins. Only available if manual routing is enabled. Only available to Admin.
-
SendNotice
-boolean SendNotice(string, string, int)
-Display a notice on all clients. The parameters are the text message to display, and the login of the avatar to display next to it (or '' for no avatar), and an optional 'max duration' in seconds (default: 3). Only available to Admin.
-
SendNoticeToId
-boolean SendNoticeToId(int, string, int, int)
-Display a notice on the client with the specified UId. The parameters are the Uid of the client to whom the notice is sent, the text message to display, and the UId of the avatar to display next to it (or '255' for no avatar), and an optional 'max duration' in seconds (default: 3). Only available to Admin.
-
SendNoticeToLogin
-boolean SendNoticeToLogin(string, string, string, int)
-Display a notice on the client with the specified login. The parameters are the login of the client to whom the notice is sent, the text message to display, and the login of the avatar to display next to it (or '' for no avatar), and an optional 'max duration' in seconds (default: 3). Login can be a single login or a list of comma-separated logins. Only available to Admin.
-
SendDisplayManialinkPage
-boolean SendDisplayManialinkPage(string, int, boolean)
-Display a manialink page on all clients. The parameters are the xml description of the page to display, a timeout to autohide it (0 = permanent), and a boolean to indicate whether the page must be hidden as soon as the user clicks on a page option. Only available to Admin.
-
SendDisplayManialinkPageToId
-boolean SendDisplayManialinkPageToId(int, string, int, boolean)
-Display a manialink page on the client with the specified UId. The first parameter is the UId of the player, the other are identical to 'SendDisplayManialinkPage'. Only available to Admin.
-
SendDisplayManialinkPageToLogin
-boolean SendDisplayManialinkPageToLogin(string, string, int, boolean)
-Display a manialink page on the client with the specified login. The first parameter is the login of the player, the other are identical to 'SendDisplayManialinkPage'. Login can be a single login or a list of comma-separated logins. Only available to Admin.
-
SendHideManialinkPage
-boolean SendHideManialinkPage()
-Hide the displayed manialink page on all clients. Only available to Admin.
-
SendHideManialinkPageToId
-boolean SendHideManialinkPageToId(int)
-Hide the displayed manialink page on the client with the specified UId. Only available to Admin.
-
SendHideManialinkPageToLogin
-boolean SendHideManialinkPageToLogin(string)
-Hide the displayed manialink page on the client with the specified login. Login can be a single login or a list of comma-separated logins. Only available to Admin.
-
GetManialinkPageAnswers
-array GetManialinkPageAnswers()
-Returns the latest results from the current manialink page, as an array of structs {string Login, int PlayerId, int Result} Result==0 -> no answer, Result>0.... -> answer from the player.
-
Kick
-boolean Kick(string, string)
-Kick the player with the specified login, with an optional message. Only available to Admin.
-
KickId
-boolean KickId(int, string)
-Kick the player with the specified PlayerId, with an optional message. Only available to Admin.
-
Ban
-boolean Ban(string, string)
-Ban the player with the specified login, with an optional message. Only available to Admin.
-
BanAndBlackList
-boolean BanAndBlackList(string, string, boolean)
-Ban the player with the specified login, with a message. Add it to the black list, and optionally save the new list. Only available to Admin.
-
BanId
-boolean BanId(int, string)
-Ban the player with the specified PlayerId, with an optional message. Only available to Admin.
-
UnBan
-boolean UnBan(string)
-Unban the player with the specified client name. 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 banned players. 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.
-
BlackListId
-boolean BlackListId(int)
-Blacklist the player with the specified PlayerId. 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 blacklisted players. 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.
-
LoadBlackList
-boolean LoadBlackList(string)
-Load the black list file with the specified file name. Only available to Admin.
-
SaveBlackList
-boolean SaveBlackList(string)
-Save the black list in the file with specified file name. Only available to Admin.
-
AddGuest
-boolean AddGuest(string)
-Add the player with the specified login on the guest list. Only available to Admin.
-
AddGuestId
-boolean AddGuestId(int)
-Add the player with the specified PlayerId 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.
-
RemoveGuestId
-boolean RemoveGuestId(int)
-Remove the player with the specified PlayerId 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.
-
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 Admin.
-
SetBuddyNotification
-boolean SetBuddyNotification(string, boolean)
-Sets whether buddy notifications should be sent in the chat. login is the login of the player, or '' for global setting, and enabled is the value. Only available to Admin.
-
GetBuddyNotification
-boolean GetBuddyNotification(string)
-Gets whether buddy notifications are enabled for login, or '' to get the global setting.
-
WriteFile
-boolean WriteFile(string, base64)
-Write the data to the specified file. The filename is relative to the Tracks path. Only available to Admin.
-
TunnelSendDataToId
-boolean TunnelSendDataToId(int, base64)
-Send the data to the specified player. Only available to Admin.
-
TunnelSendDataToLogin
-boolean TunnelSendDataToLogin(string, base64)
-Send the data to the specified player. Login can be a single login or a list of comma-separated logins. Only available to Admin.
-
Echo
-boolean Echo(string, string)
-Just log the parameters and invoke a callback. Can be used to talk to other xmlrpc clients connected, or to make custom votes. If used in a callvote, the first parameter will be used as the vote message on the clients. Only available to Admin.
-
Ignore
-boolean Ignore(string)
-Ignore the player with the specified login. Only available to Admin.
-
IgnoreId
-boolean IgnoreId(int)
-Ignore the player with the specified PlayerId. Only available to Admin.
-
UnIgnore
-boolean UnIgnore(string)
-Unignore the player with the specified login. Only available to Admin.
-
UnIgnoreId
-boolean UnIgnoreId(int)
-Unignore the player with the specified PlayerId. Only available to Admin.
-
CleanIgnoreList
-boolean CleanIgnoreList()
-Clean the ignore list of the server. Only available to Admin.
-
GetIgnoreList
-array GetIgnoreList(int, int)
-Returns the list of ignored players. 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.
-
Pay
-int Pay(string, int, string)
-Pay coppers from the server account to a player, returns the BillId. This method takes three parameters: Login of the payee, Coppers to pay and a Label to send with the payment. The creation of the transaction itself may cost coppers, so you need to have coppers on the server account. Only available to Admin.
-
SendBill
-int SendBill(string, int, string, string)
-Create a bill, send it to a player, and return the BillId. This method takes four parameters: LoginFrom of the payer, Coppers the player has to pay, Label of the transaction and an optional LoginTo of the payee (if empty string, then the server account is used). The creation of the transaction itself may cost coppers, so you need to have coppers on the server account. Only available to Admin.
-
GetBillState
-struct GetBillState(int)
-Returns the current state of a bill. This method takes one parameter, the BillId. Returns a struct containing State, StateName and TransactionId. Possible enum values are: CreatingTransaction, Issued, ValidatingPayement, Payed, Refused, Error.
-
GetServerCoppers
-int GetServerCoppers()
-Returns the current number of coppers on the server account.
-
GetSystemInfo
-struct GetSystemInfo()
-Get some system infos, including connection rates (in kbps).
-
SetConnectionRates
-boolean SetConnectionRates(int, int)
-Set the download and upload rates (in kbps).
-
SetServerName
-boolean SetServerName(string)
-Set a new server name in utf8 format. Only available to Admin.
-
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.
-
SetHideServer
-boolean SetHideServer(int)
-Set whether the server should be hidden from the public server list (0 = visible, 1 = always hidden, 2 = hidden from nations). Only available to Admin.
-
GetHideServer
-int GetHideServer()
-Get whether the server wants to be hidden from the public server list.
-
IsRelayServer
-boolean IsRelayServer()
-Returns true if this is a relay server.
-
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.
-
AutoSaveReplays
-boolean AutoSaveReplays(boolean)
-Enable the autosaving of all replays (vizualisable replays with all players, but not validable) on the server. Only available to SuperAdmin.
-
AutoSaveValidationReplays
-boolean AutoSaveValidationReplays(boolean)
-Enable the autosaving on the server of validation replays, every time a player makes a new time. Only available to SuperAdmin.
-
IsAutoSaveReplaysEnabled
-boolean IsAutoSaveReplaysEnabled()
-Returns if autosaving of all replays is enabled on the server.
-
IsAutoSaveValidationReplaysEnabled
-boolean IsAutoSaveValidationReplaysEnabled()
-Returns if autosaving of validation replays is enabled on the server.
-
SaveCurrentReplay
-boolean SaveCurrentReplay(string)
-Saves the current replay (vizualisable replays with all players, but not validable). Pass a filename, or '' for an automatic filename. Only available to Admin.
-
SaveBestGhostsReplay
-boolean SaveBestGhostsReplay(string, string)
-Saves a replay with the ghost of all the players' best race. First parameter is the login of the player (or '' for all players), Second parameter is the filename, or '' for an automatic filename. Only available to Admin.
-
GetValidationReplay
-base64 GetValidationReplay(string)
-Returns a replay containing the data needed to validate the current best time of the player. The parameter is the login of the player.
-
SetLadderMode
-boolean SetLadderMode(int)
-Set a new ladder mode between ladder disabled (0) and forced (1). 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.
-
GetLadderServerLimits
-struct GetLadderServerLimits()
-Get the ladder points limit for the players allowed on this server. The struct returned contains two fields LadderServerLimitMin and LadderServerLimitMax.
-
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.
-
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, AllowChallengeDownload, AutoSaveReplays, and optionally for forever: RefereePassword, RefereeMode, AutoSaveValidationReplays, HideServer, UseChangingValidationSeed. Only available to Admin. A change of NextMaxPlayers, NextMaxSpectators, NextLadderMode, NextVehicleNetQuality, NextCallVoteTimeOut or UseChangingValidationSeed requires a challenge restart to be taken into account.
-
GetServerOptions
-struct GetServerOptions(int)
-Optional parameter for compatibility: struct version (0 = united, 1 = forever). Returns a struct containing the server options: Name, Comment, Password, PasswordForSpectator, CurrentMaxPlayers, NextMaxPlayers, CurrentMaxSpectators, NextMaxSpectators, IsP2PUpload, IsP2PDownload, CurrentLadderMode, NextLadderMode, CurrentVehicleNetQuality, NextVehicleNetQuality, CurrentCallVoteTimeOut, NextCallVoteTimeOut, CallVoteRatio, AllowChallengeDownload and AutoSaveReplays, and additionally for forever: RefereePassword, RefereeMode, AutoSaveValidationReplays, HideServer, CurrentUseChangingValidationSeed, NextUseChangingValidationSeed.
-
SetServerPackMask
-boolean SetServerPackMask(string)
-Defines the packmask of the server. Can be 'United', 'Nations', 'Sunrise', 'Original', or any of the environment names. (Only challenges matching the packmask will be allowed on the server, so that player connecting to it know what to expect.) Only available when the server is stopped. Only available to Admin.
-
GetServerPackMask
-string GetServerPackMask()
-Get the packmask of the server.
-
SetForcedMods
-boolean SetForcedMods(boolean, array)
-Set the mods to apply on the clients. Parameters: Override, if true even the challenges with a mod will be overridden by the server setting; and Mods, an array of structures [{EnvName, Url}, ...]. Requires a challenge restart to be taken into account. Only available to Admin.
-
GetForcedMods
-struct GetForcedMods()
-Get the mods settings.
-
SetForcedMusic
-boolean SetForcedMusic(boolean, string)
-Set the music to play on the clients. Parameters: Override, if true even the challenges with a custom music will be overridden by the server setting, and a UrlOrFileName for the music. Requires a challenge restart to be taken into account. Only available to Admin.
-
GetForcedMusic
-struct GetForcedMusic()
-Get the music setting.
-
SetForcedSkins
-boolean SetForcedSkins(array)
-Defines a list of remappings for player skins. It expects a list of structs Orig, Name, Checksum, Url. Orig is the name of the skin to remap, or '*' for any other. Name, Checksum, Url define the skin to use. (They are optional, you may set value '' for any of those. All 3 null means same as Orig). Will only affect players connecting after the value is set. Only available to Admin.
-
GetForcedSkins
-array GetForcedSkins()
-Get the current forced skins.
-
GetLastConnectionErrorMessage
-string GetLastConnectionErrorMessage()
-Returns the last error message for an internet connection. Only available to Admin.
-
SetRefereePassword
-boolean SetRefereePassword(string)
-Set a new password for the referee mode. Only available to Admin.
-
GetRefereePassword
-string GetRefereePassword()
-Get the password for referee mode if called as Admin or Super Admin, else returns if a password is needed or not.
-
SetRefereeMode
-boolean SetRefereeMode(int)
-Set the referee validation mode. 0 = validate the top3 players, 1 = validate all players. Only available to Admin.
-
GetRefereeMode
-int GetRefereeMode()
-Get the referee validation mode.
-
SetUseChangingValidationSeed
-boolean SetUseChangingValidationSeed(boolean)
-Set whether the game should use a variable validation seed or not. Only available to Admin. Requires a challenge restart to be taken into account.
-
GetUseChangingValidationSeed
-struct GetUseChangingValidationSeed()
-Get the current and next value of UseChangingValidationSeed. The struct returned contains two fields CurrentValue and NextValue.
-
SetWarmUp
-boolean SetWarmUp(boolean)
-Sets whether the server is in warm-up phase or not. Only available to Admin.
-
GetWarmUp
-boolean GetWarmUp()
-Returns whether the server is in warm-up phase.
-
ChallengeRestart
-boolean ChallengeRestart()
-Restarts the challenge, with an optional boolean parameter DontClearCupScores (only available in cup mode). Only available to Admin.
-
RestartChallenge
-boolean RestartChallenge()
-Restarts the challenge, with an optional boolean parameter DontClearCupScores (only available in cup mode). Only available to Admin.
-
NextChallenge
-boolean NextChallenge()
-Switch to next challenge, with an optional boolean parameter DontClearCupScores (only available in cup mode). 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, ChatTime, RoundsPointsLimit, RoundsUseNewRules, RoundsForcedLaps, TimeAttackLimit, TimeAttackSynchStartPeriod, TeamPointsLimit, TeamMaxPoints, TeamUseNewRules, LapsNbLaps, LapsTimeLimit, FinishTimeout, and optionally: AllWarmUpDuration, DisableRespawn, ForceShowAllOpponents, RoundsPointsLimitNewRules, TeamPointsLimitNewRules, CupPointsLimit, CupRoundsPerChallenge, CupNbWinners, CupWarmUpDuration. Only available to Admin. Requires a challenge restart to be taken into account.
-
GetCurrentGameInfo
-struct GetCurrentGameInfo(int)
-Optional parameter for compatibility: struct version (0 = united, 1 = forever). Returns a struct containing the current game settings, ie: GameMode, ChatTime, NbChallenge, RoundsPointsLimit, RoundsUseNewRules, RoundsForcedLaps, TimeAttackLimit, TimeAttackSynchStartPeriod, TeamPointsLimit, TeamMaxPoints, TeamUseNewRules, LapsNbLaps, LapsTimeLimit, FinishTimeout, and additionally for version 1: AllWarmUpDuration, DisableRespawn, ForceShowAllOpponents, RoundsPointsLimitNewRules, TeamPointsLimitNewRules, CupPointsLimit, CupRoundsPerChallenge, CupNbWinners, CupWarmUpDuration.
-
GetNextGameInfo
-struct GetNextGameInfo(int)
-Optional parameter for compatibility: struct version (0 = united, 1 = forever). Returns a struct containing the game settings for the next challenge, ie: GameMode, ChatTime, NbChallenge, RoundsPointsLimit, RoundsUseNewRules, RoundsForcedLaps, TimeAttackLimit, TimeAttackSynchStartPeriod, TeamPointsLimit, TeamMaxPoints, TeamUseNewRules, LapsNbLaps, LapsTimeLimit, FinishTimeout, and additionally for version 1: AllWarmUpDuration, DisableRespawn, ForceShowAllOpponents, RoundsPointsLimitNewRules, TeamPointsLimitNewRules, CupPointsLimit, CupRoundsPerChallenge, CupNbWinners, CupWarmUpDuration.
-
GetGameInfos
-struct GetGameInfos(int)
-Optional parameter for compatibility: struct version (0 = united, 1 = forever). 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.
-
SetGameMode
-boolean SetGameMode(int)
-Set a new game mode between Rounds (0), TimeAttack (1), Team (2), Laps (3), Stunts (4) and Cup (5). Only available to Admin. Requires a challenge restart to be taken into account.
-
GetGameMode
-int GetGameMode()
-Get the current game mode.
-
SetChatTime
-boolean SetChatTime(int)
-Set a new chat time value in milliseconds (actually 'chat time' is the duration of the end race podium, 0 means no podium displayed.). Only available to Admin.
-
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. 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.
-
SetAllWarmUpDuration
-boolean SetAllWarmUpDuration(int)
-Set whether to enable the automatic warm-up phase in all modes. 0 = no, otherwise it's the duration of the phase, expressed in number of rounds (in rounds/team mode), or in number of times the gold medal time (other modes). Only available to Admin. Requires a challenge restart to be taken into account.
-
GetAllWarmUpDuration
-struct GetAllWarmUpDuration()
-Get whether the automatic warm-up phase is enabled in all modes. The struct returned contains two fields CurrentValue and NextValue.
-
SetDisableRespawn
-boolean SetDisableRespawn(boolean)
-Set whether to disallow players to respawn. Only available to Admin. Requires a challenge restart to be taken into account.
-
GetDisableRespawn
-struct GetDisableRespawn()
-Get whether players are disallowed to respawn. The struct returned contains two fields CurrentValue and NextValue.
-
SetForceShowAllOpponents
-boolean SetForceShowAllOpponents(int)
-Set whether to override the players preferences and always display all opponents (0=no override, 1=show all, other value=minimum number of opponents). Only available to Admin. Requires a challenge restart to be taken into account.
-
GetForceShowAllOpponents
-struct GetForceShowAllOpponents()
-Get whether players are forced to show all opponents. The struct returned contains two fields CurrentValue and NextValue.
-
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 synchronized 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 synchronized 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.
-
SetRoundForcedLaps
-boolean SetRoundForcedLaps(int)
-Set a new number of laps for rounds mode (0 = default, use the number of laps from the challenges, otherwise forces the number of rounds for multilaps challenges). Only available to Admin. Requires a challenge restart to be taken into account.
-
GetRoundForcedLaps
-struct GetRoundForcedLaps()
-Get the current and next number of laps for rounds mode. The struct returned contains two fields CurrentValue and NextValue.
-
SetRoundPointsLimit
-boolean SetRoundPointsLimit(int)
-Set a new points limit for rounds mode (value set depends on UseNewRulesRound). 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 (values returned depend on UseNewRulesRound). The struct returned contains two fields CurrentValue and NextValue.
-
SetRoundCustomPoints
-boolean SetRoundCustomPoints(array, boolean)
-Set the points used for the scores in rounds mode. Points is an array of decreasing integers for the players from the first to last. And you can add an optional boolean to relax the constraint checking on the scores. Only available to Admin.
-
GetRoundCustomPoints
-array GetRoundCustomPoints()
-Gets the points used for the scores in rounds mode.
-
SetUseNewRulesRound
-boolean SetUseNewRulesRound(boolean)
-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 (value set depends on UseNewRulesTeam). 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 (values returned depend on UseNewRulesTeam). 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(boolean)
-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.
-
SetCupPointsLimit
-boolean SetCupPointsLimit(int)
-Set the points needed for victory in Cup mode. Only available to Admin. Requires a challenge restart to be taken into account.
-
GetCupPointsLimit
-struct GetCupPointsLimit()
-Get the points needed for victory in Cup mode. The struct returned contains two fields CurrentValue and NextValue.
-
SetCupRoundsPerChallenge
-boolean SetCupRoundsPerChallenge(int)
-Sets the number of rounds before going to next challenge in Cup mode. Only available to Admin. Requires a challenge restart to be taken into account.
-
GetCupRoundsPerChallenge
-struct GetCupRoundsPerChallenge()
-Get the number of rounds before going to next challenge in Cup mode. The struct returned contains two fields CurrentValue and NextValue.
-
SetCupWarmUpDuration
-boolean SetCupWarmUpDuration(int)
-Set whether to enable the automatic warm-up phase in Cup mode. 0 = no, otherwise it's the duration of the phase, expressed in number of rounds. Only available to Admin. Requires a challenge restart to be taken into account.
-
GetCupWarmUpDuration
-struct GetCupWarmUpDuration()
-Get whether the automatic warm-up phase is enabled in Cup mode. The struct returned contains two fields CurrentValue and NextValue.
-
SetCupNbWinners
-boolean SetCupNbWinners(int)
-Set the number of winners to determine before the match is considered over. Only available to Admin. Requires a challenge restart to be taken into account.
-
GetCupNbWinners
-struct GetCupNbWinners()
-Get the number of winners to determine before the match is considered over. The struct returned contains two fields CurrentValue and NextValue.
-
GetCurrentChallengeIndex
-int GetCurrentChallengeIndex()
-Returns the current challenge index in the selection, or -1 if the challenge is no longer in the selection.
-
GetNextChallengeIndex
-int GetNextChallengeIndex()
-Returns the challenge index in the selection that will be played next (unless the current one is restarted...)
-
SetNextChallengeIndex
-boolean SetNextChallengeIndex(int)
-Sets the challenge index in the selection that will be played next (unless the current one is restarted...)
-
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, LapRace, NbLaps and NbCheckpoints.
-
GetNextChallengeInfo
-struct GetNextChallengeInfo()
-Returns a struct containing the infos for the next challenge. The struct contains the following fields : Name, UId, FileName, Author, Environnement, Mood, BronzeTime, SilverTime, GoldTime, AuthorTime, CopperPrice and LapRace. (NbLaps and NbCheckpoints are also present but always set to -1)
-
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. (NbLaps and NbCheckpoints are also present but always set to -1)
-
CheckChallengeForCurrentServerParams
-boolean CheckChallengeForCurrentServerParams(string)
-Returns a boolean if the challenge with the specified filename matches the current server settings.
-
GetChallengeList
-array GetChallengeList(int, int)
-Returns a list of challenges among the current selection of the server. This method take 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 fields : Name, UId, FileName, Environnement, Author, 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 filenames at the end of the current selection. The list of challenges to add is an array of strings. 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 of challenges with the specified filenames 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 challenges the list of challenges with the specified filenames, if they are present in the selection. The list of challenges to choose is an array of strings. 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 challenge 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, int)
-Returns the list of players on the server. This method take two parameters. The first parameter specifies the maximum number of infos to be returned, and the second one the starting index in the list, an optional 3rd parameter is used for compatibility: struct version (0 = united, 1 = forever, 2 = forever, including the servers). The list is an array of PlayerInfo structures. Forever PlayerInfo struct is: Login, NickName, PlayerId, TeamId, SpectatorStatus, LadderRanking, and Flags.
-LadderRanking is 0 when not in official mode,
-Flags = ForceSpectator(0,1,2) + IsReferee * 10 + IsPodiumReady * 100 + IsUsingStereoscopy * 1000 + IsManagedByAnOtherServer * 10000 + IsServer * 100000 + HasPlayerSlot * 1000000
-SpectatorStatus = Spectator + TemporarySpectator * 10 + PureSpectator * 100 + AutoTarget * 1000 + CurrentTargetId * 10000
-
GetPlayerInfo
-struct GetPlayerInfo(string, int)
-Returns a struct containing the infos on the player with the specified login, with an optional parameter for compatibility: struct version (0 = united, 1 = forever). The structure is identical to the ones from GetPlayerList. Forever PlayerInfo struct is: Login, NickName, PlayerId, TeamId, SpectatorStatus, LadderRanking, and Flags.
-LadderRanking is 0 when not in official mode,
-Flags = ForceSpectator(0,1,2) + IsReferee * 10 + IsPodiumReady * 100 + IsUsingStereoscopy * 1000 + IsManagedByAnOtherServer * 10000 + IsServer * 100000 + HasPlayerSlot * 1000000
-SpectatorStatus = Spectator + TemporarySpectator * 10 + PureSpectator * 100 + AutoTarget * 1000 + CurrentTargetId * 10000
-
GetDetailedPlayerInfo
-struct GetDetailedPlayerInfo(string)
-Returns a struct containing the infos on the player with the specified login. The structure contains the following fields : Login, NickName, PlayerId, TeamId, IPAddress, DownloadRate, UploadRate, Language, IsSpectator, IsInOfficialMode, a structure named Avatar, an array of structures named Skins, a structure named LadderStats, HoursSinceZoneInscription and OnlineRights (0: nations account, 3: united account). Each structure of the array Skins contains two fields Environnement and a struct PackDesc. Each structure PackDesc, as well as the struct Avatar, contains two fields FileName and Checksum.
-
GetMainServerPlayerInfo
-struct GetMainServerPlayerInfo(int)
-Returns a struct containing the player infos of the game server (ie: in case of a basic server, itself; in case of a relay server, the main server), with an optional parameter for compatibility: struct version (0 = united, 1 = forever). The structure is identical to the ones from GetPlayerList. Forever PlayerInfo struct is: Login, NickName, PlayerId, TeamId, SpectatorStatus, LadderRanking, and Flags.
-LadderRanking is 0 when not in official mode,
-Flags = ForceSpectator(0,1,2) + IsReferee * 10 + IsPodiumReady * 100 + IsUsingStereoscopy * 1000 + IsManagedByAnOtherServer * 10000 + IsServer * 100000 + HasPlayerSlot * 1000000
-SpectatorStatus = Spectator + TemporarySpectator * 10 + PureSpectator * 100 + AutoTarget * 1000 + CurrentTargetId * 10000
-
GetCurrentRanking
-array GetCurrentRanking(int, int)
-Returns the current rankings for the race in progress. (in team mode, the scores for the two teams are returned. In other modes, it's the individual players' scores) This method take 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 checkpoint times for the best race.
-
GetCurrentRankingForLogin
-array GetCurrentRankingForLogin(string)
-Returns the current ranking for the race in progressof the player with the specified login (or list of comma-separated logins). The ranking returned is a list of structures, that contains the following fields : Login, NickName, PlayerId, Rank, BestTime, Score, NbrLapsFinished and LadderScore. It also contains an array BestCheckpoints that contains the checkpoint times for the best race.
-
ForceScores
-boolean ForceScores(array, boolean)
-Force the scores of the current game. Only available in rounds and team mode. You have to pass an array of structs {int PlayerId, int Score}. And a boolean SilentMode - if true, the scores are silently updated (only available for SuperAdmin), allowing an external controller to do its custom counting... Only available to Admin/SuperAdmin.
-
ForcePlayerTeam
-boolean ForcePlayerTeam(string, int)
-Force the team of the player. Only available in team mode. You have to pass the login and the team number (0 or 1). Only available to Admin.
-
ForcePlayerTeamId
-boolean ForcePlayerTeamId(int, int)
-Force the team of the player. Only available in team mode. You have to pass the playerid and the team number (0 or 1). Only available to Admin.
-
ForceSpectator
-boolean ForceSpectator(string, int)
-Force the spectating status of the player. You have to pass the login and the spectator mode (0: user selectable, 1: spectator, 2: player). Only available to Admin.
-
ForceSpectatorId
-boolean ForceSpectatorId(int, int)
-Force the spectating status of the player. You have to pass the playerid and the spectator mode (0: user selectable, 1: spectator, 2: player). Only available to Admin.
-
ForceSpectatorTarget
-boolean ForceSpectatorTarget(string, string, int)
-Force spectators to look at a specific player. You have to pass the login of the spectator (or '' for all) and the login of the target (or '' for automatic), and an integer for the camera type to use (-1 = leave unchanged, 0 = replay, 1 = follow, 2 = free). Only available to Admin.
-
ForceSpectatorTargetId
-boolean ForceSpectatorTargetId(int, int, int)
-Force spectators to look at a specific player. You have to pass the id of the spectator (or -1 for all) and the id of the target (or -1 for automatic), and an integer for the camera type to use (-1 = leave unchanged, 0 = replay, 1 = follow, 2 = free). Only available to Admin.
-
SpectatorReleasePlayerSlot
-boolean SpectatorReleasePlayerSlot(string)
-Pass the login of the spectator. A spectator that once was a player keeps his player slot, so that he can go back to race mode. Calling this function frees this slot for another player to connect. Only available to Admin.
-
SpectatorReleasePlayerSlotId
-boolean SpectatorReleasePlayerSlotId(int)
-Pass the playerid of the spectator. A spectator that once was a player keeps his player slot, so that he can go back to race mode. Calling this function frees this slot for another player to connect. Only available to Admin.
-
ManualFlowControlEnable
-boolean ManualFlowControlEnable(boolean)
-Enable control of the game flow: the game will wait for the caller to validate state transitions. Only available to Admin.
-
ManualFlowControlProceed
-boolean ManualFlowControlProceed()
-Allows the game to proceed. Only available to Admin.
-
ManualFlowControlIsEnabled
-int ManualFlowControlIsEnabled()
-Returns whether the manual control of the game flow is enabled. 0 = no, 1 = yes by the xml-rpc client making the call, 2 = yes, by some other xml-rpc client. Only available to Admin.
-
ManualFlowControlGetCurTransition
-string ManualFlowControlGetCurTransition()
-Returns the transition that is currently blocked, or '' if none. (That's exactly the value last received by the callback.) Only available to Admin.
-
CheckEndMatchCondition
-string CheckEndMatchCondition()
-Returns the current match ending condition. Return values are: 'Playing', 'ChangeMap' or 'Finished'.
-
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.
-
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.
-
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.
-
-
-
diff --git a/docker-tmserver/tmserver/Logs/ConsoleLog.1352.txt b/docker-tmserver/tmserver/Logs/ConsoleLog.1352.txt
deleted file mode 100644
index 92290ff..0000000
--- a/docker-tmserver/tmserver/Logs/ConsoleLog.1352.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-[2019/05/12 10:20:20] Initializing...
-[2019/05/12 10:20:20] Loading system configuration...
-[2019/05/12 10:20:20] ...ERROR: No configuration file.
-...Could not load the system configuration
-[2019/05/12 10:20:20] Loading cache...
-[2019/05/12 10:20:20] ...OK
-[2019/05/12 10:20:20] Listening for xml-rpc commands on port 5000.
-[2019/05/12 10:20:20] No match settings file
-[2019/05/12 10:20:20] Server not started: no ServerName specified.
-[2019/05/12 10:20:20] Connecting to master server...
-[2019/05/12 10:20:21] ...OK
-[2019/05/12 10:20:21] Identifying on master server...
-[2019/05/12 10:20:21] ...ERROR: invalid login
-[2019/05/12 10:20:21] Please wait, loading...
-[2019/05/12 10:20:23] Server not running, exiting.
-[2019/05/12 10:20:24] Exiting...
diff --git a/docker-tmserver/tmserver/Readme_Dedicated.html b/docker-tmserver/tmserver/Readme_Dedicated.html
deleted file mode 100644
index 2f07e69..0000000
--- a/docker-tmserver/tmserver/Readme_Dedicated.html
+++ /dev/null
@@ -1,891 +0,0 @@
-
-
-
-
- TrackMania Server - readme
-
-
-
-
-
-
-
-
You'll find many useful tools and tutorials on TM-FORUM.
-
-
-
-
-
-
-
1.INSTALLATION:
-
Decompress the zip file in a directory
-to install TrackMania Dedicated Server. It can be installed
-either in the same directory of TMUnited game, or in another
-directory.
-
-
-
Note: In order to run, you need, -
-the server exe - the GameData/DedicatedTrackMania.TrackMania.gbx
-file - any challenges / matchsettings you want to play in the
-GameData/Tracks directory - a dedicated_cfg.txt file to set some
-parameters.
-
-
-
2.LAUNCH:
-
The dedicated server can be run from a
-windows shortcut or from a command line prompt.
-If you use a windows shortcut, you can modify its properties to
-configure the launch of the server on the same way. The target of
-the shortcut properties (first field) shares the same format of the
-command line. So it will eventually have to look like this:
-The working directory of the shortcut must also be set to the right
-directory. It must correspond to the directory where
-TrackManiaServer.exe has been installed.
-
-
-
The dedicated server can be launched
-with or without a configuration file. To pass the name of the
-configuration file to the dedicated server, the parameter
-'/dedicated_cfg=' must be specified followed by the name of
-the file. This filename can be defined either by an absolute path
-or by a relative path to the '(PATH)\GameData\Config'
-directory. The configuration file is an xml file which defines
-some basic parameters for the dedicated server. See below for
-further details on configuration file.
-
-
-
A file containing game settings can
-also be specified to the dedicated server. To do that the
-parameter '/game_settings=' must be defined followed by the
-name of the file. This filename can be defined either by an
-absolute path or by a relative path to the '(PATH)\GameData\Tracks'
-directory. The game settings file is an xml file which defines the
-match settings and a playlist of challenge that will be loaded. See
-below for further details on game settings file.
-
-
-
If the server has been launched with a
-valid configuration file and a valid game settings file, it will
-directly start a new server on lan, or on Internet if the option
-'/internet' is specified.
-
-
-
-
TrackManiaServer can be launched
-at the same time that the retail version of TMUnited, but they cannot
-share TCP and UDP ports. That's why it is recommended to launch
-the dedicated server before the game, so the dedicated server can use
-the default ports.
-
-
-
Other options that can be specified to
-the dedicated server, are:
-
-
-
-
-
-
-
/dedicated_cfg=config_file
-
-
-
Specify a configuration file to use.
-
-
-
-
-
-
-
/game_settings=settings_file
-
-
-
Specify a game settings file to use.
-
-
-
-
-
/internet
-
-
-
-
Specify to the server that it must connect to the master
- server, in order to be an Internet server.
-
-
-
-
-
/verbose_rpc
-
-
-
-
Display the XmlRpc requests the
- dedicated server receives.
-
The server will only display the name of the XmlRpc command
- and some parameters.
-
-
-
-
-
/verbose_rpc_full
-
-
-
-
Display the whole contents of the XmlRpc requests the
- dedicated server receives.
-
-
-
-
-
/nodaemon
-
-
-
(linux) Doesn't detach the process.
-
-
-
-
-
/nologs
-
-
-
disable the creation of "GameLog.txt" and
- "ConsoleLog.txt"
-
-
-
-
-
/login=xxx
-
-
-
Masterserver account (overrides the value from the
- config_file)
-
-
-
-
-
/password=xxx
-
-
-
Masterserver account (overrides the value from the
- config_file)
-
-
-
-
-
/servername=xxx
-
-
-
name of the server to create. (overrides the value from the
- config_file)
-
-
-
-
-
/serverpassword=xxx
-
-
-
-
password to join the server. (overrides the value from the
- config_file)
-
-
-
-
-
/loadcache
-
-
-
loads the "checksum.txt" instead of recomputing it.
- *DO NOT USE* if you run several servers in the same directory!
-
-
-
-
-
/forceip=xxx(:xx)
-
-
-
Forces the public ip address to this value (overrides the
- value force_ip_address from the config_file)
-
-
-
-
-
/bindip=xxx(:xx)
-
-
-
Choses the ip to bind to, and sets the public ip to this
- value. (you still can use /forceip to chose a different public
- ip)
-
-
-
-
-
/autoquit
-
-
-
If the server is not "live" (with a map loaded and
- ready to receive player), exit. Most notably, if there is a
- configuration error that prevent the server to be successfully
- launched, quit instead of staying in the "waiting for rpc
- commands" state.
-
-
-
-
-
-
-
3.CONTROL:
-
After being launched (with or without
-configuration files), the server can be also configured and
-controlled by rpc calls. (rpc= remote procedure call) An external
-application can use any xmlrpc library to communicate with the
-dedicated server.
-
-
-
Some calls are only permitted to
-certain authorization level. There are three authorization levels
-(User, Admin and SuperAdmin), each one having
-an associated password (by default the same as the level name). The
-'Authenticate' method can be used to switch to a specified
-level.
-
-
-
The list of methods that can be called
-by xmlrpc can be found in the ListMethods.html file.
-
-
-
Some samples are available in the
-RemoteControlExamples/ directory:
-
Please
-note that the examples provided are rather outdated. More
-up to date and actually useful applications to control the TrackMania
-Server, can be found on http://www.tm-forum.com/
-.
-
-
-
- In
-RemoteControlExamples/PhpRemote/ there is a basic.php
-script file that allows basic control of the dedicated server. To
-use it, a web server must be installed on the same computer as the
-Trackmania server. Any web server supporting PHP can be used, as
-the free web server Apache (www.apache.org)
-or EasyPHP a software package including Apache, PHP and MySQL
-(www.easyphp.org).
-
-
-
- In
-RemoteControlExamples/GameController.Net/ This is aimed at
-developers. It contains a slightly modified version (that supports
-connecting to TrackMania) of the Xml-RPC.Net library, from
-http://www.xml-rpc.net
-
-
-
-
- In
-RemoteControlExamples/c/xmlrpc-c This is aimed at
-developers, it is the XmlRPC-c v1.03.11 library modified to support
-connecting to TrackMania. (from http://xmlrpc-c.sourceforge.net/
-) It also includes examples/xmlrpc_sample_trackmania.c : a
-small example of how to use the library, including a simple version
-and a more complete example with callbacks from the game.
-
4.CONFIGURATION FILE:
-
The configuration file is an xml file
-which defines some parameters like the system configuration of server
-(IP address, ports...), passwords for the three authorization
-levels, The master server account parameters that can be used for
-the launch of the dedicated server on Internet, and other server
-parameters (name, comment, password, max players/spectators...).
-
-
-
You can find an example of
-configuration file (dedicated_cfg.txt) in the TrackManiaServer
-root directory. Here is what it contains by default:
<xmlrpc_port>5000</xmlrpc_port> <xmlrpc_allowremote>False</xmlrpc_allowremote> <!-- If you specify an ip adress here, it'll be the only accepted adress. this will improve security. -->
The first block of parameters
-(<authorization_levels>...</authorization_levels>)
-allows to define passwords for the three authorization levels.
-
-
-
SuperAdmin has all rights
- on the dedicated server. It can call any request, start and stop
- server, quit the application. It is recommended to change this
- password, and to not give it to any other person.
-
Admin can be used to manage
- a launched server, but cannot neither stop or start server, nor quit
- the application. Admin password can be given to a group of users to
- facilitate the remote management of a dedicated server.
-
User can only access to
- 'get' requests, so it is not necessary to change this password.
-
-
-
-
-
The second block of parameters
-(<masterserver_account>...</masterserver_account>)
-is used for the connection to master server of the dedicated
-server. To allow the server to connect to master server, a login
-and password, that identify the dedicated server, must be specified.
There you must enter your multiplayer
-key to connect to the account creation site.
-
After that, you can create/modify
-accounts for dedicated server.
-
-
-
Game player accounts and dedicated
-server accounts are distinct.
-
The login and password of a game player
-account can also be used in the 'masterserver_account' block,
-instead of parameters from a dedicated server account. But in this
-case the player cannot connect to Internet with his game, because his
-account is already used by the dedicated server.
-
-
-
-
-
The third block of parameters
-(<server_options>...</server_options>) defines the
-main parameters that will be used by the dedicated server. The
-settings are :
-
-
-
-
-
-
-
-
name
-
-
-
name of the dedicated server (must be specified for the game
- to launch)
-
-
-
-
-
-
-
comment
-
-
-
comment of the dedicated server
-
-
-
-
-
password
-
-
-
password needed at the connection to the dedicated server as
- player
-
-
-
-
-
password_spectator
-
-
-
password needed at the connection to the dedicated server as
- spectator
-
-
-
-
-
max_players
-
-
-
maximum number of clients that can join the server as player
-
-
-
-
-
max_spectators
-
-
-
maximum number of clients that can join the server as
- spectator
-
-
-
-
-
ladder_mode
-
-
-
ladder mode. The mode can be defined between these values :
- 'inactive' (0), and 'forced' (1)
-
-
-
-
-
enable_p2p_upload
-
-
-
value indicating if the server can upload custom data for P2P
- (0=False, 1=True)
-
-
-
-
-
enable_p2p_download
-
-
-
value indicating if the server can download custom data for
- P2P (0=False, 1=True)
-
-
-
-
-
callvote_timeout
-
-
-
timeout for waiting for votes (value in milliseconds)
-
-
-
-
-
callvote_ratio
-
-
-
ratio for accepting callvote. The value must lie between 0 and
- 1 (0=0%, 1=100%)
-
-
-
-
-
allow_challenge_download
-
-
-
value indicating if the server allows clients to download
- challenge (0=False, 1=True)
-
-
-
-
-
autosave_replays
-
-
-
value indicating if the server should save all the races
- replays with all players. (the replays are quite low quality,
- though)
-
-
-
-
-
-
-
-
-
The fourth block of parameters
-(<system_config>...</system_config>) defines the
-system configuration of the server. For example it allows to
-define the type of network connection used, the different ports used
-by the dedicated server, or an IP that will be published on the
-master server. The settings are :
-
-
-
-
-
-
-
connection_uploadrate / connection_downloadrate
-
-
-
type of network connection used. It defines the network
- limitations of bandwidth in KBps that can be used by the
- dedicated server,
-
-
-
-
-
-
-
server_port
-
-
-
port number used by the server to listen the game connections
-
-
-
-
-
server_p2p_port
-
-
-
port number used by the server to listen the peer-to-peer
- connections
-
-
-
-
-
xmlrpc_port
-
-
-
port number used by the server to listen xmlrpc calls
-
-
-
-
-
xmlrpc_allowremote
-
-
-
should remote connections be
- accepted?
-
-
You can either set it to True or
- False, or specify an ip (or a symbolic name): in that case, only
- connections from that ip and localhost will be accepted.
-
-
(note: security on this channel isn't very strong and hasn't
- been thoroughly tested)
-
-
-
-
-
force_ip_address
-
-
-
if an IP address is defined in this parameter, the dedicated
- server will publish it as its public address instead of
- autodetecting it.
-
-
-
-
-
bind_ip_address
-
-
-
if an IP address is defined in this parameter, the dedicated
- server will bind to this ip and publish it as public ip, expect
- if force_ip_address is also specified.
-
-
-
-
-
blacklist_url
-
-
-
if an url is specified here, the dedicated server will check
- if there is an xml file that can be downloaded, and in this case
- if it's a blacklist file. If it is the case this blacklist will
- automatically loaded for this server
-
-
-
-
-
-
-
5.GAME SETTINGS FILE:
-
A game settings file is an xml file
-which defines the match settings like chat time, game mode, mode
-parameters, and a playlist of challenges that will be loaded.
-
-
You can find examples of game
-settings files in the (PATH)\GameData\Tracks\MatchSettings\
-directory, and you can save one from within the game, “save
-settings” button.
The first block of parameters
-(<gameinfos>...</gameinfos>) defines the match
-settings that will be used by the dedicated server. The settings
-are :
-
-
-
-
-
-
-
-
game_mode
-
-
-
game mode used between Rounds (0), TimeAttack (1), Team (2),
- Laps (3) and Stunts (4)
-
-
-
-
-
-
-
chat_time
-
-
-
chat time value in milliseconds
-
-
-
-
-
rounds_pointslimit
-
-
-
points limit for rounds mode
-
-
-
-
-
rounds_usenewrules
-
-
-
value indicating if new rules are used for rounds mode
- (0=False, 1=True)
-
-
-
-
-
timeattack_limit
-
-
-
time limit in milliseconds for time attack mode
-
-
-
-
-
team_pointslimit
-
-
-
-
points limit for team mode
-
-
-
-
-
team_maxpoints
-
-
-
-
number of maximum points per round for team mode
-
-
-
-
-
team_usenewrules
-
-
-
value indicating if new rules are used for team mode (0=False,
- 1=True)
-
-
-
-
-
laps_nblaps
-
-
-
number of laps for laps mode
-
-
-
-
-
laps_timelimit
-
-
-
time limit in milliseconds for laps mode
-
-
-
-
-
finish_timeout
-
-
-
new finish timeout (for rounds/laps mode) value in
- milliseconds. 0 means default. 1 means adaptative to the duration
- of the challenge
-
-
-
-
-
rounds_forcedlaps
-
-
-
number of laps for rounds mode (0 = default, use the number of
- laps from the challenges, otherwise forces the number of rounds
- for multilaps challenges)
-
-
-
-
-
timeattack_synchstartperiod
-
-
-
synchronised start period for time attack mode
-
-
-
-
-
-
-
-
-
<random_map_order>..</random_map_order>
-: shuffle the list of challenges when the playlist is loaded. if not
-set, keep the playlist in the specified order.
-
Other blocks
-(<challenge>...</challenge>) describe all the
-challenges that will be loaded by the dedicated server. Each block
-specifies the filename of a challenge. Filenames can be defined
-either by an absolute path or by a relative path to the
-'(PATH)\GameData\Tracks' directory.
-
-
-
Any other elements in the file are
-ignored by the dedicated server.
-
Game settings file can be saved by the
-game with the 'save match settings' button in the server creation
-menu, after having selected the maps. The files saved by the game
-are in the '(PATH)\GameData\Tracks\MatchSettings'
-directory. So the relative designation for a such file is
-'MatchSettings/settings_file.txt', where 'settings_file.txt'
-is the name of the saved file.
-
As a general rule, the challenges and
-matchsettings must always be in the directory "GameData/Tracks",
-and any relative name is interpreted using the "GameData/Tracks"
-as root.
-
-
-
6.GUESTLIST FILE:
-
A guestlist file "guestlist.txt"
-can be created in the GameData repertory, and will be automatically
-loaded by the game or server. A player on the guest list is
-allowed to enter into the server in any case, even if there is no
-player slot left, and without needing to specify the password.
A blacklist file "blacklist.txt"
-can be created in the GameData repertory, and will be automatically
-loaded by the game or server. A player on the black list will
-never be able to enter onto the server.
- On the command you can't use names
-with ' ' in them, since the options are separated on whitespace, and
-no escaping (neither '\ ' nor '"') is supported... - (linux
-only) the server expects the file names to be utf-8 encoded. So pay
-attention if you're using non-ascii characters.
-
9.CHANGELOG
-
2007-02-23:
-- bugfix: no longer autoban players in timeattack with multilaps...
-- bugfix: repaired the stunts mode scores.
-- bugfix: the replays produced by the server are no longer broken.
-
-
2007-02-20:
-- The server now reattemps to connect to the master server when the connection is broken. (should fix the problem where the server was runnning and wasn't in the list for the players.)
-- Detection of incoherence in the players time and race -> automatic ban of the player.
-- New callback TrackMania.PlayerIncoherence(PlayerUid, PlayerLogin) for this event
-- Modification of ForceScores(): new parameter SilentMode (only available for SuperAdmin), allowing an external controller to do it's custom score counting.
-
-
2007-01-09: - GetVersion()
-now returns "TmUnited" instead of "TmUnited." -
-GetSystemInfo() call, returns IP, ports, and server login - fixed
-a crash - AllowChallengeDownload() is now applied during the game.
- - faster launchtime (the "loading..." step was doing
-useless work) - When removing a challenge and inserting it back
-again, it is now read afresh from disk.
-- When saving a matchsetting, the filter::random_map_order is remembered.
-
-
-
2006-12-21: - setting, in
-order to save all replays occuring on the server. (albeit in low
-quality.) - GetCoppers() call - bugfixes (crash, Pay() return
-code, ...)
-
-
-
2006-12-07: - Billing system,
-to make copper transactions with players. (=> SendBill(), Pay(),
-GetBillState() ) - ChatSendToLanguage(),
-ChatSendServerMessageToLanguage() - ForceSpectator(),
-ForceSpectatorId() - ForcePlayerTeam(), ForcePlayerTeamId() -
-BlackListId(), AddGuestId(), RemoveGuestId() -
-DisplayManialinkPage: you can now add a parent <ManiaLinks>
-element in order to have several <ManiaLink> with their
-positions. - Sending Chat to a player also displayed the chat to
-the spectators looking at him. - GetManialinkPageAnswers() no
-longer crashes. - You can now display ManialinkPages to each
-players, and get all the answers.. - Sometimes the name of the
-challenge was incorrect. - the server can now act as a P2P relay,
-if the peers don't accept incomming connections.
-
-
diff --git a/docker-tmserver/tmserver/tmserver b/docker-tmserver/tmserver/tmserver
deleted file mode 100755
index 9f4de94..0000000
--- a/docker-tmserver/tmserver/tmserver
+++ /dev/null
@@ -1,260 +0,0 @@
-#!/bin/bash
-#
-# entrypoint script for trackmania server
-#
-# Maintainer : Hendrik Boll
-# Github : ryluth
-#
-##############################################
-
-TMDIR="${TMDIR:-/opt/tmserver}"
-ASECODIR="${ASECODIR:-/opt/xaseco}"
-GAME_SETTINGS="${GAME_SETTINGS:-MatchSettings/default.txt}"
-DEDICATED_CFG="${DEDICATED_CFG:-default.txt}"
-
-set -e
-
-if [[ "$1" = "start" && "$(id -u)" = "0" ]]
-then
- chown -R trackmania:trackmania /opt/tmserver
- chown -R trackmania:trackmania /opt/xaseco
- su trackmania "$0" "$@"
-fi
-
-case "$1" in
- start)
- case "$2" in
- tmserver)
- cd $TMDIR
- if [[ -e tmserver.pid ]]
- then
- if ( kill -0 $(cat tmserver.pid) 2> /dev/null )
- then
- echo "The server is already running, try restart or stop."
- exit 1
- else
- echo "tmserver.pid found, but no server running. The server possibly crashed."
- echo "Please review the log files."
- rm tmserver.pid
- fi
- fi
- if [[ "$(id -u)" = "0" ]]
- then
- echo "WARNING! For security reasons i don't advise to run the server as ROOT!"
- fi
- echo "Starting the Trackmania server"
- if [[ -e "./TrackmaniaServer" ]]
- then
- if [[ ! -x "./TrackmaniaServer" ]]
- then
- echo "TrackmaniaServer is not executable, trying to set +x"
- chmod u+x "./TrackmaniaServer"
- fi
- if [[ -x "./TrackmaniaServer" ]]
- then
- cd $ASECODIR
- if [[ -e aseco.pid ]]
- then
- echo "Stopping Xaseco in case it was running."
- echo "Xaseco cannot be running when starting the Trackmania server."
- "$0" "stop" "xaseco"
- fi
-
- cd $TMDIR
- ./TrackmaniaServer /nodaemon /internet /game_settings=${GAME_SETTINGS} /dedicated_cfg=${DEDICATED_CFG} &
- PID=$!
- ps -p ${PID} > /dev/null 2>&1
- if [[ "$?" -ne "0" ]]
- then
- echo "Trackmania server could not start"
- else
- echo "Trackmania server started"
- echo ${PID} > tmserver.pid
- sleep 3
- echo "Starting Xaseco now."
- "$0" "start" "xaseco"
- fi
- else
- echo "Trackmania server binary is not executable, cannot start the server."
- fi
- else
- echo "Cannot find the Trackmania executable"
- exit 5
- fi
- ;;
- xaseco)
- cd $ASECODIR
- if [[ -e aseco.pid ]]
- then
- if ( kill -0 $(cat aseco.pid) 2> /dev/null )
- then
- echo "Xaseco is already running."
- exit 1
- else
- echo "aseco.pid found but no server running. Aseco possibly crashed."
- echo "Please review the log files."
- rm aseco.pid
- fi
- fi
- if [[ "$(id -u)" = "0" ]]
- then
- echo "WARNING! For security reasons i don't advise to run the server as ROOT!"
- fi
- echo "Starting the Xaseco service"
- if [[ -e "./aseco.php" ]]
- then
- php ./aseco.php TMF aseco.log 2>&1 &
- PID=$!
- ps -p ${PID} > /dev/null 2>&1
- if [[ "$?" -ne "0" ]]
- then
- echo "Xaseco could not start"
- else
- echo "Xaseco started. Please test the functionality ingame."
- echo "In certain cases Xaseco is unable to integrate into the game."
- echo "If the features are not loaded consider restarting both services"
- echo ${PID} > aseco.pid
- fi
- else
- echo "Canot find the Xaseco executable"
- exit 5
- fi
- ;;
- *)
- echo "Usage : ./tmserver.sh start {tmserver|xaseco}"
- exit 2
- esac
- ;;
- stop)
- case "$2" in
- tmserver)
- cd $TMDIR
- if [[ -e tmserver.pid ]]
- then
- echo -n "Stopping the Trackmania server"
- if ( kill -TERM $(cat tmserver.pid) 2> /dev/null )
- then
- c=1
- while [[ "$c" -le 120 ]]
- do
- if (kill -0 $(cat tmserver.pid) 2> /dev/null)
- then
- echo -n "."
- sleep 1
- else
- break
- fi
- c=$(($c+1))
- done
- fi
- if ( kill -0 $(cat tmserver.pid) 2> /dev/null )
- then
- echo "Server is not shutting down cleanly - killing the process"
- kill -KILL $(cat tmserver.pid)
- else
- echo "done"
- fi
- rm tmserver.pid
- echo "Shutting down Xaseco aswell. If it crashed by this point, at least i am cleaning up now..."
- "$0" "stop" "xaseco"
- else
- echo "No server is running"
- exit 7
- fi
- ;;
- xaseco)
- cd $ASECODIR
- if [[ -e aseco.pid ]]
- then
- echo -n "Stopping the Xaseco service"
- if ( kill -TERM $(cat aseco.pid) 2> /dev/null )
- then
- c=1
- while [[ "$c" -le 120 ]]
- do
- if (kill -0 $(cat aseco.pid) 2> /dev/null )
- then
- echo -n "."
- sleep 1
- else
- break
- fi
- c=$(($c+1))
- done
- fi
- if (kill -0 $(cat aseco.pid) 2> /dev/null )
- then
- echo "Xaseco is not shutting down cleanly - killing the process"
- kill -KILL $(cat aseco.pid)
- else
- echo "done"
- fi
- rm aseco.pid
- else
- echo "Xaseco isn't running"
- exit 7
- fi
- ;;
- *)
- echo "Usage: ./tmserver stop {tmserver|xaseco}"
- exit 2
- esac
- ;;
- restart)
- case "$2" in
- tmserver)
- cd $TMDIR
- $0 stop tmserver && $0 start tmserver || exit 1
- ;;
- xaseco)
- cd $ASECODIR
- $0 stop xaseco && $0 start xaseco || exit 1
- ;;
- *)
- echo "Usage : ./tmserver restart {tmserver|xaseco}"
- exit 2
- esac
- ;;
- status)
- case "$2" in
- tmserver)
- cd $TMDIR
- if [[ -e tmserver.pid ]]
- then
- if (kill -0 $(cat tmserver.pid) 2> /dev/null )
- then
- echo "Trackmania server is up and running."
- echo "In case of connectivity problems, try restarting your client"
- echo "If nothing helps use ./tmservser restart tmserver"
- else
- echo "The server might have crashed (tmserver.pid exists but the process is not reachable)"
- fi
- else
- echo "No server is currently running"
- fi
- ;;
- xaseco)
- cd $ASECODIR
- if [[ -e aseco.pid ]]
- then
- if (kill -0 $(cat aseco.pid) 2> /dev/null )
- then
- echo "Xaseco is up and running."
- echo "In case of missing features ingame, try restarting the whole server."
- echo "Use ./tmserver restart tmserver"
- else
- echo "Xaseco might have crashed (aseco.pid exists but the process is not reachable)"
- fi
- else
- echo "Xaseco is currently not running"
- fi
- ;;
- *)
- echo "Usage : ./tmserver status {tmserver|xaseco}"
- exit 2
- esac
- ;;
- *)
- echo "Usage: ./tmserver {start|stop|restart|status} {tmserver|xaseco}"
-esac
-exit 0
diff --git a/docker-xaseco/Dockerfile b/docker-xaseco/Dockerfile
deleted file mode 100644
index 56f8ecb..0000000
--- a/docker-xaseco/Dockerfile
+++ /dev/null
@@ -1,17 +0,0 @@
-FROM fanyx/php
-
-RUN mkdir /opt/xaseco
-
-COPY xaseco/ /opt/xaseco/
-COPY ./entrypoint-xaseco.sh /
-
-RUN apt update \
- && apt upgrade -y
-RUN groupadd trackmania
-RUN useradd -M -g trackmania trackmania
-RUN chown -R trackmania:trackmania /opt/xaseco
-RUN chown trackmania:trackmania /entrypoint-xaseco.sh
-
-USER trackmania
-WORKDIR /opt/xaseco
-CMD ["/entrypoint-xaseco.sh"]
diff --git a/docker-xaseco/entrypoint-xaseco.sh b/docker-xaseco/entrypoint-xaseco.sh
deleted file mode 100755
index 230ea0e..0000000
--- a/docker-xaseco/entrypoint-xaseco.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-#
-
-set -e
-
-# Sleep for 30 seconds to wait for trackmania server
-sleep 30
-
-
-if [[ -e /etc/xaseco/env ]]
-then
- . /etc/tmserver/env
-fi
-
-# Evaluate the available environment variables
-if [[ -z "${MASTERADMIN_LOGIN}" ]]
-then
- echo "No ingame MasterAdmin was specified."
- MASTERADMIN_LOGIN="_placeholder_"
-fi
-if [[ -z "${SERVER_SA_PASSWORD}" ]]
-then
- echo "No SuperAdmin password was specified. Xaseco cannot build a connection without this information."
- exit 9
-fi
-if [[ -z "${DB_HOST}" ]]
-then
- echo "No database host was specified. Defaulting to 'db' for docker-compose configuration."
- DB_HOST="db"
-fi
-if [[ -z "${DB_LOGIN}" ]]
-then
- echo "No database user was specified. Defaulting to 'trackmania' for docker-compose configuration."
- DB_LOGIN="trackmania"
-fi
-if [[ -z "${DB_LOGIN_PASSWORD}" ]]
-then
- echo "No database user password was specified. Please configure."
- echo "The database connection cannot be established otherwise."
-fi
-if [[ -z "${DB_NAME}" ]]
-then
- echo "No database was specified. Defaulting to 'trackmania' for docker-compose configuration."
- DB_NAME="trackmania"
-fi
-
-#Evaluation over
-#Commencing substition in config files
-
-#Xaseco Files
-
-sed -i -e "s/--\$MASTERADMIN_LOGIN--/$MASTERADMIN_LOGIN/" \
- -e "s/--\$SERVER_SA_PASSWORD--/$SERVER_SA_PASSWORD/" \
- /opt/xaseco/config.xml
-sed -i -e "s/--\$DB_HOST--/$DB_HOST/" \
- -e "s/--\$DB_LOGIN--/$DB_LOGIN/" \
- -e "s/--\$DB_LOGIN_PASSWORD--/$DB_LOGIN_PASSWORD/" \
- -e "s/--\$DB_NAME--/$DB_NAME/" \
- /opt/xaseco/localdatabase.xml
-
-exec "php" "opt/xaseco/aseco.php" "TMNF" "aseco.log" "2>&1"
diff --git a/docker-xaseco/xaseco/Aseco.sh b/docker-xaseco/xaseco/Aseco.sh
deleted file mode 100644
index ce78be1..0000000
--- a/docker-xaseco/xaseco/Aseco.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-php aseco.php TMN aseco.log 2>&1 &
-echo $!
diff --git a/docker-xaseco/xaseco/DOCS/Features_080.html b/docker-xaseco/xaseco/DOCS/Features_080.html
deleted file mode 100644
index b66204d..0000000
--- a/docker-xaseco/xaseco/DOCS/Features_080.html
+++ /dev/null
@@ -1,208 +0,0 @@
-
-
-
-TrackMania Nations - ASECO/RASP new features v0.8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
New features and other changes in the v0.8 release of ASECO/RASP:
-
-
-
FAST-like records handling:
- with every new/improved record, players see the old place and the time difference compared to their old record
-
-
show secured records (incremental improvements of the same place) and equaled records to all players
-
-
FAST-like record reports:
- before each track (optionally) show the places & times of the first 8 (configurable) players, along with those of all other online players;
- after each track show the places & times of the first 8 (configurable) players, along with any new/improved records, and the total count of new/improved records;
- also, all online players are shown in italics
-
-
the record report before a track is also shown to a newly connecting player
-
-
enhanced /recs command to display all records (paginated) on current track, not just the first 5
-
-
new /newrecs command to show newly driven records so far on current track
-
-
new /liverecs command to show the top-6 (configurable) records and records of online players on the current track, whether new or not
-
-
new /firstrec and /lastrec commands to quickly show the best and worst ranked records on a track (without browsing /recs)
-
-
new /diffrec command to quickly show the time difference between your /pb and the /firstrec on a track
-
-
new /nextrec command to quickly show the next better ranked record (compared to your /pb) to beat on a track
-
-
new /recrange command to show the time difference between the first and last ranked records on a track
-
-
FAST-like rounds reports:
- after each run show the places & times of the first 8 (configurable) players, and just the places of the rest;
- new/improved records are highlighted and always shown with the time
-
-
created an EndRound event in the events handling for the aforementioned rounds reports
-
-
connect new player message (via Jfreu plugin) enhanced to show nation, ladder rank & server rank
- (also, if connecting player is an admin, show 'Admin' instead of 'New Player')
-
-
new /list options to complement /list nofinish:
- /list norank displays all tracks the player finished but doesn't have a ranked record on
- /list nogold displays all tracks the player finished but didn't beat the Gold time on
-
-
new /jukebox display option to display tracks & requesters in a pop-up
-
-
new /jukebox drop option to allow a player to drop his/her track in order to jukebox a different one
-
-
new /jukebox help option to display all jukebox facilities
-
-
new /best & /worst commands allowing players to display their records sorted in best or worst order
-
-
new /summary command to show the total number of ranked records, and the top 3 of the best ones
-
-
new /toprecs command to display the top-100 of players with the most ranked records
-
-
/top5 command replaced by /top10 command, and new /top100 command added to display the server ranks of many more players than just the first 5
-
-
enhanced /stats command to display lots more details about the player (supersedes /infos command from Jfreu plugin)
-
-
moved Jfreu's /write_list command functionality to /jfreu writelists
-
-
new /server command to display lots of details about the server, including the admin contact
- (if you'd like to display more contact details, better use slly's chat.contact.php plugin)
-
-
new /nations command to display the top-10 nations with the most visiting players
-
-
new /ranks command to display the server ranks of all online players
-
-
new /clans command to display which clans all online players belong to
-
-
new /topclans command to display top-10 of all clans (determined by averaging the ranks of all players in each clan)
-
-
new /wins command to quickly show the player's win count
-
-
new /topwins command to display the top-100 of players with the most wins
-
-
new /active command to display the top-100 players that spent the most time on the server
-
-
new /track command to show details about the current track
-
-
new /history command to show the 10 most recently played tracks
-
-
new /playtime command to show the time the current track has been playing
-
-
optional showing of total playtime at the end of the track (only in Rounds & Team modes - playtime is fixed in Time Attack & Laps)
-
-
new /time command to show the current time and date on the server
-
-
new /bootme command so the player can leave (kick himself) without using the Escape menu
-
-
/msg command renamed to /pm (private message) and updated to show who's sending the message to whom
-
-
new /pma command so an admin can send private message to a player and also to all other online admins (ie. like carbon-copy in mails)
-
-
new admin command: /admin pm to send private message from one admin to all other online admins
-
-
enhancement of /players command: now shows column of player IDs, which can subsequently be used with /pm (for all users) and /pma (for admins) instead of logins (which are sometimes hard to type);
- also shows Nations of all players
-
-
added shortcuts for common admin commands:
- /admin nextmap or /admin next
- /admin restartmap or /admin res
- /admin cancel or /admin can
- /admin clearjukebox or /admin cjb
-
-
new admin command: /admin endround (or shortcut /admin er) forces end of a round without restarting the whole track
-
-
new admin command: /admin replaymap (or shortcut /admin replay) to requeue the current track at the start of the jukebox so it will play again, after it ends and ladder points have been awarded
-
-
new admin command: /admin dropjukebox # (shortcut /admin djb) to drop any track from the jukebox
-
-
new admin commands: /admin showbanlist and /admin showblacklist to display the lists of banned and blacklisted player(s)
-
-
new admin commands: /admin writeblacklist and /admin readblacklist to write/read the player blacklist to/from disk
-
-
enhancement of /admin warn, /admin kick, /admin ban & /admin black to accept player IDs from /players command
-
-
new admin command: /admin kickghost to kick a partially disconnected player without checking for valid login (doesn't work with player ID)
-
-
enhancement of /admin warn,kick,kickghost,ban,black,er,res,next,can,cjb commands to show nickname of the admin performing them
-
-
more admin powers for the jukebox: admins can jukebox a track that was recently played (players have to wait until it expires from the track history), and admins can add multiple tracks (players can add only one)
-
-
other admin powers: admin can use player logins or IDs with /stats, /best, /worst, /summary
-
-
new option $allowpublickarma to disable public karma votes (so that only /++ and /-- work)
-
-
new option $feature_jukebox to disable actual jukebox-ing of tracks, while leaving /list enabled (as long as plugin remains included)
-
-
new option $jukebox_skipleft to enable skipping of a jukebox-ed track after its requester left
-
-
new option $prune_records_times to enable pruning at start-up of records/rs_times for deleted tracks (recommended so they don't clutter up the /best & /worst lists)
-
-
new option to log all player chat, not just use of chat commands
-
-
various other logging enhancements
-
-
enhanced Idle-kick plugin by Mistral: kicks AFK players after two tracks, except speccers (configurable)
-
-
tracks downloaded from TMX are saved by track name, not TMX ID
-
-
new general chat commands: /gr, /bgm, /thx, /brb, /afk
-
-
new /helpall command to display complete paginated help overview of all commands, and also pagination of /admin help & /jfreu help
-
-
numerous cosmetic tweaks, e.g. consistent formatting of all messages to players, and improved contrast in all pop-ups
-
-
improved stripColors function based on Bilge/AM's TMU stripFormatting function
-
-
many bug fixes, e.g. in /list help, the original records handling, in /nextmap, player connects, and more (see below)
-
-
numerous code optimizations and layout tweaks, including a consistent Tab-based layout that's customizable with vim's modeline settings while preserving correct indentation throughout the entire code base
-
-
Jfreu's up-to-date check at start-up is disabled due to timeouts on the link
-
-
Jfreu's childish /fake command has been disabled ;) as well as the non-functional /password command
-
-
-
Bug fixes in the v0.8 release of ASECO/RASP:
-
-
-
player connect: very rarely a player connects to the server but the player data is not received in ASECO, resulting in a sort of zombie player. Despite several different approaches, this couldn't be fixed. So instead, to prevent further problems for such a player (like records not being stored), an explanation is displayed (in chat and pop-up) and the player is kicked in order to re-join.
-
-
/players <string>: using a string with the /players command allows you to search for a specific player with that string in the login and/or nickname. This string didn't match if it occurred at the beginning of the player's login/nickname – fixed.
-
-
/list help: after using /list help, further /list commands would not always work properly – fixed.
-
-
/nextmap: this didn't work if the current track was the last one in the set, and for servers with more than 300 tracks if the current track was beyond that 300th track – fixed.
-
-
minimum records: the minimum number of ranked records required for a server rank was actually $minrecs+1 instead of $minrecs – fixed
-
-
special characters: very rarely a player nickname contains a special character that could prevent it from being stored into the database – fixed by consistently quoting all strings sent to the database
-
-
records: messages about new records were inconsistent ("claimed", "took") – fixed.
-
-
server messages: inconsistent indications whether a server message was broadcast to all players or sent to one – fixed, all broadcasts start with ">>" and all messages to the player with ">".
-
New features and other changes in the v0.95 release of ASECO/RASP:
-
-
-
new Dedimania world records support (derived from FAST) with the following features:
-
-
Dedimania is an online World Records database for all TrackMania games with the official site at http://www.dedimania.com/ and its records database at http://www.dedimania.com/tmstats/?do=stat ; it maintains 30 records for each track in any game (TMO/TMS/TMN/TMU) and any mode (TimeAttack, Rounds, Team, Laps)
-
-
the Dedimania system consists of two new plugins: plugin.dedimania.php which handles all communication with the central Dedimania server (together with new includes GbxRemote.response.php, xmlrpc_db.inc.php, web_access.inc.php and urlsafebase64.php) and keeps track of new records, and chat.dedimania.php which provides a variety of commands to show records and their relations on the current track
-
-
the following new commands are available for Dedimania world records, analogous to the existing local records commands:
-
-
/helpdedi: Displays info about the Dedimania records system (alias: /dedihelp)
-
/dedirecs: Displays all Dedimania records on current track
-
/dedinew: Shows new Dedimania records on current track
-
/dedilive: Shows Dedimania records of online players
-
/dedipb: Shows your Dedimania personal best on current track
-
/dedifirst: Shows first Dedimania record on current track
-
/dedilast: Shows last Dedimania record on current track
-
/dedinext: Shows next better Dedimania record to beat
-
/dedidiff: Shows your difference to first Dedimania record
-
/dedirange: Shows difference first to last Dedimania record
-
-
-
new, improved, secured and equalled Dedimania records are shown via chat messages just like local records, as are the record reports before and after each track, with configuration options identical to those for local records
-
-
the new dedimania.xml configuration file defines various Dedimania parameters and record display settings (akin to config.xml), the server's account (from dedicated.cfg), and all Dedimania messages
-
-
the Dedimania system communicates with the central Dedimania server over port 8003 by default, so you must open that port on your firewall/router; if that's not possible the system falls back on port 80 (http)
-
-
the Dedimania system requires plugin.checkpoints.php (the checkpoints tracking plugin) to be included in plugins.xml, before plugin.dedimania.php
-
-
new <dedimsg> and <dedimsg> colors are defined in config.xml and used in all relevant Dedimania messages so that they can easily be customized
-
-
a new onEverySecond event (which, as the name implies, is triggered once every second) is defined in aseco.php to act as a "heart beat" in communicating with the central Dedimania server
-
-
Laps mode is not supported due to the way checkpoints and laps information is supplied by the TM server
-
-
LAN logins (with IP and port) are ignored by the Dedimania system
-
-
mega thanks to Slig for his generous help in building this system J
-
-
-
-
the /tmxinfo output now includes the Awards count for a TMX track
-
-
the /tmxinfo and /tmxrecs commands use cached TMX data for the current track to avoid sending multiple requests to the TMX site
-
-
updated the TMXInfoFetcher class to time out when the TMX site is down, and to return several more info fields including the awards count
-
-
updated the TMNDataFetcher class to time out when the master/ladder servers are down
-
-
the minimum number of ranked players that's included in the computation of the /topclans ranking is now configurable via new config.xml setting <topclans_minplayers> (default: 2)
-
-
new /admin setgamemode command (parameter: ta, rounds, team, laps, stunts) to change the game mode for the next track into the specified mode
-
-
rewrote /admin prev to consult the server's track list instead of maintaining a track filename variable
-
-
/admin replay will now check whether the currect track is already in the jukebox to get replayed, and if so, not queue it again
-
-
the pop-up window displayed by the /admin mta/wall command now starts with the title and nickname of the admin sending the message
-
-
new /admin shutdown command to shut down the TM server and ASECO/RASP
-
-
it is now possible to have chat-based voting commands temporarily disabled while an admin (of any tier) is online (configured via $disable_upon_admin in votes.config.php)
-
-
added /votehelp alias for /helpvote
-
-
the <limit> configuration setting in localdatabase.xml restricts the highest records that are shown to all players since v0.85, but now higher records are still shown to the pertaining player only
-
-
updated the GBXDataFetcher class to handle all known Challenge variants, including Forever
-
-
updated RASP's getChallengeData() function to use the GBXDataFetcher class
-
-
added extra check for 'SuperAdmin' login before connecting to the TM server
-
-
added extra check for TM server build '2006-05-30' during start-up
-
-
added a server Name entry to the start-up header in the log
-
-
improved speed of /server and /nextrank commands
-
-
adjusted some timeouts in the GbxRemote module (thanks Slig and Assembler Maniac)
-
-
an alternate (but untested) GbxRemote.bem.php module is included for big-endian machines (thanks again AM)
-
-
-
Bug fixes in the v0.95 release of ASECO/RASP:
-
-
-
occasionally an ASECO warning could come up during the jukeboxing & track switching process – fixed by the /admin prev rewrite above
-
-
the /list norecent output includes tracks that are no longer present on the server – fixed
-
-
a harmless "Start index out of bound" warning would be logged when the server has exactly 300 tracks (or a multiple thereof) – fixed
-
-
case-sensitivity in a part of the /add and /admin add code could cause a problem loading a track with a case-insensitive duplicate filename – fixed
-
-
renaming tracks downloaded from TMX into a sanitized filename with a unique sequence number (as introduced in v0.91) could still lead to a problem loading a different track with a duplicate filename into the TM server – fixed, the filename now also includes the TMX ID
-
-
/tmxrecs displays an almost empty pop-up when a track has no TMX records – fixed, an error message is shown instead
-
-
the TMXInfoFetcher class doesn't handle tracks with 26-character UIDs – fixed
-
-
-
-
-
New features and other changes in the v0.93 release of ASECO/RASP:
-
-
-
new checkpoints tracking support (via plugin.checkpoints.php) with the following features:
-
-
-
all checkpoints and finishes are now tracked internally
-
new /cps command to enable/disable displaying the checkpoint passages (since the TM client has it built in for TimeAttack mode, this is only useful in Rounds/Team modes)
-
the first run on a track only stores all checkpoint passages (as long as the finish is reached)
-
if /cps is enabled, subsequent runs will display a small pop-up window at each checkpoint for two seconds (just as long as the TM client displays the checkpoint time), containing the time and the difference to the best run so far
-
if a run has a better finish time, it's stored together with those checkpoints as the new best run
-
the finish is also a checkpoint, but no pop-up is displayed there
-
the checkpoints are only remembered for the duration of each track, not stored in the database
-
a player's display setting is remembered until the next ASECO/RASP restart
-
-
-
-
new TMX information support (based on the new TMXInfoFetcher class) with the following features:
-
-
-
new /tmxinfo command to display the TMX information on the current track or, when given a track ID (from /list) or a TMX ID, any other track; note that with a TMX ID, the UID field in the output remains empty
-
new /tmxrecs command to display the TMX top-10 world records on the current track or, when given a track ID (from /list) or a TMX ID, any other track
-
optionally show the TMX World Record at the start of a new track (configurable via new config.xml setting <show_tmxrec>)
-
-
-
-
new /song command (based on the new GBXDataFetcher class) to show the (file)name for the current track's song; no method is currently known to decode the title/artist from the song file
-
-
new /admin prev (alias /admin previous) command to quickly revisit the previous track
-
-
new /list option: /list oldest # displays the # oldest tracks added to the server (default: 10) to complement /list newest
-
-
the /statsall output now includes the Wins/Losses (W/L) ratio
-
-
the rounds reports now also work in Team mode
-
-
finalized the optimization (in v0.92) of the jukeboxing & track switching process
-
-
when a TMX /add or chat-based vote is cancelled by the server during the Tab scoreboard, that reset is also logged
-
-
documented the dependencies of all plugins in their respective headers
-
-
-
Bug fixes in the v0.93 release of ASECO/RASP:
-
-
-
when using jfreu.plugin.php (not jfreu.lite.php), if rank limiting is off then newly connected players are not properly entered into the internal players list – fixed
-
-
at ASECO/RASP start-up, authentication errors are ignored (oops) – fixed
-
-
if the same track is /add-ed or /admin add-ed multiple times, multiple files are created in the 'GameData/Tracks/Challenges/TMX/' or 'GameData/Tracks/Challenges/TMXtmp/' directories – fixed, duplicate files for identical tracks are prevented
-
-
if a file already exists in the 'GameData/Tracks/Challenges/TMXtmp/' directory for a /add-ed track and that track is then /add-ed again, the file (with an incremented name) is stored in the 'GameData/Tracks/Challenges/TMX/' directory instead – fixed
-
-
in the TMNDataFetcher, if the serverlogin for an online player starts with a non-alphanumeric character (e.g. '-') then the servernation isn't found – fixed
-
-
if plugin.matchsave.php is not included in plugins.xml (which is the default), /admin match begin crashes the system – fixed, a warning is shown if the plugin is not included
-
-
the administrator check for the chat_tc_listen ability doesn't work – fixed
-
-
-
-
-
New features and other changes in the v0.92b release of ASECO/RASP:
-
-
-
all temporary bans are now stored in a dynamic bans file, configurable via $bans_file in jfreu.config.php (default: plugins/jfreu/jfreu.bans.xml), and automatically restored after an ASECO/RASP restart
-
-
-
Bug fixes in the v0.92b release of ASECO/RASP:
-
-
-
sometimes when a player connects, the TeamName is not available to store in the 'players' table, and thus it doesn't show up in the /clans command – fixed this long-standing issue (which had become worse due to the faster GbxRemote module) with a TMNDataFetcher call
-
-
the /jfreu unban command doesn't properly clear the ban – fixed
-
-
there are some minor formatting glitches in the output of /stats, /statsall and /jfreu listbans – fixed
-
-
-
-
-
New features and other changes in the v0.92 release of ASECO/RASP:
-
-
-
new /statsall command to display any player's world stats (based on an updated TMNDataFetcher class by F*ckfish); you can use a player ID when the player is online on the current server, and otherwise any login (even of players that never visited the current server)
-
-
a new version of GbxRemote.inc.php not only addresses some low-level communication problems on AMD64 systems, but more importantly speeds up communication with the TM server – and therefore the responsiveness of all commands – very significantly (thanks Xerrez & Slig); the effect that the small chat window goes blank for a little while is also reduced
-
-
optimized calculation of all players' server ranks after each track
-
-
more optimization of the jukeboxing & track switching process to (hopefully definitively) prevent stuck tracks
-
-
the /nextrank command now optionally shows the difference in record positions (RP), i.e. the combined number of positions that your records need to be improved in order to catch up with the next better ranked player (configured via $nextrank_show_rp in rasp.settings.php)
-
-
by appending an 'h' (case-insensitive) to the time parameter of /jfreu banfor, the specified value is converted from minutes into hours (e.g. /jfreu banfor 4H <login> for a four-hour ban)
-
-
correspondingly, all temporary ban messages now show the remaining time as "X hours XX mins" if it's more than an hour
-
-
new /jfreu unban command to cancel the temporary ban, from the badword filter and /jfreu banfor, of a player (login or ID)
-
-
new /jfreu listbans command to display the list of temporarily banned players; if the remaining time of a ban is more than an hour, it's shown as XhXX
-
-
the /stats output now includes the last online information (like /laston)
-
-
the /laston command can now be used without a parameter (however little use that has)
-
-
added a server Version entry to the start-up header in the log
-
-
the commands list (in HTML and Word) now includes all /admin and /jfreu commands as well
-
-
-
Bug fixes in the v0.92 release of ASECO/RASP:
-
-
-
when a player equals his/her record, it's still stored in the 'records' table with the new date/time, in effect changing (increasing) its position if there are other players with the exact same time driven after that record's original date/time (ugly oops) – fixed, equalled records are not stored again; to repair the records that were affected by this bug, you can use this PHP script
-
-
when using jfreu.plugin.php (not jfreu.lite.php), if a player is banned by the badword filter or /jfreu banfor command, then the "left the game" message is still shown – fixed
-
-
also when using jfreu.plugin.php, if a player is kicked once by the ranklimit system, badword filter or /jfreu banfor command, which skip the "left the game" message, then that message would no longer be shown when that player leaves normally again after a subsequent visit – fixed
-
-
Player_IDs are not accepted when the pertaining player is offline, even when that would make sense (e.g. /admin unban <x> after /admin listbans) – fixed
-
-
when two (or more) players have the exact same Avg value, they receive the same server rank – fixed
-
-
when the Avg value shown by /rank, /top10, /top100, etc. rounds to a whole number, the ".0" decimal isn't shown – fixed
-
-
the v0.91 overhaul of the full Jfreu plugin warranted a version update to 0.14 – fixed
-
-
-
-
-
New features and other changes in the v0.91 release of ASECO/RASP:
-
-
-
enhancements and fixes for the full Jfreu plugin (jfreu.plugin.php & jfreu.chat.php):
-
-
-
the jfreu.config.php file was moved from the plugins/ directory to the more appropriate includes/ directory
-
-
the player join message shows the administrator title (if appropriate) and the server rank when rank limiting is enabled
-
-
new command /jfreu listlimits to display all rank-limiting related settings in one convenient overview
-
-
new commands /jfreu writeconfig and /jfreu readconfig to write and read the actual Jfreu config settings to/from a new dynamic config file, configurable via $conf_file in jfreu.config.php (default: plugins/jfreu/jfreu.config.xml)
-
-
the settings managed this way include all the variables in jfreu.config.php, except $message_start, all the actual info messages, and $badwordslist
-
changing any setting will cause the jfreu.config.xml file to be rewritten with the current values, so that after an ASECO/RASP restart it can be read back to restore those settings (it is however not read automatically)
-
/jfreu readconfig shows the current servername after reading the settings, in case that was changed via the autoranking mechanism
-
-
-
new commands /jfreu listvips and /jfreu listvipteams to display the lists of VIPs and VIP_Teams, respectively
-
-
new command /jfreu readlists to read in the lists of VIPs and VIP_Teams, complementing /jfreu writelists
-
-
new command /jfreu badwordsnum to set the badwords limit, complementing /jfreu badwords and /jfreu badwordsban
-
-
new command /jfreu badword to increment the badword count for a player (login or ID) who 'creatively' and intentionally circumvents the badword filter
-
-
new command /jfreu autochangename to enable or disable automatically changing the servername when the rank limit is updated
-
-
new command /jfreu infomessages to enable or disable the info messages
-
-
new $unspecvote setting in jfreu.config.php, and new command /jfreu unspecvote to allow or disallow SpecOnly players to use the /unspec command
-
-
exchanged the functionality of /jfreu setrank and /jfreu setlimit: now setrank enables/disables the rank limit system (just like autorank for the autoranking feature) while setlimit sets the rank limit value itself (similar to hardlimit for the overall hard limit value)
-
-
corrected /jfreu addteamvip into /jfreu addvipteam, and /jfreu removeteamvip into /jfreu removevipteam (along with all corresponding variables)
-
-
corrected /jfreu autorankminplayer into /jfreu autorankminplayers, and $autorankminplayer into $autorankminplayers in jfreu.config.php (proper plural)
-
-
the /jfreu addvip, /jfreu removevip, /jfreu unspec, /jfreu banfor and /jfreu player commands are now able to use player IDs (in addition to logins)
-
-
added clearer descriptions to the /jfreu helpall output
-
-
all relevant /jfreu commands now show the title and nickname of the admin performing those actions
-
-
added more logging of /jfreu commands usage, and of all the various kick reasons
-
-
an invalid value specified to /jfreu setlimit, /jfreu hardlimit, /jfreu offset, /jfreu autorankminplayers, /jfreu maxplayers and /jfreu kickworst produces an appropriate error message
-
-
a login specified to /jfreu unspec that isn't SpecOnly produces an appropriate error message
-
-
the /jfreu setlimit command without a value now shows the current rank limit
-
-
the jfreu.unspec.php plugin is integrated into jfreu.plugin.php: spectators that manage to start racing without getting unSpec-ed are kicked after passing a checkpoint; the original kick_player_spec() function is therefore redundant and was disabled
-
-
the NoVote feature (automatic cancellation of CallVotes) and the /jfreu cancel command are inactive when chat-based votes are enabled
-
-
fixed and re-enabled the /password command to show the server's player/spectator password to a player or spectator/SpecOnly, respectively
-
-
fixed /jfreu setlimit on to not change the servername if $autochangename is off
-
-
fixed /jfreu message to use the actual servername instead of the initial one, in case that was changed via the autoranking mechanism
-
-
fixed SpecOnly player's rank to get checked against the rank limit instead of 0 if $autorank is off
-
-
fixed players with rank 0 (vanilla account) to not get kicked if $hardlimit is disabled
-
-
fixed players with rank 0 (vanilla account) to get considered by the kick_hirank and kick_worst features before other high ranks
-
-
fixed player with rank higher than $hardlimit to still get shown an explanation message before being kicked
-
-
fixed spectator whose team is in the VIP_Teams list to get marked as VIP instead of SpecOnly
-
-
fixed inclusion (also in jfreu.lite.php) of wrong jfreu.config.php in case of multiple Aseco installs (for multiple TM servers on the same machine)
-
-
general code clean-up, including proper use of booleans for all variables that used only 1/0 values, message corrections, redundant code removal, and lots more
-
-
-
-
new /laston command to show when a player (login or ID) was last online on the server
-
-
new /admin players command to display the list of all known players, and search for offline players via a (part of a) login or nickname with /admin players <string> (just like /players <string> to search for online players)
-
-
tracks downloaded via /add are now saved to the new 'GameData/Tracks/Challenges/TMXtmp/' directory as they are added only temporarily to the server's track list, while tracks downloaded via /admin add are saved to the 'GameData/Tracks/Challenges/TMX/' directory and added permanently to the server's track list, as before
-
-
the /admin add command now optionally also adds the downloaded track to the jukebox (configured via $jukebox_adminadd in rasp.settings.php)
-
-
new /admin addthis command to permanently add the current track to the server's track list if it is playing through a TMX /add vote; this will also move the track file from the 'GameData/Tracks/Challenges/TMXtmp/' directory into the 'GameData/Tracks/Challenges/TMX/' one
-
-
the /add trackref command now creates trackref.txt files in both TMX and TMXtmp directories
-
-
tracklists created by /admin writetracklist now include a <random_map_order> filter section so that /admin readtracklist of such files randomizes the track list again (configurable via new config.xml setting <writetracklist_random>)
-
-
/admin black and /admin unblack now automatically perform a writeblacklist, and /admin addguest and /admin removeguest a writeguestlist, so that the blacklist.txt and guestlist.txt files are always in sync in case of a server restart
-
-
on TMO/TMS, /nextmap will also show the environment of the next track
-
-
the chat-based voting configuration options were lifted out of plugin.rasp_votes.php into the new includes/votes.config.php file
-
-
a track added to the jukebox via TMX /add vote is temporarily added to the server's track list while playing it, but if multiple tracks are /add-ed right behind eachother, only the last one would be removed from the track list again – fixed, each track is immediately removed from the server's track list after having been loaded successfully for its (single) turn
-
-
/admin setservername uses only the first specified word to set the servername – fixed, all words are now used
-
-
/admin setservername, /admin setmaxplayers and /admin match don't show the nickname of the admin performing those actions – fixed
-
-
/server always shows the initial servername – fixed, it now displays the actual servername, in case that was changed via the autoranking mechanism
-
-
because tracks downloaded from TMX are renamed to filenames derived from the tracks' (sanitized) names, it is possible for tracks with identical names to get mixed up – fixed, the (sanitized) filename is now made unique with a sequence number, if necessary
-
-
-
-
-
New features and other changes in the v0.90 release of ASECO/RASP:
-
-
-
new and comprehensive player muting support with the following features:
-
-
-
player muting (preventing players to chat) automatically becomes available when plugin.muting.php is enabled (uncommented) in plugins.xml
-
muting can be done globally (by admins with sufficient permissions):
-
-
a player can be added to the global mute list with /admin mute and removed again with /admin unmute
-
admins can view the global mute list with /admin mutelist (alias /admin listmutes)
-
the global mute list is not stored so an ASECO/RASP restart will result in an empty list – consider it an opportunity for redemption of muted players
-
all normal chat by a player on the global mute list is muted for all other players
-
a player on the global mute list is also not allowed to use the /me, /hi, /bye, etc. chat commands (which result in global messages), in order to prevent circumventing the normal chat mute (or possible spamming in retaliation)
-
admins will probably find it more effective and efficient to warn and kick a troublesome player than to mute him/her
-
the admin muting commands are always listed in the help, but disabled if the muting plugin is not included
-
the adminops.xml file has corresponding new entries <mute>, <unmute>, <mutelist> and <listmutes>
-
-
...or individually by any player:
-
-
a player can add another player to his/her individual mute list with /mute and remove a player again with /unmute
-
players can view their individual mute list with /mutelist
-
the individual mute list is not stored so leaving the server will result in an empty list upon joining – consider it another opportunity for redemption of muted players
-
all normal chat by a player on another player's mute list is muted only for that other player
-
a muted player's use of the /me, /hi, /bye, etc. chat commands will still be seen by the player who muted him/her
-
players cannot mute admins of any tier (MasterAdmin, Admin & Operator)
-
-
-
all muted players' normal chat can still be read in /chatlog, and is logged as usual (if <log_all_chat> in config.xml is enabled)
-
directly and completely muting a player is not possible because the TM server first sends out a normal chat line to all other players before ASECO/RASP receives it
-
therefore a mute buffer of the size of the large chat window (18 lines) is maintained for each individual player, containing the global server messages (e.g. records, track changes, votes, etc.) as well as the chat lines from all unmuted players; this buffer also stores any private messages a player sent and received (via /pm, /pma & /admin pm), but not the local messages from most chat commands (e.g. /help, /pb, /wins, /recrange, etc.) nor any error messages
-
whenever a muted player enters a chat line, that line is not appended but instead the individual buffers are sent back as fast as possible to any players that muted him/her, in effect pushing the muted player's line out of the chat window
-
while this is the best possible approach to muting, given the TM server's limitations, it does have a few problems:
-
-
since local and error messages are not buffered, a muted player entering a chat line will cause those messages to be lost for any players that muted him/her as their buffers are sent back to the chat window; for this reason a global mute may be too confusing and an admin warn/kick more practical
-
because of the delay between the TM server sending chat lines directly to all players and the mute buffers of some (or all) players being sent back to them, a chat line by a muted player is usually visible for a short time; that timing issue is inherent to this approach
-
because of the above timing problem, it's also possible that an unmuted player enters a chat line in between a muted player's line and sending out any mute buffers, which causes that unmuted line to get pushed out of the chat window as well; it is still stored in the mute buffers though, and will be restored to the chat window the next time a muting action occurs
-
to speed up that restore, players who notice they're missing a chat line from an unmuted player can use the new /refresh command to restore their chat window
-
-
-
-
-
-
new idlekick features in mistral.idlekick.php:
-if spectator kicking is enabled ($kickSpecToo = true), a separate idle challenge count is in effect, called $kickSpecAfter (default: 4);
-the idle kicking system now takes tiered admins and their player/spectator status into account:
-
-
MasterAdmins are never idle kicked
-
Admins and Operators are not kicked if they're in player mode and the new <noidlekick_play> ability in their respective ability lists (in adminops.xml) is enabled
-
Admins and Operators are not kicked if they're in spectator mode and the new <noidlekick_spec> ability in their respective ability lists is enabled
-
-
-
-
new /list options:
-/list longest/shortest display the longest and shortest tracks as determined by Author time
-/list newest # displays the # newest tracks added to the server (default: 10)
-
-
in all /list output, recently played tracks (as defined by $buffersize in rasp.settings.php) are now shown in light grey to indicate they cannot be jukeboxed yet again
-
-
long lines in the output of /chatlog, /pmlog and /admin pmlog are now cleanly wrapped on words, instead of breaking off in the middle of words
-
-
new /admin wall (alias /admin mta) command to display a message as a pop-up window to all players (familiar from the *nix wall command); the default message color is red but all color and attribute tags can be used, and the adminops.xml file has corresponding new entries <wall> and <mta>
-
-
the warning message sent via /admin warn can now be customized via a new <warning> message in config.xml
-
-
the output of /admin commands that generate a list of players (listbans, listblacks, listguests, listmasters, listadmins, listops) now uses the same blue color for the logins as the /players output
-
-
a new <karma> color is defined in config.xml and used in all relevant karma messages so that they can easily be customized
-
-
the aforementioned light grey and blue colors are defined in config.xml too, as <grey> and <login> respectively; the red color used for nickname headers in all pop-up windows is also configurable, via the new <nick> color
-
-
showing the records range before, during (with /liverecs) and after a track if there are no new records, is now optional via new config.xml setting <show_recs_range>; if False, no range is shown
-
-
the messages for new, improved, secured and equaled records (in localdatabase.xml) have been shortened to reduce wrapping in the small chat window
-
-
if showing the total playtime at the end of each track is enabled, that playtime is also logged
-
-
the MySQL connection can become lost on servers that remain empty for a long time (the default wait_timeout is 8 hours), therefore when that happens an automatic MySQL reconnect is now performed (thanks Dagobert)
-
-
renaming the blacklist, guestlist and tracklist extensions into ".xml" in v0.89 was not such a good idea (because the TMN server will create an empty blacklist and guestlist upon starting if it doesn't find the ".txt" versions), so they have been reverted to ".txt"
-
-
added logging of more /admin commands
-
-
-
Bug fixes in the v0.90 release of ASECO/RASP:
-
-
-
when using a track ID with /karma, it still reports "Current Track Karma" – fixed, now the pertaining track name is shown
-
-
spectators are never idle-kicked even if $kickSpecToo in mistral.idlekick.php is true (ugly oops) – fixed
-
-
if a /replay vote passes, another could be started and if it passes too, the same track is queued twice in the jukebox – fixed, /replay is no longer allowed after the track is queued once
-
-
if a track fails to load twice from the jukebox and is dropped, the corresponding chat message is empty – fixed
-
-
/list karma 0 shows the entire track list – fixed, it now shows only tracks with karma less than or equal to 0
-
-
messages sent via /pma show up twice in the sending admin's /pmlog output &ndash fixed
-
-
the <skipmap> and <skip> abilities are missing from the adminops.xml file – fixed
-
-
in a new installation, the very first line written to logfile.txt is actually lost – fixed
-
-
-
-
-
New features and other changes in the v0.89 release of ASECO/RASP:
-
-
-
info on actual karma votes: the karma messages can optionally show each player's actual votes, or lack thereof (configured via $karma_show_votes in rasp.settings.php)
-
-
requiring finishes before karma voting: a player can optionally be required to finish a track a minimum number of times before being allowed to karma vote for it (configured via $karma_require_finish in rasp.settings.php); this is the total number of finishes since the first day a player tried a track, not the number in the current session
-
-
the /karma command now accepts an optional track ID (from your last /list output) to display the karma of that track instead of the current one
-
-
when changing your already existing karma vote, instead of "Vote Successful" the message now is "Vote Changed"
-
-
new /pmlog command to display the most recent 30 (default) lines of your own private messages (both sent and received) in a pop-up window
-
-
/list <xxx> now allows searching for track names/authors with multiple words (previously one word was required, otherwise the entire list was displayed)
-
-
the /admin help command now shows the command list in the chat window, while the new /admin helpall command displays the list with descriptions in a pop-up as before; similarly for /jfreu help and the new /jfreu helpall command – this makes them consistent with the user /help and /helpall commands
-
-
the jfreu.player.php plugin has been renamed to jfreu.lite.php, containing the info messages system and (as before) the player join/leave messages, but nothing else of the full Jfreu plugin functionality
-
-
in the /players output, strip wide font ($w) from nicknames so that the window width isn't stretched out too far by players with long wide nicks and long logins
-
-
wide fonts are also stripped from the sender and receiver nicknames in /pm, /pma and /admin pm
-
-
when showing records before (<show_recs_before> is True), after (<show_recs_after> is True) or during (/liverecs) a track and there are no new records, the record range is included instead
-
-
the last page in a multi-page pop-up now uses an 'OK' button (instead of 'Close'), for consistency with all single-page pop-ups
-
-
if an admin (with the chat_jb_recent ability) jukeboxes a recently played track, a warning about the repeat track is shown but it's still jukeboxed again
-
-
the /replay message was changed from "Replay Track upon Completion" into "Replay Track after Finish", which is hopefully easier to understand for non-English speaking players
-
-
all chat-based and TMX /add votes are now cancelled by the server during the Tab scoreboard before the next track is fetched from the jukebox, to prevent interference from a /replay vote passing at the last possible moment
-
-
the default percentage of a track after which a /skip vote is no longer allowed, was reduced from 70% to 50%
-
-
the /admin writetracklist command now accepts an optional filename parameter to write the current match settings to another file than the default
-
-
new /admin readtracklist command for reading the default match settings file, or an alternate one specified with an optional filename parameter, to complement /admin writetracklist; it shows the number of tracks loaded from the file
-
-
the default filename used for the above match settings file is shortened from "rasp-tracklist.txt" to "tracklist.xml", and it's written to and read from the more appropriate "GameData/Tracks/MatchSettings/" directory (previously in "GameData/Tracks/")
-
-
the extension of the blacklist, guestlist and tracklist files (as read and written by the pertaining /admin commands) is updated from ".txt" to the more relevant ".xml"
-
-
the /match load command in plugin.matchsave.php was disabled as it's now redundant with /admin readtracklist
-
-
the /admin acdl command now takes "ON" or "OFF" (case-insensitive) as parameter instead of "Yes"/"No", for consistency with all other boolean (/jfreu) admin commands
-
-
a new <admin> color is defined in config.xml and used in all relevant /admin messages so that they can easily be customized
-
-
if you still use the old chat.vote.php plugin, that will now show the current score when a track is loaded
-
-
the <account> field in the <tmserver> section of config.xml became redundant, and was removed
-
-
an /ad shortcut for /admin and a /jb shortcut for /jukebox become available by uncommenting the appropriate two lines at the start of chat.admin.php and plugin.rasp_jukebox.php, respectively
-
-
aseco.php now determines whether it's running on Win* or *nix operating systems, so it's no longer necessary to define the CRLF constant manually
-
-
lots of code optimization and clean-up, like more efficient handling of TM server calls (thanks Assembler Maniac), better error handling throughout the entire system, and other tid bits
-
-
-
Bug fixes in the v0.89 release of ASECO/RASP:
-
-
-
/kick votes are denied when there's no vote in progress, and allowed to start when another vote already is (oops) – fixed
-
-
/admin ban produces an RPC error in the log from the Kick call because the Ban call already kicks the player – fixed by removing the Kick call
-
-
if a track is deleted before pruning its records (/admin prunerecs), those are still counted in players' /summary results (though not /topsums) – fixed
-
-
/pm and /pma send a message even if it's empty – fixed, empty messages are ignored
-
-
in /add and /admin add, after renaming the numeric filename to a (sanitized) track filename, multiple spaces and underscores are not properly reduced to single ones – fixed
-
-
in the original v0.88 zip file (which was fixed one day after release), /jfreu didn't work for any admin tier – fixed
-
-
-
-
-
New features and other changes in the v0.88 release of ASECO/RASP:
-
-
-
new, flexible and fully integrated tiered administration support with the following features:
-
-
-
there are three tiers of administrators: MasterAdmins, Admins and Operators
-
all three tiers of administrators can see who is in each tier with the new /admin listmasters, /admin listadmins and /admin listops commands
-
if a player is in more than one tier, the highest one takes precedence
-
MasterAdmins have no restrictions to their abilities, while the abilities of Admins and Operators can be defined per individual command
-
the list of MasterAdmins is fixed in the <masteradmins> section in config.xml; the lists of Admins and Operators, and their respective abilities, are stored in the new adminops.xml file (configurable via new config.xml setting <adminsops_file>) and automatically restored after an ASECO/RASP restart
-
MasterAdmins can add and remove Admins dynamically, using the new /admin addadmin and /admin removeadmin commands
-
both MasterAdmins and Admins can add and remove Operators dynamically, using the new /admin addop and /admin removeop commands
-
MasterAdmins can dynamically enable and disable all abilities for Admins and Operators – even their ability to change their own abilities, if you so desire – using the new /admin adminability and /admin opability commands
-
the ability lists also define (non-/admin) chat commands where Admins and Operators have additional capabilities that users don't
-
the /admin help command dynamically lists only the available commands for each tier depending on their allowed abilities
-
the new /admin listabilities command displays which non-/admin abilities (if any) are available to Admins and Operators, with a description; for MasterAdmins, /admin listabilities {admin/op} displays the abilities of the pertaining administrator tier
-
there are no separate commands (e.g. /op), all tiers use the same /admin commands (so there's no code duplication)
-
all /admin chat and log messages show whether a MasterAdmin, Admin or Operator performed the pertaining action
-
the player join message from jfreu.plugin.php (or jfreu.player.php) shows the appropriate administrator title
-
the titles with which MasterAdmins, Admins and Operators are shown in chat and join messages, are configurable via the <titles> section in adminops.xml
-
if e.g. Operators do not have the ability to use /pma and /admin pm, they will also not receive such private messages when sent by (Master)Admins
-
any server owner's LAN logins (with IP and port) should be in the <masteradmins> section of config.xml and will be skipped by the /admin listmasters command
-
all Jfreu admin commands can be used by MasterAdmins and Admins, but not Operators; also, the /jfreu addadmin command was disabled, and the corresponding <admin_list> section from plugins/jfreu/jfreu.vips.xml (previously jfreu.lists.xml) was removed
-
servers that don't need Admins and Operators can simply leave those login lists in adminops.xml empty, and not have the tiered system interfere (phew J)
-
new karma details: details about the vote counts and percentages can optionally be shown with karma messages (configured via $karma_show_details in rasp.settings.php)
-
-
new /admin listdupes command to display a list of duplicate tracks on the server (ready for /admin remove/erase)
-
-
new /admin prunerecs command to delete the records/rs_times database entries for a specific track (by track ID from /list, so you must prune recs for a track before removing/erasing it, otherwise you can't /list it anymore)
-
-
the number of rounds (in Rounds/Team modes) or seconds (in TimeAttack/Laps/Stunts modes) by which a vote expires can now be configured per individual type of TMX /add and chat-based vote ($r_expire_limit and $ta_expire_limit in plugin.rasp_votes.php)
-
-
the output from /list and /list <xxx> now includes the corresponding ranked records, just like /list norecent
-
-
the /best and /worst commands are now also available via /list best and /list worst
-
-
the /server output now shows the total playing time of all players combined
-
-
the /best, /worst, /summary, /stats, /admin ban and /admin black commands can now also be used on offline logins (only by admins as defined by their abilities)
-
-
moved all jukebox and /add related message strings into rasp.xml for easy customization and localization
-
-
the all-caps UNRANKED text for unranked records in the /pb message is now in narrow font to make it less intrusive
-
-
in Jfreu's player join messages and the /stats output, the ladder ranks are now formatted with spaces between the thousands (like in the Tab scoreboard)
-
-
if Jfreu's info messages are disabled, the "Messages: OFF" reminder isn't shown anymore
-
-
the Jfreu plugin "Loaded" message is no longer shown to a connecting player (only on ASECO/RASP start-up)
-
-
the name of Jfreu's vip/team_vip file is now configurable via $vips_file in jfreu.config.php (default: plugins/jfreu/jfreu.vips.xml)
-
-
some code clean-up, like more efficient formatColors and resetRanks functions, a non-looping /nextmap (thanks Assembler Maniac), and other tid bits
-
-
all documentation files included in the .zip are now grouped together in their own DOCS subdirectory
-
-
-
Bug fixes in the v0.88 release of ASECO/RASP:
-
-
-
if the jukebox is empty and the current track is deleted (/admin removethis/erasethis), /nextmap hangs up the ASECO/RASP system – fixed by the non-looping rewrite above
-
-
the karma reminders at every finish ($remind_karma = 2) could occasionally produce an RPC error in the log – fixed
-
-
there is a typo in plugin.rasp_irc.php causing the IRC connection to fail – fixed
-
-
a couple of /jfreu commands are not shown in the /jfreu help overview – fixed
-
-
/admin removethis/erasethis does not properly log the name of the deleted track – fixed
-
-
the second line of the default Welcome message text was shown without the shadow attribute – fixed
-
-
-
-
-
New features and other changes in the v0.86 release of ASECO/RASP:
-
-
-
new /list options to complement /list nogold:
-/list noauthor displays all tracks the player finished but didn't beat the Author time on
-/list norecent displays all tracks the player finished but didn't race recently (includes ranked records)
-
-
the output from /list nogold and /list noauthor now shows how much your time is over the track's Gold and Author time, respectively
-
-
new karma vote reminders: if a player (but not a spectator) hasn't karma voted for a track, an optional reminder can be sent upon every finish or at the end of the track (configured via $remind_karma in rasp.settings.php)
-
-
new /admin pass command to force any TMX /add and chat-based vote to pass
-
-
the /topclans output now shows how many clan members were counted to compute the clan's average server rank
-
-
the chat-based voting plugin has two new options ($allow_spec_startvote and $allow_spec_voting) to allow or disallow spectators to start votes and/or to vote /y themselves; this also applies to TMX /add votes, but admins are always allowed to vote /y
-
-
the track history is now written to a file that is automatically restored upon ASECO/RASP start-up; this prevents players from jukeboxing a recently played track after a restart (a frequent event on my server when developing J)
-
-
moved more message strings into config.xml and rasp.xml for easy customization and localization
-
-
some code clean-up, like removing duplicate getPlayerId functions, adding an isSpectator function, and other tid bits
-
-
-
Bug fixes in the v0.86 release of ASECO/RASP:
-
-
-
when adding from TMX via /add or /admin add, a track with special characters (besides '?' and '*') in its filename could cause it to not load and get stuck in the jukebox – fixed by changing most special characters into '_' (underscore)
-
-
the special 'trackref' parameter to /add doesn't work – fixed parameter processing and made it an admin-only option; also fixed non-existent 'tracktype' field in the trackref.txt file into 'environment'
-
-
a replayed track is entered multiple times into the track history – fixed
-
-
if a track failed to load from the jukebox, the next track from the server's track list that would get loaded in its place isn't entered into the track history – fixed
-
-
if an admin forces a replay (/admin replay) during a /replay vote, that vote isn't cancelled, potentially allowing a double replay – fixed
-
-
the XML parser changes '+' characters in message strings into spaces – fixed
-
-
-
-
-
New features and other changes in the v0.85 release of ASECO/RASP:
-
-
-
new /topsums command (short for: top summaries) to display the top-100 of players with the most top-3 ranked records (i.e. of /summary results)
-
-
updated /best and /worst commands to include an track ID column so that tracks can be jukeboxed directly (without going through /list)
-
-
new /admin removethis and /admin erasethis commands to quickly remove the current track from rotation and, if erasethis, also delete the track file
-
-
new up-to-date check at start-up (optional) and /admin uptodate command to check for the current version of ASECO/RASP; consequently, Jfreu's /uptodate command was disabled
-
-
new <limit> configuration setting in localdatabase.xml to restrict the highest records that are still displayed
-
-
computation of the required number of votes for TMX /add and chat-based votes adjusted for low player counts
-
-
the informational /helpvote messages sent to all players or just a new player can now be turned off completely
-
-
an extra check for a "stuck" track in the jukebox is done when loading the next one, and if it fails to load twice it's dropped
-
-
if <show_recs_before> in config.xml is true, the original Current Record message is redundant with the top-8 records list, and no longer shown
-
-
if <show_recs_before> in config.xml is true and the player has a ranked record, then the Personal Best message can optionally be skipped via $always_show_pb = false in rasp.settings.php
-
-
-
Bug fixes in the v0.85 release of ASECO/RASP:
-
-
-
in determining the required number of votes, spectators are still included for TMX /add votes – fixed
-
-
when adding from TMX via /add or /admin add, a track with a '?' or '*' in its filename causes it to not load and get stuck in the jukebox – fixed by changing all occurrences of '?' and '*' into '_'
-
-
in very rare conditions (running on WinXP with a buggy PHP time functions library in a country using 8-bit characters) the /server and /stats commands could fail silently because the 'strftime' system call returns a bogus timezone – fixed by changing to 'date' system calls
-
-
using '$g$m' to clear text attributes after track names and player nicknames in various messages could result in inconsistencies with italics – fixed by replacing '$g$m' with '$z$s' (or occasionally '$z$s$i')
-
-
-
-
-
New features and other changes in the v0.84 release of ASECO/RASP:
-
-
-
new and sophisticated chat-based voting; by including plugin.rasp_votes.php and setting $feature_votes in rasp.settings.php to true, normal CallVotes are disabled and the following features become available:
-
-
-
new /helpvote command to display usage info and the actual voting ratios for the new voting commands
-
new /endround vote to end a round (only enabled in Rounds/Team modes)
-
new /ladder vote to restart the current track immediately when the ladder is down
-
new /replay vote to replay the current track after it's done (prepends it to jukebox)
-
new /skip vote to skip the current track immediately
-
new /kick vote to kick a player
-
new /cancel command for a player to cancel his/her own vote (also works with TMX /add votes; admins can /cancel any vote)
-
extensive configuration options in the new votes.config.php file:
-
-
-
separate voting ratios per type of vote, so e.g. a kick vote is harder to pass than an endround vote
-
option to enable /kick vote (default: on) and enable kicking of admins (default: off); if disabled, /kick also isn't listed in the /helpvote output
-
option to perform /ladder restart via quick ChallengeRestart or by prepending track to jukebox and doing NextChallenge
-
option to automatically vote for the vote starter, otherwise the old way remains where the starter also has to vote /y
-
vote expiration options:
- in Rounds/Team modes all votes (except /endround) expire within 3 rounds (default);
- in TimeAttack/Laps/Stunts modes all votes expire after approximately 120 seconds / 2 minutes (default);
- expiration is necessary, otherwise unpassed votes will linger on until the end of the track, preventing players from starting another vote
-
vote reminder options:
- in Rounds/Team modes a reminder can be shown after every round until the vote passes or expires;
- in TimeAttack/Laps/Stunts modes a reminder can be shown approximately every 30 seconds (default) until the vote passes or expires;
- reminders help players not forget about ongoing votes after the last vote message has scrolled out of the chat window
-
optional limits to the number of /ladder, /replay & /skip votes per track (default max: 2); if a limit is 0, that particular vote is disabled
-
optional limits to when /ladder, /replay & /skip votes are allowed in Rounds and TimeAttack mode:
- in Rounds the limit is based on the number of points that the first player already has, compared to the server's points limit;
- in TimeAttack the limit is based on the time the track is already running, compared to the server's time limit;
- /ladder is disabled after 40%, /replay is disabled before 50%, and /skip is disabled after 50% of those limits (all percentages configurable)
-
the rationale behind these optional limits is that it's: annoying to go through the same type of vote more than twice; annoying to go through a ladder restart vote when the track is already a few minutes under way; too early to decide whether to play a track again if when it's not even halfway done; and annoying to go through a skip vote when a track is close to completion
-
there's no limit to the number of endround and kick votes per track, because you may need more than a few of them J
-
there are no /ladder, /replay & /skip limits in Team, Laps & Stunts modes
-
-
-
-
there's no /ban vote command because IMHO only admins should be able to ban
-
in determining the required number of votes, spectators are not included; this now also applies to TMX /add votes
-
if chat-based voting is enabled, the /server output will show a pointer to /helpvote instead of the CallVote timeout and ratio
-
in Rounds/Team modes a running /endround vote is automatically terminated by the EndRound event, i.e. when all players 'Enter' as yet or by an /admin endround/er command
-
the vote expiration and reminder options, and the automatic vote for starter option, also work with TMX /add votes
-
all votes terminate automatically at the start of a new track
-
when a new player connects, an explanatory message that chat-based voting is in effect is shown to that player, or optionally to all players; you can use the latter during an introduction period until most players are familiar with the new voting system
-
integrates properly with TMX /add votes whether or not those are enabled, and whether or not chat-based votes are enabled
-
voting messages use a new pink color (<vote> in config.xml) that's sufficiently distinct from the colors of all other message types (but /add related messages retain their normal orange color)
-
for further understanding of the features and configuration options, study the detailed comments in function init_votes() in plugins.rasp_votes.php
-
-
-
-
-
new /admin pmlog command to display the most recent 30 (default) lines of admin pm's in a pop-up window
-
-
updated /admin cancel to cancel TMX & chat votes too
-
-
added more aliases to /admin nextmap command, for consistency with the /skip vote: /admin skipmap and /admin skip
-
-
long lines in the /chatlog pop-up window are now split up with a continuation symbol (...) at the start of the second and following parts
-
-
if <log_all_chat> is true, non-existent chat commands – lines starting with '/' that cannot be executed – are also logged (but they're not shown in /chatlog)
-
-
(almost) all function calls were updated to remove the deprecated pass-by-reference '&' from parameters
-
-
tweaked various jukebox related messages
-
-
-
Bug fixes in the v0.84 release of ASECO/RASP:
-
-
-
in the /chatlog output, strip wide font ($w) from nicknames so that the window width isn't stretched out too far by players with long wide nicks and lengthy chat lines
-
-
with a large number of long chat lines in the /chatlog output, it could hang up the TMN client – fixed
-
-
all player tests w.r.t. jukebox/add actions are done against nickname, potentially causing conflicts between players with identical nicknames – fixed by changing those tests to logins
-
-
if a player voted /y in one TMX /add vote, he/she wasn't be able to vote for another /add vote during the same track – fixed
-
-
if a player tries to /add an existing track, the preceding track in the server's track list is jukeboxed instead of that requested one – fixed
-
-
if a player tries to /add the same track that was just /add-ed (but not yet loaded), another vote is started – fixed
-
-
/add doesn't properly insert the track into the jukebox such that it can be dropped again – fixed
-
-
if /add finds the requested track is already present on the server, the temporary track file wouldn't be deleted – fixed
-
-
using '$z' to clear text attributes after track names and player nicknames in various messages would also turn off the default 'shadowed' style for the remainder of those messages – fixed by replacing '$z' with '$g$m'
-
-
-
-
-
New features and other changes in the v0.82 release of ASECO/RASP:
-
-
-
new /nextrank command to show the next better ranked player
-
-
new /admin unban and /admin unblack commands to remove players from the ban and black lists; you can use the player IDs from the /admin showbanlist and /admin showblacklist output, respectively, as well as any valid logins
-
-
new /admin addguest and /admin removeguest commands to add players to and remove from the guest list (even offline ones); with addguest you can use player IDs from the /players output, with removeguest from /admin showguestlist, as well as any valid logins
-
-
new /admin cleanbanlist, /admin cleanblacklist and /admin cleanguestlist commands to completely clean the ban, black and guest lists
-
-
added aliases for admin commands: /admin showbanlist or /admin listbans, /admin showblacklist or /admin listblacks, and /admin showguestlist or /admin listguests
-
-
the IP address of a connecting player is now logged along with the rest of the 'join' message
-
-
the updated Matchsave plugin (plugin.matchsave.php, matchsave.xml) by F*ckfish is now part of the standard distribution, although by default not included in plugins.xml
-
-
all function declarations were updated to remove the deprecated pass-by-reference '&' from parameters
-
-
-
Bug fixes in the v0.82 release of ASECO/RASP:
-
-
-
if $prune_records_times is enabled and there is a syntax error in rasp.xml, there is a possibility for the records/times of all tracks to be deleted – fixed, a syntax error will no longer invoke pruning
-
-
fields 2 & 3 in <record_first> in config.xml are out of order – fixed, although it isn't visible anyway as the same (and correct) message from localdatabase.xml supersedes it
-
-
the /admin showbanlist/showblacklist/showguestlist commands are not properly storing the player IDs & logins for later use – fixed
-
-
the "Player dropped...track... from jukebox" message is shown in yellow instead of orange, like all other jukebox messages – fixed
-
-
-
-
-
New features and other changes in the v0.81 release of ASECO/RASP:
-
-
-
new /chatlog command to display the most recent 30 (default) lines of player chat in a pop-up window
-
-
showing a FAST-like record report after each track is now optional too, via new config.xml setting <show_recs_after>; if False, the old top-5 from v0.7 is shown
-
-
new /admin showguestlist command to display the list of guest player(s)
-
-
new /admin writeguestlist and /admin readguestlist commands to write/read the player guestlist to/from disk
-
-
the player join/leave messages are now available from a separate jfreu.player.php plugin, in case you don't want/need the rest of the Jfreu functionality (rank limiting, unspec voting, badword filtering, admin commands, etc.)
-
-
the Jfreu unspec-fix plugin (jfreu.unspec.php) by F*ckfish is now part of the standard distribution, although by default not included in plugins.xml
-
-
-
Bug fixes in the v0.81 release of ASECO/RASP:
-
-
-
when a player connected, the before record report is shown to all players, instead of just the new one – fixed
-
-
-
-
-
Known problems in the v0.8+ releases of ASECO/RASP:
-
-
-
If all (non-spectator) players press DEL during the scoreboard at the end of a track, the track switching process is disturbed and the next track in the jukebox will not be loaded. No solution known, this appears to be a TMN server quirk.
-
New features and other changes in the v1.03 release of XASECO:
-
-
-
new support for an admin lock password:
-
-
a lock password for /admin and /jfreu commands, as well as other admin abilities and the admin panel, can be configured via new config.xml setting <lock_password>
-
if the password setting is non-empty, admins of any tier have to enter a password before being able to use admin commands and features
-
the new /admin unlock command compares the supplied password with the above setting, and unlocks the admin commands and features if valid
-
the unlock status is remembered for the duration of the player session, so after every reconnect admins will have to enter the password again before they are fully authorized
-
when an /admin or /jfreu command is not permitted, the error message does not distinguish between a login without admin abilities and the absence of its unlock status, so a player with a spoofed login is left guessing whether the login indeed belongs to an admin or whether an unlock password is required
-
-
-
new support for admin IP addresses:
-
-
after each <tmlogin> field in the <masteradmins> section in config.xml there is now an <ipaddress> field which, if not empty, should contain the IP address that this MasterAdmin login is authorized from
-
similarly, after each <tmlogin> field in the <admins> and <operators> sections in adminops.xml there are now <ipaddress> fields which, if not empty, should contain the IP addresses that these Admin and Operator logins are authorized from
-
if the specified IP address for a given login does not match, a player with a spoofed MasterAdmin, Admin or Operator login will only have normal player abilities, and any unauthorized attempts to use admin commands are logged
-
when starting v1.03 for the first time it is not necessary to add <ipaddress> fields to your adminops.xml file, as empty fields will be created and saved automatically the next time that this file is written (e.g. with /admin writeabilities) – IP addresses for existing logins can then be added manually, and the file reloaded with /admin readabilities
-
when using this security feature for the <masteradmins> section in config.xml, you do have to manually add the <ipaddress> fields to the file, whether empty or with actual IP addresses
-
newly added admins and operators will always be saved to adminops.xml with their IP address, so if you are not using this security feature you can manually delete the address from the file, and then reload it
-
note to plugin authors: because of these two security features the parameter type for the allowAbility, isMasterAdmin, isAdmin, isOperator and isAnyAdmin functions changed from a login string to a player object
-
-
-
new support for IP address bans, in co-operation with regular server bans (which are not preserved across TM server restarts):
-
-
the new bannedips.xml file can contain a list of banned IP addresses, which is automatically loaded at XASECO start-up
-
the IP addresses of players are checked against the list upon connecting, and banned players are kicked with a banned IP message
-
the existing /admin ban and /admin unban commands also add/remove the IP address of the pertaining player to/from the banned IPs list
-
the new /admin banip command adds a manually specified IP address to the list, and /admin unbanip removes an IP address from the list – /admin banip does not require the pertaining player to be online like /admin ban does
-
the new /admin showiplist command (alias /admin listips) displays the current list of banned IP addresses – on TMF if config.xml setting <clickable_lists> is True, the addresses in the output are buttons to invoke /admin unbanip on the selected IP
-
the new /admin cleaniplist command deletes the entire list of banned IP addresses
-
all commands automatically write the updated bannedips.xml file, but the new /admin writeiplist and /admin readiplist commands can also be used to write/read the list whenever you want
-
-
-
-
on TMF when plugin.msglog.php is enabled:
-
-
a small arrow button is displayed in the lower-left corner above the chat window button that will invoke /msglog, allowing to quickly review the system message history
-
the system message window now always displays the last 5 message lines, and the /msglog output has been reduced to a single-page window of 21 lines to avoid having to page in order to read the latest messages
-
global jukebox messages can now be diverted to the window, configurable via rasp.settings.php setting $jukebox_in_window (true/false)
-
global chat-based vote messages can also be diverted to the window, configurable via votes.config.php setting $vote_in_window (true/false)
-
-
-
new /admin writeabilities and /admin readabilities commands to write and read the admins/operators/abilities list to and from disk
-
-
the player join/leave messages (for both the full and lite Jfreu plugins) are defined via new jfreu.config.php settings $player_join, $player_joins, and $player_left
-
-
an optional divider message at the start of each track shows the name, author and author time, configurable via new config.xml setting <show_curtrack> (2 = TMF message window, 1 = chat, 0 = off)
-
-
it's now possible to specify multiple track IDs to /admin add (but not to /add due to the voting process) in order to quickly download more than one track from TMX or ShareMania – the optional TMX section or SM parameter should be last
-
-
when the target player of a /kick vote leaves before the vote completes, the vote is now cancelled
-
-
the karma message at the start of each track can now be disabled via new rasp.settings.php setting $karma_show_start (true/false)
-
-
the Dedimania welcome message for a newly connecting player can also be disabled via new dedimania.xml setting <show_welcome> (True/False)
-
-
the default name for the blacklist file used by /admin readblacklist and /admin writeblacklist is now configurable via new config.xml setting <blacklist_file> (default: blacklist.txt) – note that the TM server will continue to load the blacklist file with its default name at start-up, unless you adjust <blacklist_filename> in dedicated_cfg.txt as well
-
-
the default name for the guestlist file used by /admin readguestlist and /admin writeguestlist is also configurable via new config.xml setting <guestlist_file> (default: guestlist.txt) – note that the TM server will continue to load the guestlist file with its default name at start-up, unless you adjust <guestlist_filename> in dedicated_cfg.txt as well
-
-
the default name for the track history file is now configurable via new config.xml setting <trackhist_file> (default: trackhist.txt)
-
-
the output of /admin players is limited to at most 10000 entries to prevent possible memory overruns
-
-
the background of the TMF system message window is changed from transparent into blurry to enhance readability of the messages
-
-
a high-level outline of all of XASECO's features and plugins can be found on the new Overview page
-
-
the Upgrade notes for earlier versions are now archived on a separate page
-
-
this release requires the latest server build 2008-08-05
-
-
-
Bug fixes in the v1.03 release of XASECO:
-
-
-
on TMF with the Jfreu info messages diverted to the system message window, the /message command makes the window pop up much longer than the <window_timeout> value – fixed
-
-
if <cache_tags> in musicserver.xml is disabled, the /music list output isn't formatted correctly – fixed
-
-
attempts to /admin ban offline players are allowed (and naturally always fail) – fixed
-
-
the Z-value of the TMF /admin pay dialog puts it behind the full chat window – fixed
-
-
-
-
-
New features and other changes in the v1.02 release of XASECO:
-
-
-
new support for a system message window on TMF with the following features:
-
-
the message window becomes available when plugin.msglog.php is enabled (uncommented) in plugins.xml
-
various system messages that are sent to all players in the chat window can now be diverted into the message window in order to reduce chat clutter
-
the window normally pops up with the last 4 message lines whenever a new message is received, using a timeout that is configurable via new config.xml setting <window_timeout> (default: 6 seconds)
-
during the scoreboard at the end of each track, the window pops up with the last 6 lines if there are any new messages, for the same duration as the server's ChatTime setting (default: 10 seconds) plus an extra 5 seconds for the podium animation before the scoreboard comes up
-
the window size is restricted to 4 and 6 lines respectively due to the available screen space between the notice area and drop-down menu above it, and the main command window or scoreboard (at its largest size) below it
-
the new /msglog command displays the last 30 message lines so players can check back the system message history
-
messages to be diverted into this window can be any or all from:
-
-
new/improved/secured/equalled local records, configurable via new config.xml setting <recs_in_window> (True/False)
-
new/improved/secured/equalled Dedimania records, configurable via new dedimania.xml setting <recs_in_window> (True/False)
-
the local records report before a track, configurable via config.xml setting <show_recs_before> (add 4 to original value: 6 = full report in window, 5 = track record in window, 2 = full report in chat, 1 = track record in chat, 0 = off)
-
the local records report after a track, configurable via config.xml setting <show_recs_after> (add 4 to original value: 6 = full report in window, 5 = top-5 in window, 2 = full report in chat, 1 = top-5 in chat, 0 = off)
-
the Dedimania records report before a track, configurable via dedimania.xml setting <show_recs_before> (2 = message window, 1 = chat, 0 = off)
-
the Dedimania records report after a track, configurable via dedimania.xml setting <show_recs_after> (2 = message window, 1 = chat, 0 = off)
-
the round finish reports in Rounds mode, configurable via new config.xml setting <rounds_in_window> (True/False)
-
the TMX World Record message at the start of a track, configurable via config.xml setting <show_tmxrec> (2 = message window, 1 = chat, 0 = off)
-
the total playtime message at the end of a track, configurable via config.xml setting <show_playtime> (2 = message window, 1 = chat, 0 = off)
-
the Jfreu Info message at the end of a track, configurable via jfreu.config.php setting $infomessages (2 = message window, 1 = chat, 0 = off)
-
-
-
-
-
new /admin call command for MasterAdmins to directly execute a server call, essentially incorporating most of the RPC Utilities, with the following options:
-
-
help: Displays help information
-
help Method: Displays help for method
-
list: Lists all available methods
-
Method {params}: Executes method with any necessary parameter(s) and displays any result(s)
-
boolean parameters should be entered as 'true' and 'false' (without the single quotes); string parameters consisting of multiple words need to be entered between double quotes (")
-
methods that require an array or struct as parameter are not supported
-
Admins and Operators cannot use this command regardless of the <call> setting in adminops.xml, as it would permit them to bypass all the normal ability checks
-
-
-
-
new support for .OGG comments (ID3 tags) in the TMF music server plugin:
-
-
the new <cache_tags> setting in musicserver.xml defines whether to cache and display comments (typically ID3 tags) for all .OGG files in the song list
-
the new <cache_file> setting defines the filename where the cached comments are stored (default: musictagscache.xml)
-
when the cache file doesn't exist upon restarting XASECO, it is created, and all .OGG files are read and their comments extracted
-
upon further XASECO restarts, and when using /music reload, the cache file is used to load the comments for all known songs, and only the .OGG files for new songs are read
-
only the first block (512 bytes) of each .OGG file is read to minimize server traffic and start-up time, but obviously this can still take some time when building the initial cache for a large song collection
-
the cache file is then immediately written out with the title and artist for all songs, ready for future restarts and reloads
-
if comments are enabled, the /music current and /music settings commands include the title and artist in their output, and the /music list command displays a secondary line with the title and artist for every song
-
the cache file can be edited manually to make adjustments or corrections to the title and artist information
-
.MUX files are ignored because they are encrypted and cannot be parsed for their comments
-
-
-
-
on TMF (except when /style is off) all windows now show an icon in the left corner of the header that's appropriate for that window's content
-
-
on TMF if config.xml setting <clickable_lists> is True, the karma values in the /list karma output are buttons to invoke /karma on the selected track
-
-
on TMF in the /jukebox display output, admins with the clearjukebox ability get buttons at the end of every page to invoke /admin clearjukebox
-
-
the /recs and /dedirecs commands now accept the following options:
-
-
help: Displays help information
-
pb: Runs the /pb or /dedipb command, respectively
-
new: Runs the /newrecs or /dedinew command
-
live: Runs the /liverecs or /dedilive command
-
first: Runs the /firstrec or /dedifirst command
-
last: Runs the /lastrec or /dedilast command
-
next: Runs the /nextrec or /dedinext command
-
diff: Runs the /diffrec or /dedidiff command
-
range: Runs the /recrange or /dedirange command
-
without an option, they display the local or Dedimania records for the current track as before
-
-
-
the main aseco.php program now contains a few configuration definitions that cannot be stored in a .php or .xml file:
-
-
ABBREV_COMMANDS controls whether to define abbreviations for some chat commands: /ad for /admin, /jb for /jukebox, and /aj for /autojuke – this was previously controlled by uncommenting a few lines in the pertaining source files
-
INHIBIT_RECCMDS controls whether all local and Dedimania record relations commands are disabled from the /help and /helpall lists; these are: /pb, /newrecs, /liverecs, /firstrec, /lastrec, /nextrec, /diffrec, /recrange as well as /dedipb, /dedinew, /dedilive, /dedifirst, /dedilast, /dedinext, /dedidiff, /dedirange – note that the commands can still be used (and on TMN will be echoed to the chat window when doing so)
-
MONTHLY_LOGSDIR defines whether to write the log in monthly chunks in a "logs/" subdirectory – this was previously controlled by the $log_monthly_logsdir variable in function doLog() in includes/basic.inc.php
-
-
-
on TMF, tweaked the Z-values of the single- and multi-page windows so that they clearly stay "on top of" the full chat window (except when /style is off, as those windows were already displayed correctly)
-
-
if $always_show_pb = false in rasp.settings.php, the Personal Best message at the start of each track is also skipped if the player uses the records panel on TMF
-
-
the default name for the matchsettings file used by /admin readtracklist and /admin writetracklist is now configurable via new config.xml setting <default_tracklist> (default: tracklist.txt)
-
-
it's now possible to add an extra explanation to the /help output to help new players, configurable via new config.xml setting <help_explanation> (default: False)
-
-
chat-based voting commands can be temporarily disabled during the scoreboard at the end of a track, configurable via new votes.config.php setting $disable_while_sb (default: true)
-
-
the default number of tracks displayed by /list newest and /list oldest is now 50
-
-
the dedimania.xml settings <log_news>, <show_recs_range> and <display_recs> should now be specified as True/False instead of 1/0
-
-
the Dedimania system "refresh" is reduced from once every 3 minutes to once every 4 minutes
-
-
the /donpanel command is now disabled if plugin.donate.php is disabled in plugins.xml
-
-
optimized URL parsing in the get_file functions of the SMInfoFetcher, TMNDataFetcher, TMXInfoFetcher and TMXInfoSearcher modules
-
-
new window style ProgressBar, admin panel AboveSpeed2, donate panels LeftSmall and RightSmall, and vote panel BottomCenterTransp, courtesy of nouseforname
-
-
this release requires the latest server build 2008-07-22
-
-
-
Bug fixes in the v1.02 release of XASECO:
-
-
-
on some PHP systems all ManiaLink windows are broken – fixed by setting locale LC_NUMERIC = "C"
-
-
on some servers players that leave have their win counts cleared – fixed this long-standing issue
-
-
/ladder and /replay are unable to reload the current track (temporarily added via /add) if that has just been added permanently via /admin addthis – fixed
-
-
disabling the default donate panel in config.xml also disables the admin panel – fixed
-
-
-
-
-
New features and other changes in the v1.01 release of XASECO:
-
-
-
new TMX search support:
-
-
there is a new TMXInfoSearcher class to search TMX with the following features:
-
-
find tracks matching name, author and/or environment, returning up to 500 results from the TMNF/TMU sections and up to 20 from the TMO/TMS/TMN sections (due to an API limitation)
-
list the 10 most recent tracks (max. one per author) on any section
-
the TMXInfoSearcher object is an iterator that allows you to 'foreach' over it to obtain TMXInfo objects with all the info on each track
-
-
new /xlist command to list tracks on TMX with the following options and features:
-
-
help: Displays help information
-
recent: Lists the 10 most recent tracks (max. one per author)
-
<xxx>: Lists tracks the matching (partial) name
-
auth:<yyy>: Lists tracks the matching (partial) author
-
env:<zzz>: Where <zzz> is an environment from: Stadium, Bay, Coast, Island, Snow/Alpine, Desert/Speed, Rally (case-insensitive)
-
<xxx> auth:<yyy> env:<zzz>: Combines any of the name, author and/or environment searches
-
<tmx>: Where <tmx> is a TMX section from: TMO, TMS, TMN, TMNF, TMU (case-insensitive)
-
the section option must be the last one but can be combined with any of the above searches; on a TMNF server the default section is TMNF, on a TMUF server it's TMU, and of course the TMN section on a TMN server
-
on TMF if config.xml setting <clickable_lists> is True, the TMX ids are buttons to invoke /tmxinfo on the selected track; the track names invoke /add on the selected track; admins with the add ability also get Add buttons to invoke /admin add on the selected track; and the author names invoke /xlist auth: on the selected author
-
on TMN you can list tracks in other TMX sections, but obviously only add them from the TMN section
-
-
-
-
new ShareMania support:
-
-
with /add <ID> SM and /admin add <ID> SM you can now use the ShareMania site to download tracks ('SM' is case-insensitive)
-
new /sminfo command (based on the new SMInfoFetcher class) to display the ShareMania information on the current track or, when given a track ID (from /list) or an SM ID, any other track
-
-
-
-
new TMUF donate panel support with the following features:
-
-
the donate panel shows buttons for seven different donation values, by default: 20, 50, 100, 200, 500, 1000, 2000 (configurable in plugin.donate.php)
-
the buttons invoke the /donate command with the specified coppers value
-
the distribution's panels/ subdirectory can contain up to 20 donate panel templates; their filenames must start with 'Donate'
-
there are 6 standard templates in various positions and sizes all around the HUD
-
templates define the complete ManiaLink panel with position, size and fonts, so you have full control to develop custom panels
-
the default donate panel is configurable via new config.xml setting <donate_panel> (default: BelowCPList)
-
new /admin donpanel <xxx> command to select another default donate panel for newly connecting players (requires panel name, 'off' disables the default)
-
the new /donpanel command allows players to select an individual donate panel with the following options:
-
-
help: Displays help information
-
list: Displays available panels
-
default: Resets panel to server default
-
off: Disables donate panel
-
<xxx>: Selects donate panel <xxx>, which can be a panel name or the sequence number from /donpanel list
-
in the /donpanel list overview a player can also click a panel name to dynamically select a new panel (or refresh the current one if its .xml file was updated)
-
-
on TMNF servers, players using the /donpanel command (and admins using /admin donpanel) receive a message that a TMUF server is needed; on TMUF servers, a TMNF player receives a message that a TMUF account is needed
-
-
-
-
automatically enabling /cps and /dedicps for newly connecting players is now configurable via new config.xml settings <auto_enable_cps> and <auto_enable_dedicps>
-
-
new /admin pay command (TMUF-only) to pay server coppers to a login, including another server login, with the following features:
-
-
the required parameters are the login, which can be any valid player or server login, and the coppers amount to pay
-
the command provides a dialog box, similar to the donation dialog, allowing the admin to confirm or cancel the payment
-
after confirmation, the payment happens immediately but the Nadeo tax (2 coppers plus 5 % of the transaction) isn't deducted from the server account until any player joins or leaves the server
-
on TMNF servers, admins using this command receive a message that a TMUF server is needed
-
-
-
new /admin cleanmutes command (alias /admin cleanignores) to completely clean the global mute/ignore list
-
-
the /admin server command now also works on TMN (albeit with the column alignment difficulties inherent to those windows)
-
-
on TMF, /server and /admin server now show the server's rights (United or Nations) and /stats shows the pertaining player's rights
-
-
on TMNF servers, players using the /donate command now receive a message that a TMUF server is needed; on TMUF servers, a TMNF player receives a message that a TMUF account is needed
-
-
on TMNF servers, admins using the /admin coppers command now receive a message that a TMUF server is needed
-
-
updated the Dedimania system to randomly choose between the existing :8006 and :8007 and new :8011, :8012 and :8013 communication ports (remember to open those ports on your firewall/router as well) in order to distribute the load across more Dedimania servers
-
-
attempts to /add, /admin add or /admin addlocal a track that's larger than 256 KB (the maximum online track size) are aborted with an error message
-
-
when using the full Jfreu plugin, the banning period by the badword filter is now configurable via $badwordstime in jfreu.config.php (default: 10 minutes)
-
-
new /jfreu badwordstime command to set the banning period (in minutes)
-
-
on TMF, unusual characters (such as in challenge names and player nicknames) no longer cause ManiaLink windows not to be displayed
-
-
on TMF, all standard admin panel templates now use the animated Buddy icon instead of the static Buddies one
-
-
on TMF, added the server's login, rights and packmask to the start-up header in the log
-
-
on TMN the default style and panel templates are no longer loaded
-
-
optimized the multi-page ManiaLink windows code on TMF
-
-
-
Bug fixes in the v1.01 release of XASECO:
-
-
-
on TMF, using /style <##>, /admin panel <##>, /recpanel <##> and /votepanel <##> to select the default style/panel doesn't work – fixed
-
-
on TMF, unofficial players (ladder rank -1) can bypass the rank limit checks – fixed
-
-
if a player reconnects within the same second after disconnecting, a MySQL warning is logged – fixed this long-standing bug
-
-
using /add on a track that's already in the server's list does not properly jukebox it anymore – fixed
-
-
on Windows, downloading the same track from TMX again with /add or /admin add can result in a PHP warning – fixed
-
-
if a newly connected player uses /refresh, a PHP warning can result – fixed
-
-
bogus PlayerFinish callbacks (with no valid login) occasionally result in PHP/XASECO warnings – fixed, such callbacks are now ignored
-
-
there are some layout glitches in the /jfreu players output when /style is off – fixed
-
-
the /jfreu badwordsnum command actually shows the /jfreu maxplayers value – fixed
-
-
on TMN, /admin players results in a 'GetIgnoreList' warning – fixed
-
-
a non-responding music server can cause XASECO to time out or crash when loading a song – fixed
-
-
log messages with a "Fatal Error" don't include the source file where the error occurs – fixed
-
-
-
-
-
New features and other changes in the v1.00 release of XASECO:
-
-
-
new TMF window styles support with the following features:
-
-
the distribution includes a new styles/ subdirectory that can contain up to 50 style templates for the ManiaLink windows
-
there are no fewer than 20 standard templates in light and dark, and in transparent, blurred and opaque variants
-
templates define the window, header and body background containers, as well as the header and body text fonts, and the clickable button style
-
the default window style is configurable via new config.xml setting <window_style> (default: DarkBlur)
-
new /admin style <xxx> command to select another default window style for newly connecting players (requires style name, 'off' disables the default)
-
the new /style command allows players to select an individual window style with the following options:
-
-
help: Displays help information
-
list: Displays available styles
-
default: Resets style to server default
-
off: Disables TMF window style
-
<xxx>: Selects window style <xxx>, which can be a style name or the sequence number from /style list
-
in the /style list overview a player can also click a style name to dynamically select a new style (or refresh the current one if its .xml file was updated)
-
-
multi-page windows get ArrowFirst and ArrowLast buttons to jump directly to the first and last pages – as with the plain TMN-like style, windows of more than 5 pages also get ArrowFastPrev (Prev5) and ArrowFastNext (Next5) buttons to jump back and forth by 5 pages
-
note that on TMNF the Black, Blue, Cyan and Orange styles revert to Green, so you might as well remove those files to prevent player confusion
-
-
-
-
new TMF admin panel support with the following features:
-
-
the admin panel contains 7 icons to perform common admin tasks, from left to right (or top to bottom):
- the ClipRewind icon for /admin restartmap, ClipPause for /admin endround, ClipPlay for /admin nextmap, Refresh for /admin replaymap, ArrowGreen for /admin pass, ArrowRed for /admin cancel and Buddies for /admin players live
-
the distribution includes a new panels/ subdirectory that can contain up to 40 admin panel templates; their filenames must start with 'Admin'
-
there are 14 standard templates in various positions and sizes all around the HUD
-
templates define the complete ManiaLink panel with position, size and fonts, so you have full control to develop custom panels
-
the default admin panel is configurable via new config.xml setting <admin_panel> (default: BelowChat)
-
new /admin admpanel <xxx> command to select another default admin panel for newly connecting admins (requires panel name, 'off' disables the default)
-
the new /admin panel command allows admins to select an individual admin panel with the following options:
-
-
help: Displays help information
-
list: Displays available panels
-
default: Resets panel to server default
-
off: Disables admin panel
-
<xxx>: Selects admin panel <xxx>, which can be a panel name or the sequence number from /admin panel list
-
in the /admin panel list overview an admin can also click a panel name to dynamically select a new panel (or refresh the current one if its .xml file was updated)
-
-
as with chat commands, use of the buttons in the admin panel remains governed by the tiered admin system and the ability lists
-
-
-
-
new TMF records panel support with the following features:
-
-
the records panel lists the Personal Best, Local #1 record, Dedimania #1 record and TMX world record
-
the times (or scores in TMUF Stunts mode) for these four fields act as buttons to invoke the /topsums, /recs, /dedirecs and /tmxrecs commands, respectively
-
the distribution's panels/ subdirectory can contain up to 50 records panel templates; their filenames must start with 'Records'
-
there are 15 standard templates in left- and right-edge variants
-
templates define the complete ManiaLink panel with position, size and fonts, so you have full control to develop custom panels
-
the default records panel is configurable via new config.xml setting <records_panel> (default: RightBottom)
-
new /admin recpanel <xxx> command to select another default records panel for newly connecting players (requires panel name, 'off' disables the default)
-
the new /recpanel command allows players to select an individual records panel with the following options:
-
-
help: Displays help information
-
list: Displays available panels
-
default: Resets panel to server default
-
off: Disables records panel
-
<xxx>: Selects records panel <xxx>, which can be a panel name or the sequence number from /recpanel list
-
in the /recpanel list overview a player can also click a panel name to dynamically select a new panel (or refresh the current one if its .xml file was updated)
-
-
all players' records panels are updated when a new #1 Local or Dedimania record is driven, a player's own panel when a new Personal Best is driven
-
when the scoreboard comes up at the end of a track, records panels are temporarily disabled
-
note that on TMNF some of the Blue fonts revert to Green, so you could rename those files to prevent player confusion
-
-
-
-
new TMF vote panel support with the following features:
-
-
the vote panel provides Yes and No buttons for TMX /add and all chat-based votes
-
players can also operate the buttons with the F5 and F6 keys respectively (the keys don't work for spectators)
-
the Yes button and F5 key invoke the /y command, the No button and F6 key are dummy operations to close the vote panel, which is necessary for a consistent user interface experience
-
the vote panel is displayed for all players upon entering an /add or chat-based voting command, except for spectators when $allow_spec_voting in votes.config.php is off (but admins always get the vote panel) and for the vote initiator when $auto_vote_starter is on (because that already invokes /y automatically)
-
a player's vote panel disappears once clicked (or when entering /y), and any remaining panels disappear automatically when a vote passes, expires, or is cancelled
-
the color of the Yes button matches the type of vote: pink ({#vote} in config.xml) for chat-based votes and orange ({#emotic}) for /add votes; the No button is always dark gray
-
the distribution's panels/ subdirectory can contain up to 10 vote panel templates; their filenames must start with 'Vote'
-
there are 4 standard templates in various positions and sizes around the HUD
-
templates define the complete ManiaLink panel with position, size and fonts, so you have full control to develop custom panels
-
the default vote panel is configurable via new config.xml setting <vote_panel> (default: BelowChat)
-
new /admin votepanel <xxx> command to select another default vote panel for newly connecting players (requires panel name, 'off' disables the default)
-
the new /votepanel command allows players to select an individual vote panel with the following options:
-
-
help: Displays help information
-
list: Displays available panels
-
default: Resets panel to server default
-
off: Disables vote panel
-
<xxx>: Selects vote panel <xxx>, which can be a panel name or the sequence number from /votepanel list
-
in the /votepanel list overview a player can also click a panel name to dynamically select a new panel (or refresh the current one if its .xml file was updated) – while doing this the panel is briefly displayed to show its new location
-
-
when the scoreboard comes up at the end of a track, vote panels are disabled (because the ongoing vote expires at that point)
-
-
-
-
the /admin players command now accepts a special option live to display a list of just the online players, rather than any players in the database that match the search string
-
on TMF the /admin players command now provides a comprehensive player management window:
-
-
the nick/login buttons will invoke /stats on the selected player
-
the operation buttons invoke, from left to right, on the selected player: /admin warn, /admin ignore or /admin unignore, /admin kick, /admin ban or /admin unban, /admin ban or /admin unblack, /admin addguest or /admin removeguest, and /admin forcespec
-
the toggle operations show the operation that is meaningful with respect to the player's status, e.g. UnIgnore for an ignored player, Add Guest for a non-guest one, and no Force Spec button for a spectator
-
operations can be performed on both online and offline players, but buttons are only provided when that operation is feasible, e.g. offline players cannot be warned, ignored, kicked or banned but they can still be unbanned and unblacked
-
the window is refreshed (albeit to the first page) to show the new status when any toggle operation is performed, i.e. (Un)Ignore, Kick, (Un)Ban, (Un)Black, Add/Remove Guest and Force Spec
-
buttons are only provided for the first 200 players, which should be sufficient for the live list – if the desired player in an offline list is beyond the 200 mark, refine your search string
-
-
-
-
new /jfreu players command to display the list of all known players since the last XASECO restart, and search for offline players via a (part of a) login or nickname with /jfreu players <string>
-
the special option live displays a list of just the online players, rather than any players tracked since the last XASECO restart that match the search string
-
on TMN this command also includes the current Badword count for each player if $badwords in jfreu.config.php is 1 (true)
-
on TMF this command provides the second player management window:
-
-
as before, the nick/login buttons will invoke /stats on the selected player
-
the operation buttons invoke, from left to right, on the selected player: /jfreu badword (if $badwords is 1), /jfreu banfor 1H, /jfreu banfor 24H, /jfreu unban, /jfreu addvip or /jfreu removevip, and /jfreu unspec
-
also shown are the player's current badword count (if $badwords is 1) and the time left in a temporary ban, if any
-
the single toggle operation in this window shows the operation that is meaningful with respect to the player's status, i.e. Add or Remove a player as VIP
-
the Spec column provides an UnSpec button for SpecOnly players, and otherwise shows the player's current status (Player, Spec or Offln)
-
operations can be performed on both online and offline players, but buttons are only provided when that operation is feasible, e.g. offline players cannot have their badword count incremented or be unspec-ed but they can still be temporarily banned
-
the window is refreshed (albeit to the first page) to show the new status after all of the operations
-
buttons are only provided for the first 200 players, which should be sufficient for the live list – if the desired player in an offline list is beyond the 200 mark, refine your search string
-
-
-
-
on TMF in the output of the various /list lists, /best and /worst, an author column has been added
-
-
on TMF it's now possible to add clickable buttons to relevant lists, configurable via new config.xml setting <clickable_lists> (default: True):
-
-
in the various /list lists, /best and /worst the track buttons will jukebox the selected track; no button is displayed for tracks in the track history – supports up to 1900 tracks
-
in the various /list lists, /best and /worst the author buttons will invoke /list <author>
-
on TMUF, in the various /list lists, /best and /worst the environment buttons will invoke /list env: for the selected environment
-
in /music list the song buttons will jukebox the selected song – supports up to 1900 songs
-
in /jukebox display a player will get a button only for the name of his/her own jukebox track, which can be used to drop it; admins of any tier with the dropjukebox ability get buttons for all track names to drop any of them – supports up to 100 tracks
-
in /players the nick/login buttons will invoke /stats on the selected player – supports up to 200 players
-
in /stats the Time Played field is a button to invoke /active, Server Rank invokes /top100, Records invokes /toprecs and Races Won invokes /topwins
-
in /admin listignores, /admin listbans, /admin listblacks and /admin listguests the nick/login buttons will invoke /admin unignore, /admin unban, /admin unblacks and /admin removeguest (respectively) on the selected player – supports up to 200 players
-
in /jfreu listbans, /jfreu listvips and /jfreu listvipteams the nick/login/team buttons will invoke /jfreu unban, /jfreu removevip and /jfreu removevipteam (respectively) on the selected player/team – supports up to 200 players/teams
-
this works with any window style, including the plain TMN-like style
-
-
-
-
all clicked commands in the aforementioned windows and panels are logged analogous to chat commands
-
-
when you've added more style or panel templates than the maximum, a warning is logged and the excess templates are ignored
-
-
new /autojuke command to automatically jukebox the first available track from the chosen /list selection (e.g. /autojuke nofinish, /autojuke norank... see /autojuke help) – optional alias /aj becomes available by uncommenting the appropriate two lines at the start of plugin.rasp_jukebox.php
-
-
new /admin forcespec command to force a player into spectator mode (free camera)
-
-
the /stats command now accepts an optional login or player ID by all players, not just admins with the chat_stats ability – that ability was renamed to chat_statsip and defines which admin tiers can see the player's IP address (for privacy reasons this isn't shown to all players)
-
-
on TMF, players' team names are no longer updated (cleared) in the local database upon reconnection, so that a plugin/command (e.g. /teamname in plugin.matchsave.php) can store meaningful team names in the database
-
-
on TMF if a track contains no custom song, /song will advise to try /music current if the music server plugin is enabled
-
-
when the scoreboard comes up at the end of a track, any pop-up windows are now automatically closed
-
-
optimized the checkpoints panel display code
-
-
HTTP GET requests to TMX and for the up-to-date check now include a User-Agent header to allow minimal statistics tracking
-
-
updated the GBXDataFetcher module to rename the GBXDataFetcher class to GBXChallengeFetcher, and add the new GBXReplayFetcher class (not used in XASECO though)
-
-
-
Bug fixes in the v1.00 release of XASECO:
-
-
-
the search order is missing from the /list karma header – fixed
-
-
on TMF, the /admin listignores (aka. ignorelist) listing could get mixed up with previous window output – fixed
-
-
reminder, expiration and cancellation messages for /add votes show the unstripped track name – fixed
-
-
-
-
-
New features and other changes in the v0.99b release of XASECO:
-
-
-
new /admin clearhist command to clear part of, or the entire, track history: with no option, it shows the total number of tracks in the history; with the 'all' option, the entire history is cleared; with a positive number, that many of the most recent tracks are cleared, and with a negative number that many of the oldest tracks
-
-
the music server plugin supports song files in subdirectories at the server URL, but now those subdirectories can be excluded in any command that shows songs (configurable via new musicserver.xml setting <strip_subdirs>)
-
-
new /music stripdirs command to change the strip subdirs setting; the /music settings output also includes the StripDirs value
-
-
a flexible way to control the contents of the ManiaLinks <custom_ui> block now allows other plugins and widgets to co-operate with the main XASECO system
-
-
the config.xml settings <show_recs_before> and <show_recs_before> are now integers instead of booleans: 2 = show the full records report, 1 = show just the track record before or the top-5 records after the track, 0 = show no records at all (reduces chat message volume when a records ManiaLink panel is displayed)
-
-
when XASECO is out of date and a master admin connects, he/she will automatically receive an /admin uptodate reminder message – hopefully this will motivate more master admins to keep their XASECO version in sync with the latest release
-
-
-
Bug fixes in the v0.99b release of XASECO:
-
-
-
new local records aren't properly marked anymore in /liverecs, /newrecs, rounds reports and the records report after a track – fixed
-
-
too stringent input checking for /admin setpwd, /admin setspecpwd and /admin setrefpwd prevents clearing those passwords – fixed
-
-
-
-
-
New features and other changes in the v0.99 release of XASECO:
-
-
-
new music server support (TMF-only) becomes available when plugin.musicserver.php is enabled (uncommented) in plugins.xml, offering the following features:
-
-
the music plugin is configured via musicserver.xml, containing the following entries:
-
-
the server URL, an http server that must allow direct download of the song files from the specified directory
-
a list of song files (case-sensitive) in .OGG or .MUX format that must exist at the server URL – duplicates are removed when loading the XML file
-
configuration options to control whether to override a track's own music, whether to automatically load the next song upon the next track, and whether to allow jukeboxing songs by players
-
a list of plugin messages
-
-
the new /music command offers the following options:
-
-
help: Displays help information – admins see all options, other players only the options they can use
-
settings: Displays current music settings – for security, only admins see the server URL
-
off: Disables music, auto next & jukebox – admin-only
-
jukebox (alias jb): Displays upcoming songs in jukebox
-
drop: Drops your currently added song
-
<##>: Adds a song to jukebox where <##> is the number from /music list
-
-
a new <music> color is defined in config.xml and used in all relevant music messages so that they can easily be customized
-
a new chat_musicadmin ability controls which tiered admin levels can use the /music admin commands
-
if autonext is enabled, the next song from the list will be loaded upon the next track, unless an admin manually skipped to the next song or the jukebox specifies another song
-
if allowjb is enabled, any player can add one song at a time to the jukebox – to jukebox another, first use the drop option
-
the same song cannot by added to the jukebox more than once
-
if a track itself contains a song and override is disabled, a possible jukeboxed song is skipped as it's not possible to detect the track song
-
the off option disables server music upon the next track (so the in-game music returns), clears the jukebox, and disables the autonext and allowjb options so no new songs get loaded – to enable server music again, simply turn either or both options back on
-
the reload and shuffle options also clear the jukebox
-
a warning message is logged when a song file cannot be loaded, and no song change takes place until the next track
-
reminder: to see the filename of a track's own song, use the /song command
-
-
-
-
new donation support (TMUF-only) becomes available when plugin.donate.php is enabled (uncommented) in plugins.xml, providing the following features:
-
-
new /donate command to give coppers to the server
-
the minimum donation is 10 coppers (because of Nadeo tax)
-
donations of 100 and more coppers are awarded with a public appreciation message (below 100 it remains private)
-
both thresholds are configurable in plugin.donate.php
-
a new <donate> color is defined in config.xml and used in all relevant donation messages so that they can easily be customized
-
remember that the server's coppers amount (seen with /admin coppers) isn't updated until any player joins or leaves the server
-
important: you must make an initial donation from a TMUF player login to your server login via the in-game message system, so that there are sufficient coppers in the account to pay the Nadeo tax on the first /donate transaction
-
an account rights error is shown when attempting to donate from a TMNF player account or to a TMNF server account
-
-
-
new /list env:zzz option (TMUF-only) to search for tracks by environment, where zzz can be: Stadium, Bay, Coast, Island, Alpine/Snow, Desert/Speed, Rally (case-insensitive) – can also be combined with a search for track/author name in either order: /list xxx env:zzz or /list env:zzz xxx (remember that xxx itself is allowed to contain spaces too)
-
-
on TMF, the /stats output now includes the time (in days and hours) since the player inscribed in the zone, as well as the last match score, number of wins/draws/losses and win/loss ratio (which are included in the /statsall output on TMN)
-
-
on TMF, the /server output now includes the server comment – note however that special formatting in long comments is not continued after column line breaks
-
-
new /admin server command (TMF-only) to display the server's detailed settings
-
-
new /admin setcomment command to change the server comment
-
-
new /admin setmaxspecs command to change the maximum number of spectators
-
-
new /admin setpwd, /admin setspecpwd and /admin setrefpwd commands to change the player, spectator and referee passwords (referee only on TMF)
-
-
new /admin setrefmode command (TMF-only) to change the Referee mode (0 = top3, 1 = all)
-
-
new /admin forceteam command (TMF-only) to force a player into the 'Blue' or 'Red' team (the names can be abbreviated to 'B' and 'R') – if no team is specified, the player's current team is shown
-
-
new /admin nextenv command (TMUF-only) to skip to the next track within the same environment
-
-
on TMF, the track name is now hyperlinked to the corresponding TMX page (if available) in the /track, /playtime, /newrecs and /liverecs messages as well as the local record reports before and after each track, and the total playtime message at the end of each track in Rounds/Team/Cup mode
-
-
on TMF, the track name is now hyperlinked to the corresponding Dedimania page in the /dedinew and /dedilive messages as well as the Dedimania record reports before and after each track
-
-
in TMUF Stunts mode, updated the TMX World Record message and /tmxrecs output to show scores
-
-
in TMUF Stunts mode, the total playtime message at the end of each track isn't shown anymore (always 5 minutes)
-
-
the /tmxinfo output now includes the TMX section for the track, as well as the download link to the TMX World Record replay (if available)
-
-
when the current track is not found on TMX, /tmxinfo and /tmxrecs now show the track name instead of the UID in the error message
-
-
added new internal onStatusChangeToX (X = 1-5) event for the corresponding TM server status changes, and new internal onKarmaChange event for karma vote changes
-
-
enforced strict and complete error checking on all local database operations
-
-
added a warning if the SuperAdmin password is still set to the default (and insecure) 'SuperAdmin'
-
-
added the operating system to the first log message during start-up
-
-
set a 20 MB memory limit for the XASECO PHP process
-
-
this release requires the latest server build 2008-05-19
-
-
-
Bug fixes in the v0.99 release of XASECO:
-
-
-
when the TM server goes away (e.g. crashes), XASECO loops forever at high load – fixed, XASECO also shuts down with an appropriate error message
-
-
tracks downloaded via /add and /admin add are corrupted since v0.98 and won't load in-game – fixed
-
-
in TMUF Stunts mode, the new/improved/secured/equalled record messages (both local and Dedimania) specify that the finish value is a Time – fixed into Score
-
-
on TMF, players added to the global mute list are still able to send global messages via the /me, /hi, /bye, etc. chat commands – fixed
-
-
on TMF, the muting system handles only 18 lines of the full chat window – increased to all 28 lines
-
-
on TMF, there is a tiny layout glitch in the /server output – fixed
-
-
there is no log message for /admin setgamemode – fixed
-
-
-
-
-
New features and other changes in the v0.98 release of XASECO:
-
-
-
new /dedicps command to select which Dedimania record is used as reference for checkpoints tracking, with the following features:
-
-
checkpoint references are stored for all players (according to their preferences) only at the start of a track, not when entering the /dedicps command or when the player (re)connects
-
with no parameter (/dedicps) the player's own record on each track is selected or, if none is set, the last record on the pertaining track
-
/dedicps {1-30} selects Dedimania record 1-30 on each track or, if unavailable, again the last record
-
/dedicps off disables the Dedimania references for checkpoints tracking
-
as usual, once a player gains a better finish time than the chosen Dedimania reference, the checkpoints panel (TMF) or pop-up (TMN) will use those corresponding checkpoints for further updates during the current track
-
if the checkpoints for the chosen Dedimania record are invalid (empty, or the last checkpoint doesn't match the finish time) then no record is used as reference during that track for the pertaining player(s)
-
the chosen /dedicps setting is remembered between a player's reconnects as long as /cps remains enabled, until the next XASECO restart
-
-
-
new /admin shuffle (alias /admin shufflemaps) command to shuffle (randomize) the current track list; this requires having set <writetracklist_random> to True in config.xml, and defining an $autosave_matchsettings filename in rasp.settings.php – note that autosaving only happens during a track switch, so if you shuffle immediately after adding a track, the addition will be lost
-
-
new /admin addlocal command to add a track to the server's track list from the local 'Challenges/Downloaded/' directory; the track filename cannot contain spaces or non-typable characters, but can be entered case-insensitively and the '.Challenge.gbx' extension is optional – also, the $jukebox_adminadd setting is respected
-
-
new /admin specfree command (TMF-only) to set the camera mode of a spectator (login or ID) to Free – requires build '2008-05-07' or later
-
-
added support for TMF Laps mode:
-
-
the checkpoints tracking system (if activated via /cps) will show the difference to the best lap at each checkpoint and at the lap finish, and update the best lap data after each improved lap
-
if /dedicps is activated, the lap data for the chosen Dedimania record is used as initial best lap according to the rules above
-
local records are now maintained and compared on lap basis, meaning that those records will usually be unbeatable once the server is switched back to another game mode than TimeAttack, so keep that in mind when picking tracks for TimeAttack and Laps versus other modes
-
Dedimania records are also maintained and compared on lap basis like the central Dedimania system does (where they're mixed with TimeAttack mode records only), so they are now properly supported
-
-
-
added support for TMUF Stunts mode:
-
-
updated /track, /recs and /dedirecs, /pb and /dedipb, and all record relation commands to show scores
-
updated the 'before' and 'after' track record messages (both local and Dedimania) to show scores
-
updated the new/improved/secured/equalled record messages (both local and Dedimania) to show scores
-
updated all record sorting into descending order
-
updated /list nogold and /list noauthor to check for player scores worse than the tracks' gold and author scores
-
adjusted the /list help information
-
disabled the /list longest/shortest command
-
disabled all /cps functionality (checkpoints are inactive)
-
disabled Dedimania records handling until the central Dedimania system supports them
-
-
-
added explanations why the checkpoints panel doesn't appear immediately when /cps is activated (Stunts mode, spectating, and warm-up phase all disable the panel temporarily)
-
-
on TMF, multi-page ManiaLink windows now show the current and total page numbers in the header
-
-
on TMF, multi-page ManiaLink windows of more than 5 pages now include Prev5 and Next5 buttons to speed up navigation through long lists
-
-
updated the Dedimania system to randomly choose between the :8003 and new :8006 and :8007 communication ports (remember to open those ports on your firewall/router as well) in order to distribute the load across more Dedimania servers
-
-
new records in the /recs and /dedirecs lists are now highlighted with a black time
-
-
on TMF, the /stats output now displays the full location path (sans "World|") instead of just the nation (thanks w1lla)
-
-
on TMF, the /server output now includes the server's location path (again without "World|") – requires build '2008-05-07' or later
-
-
added the capability to write the log in monthly chunks named "logfile-YYYYMM.txt" in an (automatically created) "logs/" subdirectory, instead of the single big "logfile.txt" – this is activated by setting "$log_monthly_logsdir = true" in function doLog() in includes/basic.inc.php, as it cannot be a configuration option because configs aren't read until later during start-up
-
-
various welcome messages and in-game URLs are now hyperlinked to the external browser
-
-
updated the /add and /admin add commands to time out when the TMX site is down
-
-
minor optimizations of all multi-page window code
-
-
an example plugin.ml_howto.php module is included to demonstrate how to create single- and multi-page ManiaLink windows
-
-
-
Bug fixes in the v0.98 release of XASECO:
-
-
-
when <lists_colortracks> is True, recently played tracks are no longer greyed out to visually distinguish them from tracks that can be jukeboxed – fixed
-
-
jukeboxing a track via /admin add and /admin replay leaves out the Environment value – fixed
-
-
even when a player ID cannot be obtained from the local database, there's still an attempt to insert a finish time for the pertaining player login – fixed
-
-
on TMF, the /admin shutdown command produced a PHP warning because /autoquit is now the default – fixed, a QuitGame call is only done if /noautoquit was active
-
-
-
-
-
New features and other changes in the v0.97 release of XASECO:
-
-
-
on TMF, the brief /cps pop-up is now a permanent, small transparant panel, mid-center of the screen just above the race time; it is temporarily disabled when a player switches to spectator mode though
-
-
on TMF, the checkpoints panel now also shows the difference against the best run at the finish ('CPF')
-
-
in TMF Cup mode, the end of the warm-up phase no longer generates an onEndRace event, preventing several chat messages that only belong at the end of the track; also, during warm-up the checkpoints panel is temporarily disabled
-
-
on TMF, the /tmxinfo window now displays the track screenshot from TMX
-
-
on TMF, /tmxinfo {ID} and /tmxrecs {ID} accept an optional TMX section parameter (TMN, TMU, TMNF, and even TMO, TMS &ndash all case-insensitive) after the TMX track ID to enable displaying track info from another section than the default (as outlined in the v0.96 release notes)
-
-
new /admin scorepanel command (TMF-only) to show the current Automatic Scorepanel setting – displaying the scoreboard after each run/round, or only at the end of the track – and to toggle it with an ON" or "OFF" (case-insensitive) parameter
-
-
new /admin roundsfinish command (TMF-only) to show the current Rounds Finishpanel setting – displaying the rounds panel for all players when the first player finishes, or not until each player finishes him/herself – and to toggle it with an ON" or "OFF" (case-insensitive) parameter
-
-
displaying colored or stripped player nicknames in /top10, /top100, /toprecs, /topsums, /topwins, /recs, /dedirecs and /active is now configurable via new config.xml setting <lists_colornicks> – because of column formatting caveats, it's recommended to keep nicknames stripped on TMN, as they were before
-
-
displaying colored or stripped tracknames in all /list commands, /best, /worst, /jukebox display and /admin listdupes is now configurable via new config.xml setting <lists_colortracks> – again, it's recommended to keep tracknames stripped on TMN as they were before
-
-
the teamnames in the /topclans output are not color-stripped anymore
-
-
Dedimania system timeouts are handled better to prevent record message flooding; also, improved logging and debugging of the low-level Dedimania layers
-
-
on TMF, any admin with the new server_coppers ability can see the server's coppers amount in the /server output
-
-
new /admin coppers command (TMF-only) to similarly check the server's coppers amount
-
-
on TMUF, the output of all /list commands (including /best, /worst) and of /jukebox display and /admin listdupes now includes an Env(ironment) column
-
-
on TMUF, the chat and log messages for the next jukebox track now specify that track's environment
-
-
added new internal onBillUpdated, onChallengeListModified and onPlayerInfoChanged events for the corresponding new TMF callbacks; also, the onEndRound event is now triggered by the real TMF EndRound callback
-
-
the new onPlayerInfoChanged event is now used to keep track of players' spectator status to avoid an extra GetPlayerInfo call whenever that status is needed (thanks Dagobert)
-
-
updated the stripColors function to strip out the '$h', '$l' and '$p' links for TMF as well
-
-
clarified all error messages related to XML config files not being read or parsed correctly
-
-
fine-tuned column widths of many ManiaLink windows
-
-
when restarting XASECO, all ManiaLinks on all connected clients are cleared
-
-
-
Bug fixes in the v0.97 release of XASECO:
-
-
-
when Dedimania is slow to respond to a track switch, the updated records message for the finished track may not appear until the next track is loaded, and use that new track's name – fixed
-
-
on TMF, very long country names cause layout glitches in the /players output – fixed, country names longer than 14 characters are mapped to their nation abbreviations
-
-
on TMF in Rounds/Team/Cup mode, the last 'Rx>' rounds report isn't shown due to a different callback sequence – fixed by using the real EndRound callback above
-
-
if a player connects without a team name, the TMNDataFetcher is used to try and obtain it from the TMN master server, even on TMF – fixed
-
-
the file_exists_nocase function (used by /add and /admin add) doesn't work correctly on Windows – fixed (hopefully)
-
-
adjusted two function declarations and related calls to avoid pass-by-reference warnings on some PHP setups
-
-
the /summary chat message was largely lacking the shadow attribute – fixed
-
-
-
-
-
New features and other changes in the v0.96b release of XASECO:
-
-
-
on TMF, the global mute list now uses the built-in Ignore features instead of the muting plugin, so the actual muting works much better; the plugin is still needed for the individual player muting features though
-
-
accordingly, there are new aliases for the related admins commands: /admin ignore (for /admin mute), /admin unignore (for /admin unmute), /admin ignorelist and /admin listignores (for /admin mutelist and /admin listmutes)
-
-
on TMF, the ManiaZones country names are mapped back to three-letter nation abbreviations for storage in the local database and for Dedimania; to repair the Nation field in the local 'players' table, you can use this script
-
-
new $autosave_matchsettings option in rasp.settings.php to enable autosaving the matchsettings file (with a configurable name) upon every track switch
-
-
on TMF, /add and /admin add accept an optional TMX section parameter (TMN, TMU, TMNF, and even TMO, TMS &ndash all case-insensitive) after the TMX track ID to enable downloading a track from another section than the default (as outlined in the v0.96 release notes)
-
-
when a track is jukeboxed that doesn't match the server packmask, it is skipped with warning, and the next track from the tracklist is loaded (the next jukeboxed track will follow after that)
-
-
on TMF, added another method in votes.config.php to really disable all CallVotes if chat-based votes are enabled
-
-
the pop-up windows in plugin.matchsave.php are now converted to TMF ManiaLink windows too, along with minor touch-ups of the TMN pop-ups
-
-
-
Bug fixes in the v0.96b release of XASECO:
-
-
-
on TMF, the /nextmap command always shows the first track after the current one is removed from the server's track list (via /admin removethis or /admin erasethis) – fixed
-
-
a missing or invalid connection to the TM server (due to configuration errors) can cause a flood of PHP warnings in the log – fixed
-
-
a track ending with no records set can cause a PHP warning in the Dedimania plugin – fixed
-
-
-
-
-
New features and other changes in the v0.96 release of XASECO:
-
-
-
the system has been renamed to XASECO to avoid confusion with other ASECO/RASP systems, and to signify it's a complete and integrated solution for server control
-
-
added ManiaLinks windows (via new include manialinks.inc.php) to allow the system to display TMN-style pop-ups on TMF
-
-
added a Prev button to all multi-page ManiaLinks windows when viewing the second and subsequent pages
-
-
added recognition of server type TMF and game mode Cup, including with the /admin setgamemode command
-
-
updated the /server command to handle Cup mode and show the RoundsPerChallenge value (in addition to the points limit) if the server is in Cup mode
-
-
new /admin disablerespawn command (TMF-only) to show the current DisableRespawn setting – allowing players to respawn at checkpoints – and to toggle it with an ON" or "OFF" (case-insensitive) parameter
-
-
new /admin forceshowall command (TMF-only) to show the current ForceShowAllOpponents setting – forcing players to see all opponents – and to toggle it with an ON" or "OFF" (case-insensitive) parameter
-
-
updated the TMXInfoFetcher class to handle the new TMNF section
-
-
on a TMNF server (packmask Stadium) the /tmxinfo and /tmxrecs commands as well as the TMX World Record message at the start of a new track will consult the TMNF section of TMX, on a TMUF server the TMU section, and (as before) on a TMN server the TMN section
-
-
the /add and /admin add commands will consult the TMNF, TMUF and TMN sections of TMX according to the same rules
-
-
new $jukebox_permadd option in rasp.settings.php to allow tracks voted into the jukebox via /add to remain permanently in the server's track list (normally they're removed after they're finished)
-
-
added extra check for non-empty TM server build during start-up
-
-
several minor tweaks to web_access.inc.php to make it more robust and prevent stream_select() warnings (thanks Slig)
-
-
-
Bug fixes in the v0.96 release of XASECO:
-
-
-
when a player equals his/her local or Dedimania record, it would be logged again with the next higher position (but not stored anywhere) – fixed
-
-
new Dedimania record messages would be displayed for LAN logins making records, even though the records aren't actually submitted to the central Dedimania server – fixed
-
-
plugin.matchsave.php used the CRLF constant in a TMN pop-up – fixed into LF
-
-
-
-
-
Known issues in the v0.96+ release of XASECO:
-
-
-
the /statsall command doesn't work in TMF because there's no way to obtain a player's world stats (yet?)
-
New features and other changes in the v1.16 release of XASECO:
-
-
-
new /cptms command to display the checkpoint times (if available, as they're only being stored since v1.06) for all local records on the current track, as a complement to /sectms
-
new /dedicptms command to display the checkpoint times for all Dedimania records on the current track, as a complement to /dedisectms
-
-
added the Countable interface to the TMXInfoSearcher class
-
-
removed the <max_recs> setting from dedimania.xml to insure that only the Server and player MaxRank values from the Dedimania master server are used, and to avoid confusion
-
-
resetting the challenges list cache at the start of each challenge is now configurable via new rasp.settings.php setting $reset_cache_start (default: true)
-
-
the PHP memory limit for XASECO2 is no longer set to 50 MB but to 128 MB (the PHP default) unless it is already at least that size (thanks Electron)
-
-
updated the GBXDataFetcher module to the latest version
-
-
-
Bug fixes in the v1.16 release of XASECO:
-
-
-
when a map isn't in the database yet, in some situations its name could be stored with stripped colors/formatting – fixed
-
-
-
-
-
New features and other changes in the v1.15b release of XASECO:
-
-
-
rewrote the GBXDataFetcher module completely to correctly process ManiaPlanet maps and replays – the new GBXChallMapFetcher and GBXReplayFetcher classes are not compatible with the old GBXChallengeFetcher and GBXReplayFetcher ones, but a new GBXChallengeFetcher wrapper class is included for backwards compatibility with third-party plugins
-
-
small update to the TMXInfoFetcher class to support 24-char UIDs
-
-
removed the obsolete ReplayParser class
-
-
-
Bug fixes in the v1.15b release of XASECO:
-
-
-
two tiny fixes in Auto TimeLimit handling and /tmxinfo
-
-
the error checking in the TMXInfoSearcher class is slightly too strict – fixed
-
-
-
-
-
New features and other changes in the v1.15 release of XASECO:
-
-
-
implemented several security enhancements to prevent unauthorised use of chat commands
-
-
in multi-page windows all pages are filled up with empty rows to the same number of rows as the first page to ease browsing (except when using the old TMN-style windows)
-
-
on TMF, the /jukebox, /add, /admin add and /admin addlocal commands now check the chosen track against the server settings and ignore it if it doesn't match
-
-
new support for the Dedimania MaxRank system:
-
-
the default MaxRank is 30, meaning that players normally cannot attain a record outside the top-30
-
when a server MaxRank has been upgraded (still to be fully implemented by Slig) then all players on that server can attain records up to that larger rank
-
when a player's MaxRank has been upgraded (ditto) then that player can attain records up to his/her rank, or the server MaxRank if that is still larger
-
/dedirecs and /dedisectms show all known records for a track, including those outside the top-30
-
/dedilast and /dedirange also operate on the last known record, even if that is outside the top-30
-
the /dedistats output includes the Server MaxRank and your player MaxRank
-
-
-
a fatal error is now reported if no masteradmin is configured in config.xml
-
-
added an updatepanels.php script to the DOCS/ directory to allow updating all players' panels of a given type to a new template
-
-
added more logging, including transaction IDs, of copper transactions
-
-
new onDediRecsLoaded event to indicate that the Dedimania records for a new track have been received from the master server (thanks undef.de)
-
-
the checks why Dedimania records are ignored on a track have been improved, and the reasons are now logged always (not just in debug mode)
-
-
improved error checking and handling in the Dedimania system and the local database plugin
-
-
deployed updated web_access.inc.php for Dedimania communication (thanks Slig)
-
-
added a dynamic idle period to the main loop in order to reduce the CPU load if system usage allows it (thanks oliverde8)
-
-
the game mode values are now available as constants Gameinfo::RNDS (0), TA (1), TEAM (2), LAPS (3), STNT (4), CUP (5)
-
-
the game state (racing or scoreboard) is now maintained in $aseco->server->gamestate with constants Server::RACE and Server::SCORE (thanks undef.de)
-
-
improved error reporting in the updated TMXInfoFetcher and TMXInfoSearcher classes
-
-
this release requires the latest server build 2011-02-21
-
-
-
Bug fixes in the v1.15 release of XASECO:
-
-
-
in Laps mode, the checkpoints panel isn't updated on the first passage through the finish when a previous best lap time is already known – fixed
-
-
UTF-8 characters in (master)admin/operator titles in adminops.xml are not processed correctly – fixed (thanks TheBigG)
-
-
on TMF the /dedisectms header shows the maximum number of local records instead of Dedimania ones – fixed
-
-
/dedipb causes PHP warnings for a player without Dedimania record on a track with fewer than the maximum number of records – fixed
-
-
tiny code and typo fixes discovered while creating XASECO2
-
-
-
-
-
New features and other changes in the v1.14 release of XASECO:
-
-
-
new support for TMF relay servers:
-
-
on the master server, relays are now registered separately rather than considered spectating players
-
on a relay server, the start-up log includes the login and nickname of the master server it relays to
-
new /admin relays command to display (on the master server) the list of connected relay(s), or show (on a relay server) its master server
-
the /admin server output is reorganized to make room for a line about the server's master/relay status on the first page
-
on a relay server, the /server output includes the master server's login/nickname in place of the track count
-
on a relay server are disabled:
-
-
commands (e.g. /jukebox), events (e.g. checkpoints and finishes) and functionality (e.g. player reranking) that make no sense on a relay
-
commands (e.g. /recs) and functionality (e.g. personal bests) that require information from the master server's database
-
logging of chat messages from the master server (but they are still shown)
-
-
on relay servers, plugins plugin.autotime.php, plugin.matchsave.php, plugin.rasp_votes.php, chat.dedimania.php and plugin.dedimania.php must be disabled, and third-party plugins may not operate correctly (e.g. Fufi's Menu is fine, but Fufi's Widgets won't work) – you may want to disable plugins such as chat.records.php, chat.records2.php, plugin.checkpoints.php, etc. too, as all their commands are disabled anyway
-
-
-
improvements in the Dedimania plugins due to API enhancements (thanks Slig):
-
-
identical logins from different games (e.g. TMN ESWC vs. TMU/TMF) are now associated correctly with their records in relevant commands, new/improved/secured/equalled chat messages, and the reports before and after each track
-
when a login that is banned from Dedimania joins the server, this is announced with a general chat message, and finishes by that login are ignored (you may also want to activate the Dedimania global blacklist in rasp.settings.php to prevent them from joining in the first place)
-
-
-
on TMF, the challenge list cache is now also refreshed upon external changes (i.e. by remote controllers) to the server's track list
-
-
/admin setgamemode checks whether the game mode is actually being changed, and mode changes are now taken into account when restarting (thanks undef.de)
-
-
the XML parser (parseXml in xmlparser.inc.php) has a new option to preserve UTF-8 encoding on extracted strings (for historical reasons the default is false), so now any plugin calling the parser can control UTF-8 encoding
-
-
a new aseco.php configuration definition CONFIG_UTF8ENCODE controls whether UTF-8 encoding on strings in config.xml is preserved (default false as above) – config.xml setting <welcome_utf8encode> is now obsolete
-
-
tagged all generic warning/error messages from the dedicated server with the invoking method
-
-
all included HTML documentation now passes the W3C validatator
-
-
-
Bug fixes in the v1.14 release of XASECO:
-
-
-
the challenge list cache isn't always properly refreshed – fixed (thanks jimos94)
-
-
when XASECO is configured to use the global Dedimania blacklist on a server that didn't use it before, the initial bulk merge doesn't work – fixed (thanks soehest)
-
-
merging the global blacklist causes a bogus warning – fixed
-
-
-
-
-
New features and other changes in the v1.13 release of XASECO:
-
-
-
new /ignore command to start a chat-based vote to ignore/mute a player – usage and configuration are analogous to /kick, so see the v0.84 release notes for more info
-
-
new /lastwin command (via chat.lastwin.php) to re-open the multi-page window that was most recently closed; on TMN it's opened at the first page, on TMF at the current page – single-page windows are not stored with the player data so those cannot be re-opened
-
-
implemented a challenge list cache mechanism to improve the speed of all /list lists (thanks xai), /best, /worst and /summary, especially on servers with a large number of tracks
-
-
the speed of /toprecs, /topsums and the calculation of all players' server ranks is further improved by optimized MySQL interaction, in addition to the above cache mechanism
-
-
updates for the (TMF-only) music server plugin (thanks undef.de):
-
-
for http music servers, spaces and other special characters in the server path and/or song filename (and optional subdirectory) are now supported
-
after restarting a track, followed by the scoreboard and ChatTime countdown, the current song is now correctly shown
-
duplicate song removal is handled a litte better
-
upon XASECO shutdown, server music is disabled (thanks Terron)
-
-
-
rewrote /admin prev and /admin nextenv using the jukebox system so they keep working when tracks are jukeboxed
-
-
new and updated internal events:
-
-
new onVoteUpdated event for handling the new TMF VoteUpdated callback (requires the latest server build 2011-02-21)
-
new onTracklistChanged event to signal changes to the track list, passing along an action string ('add', 'remove', 'rename', 'juke', 'unjuke', 'read' & 'write') and the pertaining track filename, or null for the 'read' & 'write' actions (thanks undef.de)
-
updated onJukeboxChanged event with action strings 'previous' and 'nextenv'
-
-
-
implemented a time-out mechanism in the connection of XASECO to the dedicated server (thanks La beuze):
-
-
the mechanism allows you to (re)start the dedicated server and XASECO at the same time (or right after eachother) from the same script, and XASECO will keep retrying to connect until the server reaches status 4 (Running - Play), or the time-out is exhausted
-
this is especially useful on servers that take a long time to fully start up due to a large number of tracks
-
the time-out (in seconds) is configurable via new config.xml setting <tmserver><timeout> – a warning is logged when it is missing
-
the GbxRemote modules have been updated to accommodate this connection time-out
-
-
-
improved detection of warm-up phase
-
-
enhanced the sorting order of equally-finished players in the rounds reports (Rounds/Team/Cup mode) to match that of the game (thanks .anDy)
-
-
the speed of /best, /worst, /summary and /stats is improved through optimization of the underlying get_recs function (thanks undef.de)
-
-
improved initialisation sequence (and its error handling) of the main program
-
-
on TMF, new 'avatar', 'language' and 'teamid' members in the Player object
-
-
-
Bug fixes in the v1.13 release of XASECO:
-
-
-
/admin delrec doesn't work since v1.12 – fixed (thanks Ouwe)
-
-
when using a player ID after /best, /worst, /summary and /stats, that player's records aren't found since v1.12 – fixed
-
-
the help messages for /donate and /admin pay don't display correctly – fixed (thanks xai)
-
-
when using NewRules in Rounds or Team modes, /server shows the normal points limit – fixed, now the NewRules points limit is shown (thanks undef.de)
-
-
when there are no ranked players, /toprecs and /topsums produce gibberish output and PHP warnings – fixed
-
-
/topwins causes PHP warnings for an empty players table – fixed (thanks relaxedracer)
-
-
mysql_query SELECT results aren't always properly freed up with mysql_free_result – fixed
-
-
-
-
-
New features and other changes in the v1.12 release of XASECO:
-
-
-
new database and query optimizations:
-
-
these database optimizations are automatically applied once the first time this release is run, but will take a while depending on the size of the database and the speed of your MySQL server, so be patient as they could easily take several minutes (especially the 'rs_times' changes) – interrupting this process could result in a corrupt database, so... don't
-
the Score fields in the 'records' and 'rs_times' tables are converted from MediumInt to Int, increasing the maximum race time from 140 minutes to 596 hours
-
the 'records' Id, 'rs_times' ID and 'players' TimePlayed fields are also increased to Int, and the 'rs_karma' Score field is reduced to TinyInt
-
the keys on the 'records' and 'rs_times' tables are reorganized and expanded to improve the speed of various queries on those tables
-
RASP's clean-up of unused 'records' and 'rs_times' entries at start-up now only happens if $prune_records_times in rasp.settings.php is true, resulting in faster start-up
-
the speed of this clean-up is improved by different queries and related processing, and it is logged in more detail
-
preparation of the player stats panels at the scoreboard is sped up with an improved query and related processing
-
the speed of the /server and /nations commands is improved by different queries and related processing
-
the speed of the /topdons command is improved by an appropriate key on the 'players_extra' table
-
you can verify the result of all conversions against the MySQL schema in the localdb/*.sql files using SHOW CREATE TABLE queries or the 'mysqldump --no-data' command
-
XASECO's main tables are created automatically the first time this release is run, analogous to RASP's 'rs_*' tables, thus simplifying installation
-
the 'id' member of the Player object (holding the dedicated server's PlayerId value for a player) is renamed to 'pid' and 'id' now contains the database id from the 'players' table, analogous to the Challenge object – this eliminates most player ID queries
-
thanks to Tyrann for providing dumps of a large database to analyze & test with
-
-
-
-
new and updated internal events (thanks undef.de):
-
-
new onDedimaniaRecord event to indicate a new/improved/secured Dedimania record, including its position – note that a Dedimania record is not official until confirmed after the end of a track
-
the onLocalRecord event also includes a new pos(ition) field
-
new onJukeboxChanged event to signal changes to the jukebox, passing along an action string ('add', 'clear', 'drop', 'play', 'replay', 'replay', 'restart' & 'skip') and the pertaining track data, or null for the 'clear' action
-
new onMusicboxReloaded event to alert that the music server config file (musicserver.xml) was reloaded via /music reload
-
new onDonation event to indicate that a new donation was completed, including login and coppers amount
-
on TMF, restarting when at least one player already has a finish time or a score results in the scoreboard and ChatTime countdown, thus allowing time for the normal onNewChallenge and onEndRace events instead of the onRestartChallenge one – for instant restarts the latter is issued as before, and the two restart types are logged distinctly
-
-
-
-
new support for sector times (not to be confused with sector records, as offered by third-party plugins):
-
-
new /sectms command to display the sector times (if available, as they're only being stored since v1.06) for all local records on the current track
-
new /dedisectms command to display the sector times for all Dedimania records on the current track
-
on TMN there's room for the first 9 sectors, on TMF for the first 12 sectors of each record – a '+' indicates when there are more sectors than can be displayed
-
-
-
eliminated checkpoints panel toggling due to temporary spectator status changes at the end and start of tracks, thus significantly reducing outgoing ManiaLink traffic during that period – this also reduces the problem with stalled panels and widgets
-
-
PlayerFinish callbacks are now ignored when not in status 4 (Running - Play), again reducing processing overhead during the end and start of tracks
-
-
once a track is being replayed (after /replay or /admin replay), then /playtime and the total playtime message at the end of that track will include the number of replays and the overall playtime (thanks Milenco)
-
-
at start-up the dedicated server connection, LocalDB and RASP messages are now logged with timestamps
-
-
updated the stripColors function to (even) better reproduce the way the game strips incomplete tags (thanks Slig)
-
-
all Dedimania communication now occurs via port :8002 only, and you should remove the RPC4/server.php link from dedimania.xml
-
-
improved debug logging in the Dedimania plugin
-
-
upon shut down (via the /admin commands) or Fatal Error, all ManiaLinks on all connected clients are cleared (thanks Terron)
-
-
various tweaks and corrections to plugin.matchsave.php
-
-
retired chat.vote.php with its obsolete /vote and /score commands – you can manual delete the empty 'votes' table via a DROP TABLE query
-
-
-
Bug fixes in the v1.12 release of XASECO:
-
-
-
the onLocalRecord event is also issued for equalled records – fixed
-
-
the /list & /autojuke nofinish & norank commands cause PHP warnings for players without finished tracks – fixed
-
-
missing title or artist tags of .OGG songs can cause PHP warnings – fixed
-
-
the TMXInfoFetcher can cause PHP warnings upon empty results from TMX API calls – fixed
-
-
-
-
-
New features and other changes in the v1.11 release of XASECO:
-
-
-
new /xaseco command to display a variety of info about your XASECO installation, including uptime, the welcome message (TMF-only), and the masteradmin(s) – the XASECO version is no longer in the /server output
-
-
new /mod command (based on an updated GBXChallengeFetcher class) to show the (file)name for the current track's mod
-
-
if followed by the url (alias loc) parameter, /song and /mod will also display the song's or mod's locator URL (if available), hyperlinked for easy download
-
-
an optional search string after /music list will now list only songs with that string in their filenames or, if <cache_tags> in musicserver.xml is enabled, in the title or artist tags of .OGG songs – the song IDs shown are the original (now possibly non-sequential) ones from the complete list so that jukeboxing still works correctly
-
-
the /chatlog, /pmlog and /admin pmlog output can show the timestamp of each message, configurable via new config.xml setting <chatpmlog_times> (default: True)
-
-
new /list option: /list novote to display all tracks the player didn't karma vote for
-
-
new /autojuke option: /autojuke novote to automatically jukebox the first available track from the /list novote selection
-
-
/list karma 0 now correctly lists all tracks without karma votes as well as those with average karma value 0 – previously this command would list tracks with negative or zero karma but not those without any votes
-
-
new $jukebox_adminnoskip option in rasp.settings.php to not skip tracks (if $jukebox_skipleft is true) that were jukeboxed by admins (of any tier) which left the server
-
-
when a player whose IP address was banned re-enters after the dedicated server was restarted, [s]he is now re-banned instead of just kicked – this insures the dedicated rather than XASECO will keep the player out on subsequent connect attempts, at least until another restart
-
-
updated the Dedimania system to use only the new :8002 communication port (remember to open this port on your firewall/router as well) – the load is now internally distributed on the Dedimania master server
-
-
on TMF, the /stats output now includes the player's client build/version
-
-
changed/added common Rounds points systems on TMF, with f1gp replaced by:
-
-
f1old: Formula 1 GP Old – 10,8,6,5,4,3,2,1,...
-
f1new: Formula 1 GP New – 25,18,15,12,10,8,6,4,2,1,...
-
-
-
player wins in Stunts mode are now determined and attributed (thanks nouseforname)
-
-
changed the public appreciation message for large donations to prevent a fraud scheme
-
-
optimized MySQL interaction for calculation of players' server ranks (thanks Nanir)
-
-
upon a Fatal Error, an onShutdown event is issued just before shutting down (thanks nocturne)
-
-
the player/spectator and voting values in the $aseco->server object are refreshed at each track switch in case they've been modified (thanks undef.de)
-
-
the Auto TimeLimit and music server plugins now log an initialization message before loading their respective .xml configs
-
-
deployed updated web_access.inc.php for Dedimania communication (thanks Slig)
-
-
removed all ShareMania support as the site was retired
-
-
-
Bug fixes in the v1.11 release of XASECO:
-
-
-
changes in the GameInfo structure aren't detected upon restarts, only upon track switches – fixed
-
-
players that should have been kicked (e.g. for an obsolete client) but weren't, can cause PHP warnings – fixed, and their finishes are ignored
-
-
in Laps mode when /dedicps is active, local records are not detected – fixed (thanks blue)
-
-
there's a global $linelen conflict between plugin.chatlog.php and plugin.msglog.php – fixed
-
-
/list karma is allowed while $feature_karma in rasp.settings.php is false – fixed
-
-
in rare situations /best, /worst and /list best|worst can produce gibberish output – fixed
-
-
following /list with /style ## or any /*panel ## command can cause a PHP warning – fixed
-
-
an XML/RPC communication problem with the Dedimania server can cause a PHP warning – fixed
-
-
-
-
-
New features and other changes in the v1.10 release of XASECO:
-
-
-
new support for TMF client version checking upon player connects:
-
-
when players connect on TMF, it is now possible to check their client version for a minimum number
-
if new config.xml setting <player_client_version> is empty, checking is disabled; otherwise it must be a valid TMF version number, 2.11.11 or higher
-
if checking is enabled and the player's client version is less than the required number (where the empty version of the initial TMF releases counts as 2.11.11), then the player is kicked with appropriate log and chat messages, and the kick dialog also contains a suitable message (configurable in config.xml)
-
cheating currently happens only with v2.11.11 clients, so in order to prevent potential cheaters (along with other players that haven't upgraded yet) from joining, you can choose to set <player_client_version> to 2.11.12 or higher
-
when admins of any tier connect on TMF, it is also possible to check their client version for a separate minimum number
-
if new config.xml setting <admin_client_version> is empty, checking is disabled; otherwise it must be a valid TMF version number, 2.11.11 or higher
-
if checking is enabled and the admin's client version is less than the required number (where an empty version again counts as 2.11.11), then the admin is similarly notified and kicked
-
recent client and server versions prevent login spoofing, so it's recommended to set <admin_client_version> to 2.11.19 or higher and have all your server's admins upgrade if necessary
-
note that digitally distributed editions of TMF are not easily upgraded with the manual patches – e.g. the Steam edition is currently at 2.11.16 – so be careful about setting the versions too high
-
-
-
new /settings command to display your personal settings, or those of any player (login or ID) if you're an admin with the new chat_settings ability – the settings are: the /cps and /dedicps values, and on TMF also the /style, /admin panel, /donpanel, /recpanel and /votepanel values (if the pertaining plugins are enabled)
-
-
new /plugins command to display the list of currently active plugins
-
-
new /admin delrec command to delete the specified record (1 - $maxrecs) for the current track, delete the corresponding 'rs_times' entries and, if necessary, move the next best time in as the new last record
-
-
the number of times a track can be replayed via /replay votes is now configurable via new votes.config.php setting $replays_limit (default 0 = unlimited)
-
-
admins with the new chat_jukebox ability can now use the /jukebox command even if $feature_jukebox in rasp.settings.php is false
-
-
on TMF the /recs output can optionally include the players' logins, configurable via new config.xml setting <show_rec_logins> (default: True)
-
-
on TMF the /dedirecs output can optionally include the players' logins, configurable via new dedimania.xml setting <show_rec_logins> (default: True)
-
-
new /dedistats command to display a few Dedimania statistics for the current track and, only on TMF, a link to the track's Dedimania page with all its records
-
-
for TMF global blacklists that contain optional <account> fields with values 'United' or 'Nations', the merge feature can now process only the United logins, configurable via new rasp.settings.php setting $globalbl_united (default: false)
-
-
a log message now indicates when a Dedimania record is ignored because the pertaining login is banned from Dedimania
-
-
on TMF the Dedimania plugin now verifies that the configured server login is the same as the actual server login
-
-
the /xlist command can now search TMX for track names using multiple words (thanks bmandk)
-
-
reduced the MySQL reconnect polling frequency at an empty server to once every second
-
-
optimized the MySQL queries for the /list nofinish and /list norank commands (thanks Pesky)
-
-
the 'GameData/Tracks/Challenges/TMX/' and '.../TMXtmp' directories are now created automatically if they don't exist when starting XASECO for the first time (this also simplifies the installation procedure by one step)
-
-
arguments to /admin clearhist are clipped at $buffersize
-
-
usage of the dedicated server's built-in commands /version and (TMF-only) /serverlogin is now logged as such
-
-
new donate panel BelowCPListRM and record panel RightBottomRM, courtesy of sebik1992 (RoundMania 90k)
-
-
-
Bug fixes in the v1.10 release of XASECO:
-
-
-
restarting XASECO triggers required checkpoints warnings for the ongoing race – fixed, the warnings now get enabled after the end (or a restart) of the current track
-
-
after merging a global blacklist, the local blacklist is saved without the newly blacklisted logins – fixed
-
-
blacklisted logins of players that never visited the server (e.g. from a merged global blacklist) can't be unblacklisted – fixed
-
-
-
-
-
New features and other changes in the v1.09 release of XASECO:
-
-
-
new support for a global blacklist on TMN and (especially) TMF, because at start-up the TMF server now properly loads the global blacklist specified in dedicated_cfg.txt entry <blacklist_url> and merges it with the local blacklist:
-
-
new /admin mergegbl command to merge a (possibly updated) global blacklist with the server's blacklist at other times than just start-up
-
the default blacklist is configurable via rasp.settings.php setting $globalbl_url, and should be the same as <blacklist_url>
-
the /admin mergegbl command optionally accepts a http[s] URL to load another global blacklist, and access to the command is defined in adminops.xml as usual
-
when a MasterAdmin connects, the default global blacklist can automatically be merged, configurable via rasp.settings.php setting $globalbl_merge (default: false)
-
after merging, log and chat messages indicate the number of newly blacklisted logins, and the local blacklist is saved just like after a manual /admin black command
-
-
-
-
new support for player access control by nation (TMN) or zone (TMF) becomes available when plugin.access.php is enabled (uncommented) in plugins.xml, offering the following features:
-
-
the control mechanism is inspired by Apache's mod_access and is configured via access.xml, containing the following directives:
-
-
the Order section, defining the order in which the other two sections are processed
-
the Allow section, containing one or more From fields to specify nations/zones that are allowed access
-
the Deny section, containing one or more From fields to specify nations/zones that are denied access
-
the From values are case-sensitive, upper- and lowercase characters must match exactly with the players' nations/zones you want to control
-
the catch-all value for either the Allow or Deny section is 'all' (lowercase), and in that case this section cannot contain other From fields
-
for more information and examples on these directives, see the comments in access.xml and the aforementioned mod_access page
-
-
on TMF, a match on a specified zone will also match its subzones, e.g. a match on "Netherlands" will include all Dutch provinces too
-
denied players are kicked with appropriate log and chat messages, and on TMF the kick dialog also contains a suitable message, which can be configured in access.xml
-
the new /admin access command offers the following options:
-
-
help: Displays help information
-
list: Displays current access control settings
-
reload: Reloads updated access control settings
-
-
player access control is disabled upon a configuration error in (re)loading access.xml
-
-
-
-
new /cpsspec command (TMF-only) to relay the checkpoints panel of the player you're spectating to your own screen:
-
-
this feature may have some performance impact on busy servers, so it's your choice to enable it via new config.xml setting <enable_cpsspec> (default: False)
-
the /cpsspec command toggles tracking the checkpoints of a spectated player
-
if tracking is enabled and you're spectating another player in Follow or Replay camera mode, the checkpoints panel of that player is also shown on your screen, but only if the spectated player has enabled checkpoints tracking him/herself
-
the /cpsspec status is intentionally not saved among a player's personal settings, so it is off upon reconnects
-
-
-
-
updates for the music server plugin (TMF-only):
-
-
the song list can now be automatically shuffled at start-up and upon the /music reload command (configurable via new musicserver.xml setting <auto_shuffle>)
-
new /music autoshuffle command to change the automatic shuffle setting; the /music settings output also includes the AutoShuffle value
-
-
-
on TMF, released the player slot when changing a player into spectator in /admin forcespec, /afk and action 1 (Set to Spectator) for a detected cheater
-
-
in Laps mode, each lap time is now stored in the 'rs_times' table (if $feature_stats in rasp.settings.php is true, of course)
-
-
UTF-8 encoding the welcome message, necessary on some systems to display accented characters correctly, can now be configured via new config.xml setting <welcome_utf8encode> (default: True)
-
-
on TMF when rank limiting by the full Jfreu plugin is in effect, the kick dialog echoes the explanatory chat message sent to a connecting player who is kicked due to a bad rank
-
-
on TMF when using the /bootme command, the kick dialog can optionally display a 'goodbye' message if new rasp.xml message <bootme_dialog> exists
-
-
in the XASECO start-up sequence the onSync event is now issued before the onPlayerConnect events for all current players so that plugins are initialized in a more logical order
-
-
during XASECO start-up global voting explanations ($global_explain = 2 in votes.config.xml) are temporarily inhibited to prevent a message flood on busy servers
-
-
updated the stripColors function to strip out incomplete color codes before the end of the string, and add an option so that log output doesn't show '$$' for '$'
-
-
in the local database the 'Name' column in table 'challenges' and the 'NickName' column in table 'players' have been increased to 100 characters – for new XASECO installations the updated columns are defined in the localdb/aseco.sql file as usual, and for existing installs they will be modified automatically the first time this release is run
-
-
minor improvements in the GBXChallengeFetcher, GBXReplayFetcher and ReplayParser classes
-
-
this release requires the latest server build 2009-05-25
-
-
-
Bug fixes in the v1.09 release of XASECO:
-
-
-
some players with numeric logins still confuse the player ID mechanism – now really fixed
-
-
in Laps mode, improved laps aren't always checked for new Dedimania records – fixed
-
-
the global voting explanation upon a player join doesn't appear in the TMF message window when $vote_in_window = true – fixed
-
-
on some OSes a repetitive but harmless warning about "Invalid CRT parameters" in GbxRemote can occur – fixed
-
-
-
-
-
New features and other changes in the v1.08 release of XASECO:
-
-
-
improved checkpoints & finish processing, anti-cheat testing and Dedimania records handling (if plugin.checkpoints.php is enabled in plugins.xml)
-
-
on TMF, local and Dedimania records that, for any reason, don't have the correct number of checkpoints are ignored with a logged warning (if plugin.checkpoints.php is enabled)
-
-
on TMF, used the new TMF BeginChallenge and EndChallenge callbacks (instead of BeginRace and EndRace) to trigger the onNewChallenge and onEndRace events, respectively
-
-
on TMF, the onNewChallenge and onEndRace events are no longer issued when restarting a track; this prevents, for example, losing the next track from the jukebox and the needless repetition of all messages sent at the start and end of a track – instead a new onRestartChallenge event is issued
-
-
added the onPlayerIncoherence, onTunnelDataReceived and onManualFlowControlTransition events for handling the existing TMF PlayerIncoherence, TunnelDataReceived and ManualFlowControlTransition callbacks, respectively
-
-
checkpoints in Dedimania records are now sent as a comma-separated string to the central Dedimania system in order to reduce data traffic
-
-
on TMF, a new $specPlayFirst configuration variable (default: false) in mistral.idlekick.php can be used to first set an idle player into spectator mode (free camera) instead of kicking him/her right away
-
-
removed the 1 second delay to set free camera mode in /admin forcespec, /afk and action 1 (Set to Spectator) for a detected cheater
-
-
challenge names with embedded newlines no longer cause malformed messages and such (due to use of a new stripNewlines function)
-
-
a new stripSizes function that strips only the size-related tags ($n, $w and $o) from strings, is available as alternative to stripColors
-
-
added the new ReplayParser class for future use with the Dedimania system
-
-
updated the GbxRemote modules to the latest versions from Nadeo
-
-
minor code tweaks in many parts of the system
-
-
this release requires the latest server build 2009-05-04
-
-
-
Bug fixes in the v1.08 release of XASECO:
-
-
-
an ampersand character (&) in any .xml file crashes the XML parser – fixed this long-standing issue (thanks Assembler Maniac)
-
-
non-ASCII characters in the <welcome> message in config.xml cause the entire message not to be displayed – fixed (thanks dragu)
-
-
using /style # stores the number instead of the style name in the database as the player's preference – fixed (thanks nouseforname)
-
-
players with numeric logins confuse the player ID mechanism – fixed (thanks n4p1)
-
-
-
-
-
New features and other changes in the v1.06 release of XASECO:
-
-
-
new support for local checkpoints storage:
-
-
a new 'Checkpoints' column has been added to the local database tables 'records' and 'rs_times', and checkpoints data will be stored for all newly driven records and finish times
-
for new XASECO installations the new columns are defined in the localdb/aseco.sql and rasp.sql files as usual, and for existing installs they will be added automatically the first time this release is run
-
functionality of the /cps command is changed analogous to /dedicps:
-
-
checkpoint references are stored for all players (according to their individual preferences) only at the start of a track, not when entering the /cps command or when the player (re)connects
-
with no parameter (/cps) the player's own local record on each track is selected or, if none is set, the last record on the pertaining track
-
/cps {1-maxrecs} selects local record 1-maxrecs on each track or, if unavailable, again the last record
-
/cps off disables checkpoints tracking altogether
-
if the checkpoints for the chosen local record are invalid (empty, or the last checkpoint doesn't match the finish time) then no record is used as initial reference during that track for the pertaining player(s)
-
checkpoint differences to the chosen reference are now shown from the first run through the track, rather than the second
-
if /dedicps is not set to off, local record tracking is superseded by Dedimania record tracking as per that setting
-
the default setting for <auto_enable_dedicps> in config.xml is now False
-
as usual, once a player gains a better finish time than the chosen reference, the checkpoints panel (TMF) or pop-up (TMN) will use those corresponding checkpoints for further updates during the current track
-
explanations why the TMF checkpoints panel doesn't appear immediately when /cps is activated (Stunts mode, spectating, and warm-up phase) are no longer shown
-
-
-
-
new support for storing donations and personal settings:
-
-
a new 'players_extra' table has been added to the local database to store donation totals (on TMUF servers) and setting preferences for each player
-
stored settings are: the /cps and /dedicps values, and on TMF also the /style, /admin panel, /donpanel, /recpanel and /votepanel values
-
for new XASECO installations the new table is defined in the localdb/extra.sql file, and for existing installs it will be added automatically the first time this release is run
-
when a new player first connects, an entry with the server's default values is created in this table, but changed settings are subsequently stored and reloaded each time the player revisits
-
the 'donations' column is updated every time a player donates coppers to the server
-
on TMUF servers, the /stats output now includes the player's donation total
-
new /topdons command to display the top-100 of players that donated the most coppers
-
-
-
-
new support for player stats panels during the scoreboard on TMF:
-
-
on TMF, this feature is configured via new config.xml setting <sb_stats_panels> (default: False)
-
enabling the player stats panels during the scoreboard automatically disables the rank chat messages shown at the same time
-
the panel is displayed in the lower-left corner of the scoreboard screen, and is defined by the panels/StatsNations.xml (for TMNF servers) and StatsUnited.xml (for TMUF) templates
-
the panel contains each player's server rank, record average, records total, wins total, session play time, and donation total (on TMUF servers)
-
computing the record totals can be a bit time consuming depending on the number of challenges, players and records in the database, so displaying all scoreboard panels may be slightly delayed
-
-
-
-
when a player leaves, the chat message (if either Jfreu plugin is enabled) and the log message now include the amount of time played in that session
-
-
during XASECO start-up, player join messages are temporarily inhibited to prevent a message flood on busy servers
-
-
on TMF, the /server and /admin server output now include the server's ladder points limits
-
-
on TMUF, donate panels are temporarily disabled during the scoreboard at the end of a track, as they aren't immediately responsive anyway
-
-
on TMF in Rounds mode, Dedimania records on lap tracks are now ignored if RoundForcedLaps is not set to the default value 0
-
-
on TMF in Cup mode, commands that restart the current track or switch to the next or previous one now preserve the current match scores
-
-
new /n1 command to send a Nice One message; also, the /gr message no longer includes the word 'All' by default
-
-
added the onEcho event for handling the TMF Echo callback
-
-
-
Bug fixes in the v1.06 release of XASECO:
-
-
-
using /dedicps to track checkpoints of existing Dedimania records results in new/improved/secured records not registering in some situations – fixed
-
-
when a player joins during a Laps mode race and completes a lap, an invalid record is registered – fixed (thanks princemichi)
-
-
in Laps mode the finish times of complete races are stored in the 'rs_times' table – fixed, no times are stored in Laps mode
-
-
if <display> in localdatabase.xml is False, other records related commands and features don't work either – fixed
-
-
when using a local path for the music server, and with some http servers, the .OGG comments aren't read from the song files – fixed (thanks HaveDerf_TMu)
-
-
-
-
-
New features and other changes in the v1.05b release of XASECO:
-
-
-
updated the Dedimania system to randomly choose between the existing :8006, :8007, :8011, :8012 and :8013 and new :8016 through :8021 communication ports (remember to open those ports on your firewall/router as well) in order to distribute the load across more Dedimania servers
-
-
the number of lines in the TMF system message window can now be easily modified with the $winlen variable at the start of plugin.msglog.php
-
-
refined UTF-8 string validation function (thanks Slig)
-
-
-
Bug fixes in the v1.05b release of XASECO:
-
-
-
Dedimania records aren't reliably registered due to the new anti-cheat tests – fixed
-
-
Dedimania records on tracks that don't have the full <max_recs> entries aren't registered unless they're better than the existing last record – fixed (thanks lille79)
-
-
in case of Dedimania connection problems persisting across track changes, records data from the previous track is still used on the next one – fixed (thanks schmidi)
-
-
restarting a track causes no further Dedimania records to be registered on that track – fixed
-
-
restarting XASECO triggers the anti-cheat tests for the ongoing race – fixed, the tests now get enabled after the end of the current track
-
-
with the music server configured for local files, /music current and /music settings don't show the song's info – fixed
-
-
on Windows, the /music stripdirs option doesn't work correctly on local files – fixed
-
-
-
-
-
New features and other changes in the v1.05 release of XASECO:
-
-
-
new checkpoint sanity checks to prevent cheated records (if plugin.checkpoints.php is enabled in plugins.xml):
-
-
all checkpoint times must be larger than zero
-
each checkpoint time within a player's run must be larger than the preceding one
-
all checkpoint indexes must be zero or larger
-
each checkpoint index within a player's run must be 1 larger than the preceding one
-
the last checkpoint time must be equal to the finish time
-
when any of these requirements isn't met, one of the following actions is taken on the pertaining player, configurable via new config.xml setting <cheater_action> (default: 0):
-0: Ignore; 1: Set to Spectator (only on TMF, falls back to 0 on TMN); 2: Kick; 3: Ban (implies Kick); 4: BlackList & Kick; 5: Blacklist & Ban
-
new/updated local and Dedimania records that fail one or more of the aforementioned checks are not stored (even if the above action is 0)
-
-
-
new Dedimania sanity checks:
-
-
keeping any of the three <masterserver_account> fields in dedimania.xml at a default or empty value results in a fatal error
-
records are no longer processed if they are less than 6 seconds
-
records are no longer processed for tracks with an author time of less than 8 seconds
-
-
-
updates for the music server plugin (TMF-only):
-
-
song files can now be stored locally on the TM server in a path under its GameData/ directory, e.g. Music/, without the need for a remote http server
-
if <auto_nextsong> is disabled a jukeboxed song will no longer be repeated on all subsequent tracks until another song is jukeboxed
-
-
-
a new config.xml setting <display_checkpoints> (default: True) can be set to False to permanently disable checkpoint pop-ups (TMN) or panels (TMF) for all players while still tracking the checkpoints data internally – this allows you to keep plugin.checkpoints.php enabled for anti-cheat checks and the Dedimania system when high player counts cause performance/crash problems
-
-
a global congratulations message can be displayed instead of the regular personal one at a player's win of a track, if that win count reaches a multiple configured via new config.xml setting <global_win_multiple> (default: 50)
-
-
if plugin.rpoints.php is enabled on TMF, it's now possible to initialize the TM server with a default Rounds points system at start-up via new config.xml setting <default_rpoints> – the value can be a custom system with specified values (X,Y,...,Z) or a common system by name (f1gp, motogp, etc), just like the parameters to the /admin rpoints command; if empty, the standard points system is initialized
-
-
on TMF, automatically setting a player that uses the /afk command into free spectator mode can now be configured via new config.xml setting <afk_force_spec> (default: True)
-
-
automatically adding the current IP address for newly added admins and operators can now be configured via new config.xml setting <auto_admin_addip> (default: True)
-
-
new /admin autotime command to enable or disable the Auto TimeLimit feature dynamically (assuming plugin.autotime.php is enabled in plugins.xml)
-
-
when restarting a track via a /ladder vote (with votes.config.php setting $ladder_fast_restart = true) or /admin restartmap, the Auto TimeLimit is no longer set to next track's value
-
-
successful /donate and /admin pay copper transfers are now logged
-
-
when adminops.xml is written out without any admin or operator entries, bannedips.xml without IPs, jfreu.bans.xml without temporary bans, or jfreu.vips.xml without VIP logins or teams, then a comment block to show the entry syntax is included instead
-
-
if the GD/JPEG libraries are installed in PHP, the GBXChallengeFetcher class now flips the upside-down thumbnail image in a challenge into its upright format
-
-
a message is logged when plugins.xml is being loaded at start-up
-
-
this release requires the latest server build 2008-12-05
-
-
-
Bug fixes in the v1.05 release of XASECO:
-
-
-
/players <string> displays an erroneous window if the search string matches no players – fixed, a warning message is shown
-
-
on TMF if plugin.panels.php is not enabled, TMX /add and chat-based votes result in crashes – fixed
-
-
on TMN, running /admin helpall as an Admin (not MasterAdmin or Operator) locks up the client after the second page – fixed (thanks B.A.S.S.)
-
-
a time-out on the version server at the up-to-date check gives an incorrect message – fixed
-
-
some PHP constructs still cause silent notices during strict run-time checks – fixed more of them
-
-
debug logging in the Dedimania system doesn't consistently use CRLF on Windows – fixed
-
-
-
-
-
New features and other changes in the v1.04 release of XASECO:
-
-
-
new support for custom Rounds points on TMF with the following features:
-
-
custom points in Rounds mode become available when plugin.rpoints.php is enabled (uncommented) in plugins.xml
-
new /admin rpoints command to list and set common points systems, as well as custom distributions, with the following options:
-
-
help: Displays help information
-
list: Displays available points systems
-
show: Shows current points system
-
<xxx>: Sets points system labelled <xxx>
-
X,Y,...,Z: Sets custom points system with specified values; X,Y,...,Z must be decreasing integers and there must be at least two values with no spaces
-
off: Disables custom points system
-
-
the following common points systems are included:
-
fet1: Formula ET Season 1 – 12,10,9,8,7,6,5,4,4,3,3,3,2,2,2,1,...
-
fet2: Formula ET Season 2 – 15,12,11,10,9,8,7,6,6,5,5,4,4,3,3,3,2,2,2,1,...
-
fet3: Formula ET Season 3 – 15,12,11,10,9,8,7,6,6,5,5,4,4,3,3,3,2,2,2,2,1,...
-
champcar: Champ Car World Series – 31,27,25,23,21,19,17,15,13,11,10,9,8,7,6,5,4,3,2,1,...
-
simple5: Simple 5 – 5,4,3,2,1,...
-
simple10: Simple 10 – 10,9,8,7,6,5,4,3,2,1,...
-
-
note that any players finishing beyond the last points entry get the same number of points (typically 1) as that last entry
-
new /rpoints command to show the current points system
-
additional points systems can be added to $rounds_points at the start of the plugin
-
-
-
-
an updated and optimized Auto TimeLimit plugin (plugin.autotime.php) by cyrus is now part of the standard distribution:
-
-
this plugin works only in TimeAttack mode, and defines the timelimit for each track dynamically based on the track's author time
-
the new autotime.xml file contains the plugin's settings to determine the new timelimit (multiplication factor, minimum, maximum and default); this file is loaded only once at start-up, rather than at every track switch
-
as before, a multiplicator of zero will disable the plugin
-
the new display setting controls whether to show a timelimit message in the TMF system message window, the chat window, or not at all; a similar message is always logged
-
the type of timelimit (new, min, max, default) is included in these messages
-
the timelimit is rounded down to seconds in the chat and log messages
-
when there are no active players, the default timelimit is applied because of the way the TM server instantly switches tracks with no opportunity to set a custom limit
-
-
-
updates for the music server plugin (TMF-only):
-
-
the song filename extensions can now be excluded in any command that shows songs (configurable via new musicserver.xml setting <strip_exts>)
-
new /music stripexts command to change the strip extensions setting; the /music settings output also includes the StripExts value
-
new /music sort command to sort the song list alphabetically by song paths
-
the cache file for .OGG comments can be defined as read-only (configurable via new musicserver.xml setting <cache_readonly>)
-
-
-
in the <ipaddress> fields in config.xml and adminops.xml, it is now possible: to specify class B (e.g. 12.34.*.*) and class C (e.g. 12.34.56.*) wildcards to allow for partial IP checks on admins with dynamics IPs; and to specify multiple comma-separated IPs and/or wildcards (e.g. 12.34.56.78,98.76.54.*)
-
-
note to plugin authors: while the isMasterAdmin, isAdmin, isOperator and isAnyAdmin functions require a player object and check the IP address, new isMasterAdminL, isAdminL, isOperatorL and isAnyAdminL functions are now available that accept a login string (like before v1.03) and don't check the IP address
-
-
significantly optimized calculation of all players' server ranks after each track
-
-
if the Nation field in the player join/leave messages is 15 or more characters, it's abbreviated to the 3-letter country code
-
-
changed the ManiaLink processing to (hopefully) reduce the risk of crashing at high player counts
-
-
a new <logina> color is defined in config.xml and used for the admin titles in player join and other relevant messages, as well as admin logins in the /players, /admin players and /jfreu players output
-
-
setting empty player, spectator and referee passwords produces the appropriate log and chat messages about disabling them
-
-
the /admin setrefmode command without parameter now shows the current Referee mode
-
-
the /admin forceshowall command has been renamed to /admin forceshowopp and its 'on' option to 'all'; further, the command now accepts a number (>= 2) to force showing that minimum number of opponents
-
-
the /admin shutdown command will now shut down only XASECO (in order to permit restarts via the external start-up script), while the new /admin shutdownall command terminates both XASECO and the TM server
-
-
the output of /admin players is limited to at most 5000 entries, and the memory limit for the XASECO PHP process is increased to 50 MB, in order to further reduce the chances of memory overruns
-
-
if the Xdebug extension for PHP is installed, a fatal error will automatically log a stack trace
-
-
the /music, /admin and /jfreu commands are now able to handle multiple spaces between their parameters
-
-
-
Bug fixes in the v1.04 release of XASECO:
-
-
-
players that instantly reconnect can have their win counts cleared – fixed
-
-
/admin removeadmin and /admin removeop don't work when the <ipaddress> field for the pertaining login is set – fixed
-
-
the /jfreu infomessages command is still boolean – updated the command to recognize the 2/1/0 values of the underlying $infomessages variable
-
-
the Auto TimeLimit plugin doesn't work correctly when all connected players are spectating – fixed
-
-
the Auto TimeLimit plugin doesn't work properly on servers with more than 500 tracks – fixed
-
-
when a player doesn't have a Dedimania record but his/her local personal best is better than the last Dedimania record, /dedinext computes the wrong difference – fixed
-
-
/admin setrefmode {0/1} doesn't work correctly – fixed
-
-
/admin forceteam, /admin forcespec and /admin specfree are allowed on offline logins – fixed
-
-
/admin forcespec doesn't always set the spectator into free camera – fixed
-
-
in the music server plugin, messages referring to songs without .OGG comments are not formatted correctly – fixed
-
-
on TMF, a newly connected player's ladder rank in the internal players list can be temporarily erased until he/she becomes official – fixed
-
-
numerous PHP constructs cause silent notices during strict run-time checks – fixed most of them
-
- TrackMania.PlayerManialinkPageAnswer(int PlayerUid, string Login, int Answer);
- difference with previous TM: this is not called if the player doesn't answer, and thus '0' is also a valid answer.
-
- TrackMania.PlayerServerMessageAnswer(int PlayerUid, string Login, int Answer);
- Answer: 0 -> no answer (timeout...), 1 or 2 -> answer from the player
-
The initial script query should be done on the main url http://dedimania.net/RPC4/server.php, because if the account was not authenticated successfully then on http://dedimania.net:80xx/ ones it could make timeouts, slowing the other scripts/clients requests responses.
-
-
-
Next script queries (once successfully authenticated!) should be made on the http://dedimania.net:80xx/ urls, because these ones use far less server resources than the main one. You have to contact me at Slig or on the Dedimania forum for scripts devs, to both tell me that you are going to use Dedimania for your script, and to know what url you should use.
-
-Note that later the main url will reply only to dedimania.CheckConnection, dedimania.GetVersion, dedimania.Authenticate and dedimania.ValidateAccount methods !
-
-
-
-
How to send a query ?
-
-
The query is a standard http text/xml call, with the xml message as the http body. This form is the standard xmlrpc calling form, and the reply will have that form too. This method is the right xmlrpc one, and should be preferred !
-
-
-
The query can also be a standard http text/html call, with the attribute 'xmlrpc'. This was added to permit easy requests using a standard html GET or POST query:
-
-
The value for the 'xmlrpc' attribute is just a xmlrpc text, urlsafe base64 encoded.
-
- In the case of a GET query, the xmlrpc value has to be base64 encoded, but be cautious: it has to use the url-safe base64 RFC 3548 ('+' replaced by '-' and '/' replaced by '_'), and the URI size can be limited.
-
-
-
In all cases, the query and the reply can be compressed (gzip or deflate), using the standard http headers. After test and debug the compression should be used !
-
The client should try to support http keepalive (with long timeout, ie. 4 minutes or more): it will save some Dedimania server resources, and avoid to have connection timeouts on client side for each request !
-
It is better if client support cookies and keep-alive connections, avoiding to make a new connection for each request, which is better both for server and client. The server support long keep-alive (more than 5min), so the client really should support it too, to help reduce the server load ! In fact your script should support long http keep-alive and http compression !
-
-
-
-
-
-
What kind of records does Dedimania support ?
-
-
General: the low limit for records is now 6s : no records under that limit will be stored. Scripts should not send records for challenges with author time under 8s !
-
Rounds: round final time. And for a multilap challenge only if the number of laps is the main number of laps of the map, and not a different number forced using RoundForcedLaps !
-
Time attack: attempt final time.
-
Laps: lap time (ie best lap time). Is merged with Time Attack records.
-
Stunts: attempt final score (actually not supported).
-
Cup: round final time. Is merged with Rounds records.
-
-
-
-
-
-
What kind of records does Dedimania not support ?
-
-
General: times under 6s are refused.
-
Rounds: multilap challenge with the number of laps different than the main number of laps of the map (mainly using RoundForcedLaps) is not supported ! (eventually the script can send best lap as a Laps record)
-
Laps: more than one lap is not supported.
-
Stunts: actually not supported.
-
-
-
-
-
-
Sending xmlrpc request methods
-
-
It is mandatory to put the dedimania.Authenticate in your query before any other method which is indicated as 'Only if authenticated.'. Because of this, you have to use system.multicall in most cases. Yes, it is needed in each request (well, it can be omitted in next requests if you client support http keepalive correctly and stay connected, but it is easier to send the Authenticate each time).
-You should probably always use dedimania.WarningsAndTTR as last method in your queries, so you will get warnings and not definitive errors of the previous methods in the query.
-
-
In dedimania.Authenticate you can send the community code of the server login, instead of the password. After the first successful authentication with Nadeo masters, an MD5 of the password is stored, to make further authentications faster. The password and/or community code are not stored in the Dedimania database.
-
-
Mainly, the standard usage of requests methods for a script using Dedimania records is:
- dedimania.CurrentChallenge at beginning of map (to indicate the current map, players, and get current records),
- dedimania.UpdateServerPlayers every 4 minutes after the beginning of the map (to keep up to date server and players infos),
- dedimania.ChallengeRaceTimes at the end of map (sending all players best time -new records or not-, and get the new records list),
- dedimania.PlayerArrive when a player connects (can be skipped),
- dedimania.PlayerLeave when a player disconnects (not really needed, will only speedup to show the player offline on tmstats).
-
-
dedimania.CheckConnection and dedimania.GetVersion can be used to verify that your script requests are received correctly and understood by the Dedimania server, and that your script receives and understands the reply (most times only dedimania.Authenticate is used).
-
-
dedimania.WarningsAndTTR should be used as last method of the request, to get warnings/errors (and some other infos) about previous methods.
-
-
-
-
-
-
Raw query/reply examples (without http compression of course)
-
-
-
-
-
-Note1:
-If you make a client script support, please notify it to Slig. First because I may open a new url port for your script, because the port 80 url use more resources, also because you should not use url used by other without telling it, and finally because i want to know what scripts are using Dedimania resources and on what port(s).
-
-Note2:
-The url http://dedimania.net/RPC4/server.php must never be used, except eventually for testing or rescue (for users who have a server which can't use 80xx ports). To know what url you have to use, see note 1 !
-
-Note3: MaxRank
-The MaxRank work at several levels. Except special case where the player MaxRank is 0 because he is banned, a player
-can always make a record on a server and challenge at the max rank determined by the max of ServerMaxRecords, his own MaxRank, and the MaxRank stored for his current record if he has one.
- - ServerMaxRecords is the server MaxRank, any player connected and not banned can make a record at least up to this value.
- - dedimania.PlayerArrive/MaxRank is the player MaxRank, the player can make a record up to this value also if ServerMaxRecords is smaller.
- - records MaxRank is the max of current player record and his general MaxRank, the record remain valid if not above that value (or ServerMaxRecords value if bigger).
-
boolean
- dedimania.Authenticate(struct)
-Allow user authentication by specifying a struct {'Game': string, 'Login': string, 'Password': string, 'Tool': string, 'Version': string, [Optionals: 'Packmask': string, 'Nation': string, 'ServerIP': string, 'ServerPort': int, 'XmlrpcPort': int, 'PlayersGame': boolean]}. Game can be 'TMF', 'TMUF', 'TMNF', 'TMU', 'TMO', 'TMS' or 'TMN' (for TMUF/TMNF servers, please send TMF or TMUF or TMNF, and the Packmask !). Packmask should be the value returned by GetServerPackMask. Nation can be 3 letters nation or TMF Path. If PlayersGame is set to true then a few methods will return more infos, mainly the game associated to the player login in records, and the player max rank (see general notes). Note: in case of error it returns a string with the error description.
-
dedimania.ValidateAccount
struct
- dedimania.ValidateAccount()
-Reply a struct {'Status': boolean, 'Messages': array of struct {'Date': string, 'Text': string} }. Status is always true, else you get a not authenticated error.
-Only if authenticated.
-
dedimania.PlayerArrive
struct
- dedimania.PlayerArrive(string, string, string, string, string, int, boolean, boolean)
-Announce that a new player has arrived. Arguments are (Game, Login, Nickname, Nation, TeamName, LadderRanking, IsSpec, IsOff). Game can be 'TMF', 'TMUF', 'TMNF', 'TMU', 'TMO', 'TMS' or 'TMN'.
-Reply a struct {['Game': string,] 'Login': string, 'TeamName': string, 'Nation': string, ['MaxRank': int, 'Status': int,] 'Options': array of struct {'Option': string, 'Value': string, 'Tool': string}, 'Aliases': array of struct {'Alias': string, 'Text': string, 'Tool': string} }. Game, MaxRank and Status are added only if PlayersGame is set in authenticate, Status bit 0 is 1 if banned (is which case MaxRank is 0). Note that MaxRank is the real max rank for the player (see general notes).
-Only if authenticated.
-
dedimania.PlayerLeave
struct
- dedimania.PlayerLeave(string, string)
-Announce that a player has left. Arguments are (Game,Login). Game can be 'TMF', 'TMUF', 'TMNF', 'TMU', 'TMO', 'TMS' or 'TMN'.
-Reply a struct {'Login': string}.
-Only if authenticated.
-
dedimania.CurrentChallenge
struct
- dedimania.CurrentChallenge(string, string, string, string, string, int, struct, int, array)
-Set current challenge info and get records. Arguments are (Uid, Name, Environment, Author, Game, Mode, SrvInfo, MaxGetTimes, Players). Game is currently 'TMF', 'TMUF', 'TMNF', 'TMU', 'TMO', 'TMS' or 'TMN'. SrvInfo is a struct {'SrvName': string, 'Comment': string, 'Private': boolean, 'SrvIP': string, 'SrvPort': int, 'XmlrpcPort': int, 'NumPlayers': int, 'MaxPlayers': int, 'NumSpecs': int, 'MaxSpecs': int, 'LadderMode': int, 'NextFiveUID': string of next five uid separated with '/'}. Players is an array of struct {'Login': string, 'Nation': string, 'TeamName': string, 'TeamId': int, 'IsSpec': boolean, 'Ranking': int, 'IsOff': boolean}.
-Reply a struct {'Uid': string, 'TotalRaces': int, 'TotalPlayers': int, 'TimeAttackRaces': int, 'TimeAttackPlayers': int, 'NumberOfChecks': int, 'ServerMaxRecords': int, 'Records': array of struct {['Game': string,] 'Login': string, 'NickName': string, 'Best': int, 'Rank': int, ['MaxRank': int,] 'Checks': array of int, 'Vote': int} }, NumberOfChecks per lap is 0 if unknown, Checks are the bestchecks of the associated record, Vote is 0 to 100 value, or -1 if player did not vote for the map. Game and MaxRank are added only if PlayersGame is set in authenticate (see general notes).
-Only if authenticated.
-
dedimania.ChallengeRaceTimes
struct
- dedimania.ChallengeRaceTimes(string, string, string, string, string, int, int, int, array)
-Set current challenge info and players' best times, and get the updated records. Arguments are (Uid, Name, Environment, Author, Game, Mode, NumberOfChecks, MaxGetTimes, Times). Game is currently 'TMF', 'TMUF', 'TMNF', 'TMU', 'TMO', 'TMS' or 'TMN'. Times is a sorted (by 'Best') array of struct {'Login': string, 'Best': int, 'Checks': array of int}. Checks are BestCheckpoints array of the best time of player (can also be sent as a comma separated list of int in a string, which is far smaller in xmlrpc). In case of time equality the order in the Times array is used.
-Reply a struct {'Uid': string, 'TotalRaces': int, 'TotalPlayers': int, 'TimeAttackRaces': int, 'TimeAttackPlayers': int, 'NumberOfChecks': int, 'ServerMaxRecords': int, 'Records': array of struct {['Game': string,] 'Login': string, 'NickName': string, 'Best': int, 'Rank': int, ['MaxRank': int,] 'Checks': array of int, 'NewBest': boolean} }, NumberOfChecks per lap is 0 if unknown. Game and MaxRank are added only if PlayersGame is set in authenticate (see general notes).
-Only if authenticated.
-
dedimania.UpdateServerPlayers
boolean
- dedimania.UpdateServerPlayers(string, int, struct, array)
-Set current challenge and players info. Arguments are (Game, Mode, SrvInfo, Players). Game is currently 'TMF', 'TMUF', 'TMNF', 'TMU', 'TMO', 'TMS' or 'TMN'. SrvInfo is a struct {'SrvName': string, 'Comment': string, 'Private': boolean, 'SrvIP': string, 'SrvPort': int, 'XmlrpcPort': int, 'NumPlayers': int, 'MaxPlayers': int, 'NumSpecs': int, 'MaxSpecs': int, 'LadderMode': boolean, 'NextFiveUID': string of next five uid separated with '/'}. Players is an array of struct {'Login': string, 'Nation': string, 'TeamName': string, 'TeamId': int, 'IsSpec': boolean, 'Ranking': int, 'IsOff': boolean}.
-Reply true.
-Should be used every 4 minutes if no 'dedimania.CurrentChallenge' or 'dedimania.ChallengeRaceTimes' has been called, to keep the server and players 'On'.
-Only if authenticated.
-
dedimania.WarningsAndTTR
struct
- dedimania.WarningsAndTTR()
-Get warnings messages and TimeToRespond for all previous methods.
-Reply a struct {'globalTTR': int, 'methods': array of struct {'methodName': string, 'errors': string, 'TTR': int}}.
-
system.listMethods
array
- system.listMethods()
-This method lists all the methods that the XML-RPC server knows how to dispatch.
-
system.methodHelp
string
- system.methodHelp(string)
-Returns help text if defined for the method passed, otherwise returns an empty string.
-
system.methodSignature
array
- system.methodSignature(string)
-Returns an array of known signatures (an array of arrays) for the method name passed. If no signatures are known, returns a none-array (test for type != array to detect missing signature).
-
system.multicall
array
- system.multicall(array)
-Boxcar multiple RPC calls in one request. See http://www.xmlrpc.com/discuss/msgReader$1208 and raw examples for details. Each array entry is a struct {'methodCall':string, 'params':array}.
-
-
-
diff --git a/docker-xaseco/xaseco/DOCS/ListMethodsForever.html b/docker-xaseco/xaseco/DOCS/ListMethodsForever.html
deleted file mode 100644
index d900c03..0000000
--- a/docker-xaseco/xaseco/DOCS/ListMethodsForever.html
+++ /dev/null
@@ -1,717 +0,0 @@
-
-
-
-
-TrackMania Forever 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 containing 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 a vote for a cmd. The command is a XML string corresponding to an XmlRpc request. Only available to Admin.
-
CallVoteEx
-boolean CallVoteEx(string, double, int, int)
-Extended call vote. Same as CallVote, but you can additionally supply specific parameters for this vote: a ratio, a time out and who is voting. Special timeout values: a timeout of '0' means default, '1' means indefinite; a ratio of '-1' means default; Voters values: '0' means only active players, '1' means any player, '2' is for everybody, pure spectators included. Only available to Admin.
-
InternalCallVote
-boolean InternalCallVote()
-Used internally by game.
-
CancelVote
-boolean CancelVote()
-Cancel the current vote. Only available to Admin.
-
GetCurrentCallVote
-struct GetCurrentCallVote()
-Returns the vote currently in progress. The returned structure is { CallerLogin, CmdName, CmdParam }.
-
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 default ratio for passing a vote. Must lie between 0 and 1. Only available to Admin.
-
GetCallVoteRatio
-double GetCallVoteRatio()
-Get the current default ratio for passing a vote. This value lies between 0 and 1.
-
SetCallVoteRatios
-boolean SetCallVoteRatios(array)
-Set new ratios for passing specific votes. The parameter is an array of structs {string Command, double Ratio}, ratio is in [0,1] or -1 for vote disabled. Only available to Admin.
-
GetCallVoteRatios
-array GetCallVoteRatios()
-Get the current ratios for passing votes.
-
ChatSendServerMessage
-boolean ChatSendServerMessage(string)
-Send a text message to all clients without the server login. Only available to Admin.
-
ChatSendServerMessageToLanguage
-boolean ChatSendServerMessageToLanguage(array, string)
-Send a localised text message to all clients without the server login, or optionally to a Login (which can be a single login or a list of comma-separated logins). The parameter is an array of structures {Lang='??', Text='...'}. If no matching language is found, the last text in the array is used. Only available to Admin.
-
ChatSendServerMessageToId
-boolean ChatSendServerMessageToId(string, int)
-Send a text message without the server login to the client with the specified PlayerId. Only available to Admin.
-
ChatSendServerMessageToLogin
-boolean ChatSendServerMessageToLogin(string, string)
-Send a text message without the server login to the client with the specified login. Login can be a single login or a list of comma-separated logins. Only available to Admin.
-
ChatSend
-boolean ChatSend(string)
-Send a text message to all clients. Only available to Admin.
-
ChatSendToLanguage
-boolean ChatSendToLanguage(array, string)
-Send a localised text message to all clients, or optionally to a Login (which can be a single login or a list of comma-separated logins). The parameter is an array of structures {Lang='??', Text='...'}. If no matching language is found, the last text in the array is used. Only available to Admin.
-
ChatSendToLogin
-boolean ChatSendToLogin(string, string)
-Send a text message to the client with the specified login. Login can be a single login or a list of comma-separated logins. 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 40 lines. Only available to Admin.
-
ChatEnableManualRouting
-boolean ChatEnableManualRouting(boolean, boolean)
-The chat messages are no longer dispatched to the players, they only go to the rpc callback and the controller has to manually forward them. The second (optional) parameter allows all messages from the server to be automatically forwarded. Only available to Admin.
-
ChatForwardToLogin
-boolean ChatForwardToLogin(string, string, string)
-(Text, SenderLogin, DestLogin) Send a text message to the specified DestLogin (or everybody if empty) on behalf of SenderLogin. DestLogin can be a single login or a list of comma-separated logins. Only available if manual routing is enabled. Only available to Admin.
-
SendNotice
-boolean SendNotice(string, string, int)
-Display a notice on all clients. The parameters are the text message to display, and the login of the avatar to display next to it (or '' for no avatar), and an optional 'max duration' in seconds (default: 3). Only available to Admin.
-
SendNoticeToId
-boolean SendNoticeToId(int, string, int, int)
-Display a notice on the client with the specified UId. The parameters are the Uid of the client to whom the notice is sent, the text message to display, and the UId of the avatar to display next to it (or '255' for no avatar), and an optional 'max duration' in seconds (default: 3). Only available to Admin.
-
SendNoticeToLogin
-boolean SendNoticeToLogin(string, string, string, int)
-Display a notice on the client with the specified login. The parameters are the login of the client to whom the notice is sent, the text message to display, and the login of the avatar to display next to it (or '' for no avatar), and an optional 'max duration' in seconds (default: 3). Login can be a single login or a list of comma-separated logins. Only available to Admin.
-
SendDisplayManialinkPage
-boolean SendDisplayManialinkPage(string, int, boolean)
-Display a manialink page on all clients. The parameters are the xml description of the page to display, a timeout to autohide it (0 = permanent), and a boolean to indicate whether the page must be hidden as soon as the user clicks on a page option. Only available to Admin.
-
SendDisplayManialinkPageToId
-boolean SendDisplayManialinkPageToId(int, string, int, boolean)
-Display a manialink page on the client with the specified UId. The first parameter is the UId of the player, the other are identical to 'SendDisplayManialinkPage'. Only available to Admin.
-
SendDisplayManialinkPageToLogin
-boolean SendDisplayManialinkPageToLogin(string, string, int, boolean)
-Display a manialink page on the client with the specified login. The first parameter is the login of the player, the other are identical to 'SendDisplayManialinkPage'. Login can be a single login or a list of comma-separated logins. Only available to Admin.
-
SendHideManialinkPage
-boolean SendHideManialinkPage()
-Hide the displayed manialink page on all clients. Only available to Admin.
-
SendHideManialinkPageToId
-boolean SendHideManialinkPageToId(int)
-Hide the displayed manialink page on the client with the specified UId. Only available to Admin.
-
SendHideManialinkPageToLogin
-boolean SendHideManialinkPageToLogin(string)
-Hide the displayed manialink page on the client with the specified login. Login can be a single login or a list of comma-separated logins. Only available to Admin.
-
GetManialinkPageAnswers
-array GetManialinkPageAnswers()
-Returns the latest results from the current manialink page, as an array of structs {string Login, int PlayerId, int Result} Result==0 -> no answer, Result>0.... -> answer from the player.
-
Kick
-boolean Kick(string, string)
-Kick the player with the specified login, with an optional message. Only available to Admin.
-
KickId
-boolean KickId(int, string)
-Kick the player with the specified PlayerId, with an optional message. Only available to Admin.
-
Ban
-boolean Ban(string, string)
-Ban the player with the specified login, with an optional message. Only available to Admin.
-
BanAndBlackList
-boolean BanAndBlackList(string, string, boolean)
-Ban the player with the specified login, with a message. Add it to the black list, and optionally save the new list. Only available to Admin.
-
BanId
-boolean BanId(int, string)
-Ban the player with the specified PlayerId, with an optional message. 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 banned players. 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.
-
BlackListId
-boolean BlackListId(int)
-Blacklist the player with the specified PlayerId. 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 blacklisted players. 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.
-
LoadBlackList
-boolean LoadBlackList(string)
-Load the black list file with the specified file name. Only available to Admin.
-
SaveBlackList
-boolean SaveBlackList(string)
-Save the black list in the file with specified file name. Only available to Admin.
-
AddGuest
-boolean AddGuest(string)
-Add the player with the specified login on the guest list. Only available to Admin.
-
AddGuestId
-boolean AddGuestId(int)
-Add the player with the specified PlayerId 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.
-
RemoveGuestId
-boolean RemoveGuestId(int)
-Remove the player with the specified PlayerId 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.
-
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 Admin.
-
SetBuddyNotification
-boolean SetBuddyNotification(string, boolean)
-Sets whether buddy notifications should be sent in the chat. login is the login of the player, or '' for global setting, and enabled is the value. Only available to Admin.
-
GetBuddyNotification
-boolean GetBuddyNotification(string)
-Gets whether buddy notifications are enabled for login, or '' to get the global setting.
-
WriteFile
-boolean WriteFile(string, base64)
-Write the data to the specified file. The filename is relative to the Tracks path. Only available to Admin.
-
TunnelSendDataToId
-boolean TunnelSendDataToId(int, base64)
-Send the data to the specified player. Only available to Admin.
-
TunnelSendDataToLogin
-boolean TunnelSendDataToLogin(string, base64)
-Send the data to the specified player. Login can be a single login or a list of comma-separated logins. Only available to Admin.
-
Echo
-boolean Echo(string, string)
-Just log the parameters and invoke a callback. Can be used to talk to other xmlrpc clients connected, or to make custom votes. If used in a callvote, the first parameter will be used as the vote message on the clients. Only available to Admin.
-
Ignore
-boolean Ignore(string)
-Ignore the player with the specified login. Only available to Admin.
-
IgnoreId
-boolean IgnoreId(int)
-Ignore the player with the specified PlayerId. Only available to Admin.
-
UnIgnore
-boolean UnIgnore(string)
-Unignore the player with the specified login. Only available to Admin.
-
UnIgnoreId
-boolean UnIgnoreId(int)
-Unignore the player with the specified PlayerId. Only available to Admin.
-
CleanIgnoreList
-boolean CleanIgnoreList()
-Clean the ignore list of the server. Only available to Admin.
-
GetIgnoreList
-array GetIgnoreList(int, int)
-Returns the list of ignored players. 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.
-
Pay
-int Pay(string, int, string)
-Pay coppers from the server account to a player, returns the BillId. This method takes three parameters: Login of the payee, Coppers to pay and a Label to send with the payment. The creation of the transaction itself may cost coppers, so you need to have coppers on the server account. Only available to Admin.
-
SendBill
-int SendBill(string, int, string, string)
-Create a bill, send it to a player, and return the BillId. This method takes four parameters: LoginFrom of the payer, Coppers the player has to pay, Label of the transaction and an optional LoginTo of the payee (if empty string, then the server account is used). The creation of the transaction itself may cost coppers, so you need to have coppers on the server account. Only available to Admin.
-
GetBillState
-struct GetBillState(int)
-Returns the current state of a bill. This method takes one parameter, the BillId. Returns a struct containing State, StateName and TransactionId. Possible enum values are: CreatingTransaction, Issued, ValidatingPayement, Payed, Refused, Error.
-
GetServerCoppers
-int GetServerCoppers()
-Returns the current number of coppers on the server account.
-
GetSystemInfo
-struct GetSystemInfo()
-Get some system infos, including connection rates (in kbps).
-
SetConnectionRates
-boolean SetConnectionRates(int, int)
-Set the download and upload rates (in kbps).
-
SetServerName
-boolean SetServerName(string)
-Set a new server name in utf8 format. Only available to Admin.
-
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.
-
SetHideServer
-boolean SetHideServer(int)
-Set whether the server should be hidden from the public server list (0 = visible, 1 = always hidden, 2 = hidden from nations). Only available to Admin.
-
GetHideServer
-int GetHideServer()
-Get whether the server wants to be hidden from the public server list.
-
IsRelayServer
-boolean IsRelayServer()
-Returns true if this is a relay server.
-
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.
-
AutoSaveReplays
-boolean AutoSaveReplays(boolean)
-Enable the autosaving of all replays (vizualisable replays with all players, but not validable) on the server. Only available to SuperAdmin.
-
AutoSaveValidationReplays
-boolean AutoSaveValidationReplays(boolean)
-Enable the autosaving on the server of validation replays, every time a player makes a new time. Only available to SuperAdmin.
-
IsAutoSaveReplaysEnabled
-boolean IsAutoSaveReplaysEnabled()
-Returns if autosaving of all replays is enabled on the server.
-
IsAutoSaveValidationReplaysEnabled
-boolean IsAutoSaveValidationReplaysEnabled()
-Returns if autosaving of validation replays is enabled on the server.
-
SaveCurrentReplay
-boolean SaveCurrentReplay(string)
-Saves the current replay (vizualisable replays with all players, but not validable). Pass a filename, or '' for an automatic filename. Only available to Admin.
-
SaveBestGhostsReplay
-boolean SaveBestGhostsReplay(string, string)
-Saves a replay with the ghost of all the players' best race. First parameter is the login of the player (or '' for all players), Second parameter is the filename, or '' for an automatic filename. Only available to Admin.
-
GetValidationReplay
-base64 GetValidationReplay(string)
-Returns a replay containing the data needed to validate the current best time of the player. The parameter is the login of the player.
-
SetLadderMode
-boolean SetLadderMode(int)
-Set a new ladder mode between ladder disabled (0) and forced (1). 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.
-
GetLadderServerLimits
-struct GetLadderServerLimits()
-Get the ladder points limit for the players allowed on this server. The struct returned contains two fields LadderServerLimitMin and LadderServerLimitMax.
-
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.
-
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, AllowChallengeDownload, AutoSaveReplays, and optionally for forever: RefereePassword, RefereeMode, AutoSaveValidationReplays, HideServer, UseChangingValidationSeed. Only available to Admin. A change of NextMaxPlayers, NextMaxSpectators, NextLadderMode, NextVehicleNetQuality, NextCallVoteTimeOut or UseChangingValidationSeed requires a challenge restart to be taken into account.
-
GetServerOptions
-struct GetServerOptions(int)
-Optional parameter for compatibility: struct version (0 = united, 1 = forever). Returns a struct containing the server options: Name, Comment, Password, PasswordForSpectator, CurrentMaxPlayers, NextMaxPlayers, CurrentMaxSpectators, NextMaxSpectators, IsP2PUpload, IsP2PDownload, CurrentLadderMode, NextLadderMode, CurrentVehicleNetQuality, NextVehicleNetQuality, CurrentCallVoteTimeOut, NextCallVoteTimeOut, CallVoteRatio, AllowChallengeDownload and AutoSaveReplays, and additionally for forever: RefereePassword, RefereeMode, AutoSaveValidationReplays, HideServer, CurrentUseChangingValidationSeed, NextUseChangingValidationSeed.
-
SetServerPackMask
-boolean SetServerPackMask(string)
-Defines the packmask of the server. Can be 'United', 'Nations', 'Sunrise', 'Original', or any of the environment names. (Only challenges matching the packmask will be allowed on the server, so that player connecting to it know what to expect.) Only available when the server is stopped. Only available to Admin.
-
GetServerPackMask
-string GetServerPackMask()
-Get the packmask of the server.
-
SetForcedMods
-boolean SetForcedMods(boolean, array)
-Set the mods to apply on the clients. Parameters: Override, if true even the challenges with a mod will be overridden by the server setting; and Mods, an array of structures [{EnvName, Url}, ...]. Requires a challenge restart to be taken into account. Only available to Admin.
-
GetForcedMods
-struct GetForcedMods()
-Get the mods settings.
-
SetForcedMusic
-boolean SetForcedMusic(boolean, string)
-Set the music to play on the clients. Parameters: Override, if true even the challenges with a custom music will be overridden by the server setting, and a UrlOrFileName for the music. Requires a challenge restart to be taken into account. Only available to Admin.
-
GetForcedMusic
-struct GetForcedMusic()
-Get the music setting.
-
SetForcedSkins
-boolean SetForcedSkins(array)
-Defines a list of remappings for player skins. It expects a list of structs Orig, Name, Checksum, Url. Orig is the name of the skin to remap, or '*' for any other. Name, Checksum, Url define the skin to use. (They are optional, you may set value '' for any of those. All 3 null means same as Orig). Will only affect players connecting after the value is set. Only available to Admin.
-
GetForcedSkins
-array GetForcedSkins()
-Get the current forced skins.
-
GetLastConnectionErrorMessage
-string GetLastConnectionErrorMessage()
-Returns the last error message for an internet connection. Only available to Admin.
-
SetRefereePassword
-boolean SetRefereePassword(string)
-Set a new password for the referee mode. Only available to Admin.
-
GetRefereePassword
-string GetRefereePassword()
-Get the password for referee mode if called as Admin or Super Admin, else returns if a password is needed or not.
-
SetRefereeMode
-boolean SetRefereeMode(int)
-Set the referee validation mode. 0 = validate the top3 players, 1 = validate all players. Only available to Admin.
-
GetRefereeMode
-int GetRefereeMode()
-Get the referee validation mode.
-
SetUseChangingValidationSeed
-boolean SetUseChangingValidationSeed(boolean)
-Set whether the game should use a variable validation seed or not. Only available to Admin. Requires a challenge restart to be taken into account.
-
GetUseChangingValidationSeed
-struct GetUseChangingValidationSeed()
-Get the current and next value of UseChangingValidationSeed. The struct returned contains two fields CurrentValue and NextValue.
-
SetWarmUp
-boolean SetWarmUp(boolean)
-Sets whether the server is in warm-up phase or not. Only available to Admin.
-
GetWarmUp
-boolean GetWarmUp()
-Returns whether the server is in warm-up phase.
-
ChallengeRestart
-boolean ChallengeRestart()
-Restarts the challenge, with an optional boolean parameter DontClearCupScores (only available in cup mode). Only available to Admin.
-
RestartChallenge
-boolean RestartChallenge()
-Restarts the challenge, with an optional boolean parameter DontClearCupScores (only available in cup mode). Only available to Admin.
-
NextChallenge
-boolean NextChallenge()
-Switch to next challenge, with an optional boolean parameter DontClearCupScores (only available in cup mode). 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, ChatTime, RoundsPointsLimit, RoundsUseNewRules, RoundsForcedLaps, TimeAttackLimit, TimeAttackSynchStartPeriod, TeamPointsLimit, TeamMaxPoints, TeamUseNewRules, LapsNbLaps, LapsTimeLimit, FinishTimeout, and optionally: AllWarmUpDuration, DisableRespawn, ForceShowAllOpponents, RoundsPointsLimitNewRules, TeamPointsLimitNewRules, CupPointsLimit, CupRoundsPerChallenge, CupNbWinners, CupWarmUpDuration. Only available to Admin. Requires a challenge restart to be taken into account.
-
GetCurrentGameInfo
-struct GetCurrentGameInfo(int)
-Optional parameter for compatibility: struct version (0 = united, 1 = forever). Returns a struct containing the current game settings, ie: GameMode, ChatTime, NbChallenge, RoundsPointsLimit, RoundsUseNewRules, RoundsForcedLaps, TimeAttackLimit, TimeAttackSynchStartPeriod, TeamPointsLimit, TeamMaxPoints, TeamUseNewRules, LapsNbLaps, LapsTimeLimit, FinishTimeout, and additionally for version 1: AllWarmUpDuration, DisableRespawn, ForceShowAllOpponents, RoundsPointsLimitNewRules, TeamPointsLimitNewRules, CupPointsLimit, CupRoundsPerChallenge, CupNbWinners, CupWarmUpDuration.
-
GetNextGameInfo
-struct GetNextGameInfo(int)
-Optional parameter for compatibility: struct version (0 = united, 1 = forever). Returns a struct containing the game settings for the next challenge, ie: GameMode, ChatTime, NbChallenge, RoundsPointsLimit, RoundsUseNewRules, RoundsForcedLaps, TimeAttackLimit, TimeAttackSynchStartPeriod, TeamPointsLimit, TeamMaxPoints, TeamUseNewRules, LapsNbLaps, LapsTimeLimit, FinishTimeout, and additionally for version 1: AllWarmUpDuration, DisableRespawn, ForceShowAllOpponents, RoundsPointsLimitNewRules, TeamPointsLimitNewRules, CupPointsLimit, CupRoundsPerChallenge, CupNbWinners, CupWarmUpDuration.
-
GetGameInfos
-struct GetGameInfos(int)
-Optional parameter for compatibility: struct version (0 = united, 1 = forever). 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.
-
SetGameMode
-boolean SetGameMode(int)
-Set a new game mode between Rounds (0), TimeAttack (1), Team (2), Laps (3), Stunts (4) and Cup (5). Only available to Admin. Requires a challenge restart to be taken into account.
-
GetGameMode
-int GetGameMode()
-Get the current game mode.
-
SetChatTime
-boolean SetChatTime(int)
-Set a new chat time value in milliseconds (actually 'chat time' is the duration of the end race podium, 0 means no podium displayed.). Only available to Admin.
-
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. 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.
-
SetAllWarmUpDuration
-boolean SetAllWarmUpDuration(int)
-Set whether to enable the automatic warm-up phase in all modes. 0 = no, otherwise it's the duration of the phase, expressed in number of rounds (in rounds/team mode), or in number of times the gold medal time (other modes). Only available to Admin. Requires a challenge restart to be taken into account.
-
GetAllWarmUpDuration
-struct GetAllWarmUpDuration()
-Get whether the automatic warm-up phase is enabled in all modes. The struct returned contains two fields CurrentValue and NextValue.
-
SetDisableRespawn
-boolean SetDisableRespawn(boolean)
-Set whether to disallow players to respawn. Only available to Admin. Requires a challenge restart to be taken into account.
-
GetDisableRespawn
-struct GetDisableRespawn()
-Get whether players are disallowed to respawn. The struct returned contains two fields CurrentValue and NextValue.
-
SetForceShowAllOpponents
-boolean SetForceShowAllOpponents(int)
-Set whether to override the players preferences and always display all opponents (0=no override, 1=show all, other value=minimum number of opponents). Only available to Admin. Requires a challenge restart to be taken into account.
-
GetForceShowAllOpponents
-struct GetForceShowAllOpponents()
-Get whether players are forced to show all opponents. The struct returned contains two fields CurrentValue and NextValue.
-
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 synchronized 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 synchronized 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.
-
SetRoundForcedLaps
-boolean SetRoundForcedLaps(int)
-Set a new number of laps for rounds mode (0 = default, use the number of laps from the challenges, otherwise forces the number of rounds for multilaps challenges). Only available to Admin. Requires a challenge restart to be taken into account.
-
GetRoundForcedLaps
-struct GetRoundForcedLaps()
-Get the current and next number of laps for rounds mode. The struct returned contains two fields CurrentValue and NextValue.
-
SetRoundPointsLimit
-boolean SetRoundPointsLimit(int)
-Set a new points limit for rounds mode (value set depends on UseNewRulesRound). 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 (values returned depend on UseNewRulesRound). The struct returned contains two fields CurrentValue and NextValue.
-
SetRoundCustomPoints
-boolean SetRoundCustomPoints(array, boolean)
-Set the points used for the scores in rounds mode. Points is an array of decreasing integers for the players from the first to last. And you can add an optional boolean to relax the constraint checking on the scores. Only available to Admin.
-
GetRoundCustomPoints
-array GetRoundCustomPoints()
-Gets the points used for the scores in rounds mode.
-
SetUseNewRulesRound
-boolean SetUseNewRulesRound(boolean)
-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 (value set depends on UseNewRulesTeam). 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 (values returned depend on UseNewRulesTeam). 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(boolean)
-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.
-
SetCupPointsLimit
-boolean SetCupPointsLimit(int)
-Set the points needed for victory in Cup mode. Only available to Admin. Requires a challenge restart to be taken into account.
-
GetCupPointsLimit
-struct GetCupPointsLimit()
-Get the points needed for victory in Cup mode. The struct returned contains two fields CurrentValue and NextValue.
-
SetCupRoundsPerChallenge
-boolean SetCupRoundsPerChallenge(int)
-Sets the number of rounds before going to next challenge in Cup mode. Only available to Admin. Requires a challenge restart to be taken into account.
-
GetCupRoundsPerChallenge
-struct GetCupRoundsPerChallenge()
-Get the number of rounds before going to next challenge in Cup mode. The struct returned contains two fields CurrentValue and NextValue.
-
SetCupWarmUpDuration
-boolean SetCupWarmUpDuration(int)
-Set whether to enable the automatic warm-up phase in Cup mode. 0 = no, otherwise it's the duration of the phase, expressed in number of rounds. Only available to Admin. Requires a challenge restart to be taken into account.
-
GetCupWarmUpDuration
-struct GetCupWarmUpDuration()
-Get whether the automatic warm-up phase is enabled in Cup mode. The struct returned contains two fields CurrentValue and NextValue.
-
SetCupNbWinners
-boolean SetCupNbWinners(int)
-Set the number of winners to determine before the match is considered over. Only available to Admin. Requires a challenge restart to be taken into account.
-
GetCupNbWinners
-struct GetCupNbWinners()
-Get the number of winners to determine before the match is considered over. The struct returned contains two fields CurrentValue and NextValue.
-
GetCurrentChallengeIndex
-int GetCurrentChallengeIndex()
-Returns the current challenge index in the selection, or -1 if the challenge is no longer in the selection.
-
GetNextChallengeIndex
-int GetNextChallengeIndex()
-Returns the challenge index in the selection that will be played next (unless the current one is restarted...)
-
SetNextChallengeIndex
-boolean SetNextChallengeIndex(int)
-Sets the challenge index in the selection that will be played next (unless the current one is restarted...)
-
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, LapRace, NbLaps and NbCheckpoints.
-
GetNextChallengeInfo
-struct GetNextChallengeInfo()
-Returns a struct containing the infos for the next challenge. The struct contains the following fields : Name, UId, FileName, Author, Environnement, Mood, BronzeTime, SilverTime, GoldTime, AuthorTime, CopperPrice and LapRace. (NbLaps and NbCheckpoints are also present but always set to -1)
-
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. (NbLaps and NbCheckpoints are also present but always set to -1)
-
CheckChallengeForCurrentServerParams
-boolean CheckChallengeForCurrentServerParams(string)
-Returns a boolean if the challenge with the specified filename matches the current server settings.
-
GetChallengeList
-array GetChallengeList(int, int)
-Returns a list of challenges among the current selection of the server. This method take 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 fields : Name, UId, FileName, Environnement, Author, 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 filenames at the end of the current selection. The list of challenges to add is an array of strings. 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 of challenges with the specified filenames 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 challenges the list of challenges with the specified filenames, if they are present in the selection. The list of challenges to choose is an array of strings. 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 challenge 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, int)
-Returns the list of players on the server. This method take two parameters. The first parameter specifies the maximum number of infos to be returned, and the second one the starting index in the list, an optional 3rd parameter is used for compatibility: struct version (0 = united, 1 = forever, 2 = forever, including the servers). The list is an array of PlayerInfo structures. Forever PlayerInfo struct is: Login, NickName, PlayerId, TeamId, SpectatorStatus, LadderRanking, and Flags.
-LadderRanking is 0 when not in official mode,
-Flags = ForceSpectator(0,1,2) + IsReferee * 10 + IsPodiumReady * 100 + IsUsingStereoscopy * 1000 + IsManagedByAnOtherServer * 10000 + IsServer * 100000 + HasPlayerSlot * 1000000
-SpectatorStatus = Spectator + TemporarySpectator * 10 + PureSpectator * 100 + AutoTarget * 1000 + CurrentTargetId * 10000
-
GetPlayerInfo
-struct GetPlayerInfo(string, int)
-Returns a struct containing the infos on the player with the specified login, with an optional parameter for compatibility: struct version (0 = united, 1 = forever). The structure is identical to the ones from GetPlayerList. Forever PlayerInfo struct is: Login, NickName, PlayerId, TeamId, SpectatorStatus, LadderRanking, and Flags.
-LadderRanking is 0 when not in official mode,
-Flags = ForceSpectator(0,1,2) + IsReferee * 10 + IsPodiumReady * 100 + IsUsingStereoscopy * 1000 + IsManagedByAnOtherServer * 10000 + IsServer * 100000 + HasPlayerSlot * 1000000
-SpectatorStatus = Spectator + TemporarySpectator * 10 + PureSpectator * 100 + AutoTarget * 1000 + CurrentTargetId * 10000
-
GetDetailedPlayerInfo
-struct GetDetailedPlayerInfo(string)
-Returns a struct containing the infos on the player with the specified login. The structure contains the following fields : Login, NickName, PlayerId, TeamId, IPAddress, DownloadRate, UploadRate, Language, IsSpectator, IsInOfficialMode, a structure named Avatar, an array of structures named Skins, a structure named LadderStats, HoursSinceZoneInscription and OnlineRights (0: nations account, 3: united account). Each structure of the array Skins contains two fields Environnement and a struct PackDesc. Each structure PackDesc, as well as the struct Avatar, contains two fields FileName and Checksum.
-
GetMainServerPlayerInfo
-struct GetMainServerPlayerInfo(int)
-Returns a struct containing the player infos of the game server (ie: in case of a basic server, itself; in case of a relay server, the main server), with an optional parameter for compatibility: struct version (0 = united, 1 = forever). The structure is identical to the ones from GetPlayerList. Forever PlayerInfo struct is: Login, NickName, PlayerId, TeamId, SpectatorStatus, LadderRanking, and Flags.
-LadderRanking is 0 when not in official mode,
-Flags = ForceSpectator(0,1,2) + IsReferee * 10 + IsPodiumReady * 100 + IsUsingStereoscopy * 1000 + IsManagedByAnOtherServer * 10000 + IsServer * 100000 + HasPlayerSlot * 1000000
-SpectatorStatus = Spectator + TemporarySpectator * 10 + PureSpectator * 100 + AutoTarget * 1000 + CurrentTargetId * 10000
-
GetCurrentRanking
-array GetCurrentRanking(int, int)
-Returns the current rankings for the race in progress. (in team mode, the scores for the two teams are returned. In other modes, it's the individual players' scores) This method take 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 checkpoint times for the best race.
-
GetCurrentRankingForLogin
-array GetCurrentRankingForLogin(string)
-Returns the current ranking for the race in progressof the player with the specified login (or list of comma-separated logins). The ranking returned is a list of structures, that contains the following fields : Login, NickName, PlayerId, Rank, BestTime, Score, NbrLapsFinished and LadderScore. It also contains an array BestCheckpoints that contains the checkpoint times for the best race.
-
ForceScores
-boolean ForceScores(array, boolean)
-Force the scores of the current game. Only available in rounds and team mode. You have to pass an array of structs {int PlayerId, int Score}. And a boolean SilentMode - if true, the scores are silently updated (only available for SuperAdmin), allowing an external controller to do its custom counting... Only available to Admin/SuperAdmin.
-
ForcePlayerTeam
-boolean ForcePlayerTeam(string, int)
-Force the team of the player. Only available in team mode. You have to pass the login and the team number (0 or 1). Only available to Admin.
-
ForcePlayerTeamId
-boolean ForcePlayerTeamId(int, int)
-Force the team of the player. Only available in team mode. You have to pass the playerid and the team number (0 or 1). Only available to Admin.
-
ForceSpectator
-boolean ForceSpectator(string, int)
-Force the spectating status of the player. You have to pass the login and the spectator mode (0: user selectable, 1: spectator, 2: player). Only available to Admin.
-
ForceSpectatorId
-boolean ForceSpectatorId(int, int)
-Force the spectating status of the player. You have to pass the playerid and the spectator mode (0: user selectable, 1: spectator, 2: player). Only available to Admin.
-
ForceSpectatorTarget
-boolean ForceSpectatorTarget(string, string, int)
-Force spectators to look at a specific player. You have to pass the login of the spectator (or '' for all) and the login of the target (or '' for automatic), and an integer for the camera type to use (-1 = leave unchanged, 0 = replay, 1 = follow, 2 = free). Only available to Admin.
-
ForceSpectatorTargetId
-boolean ForceSpectatorTargetId(int, int, int)
-Force spectators to look at a specific player. You have to pass the id of the spectator (or -1 for all) and the id of the target (or -1 for automatic), and an integer for the camera type to use (-1 = leave unchanged, 0 = replay, 1 = follow, 2 = free). Only available to Admin.
-
SpectatorReleasePlayerSlot
-boolean SpectatorReleasePlayerSlot(string)
-Pass the login of the spectator. A spectator that once was a player keeps his player slot, so that he can go back to race mode. Calling this function frees this slot for another player to connect. Only available to Admin.
-
SpectatorReleasePlayerSlotId
-boolean SpectatorReleasePlayerSlotId(int)
-Pass the playerid of the spectator. A spectator that once was a player keeps his player slot, so that he can go back to race mode. Calling this function frees this slot for another player to connect. Only available to Admin.
-
ManualFlowControlEnable
-boolean ManualFlowControlEnable(boolean)
-Enable control of the game flow: the game will wait for the caller to validate state transitions. Only available to Admin.
-
ManualFlowControlProceed
-boolean ManualFlowControlProceed()
-Allows the game to proceed. Only available to Admin.
-
ManualFlowControlIsEnabled
-int ManualFlowControlIsEnabled()
-Returns whether the manual control of the game flow is enabled. 0 = no, 1 = yes by the xml-rpc client making the call, 2 = yes, by some other xml-rpc client. Only available to Admin.
-
ManualFlowControlGetCurTransition
-string ManualFlowControlGetCurTransition()
-Returns the transition that is currently blocked, or '' if none. (That's exactly the value last received by the callback.) Only available to Admin.
-
CheckEndMatchCondition
-string CheckEndMatchCondition()
-Returns the current match ending condition. Return values are: 'Playing', 'ChangeMap' or 'Finished'.
-
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.
-
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.
-
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.
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.
-
-
-
diff --git a/docker-xaseco/xaseco/DOCS/OLD/Jfreu install.txt b/docker-xaseco/xaseco/DOCS/OLD/Jfreu install.txt
deleted file mode 100644
index 677cf5a..0000000
--- a/docker-xaseco/xaseco/DOCS/OLD/Jfreu install.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-0/ Save "aseco/plugins.xml" somewhere
-
-1/ Copy "jfreu.config.php", "jfreu.plugin.php" , "chat.jfreu.php"
- the "jfreu" directory in your aseco plugins directory (aseco/plugins/)
-
-2/ Add "jfreu.plugin.php" before ""
- in "plugins.xml" in your aseco directory (aseco/plugins.xml)
-
-3/ Edit "jfreu.config.php" in your aseco plugins directory (aseco/plugins/)
- change the server name, ranklimit,...(customise the plugin ^^)
-
-4/ Edit "jfreu/jfreu.lists.xml" and add VIP, team_vip & admins
-
-5/ Run Aseco and enjoy. ("/help" & "/jfreu help" for new commands avilable)
- New admin commands are : "/jfreu [command]" (ex: "/jfreu novote ON")
-
-
-Any problem or suggestion -> http://jfreu.servegame.com (forum)
-
-
-?/ To uninstall the plugin delete "jfreu.config.php", "jfreu.plugin.php",
- "chat.jfreu.php" and the "jfreu" directory in your aseco plugins directory
- (aseco/plugins/) and overwrite modified file with your saved one
- ("aseco/plugins.xml") or remove the "jfreu.plugin.php" line.
diff --git a/docker-xaseco/xaseco/DOCS/OLD/Jfreu's plugin.txt b/docker-xaseco/xaseco/DOCS/OLD/Jfreu's plugin.txt
deleted file mode 100644
index 2326af8..0000000
--- a/docker-xaseco/xaseco/DOCS/OLD/Jfreu's plugin.txt
+++ /dev/null
@@ -1,121 +0,0 @@
-~~[ v0.13d ]~~
-
-- Add : "/jfreu banfor X login" to ban a player for X min
-- Fix : banFor X min ban for X min (not for X min - 30 sec)
-- Fix : bug with non-included chat & settings files
-- Upg : unspec command cancel the player's vote to unspec him.
-- Upg : "unspec vote" ban the player for 5 min if vote result is NO.
-- Upg : badwordsban ban the player for 10 min.
-- Upg : in "unspec vote" +50% yes -> yes | +49% no -> no.
-
-~~[ v0.13c ]~~
-
-- Fix : "/jfreu kickHiRank ON/OFF" fixed : kick worst ranked players
- when the server is "full".
-- Fix : "/jfreu kickWorst X" fixed : kick X wost players.
-
-~~[ v0.13b ]~~
-
-- Add : the word between the server's name and the limit
- (usually "Top") can be changed.
-- Add : autoChangeName can be turned OFF
- (server's name when the limit changes)
-- Add : TEAM_VIP all team members are vip.
-- Add : "/uptodate" command to know if the version of the
- plugin is up to date.
-- Add : NewPlayer message when a new player joins and ranklimit
- is OFF.
-- Add : "/jfreu removevip" & "/jfreu removeteamvip" to remove
- a vip & a team_vip ingame (by an admin).
-- Upg : Admins, VIP and TEAM_VIP added ingame are saved in a
- xml file ("jfreu/jfreu.lists.xlm")
-- Upg : All the plugin's admin commands are "jfreu commands" now,
- to avoid the bug with "/admin help", now it is "/jfreu help"
- the plugin's admin commands are "/jfreu [command]"
-- Upg : Cancel custom vote ('unspec') when the player disconects.
-
-~~[ v0.13a ]~~
-
-- Add : Admin command "addadmin {login}" to add an admin.
-- Add : Admin private message to login :
- /admin messagetologin {login} {message}
-- Add : Hardlimit : players, VIP, specs over the hardlimit
- are kicked (without message in the chat)
-- Add : Admins can change the hardlimit ingame.
-- Add : SpecOnly command unspec to launch an unspec vote.
-- Add : If a player leaves the game his vote is canceled.
-- Fix : novote can be turned OFF.
-- Fix : fix bug in "clean_nick" function.
-- Fix : No more timeOut crash
-- Fix : PM fixed (no more server's login at the begining)
-- Upg : badWord bot more powerfull.
- ( "$zS$wHh$00FIII$wiiI$nT" is a badword )
-- Upg : Colors in the plugin are aseco's colors.
-- Upg : Ranklimit & Info commands send a PM to the player.
-- Upg : Unspec and VIP not in server average if autorankVIP ON.
-
-
-~~[ v0.12d ]~~
-
-- Add : Admin command "unspec" to allow a "SpecOnly" to join
- the race.
-- Add : custom maxBadWords
-- Add : BadWordsBan (ON/OFF) ban when 2x maxBadWords
-- Add : Admin command KickWorst to kick worst ranked players
- except vip.
-- Add : admin cancelvote to cancel current vote
- (kick/ban/nextmap/restartmap)
-- Add : novote (ON/OFF) to autocancel votes
-- Upg : kickhirank function use KickWorst function.
-
-~~[ v0.12c ]~~
-
-- Add : SpecOnly are kicked if they join the race
-- Fix : bug with "admin help"
-- Fix : bug with "autorankvip"
-- Fix : bug with "autorankvip" default state
-
-~~[ v0.12b ]~~
-
-- Add : "BadWords" -> 3 "badwords" = kicked (on/off)
-- Add : random information message at the end of the race
- (editable) (on/off)
-- Add : players over ranklimit can join the game as spec
-- Add : kick hiRank players if server is "full"
- (custom maxplayers) (on/off)
-- Fix : problem with "chat.admin" overwritten
-
-~~[ v0.11a ]~~
-
-- Add : autoRankMinPlayer : autorank disabled when not enough
- players then limit = Ranklimit.
- autoRankMinPlayer value can be changed ingame (by admins)
- Autorank limit = Ranklimit when not enough players
-- Add : admin can add VIP ingame (deleted when aseco restarts)
-- Add : admin can force Autorank limit (until a new player comes)
-
-~~[ v0.10b ]~~
-
-- Add : admin command : /admin player {login} {message}
-- Fix : bug with AutoRank Offset.
-- Fix : bug timeOut crash.
-
-~~[ v0.09e ]~~
-
-- Add : RankLimit can be turned on/off ingame (by an admin)
-- Add : AutoRank offset value can be changed ingame (by an admin)
-- Add : AutoRankLimit is changed when a player left the game
-
-~~[ v0.08 ]~~
-
-- Rank limit (new player with a rank over the limit is kicked)
-- AutoRankLimit (DynaRank) : server's rank + offset = ranklimit
-- Change the server's name when the limit is changed :
- [ServerName]Top[Limit]
-- Server's messages in chat : "[ServerName] your message"
-- fake rec : ">> XXX took the 1. rank with a time of... !
-- informations on account : IP/port/login/nick/score/rank
-- AutoRankLimit can be turned on/off ingame (by an admin)
-- Rank limit value can be changed ingame (by an admin)
-- ...
-
diff --git a/docker-xaseco/xaseco/DOCS/OLD/README-autotime.txt b/docker-xaseco/xaseco/DOCS/OLD/README-autotime.txt
deleted file mode 100644
index a9168b4..0000000
--- a/docker-xaseco/xaseco/DOCS/OLD/README-autotime.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-////////////////////////////////////
-//Plugin Auto TimeLimit
-//Changes Timelimit for TimeAttack dynamically depending on the next
-// track's author time
-//
-//Written by ck|cyrus
-//martin@die-webber.com
-//www.chaoskrieger.com
-
-////////////////
-// Installation
-
-- Copy file "plugin.autotime.php" into your XAseco plugin directory
-- Copy file "autotime.xml" into your XAseco main directory
-- Add plugin.autotime.php at the END of your "plugins.xml"
-- Open file "autotime.xml" and edit the variables to your liking
-- Have fun and enjoy playing with nice timings!
-
-////////////////
-// SUPPORT:
-
-Visit: http://www.tm-forum.com/viewtopic.php?t=6563
-ICQ: 85020221
diff --git a/docker-xaseco/xaseco/DOCS/OLD/README.txt b/docker-xaseco/xaseco/DOCS/OLD/README.txt
deleted file mode 100644
index ccb5934..0000000
--- a/docker-xaseco/xaseco/DOCS/OLD/README.txt
+++ /dev/null
@@ -1,144 +0,0 @@
-BEFORE ATTEMPTING TO INSTALL RASP, YOU MUST HAVE A FULLY WORKING VERSION OF ASECO 0.6.1b RUNNING ON A LOCAL DATABASE
-
-
-Introduction
-------------
-Rasp is a plugin pack for the aseco server script. The core rasp plugin is the ranks and stats system which heavily relies on aseco's records system. The other plugins are extra features which you can add/remove as you please and are completely independent of the core plugin.
-
-Features
---------
-Here is a list of the features:
-
-- In-built rank system which assigns a rank based on all records a player has made.
-- Stats calculation which shows a player their personal best and average time on a track.
-- Jukebox system which allows a player to select their favorite tracks to be played.
-- Direct adding of tracks from http://nations.tm-exchange.com (Nations only)
-- Karma system which works as a simple but effective replacement of the voting system.
-- Built in IRC bot which links your server to a channel on an IRC server.
-- /nextmap command which shows the track that will be played next on the server.
-- /hi, /bye, /gg, /lol commands from FAST.
-- /msg command which allows players to communicate privately via private message.
-- Team match scoring & output
-- New admin commands
-
-
-Minimum Requirements
---------------------
--Php5 or above (haven't tested with php4 but feel free to try)
--MySQL 5.1 or above
--Stable installation of Aseco 0.6.1b
-
-
-Installation
-------------
-
---CORE PLUGIN--
-
-Before installing the core plugin you MUST ensure Aseco 0.6.1b is running stable on your server. Resolve any issues with aseco before attempting to install rasp.
-
-1. BACK UP your working ASECO files!!!!!!!!! All of them, including files in subdirectories!!!!!
-
-2. Un-rar/un-zip the rasp files and upload the following to the appropriate directory on your server. All files must be within the aseco root folder and in their correct directories.
- - all but five of the files are in their correct directories in the current zip file; use winzip, or similar, and extract with folder/subdirectory names to the main aseco folder
- - overwrite existing files with all of the ones that are in the zip file
- - newinstall/rasp.settings.php has default values in it for a new install. Move it to the includes folder only if this is a brand new install of RASP and you don't yet have an includes/rasp.settings.php file.
- - newinstall/*.xml goes in the main ASECO directory. If you are already running ASECO/RASP, you can leave these alone.
-
-3. Run the rasp.sql file on your aseco database, either with PhpMyAdmin or with console access to mysql.
-
-4, 5, & 6 apply to new installs only. Existing installs can skip these steps.
-
-4. Edit includes/rasp.settings.php as required.
-
-5. Edit plugins.xml to display the line plugin.rasp.php or copy the one out of newinstall and edit as needed.
-
-6. Edit rasp.xml, localdatabase.xml, publicdatabase.xml in the main ASECO directory as needed.
-
-7. If you had an existing RASP installation (prior to 1.1), open newinstall/localdatabase.xml and copy over the section to your existing localdatabase.xml. Do the same for publicdatabase.xml.
-
-8. If you had an existing RASP installation prior to 1.1, and are going to use the matchsave feature, edit matchsave.xml and make appropriate changes as necessary. If you don't want a continuous output file (append, instead of overwrite), you should be able to use nul: for Windows, and /dev/null for linux. If you don't want matchsave, don't add it to plugins.xml.
-
-9. Restart Aseco!
-
-Any problems go to http://www.tm-forum.com/viewtopic.php?t=3356
-
-
---ADDITIONAL PLUGINS--
-
-The extra plugins can be used independently or alongside the core plugin. If
-used independently you must ensure rasp.settings.php has been copied over to
-the includes directory.
-
-1. Place the plugin file inside the plugins folder for your aseco installation.
-
-2. Insert the line plugin.rasp_*plugin-name*.php in plugins.xml
-
-3. Modify includes/rasp.settings.php as required.
-
-3. Restart aseco.
-
-
-plugin.rasp_jukebox.php
------------------------
-This plugin adds the jukebox function to your server, as well as the jukebox extension for requesting tracks directly from TM-Exchange. There are several variables inside rasp.settings.php which correspond to this plugin.
-
-To add a track to the jukebox type:
-/jukebox
-
-To check what a track's ID is use /list. If you do /list xxx, you'll get a list of all tracks with "xxx" in their name, or author's name.
-
-To find out the best & worst rated tracks, use /list karma +# or -#. You'll get back a list of all tracks with # or higher value for +, and all tracks with # or lower for -.
-
-If an admin wants to clear the jukebox use /admin clearjukebox (requires the rasp version of chat.admin.php)
-
-To add a track from TM-Exchange use:
-/add
-The tmx_id is the number on the end of the external link which is at the top of a track's page in TMX.
-Using the /add command successfuly will start a vote. You can specify the pass ratio in rasp.settings.php
-If a player wants to vote for the track they must use /y.
-If the vote is successful the track will be added to the jukebox. Once the track has been played it is removed from the map rotation. To add a track permenantly use /admin add (requires the rasp version of chat.admin.php)
-
-
-plugin.rasp_chat.php
---------------------
-This plugin adds various chat commands to your server which were originally seen in FAST. These commands include /hi, /bye, /gg, /lol, /lool, /msg
-
-To use the hi/bye/gg commands you must use the following syntax (with /hi used as an example)
-
-/hi --displays the message "Hello all !"
-/hi player_name --displays "Hello player_name !"
-
-The /msg command is used for sending private messages.
-/msg player_login *some text* --will send *some text* to the player whose login name is player_login.
-
-/lol & /lool don't require any arguments.
-
-plugin.rasp_karma.php
----------------------
-This plugin adds a replacement to the built-in voting system for aseco. It is much easier to use and seems to get more usage than the original /vote command. Players type "/++" if they like a track and "/--" if they don't. The /karma command shows the track's current karma.
-
-plugin.rasp_irc.php
--------------------
-If this plugin is added it will link your server to an IRC channel. You MUST specify the IRC variables in rasp.settings.php before adding this plugin. If successful you will see a bot in your chosen channel which will relay all chat from your server. It also parses the messages typed by other users in the channel and relays them to the TM-server. It is recommended you use a seperate channel for this bot, as putting it in an existing channel will make it virtually un-usable for anything else if you have a busy server.
-
-plugin.rasp_nextmap.php
------------------------
-This plugin is fairly simple. It adds one command to your server, /nextmap which shows the map to be played next on the server.
-
----------------------------------------------
-Released under the GNU General Public License
-Copyright (C) 2006 Iain Surgey
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/docker-xaseco/xaseco/DOCS/OLD/ReadMe.pdf b/docker-xaseco/xaseco/DOCS/OLD/ReadMe.pdf
deleted file mode 100644
index 008f8a2..0000000
Binary files a/docker-xaseco/xaseco/DOCS/OLD/ReadMe.pdf and /dev/null differ
diff --git a/docker-xaseco/xaseco/DOCS/OLD/plugin.sminfo.php b/docker-xaseco/xaseco/DOCS/OLD/plugin.sminfo.php
deleted file mode 100644
index 82e2572..0000000
--- a/docker-xaseco/xaseco/DOCS/OLD/plugin.sminfo.php
+++ /dev/null
@@ -1,119 +0,0 @@
-login;
- $command['params'] = explode(' ', preg_replace('/ +/', ' ', $command['params']));
-
- // check for optional Track/SM ID parameter
- $id = $aseco->server->challenge->uid;
- $name = $aseco->server->challenge->name;
- if ($command['params'][0] != '') {
- if (is_numeric($command['params'][0]) && $command['params'][0] > 0) {
- $tid = ltrim($command['params'][0], '0');
- // check for possible track ID
- if ($tid <= count($player->tracklist)) {
- // find UID by given track ID
- $tid--;
- $id = $player->tracklist[$tid]['uid'];
- $name = $player->tracklist[$tid]['name'];
- } else {
- // consider it an SM ID
- $id = $tid;
- $name = '';
- }
- } else {
- $message = '{#server}> {#highlite}' . $tid . '{#error} is not a valid Track/SM ID!';
- $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login);
- return;
- }
- }
-
- // obtain SM info
- $data = new SMInfoFetcher($id);
- if (!$data->name) {
- $message = '{#server}> {#highlite}' . ($name != '' ? stripColors($name) : $id) .
- '{#error} is not a known SM track, or ShareMania is down!';
- $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login);
- return;
- }
- $data->name = stripNewlines($data->name);
-
- // compile & send message
- if ($aseco->server->getGame() == 'TMN') {
- $stats = 'SM Info for: {#black}' . $data->name . '$z' . LF . LF;
- $stats .= '$gSM ID : {#black}' . $data->id . LF;
- $stats .= '$gUID : {#black}$n' . $data->uid . '$m' . LF;
- $stats .= '$gAuthor : {#black}' . $data->author . LF;
- $stats .= '$gUploaded : {#black}' . preg_replace('/^\d\d\d\d/', '\$n$0\$m', strftime('%Y-%m-%d %H:%M', $data->uploaded)) . LF;
- if ($data->type == 'Stunts')
- $stats .= '$gAuthorSc : {#black}' . $data->authorsc . LF;
- else
- $stats .= '$gAuthorTm : {#black}' . formatTime($data->authortm) . LF;
- $stats .= '$gGame : {#black}' . $data->game . LF;
- $stats .= '$gType : {#black}' . $data->type . LF;
- $stats .= '$gEnviron : {#black}' . $data->envir . LF;
- $stats .= '$gMood : {#black}' . $data->mood . LF;
- $stats .= '$gNumLaps : {#black}' . $data->nblaps . LF;
- $stats .= '$gCoppers : {#black}' . $data->coppers . LF;
- $stats .= '$gRating : {#black}' . $data->rating . LF;
- $stats .= '$gVotes : {#black}' . $data->votes . LF;
- $stats .= '$gDownloads: {#black}' . $data->dnloads;
-
- // display popup message
- $aseco->client->query('SendDisplayServerMessageToLogin', $login, $aseco->formatColors($stats), 'OK', '', 0);
-
- } elseif ($aseco->server->getGame() == 'TMF') {
- $header = 'SM Info for: {#black}' . $data->name;
- $links = array($data->imageurl, true,
- '$l[' . $data->pageurl . ']Visit SM Page',
- '$l[' . $data->dloadurl . ']Download Track');
- $stats = array();
- $stats[] = array('SM ID', '{#black}' . $data->id,
- 'Game', '{#black}' . $data->game);
- $stats[] = array('UID', '{#black}$n' . $data->uid,
- 'Type', '{#black}' . $data->type);
- $stats[] = array('Author', '{#black}' . $data->author,
- 'Environ', '{#black}' . $data->envir);
- $stats[] = array('Uploaded', '{#black}' . strftime('%Y-%m-%d %H:%M', $data->uploaded),
- 'Mood', '{#black}' . $data->mood);
- if ($data->type == 'Stunts')
- $stats[] = array('AuthorSc', '{#black}' . $data->authorsc,
- 'NumLaps', '{#black}' . $data->nblaps);
- else
- $stats[] = array('AuthorTm', '{#black}' . formatTime($data->authortm),
- 'NumLaps', '{#black}' . $data->nblaps);
- $stats[] = array('Rating', '{#black}' . $data->rating,
- 'Coppers', '{#black}' . $data->coppers);
- $stats[] = array('Votes', '{#black}' . $data->votes,
- 'Downloads', '{#black}' . $data->dnloads);
-
- // display custom ManiaLink message
- display_manialink_track($login, $header, array('Icons64x64_1', 'Maximize', -0.01), $links, $stats, array(1.15, 0.2, 0.45, 0.2, 0.3), 'OK');
-
- } else { // TMS/TMO
- $stats = '{#server}ShareMania Info for: {#highlite}' . $data->name . '$z' . LF;
- $stats .= '{#server}SM ID : {#highlite}' . $data->id . LF;
- $stats .= '{#server}UID : {#highlite}' . $data->uid . LF;
- $stats .= '{#server}Author : {#highlite}' . $data->author . LF;
- $stats .= '{#server}Rating : {#highlite}' . $data->rating;
-
- // show chat message
- $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($stats), $login);
- }
-} // chat_sminfo
-?>
diff --git a/docker-xaseco/xaseco/DOCS/OLD/sminfofetcher.inc.php b/docker-xaseco/xaseco/DOCS/OLD/sminfofetcher.inc.php
deleted file mode 100644
index 0e73a95..0000000
--- a/docker-xaseco/xaseco/DOCS/OLD/sminfofetcher.inc.php
+++ /dev/null
@@ -1,149 +0,0 @@
-
- * Based on TMXInfoFetcher & http://www.sharemania.eu/api_tutorial.php
- *
- * v1.2: Added magic __set_state function to support var_export()
- * v1.1: Optimized get_file URL parsing
- * v1.0: Initial release
- */
-class SMInfoFetcher {
-
- public $uid, $id,
- $name, $stname, $author,
- $game, $type, $envir, $mood, $nblaps, $coppers,
- $bronzetm, $silvertm, $goldtm, $authortm, $authorsc,
- $rating, $votes, $dnloads, $uploaded,
- $pageurl, $imageurl, $dloadurl;
-
- /**
- * Fetches a hell of a lot of data about a SM track
- *
- * @param String $id
- * The challenge UID to search for (if a 26/27-char alphanum string),
- * otherwise the SM ID to search for (if a number)
- * @return SMInfoFetcher
- * If $name is empty, track was not found
- */
- public function SMInfoFetcher($id) {
-
- // check for UID string
- if (preg_match('/^\w{26,27}$/', $id)) {
- $this->uid = $id;
- $this->getData(true);
- // check for SM ID
- } elseif (is_numeric($id) && $id > 0) {
- $this->id = floor($id);
- $this->getData(false);
- }
- } // SMInfoFetcher
-
- public function __set_state($import) {
-
- $sm = new SMInfoFetcher(0);
-
- $sm->uid = $import['uid'];
- $sm->id = $import['id'];
- $sm->name = $import['name'];
- $sm->stname = $import['stname'];
- $sm->author = $import['author'];
- $sm->game = $import['game'];
- $sm->type = $import['type'];
- $sm->envir = $import['envir'];
- $sm->mood = $import['mood'];
- $sm->nblaps = $import['nblaps'];
- $sm->coppers = $import['coppers'];
- $sm->bronzetm = $import['bronzetm'];
- $sm->silvertm = $import['silvertm'];
- $sm->goldtm = $import['goldtm'];
- $sm->authortm = $import['authortm'];
- $sm->authorsc = $import['authorsc'];
- $sm->rating = $import['rating'];
- $sm->votes = $import['votes'];
- $sm->dnloads = $import['dnloads'];
- $sm->uploaded = $import['uploaded'];
- $sm->pageurl = $import['pageurl'];
- $sm->imageurl = $import['imageurl'];
- $sm->dloadurl = $import['dloadurl'];
-
- return $sm;
- } // __set_state
-
- private function getData($isuid) {
-
- // get all track info
- $file = $this->get_file('http://www.sharemania.eu/api.php?i&u&n&sn&a&gv&e&m&ty&nbl&c&t&p&pa&id=' . ($isuid ? $this->uid : $this->id));
- if ($file === false || $file == -1)
- return false;
-
- // parse XML info
- if (!$xml = @simplexml_load_string($file))
- return false;
-
- // extract all track info
- if ($isuid)
- $this->id = (string) $xml->header->i;
- else
- $this->uid = (string) $xml->header->u;
-
- $this->name = (string) $xml->header->n;
- $this->stname = (string) $xml->header->sn;
- $this->author = (string) $xml->header->a;
- $this->type = (string) $xml->header->ty;
- $this->game = (string) $xml->header->gv;
- $this->envir = (string) $xml->header->e;
- $this->mood = (string) $xml->header->m;
- $this->nblaps = (string) $xml->header->nbl;
- $this->coppers = (string) $xml->header->c;
- $this->bronzetm = (string) $xml->times->b;
- $this->silvertm = (string) $xml->times->s;
- $this->goldtm = (string) $xml->times->g;
- $this->authortm = (string) $xml->times->at;
- $this->authorsc = (string) $xml->times->as;
- $this->rating = (string) $xml->infos->r;
- $this->votes = (string) $xml->infos->v;
- $this->dnloads = (string) $xml->infos->d;
- $this->uploaded = (string) $xml->infos->ud;
-
- $this->imageurl = (string) $xml->pic;
- $this->pageurl = 'http://www.sharemania.eu/track.php?id=' . $this->id;
- $this->dloadurl = 'http://www.sharemania.eu/download.php?id=' . $this->id;
- } // getData
-
- // Simple HTTP Get function with timeout
- // ok: return string || error: return false || timeout: return -1
- private function get_file($url) {
-
- $url = parse_url($url);
- $port = isset($url['port']) ? $url['port'] : 80;
- $query = isset($url['query']) ? "?" . $url['query'] : "";
-
- $fp = @fsockopen($url['host'], $port, $errno, $errstr, 4);
- if (!$fp)
- return false;
-
- fwrite($fp, 'GET ' . $url['path'] . $query . " HTTP/1.0\r\n" .
- 'Host: ' . $url['host'] . "\r\n\r\n");
- stream_set_timeout($fp, 2);
- $res = '';
- $info['timed_out'] = false;
- while (!feof($fp) && !$info['timed_out']) {
- $res .= fread($fp, 512);
- $info = stream_get_meta_data($fp);
- }
- fclose($fp);
-
- if ($info['timed_out']) {
- return -1;
- } else {
- if (substr($res, 9, 3) != '200')
- return false;
- $page = explode("\r\n\r\n", $res, 2);
- return trim($page[1]);
- }
- } // get_file
-} // class SMInfoFetcher
-?>
diff --git a/docker-xaseco/xaseco/DOCS/admin_abilities.html b/docker-xaseco/xaseco/DOCS/admin_abilities.html
deleted file mode 100644
index 1606fe8..0000000
--- a/docker-xaseco/xaseco/DOCS/admin_abilities.html
+++ /dev/null
@@ -1,194 +0,0 @@
-
-
-
-TrackMania Nations - XASECO administrator abilities
-
-
-
-
-
-
-
-
-
-
-
-This is a simple hub page for TrackMania Nations ESWC. It aims to collect in one place useful information and references to official and community sites for this classic racing game by Nadeo. Here are relevant excerpts from the TMN ESWC press release:
-
-"For the first time in the history of eSport, a video game has been specially developed for the Electronic Sports World Cup and is being offered free of charge to the players of the entire planet."
-
-"This special version features a brand new environment, the Stadium, and a revolutionary new gameplay designed for Nadeo's own custom cars. Nadeo has pulled the technological rabbit from the hat with their own brand game engine, featuring the series' best graphics yet, finely tuned for the latest generation graphics cards, not forgetting simpler machines so that no one round the world has a technical freeze out on the race track. With the online in-game ladder, players can customise their cars and avatars and race in their nation's colours on the world's servers. Many Trackmania and Trackmania Sunrise players will already have access to the following exclusive features: peer 2 peer data exchange and skin and avatar customisation."
-
-
-
-
XASECO:
-
-
-
-This page is also the initial home to XASECO, which stands
-for Xymph's ASECO and is the new name for the system formerly
-known as ASECO/RASP for classic TMN. It now supports TrackMania
-Forever as well. ASECO is an abbreviation of "Automatic
-SErver COntrol", a system for TrackMania Original,
-Sunrise and (especially) Nations and Forever servers
-to keep track of player records and provide useful player and admin
-commands. RASP is a sizable set of plugins for ASECO that adds
-server ranks, a track jukebox, a karma voting system, and lots more.
-
-
-As evidenced by the many TrackMania (Nations) servers running it,
-the ASECO/RASP system for TMO/TMS/TMN remained a very popular package
-to keep track of records and offer players various useful commands
-and features. But its original authors have moved on to TM United,
-so I have been working at the system on my own since May 2007 to
-improve and expand it. The number of changes is so large that I
-decided (somewhat presumptuously perhaps) to call this system XASECO
-version 0.8, subsequently updated to v1.16, many major
-releases since ASECO 0.61b and RASP 1.5 that together combined into
-version 0.7. TrackMania Forever is also supported since XASECO v0.96.
-
-
-I don't believe there's a point in running a barebones (X)ASECO system
-without at least the RASP plugins because those add so many basic
-and useful features and commands which players enjoy, so they are
-not released separately like before but as one combined system. The
-remaining plugins included in this v1.16 release (Mistral's idle-kick,
-and Jfreu's plugin) are however optional, as are the series of new
-plugins I developed myself. My overall goal remained to stick to
-'core functionality' as much as possible, rather than include into
-the base system any of the variety of 'niche' plugins that exist out
-there, while still providing a complete and integrated solution for
-server control.
-
-
-For a high-level outline of all of XASECO's features and plugins,
-see the Overview page. For screenshots
-of many of the TMF interface features, see this preview
-thread.
-
-
-
-For historical info, you can consult the old ASECO v0.61b readme.pdf
-and corresponding Tutorial, as well as the old RASP v1.5 readme.txt,
-in Server Resources below.
-
-
-The following files were updated in v1.16: aseco.php, dedimania.xml,
-includes/GbxRemote.bem.php, GbxRemote.inc.php, basic.inc.php,
-gbxdatafetcher.inc.php, rasp.funcs.php, rasp.settings.php,
-tmxinfosearcher.inc.php, types.inc.php, jfreu.config.php,
-plugins/chat.dedimania.php, plugin.checkpoints.php,
-plugin.dedimania.php, plugin.localdatabase.php,
-plugin.rasp_nextmap.php.
-
-
-
-Important:
-
-
To register your server with the central Dedimania
-database, you must copy the login and password values in the
-<masterserver_account> section from your
-server's dedicated.cfg (TMN) or dedicated_cfg.txt (TMF) file into
-the corresponding section of the dedimania.xml file, and add
-the 3-character nation abbreviation. Instead of the password
-you can also use the community code for your server by using
-the server login/password on the official
-site for your game (TMO/TMS/TMN) or on this page for
-TMF.
-
Open port 8002 on your firewall/router for communication
-with the central Dedimania server.
-
In the zip file, all *.XML and *.PHP config files are located
-inside the newinstall/ directory. This means that you can (and
-have to) unzip the download and replace all the PHP code files, without
-worrying about overwriting your customized config files. However, for
-every XML/PHP config file that was updated (see above), you must
-replace your version with the one from the newinstall/ directory, or
-compare them and add any new/changed configuration settings
-to your version to insure the system remains working correctly.
-
For a new installation, go into the newinstall/ directory and move
-all *.XML files into the main directory (next to aseco.php), all *.PHP
-files into the includes/ directory, and Aseco.bat|Aseco.sh|AsecoF.sh
-also into the main directory.
-
-
-
-
Upgrading from v0.7 to v0.8+ and from v0.8-v1.14 to v1.15b:
-XASECO is a server controller for TMF (both Nations and United) and TMN
-written in PHP using a MySQL database. It should also still support
-TMO and TMS but I'm unable to test that. The main XASECO program
-aseco.php is merely a framework to handle communication with
-the dedicated server, handle events, provide logging, and offer support
-functionality. All user features and commands are provided by plugins.
-
-
Plugins:
-XASECO runs fine with an empty plugins.xml list, it just
-won't do very much. To provide user functionality, add files from
-plugins/ directory to the list. Some plugins are essential, such as
-plugin.localdatabase.php for communication with the database, while
-many others are optional. However, some plugins depend on others being
-present (sometimes in the correct order in plugins.xml), so it's best
-to preserve as much of the default plugins.xml list as needed.
-
-
Configs:
-Configuration files consist of .XML files in the main directory, as
-well as some of the .PHP files in the includes/ directory. The most
-important one is config.xml, containing many of the basic
-settings, messages, and server and admin definitions. Other config
-files are typically related to one specific plugin or set of plugins
-(like RASP with rasp.xml and rasp.settings.php).
-
-
Database:
-Using the MySQL database requires the plugin.localdatabase.php
-plugin configured via localdatabase.xml. It stores information
-about tracks, players, local records, all finishes, karma (or old
-style) votes, player ranks, and more.
-
-
Help:
-The main /help command provided by chat.help.php lists
-all available chat commands in a chat message, while /helpall
-generates a window that includes descriptions. Other plugins
-sometimes include a help command (/helpdedi for Dedimania,
-/helpvote for chat-based votes) and some commands include a
-help option (e.g. /admin helpall, /list help, etc).
-
-
Players:
-Player connects and disconnects are handled by the main aseco.php
-program and relayed to plugins via the onPlayerConnect and
-onPlayerDisconnect events. The /players command is provided
-by the chat.players.php plugin, while chat.players2.php
-provides a couple of related commands.
-
-
Local Records:
-Local records are determined and stored by the
-plugin.localdatabase.php plugin, and can be displayed
-by the /recs command from the chat.records.php
-plugin. Additional record rankings and listings are provided by
-the chat.records2.php plugin, while chat.recrels.php
-offers record relation commands. The maximum number of records
-per track is defined in rasp.settings.php.
-
-
Dedimania Records:
-Dedimania records are determined and stored on the central Dedimania site
-by the plugin.dedimania.php plugin, and can be displayed by the
-/dedirecs command from the chat.dedimania.php plugin.
-Additional record rankings and listings, as well as record relations,
-are provided by the same plugin. All related configuration options
-and messages are provided in dedimania.xml (the maximum number
-of records per track should be kept at 30). Detailed information can
-be found in the v0.95 release notes.
-
-
Checkpoints:
-Players can keep track of their relative performance at
-each checkpoint with the /cps command, provided by the
-plugin.checkpoints.php plugin. Normally it uses the player's
-own (or any other) local record as reference, if checkpoints are
-available for that record, and shows whether each crossing is faster
-or slower in the CPS panel above the main racing time (TMF) or in
-a brief pop-up window (TMN). If the Dedimania system is enabled,
-the /dedicps command can be used to compare the times with the
-player's own (or any other) Dedimania record instead. Both settings
-are stored for all players, and reloaded upon every visit. More
-information can be found in the v0.93,
-v0.98 and v1.06 release notes.
-
-
Anti-cheat checks:
-When the plugin.checkpoints.php plugin is active, it also checks
-checkpoints and finish times in several ways to reduce the chances of
-cheated races resulting in local and Dedimania records. See the v1.05 release notes for more information.
-
-
Rounds:
-When the plugin.rounds.php plugin is active in Rounds, Team and
-Cup (TMF) mode, a report with each player's finish time is shown after
-each run. It serves no purpose in TimeAttack, Laps and Stunts mode.
-
-
Track Lists & Jukebox:
-The plugin.rasp_jukebox.php plugin provides the /list
-command to list, search for and select from the available tracks
-with a wide variety of options. Players can pick any track from the
-list that hasn't been played recently, and add it to a jukebox of
-tracks that's given precedence over tracks from the regular server
-rotation. This is controlled by a number of configuration settings
-in rasp.settings.php.
-
-
TMX
-Specific tracks can be downloaded and added directly from TMX with the
-/add command (in plugin.rasp_jukebox.php) and /admin
-add command (in chat.admin.php). Searching on TMX can be
-done with /xlist, while the plugin.tmxinfo.php plugin
-offers commands to display track information. More information
-can be found in the v0.93 and v1.01 release notes.
-
-
Karma:
-Karma votes are an easy way for players to indicate via /++
-or /-- commands whether they like or don't like a track,
-provided by the plugin.rasp_karma.php plugin and configured
-by settings in rasp.settings.php. Some details can be found
-in the v0.89 release notes.
-
-
Ranks:
-A player obtains a server rank by racing a minimum number (default 3,
-configured in rasp.settings.php) of local ("ranked") records.
-The average of a player's records over all server tracks determines
-the ranking, managed by the plugin.rasp.php plugin with
-plugin.rasp_nextrank.php providing a related command.
-
-
Stats:
-Player stats are displayed by the /stats command from
-the chat.stats.php plugin, while server information is
-provided by /server, /xaseco and /plugins from
-chat.server.php. Related plugins chat.laston.php,
-chat.songmod.php, chat.wins.php and
-plugin.track.php offer associated commands.
-
-
Tiered Admins:
-The tiered admin system defines three ability levels: MasterAdmins
-(specified in config.xml) who can run any admin command, and
-Admins and Operators for whom the logins and abilities are specified
-in adminops.xml. Typically, Operators are allowed to use
-the fewest admin commands, and the abilities list extends beyond
-the /admin command to special admin features of user commands
-(such as jukeboxing tracks that were played too recently). Admins and
-operators can be added and removed dynamically, or their abilities
-updated, and adminops.xml will be automatically kept in sync.
-See this table for the default list
-of abilities, and detailed information can be found in the v0.88 release notes.
-
-
Chat-based Votes:
-Chat-based votes allow players to vote on actions that
-regular CallVotes don't support, such as ending a round or
-replaying a track. When enabled in rasp.settings.php, the
-plugin.rasp_votes.php plugin disables CallVotes completely and
-offers several voting commands that can be voted on with the /y
-command (there is no /n counterpart), and on TMF also via the
-vote panel provided by plugin.panels.php. Vote configuration
-is done in votes.config.php, and detailed information can be
-found in the v0.84 release notes.
-
-
Public/Private Messages:
-The plugin.rasp_chat.php and chat.me.php plugins
-offer a wide variety of commands to quickly shout out a message to
-other players. Players' regular chat lines are logged and displayed
-by the plugin.chatlog.php plugin. Private messages from one
-player to another can be send with the /pm command, from an
-admin to a player (Cc-ing all other admins) with /pma, and
-from one admin to all other admins with /admin pm.
-
-
Muting/Ignoring:
-Muting (the TMN term) or ignoring (TMF) implies that chat messages
-from a specified player are suppressed and aren't readable for other
-players in the chat window. Admins can maintain a global list of
-muted/ignored players, which on TMF uses the built-in Ignore features
-and on TMN a simulated suppression system. The latter system is
-also used when an individual player mutes another player using the
-commands provided in the plugin.muting.php plugin. See the v0.90 release notes for more information.
-
-
Ban, Black- & Guestlist:
-A number of /admin commands from chat.admin.php can be
-used to warn (with a pop-up message) or kick players, and to punish
-repeat offenders with a ban or blacklist. Bans work by IP address and
-are tracked only by the dedicated server, and therefore get purged
-by a server restart. Blacklists work by login and are stored in
-the blacklist.txt file, and therefore persist across server
-restarts. Logins on the guestlist can enter the server even when
-the maximum number of players or spectators is reached or when the
-server is passworded, and are preserved in the guestlist.txt
-file. In addition to these built-in mechanisms, XASECO provides
-a list of banned IP addresses in the bannedips.xml file
-that also transcends server restarts, with more info in the v1.03 release notes.
-
-
Player access
-Besides the above local server mechanisms, player access can
-also be managed with the global blacklist, and with
-access control by nation (TMN) or zone (TMF). See the v1.09 release notes for details. Lastly,
-the full Jfreu plugin (below) allows player limiting by rank.
-
-
Admin Commands:
-Other /admin commands control the game flow (ending a round,
-skipping to the next or previous track, restarting or replaying
-a track), affect the server settings (player/spectator limits,
-TMF panels, etc), manage tracks and the jukebox, and much more.
-Security of the admin commands and features against unauthorized
-use can be warranted with a lock password and by specifying
-authorized IP addresses for each admin login. See the v1.03 release notes for more information.
-
-
Idlekick:
-Inactive players and, optionally, spectators can be kicked
-automatically at the end of each track after a specified number of
-tracks by the mistral.idlekick.php plugin. Configuration
-settings are included in the plugin itself. Some details can be
-found in the v0.90 release notes.
-
-
Auto TimeLimit:
-With the plugin.autotime.php plugin enabled in TimeAttack mode,
-the timelimit for each track is defined dynamically, based on the
-track's author time and settings in autotime.xml. See the v1.04 release notes for details.
-
-
Jfreu:
-The Jfreu plugins jfreu.plugin.php and jfreu.chat.php
-provide a variety of features, including player connect/disconnect
-messages, informational messages, rank limiting (with VIP
-exceptions), bad word filtering, and more. The first two features
-are also available separately in the jfreu.lite.php
-plugin in case the rest isn't needed. They are configured via
-jfreu.config.php and changed options are automatically stored in
-the jfreu/jfreu.config.xml file. More information is available
-in the v0.91 release notes.
-
-
TMF Music:
-The plugin.musicserver.php plugin offers support for playing
-server controlled music instead of the default game music and,
-optionally, even overriding a track's own song. The /music
-command includes a simple jukebox feature as well as admin options,
-and .OGG comments (ID3 tags) can also be displayed. Configuration
-is done in musicserver.xml, and more information can
-be found in the v0.99,
-v1.02 and v1.04 release notes.
-
-
TMF Custom Rounds Points:
-With the plugin.rpoints.php plugin enabled, admins can select
-alternative points systems in Rounds mode instead of the standard
-10,6,4,3,2,1. Various common systems (like Formula 1 GP and MotoGP)
-are included, and completely custom systems can be defined as well.
-See the v1.04 release notes for
-details.
-
-
TMF Styles & Panels:
-The main output window can be dynamically customized with a large
-number of style templates from the styles/ subdirectory, managed
-by the plugin.style.php plugin. The plugin.panels.php
-plugin provides four panels: the admin panel to easily activate a
-handful of the most commonly used admin commands; the donate panel
-to easily initiate a donation with a variety of copper amounts; the
-records panel to display a track's relevant records; and a temporary
-vote panel to easily respond to chat-based votes. Each panel
-can be dynamically customized with a number of templates from the
-panels/ subdirectory. All players' style and panel preferences
-are stored, and reloaded upon every visit. Detailed information
-can be found in the v1.00,
-v1.01 and v1.06 release notes.
-
-
TMF Stats Panels:
-Instead of the rank chat messages at the end of each track, on TMF
-a personal stats panel can be displayed for each player during the
-scoreboard. The stats are: server rank, record average, records total,
-wins total, session play time, and donation total (on TMUF servers).
-Details are included in the v1.06 release
-notes.
-
-
TMF Message Window:
-When enabled via plugin.msglog.php, the system message window
-near the top of the screen can be used to temporarily display a wide
-variety of global messages that normally flood the chat window.
-These include new/improved/equalled records, record reports
-before and after each track, rounds reports, Jfreu Info messages
-and several more, all individually configured in their pertaining
-config files. See the v1.02 and v1.03 release notes for more information.
-
-
TMUF Coppers:
-Copper transactions are managed by the plugin.donate.php
-plugin, allowing players to donate coppers to the server, and
-admins (with the appropriate ability) to pay coppers to any
-other login (including another server). More information is
-available in the v0.99 and v1.01 release notes.
-
-
-
-This is step-by-step guide to setting up a TrackMania Forever (TMF) dedicated server with XASECO for those lost in or confused by the available readme's and tutorials, and those just too lazy to read them. ;-)
-
-
-It's written for Linux but should largely apply to Windows too, and your system needs to have a working MySQL 4.x or 5.x and PHP 5.x setup. To manage the database, enter the MySQL commands in the mysql command prompt, PhpMyAdmin or another tool of your choice. You need to run the TMF server and XASECO on the same machine, running them on separate machines is beyond the scope of this guide.
-
-
-First, the dedicated server:
-
-
-
-
Ideally, the TMF server and XASECO run under a user account rather than root, so create a user e.g. "tmf" with home directory "/home/tmf".
-
-
Login as (or switch to) user "tmf" so that all files created down the road receive the correct ownership and permissions.
-
-
The TMF server zip doesn't have a top-level directory, so create one first to keep all the server files together, e.g.:
-
for TM Nations Forever, use your game client to create a new dedicated server login (note that this server won't be able to use coppers).
-
for TM United Forever, log into the TMF Player Page using your player login and password, and create a dedicated server login and password (different from your player password) after entering your full game key.
-
-
-
Edit TMF/GameData/Config/dedicated_cfg.txt:
-
-
In the <authorization_levels> section, change all three passwords, but do not change the names (SuperAdmin, Admin, User).
-
In the <masterserver_account> section, enter the server <login> obtained above with its own <password>, and optionally the last three characters of your player key in <validation_key> if you want your TMUF server to be able to use coppers.
-
In the <server_options> section, give your server a <name> and configure the other options to your liking.
-
In the <system_config> section, set <connection_uploadrate> and <connection_downloadrate> to values closest to your connection's speed (in Kbps), and remember the three port numbers (default: 2350 for the server, 3450 for P2P and 5000 for XMLRPC; these can be changed to other free port numbers, but it's recommended to keep the defaults at least until your server comes online successfully).
-
For a TMNF server, <packmask> must be set to 'nations' or 'stadium'. For TMUF it can be empty or set to 'united', or to one environment like 'desert', 'island', etc, or to the three environments of the older games with 'original' or 'sunrise'.
-
-
-
Choose and edit a match settings file, e.g. TMF/GameData/Tracks/MatchSettings/Nations/NationsBlue.txt, to your liking (see the server readme for details).
-
-
On your firewall/router, open the server port 2350 and the P2P port 3450 for both UDP and TCP traffic, but not the XMLRPC port 5000. For the Dedimania system in XASECO port 8002 needs to be open as well. For more information on this, PortForward.com may be useful.
-
-
A standard startup script is no longer included in the zip, so create one looking like this in RunTrackmaniaNations.sh (and make it executable with chmod +x RunTrackmaniaNations.sh):
-
- Options /internet and /autoquit are now default, and the /game=... option (from TMN) is no longer needed due to the <packmask> setting.
-
-
Start the server:
-
- cd ~/TMF/
- ./RunTrackmaniaNations.sh (or RunTrackmaniaNations.bat)
-
- You should see output like the following:
-
-Starting TmForever v2011-02-21...
-Initializing...
-Configuration file : dedicated_cfg.txt
-Loading system configuration...
-...system configuration loaded
-Loading cache...
-...OK
-Listening for xml-rpc commands on port 5000.
-Trackmania server daemon started with pid=13512 (parent=13483).
-
- If you get a Segmentation Fault here, the server cannot create files/directories due to ownership/permission problems (perhaps you forgot step 2?).
-
-
The first time the server starts, it creates a Default.SystemConfig.Gbx file as well as the blacklist.txt and guestlist.txt files in the GameData/Config/ directory, and a number of directories like Logs/, GameData/Cache/, GameData/Profiles/, GameData/Scores/, GameData/Tracks/Campaigns/, GameData/Tracks/Replays/, GameData/Tracks/Challenges/Downloaded/ and GameData/Tracks/Challenges/My Challenges/. The files in the Logs/ directory are useful to monitor your server's activity.
-
-
Start your TMF client and check in the Internet server browser that the server is running in your zone with your chosen server name and the Nadeo Advanced tracks.
-
-
Join your server, and have a friend join from elsewhere on the Internet, to verify that the server is accessible.
-
-
Ignore the private network warning that is always logged in ConsoleLog.*.txt.
-
-
To start & stop your TMF server on Linux more easily, you can use this start-up script.
-
-
Collect your own tracks in GameData/Tracks/Challenges/My Challenges/, copy and edit a new match settings file in GameData/Tracks/MatchSettings/ that lists those tracks, use that file in RunTrackmaniaNations.sh (or RunTrackmaniaNations.bat), and restart your server. It should now be running your track selection. Congratulations. :-)
-
-
-
-
-Secondly, the XASECO system:
-
-
-
-
Create the XASECO database in MySQL (default "aseco" but any other name is okay too):
-
- CREATE DATABASE aseco;
-
- Also create a separate user (e.g. "tmf") in MySQL with a password, and grant this user all rights to the "aseco" database. The basic MySQL commands are:
-
- CREATE USER 'tmf'@'localhost';
- SET PASSWORD FOR 'tmf'@'localhost' = password('password');
- GRANT all ON aseco.* TO 'tmf'@'localhost';
-
-
-
Login as (or switch to) user "tmf" so that all files created down the road receive the correct ownership and permissions.
-
-
Download and unzip XASECO (latest version) into the "/home/tmf/" directory too, the default path will be xaseco/ so that future releases can be unpacked into the same directory tree.
- In the zip file, all *.XML and config files are located inside the newinstall/ directory. Go into the newinstall/ directory and move all *.XML files into the main directory (next to aseco.php), and move all *.PHP files into the includes/ directory.
- Also, move AsecoF.sh (on Linux) or Aseco.bat (on Windows) into the main directory and adjust it to your situation if necessary.
-
-
Setting up the database tables in MySQL is done automatically the first time XASECO runs, but if you prefer you can do it manually in advance:
-
Replace YOUR_MYSQL_LOGIN with the MySQL user you created above, e.g. tmf.
-
Replace YOUR_MYSQL_PASSWORD with the MySQL password you set above.
-
Use the same database name as you created above, e.g. aseco.
-
localhost is your own machine, so the server option is okay.
-
-
-
Edit xaseco/config.xml:
-
-
In the <masteradmins> section, uncomment and replace YOUR_MASTERADMIN_LOGIN with your player login, and add further logins for other players you want to grant all XASECO admin rights.
-
In the <tmserver> section, replace YOUR_SUPERADMIN_PASSWORD with the password you chose for SuperAdmin in dedicated_cfg.txt (TMF step 6a above) but do not change the SuperAdmin login itself.
-
The <port> field should contain the same XMLRPC port number you chose in dedicated_cfg.txt (TMF step 6d above), default 5000.
-
IP 127.0.0.1 is your own machine again, so that option is okay too.
-
-
-
Edit xaseco/adminops.xml:
-
-
In the <admins> section, uncomment and replace YOUR_ADMIN_LOGIN with an admin's login, and add further logins for other players you want to grant partial XASECO admin rights. Or leave the <tmlogin> entry commented out if there are none.
-
In the <operators> section, uncomment and replace YOUR_OPERATOR_LOGIN with an operator's login, and add further logins for other players you want to grant XASECO operator rights. Or leave the <tmlogin> entry commented out if there are none.
-
-
-
Edit xaseco/dedimania.xml if you want to use the Dedimania world records system:
-
-
In the <masterserver_account> section, replace YOUR_SERVER_LOGIN and YOUR_SERVER_PASSWORD with the <login> and <password> values from your dedicated_cfg.txt file.
-
Also, replace YOUR_SERVER_NATION with your 3-character nation abbreviation.
-
Instead of the password you can also enter the community code for your server which can be obtained by using the server login/password on this page for TMF.
-
To disable Dedimania support, remove or comment out the chat.dedimania.php and plugin.dedimania.php entries in plugins.xml.
-
-
-
Start the XASECO system:
-
- cd ~/xaseco/
- ./Aseco.sh (or Aseco.bat)
-
- You won't see output, but logfile.txt should contain something like the following:
-
-[XAseco] PHP Version is 5.3.x on Linux
-[XAseco] Load settings [config.xml]
-[XAseco] Load admin/ops lists [adminops.xml]
-[XAseco] Load banned IPs list [bannedips.xml]
-[XAseco] Load plugins list [plugins.xml]
-[XAseco] Load plugin [plugin.localdatabase.php]
-[XAseco] Load plugin [plugin.rounds.php]
-[...snip plugins...]
-[XAseco] Load plugin [jfreu.plugin.php]
-[XAseco] Load plugin [mistral.idlekick.php]
-[XAseco] Try to connect to TM dedicated server on 127.0.0.1:5000 timeout 180s
-[XAseco] Try to authenticate with username 'SuperAdmin' and password 'PASSWORD'
-[XAseco] Connection established successfully!
-[Local DB] Load settings file
-[Local DB] Try to connect to MySQL server on 'localhost' with database 'aseco'
-[Local DB] MySQL Server Version is 5.1.56-log
-[RASP] Cleaning up unused data
-*-*-*-*-*-* RASP is running! *-*-*-*-*-*
-|...Loading Settings
-|...Loaded!
-|...Checking database structure
-|...Structure OK!
-|...Calculating ranks
-|...Done!
-[04/xx,xx:11:17] Load default style [styles/DarkBlur.xml]
-[04/xx,xx:11:17] Load default admin panel [panels/AdminBelowChat.xml]
-[04/xx,xx:11:17] Load default donate panel [panels/DonateBelowCPList.xml]
-[04/xx,xx:11:17] Load default records panel [panels/RecordsRightBottom.xml]
-[04/xx,xx:11:17] Load default vote panel [panels/VoteBelowChat.xml]
-[04/xx,xx:11:17] ************* (Dedimania) *************
-[04/xx,xx:11:17] * Dataserver connection on Dedimania ...
-[04/xx,xx:11:17] * Try connection on http://dedimania.net:8002/Dedimania ...
-[04/xx,xx:11:18] Webaccess (dedimania.net:80): send: deflate, receive: gzip
-[04/xx,xx:11:18] * Connection and status ok! :)
-[04/xx,xx:11:18] * NEWS (Dedimania, 08/05): news
-[04/xx,xx:11:18] ------------- (Dedimania) -------------
-[04/xx,xx:11:18] Load stats panel [panels/StatsNations.xml]
-[04/xx,xx:11:18] Load auto timelimit config [autotime.xml]
-###############################################################################
- XASECO v1.1x running on 127.0.0.1:5000
- Name : YOUR SERVER NAME - YOUR_SERVER_LOGIN
- Game : TmForever United - Stadium - TimeAttack
- Version: 2.11.26 / 2011-02-21
- Authors: Florian Schnell & Assembler Maniac
- Re-Authored: Xymph
-###############################################################################
-Begin Race
-[04/xx,xx:11:18] track changed [none] >> [Pro - 38~74~75~89~93]
-[04/xx,xx:11:18] currently no record on Pro - 38~74~75~89~93
-
- If you get an RPC Permission Error here, there is an XMLRPC port mismatch or the dedicated server isn't running (anymore).
-
-
To start & stop your XASECO on Linux more easily, you can use this start-up script.
-
-
Edit the configuration options to your liking, and restart XASECO. It should now be ready to manage tracks, receive players, and record... er... records. Congratulations. :-)
-
-
-Finally, to run another server on the same machine:
-
-
-
-
Basically follow the same steps above, but use a second user account (e.g. "tmf2"), another new server login/password in dedicated_cfg.txt, a separate server name, a second set of ports (e.g. 2351, 3451 and 5001), a new database (e.g. "aseco2"), optionally a second MySQL account (e.g. "tmf2"), and the corresponding updates in localdatabase.xml and config.xml.
-
-
Don't use symbolic links in the GameData/ directory tree (e.g. to symlink the tracks from the first server to the second one), as the TMF server will crash without an error message.
-
-
-
-And for the last time, read the readme's and tutorials completely for a more thorough understanding of the entire setup.
-
-
-This is step-by-step guide to setting up a classic TrackMania Nations (TMN) dedicated server with XASECO for those lost in or confused by the available readme's and tutorials, and those just too lazy to read them. ;-)
-
-
-It's written for Linux but should largely apply to Windows too, and your system needs to have a working MySQL 4.x or 5.x and PHP 5.x setup. To manage the database, enter the MySQL commands in the mysql command prompt, PhpMyAdmin or another tool of your choice. You need to run the TMN server and XASECO on the same machine, running them on separate machines is beyond the scope of this guide.
-
-
-First, the dedicated server:
-
-
-
-
Ideally, the TMN server and XASECO run under a user account rather than root, so create a user e.g. "tmn" with home directory "/home/tmn".
-
-
Login as (or switch to) user "tmn" so that all files created down the road receive the correct ownership and permissions.
-
-
Download and unzip the final TMN server (TmDedicatedServer_2006-05-30.zip) into this home directory, the default path will be TmDedicatedServer/.
-
-
Edit TmDedicatedServer/dedicated.cfg:
-
-
In the <authorization_levels> section, change all three passwords, but do not change the names (SuperAdmin, Admin, User).
-
In the <masterserver_account> section, enter a new server <login> (different from your player login) with its own <password> (again different) and an appropriate and valid three-letter <nation>. If you're not sure your chosen login is new, use your TMN client to test it first, in both cases the account will be registered automatically with the masterserver.
-
In the <server_options> section, give your server a <name> and configure the other options to your liking.
-
In the <system_config> section, set <connection_type> to a value closest to your connection's speed (see the server readme for correct values), and remember the three port numbers (default: 2350 for the server, 3450 for P2P and 5000 for XMLRPC; these can be changed to other free port numbers, but it's recommended to keep the defaults at least until your server comes online successfully).
-
-
-
Edit the default match settings file TmDedicatedServer/GameData/Tracks/MatchSettings/Internet/AdvancedTraining.txt to your liking (again, see the server readme for details).
-
-
On your firewall/router, open the server port 2350 and the P2P port 3450 for both UDP and TCP traffic, but not the XMLRPC port 5000. For the Dedimania system in XASECO port 8002 needs to be open as well. For more information on this, PortForward.com may be useful.
-
-
Start the server:
-
- cd ~/TmDedicatedServer/
- ./RunTrackmaniaNations.sh (or RunTrackmaniaNations.bat)
-
- You should see output like the following:
-
-Starting TmNationsESWC v2006-05-30...
-Unable to open '/home/tmn/TmDedicatedServer/Default.SystemConfig.GbxInitializing...
-Configuration file : dedicated.cfg
-Loading system configuration...
-...system configuration loaded
-Loading cache...
-...OK
-Listening for xml-rpc commands on port 5000.
-Trackmania server daemon started with pid=28936 (parent=28935).
-
- If you get a Segmentation Fault here, the server cannot create files/directories due to ownership/permission problems (perhaps you forgot step 2?).
-
-
The first time the server starts, it creates that Default.SystemConfig.Gbx file, as well as the blacklist.txt and guestlist.txt files and a number of directories like Logs/, GameData/Cache/, GameData/Profiles/, GameData/Scores/, GameData/Tracks/Campaigns/, GameData/Tracks/Replays/, GameData/Tracks/Challenges/Downloaded/ and GameData/Tracks/Challenges/My Challenges/. The files in the Logs/ directory are useful to monitor your server's activity.
-
-
Start your TMN client and check in the Internet server browser that the server is running in your Nation with your chosen server name and the Nadeo Advanced tracks.
-
-
Join your server, and have a friend join from elsewhere on the Internet, to verify that the server is accessible.
-
-
Ignore the private network warning that is always logged in ConsoleLog.*.txt.
-
-
To start & stop your TMN server on Linux more easily, you can use this start-up script.
-
-
Collect your own tracks in GameData/Tracks/Challenges/My Challenges/, copy and edit a new match settings file in GameData/Tracks/MatchSettings/Internet/ that lists those tracks, use that file in RunTrackmaniaNations.sh (or RunTrackmaniaNations.bat), and restart your server. It should now be running your track selection. Congratulations. :-)
-
-
-
-
-Secondly, the XASECO system:
-
-
-
-
Create the XASECO database in MySQL (default "aseco" but any other name is okay too):
-
- CREATE DATABASE aseco;
-
- Also create a separate user (e.g. "tmn") in MySQL with a password, and grant this user all rights to the "aseco" database. The basic MySQL commands are:
-
- CREATE USER 'tmn'@'localhost';
- SET PASSWORD FOR 'tmn'@'localhost' = password('password');
- GRANT all ON aseco.* TO 'tmn'@'localhost';
-
-
-
Login as (or switch to) user "tmn" so that all files created down the road receive the correct ownership and permissions.
-
-
Download and unzip XASECO (latest version) into the "/home/tmn/" directory too, the default path will be xaseco/ so that future releases can be unpacked into the same directory tree.
- In the zip file, all *.XML and config files are located inside the newinstall/ directory. Go into the newinstall/ directory and move all *.XML files into the main directory (next to aseco.php), and move all *.PHP files into the includes/ directory.
- Also, move Aseco.sh (on Linux) or Aseco.bat (on Windows) into the main directory and adjust it to your situation if necessary.
-
-
Setting up the database tables in MySQL is done automatically the first time XASECO runs, but if you prefer you can do it manually in advance:
-
Replace YOUR_MYSQL_LOGIN with the MySQL user you created above, e.g. tmn.
-
Replace YOUR_MYSQL_PASSWORD with the MySQL password you set above.
-
Use the same database name as you created above, e.g. aseco.
-
localhost is your own machine, so the server option is okay.
-
-
-
Edit xaseco/config.xml:
-
-
In the <masteradmins> section, uncomment and replace YOUR_MASTERADMIN_LOGIN with your player login, and add further logins for other players you want to grant all XASECO admin rights.
-
In the <tmserver> section, replace YOUR_SUPERADMIN_PASSWORD with the password you chose for SuperAdmin in dedicated.cfg (TMN step 4a above) but do not change the SuperAdmin login itself.
-
The <port> field should contain the same XMLRPC port number you chose in dedicated.cfg (TMN step 4d above), default 5000.
-
IP 127.0.0.1 is your own machine again, so that option is okay too.
-
-
-
Edit xaseco/adminops.xml:
-
-
In the <admins> section, uncomment and replace YOUR_ADMIN_LOGIN with an admin's login, and add further logins for other players you want to grant partial XASECO admin rights. Or leave the <tmlogin> entry commented out if there are none.
-
In the <operators> section, uncomment and replace YOUR_OPERATOR_LOGIN with an operator's login, and add further logins for other players you want to grant XASECO operator rights. Or leave the <tmlogin> entry commented out if there are none.
-
-
-
Edit xaseco/dedimania.xml if you want to use the Dedimania world records system:
-
-
In the <masterserver_account> section, replace YOUR_SERVER_LOGIN and YOUR_SERVER_PASSWORD with the <login> and <password> values from
-your dedicated.cfg file.
-
Also, replace YOUR_SERVER_NATION with the <nation> value.
-
Instead of the password you can also enter the community code for your server which can be obtained by using the server login/password on the official site for your game (TMO/TMS/TMN).
-
To disable Dedimania support, remove or comment out the chat.dedimania.php and plugin.dedimania.php entries in plugins.xml.
-
-
-
Start the XASECO system:
-
- cd ~/xaseco/
- ./Aseco.sh (or Aseco.bat)
-
- You won't see output, but logfile.txt should contain something like the following:
-
-[XAseco] PHP Version is 5.3.x on Linux
-[XAseco] Load settings [config.xml]
-[XAseco] Load admin/ops lists [adminops.xml]
-[XAseco] Load banned IPs list [bannedips.xml]
-[XAseco] Load plugins list [plugins.xml]
-[XAseco] Load plugin [plugin.localdatabase.php]
-[XAseco] Load plugin [plugin.rounds.php]
-[...snip plugins...]
-[XAseco] Load plugin [jfreu.plugin.php]
-[XAseco] Load plugin [mistral.idlekick.php]
-[XAseco] Try to connect to TM dedicated server on 127.0.0.1:5000 timeout 180s
-[XAseco] Try to authenticate with username 'SuperAdmin' and password 'PASSWORD'
-[XAseco] Connection established successfully!
-[Local DB] Load settings file
-[Local DB] Try to connect to MySQL server on 'localhost' with database 'aseco'
-[Local DB] MySQL Server Version is 5.1.56-log
-[RASP] Cleaning up unused data
-*-*-*-*-*-* RASP is running! *-*-*-*-*-*
-|...Loading Settings
-|...Loaded!
-|...Checking database structure
-|...Structure OK!
-|...Calculating ranks
-|...Done!
-[12/xx,xx:11:17] ************* (Dedimania) *************
-[12/xx,xx:11:17] * Dataserver connection on Dedimania ...
-[12/xx,xx:11:17] * Try connection on http://dedimania.net:8002/Dedimania ...
-[12/xx,xx:11:18] Webaccess (dedimania.net:80): send: deflate, receive: gzip
-[12/xx,xx:11:18] * Connection and status ok! :)
-[12/xx,xx:11:18] * NEWS (Dedimania, 08/05): news
-[12/xx,xx:11:18] ------------- (Dedimania) -------------
-[12/xx,xx:11:18] Load auto timelimit config [autotime.xml]
-###############################################################################
- XASECO v1.1x running on 127.0.0.1:5000
- Name : YOUR SERVER NAME
- Game : TmNationsESWC - TimeAttack
- Version: 0.1.7.4 / 2006-05-30
- Authors: Florian Schnell & Assembler Maniac
- Re-Authored: Xymph
-###############################################################################
-Begin Race
-[12/xx,xx:11:18] track changed [none] >> [Pro - 38~74~75~89~93]
-[12/xx,xx:11:18] currently no record on Pro - 38~74~75~89~93
-
- If you get an RPC Permission Error here, there is an XMLRPC port mismatch or the dedicated server isn't running (anymore).
-
-
To start & stop your XASECO on Linux more easily, you can use this start-up script.
-
-
Edit the configuration options to your liking, and restart XASECO. It should now be ready to manage tracks, receive players, and record... er... records. Congratulations. :-)
-
-
-Finally, to run another server on the same machine:
-
-
-
-
Basically follow the same steps above, but use a second user account (e.g. "tmn2"), another new server login/password in dedicated.cfg, a separate server name, a second set of ports (e.g. 2351, 3451 and 5001), a new database (e.g. "aseco2"), optionally a second MySQL account (e.g. "tmn2"), and the corresponding updates in localdatabase.xml and config.xml.
-
-
Don't use symbolic links in the GameData/ directory tree (e.g. to symlink the tracks from the first server to the second one), as the TMN server will crash without an error message.
-
-
-
-And for the last time, read the readme's and tutorials completely for a more thorough understanding of the entire setup.
-
-This is a simple hub page for ShootMania Storm. It aims to collect in one place useful information and references to official and community sites for this new multiplayer shooter game by Nadeo. Here are relevant excerpts from the Storm press releases:
-
-"ShootMania Storm is the second offering from ManiaPlanet, following the successful launch of TrackMania 2 in 2011. For the first time in its history, Nadeo have decided to bring to FPS what made TrackMania such a phenomenon: its unique competitive spirit and a sense of fun."
-
-"In conjunction with the online competitive multiplayer, ShootMania Storm will also feature extensive map editing capabilities, allowing players to customise, design and share their creations across the community, using the soon to be released, upgraded ManiaPlanet 2.0 gaming system."
-
-
-This is a simple hub page for TrackMania² Canyon, Stadium and Valley. It aims to collect in one place useful information and references to official and community sites for these racing games by Nadeo. Here are relevant excerpts from their announcements:
-
-"TrackMania² Canyon will give players an adrenaline-filled experience, with insane jumps, controlled drifting and extreme speed. Driving in the Canyon is like running on a tightrope, only the fearless will succeed. It goes far beyond traditional driving games with a fully customisable world of tracks generated by the players themselves! With loops, wall rides, ramps and a multitude of other stunts, you're in for the ride of your life!"
-
-"With over 12 million players, Stadium is the all time favorite racer on PC. A classic needs to stay true to its roots. The acclaimed gameplay of Stadium remains identical: same speed, same controls, same blocks!
-This core experience is improved by ManiaPlanet: better graphics and more tools for the community. Lots of competitions, new maps and game modes. The most creative community on PC can now benefit from ManiaPlanet cutting edge technologies."
-
-"The third game of the TrackMania² series is taking place in a lush valley with a rally gameplay. Reaching a level of detail never achieved on a TrackMania game, the valley environment will blow you away at first glance. The challenging gameplay will offer you hours and hours of fun, trying to shave milliseconds off every tight corner. Precision and control are key on this playground. Drifting is a last resort and will make you lose time."
-
-
-
-
-
XASECO2:
-
-
-
-This page is also the initial home to XASECO2, a port for
-ManiaPlanet / TM² of the popular server controller for TM Forever
-and previous TM games.
-
-
-
-The following files were updated in v1.03: xaseco2.php, dedimania.xml,
-includes/gbxdatafetcher.inc.php, mxinfosearcher.inc.php,
-rasp.funcs.php, rasp.settings.php, plugins/chat.dedimania.php,
-plugin.checkpoints.php, plugin.dedimania.php, plugin.rasp.php.
-
-
-Important:
-
-
To configure your server for the central Dedimania
-database, you must copy the login value in the
-<masterserver_account> section from
-your server's dedicated_cfg.txt file into the corresponding
-section of the dedimania.xml file. Further, register your
-server with the Dedimania system, generate a DedimaniaCode,
-and add that in dedimania.xml as well.
-
Open port 8082 on your firewall/router for communication
-with the central Dedimania server.
-
In the zip file, all *.XML and *.PHP config files are located
-inside the newinstall/ directory. This means that you can (and
-have to) unzip the download and replace all the PHP code files, without
-worrying about overwriting your customized config files. However, for
-every XML/PHP config file that was updated (see above), you must
-replace your version with the one from the newinstall/ directory, or
-compare them and add any new/changed configuration settings
-to your version to insure the system remains working correctly.
-
For a new installation, go into the newinstall/ directory and move
-all *.XML files into the main directory (next to xaseco2.php), all
-*.PHP files into the includes/ directory, and XAseco2.bat|XAseco2.sh
-also into the main directory.
-
-This is a simple hub page for TrackMania Forever, both Nations and United. It aims to collect in one place useful information and references to official and community sites for these upgraded racing games by Nadeo. Here are relevant excerpts from the Forever press releases:
-
-"TrackMania Nations Forever offers a new complete 'Forever' version of the Stadium environment, a complete solo mode and 65 brand new, progressively difficult tracks. TrackMania Nations Forever will unite an even larger number of players thanks to its engaging multiplayer modes, innovative online functions and revolutionary interactivity between players."
-
-"The release of TrackMania Nations Forever will also allow the convergence of the huge TrackMania community. For the first time, players of the free versions will be able to play online with players from the retail version of TrackMania United on servers dedicated to the Stadium environment that is common to both games. Players of the TrackMania United retail version also gain a brilliant free extension named 'United Forever'. In addition to being compatible with Nations Forever, this extension offers many bonuses - including tracks that have never been seen before, new design blocks for the game environments and a spectacular graphics update for the three historic environments Desert, Snow and Rally."
-
-"The TrackMania Forever add-on also features a new 3D function that enhances the gameplay experience by optionally displaying the game in three dimensions when players wear special 3D glasses. Glasses will be provided in every new retail version of TrackMania United Forever. In order to offer even more interactivity, TrackMania United Forever lets player create and manage groups of friends in-game, much in the same way they would in Facebook or Myspace."
-
To register your server with the central Dedimania
-database, you must copy the login and password values in the
-<masterserver_account> section from your
-server's dedicated.cfg (TMN) or dedicated_cfg.txt (TMF) file into
-the corresponding section of the dedimania.xml file, and add
-the 3-character nation abbreviation. Instead of the password
-you can also use the community code for your server by using
-the server login/password on the official
-site for your game (TMO/TMS/TMN) or on this page for
-TMF.
-
Open port 8002 on your firewall/router for communication
-with the central Dedimania server.
-
In the zip file, all *.XML and *.PHP config files are located
-inside the newinstall/ directory. This means that you can (and
-have to) unzip the download and replace all the PHP code files, without
-worrying about overwriting your customized config files. However, for
-every XML/PHP config file that was updated (see above), you must
-replace your version with the one from the newinstall/ directory, or
-compare them and add any new/changed configuration settings
-to your version to insure the system remains working correctly.
-
For a new installation, go into the newinstall/ directory and move
-all *.XML files into the main directory (next to aseco.php), all *.PHP
-files into the includes/ directory, and Aseco.bat|Aseco.sh|AsecoF.sh
-also into the main directory.
-
-
-The following files were removed from v1.12 (actually moved to the
-DOCS/OLD/ directory for posterity): plugins/chat.vote.php, and the
-votes.sql section of localdb/aseco.sql.
-
-
-Important:
-
-
See the installation notes for upgrading to v1.11.
-
-
-
-
Upgrading from v1.10 to v1.11:
-
-The following file was renamed in v1.11: plugins/chat.song.php to
-plugins/chat.songmod.php.
-
-
-The following files were removed from v1.11 (actually moved to the
-DOCS/OLD/ directory for posterity): includes/sminfofetcher.inc.php,
-plugins/plugin.sminfo.php.
-
-
-Important:
-
-
To register your server with the central Dedimania
-database, you must copy the login and password values in the
-<masterserver_account> section from your
-server's dedicated.cfg (TMN) or dedicated_cfg.txt (TMF) file into
-the corresponding section of the dedimania.xml file, and add
-the 3-character nation abbreviation. Instead of the password
-you can also use the community code for your server by using
-the server login/password on the official
-site for your game (TMO/TMS/TMN) or on this page for
-TMF.
-
Open port 8002 on your firewall/router for communication
-with the central Dedimania server.
-
In the zip file, all *.XML and *.PHP config files are now located
-inside the newinstall/ directory. This means that you can (and
-have to) unzip the download and replace all the PHP code files, without
-worrying about overwriting your customized config files. However, for
-every XML/PHP config file that was updated (see above), you must
-replace your version with the one from the newinstall/ directory,
-or compare them and add any new/changed configuration settings
-to your version to insure the system remains working correctly.
-
For a new installation, go into the newinstall/ directory and
-move all *.XML files into the main directory, next to aseco.php,
-and *.PHP files into the includes/ directory.
-
-
-
-
Upgrading from v1.09 to v1.10:
-
-The following files were added in v1.10: panels/DonateBelowCPListRM.xml,
-RecordsRightBottomRM.xml.
-
See the installation notes for upgrading to v1.05b.
-
-
-
-
Upgrading from v1.05 to v1.05b:
-
-The following files were updated in v1.05b: aseco.php, dedimania.xml,
-includes/basic.inc.php, plugins/plugin.checkpoints.php,
-plugin.dedimania.php, plugin.msglog.php, plugin.musicserver.php,
-jfreu.lite.php.
-
-
-Important:
-
-
To register your server with the central Dedimania
-database, you must copy the login and password values in the
-<masterserver_account> section from your
-server's dedicated.cfg (TMN) or dedicated_cfg.txt (TMF) file into
-the corresponding section of the dedimania.xml file, and add
-the 3-character nation abbreviation. Instead of the password
-you can also use the community code for your server by using
-the server login/password on the official
-site for your game (TMO/TMS/TMN) or on this page for
-TMF.
-
Open ports 8003, 8006, 8007, 8011, 8012, 8013 and 8016 through
-8021 on your firewall/router for communication with the central
-Dedimania server (if that's not possible, the system falls back on
-port 80).
-
In the zip file, all *.XML and *.PHP config files are now located
-inside the newinstall/ directory. This means that you can (and
-have to) unzip the download and replace all the PHP code files, without
-worrying about overwriting your customized config files. However, for
-every XML/PHP config file that was updated (see above), you must
-replace your version with the one from the newinstall/ directory,
-or compare them and add any new/changed configuration settings
-to your version to insure the system remains working correctly.
-
For a new installation, go into the newinstall/ directory and
-move all *.XML files into the main directory, next to aseco.php,
-and *.PHP files into the includes/ directory.
-
To register your server with the central Dedimania
-database, you must copy the login and password values in the
-<masterserver_account> section from your
-server's dedicated.cfg (TMN) or dedicated_cfg.txt (TMF) file into
-the corresponding section of the dedimania.xml file, and add
-the 3-character nation abbreviation. Instead of the password
-you can also use the community code for your server by using
-the server login/password on the official
-site for your game (TMO/TMS/TMN) or on this page for
-TMF.
-
Open ports 8003, 8006, 8007, 8011, 8012 and 8013 on your
-firewall/router for communication with the central Dedimania server
-(if that's not possible, the system falls back on port 80).
-
In the zip file, all *.XML and *.PHP config files are now located
-inside the newinstall/ directory. This means that you can (and
-have to) unzip the download and replace all the PHP code files, without
-worrying about overwriting your customized config files. However, for
-every XML/PHP config file that was updated (see above), you must
-replace your version with the one from the newinstall/ directory,
-or compare them and add any new/changed configuration settings
-to your version to insure the system remains working correctly.
-
For a new installation, go into the newinstall/ directory and
-move all *.XML files into the main directory, next to aseco.php,
-and *.PHP files into the includes/ directory.
-
-
-
-
Upgrading from v1.01 to v1.02:
-
-The following files were added in v1.02: includes/ogg_comments.inc.php,
-plugins/plugin.msglog.php, panels/AdminAboveSpeed2.xml,
-DonateLeftSmall.xml, DonateRightSmall.xml, VoteBottomCenterTransp.xml,
-styles/ProgressBar.xml.
-
To register your server with the central Dedimania
-database, you must copy the login and password values in the
-<masterserver_account> section from your
-server's dedicated.cfg (TMN) or dedicated_cfg.txt (TMF) file into
-the corresponding section of the dedimania.xml file, and add
-the 3-character nation abbreviation. Instead of the password
-you can also use the community code for your server by using
-the server login/password on the official
-site for your game (TMO/TMS/TMN) or on this page for
-TMF.
-
Open ports 8003, 8006, 8007, 8011, 8012 and 8013 on your
-firewall/router for communication with the central Dedimania server
-(if that's not possible, the system falls back on port 80).
-
In the zip file, all *.XML and *.PHP config files are now located
-inside the newinstall/ directory. This means that you can (and
-have to) unzip the download and replace all the PHP code files, without
-worrying about overwriting your customized config files. However, for
-every XML/PHP config file that was updated (see above), you must
-replace your version with the one from the newinstall/ directory,
-or compare them and add any new/changed configuration settings
-to your version to insure the system remains working correctly.
-
For a new installation, go into the newinstall/ directory and
-move all *.XML files into the main directory, next to aseco.php,
-and *.PHP files into the includes/ directory.
-
-
-
-
Upgrading from v0.99b to v1.00:
-
-The following directories were added in v1.00: panels/ and
-styles/.
-
-
-The following files were added in v1.00: panels/00README.txt,
-panels/*.xml, style/00README.txt, styles/*.xml,
-plugins/plugin.panels.php, plugin.style.php (TMN admins can remove
-these from plugins.xml).
-
To register your server with the central Dedimania
-database, you must copy the login and password values in the
-<masterserver_account> section from your
-server's dedicated.cfg (TMN) or dedicated_cfg.txt (TMF) file into
-the corresponding section of the dedimania.xml file, and add
-the 3-character nation abbreviation. Instead of the password
-you can also use the community code for your server by using
-the server login/password on the official
-site for your game (TMO/TMS/TMN) or on this page for
-TMF.
-
Open ports 8003, 8006 and 8007 on your firewall/router for
-communication with the central Dedimania server (if that's not
-possible, the system falls back on port 80).
-
In the zip file, all *.XML and *.PHP config files are now located
-inside the newinstall/ directory. This means that you can (and
-have to) unzip the download and replace all the PHP code files, without
-worrying about overwriting your customized config files. However, for
-every XML/PHP config file that was updated (see above), you must
-replace your version with the one from the newinstall/ directory,
-or compare them and add any new/changed configuration settings
-to your version to insure the system remains working correctly.
-
For a new installation, go into the newinstall/ directory and
-move all *.XML files into the main directory, next to aseco.php,
-and *.PHP files into the includes/ directory.
-
-
-
-
Upgrading from v0.99 to v0.99b:
-
-The following files were updated in v0.99b: aseco.php, adminops.xml,
-config.xml, musicserver.xml, includes/manialinks.inc.php,
-plugins/chat.admin.php, plugin.dedimania.php, plugin.localdatabase.php,
-plugin.musicserver.php, plugin.rasp.php, plugin.uptodate.php.
-
-
-Important:
-
-
See the installation notes for upgrading to v0.98.
-
-
-
-
Upgrading from v0.98 to v0.99:
-
-The following files were added in v0.99: musicserver.xml,
-plugins/plugin.donate.php, plugin.musicserver.php.
-
To register your server with the central Dedimania
-database, you must copy the login and password values in the
-<masterserver_account> section from your
-server's dedicated.cfg (TMN) or dedicated_cfg.txt (TMF) file into
-the corresponding section of the dedimania.xml file, and add
-the 3-character nation abbreviation. Instead of the password
-you can also use the community code for your server by using
-the server login/password on the official
-site for your game (TMO/TMS/TMN) or on this page for
-TMF.
-
Open ports 8003, 8006 and 8007 on your firewall/router for
-communication with the central Dedimania server (if that's not
-possible, the system falls back on port 80).
-
In the zip file, all *.XML and config files are now located inside
-the newinstall/ directory. This means that you should be able
-to unzip the download and replace all the code files (unless you made
-changes to any) without worrying about overwriting your customized
-config files. However, for every XML/config file that was updated
-(see above), you must replace your version with the one from
-the newinstall/ directory, or compare them and add any new/changed
-configuration settings to your version to insure the system remains
-working correctly.
-
For a new installation, go into the newinstall/ directory and
-move all *.XML files into the main directory, next to aseco.php,
-and *.PHP files into the includes/ directory.
-
To register your server with the central Dedimania
-database, you must copy the login and password values in the
-<masterserver_account> section from your
-server's dedicated.cfg (TMN) or dedicated_cfg.txt (TMF) file into
-the corresponding section of the dedimania.xml file, and add
-the 3-character nation abbreviation. Instead of the password
-you can also use the community code for your server by using
-the server login/password on the official
-site for your game (TMO/TMS/TMN) or on this page for
-TMF.
-
Open port 8003 on your firewall/router for communication with the
-central Dedimania server (if that's not possible, the system falls
-back on port 80).
-
In the zip file, all *.XML and config files are now located inside
-the newinstall/ directory. This means that you should be able
-to unzip the download and replace all the code files (unless you made
-changes to any) without worrying about overwriting your customized
-config files. However, for every XML/config file that was updated
-(see above), you must replace your version with the one from
-the newinstall/ directory, or compare them and add any new/changed
-configuration settings to your version to insure the system remains
-working correctly.
-
For a new installation, go into the newinstall/ directory and
-move all *.XML files into the main directory, next to aseco.php,
-and *.PHP files into the includes/ directory.
-
-
-
-
Upgrading from v0.96 to v0.96b:
-
-The following files were updated in v0.96b: aseco.php, adminops.xml,
-matchsave.xml, rasp.xml, includes/basic.inc.php, manialinks.inc.php,
-rasp.settings.php, votes.config.php, plugins/chat.admin.php,
-plugin.dedimania.php, plugin.localdatabase.php, plugin.matchsave.php,
-plugin.rasp.php, plugin.rasp_jukebox.php, plugin.rasp_nextmap.php,
-plugin.rasp_votes.php.
-
-
-Important:
-
-
See the installation notes for upgrading to v0.96.
-
-
-
-
Upgrading from v0.95 to v0.96:
-
-The following file was added in v0.96: includes/manialinks.inc.php.
-
-
-The following files were removed from v0.96: publicdatabase.xml,
-includes/dataexchanger.inc.php, plugins/plugin.publicdatabase.php
-(the old public database ceased operations long ago, and has now been
-superceded by Dedimania).
-
-
-Important:
-
-
To register your server with the central Dedimania
-database, you must copy the login and password values in the
-<masterserver_account> section from your
-server's dedicated.cfg (TMN) or dedicated_cfg.txt (TMF) file into
-the corresponding section of the dedimania.xml file, and add
-the 3-character nation abbreviation. Instead of the password
-you can also use the community code for your server by using
-the server login/password on the official
-site for your game (TMO/TMS/TMN) or on this page for
-TMF.
-
Open port 8003 on your firewall/router for communication with the
-central Dedimania server (if that's not possible, the system falls
-back on port 80).
-
In the zip file, all *.XML and config files are now located inside
-the newinstall/ directory. This means that you should be able
-to unzip the download and replace all the code files (unless you made
-changes to any) without worrying about overwriting your customized
-config files. However, for every XML/config file that was updated
-(see above), you must replace your version with the one from
-the newinstall/ directory, or compare them and add any new/changed
-configuration settings to your version to insure the system remains
-working correctly.
-
For a new installation, go into the newinstall/ directory and
-move all *.XML files into the main directory, next to aseco.php,
-and *.PHP files into the includes/ directory.
-
-
-
-
Upgrading from v0.93 to v0.95:
-
-The following files were added in v0.95: dedimania.xml,
-includes/GbxRemote.bem.php, GbxRemote.response.php, urlsafebase64.php,
-web_access.inc.php, xmlrpc_db.inc.php, plugins/chat.dedimania.php,
-plugin.dedimania.php.
-
To register your server with the central Dedimania database, you
-must copy the three values in the <masterserver_account>
-section from your server's dedicated.cfg file into the corresponding
-section of the dedimania.xml file. Instead of the password you
-can also use the community code for your server by using the server
-login/password on the official site for your
-game (TMO/TMS/TMN).
-
Open port 8003 on your firewall/router for communication with the
-central Dedimania server (if that's not possible, the system falls
-back on port 80).
-
In the zip file, all *.XML and config files are now located inside
-the newinstall/ directory. This means that you should be able
-to unzip the download and replace all the code files (unless you made
-changes to any) without worrying about overwriting your customized
-config files. However, for every XML/config file that was updated
-(see above), you must replace your version with the one from
-the newinstall/ directory, or compare them and add any new/changed
-configuration settings to your version to insure the system remains
-working correctly.
-
For a new installation, go into the newinstall/ directory and
-move all *.XML files into the main directory, next to aseco.php,
-and *.PHP files into the includes/ directory.
-
-
-
-
Upgrading from v0.92b to v0.93:
-
-The following files were added in v0.93:
-includes/gbxdatafetcher.inc.php, tmxinfofetcher.inc.php,
-plugins/chat.song.php, plugin.checkpoints.php, plugin.tmxinfo.php.
-
-
-The following file was renamed in v0.93: includes/datafetcher.inc.php
-to includes/tmndatafetcher.inc.php.
-
-
-The following files were updated in v0.93: aseco.php,
-adminops.xml, config.xml, plugins.xml, includes/GbxRemote.inc.php,
-rasp.funcs.php, jfreu.config.php, plugins/chat.admin.php,
-chat.stats.php, plugin.localdatabase.php, plugin.matchsave.php,
-plugin.publicdatabase.php, plugin.rasp.php, plugin.rasp_jukebox.php,
-plugin.rasp_votes.php, plugin.rounds.php, jfreu.plugin.php. The
-remaining code files were updated too, but only for the dependency
-comments and occasional layout tweaks.
-
-
-Important:
-
-
In the zip file, all *.XML and config files are now located inside
-the newinstall/ directory. This means that you should be able
-to unzip the download and replace all the code files (unless you made
-changes to any) without worrying about overwriting your customized
-config files. However, for every XML/config file that was updated
-(see above), you must replace your version with the one from
-the newinstall/ directory, or compare them and add any new/changed
-configuration settings to your version to insure the system remains
-working correctly.
-
For a new installation, go into the newinstall/ directory and
-move all *.XML files into the main directory, next to aseco.php,
-and *.PHP files into the includes/ directory.
-
-
-
-
Upgrading from v0.92 to v0.92b:
-
-The following files were updated in v0.92b: aseco.php,
-includes/jfreu.config.php, plugins/chat.stats.php, jfreu.chat.php,
-jfreu.plugin.php.
-
-
-
Upgrading from v0.91 to v0.92:
-
-The following file was added in v0.92: includes/datafetcher.inc.php.
-
-
-The following files were updated in v0.92: aseco.php, rasp.xml,
-includes/GbxRemote.inc.php, types.inc.php, rasp.funcs.php,
-rasp.settings.php, jfreu.config.php, plugins/chat.admin.php,
-chat.laston.php, chat.players2.php, chat.stats.php,
-plugin.localdatabase.php, plugin.rasp.php, plugin.rasp_jukebox.php,
-plugin.rasp_nextrank.php, plugin.uptodate.php, jfreu.chat.php,
-jfreu.plugin.php.
-
-
-
Upgrading from v0.90 to v0.91:
-
-The following file was moved in v0.91: plugins/jfreu.config.php
-to includes/jfreu.config.php.
-
-
-The following files were added in v0.91: includes/votes.config.php
-(containing the configuration options previously embedded in
-plugins/plugin.rasp_votes.php), plugins/chat.laston.php, and
-plugins/jfreu/jfreu.config.xml (by default containing the same settings
-as includes/jfreu.config.php).
-
-
-The following file was removed in v0.91: plugins/jfreu.unspec.php
-(it was integrated into plugins/jfreu.plugin.php).
-
-
-The following files were updated in v0.91: aseco.php, adminops.xml,
-config.xml, plugins.xml, rasp.xml, includes/jfreu.config.php,
-rasp.funcs.php, rasp.settings.php, plugins/chat.admin.php,
-chat.server.php, plugin.rasp.php, plugin.rasp_jukebox.php,
-plugin.rasp_nextmap.php, plugin.rasp_votes.php, jfreu.chat.php,
-jfreu.lite.php, jfreu.plugin.php.
-
-
-Important:
-
-
Because jfreu.unspec.php was integrated into the main plugin, you
-must remove the file from an existing installation and not include it
-in plugins.xml anymore if you used it together with jfreu.plugin.php.
-
-
If you allow TMX /add votes ($feature_tmxadd
-is true), you must created a new
-'GameData/Tracks/Challenges/TMXtmp/' directory along the required
-'GameData/Tracks/Challenges/TMX/' directory. Tracks downloaded via
-/add are saved to the former directory, but if permanently
-added to the server's track list via /admin addthis, they are
-moved into the latter.
-
-
-
-
Upgrading from v0.89 to v0.90:
-
-The following file was added in v0.90 (although by default not enabled
-in plugins.xml): plugins/plugin.muting.php.
-
-
-All *.php files were updated in v0.90 for various reasons (if only to
-add more comments), so it's strongly recommended to replace them all.
-Further, adminops.xml, config.xml, localdatabase.xml, rasp.xml were
-also updated.
-
-
-Important:
-
-
If you use a blacklist or guestlist file (in the "GameData/"
-directory), or a tracklist file (in "GameData/Tracks/MatchSettings/"),
-rename their extensions from .xml back to .txt.
-
-
-
-
Upgrading from v0.88 to v0.89:
-
-The following file was renamed in v0.89: plugins/jfreu.player.php
-to plugins/jfreu.lite.php.
-
-
-Almost all *.php files were updated in v0.89 for various reasons, so
-it's strongly recommended to replace them all. Further, config.xml,
-rasp.xml and adminops.xml were also updated.
-
-
-Important:
-
-
If you use a blacklist or guestlist file (in the "GameData/"
-directory), rename its extension from .txt to .xml.
-
-
If you use a tracklist / match settings file, the default file
-is now at "GameData/Tracks/MatchSettings/tracklist.xml" (previously
-"GameData/Tracks/rasp-tracklist.txt"), and alternate files should
-also be in the "GameData/Tracks/MatchSettings/" directory with the
-.xml extension.
-
-
-
-
Upgrading from v0.86 to v0.88:
-
-The following file was added in v0.88: adminops.xml.
-
-
-The following file was renamed in v0.88: plugins/jfreu/jfreu.lists.xml
-into plugins/jfreu/jfreu.vips.xml.
-
In config.xml the <admins> section has been
-renamed to <masteradmins>, along with adding a
-new <adminops_file> definition. If you use your
-previous config.xml file, you must make these changes yourself.
-
-
The <masteradmins> section of config.xml should
-contain only those logins you want to have all admin rights,
-and it should also contain the server owner's LAN login (with IP and
-port), if applicable.
-
-
Any other admin logins should be moved from config.xml into the
-<admins> (or <operators>)
-section of adminsops.xml, or they can be re-added later via the
-/admin addadmin (or addop) command.
-
-
If you use Jfreu's vip/team_vip abilities, rename your existing
-plugins/jfreu/jfreu.lists.xml file to plugins/jfreu/jfreu.vips.xml.
-
-
The <admin_list> section in jfreu.vips.xml
-is obsolete, and its contents should also be moved into the
-<admins> section of adminops.xml before
-starting v0.88+, because it will no longer be written back into the
-file after the next vip/team_vip change.
-
-
-
-
Upgrading from v0.85 to v0.86:
-
-The following file was renamed in v0.86: chat.jfreu.php into
-jfreu.chat.php.
-
-
-The following files were updated in v0.86: aseco.php,
-config.xml, rasp.xml, includes/rasp.funcs.php, rasp.settings.php,
-xmlparser.inc.php, plugins/chat.admin.php, chat.players.php,
-chat.players2.php, chat.records.php, plugin.rasp.php,
-plugin.rasp_jukebox.php, plugin.rasp_karma.php, plugin.rasp_votes.php,
-plugin.uptodate.php, jfreu.config.php, jfreu.plugin.php,
-mistral.idlekick.php.
-
-
-
Upgrading from v0.84 to v0.85:
-
-The following file was added in v0.85: plugins/plugin.uptodate.php.
-
-
-The following files were updated in v0.85: plugins.xml,
-rasp.xml, localdatabase.xml, aseco.php, includes/rasp.settings.php,
-rasp.funcs.php, plugins/chat.admin.php, chat.me.php, chat.records2.php,
-chat.server.php, chat.stats.php, plugin.localdatabase.php,
-plugin.matchsave.php, plugin.rasp.php, plugin.rasp_chat.php,
-plugin.rasp_votes.php, jfreu.config.php, jfreu.plugin.php,
-mistral.idlekick.php, plus layout tweaks in others.
-
-
-
Upgrading from v0.82 to v0.84:
-
-The following file was added in v0.84: plugins/plugin.rasp_votes.php.
-
-
-Once again, many other *.php files were updated for various reasons, so
-it's strongly recommended to replace them all. Further, plugins.xml,
-config.xml, localdatabase.xml and rasp.xml were also updated.
-
-
-
Upgrading from v0.8 to v0.82:
-
-The following files were added in v0.81/0.82:
-plugins/plugin.chatlog.php, plugin.rasp_nextrank.php, jfreu.player.php
-and jfreu.unspec.php (previously known as jfreu.hack.php).
-
-
-Almost all other *.php files were updated for the '&'
-pass-by-reference fixes, so it's strongly recommended to replace them
-all. Further, plugins.xml, config.xml and rasp.xml were also updated.
-
-
-
Upgrading from v0.7 to v0.8+:
-Because of the extent of the changes in v1.14, upgrading from v0.7 and
-older versions is best done by renaming your ASECO directory to another
-name, following the instructions for a new installation (above),
-and then copying over your configuration settings into the pertaining
-config files, as well as updating the new options to your liking.
-
-
-Subsequently, you can port over any code changes and plugins specific
-to your server, or let me know if you think
-they might be of general interest, then I'll see whether they can be
-incorporated in the next release.
-
-
-
-
-
-Note on upgrading from versions prior to v0.8, and v2.0 and beyond:
-
-This release, when first run, will automatically rename the
-'trackID' column in the rs_times table in your ASECO database
-to 'challengeID' for consistency with all the other tables.
-This means that if you ever want to downgrade to v0.7, you'll
-need to manually rename that column back by entering the following
-command in your database (via PhpMyAdmin, the MySQL command prompt,
-or similar):