Resource icon

Team SRB2Kart Racing, a mod based on Team Sonic Racing! (KL_tsrb2kr-v2.pk3) 2.0

A mod that I've been working on for waaaaay longer than I'm willing to admit;

Team SRB2Kart Racing!

Team SRB2Kart Racing is a mod that brings Team Sonic Racing's gameplay into SRB2Kart! Some of the mechanics from TSR have also been rebalanced to not be over-centralizing as well, such as item transfers.

Each round, you're separated into teams and your overall position at the end of the race is determined by how well your team places, so you'll need to make use of the team mechanics that you'll have available between you and your teammates to make sure you all place as high as possible!

That's all there is for introductions, so let's get into the mechanics within the mods. I'll start out by saying this is a mod that requires the usage of CUSTOM BUTTONS. Custom buttons 1 & 2 are MANDATORY for the all the important mechanics within the mods, while custom button 3 is only optional but useful.

But with that out of the way, lets get into the interactions of the mod between players. All of the following interactions fill up your team ultimate gauge when executed correctly, building up towards your team ultimate;
Slingshots are the most basic team mechanic, but also the one you'll be using the most in your races with a team, allowing you to get constant boosts that make races way more fast paced than the ones you're used to!
The highest ranked player in a team will leave a constant trail behind them for their teammates to follow. If you enter that trail, you'll get a slight speed increase and you'll start building up a boost that gets more powerful the longer you stay in the trail, indicated by the particles spawning off of you. When you leave the trail, your built up boost will activate, giving you a boost of speed! Chaining slingshots together will greatly increase the speed of your races with the constant boosts you'll be achieving, allowing you to catch up to your teammates with ease!

