Releases: STJr/Kart-Public
SRB2Kart v1.6
Headline changes
- Reduced visual jitter under unstable network conditions.
- The software renderer has gotten a significant performance boost!
- Specifically beneficial on maps with busy visuals (many objects, midtextures, and segs visible at once).
- One playtester with a slower computer reported "Avant Garden Classic", a community-created map with a reputation for bad performance, went from unplayable to a little under 35fps!
- Controller input has been updated to use the SDL Game Controller API.
- The game now supports a wider selection of controllers, including Xinput and Switch.
- Controller axes now have easier-to-identify names.
- D-Pad buttons are now considered hat switches.
- Known issue: Mayflash GameCube controller adapters are not correctly supported.
- Delay measurements are now more accurate.
- If the client has caught up to the server (say, during a screen transition), don't report an extremely large delay.
- Fix an off-by-one error that slightly underestimated client delay.
- Don't include holepunch time when measuring server ping.
- The in-game server browser has been improved.
- Retries getting info multiple times; consistently reaches a few more servers in testing.
- Clear the server list when entering the menu and when refreshing.
- Create a "status line" that displays:
- When the game is checking for an update or loading the server list from the master server (removed the blue message box)
- How many servers are available and how many the game is trying to contact.
- If there are no servers available (no longer displays below the horizontal line)
- Slide the server list left and right when switching pages.
- The
map
command now supports using level titles, whether partial or in full.- This feature was previously available in multiple community-created builds.
Interpolation changes
- Fix a number of circumstances which could cause the screen to violently vibrate in Software mode.
- Visual portals, such as in Fakery Way.
- First-person mode in replays.
- Player teleports will now adjust camera interpolation as needed.
- Custom Lua HUDs will no longer flicker with both splitscreen and interpolation.
Changes for online servers
- Client timeout has become a little stricter.
- If a client has fallen so far behind that the server is about to freeze (approximately 8 seconds), assume the lagging player is unlikely to recover and remove them.
- Reduce the grace period where lagging clients won't get kicked to 10 seconds (from 30).
- Adjust antigrief.
- Instead of not running for server or admin, run for ALL players, but only avoid kicking local or admin players.
- Don't run when there's only one player on the server.
- Fixes a bug where having a non-interacting splitscreen player could take down your server.
- Adjust the voting screen again.
- If kartvoterulechanges is set to Always, the third option is always the opposite gametype, even if Encore is unlocked - that will now be present on the second option instead.
- This is both for consistancy with having Encore inaccessible on your gamedata, and a response to community feedback.
- The kartencore cvar being turned on will now be reflected in gametype rule changes from Battle to Race. This plugs one last hole in its area of effect for Race tracks.
- If kartvoterulechanges is set to Always, the third option is always the opposite gametype, even if Encore is unlocked - that will now be present on the second option instead.
- For
-dedicated
servers:- No longer immediately crash with a SIGFPE on startup.
- No longer usurped by multiple clients joining on the same tic. (Ashnal)
- You can now type underscores into the console on Windows, which should make runtime file additions and cvar setting much easier.
- Enters a less-intensive idle state if no clients are present and no net commands have been issued.
- We've tried to make it as automatic as possible, and it'll still handle incoming commands, but this feature is relatively experimental. If it gets stuck on something, a simple
say hi
into the console should be enough to make it all better. - Works around the issue where dedicated servers waiting around for too long could crash due to passive netreplay recording.
- We've tried to make it as automatic as possible, and it'll still handle incoming commands, but this feature is relatively experimental. If it gets stuck on something, a simple
Changes for file loading
- Maximum file and skin counts have been increased. (X.organic)
- 255 files, including the base resources.
- 255 characters, including the base five.
- PK3 loader code has been improved. (X.organic)
- PK3s created with basically any archiver are now supported.
- PK3s that contain only "unimportant" entries (such as music and HUD graphic replacements) can now be added to a client or server without the other(s) needing that file.
- Server file loading has been sped up significantly. (X.organic)
- Some asset setup checks all added files - only do this once when joining a server, rather than once per file.
- Files containing "unimportant" entries get to skip the above asset setup.
- In-game file downloading has recieved improvements, too.
- The client can now see whether a given download is direct from the host or over HTTP.
- If you download a file over http and it doesn't match the server's md5, fall back to direct download.
- If the direct file downloader fails at the first hurdle, let the would-be joiner know.
Map changes
- Finish lines have been adjusted across multiple maps to reduce the likelihood of players missing laps.
- Bridge skip in Aurora Atoll is finally gone.
- The fountain in Diamond Square will now kill those unlucky to fall in.
- Tinkerer's Arena and Dried Battledune now have spring panel effects on their borders to prevent camping.
Miscellaneous changes
- A whole heaping of memory mismanagement bugs have been corrected, too numerous to individually note. (X.organic, Ashnal)
- Notable example: maps that use an Encore executor linedef to change the weather no longer crash. Community map "Killer Skies" no longer has a killer sky!
- Hole punching is more performant, updating internal socket less freqeuntly.
- Fix an issue where Discord Rich Presence joins during a title demo could short-circuit the client's ticking.
- Polyobjects that rotate objects on top of them now netsync properly.
- Seperate x and y deadzones for analog controller inputs. (Lonsfor)
- Prevent "Offline" multiplayer from connecting to the Master Server if
advertise on
were turned on in that session. - Prevent all the join/leave sound effects from stacking super loud during major net interruption or multiple splitscreen player joins.
- Fix spectators spawning at world origin.
- Spectator HUD now snaps to the bottom left of the viewport.
- V-Sync (
vid_wait
) can now be toggled at runtime. - Microsoft Windows: The game now reports itself as "DPI aware" - this will mean a less blurry screen on screens with high pixel density, although windowed mode will be consistently smaller; you can change the DPI mode in program properties if you wish to revert this.
- Microsoft Windows: The game now prioritises the OpenGL backend for Software mode (distinct from the OpenGL renderer), replacing 1.4 and 1.5's use of Direct3D 11 due to a reported performance hit.
- Codebase: CMake build system has had a number of fixes.
SRB2Kart v1.5
This is a quick release to fix a major issue with v1.4 online play. Some extra fixes are included.
- Fixed a massive bug with hole punching. This bug caused frequent timeouts and repeating chat messages.
rendezvousserver
has been renamed toholepunchserver
- Fixed a crash when starting the game in OpenGL with some graphics drivers.
- f has changed to D.
The rest of the v1.4 changelog is as follows...
Headline changes
- Backported Ring Racers' hole punching. Almost anyone can host a server on the Master Server now, no port forwarding required!
- Hole punching relay server is controlled with the
rendezvousserver
console variable. No need to ever change it, but like the Master Server, may be relevant in the future if someone hosts a community one. - There are some really weird home network setups out there, so we can't guarantee it'll work for everyone. Explicitly not compatible with double NAT or cellphone tethering, if you know that's what you're using.
- Hole punching relay server is controlled with the
- Backported Ring Racers' interpolation.
- This was developed in tandem with the SRB2 team, and is not related to the community implementation.
- Map object positions, angles, scale, etc... are interpolated between game frames for rendering frames, with very minimal changes required for mobj code.
- Level interpolation is also supported. Elevators, moving platforms, scrolling textures, polyobject rotations, etc will all animate smoothly.
- Controlled with the
fpscap
console variable, which can also be adjusted from Video Options.- Any arbitrary cap can be chosen between 35 and 300.
- When
fpscap
is set to 35, the game will fall back to the original frame timing behavior and turn off interpolation. - Setting to 0 will turn off the framerate cap.
- Setting to -1 will set a frame rate cap to match your monitor's refresh rate.
- The FPS counter now shows render frames instead of game frames, since they're not the same anymore.
- Notes for modders:
- P_TeleportMove had to be deprecated for this. Replace these with either P_SetOrigin or P_MoveOrigin. P_MoveOrigin is interpolated, while P_SetOrigin resets interpolation. Using P_TeleportMove now prints a simple warning and uses P_MoveOrigin in its place, so it will be relatively unnoticeable to most users in the meantime.
- Setting
scale
on a mobj will skip scale interpolation. Settingdestscale
will not. This is inline with existing behavior, just applied to interpolation state as well. - You can use the new
timescale
cheat to test mods for interpolation artifacts. - We had to remove Lua interfacing for HUD interpolation temporarily -- a new solution for making proper interpolated HUD will be implemented later.
- Kodachrome Void has undergone drastic changes.
- The entire map's visuals have been adjusted for photosensitivity concerns.
- The map has been given a new Encore Palette.
- Please note that this version is its own retexturing of the V1 series map, and has no direct relation to the one seen in V2.
- Honeybee Industries has been replaced with Opulence, by Ivo.
- The former's assets have been removed from the game, barring select chevron textures which were replaced.
- Map Hell can no longer be forced at the voting screen. This feature was always designed for private netgame sessions, and was not thought-out properly in regards to public servers and first impressions. (JugadorXEI, on behalf of us)
- bonuschars.kart has been updated with two-toning for Blaze the Cat's sprites.
Changes for online servers
- Backported Ring Racers' ban system improvements.
- Using the
kick
command is now treated as a temporary ban.- The time before the ban expires is controlled with the
kicktime
console variable, in minutes. - Defaults to 10 minutes currently. This may be subject to change later.
- A temp-banned joiner will be informed of how much time is left on their ban.
- This is stored in ban.txt as a UNIX timestamp, so long-term bans are possible.
- The time before the ban expires is controlled with the
- Attempting to join a server you're banned from will now report the ban reason, rather than a generic one.
- A CIDR ban mask can now be properly set when using the
banip
command. - ban.txt has been overhauled.
- Contains a simple versioning system. Bans from 1.3 and earlier are automatically converted to the new system.
- The format of the IP address + mask is now CIDR compliant.
- Player name of the banned user is now stored for logging purposes. If unknown, it is stored as "Direct IP ban".
- Ban reasons and usernames are quote deliniated.
- Fixed a bug where if it failed to load ban.txt, it could then later save over it with a completely blank file.
- MAXBANS cap has been removed completely.
- Using the
- Added server gametype preference.
- Controlled with the
kartgametypepreference
console variable. If set to "Race" or "Battle", the voting screen operates from the perspective of that gametype. - If you're not in the preferred gametype, the third option will continue it, while the first two will always be for the preferred gametype.
- If the preferred gametype is Race and you've just exited a Battle map, the random Encore option will move to the second option.
- The game now displays the preferred gametype on the server browser, instead of what the map is currently. This is to not punish servers for running temporary gametype swaps, or force them to waste their limited name space to advertise "lessbattlevotes". This part is experimental and is up for feedback, so please let us know what you think.
- Controlled with the
- Added
spectatorreentry
console variable. Sets a time between spectators being able to spectate and then reenter the game, to prevent ragespecing. - Added some preventions for griefing. Can be controlled by
antigrief
, set to 0 to disable for private servers. - The Master Server's rules are now displayed in menu / console when starting a server.
- Added support for private HTTP downloads that require authentication. Use the command
set_http_login <url> [user:password]
to set or remove a login for a site, andlist_http_logins
to view all currently set logins. - Files are now downloaded from servers if they were found on your computer but with the wrong checksum.
- Fixed servers occasionally being registered multiple times.
- Fixed the game trying to process joins while levels are loading, fixing a miraid of bugs (such as corrupted save game crashes, server load hangs, or some zombie client issues). (JugadorXEI)
- Quotes can no longer be used in player names, as they can make server console usage painful.
- Backported fix for chat flood crashes.
Changes for gameplay
- The game now globally uses more precise distance checks. This improves waypoint checks, bumping, speed checks, wall collisions, Jawz targeting, Lightning Shield attacks, so on.
- Using P_AproxDistance now prints a simple warning and uses FixedHypot in its place.
- Backported ceiling slope collision, which lets you smoothly slide against them instead of getting caught on them. (Lighto)
- Backported Ring Racers' fix for the high speed turning bug.
- Fixed wipeout bump bug. (JugadorXEI)
- Fixed magnet landing bug. (JugadorXEI)
- Fixed a bug that caused drift charge to disappear in midair. (JugadorXEI)
- Fixed a regression in v1.3 where Thunder Shield could now be rolled at the start of a race. (JugadorXEI)
- Fixed item toss momentum in mobjscale maps.
- Fixed starting boost scaling in mobjscale maps.
- Fixed reversing speed in mobjscale maps.
Changes for modding
- Doubled freeslot limits. (Ashnal)
- The game now reports when the game failed to allocate freeslots due to reaching the limit. (Ashanl)
- Backported several Lua features from SRB2 2.2:
PlayerThink
hookPreThinkFrame
andPostThinkFrame
hooksCOM_LOCAL
commandsisserver
andisdedicated
global booleansCV_Set
,CV_StealthSet
andCV_AddValue
functions
- Added read-only global integer
defrosting
, which reports the number of ticks left during the level's "preticker". Used to check if a script is running during the limbo state between the level first loading and leveltime beginning to increment. - Divide by zero / modulo by zero errors now display file & line number.
- Fixed luafiles not being loaded from the home directory.
- Fixed MusicChange hook returning incorrect values.
Changes for Discord Rich Presence
- STUN is now used to fetch your own public IP address for the invite system, instead of pinging a server for it.
- Only update Master Server presence when advertise is changed.
- No longer runs for dedicated servers, for people running a dedicated server & the game itself on the same machine.
- Menus and title demos are now closed when using an invite. (Ashnal)
- Fixed invites not working on Linux. (JugadorXEI)
- Fixed buffer overrun / secret memory errors from Discord invites. (JugadorXEI)
Changes for maps
- Main Map Rotation:
- Green Hills
- Added death pits to areas where players could get stuck and would be forced to use the respawn command.
- The map's encore palette has been adjusted.
- Northern District
- Added death pits to areas where players could get stuck and would be forced to use the respawn command.
- Daytona Speedway
- Adjusted geometry to prevent unintended shortcuts.
- Added death pits to areas where players could get stuck and would be forced to use the respawn command.
- Egg Zeppelin
- Adjusted geometry to prevent unintended shortcuts.
- Sonic Speedway
- Adjusted geometry to prevent unintended shortcuts.
- Sunbeam Paradise
- Adjusted the properties of some fences to make them solid when they previously weren't.
- Diamond Square
- Updated musicdef to give the correct song title.
- Paradise Hills
- Extended finish line length.
- Added death pits to areas where players could get stuck and would be forced to use the respawn command.
- Sand Valley
...
- Green Hills
SRB2Kart v1.4
Headline changes
- Backported Ring Racers' hole punching. Almost anyone can host a server on the Master Server now, no port forwarding required!
- Hole punching relay server is controlled with the
rendezvousserver
console variable. No need to ever change it, but like the Master Server, may be relevant in the future if someone hosts a community one. - There are some really weird home network setups out there, so we can't guarantee it'll work for everyone. Explicitly not compatible with double NAT or cellphone tethering, if you know that's what you're using.
- Hole punching relay server is controlled with the
- Backported Ring Racers' interpolation.
- This was developed in tandem with the SRB2 team, and is not related to the community implementation.
- Map object positions, angles, scale, etc... are interpolated between game frames for rendering frames, with very minimal changes required for mobj code.
- Level interpolation is also supported. Elevators, moving platforms, scrolling textures, polyobject rotations, etc will all animate smoothly.
- Controlled with the
fpscap
console variable, which can also be adjusted from Video Options.- Any arbitrary cap can be chosen between 35 and 300.
- When
fpscap
is set to 35, the game will fall back to the original frame timing behavior and turn off interpolation. - Setting to 0 will turn off the framerate cap.
- Setting to -1 will set a frame rate cap to match your monitor's refresh rate.
- The FPS counter now shows render frames instead of game frames, since they're not the same anymore.
- Notes for modders:
- P_TeleportMove had to be deprecated for this. Replace these with either P_SetOrigin or P_MoveOrigin. P_MoveOrigin is interpolated, while P_SetOrigin resets interpolation. Using P_TeleportMove now prints a simple warning and uses P_MoveOrigin in its place, so it will be relatively unnoticeable to most users in the meantime.
- Setting
scale
on a mobj will skip scale interpolation. Settingdestscale
will not. This is inline with existing behavior, just applied to interpolation state as well. - You can use the new
timescale
cheat to test mods for interpolation artifacts. - We had to remove Lua interfacing for HUD interpolation temporarily -- a new solution for making proper interpolated HUD will be implemented later.
- Kodachrome Void has undergone drastic changes.
- The entire map's visuals have been adjusted for photosensitivity concerns.
- The map has been given a new Encore Palette.
- Please note that this version is its own retexturing of the SRB2Kart map, and has no direct relation to the one seen in Ring Racers.
- Honeybee Industries has been replaced with Opulence, by Ivo.
- The former's assets have been removed from the game, barring select chevron textures which were replaced.
- Map Hell can no longer be forced at the voting screen. This feature was always designed for private netgame sessions, and was not thought-out properly in regards to public servers and first impressions. (JugadorXEI, on behalf of us)
- bonuschars.kart has been updated with two-toning for Blaze the Cat's sprites.
Changes for online servers
- Backported Ring Racers' ban system improvements.
- Using the
kick
command is now treated as a temporary ban.- The time before the ban expires is controlled with the
kicktime
console variable, in minutes. - Defaults to 10 minutes currently. This may be subject to change later.
- A temp-banned joiner will be informed of how much time is left on their ban.
- This is stored in ban.txt as a UNIX timestamp, so long-term bans are possible.
- The time before the ban expires is controlled with the
- Attempting to join a server you're banned from will now report the ban reason, rather than a generic one.
- A CIDR ban mask can now be properly set when using the
banip
command. - ban.txt has been overhauled.
- Contains a simple versioning system. Bans from 1.3 and earlier are automatically converted to the new system.
- The format of the IP address + mask is now CIDR compliant.
- Player name of the banned user is now stored for logging purposes. If unknown, it is stored as "Direct IP ban".
- Ban reasons and usernames are quote deliniated.
- Fixed a bug where if it failed to load ban.txt, it could then later save over it with a completely blank file.
- MAXBANS cap has been removed completely.
- Using the
- Added server gametype preference.
- Controlled with the
kartgametypepreference
console variable. If set to "Race" or "Battle", the voting screen operates from the perspective of that gametype. - If you're not in the preferred gametype, the third option will continue it, while the first two will always be for the preferred gametype.
- If the preferred gametype is Race and you've just exited a Battle map, the random Encore option will move to the second option.
- The game now displays the preferred gametype on the server browser, instead of what the map is currently. This is to not punish servers for running temporary gametype swaps, or force them to waste their limited name space to advertise "lessbattlevotes". This part is experimental and is up for feedback, so please let us know what you think.
- Controlled with the
- Added
spectatorreentry
console variable. Sets a time between spectators being able to spectate and then reenter the game, to prevent ragespecing. - Added some preventions for griefing. Can be controlled by
antigrief
, set to 0 to disable for private servers. - The Master Server's rules are now displayed in menu / console when starting a server.
- Added support for private HTTP downloads that require authentication. Use the command
set_http_login <url> [user:password]
to set or remove a login for a site, andlist_http_logins
to view all currently set logins. - Files are now downloaded from servers if they were found on your computer but with the wrong checksum.
- Fixed servers occasionally being registered multiple times.
- Fixed the game trying to process joins while levels are loading, fixing a miraid of bugs (such as corrupted save game crashes, server load hangs, or some zombie client issues). (JugadorXEI)
- Quotes can no longer be used in player names, as they can make server console usage painful.
- Backported fix for chat flood crashes.
Changes for gameplay
- The game now globally uses more precise distance checks. This improves waypoint checks, bumping, speed checks, wall collisions, Jawz targeting, Lightning Shield attacks, so on.
- Using P_AproxDistance now prints a simple warning and uses FixedHypot in its place.
- Backported ceiling slope collision, which lets you smoothly slide against them instead of getting caught on them. (Lighto)
- Backported Ring Racers' fix for the high speed turning bug.
- Fixed wipeout bump bug. (JugadorXEI)
- Fixed magnet landing bug. (JugadorXEI)
- Fixed a bug that caused drift charge to disappear in midair. (JugadorXEI)
- Fixed a regression in v1.3 where Thunder Shield could now be rolled at the start of a race. (JugadorXEI)
- Fixed item toss momentum in mobjscale maps.
- Fixed starting boost scaling in mobjscale maps.
- Fixed reversing speed in mobjscale maps.
Changes for modding
- Doubled freeslot limits. (Ashnal)
- The game now reports when the game failed to allocate freeslots due to reaching the limit. (Ashanl)
- Backported several Lua features from SRB2 2.2:
PlayerThink
hookPreThinkFrame
andPostThinkFrame
hooksCOM_LOCAL
commandsisserver
andisdedicated
global booleansCV_Set
,CV_StealthSet
andCV_AddValue
functions
- Added read-only global integer
defrosting
, which reports the number of ticks left during the level's "preticker". Used to check if a script is running during the limbo state between the level first loading and leveltime beginning to increment. - Divide by zero / modulo by zero errors now display file & line number.
- Fixed luafiles not being loaded from the home directory.
- Fixed MusicChange hook returning incorrect values.
Changes for Discord Rich Presence
- STUN is now used to fetch your own public IP address for the invite system, instead of pinging a server for it.
- Only update Master Server presence when advertise is changed.
- No longer runs for dedicated servers, for people running a dedicated server & the game itself on the same machine.
- Menus and title demos are now closed when using an invite. (Ashnal)
- Fixed invites not working on Linux. (JugadorXEI)
- Fixed buffer overrun / secret memory errors from Discord invites. (JugadorXEI)
Changes for maps
- Main Map Rotation:
- Green Hills
- Added death pits to areas where players could get stuck and would be forced to use the respawn command.
- The map's encore palette has been adjusted.
- Northern District
- Added death pits to areas where players could get stuck and would be forced to use the respawn command.
- Daytona Speedway
- Adjusted geometry to prevent unintended shortcuts.
- Added death pits to areas where players could get stuck and would be forced to use the respawn command.
- Egg Zeppelin
- Adjusted geometry to prevent unintended shortcuts.
- Sonic Speedway
- Adjusted geometry to prevent unintended shortcuts.
- Sunbeam Paradise
- Adjusted the properties of some fences to make them solid when they previously weren't.
- Diamond Square
- Updated musicdef to give the correct song title.
- Paradise Hills
- Extended finish line length.
- Added death pits to areas where players could get stuck and would be forced to use the respawn command.
- Sand Valley
- Adjusted linedefs to have textures when they previously were missing them.
- Casino Resort
- Added death pits to areas where players could get stuck and would be forced to use the respawn command.
- Silvercloud Island
- Added death pits to areas where players could get stuck and would be forced to use the respawn command.
- Petroleum Refinery
- Fixed an issue where a part of the main road was marked as death...
- Green Hills
SRB2Kart v1.3
Disclaimer
This version adds Discord Rich Presence support. However joining from opening the game from Discord is currently not supported on Linux or Mac OS. You can open the game first if you want to use Discord's joining feature.
As of result, the minimum Mac OS version supported is now 10.10, instead of 10.9.
Changes to online play
- Fixed joinbug and chatbug. Those are bugs where a player will try to join, but appear to be joining and immediately leaving many times to anyone in the server. Or when at some point you can no longer send chat messages, change your name/character etc. while playing in a server. Basically, netplay is more stable now.
- Fixed online sync issues with Rocket Sneakers, mines and the Kitchen Sink
- Added support for new HTTP based master server technology. SRB2Kart's Master Server is now separate from SRB2's, and will be hosted on kartkrew.org.
- Overall improved the server connection screen. There are now prompts for downloading files and waiting to join a server which is full. There is also a total progress meter for downloading files.
- Clients now choose a random port when connecting to servers.
-port 0
should no longer be needed. - Up to 126 servers may now appear in the server list
- Caret color codes may be used in server names
- Players may now change their name no more than five times per minute while playing online
Lua scripting changes
- Use player.ping to access the player's latency in milliseconds
- Fixed displayplayers.iterate crashing in replays
- Added replayplayback, which tells whether you are in a replay
- Added file I/O support
- Fixed sound volume not working on sounds that have an origin
OpenGL changes
- Fixed flat rotation being slightly off
- Fixed the game sometimes crashing on startup due to ogllog.txt
- Fixed encore colormaps being slightly off
Miscellaneous changes
- Added support for Discord Rich Presence. Some details of the game, such as what map you're playing, or how many players are on a server will be displayed on your profile. You may also invite others to join your game. This works even if you are not the server host, but just an ordinary player! Others may ask to join you too. You'll receive a notification in game if they do, and you can choose to accept or deny it.
- Adjusted item odds in Battle mode. Orbinauts, Jawz, Invincibility and Grow are far more likely to appear. Bananas and Sneakers much less. Also removed item odds scaling with bumper count. Now everyone is on an equal playing field.
- The last used renderer is now saved. This means you only need to start the game with OpenGL once and the game will remember it thereafter.
- Fixed a minor bug with aliases in the console
- Fixed first person camera breaking in replays
- Fixed clearbans not clearing ban.txt
- Fixed Record Attack ghosts potentially crashing if recorded with Lua added
- SPB is no longer forced to appear in a 1v1
- Fixed Thunder Shield item odds
- Fixed a memory leak with pk3 files
- Fixed SPB, Shrink and Hyudoro items appearing only once per race
- Made looking back instantaneous
- Fixed Toad
- Fixed a memory leak if replay is not saved
- You can no longer "line ride" offroad
- Increased rarity of a previously played map showing up again in vote
- Added join, leave and kick sound effects
- Updated bonuschars with brand new Sakura sprites!
SRB2Kart v1.2
Netcode changes
- The game no longer freezes on player join
- Fixed an issue where the game would fail to advertise servers on the master server
- Added support for HTTP downloads, a much more reliable means of downloading files than the current downloader
- Join password functionality has been removed due to compatibility issues
Item changes
- Throwables now travel slower when thrown backwards
- Fixed an issue where explosion items (namely mines) would explode twice in a single frame
- Fixed an issue where orbiting items would not protect you from your own placed traps
- Fixed an issue where blockmap errors would prevent the SPB explosion from happening
- Fixed spring panels sending you in the wrong direction when under growth or shrink
Replay Hut
- Added support for free camera in replays
- Rewinding is now much faster
OpenGL changes
- GIF recording is now supported
- Encore palettes are now functional in OpenGL
- Models no longer repeatedly try to look for texture files that don't exist, resulting in a performance boost
- Skin colors on models are now closer to how they appear on sprites. The new colors can potentially cause slowdown on lower end hardware, however
- Models no longer use 3D signposts, and instead fall back on sprites for better compatibility
- OpenGL now makes use of shaders, significantly improving the quality and accuracy of rendering
- Render calls are now batched, leading to a significant performance boost
- Sky domes have been implemented, improving the accuracy of sky rendering
- Issues with OBS Game Capture have been fixed
Misc changes
- 64-bit Windows builds have been discontinued. They are still supported, but binaries will no longer be distributed
- Record attack now skips the race intro and jumps straight to the countdown. Compatibility with old replays is still maintained
- Added the ability to retry in record attack by pressing the pause button
- The file limit has been raised from 48 to 127
- Updated various maps
Modding changes
- Added the
VoteThinker
hook to the game, allowing code to be run at the voting screen - Added the
MusicChange
hook to the game, allowing music changes to be intercepted and overridden - Added
displayplayers.iterate
, for iterating throughdisplayplayers
- Exposed additional functions to Lua, mostly music-related:
S_MusicType
S_MusicPlaying
S_MusicPaused
S_MusicInfo
S_MusicName
S_MusicExists
S_GetMusicLength
S_SetMusicLoopPoint
S_GetMusicLoopPoint
S_SetMusicPosition
S_GetMusicPosition
S_PauseMusic
S_ResumeMusic
CV_FindVar
K_SetRaceCountdown
K_SetExitCountdown
- Exposed additional variables to Lua:
consoleplayer
displayplayers[]
racecountdown
(equivalent tocountdown
in source)exitcountdown
(equivalent tocountdown2
in source)
MFE_DRAWONLYFORPx
flags now stack instead of being canceled by each other- Added linedef executor 323: A linedef executor similar to Encore Load that only executes in Record Attack
Bonuschars updates
- Updated Miku's sprites, again, and her sounds
- Updated NiGHTS' sprites, again, courtesy of Chrispy
- Updated Aigis' sprites, again, courtesy of TelosTurntable
- Updated Silver's sprites
- Fixed Hero Chao's wanted poster being one pixel short
SRB2Kart v1.1
-
Replay Hut:
- Added support for online replays. At the end of a race, the player can press "Look Back" to save the replay of the previous race
- Added an interface for loading replays recorded online: "Replay Hut" under the "Extras" menu
- Added new replay controls: Play/Pause, Rewind, Fast-Forward, Advance/Backup Frame, Viewpoint, and View Count
-
Netcode changes:
- The online addon limit has been removed. There is still an internal limit of 48 files in place, however
- Added the
banip
command, allowing hosts to directly ban IPs from connecting to the server - The
-clientport
and-udpport
command line parameters have been merged into-port
. As a result, when the game is launched under a port other than5029
, the port must be specified in order to connect to a server - Fixed an issue where dedicated servers would issue repeated map changes when the last remaining player went into spectate
- Connecting to
localhost
is once again functional - Fixed an issue where the game would continually operate on a closed socket, resulting in servers being delisted from the master server
- The
ping
command now presents ping in ascending order
-
Item changes:
- SPB is now intangible when seeking. After the initial throw, players will not collide with the SPB until it finds and begins following the target. Fixes an issue where players could get spun out by the SPB following them when someone stays ahead of them long enough for it to retarget
- SPB slows down in segments where the player loses control, meaning it is no longer unavoidable on Misty Maze and Grand Metropolis
- Using Grow while Shrunk will make you normal-size, instead of giant
- Grow will no longer cancel if held from when the item is first used. A second press is required to begin Grow cancel
- Using sneakers no longer cuts off the player's invulnerability frames. As a result, it is now impossible to steal more than one bumper at a time in Battle mode
-
OpenGL changes:
- Added support for MD3 models. This comes with slight optimizations to the model loading code
- The game no longer uses the
md2
folder,kmd2.dat
, andgr_md2
command to enable models. These have been changed tomdls
,mdls.dat
, andgr_mdls
respectively, as MD2 is no longer the only accepted format - Added sprite billboarding to OpenGL, on by default. This makes sprites face the camera at all times, eliminating the "paper" effect previously seen
- Added the
gr_fallbackplayermodel
command to allow disabling the fallback models used when no model is found for a character
-
Quality of Life changes:
- A new parameter,
-encore
, has been added to themap
command, functioning as a toggle. This allows warping to an encore map without changing the global setting - The mouse is now automatically focused on the game when the window is
- Added the ability to adjust the dead zone on a controller with the
joy_deadzone
command. The equivalents for players 2-4 arejoy2_deadzone
,joy3_deadzone
, andjoy4_deadzone
- The
forceskin
command now accepts skin names instead of numbers - Added the
-noaudio
command line parameter, which disables both music and sound - The "Log Join Addresses" menu option and by extension the
showjoinaddress
command now properly save to config - The room list is now the first thing shown when entering the server browser if no room is selected
- Arguments can now be substituted in alias commands. This is done similarly to Lua, using
$1
through$9
- Controls for players 3 and 4 are now cleared when clearing all controls
- The console now stays open in certain instances, such as when the map is changed
- Added the
add
command, allowing cvars to be incremented by the provided value - The item button will now reset the player's color to the character's preferred color when used in the "Player Setup" menu
- A new parameter,
-
Color changes:
- Added 11 new colors: Skunk, Artichoke, Pigeon, Walnut, Cinnamon, Lemonade, Quarry, Crocodile, Azure, Thunder, & Wristwatch
- Updated Dawn, Sunset, Cream, Gold, Olive, Vomit, Lime, Plague, & Caribbean
- Updated opposite colors for Bubblegum & Camouflage in response to the new colors
-
Modding changes:
- Added the
IntermissionThinker
hook to the game, allowing code to be run during intermissions - The value of the server's "numlaps" cvar has now been exposed to Lua as a global variable,
numlaps
- Fixed a typo with the
K_PlayPowerGloatSound
function - Exposed
k_boostangle
inkartstuff
- Fixed incorrectly set inflictors with bananas, mines, and ballhogs
- Added the ability to disable some battle HUD elements via Lua
- Added a new function:
v.drawOnMinimap(fixed_t x, fixed_t y, fixed_t scale, patch_t patch, colormap c, boolean centered)
, which draws a patch on the minimap relative to its actual coordinates on the map
- Added the
-
Misc changes:
- The player now gains invulnerability frames when respawning
- Precipitation is no longer drawn at infinite distance when set to zero
- Fixed wheel animations going to full speed instantly
- The "1 Player" option on the menu has been renamed to "Time Attack" and now leads directly to Record Attack. The options that were previously in this menu have been moved to the "Extras" menu
- The console now resizes properly when the resolution is changed, stopping it from extending past the screen
- Fixed the sliptide effect not showing when players boost, drift right, and release
- Spinout has been reverted to its pre-1.0.4 state. Previously it would slow players down unnaturally fast rather than let them continue moving at half speed
- Players can now change their angle if they hit a booster in spinout. This allows them to change their direction when they hit another booster
- Braking has been made stronger
- Fixed an issue where switching to a slower character quick enough would result in invulnerability frames getting stuck until death, making it impossible for them to take damage
- Fixed post processing effects such as water and encore mode breaking in splitscreen when using 64-bit builds
- Heatwave post processing now supports 3P/4P
- The FOV slider is now accessible in software under "Video Options"
- Added a new television signal effect shown when rewinding replays and when pausing, adjustible through the
televisionsignal
andvhspause
commands - The credits have been updated to reflect new contributions
-
Added the Community Cup, consisting of the following community-made maps:
- Lake Margorite by MK
- Added lake to Lake Margorite
- Coastal Temple by TG
- Kart Airlines by Victor Rush Turbo
- Honeybee Industry by fickleheart
- Crimson Core by Ninferno
- Lake Margorite by MK
-
Bonuschars updates:
- Added Doomguy, by Nev3r
- Added Hero Chao, by Ezo
- Added Sakura Shinguji, by Chengi
- Added Vyse, by LJSTAR
- Replaced Amy's sprites, courtesy of Chengi
- Updated NiGHTS' sprites
- Adjusted Beat's WANTED and rank icons to more accurately display his shirt color changing
- Changed Beat's voice clips
- Slightly adjusted Wonder Boy's rank icon to be more on-model.
- Changed NiGHTS' stats from 7/1 to 7/4
SRB2Kart v1.0.4
-
Major changes:
- Added a ping display in the lower-right hand corner of the screen that's on by default
- Fixed the game not being properly marked as modified when loading addons from the command line
- Up to 128 characters can now be loaded, up from 64
- The field of view can now be adjusted with the
fov
console variable - Added the ability to set a password for joining a server
- Game speed is now displayed on the in-game server browser for Race servers
-
Map changes:
- Strengthened offroad in sections of Green Hills, Sonic Speedway, Sunbeam Paradise, Megablock Castle, Blue Mountain, Barren Badlands, CK Cloud Tops 2, and SM Special Stage 3
- Extended the finish line on Paradise Hill, Misty Maze, Midnight Channel, Cloud Cradle K, and Aurora Atoll
- Daytona Speedway: Raised guard walls
- Grand Metropolis: Completely removed the building skip
- Megablock Castle: Fixed a lap exploit
- Sapphire Coast: Checkpoint adjustment to fix players spawning in the cliff of the thin bridge shortcut
- Casino Resort: Fixed wall scrolling textures
- Misty Maze: Fixed boundary bricks around the finish line causing players to get stuck in off-road
- Donut Plains 1: Fixed layering issues with players and off-road grass
- Black Bliss: New Hell map, replacing CNR Townsville Raceway
- Blue Mountain Classic: Changed the level select picture
-
Item changes:
- Fix item toggle menu disabling the wrong items when used
- Fixed Orbinaut*4 and Jawz*2 not appearing in the item rotation
- Fixed many power items disappearing from the rotation in 9P+ races
- Fixed drift sparks not generating on offroad when using an item that negates offroad's effect
- Using a Sneaker now cuts your flashing invincibility short
- Added a possible fix for synch failures related to using Shrink
- Shrink timer is now a consistent 20 seconds long
- Prevent certain items from being rolled for the first 30 seconds of a race
- Adjusted Mine: increased startup time, greatly increased startup time when dropping mines, reduced the explosion radius, removed automatic explosion after a certain time, and punt mines that have not activated yet on collision instead of exploding immediately
- Fixed Hyudoro being tangible to Jawz and Orbinauts
- Only allow one Hyudoro to be rolled every five seconds
- Added the ability to cancel Grow early by holding the item button
- SFX now plays when sniping someone with a throwable item
- SPB Rush odds are not affected by player count
- Reticule is displayed on minimap while SPB is out
- Removed limit on how many players can simultaneously have invincibility or grow
- Make thunder shield explosion radius properly adjust to map scale
- Prevent players from stacking multiple thunder shields in their item box
-
Modding changes:
- Added
player.splitscreenplayer
variable for determining if a player is a splitscreen player 2/3/4 - Added
cmd.latency
variable for reading how many frames of latency a player has
- Added
-
Other gameplay changes
- Greatly improved anti-gravity support
- Fixed various issues related to player collisions causing absurd thrusts
- Fixed an issue with latency detection that would occasionally cause steering problems
- Adjusted speed requirements for water skipping
- Adjust vertical launch momentum underwater in various cases
- 2P splitscreen now uses an FOV adjustment for better consistency with other view mode cameras
- Simplified various explosion effects to improve framerate
- Fixed occasional bonks on staircases
- Added a bunch of new player colors and modified some old ones
-
Crash/freeze fixes:
- Fixed occasional crash in Daytona Speedway and other maps from drawing papersprites
- Fixed Linux builds hanging after 34 hours of continuous runtime
- Fixed memory leaks leading to potential crashes when sitting on certain menus for an extended period of time
- Fixed server crash when receiving a join request while playing certain maps from PK3 addons
-
Misc changes:
- Gave FPS display a smaller font
- Improved ping limit detection
- Fixed arrows indicating chat can be scrolled not appearing
- Fixed full servers at maximum player counts not showing up on the master server or responding to join requests
- Added toggles for various behaviors on losing game focus
-
Bonuschars updates:
- Added Cream, by Virt
- Added NiGHTS, by Mr. McScrewup
- Added Beat, by Ezo
- Added Kiryu, by LJStar
- Added Ulala, by zxyspku and LJStar
- Added Ray, by Voltrix
- Added Chaos Zero, by 1-Up Mason
- Updated sprites for AiAi, E-102 Gamma, Espio, and Wonder Boy
- Replaced sprites for Rouge and Shadow
- Adjusted Rouge's stats
SRB2Kart v1.0.3
NOTE: If you already have v1.0.2, use the patch download. If you're updating from v1.0.0 or v1.0.1, use the full installer and extract it over your game folder.
- Fixed 64-bit builds delaying inputs by up to an entire year, and crashing when you tried to tell it not to do that.
- Item changes:
- Power item frequencies scale with player counts always, instead of only below 8 players. This is to keep driving a sole focus over being spammed out with items.
- In Battle Mode, power item frequencies can now scale with player counts, instead of only Race Mode. This count does not include Karma players, meaning the item frequencies become more hectic as the match reaches the end.
- The number of allowed invincibility items scale with player count. Instead of a static 2 allowed at once, approx. 1/4 of played can be allowed invincibility items at the same time.
- Orbiting item shield (Orbinaut, Jawz) changes:
- Base orbit speed is much lower.
- Orbit speed gets slower with more shields being held at once.
- Orbiting item shields always have at least one spawn directly behind the deployer.
- The hit confirm sound effect now plays on shield collision, instead of only for thrown collision.
- Jawz target reticule changes:
- Added a 5 tic delay on target switching.
- Made Jawz make sure its target is set immediately, when initially thrown.
- Jawz targetting cone is now slightly wider in Race.
- Thrown Orbinaut & Jawz have higher falling speeds.
- Reduced the frequency of Eggman items.
- Offroad changes:
- Weight no longer gives an advantage for off-road leniency -- everyone plays even with a 0.5 second leniency window.
- Speed drops faster in off-road overall.
- Drift sparks can no longer be started in the middle of off-road.
- Map changes:
- Fixed an intangible barrier in Daytona Speedway Zone.
- Blocked off a few gaps between the ring arches in Sonic Speedway Zone.
- Fixed floating grass textures in Hill Top Zone.
- Extended the finish line in Petroleum Refinery Zone.
- Modding changes:
- Added a distinction between "fair add-ons" and "major add-ons". Most notably, standard character WADs & non-replacing maps will no longer trip cheat detection, and can be used in Record Attack! You can even earn medals with most add-on characters.
- Lua: Added a "PlayerCmd" hook. Function format is "function(player [player_t], cmd [ticcmd_t])". This allows modders to change player input as it gets created.
- Lua: Exposed player taunt functions. (K_PlayAttackTaunt, K_PlayBoostTaunt, K_PlayOvertakeSound, K_PlayHitEmSound, K_PlayPowerGloatSound)
- Lua: Exposed drawKartString for HUD hooks.
- Lua: Added HUD disables for "freeplay" and "battlerankingsbumpers".
- Lua: Added splitscreen camera number to camera_t (camera.pnum).
- bonuschars.kart changes:
- Added Dark Chao, by Ezo.
- Overhauled Chao and Miku's sprites.
- Adjusted the color changing on Arle and Aigis.
- Better sound quality for Arle and Aigis' sound clips.
- Increased the strength of wipeout (spinout + bump) slowdown.
- Reduced how much the spinout timer can be added to when wiping out.
- Flashing players can no longer be collided with.
- Lookback camera switch is now instanteous.
- Added the "ingamecap" console variable. Sets a cap on non-spectating players.
- The thin font is now used for text on the intermission and TAB rankings when a server reaches 9+ players, rather than shortening names to 5 characters.
- Allowed more characters to be typed in the "Specify IPv4 Address" option on the Multiplayer menu.
- Exposed the "serversort" console variable.
- Disabled the respawn command when mid-air.
- Fixed players being able to timeout from a server during a transition fade.
- Fixed a crash that could happen from a player colliding with an Eggman item as it gets dropped.
- Changed default cpusleep to 1. (You can set it to 0 again if you really want the game to use up an entire CPU core. :V)
SRB2Kart v1.0.2
- Self-Propelled Bomb improvements:
- SPB Rush: 2nd place now gets drastically better items to catch up with 1st while a SPB is active.
- SPB will find another target if its current target is no longer in the lead after 7 seconds.
- Made SPB play fair when its target is on a conveyor belt.
- SPB is now forcfully given to 2nd whenever 1st gets too far away.
- Changed how SPB difficulty scales depending on character -- instead of getting harder for high acceleration characters, it takes both acceleration and drift-spark rate into account.
- Fixed an exploit with SPB that caused it switch targets when its existing one died.
- Item & roulette improvements:
- The spinning roulette is now player-colored, to make it easier to tell if you haven't gotten the item yet during lag-spikes.
- Your item flashes when the roulette finishes.
- It flashes white with normal item odds, red for reduced odds, and rainbow for enhanced odds.
- Flashing also acts as a short grace-period that prevents it being stolen by Hyudoro.
- Reduced and enhanced odds now have their own item roulette finish sounds.
- Enhanced Karma items spawn fireworks when picked up.
- Fixed SPB/Shrink being able to be rolled while either is dropped.
- Fixed dropped items not being removed in death pits.
- Voting improvements:
- Improved map variety. Duplicate maps only show up once a majority of maps have been played, instead of only seen.
- Made gametype switch votes much more frequent under all settings, and changed the default from "Sometimes" to "Frequent".
- The chance for Map Hell appearing was accidentally made 2000% higher than intended; this has been fixed.
- Splitscreen parties can now get yeeeah'd when their votes are picked.
- Shrink improvements:
- Shrink no longer causes spinout and instant speed loss.
- Getting squished while shrunk reduces the length of your shrink timer.
- Fixed Shrink being able to hit Grown or Invincible players since v1.0.1.
- Fixed Shrink being able to hit spectators.
- Map improvements:
- Added a SRB2Kart finish flag to Daytona Speedway Zone.
- Added a death pit to Hill Top Zone's jump.
- Increased the difficulty of Misty Maze Zone.
- Added missing player starts to Sand Valley Zone and SMK Bowser Castle 3.
- Added minor missing finish line areas in Blue Mountain Zone.
- Made the toll gates in Northern District Zone intangible.
- Added fencing to the sides of the ice bridge in Sub-Zero Peak Zone.
- Fixed a patch of offroad on the last spiral of Daytona Speedway Zone.
- Fixed the alignment of the last two booster textures in Sand Valley Zone.
- Added death pits to a few hard to get to areas that would normally soft-lock you.
- Changed checkpoints for several maps.
- Changed the textures in Kodachrome Void Zone.
- Fixed position calculations being wonky in sprint maps.
- Gamepad improvements:
- Enabled explicit support for XInput controllers. In the rare instance that this messes with your gamepad, then try running the game with the command line parameter -noxinput to revert to the old behavior, or -nohidapi to disable any automatic SDL HID API mappings.
- Added controller hotplugging. Plugging in a controller mid-game tries to assign it without requiring the game to be restarted.
- Added the ability to use axes, accelerate, and brake to control menus.
- Fixed Player 4 being unable to use a controller.
- Netcode/server host changes & fixes:
- Added lag compensation to turning. Turning in lag should feel much more responsive now.
- Added lag compensation to starting boosts. You should no longer have to adjust your timing as much compared to Record Attack.
- Added a "netticbuffer" console variable that attempts to reduce connection-induced frame drops at the cost of, in the absolute worst case scenario, one additional frame of control lag. Setting to 0 reverts to the old behavior.
- Renamed "giveadmin" to "promote", and "removeadmin" to "demote".
- Stricter network variable defaults. (Server hosts will need to change some of these settings to the new defaults manually, if desired.)
- Changed default nettimeout & jointimeout from 350 (10 seconds) to 105 (3 seconds).
- Changed default maxping from 0 to 800.
- Changed default resynchattempts from 10 to 5.
- Added an "Advanced Server Options" menu with numerous network variables that server hosts normally tweak.
- Everything is now automatically unlocked for dedicated server hosts.
- Exiting countdown can now properly be set if players disconnect.
- Fixed a bug where player count could overflow in dedicated servers.
- Fixed a bug where remote admins would sometimes give illegal commands.
- Fixed clicking "refresh" multiple times in the Internet Server Browser showing less servers each time.
- Modding changes:
- PK3 add-ons are now supported! These are renamed ZIP format files, using folders to separate different lump types instead of markers. In SLADE, you can create these by clicking "New Zip Archive" instead of "New WAD Archive". Obvious boons are the decreased the file-size from ZIP compression, organization via folders, and being able to quickly create & edit a usable add-on via batch.
- Heavily extended the character set of the thin font. Notably, it contains lowercase characters now.
- The maximum number of characters has been doubled (from 32, to 64).
- Speed/Weight stats have been locked more consistently for modders.
- Skin values are now locked between 1-9, but it's no longer locked when changing skins. This results in no gameplay change, but the character select screen no longer lies to you. Lua is still allowed to change these to absurd values.
- Random instances where Weight was locked between 1-9 during runtime have been removed.
- Engine sounds can no longer overflow with overly-high Speed/Weight stats.
- Lua: Exposed the K_KartUpdatePosition function.
- Lua: Added hooks for player damage. (PlayerSpin, PlayerSquish, PlayerExplode, ShouldSpin, ShouldSquish, and ShouldExplode)
- Lua: Added constants for translation colormaps for HUD drawing.
- Lua: Added a mapobjectscale global, which makes retrieving the map's scale less tedious to type.
- Lua: Fixed SKINCOLOR constants not being accessible.
- Lua: Fixed being unable to use "colorize" translation colormaps for HUD drawing.
- bonuschars.kart changes:
- Added Flicky, by VAdaPEGA.
- Added Motobug, by DrTapeworm.
- Added Mighty, by Snu.
- Added Vector, by DirkTheHusky.
- Added Blaze, by Virt.
- Added Arle, by Lat'.
- Added Aiai, by DirkTheHusky.
- Added Hatsune Miku, by zxyspku.
- Reorganized character stats.
- Added a reticule over all WANTED players' minimap icons.
- The minimap and WANTED poster now appear in splitscreen.
- Song credits are now shown in-game. Custom music can be defined with a MUSICDEF lump.
- Added a fancy new character select stat grid (courtesy of sphere), which better illustrates drift-spark rates & engine classes.
- Buffed item hitbox sizes. This includes item boxes, HUD dropped items, and karma-controlled items. This does NOT include Eggman items or karma-controlled Eggmen.
- Nerfed the activation range of Mines, after the first tic. (The explosion radius remains unchanged.)
- Drifting now requires a minimum speed to be reached at any time during the drift before drift-sparks can be earned.
- Made the finish lines for sprint maps create respawn points.
- Opponents' points in Battle Mode are no longer hidden behind their item arrows.
- Made the offroad/item drag slowdown dust take your momentum, so more of it is visible.
- Turning while respawning no longer needs you to hold accelerate & brake.
- Added a "Reset to defaults" option to Control Setup.
- The Music/SFX on/off setting is now saved to config.
- The game now checks for new unlocks after getting a Record Attack medal.
- Darkened the disabled booster textures for more visibility.
- Drifting and Pogo Spring states get reset on damage, when bumping walls, or touching Adventure speed pads.
- Battle announcements are no longer shown for spectators.
- NO CONTEST explosions no longer wait 2 seconds to start spawning the smoke stack.
- OpenGL: 3D models now rotate to align with sloped surfaces.
- OpenGL: Added support for a fallback player MD2 if one isn't found.
- Fixed the offroad/banana slowdown dust effect spawning when not moving or while spectating.
- Fixed squishing other players being unreliable in scaled maps.
- Fixed sound distance not scaling with map scale.
- Fixed HUD animations pausing on death.
- Fixed zoom tubes being able to permamently give a player low friction.
- Fixed per-map palettes not resetting when going back to the title screen.
- Fixed the all-unlocks cheat not always saving after use.
- Fixed spectator controls using the wrong gamepad axis for floating up/down.
- Fixed an odd green frame on SPB's sprites.
- Fixed patch.kart being loaded after sounds.kart.
- Fixed the Master Server webpage reading "Tag" instead of "Match" for Battle Mode servers.
- Fixed the green zig-zag replacement textures from v1.0.1 being named incorrectly.
- Attempted to fix Race finishes using the wrong music on rare occasions.
- Removed Gay Baby Jail.
- Updated the codebase to match SRB2 v2.1.23; most unlisted changes from there will also apply here.