# TrackMania Nations - ASECO/RASP new features v0.8
Information on the ASECO/RASP system for TrackMania Nations (and Original/Sunrise), a racing game by Nadeo
Author: Frans P. de Vries
Keywords: TrackMania, Nations, Original, Sunrise, racing, games, ASECO, RASP, Jfreu, plugins, records, jukebox

### 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 ">".