Another minor thing to note is that the trail that you leave in the highest position is affected by your stats! Characters closer to Sonic's stat block (top right) give off longer slingshot boosts to their teammates, while characters closer to Tails' stat block (top left) leave a bigger trail, allowing teammates to follow their trails easier!
Skimboosts are a team mechanic that allows you to help your teammates that are in a pinch. Is one of your teammates spinning out or driving slower than they should be? Give them a skimboost and help them out!
While one of your teammates are either spinning out or driving slower than they should be, an indicator will appear over their sprite, letting you know that you can give them a skimboost! (Notice the <!> above the teammate's head in the GIF)

When a teammate has the indicator above their sprite, drive by them with enough speed to give them a sneaker boost to help them recover their speed in an instant!

When you've received a skimboost, you can hold brake to delay when your skimboost will come out, allowing you to re-angle yourself to a more favorable angle if need be so you don't go flying off in a direction that would get you into a very bad situation.
Item transfers allow you to pass on your items to another teammate, potentially giving them the item they really need at that point in the race! This is also the first team mechanic that makes use of CUSTOM BUTTONS, as it uses custom button 1, so that's another reason to make sure you have them bound to something.
While you have an item that you don't really have a use for, you can press custom button 1 to offer it up for grabs to your teammates! While you have a teammate that is offering an item, you can press custom button 1 to accept the item, and the item you receive from them will have boosted odds, giving you a better item than usual! You might get the exact item you need to turn the tides in a race this way! Alternatively, you can press custom button 1 when you don't have an item to request for an item, instead! This will prompt your teammates to give an item to you when possible.

After an item transfer has been completed, there will be a cooldown before your team can start another item transfer, this is to effectively eliminate the popular strategy in the original game of spamming item transfers to quickly build up a team ultimate, the boosted odds of transferred items was introduced to compensate for the cooldown introduced.

One thing to note is that you can still accept items while you already have an item! It will just store it for you until you're done with your current item, allowing you to effectively have an extra item in the back! You can only have one stored item though, once you have a stored item you'll no longer be able to accept any item transfers.

This is also one of the team mechanics that also works without a team! If you have no teammates at all to give your items to, you can instead offer up your items to be donated to the nearest charity! Your good karma will award you with some of your team ultimate gauge being filled up for your generosity.
Rival takedowns are a minor side feature that allows for you to get some of your team ultimate meter by attacking your rival team! A rival team can be spotted by the RIVAL indicator above their head.
A rival team is the team directly above yours in the total rankings, for example, the rival team of a team in 2nd place would be the team in 1st place. Any player that is in that team will be your rival, and if you can attack them with any sort of item you'll get some of your team ultimate gauge filled!
Here's the big team mechanic that'll change the entire race when it's activated, your team ultimate! Every team mechanic listed above fills up your ultimate gauge when performed and, when it's full, you can unleash your team ultimate with your team, that of which gets stronger by timing it's activation with your teammates! This is also the second team mechanic that makes use of CUSTOM BUTTONS, as it uses custom buttons 2 & 3. While custom button 2 is mandatory for activating the team ultimate, custom button 3 is optional and only used for communicating your team ultimate with your teammates.
As your ultimate gauge fills up, a yellow bar will start to fill up around your portrait HUD at the top left of the screen. After this ultimate gauge has filled up completely, your HUD will start flashing and a sound effect will play, letting you know that you can use your ultimate! After this, you can press custom button 3 to indicate to your teammates that you want to use it!

To activate your team ultimate, press custom button 2! You'll get a huge burst of speed as you'll be getting constant sneaker boosts! This controls similarly to Wipezones, another Kart mod. If you time your team ultimate with your teammates, you'll go even faster and it'll last longer, too!

While using your team ultimate, you can also ram into your opponents to spin them out, doing so will replenish some of your ultimate gauge mid-ultimate, allowing for an even longer team ultimate! (This will only replenish your own gauge though)

It's important to note that if you hold your team ultimate for too long, it will start to decay. This is called ultimate decay, and once the red bar slowly going down your HUD reaches the bottom, you'll lose your team ultimate entirely, so don't hog it for too long!
Finally, while in freeplay you can press custom button 3 to instantly fill your team ultimate gauge to practice controlling it!

When on a team with only 2 players, or if you end up on a team on your own, all of the interactions that you can still pull off will be scaled accordingly to the amount of teammates you have, so you'll get even more ultimate gauge on a solo or duo team! You'll even get more points based on your position in a solo or duo team, so it's not all hopeless if this happens!

As of TSRB2KR v2, this is a new mode that's perfect for creating organised games, or just being able to construct teams to your liking!
This is activated by an admin of the server using the tsr_tourneymode command. Once this is activated, every player will be forced to spectate as they'll have the option to join whatever team they'd like!

The first player to join a team is assigned as the "team leader", they're able to customize the team name and colour using the respective commands tsr_tourneyname and tsr_tourneycolor. (Admins can forcibly change a team name and colour by specifying a team as the 2nd argument)

After everyone is in a team, an admin can press START VOTING to proceed to the next stage. Each team leader can select a map they'd like to play on. Before this stage, an admin can control what maps will appear in the voting phase. tsr_tourneyrotation can be used to setup a unique map pool for tourney mode, while tsr_tourneyblacklist can be used to remove specific maps from the entire map pool without needing to setup a unique map pool.

After every leader has chosen a map, the map is randomly chosen from the selected maps, and the tourney round will play out! After the tourney round has started, no other players can join, so it's important to make sure every player that wants to participate has joined a team before going to the voting phase. (Players that spectate wont be able to rejoin either.)

Since they're scattered about the explanation, here's a condensed list of all the tourney mode commands:
tsr_tourneymode: Activates tourney mode. Admin only.
tsr_tourneyrotation <view/add/remove/clear>: Everything related to setting up a unique tourney map pool. add, remove and clear are admin only parameters.
tsr_tourneyblacklist <view/add/remove/clear>: Everything related to setting up a tourney map pool blacklist. add, remove and clear are admin only parameters.
tsr_tourneyname <name> <team>: Changes your team's name. Only usable as the team leader. (Admins can forcibly change a team name by specifying a team)
tsr_tourneycolor <color> <team>: Changes your team's colour. Only usable as the team leader. (Admins can forcibly change a team name by specifying a team)

There are a couple of commands included in the mod that can be run to slightly customize your experience;
tsr_team1color <color>: Changes Team 1's colour.
tsr_team2color <color>: Changes Team 2's colour.
tsr_team3color <color>: Changes Team 3's colour.
tsr_team4color <color>: Changes Team 4's colour.
tsr_team5color <color>: Changes Team 5's colour.
tsr_forceteamcolors <on/off>: Makes every player their respective team colour.
tsr_tourneycontrols <on/off>: Display controls during tourney mode setup.
addultimatemusic <skin> <lump>: Adds an ultimate theme for a skin.
friendlyfire: This is a leftover vanilla command, but it does exactly what you'd expect it to. Without this enabled, items wont hurt your teams and the SPB will even attempt to target the opposing teams instead of your own! (You can still be damaged by your own items, though)
All of these commands (except for friendlyfire) are not synched up in netgames, so you can use them to customize the mod to your preferences. tsrb2kr.cfg can be created in the luafiles folder to auto-load your settings when joining a server with TSRB2KR added. (It'll created it for you too with the default settings if it's not available). The base mod also includes ultimate music for every character in the base game, including bonuschars! (And one extra). Using the command listed in the command spoiler, addultimatemusic, you can add your own for skins!

  • Replays may desync when rewinding, so it may be necessary to do a full reload in some cases.
  • Tourney mode replays don't sync correctly.
  • CVars changed midrace won't sync in replays.
  • Turning on karteliminatelast may cause the last player to softlock the game, the mod turns it off for a reason!
  • Spectating may cause some issues.
  • The SPB may end up with no target in some cases, and remain stationary.
  • TSRB2KR doesn't work well with 16 players, it's not supported.

It's important to note that this mod does not work at all with 16 players, 15 is the maximum I'd recommend.

Finally, I'd like to thank;
Lat': Helping me code a huge chunk of the mod, this mod would not be out for at least a few more months without him!
The countless people that helped me test this mod, you all know who you are, and I'm very grateful for you all helping shape the mod into what it is today!


  • General Changes:
    • Tourney mode has been added!
      • This can be activated by an admin using tsr_tourneymode.
      • Once activated, everyone playing will be forced to spectate then you can choose a team to join!
      • The first person to join a team is considered the leader, and can change the team name and colour using the tsr_tourneyname and tsr_tourneycolour commands, respectively.
        • tsrb2kr_teamleader.cfg will also load through I/O if you join a team first to autoload team settings!
      • Team leaders can vote for a map when the admin starts the voting process when everyone has joined!
        • Admins can control what maps appear using the tsr_tourneyrotation command.
        • Additionally, maps can be blacklisted by admins without needing to make an entire rotation using the tsr_tourneyblacklist command.
      • Control information will appear at the bottom left, this can be toggled using the tsr_tourneycontrols cvar.
      • After a tourney round begins, people who werent in a team (or spectate midrace) won't be able to join until it's over.
    • The code has been rewritten to be more of a framework, much more organised.
    • The results winning voices won't play now if voices are disabled.
    • I/O support has been added.
      • tsrb2kr.cfg is now loaded through I/O, preventing lagspikes if you don't have it.
      • If you don't have tsrb2kr.cfg, it'll create it for you in /luafiles with the default commands.
  • Gameplay Changes:
    • Points awarded at the results have been changed, higher placements have a much bigger impact now.
    • Solo teams now only give a 2.5 multiplier to points.
    • Level 1 slingshots give less boost time now.
    • Skimboost range and speed threshold has been increased.
    • Item transfers now play the chat sound when started. (Don't worry, this sound can't be spammed)
    • Charity has been overhauled, you now get ultimate gauge relative to your position and there is a cooldown.
    • Holding brake during an ultimate is a lot better at saving you on springs now.
    • Ultimate duration is now tied to timing the ultimate.
    • The threshold for timing ultimates is much more lenient.
    • Timed ultimates are a lot more noticable now.
    • Rival takedowns now give more ultimate gauge.
    • The RIVAL display has been reduced in scale.
    • Eggbox explosions are no longer protected by friendlyfire checks.
    • Eggbox sprites are no longer team coloured, so they arent given away to other teams anymore.
  • HUD Changes:
    • Player icons now have a white stroke around them when they have a transfer ongoing.
    • All ultimate gain messages are now team coloured.
      • Takedown messages are coloured based on the team of the player you hit!
    • Only "Wants to Ultimate!" and "Ultimate!" lines flash yellow/orange now for better indication.
    • Spectators are now shown on the tab rankings.
    • You are now highlighted on the tab rankings.
    • Finish times are now used for tab rankings sorting if they are finished, just so checkpoints don't mess it up as much.
    • The ping display now uses, instead of an approximation thanks to v1.3.
  • Bug Fixes:
    • HOPEFULLY fixed potential softlocks when a race should end.
    • Freeplay shouldnt desync on dedicated servers anymore.
    • Ballhogs are no longer blocked by teammates.
    • Eggboxes no longer get rid of stored items on explosion.
    • Non-default startcolors now correctly show on the HUD.
    • KartMP's orbinaut/jawz fuse should no longer mess with the item display.
    • Fixed tab rankings portraits not being colorized correctly.
    • Fixed the line dividers on the tab rankings hud overlapping the points.
    • Fixed CHECK showing up after a race, displaying teammates and incorrectly displaying grow/invincibility.
    • Miscellaneous Lua error fixes.
  • Initial release.

With all that out of the way, I hope you all enjoy this mod as much as I did creating it, happy team racing!

Supporters / Co-Authors:
  • intro.gif
    3.9 MB · Views: 302
  • slingshot.gif
    4.3 MB · Views: 506
  • skimboostindicator.gif
    3.4 MB · Views: 221
  • skimboost.gif
    2.3 MB · Views: 172
  • itemrequest.gif
    7.8 MB · Views: 651
  • rivaltakedown.gif
    2.8 MB · Views: 143
  • ultimateready.gif
    1.1 MB · Views: 212
  • ultimatedamage.gif
    3.2 MB · Views: 181
  • Cool!
Reactions: lexidog
Extension type
File size
4.8 MB
MD5 Hash
First release
Last update
4.00 star(s) 2 ratings

More resources from Snu

Share this resource

Latest reviews

This is probably my favorite way to play kart when everyone in the lobby actually knows how to play it. Its really fun leapfrogging with friends to build ult, and helping each other out. Especially when you perfectly sync an ult and it seems like you're in absolute sync. Its wonderful.

My only problem with this mode is ults kind of encourage sandbagging with them (pretty much just holding them till the last minute, which I don't know how you'd fix) and how it doesn't get enough updates, so people tend to forget about it.
Upvote 0
With a couple of friends this is a joy to play

I'm not familiar how TSR did it originally but if its like this normally, it translates really well!
Upvote 0