• Do not use Works in Progress as a way of avoiding the releases system! Works in Progress can be used for sharing early betas and for getting suggestions for improvement. Releases of finished content are not allowed in this forum! If you would like to submit a finished addon, click here for instructions on how to do so.

Tails' Khaos Kontraption (chaos mod for Ring Racers)

EeveeEuphoria

a possum irl
tails' khaos kontraption.png



While everyone was having fun with the brilliant work that Dr. Eggman and his lab partner created, Tails decided to... have a little bit of fun with an add-on he can install to the karts' Kartridge ports. Who's the villain now?

This is a mod I'm working on for Dr. Robotnik's Ring Racers, based on my previous mods for SRB2 and SRB2Kart, which were SRB2: Chaotic Edition and SRB2Khaos! There will be more of the same here, but with some new effects, and a new twist: Universal Effects! Universal Effects will apply to all players on the map, whether it be because there are changes to the map that occur, or because all players get afflicted by something at the same time! And of course I'm busy cooking up some new effect ideas that would work well for Ring Racers in particular.

As it stands, the lua scripting capabilities are a bit limited, due to the fact that most functions aren't exposed to lua (not even S_ChangeMusic, for some reason???), but I'm assuming later down the line Kart Krew will add more functionality back into lua. When that time comes, I'll be sure to update this mod to restore some classic effects, and make new ones with more chaos than ever before.

I'm hoping by the time I'd wanna post this, the forums will accept Ring Racers mods, cause if so that's where this will go!

In the meantime, after the trailer for this launches, I'll be posting regular WIPs of new effects and additions to this mod! I'll also try to record the planned play test I have in mind for this, and plonk it onto here when it gets uploaded to YouTube! (i'll also try to capture some replays for it, but last i tried the replay functionality completely crashed the game using this mod lmao)

Trailer for this mod
(set to YouTube Premeire for May 23rd):​


Universal Effect example (LOUD):

Gameplay sample:

Gameplay sample 2:


More universal effect examples, this one is "You Get The Bees", where bees give everyone on the course the same effect. Do not question the bees.



And this one is "Supersonic Racing", which gives everyone 8 seconds of invincibility, because why not? (I had to dig into the code just to figure out how to start invincibility, simply because the function to give players invincibility isn't exposed lol)


Something that doesn't come through with these videos alone is that the text-to-speech voice that announces these effects is sometimes different, because I have alternate takes that I really wanted to put in here, with different pronunciations and all that. It's really fun messing with SAM, that's why I did that :p
Post automatically merged:

The trailer for this mod's now out! So, with that, I'll go ahead and post a couple more recent clips, once again relating to the Universal Effects feature!

This one features "double items", which just doubles the amount of items you're currently holding. If you don't have any items in your slot, you'll get this applied the next time you find an item!


And this one is insta-item! Does what it says on the tin. (as you can probably notice, it just spawns an item object and immediately deletes it, again because there's a lack of exposed functions in ring racers. kart krew plz ;w;)



As you can notice in both of these, the text now has a neat lil effect like they get typed in! There's also now a sound that plays when the universal effect is being rolled for.
 
Last edited:
So, an interesting development has occurred. Due to the fact there is an untraceable bug that sometimes crashes the game, and only happens in online games, happening more frequently in replays, I've decided to... scrap all my code and start from scratch.
Now I'm not gonna throw the baby out with the bath water, I'll be able to mostly be able to transfer the work I did on the effects over to here, it'll be a whole lot of effort but this should pay out in the long run. The code base for this is like... 2-3 years old by now? And has many remnants from the original chaos edition I made. So, this is long overdue actually, I've just been forced into this position because the game crashes constantly lol.
But, on the bright side, I'm doing things in a much more efficient and correct way, so, this is ultimately better for everything involved here.

As of writing this, I do have most things working outside of the HUD, effects get applied based on a timer system (not the exact same one yet, I just needed something so I just do it every 5 seconds), it doesn't apply the effect if it already exists, and it does have some basic knowledge of things to not apply according to it's tags in the effects table. I've also been able to finally insert the functions the effects does inside the table itself, it's something I've tried to do in the past, but... because of my sloppy coding, it'd store the functions inside the player. Pro-tip: Don't do that.

This is also a great excuse to implement a brand new options system, using proper cvars, instead of the ungodly horrors I made before that was just an endless list of "if" statements.

Hopefully I'll have something new and exciting to show in a few days! I already think I wanna re-do up the HUD to be a bit more... extravagant? So, if I can pull that off, I'll definitely show off that.

Additionally, once this is all done, I should be able to backport my hard work back into SRB2, and update chaotic edition that way. And if I feel like it, I might update the srb2kart mod, though no promises on that one.


EDIT: A few hours after this, I've actually completed a lot of the rewrite! The basic foundations are in place, the HUD is in mostly-working-order, and all this has been done when the logic for timers was reversed (before, timers used to count down, now, they count up, so i had to inverse everything to account for that lol)

Now that that's done... I'll need to focus on importing my other effects, polishing up the HUD, and adding the timer bar (along with a second timer bar for universal effects. ...or merging the two into one, if i can manage to figure out how to do that without it looking Ugly)
Post automatically merged:

Okay, so great news, the rewrite is coming along very nicely! I don't have all the effects re-implemented still, but, I've got almost all universal effects implemented, and it even has it's own timer bar that sits above the other one (I might shrink it to be 2 units tall instead, though I'm not sure).
So, this script is almost back to where it was before, but with an entirely new codebase that will play nicely with netplay and replays. It was a paaaain to figure out what was holding up universal effects from working in replays, especially when it worked just fine in netgames. My solution was to just reset all the local variables on mapchange, that seems to fix it.
 
Last edited:
I have something new and exciting to show off.

ringracers0020.png

Doesn't look like much does it? Well...

Screenshot_20240525_140858.png


"Bouncy Floors" isn't in the main script right now. That only means one thing!

I'm adding support for other mods to interface with this! Due to my rewrite using tables that have functions inside of them, this is something I can now enable and allow. It'll behave exactly like you're adding an effect to the main script itself. This will also open the door for the new Universal Effects too!

It's not guaranteed this will be a thing you can do at launch, but I think I have enough time to include this with thorough testing. I'll have to write up documentation for this, which will take a good while, since... to be frank I don't even remember what all the options here do, lol.
 
Today i had the exact same idea, make a Chaos Mod for DRRR
i already made some kind of a base and a bit of functions but seems like theres already one in the works
ringracers0108.gif
 
Haven't posted in awhile, I've been putting the brakes on this just to slow myself down lol, I swear I'm a workaholic sometimes.
So far, I've re-implemented the setting system, from the grounds up to use proper user cvars. ...well, I say proper, I hijacked it using CV_CALL and a lot of jank to make sure individual user settings properly sync over netgames. But! It works!

ringracers0024.png


And because of Ring Racers' new addon settings menu, you can access it all from here. (ignore the bottom two, that's command jank I used for cv_call lol). Not shown is the server settings which lets you enable "Amplify Mode", a carry-over from my other chaos mods that turns up how much the effects mess with you.

A lot of time has been spent these past days trying to polish up a lot of things in general, like replacing effect functions with ones that... aren't hideously jank. Some of them still are, as that's just how it is, but such is life. I've also tried, unsuccessfully, to revamp the HUD. I'm really bad at math, especially geometry math (says the vector artist), so centering things is hard. I've also spent a lot of time fine-tuning the effects to be more optimized for this, most of these effects originate from SRB2 after all. So things like reduced timers, reduced strength, and more are having to be considered in order to make sure the chaos isn't too punishing. I'd rather not have half the race be spent respawning, y'know?


And now, enjoy this clip of a playtest I did with a friend, where my friend got absolutely boned. This does indeed come from my own replay, thus showing replays do work :p (though, it seems random when they don't work, I think if players join mid-game the replays start to break down)


Post automatically merged:

A lil update on something I've been working on for a few hours, this is an effect that will pause the player in place (not implemented yet) and force them to read a text box that they have to press the accelerate button to advance. Once the text box is gone, the player resumes control as if time has unpaused, so all acceleration and all that will be restored.
(don't mind the inaccurate effects number, this is in an entirely different lua script so i had to make up a table for it to look up the length for lol)


 
Last edited:
I've now decided to re-work the HUD icons, just because I can.
I only have one icon done so far for cement tires (which is what everything uses as a placeholder), and I decided to revamp the borders just a bit.

The borders didn't adhere to the color palette provided by SRB2 (and consequently ring racers), so they never looked like how they should. So, I re-did them! And I've also made it so the icons inside of them are 16x16! That does mean I have to re-do everything, but it'll be worth it I'm sure.
Something else I did was just make the borders look a little bit more fancy too. Alongside that, the borders are now separate graphics from the actual icons themselves, so I can re-adjust an effect to be good/neutral/bad without needing to update the sprite itself. It'll also make the roulette look a little neater too as it's border isn't shifting colors all the time.

1717473901204.gif


A final thing I've done is give the icons a little staticy effect when their timer is about to expire, along with it shaking and vibrating, just because I thought that'd be a fun lil detail.
 
OOOOOh. I love the Chaotic edition mods for both of the games so I know for sure this is going to be great. Everything so far looks nice so keep it up!
If I could ask though will the console spam be staying? And will the "You get the bees" audio be able to be turned off? I'm not a huge fan of console spam and the audio for the global kind of hurt my ears.
 
New video just dropped! This showcases the "Amplify Mode" functionality, which has the return of everyone's most beloved "Inverted Controls" :)

While I'm here, a few updates: I've added some new effects! First one is "Quicksand!", as shown here! Along side this is the "Hey! Listen!" textbox effect, which decided to show up as well.

1717553021547.gif


And another new effect is "Laggy Model" (i'll probably rename this tbh), in which it causes the player sprite to lag behind! Very disorientating.

1717553165264.gif


As of right now, I'm about to enter a feature freeze for this up til the planned June 14th public playtest. I'll spend the rest of this time polishing up what I have, and continue to add new features after that. I'm honestly thinking I might release this sometime June instead of July, but no promises!!!

Oh and, to answer this:
If I could ask though will the console spam be staying? And will the "You get the bees" audio be able to be turned off? I'm not a huge fan of console spam and the audio for the global kind of hurt my ears.
For the console spam, I think I remember there was a setting to turn that off. If not, it'll be added anyways! And as for the audio wrt universal effects, it'll be a bit complicated to add that in with my current system but I'll manage something! I already have alternate sound effects for this that uses Microsoft Sam instead, it's intended for the battle mode of the game, but I might just make it so people can swap it to whatever one they prefer.
 
Remember when I said I was going to do a feature freeze? Well, I lied I guess. I'm currently working on a custom font that will be used by the HUD, first I'm doing the replacement for the thin-kind of text. It's semi-based on the font I used to make the logo for this mod (which is Octanis if you're curious).

I'm achieving this by utilizing TehRealSalt's Custom HUD Library made for SRB2 (just had to make a few modifications to get it to load in Ring Racers), and so far it's working nicely.

The only annoyance is that text colors don't work, I think there might exist other HUD libraries that are more suited for custom text that I might look into just because of this. But, this does seem to support re-coloring the entire text string with a certain color... makes me wonder if I can just, hijack this and make it recognize the color interrupts that text normally uses...

Anyways! I'm unsure if this custom font will end up being used in the playtest, but considering the pace I've been working on new stuff, it might be in here. I just need to ensure netplay stability and it'll be good to go. To be fair though, I'd be surprised if this didn't work in netplay.

1717644010769.png


UPDATE: I've now switched to using this library by sprkizard, again I had to do some minor modifications, but it supports the text color changes I want! Albeit, it uses skincolors to do the trick, so now I have to learn what numbers do what, and what exact color of Green to make my text to have everything pop the way I want. Either way, big win for me, I'm going ahead with this plan!
 
Last edited:
I've just realized I've not posted the updates regarding to the custom text, so, I'll do that!

I mentioned in an edit I switch libraries (to one made by Varren/sprkizard), and it's been a treat. To start off with, here's the rainbow text effect and groove text effect shown off here! (to be clear, I have 0 idea how this looks in vanilla SRB2, the colors could be off for all I know, but it looks good enough to my eyes)

1717737131556.gif


I really like how this looks, of course I didn't make the effects myself, but still! I did put a bit of work fixing up this library for my own use though, for example I re-implemented the standard SOC colors that lua scripts can use (e.g. "\x82" for yellow text), in which I matched the colors the best I can to the pre-existing skincolors provided by the game. Though, thing about this is, you can replace the skincolors used for that per-usage of the function, so you can assign different colors for different text, without being restricted to the 53 the mod would otherwise allow. Another thing I did was allow me to pass through the alpha values to the HUD, since I make extensive use of that myself. Of course, this resource will be available for anyone else to use once this mod is released (even in the playtest variant), so the changes I made should be useful to everyone.

Unfortunately there is a bug relating to this w/ Ring Racers, where replays show the text as completely green. This isn't a problem on my end, as someone submitted a merge request to fix this since they had similar issues with a mod they're working on. So, hopefully that patch is accepted!

Oh, and, the text for the Universal Effects is different too, it uses the Nixdorf 8810 M15 font, provided by int10h.org! They made a bunch of fonts that originate from vendors who changed up the font for the BIOS, and a lot of them look nice like this!

Final thing I'll bring up is, Amplify Mode now makes itself more obvious when it's applied. Everyone is slapped with an alert that shows up in the HUD text, and an alarm is played. Additionally, when players start, the text that shows the version number of this mod will also say "Amplify active!" if it's on.
 
Hey there! Not much new in terms of new features since I've been trying to keep myself from adding new features that might break down horribly in the playtest, but, I got a logo that I commissioned from @ChrisFurry!
1718126281779.gif


Something I'm heavily considering is making this a super rare chance to show up in place of the DVD logo in the DVD screensaver, just because that'd be very silly :p

So, I did say not much in terms of new features, but I've realized I haven't gone over some of the changes I've made before, sooo:
I've implemented an option to change the announcer from S.A.M. to be Microsoft Sam instead. Pick your favorite Sam!

I've also implemented an option to disable the mod mid-game without having to reload the server and everyone's game. tkkEnabled 0 is all it takes, and it'll be disabled after the current match.

As you might've seen in the videos and GIFs, I do have a save/load feature, it doesn't autosave (yet, considering it), but typing in tkkSaveSettings will save everything! It goes through a bunch of sanity checks just to make sure people don't absolutely screw over people by causing script errors, but it hasn't gone through the wringer completely just yet.

Oh, and I didn't bring this up for some reason, but I made a new Universal Effect called "Wacky Textures", which replaces all the textures on the map. ...which also replaces map elements like the booster panels, as shown here by a CPU not understanding that, and getting screwed over heavily.

 
Showcasing another new feature, a couple of commands that gives you helpful info about this mod! First one is tkkListEffects, which lists every single effect in this mod! Second one is tkkWhatIs, which when given an effect name, will tell you a description and it's duration!

Oh, and as you can tell in the background, I've implemented the new logo made by ChrisFurry into the title screen!

1718170846960.png

Post automatically merged:

We're in the final stretch til the public playtest! I have lots more plans for this mod after this, but right now I'm focused on small effects that can be added, alongside tons of stability. For instance, this effect! This just covers the player's vision in confetti.
1718245172326.gif


Another thing I added was text borders for all the effects that get applied to you, just because I thought it'd look nice. They're colored according to the effect type applied!
1718245273593.gif

(this of course means they'll look weird in replays, but it's not my fault it's broken in ring racers right now, still waiting for those merge requests to be approved...)

And for the more boring side of things, I did some extensive testing in dedicated servers, and surprise, it's borked as all heck. No matter what, I've always found weird issues when making mods either with dedicated servers in mind, or on player-ran servers in mind. I always gotta account for the other after awhile since weird issues ALWAYS crop up. But, that all seems to be sorted now, besides a weird issue with insta-item I hope to smooth out before it's too late.

Now for one last thing, I do plan on streaming the playtest to my youtube channel! I got a nice lil intro for when I set up the stream prepared, as I'll need it to futz around with wayland stuff. I think this'll be a fun experience, and if this goes well enough, I'll also do a release day stream too!
1718245427763.png
 
Last edited:
This post previously talked about how this was livestreamed! And it sure was, VOD is at the bottom! You'll also find the download to this on this post, if you want to check out the WIP! Anyways...

There are many plans for this mod after this public beta gets released, I've honestly been purposefully stalling myself to not include potentially game-breaking features before this playtest, and it's been a liiiil bit agonizing, lol. Mainly, I have many new effect ideas, and I need to import some of the old effects back into this. I think I'll keep to my projected July release date, if only to maximize the amount of polish this mod gets. No bug left unturned... one would hope.

As it stands, the current feature set is:
  • 46 effects for individual racers, and 6 universal effects that apply to everyone.
  • Player settings, including adjustable Universal Effect announcers, being able to turn off HUD elements, adjust the HUD position, and many other features.
  • Amplify Mode is implemented and functioning.
  • Some checks are in place to make the script mostly function in Grand Prix (though, it's undetermined if the podium sequence can be softlocked. so, if it can, oops)
  • "tkkWhatIs" to show a description of any given effect, along with it's duration possibilities.
And the planned future... feature set after this playtest releases is:
  • 20-ish more individual + universal effects, with around half of them being imports from previous versions of my chaos mods.
  • More player settings, such as the ability to blacklist certain effects, autosaving options, and maybe more.
  • Full compatibility with all the different game modes, including balance changes to make certain game modes... less impossible. The point of isn't to make it impossible!
  • Improve the quality of effects. Ideas I have are things like randomizing the start position of the DVD logo, making more effects more intense under Amplify Mode, and generally making effects use more of the new fun player variables that Ring Racers offers.
  • And finally, I want to address the jankiness of the icons that show the effects, once and for all. Alas, this involves Intense Math, so this isn't something I'll guarantee.
EDIT: I've uploaded a hotfix for this that should hopefully patch out an annoying issue w/ replays not working due to spectators still having effects applied to them (it was a typo.). No guarantees though.

Live stream VOD is here!
 

Attachments

  • DL_TailsKhaoticKontraption_v0.6.9.1.pk3
    1.3 MB · Views: 216
  • OLDVERSION!!!DL_TailsKhaoticKontraption_v0.6.9.pk3
    1.3 MB · Views: 61
Last edited:
Been a lil bit, tried to take a small break as to not burn myself out on this. But, we're back!
I've added a few of the effects that have been missing so far, like "Money Bag", "Bleeding", and "Spawn Object"

Most notably with "Spawn Object", I was able to import the turret from SRB2. And since this video below, I've made the lasers faster, and the turret fire off twice as fast. You're not safe.



Another thing I did was change "Overreaction" to "Marked for Death", to add yet another TF2 reference in here. People were a bit confused by what "Overreaction" did, so I thought having a visual indicator when you got hit would make it more clear. What has a visual indicator when you get hit? The crits in TF2, of course. But, that's a bit extreme, so... mini-crits it is!



Finally, I've been tweaking "tkkWhatIs" to provide more helpful descriptions of effects, like the conditions they need to meet to get applied to the player, the effects it's incompatible with (meaning, can't be applied while these incompatible effects are already applied) or other things like how many more seconds it lasts in Amplify Mode.
1718660573481.png
 
Back at this with a triple whammy! I have 3 new Universal Effects to show off!

First off is "Trap Rain", where a bunch of trap items will now litter the entire map.


Second one is "Position Swap", where all the players on the map will trade places! Each player's position, angle, and current momentum will be exchanged. There is a chance you might not swap places though, so consider yourself lucky if you stay in place!


And finally is "The Most Attractive Racer", which is a replacement for the "Black Hole" effect. It was always intended to be applied to just one player at a time... so, this is the most effective way of doing that!



As a bonus, have this clip I got of "Spawn Object" completely dunking on a bot while I was doing play tests with a friend.
 
We've entered the big stretch to release, I predict from here that it'll be about a week until this mod is completely finalized.

I've imported basically all the effects from the pre-rewrite finally, and I basically have every effect done at this rate, since I don't think any of my other effect ideas are ones I want to implement right this second. There will be more in the future of course, either as I think of them, or as we gain more Lua support (still waiting for the music APIs to be re-added)! Plus, with this having modding support, other people will surely be able to add more effects themselves if they think of them (those other people could include you!)

Right now, most of my time will be spent getting all the bugfixes done, and implementing more features. My most recent addition is the blacklist feature, letting you blacklist effects from being applied to you. The implementation is incomplete, as for some reason it gets cleared out after you load into a map (and I don't know why, that's irritating), but it otherwise functions and saves & loads correctly. There will be a server-side option to disable player's blacklists too.

Oh, but something I forgot to mention, I finally did a rewrite of the HUD system. This has been a long-time coming, and the HUD finally lines up better, with effects that disappear not making all the other icons ahead of it just teleport backwards. I also took this opportunity to make effects have their icons shrink down in size, which finally means effects that instantly apply can have a chance to show their icon for a brief moment.

I don't have awfully too much to show off that would be interesting, despite what I all said, so, I'll just leave you with one of the many new sprites added to "Change Sprite". Enjoy.



Final things to mention are, someone else might have something to show off on Friday about this mod (I say might, since it's not my work!), and I do have a super secret bonus about this mod that will be revealed on the release trailer. Trust me, it's a big surprise, so stay tuned for that!
 

Who is viewing this thread (Total: 1, Members: 0, Guests: 1)

Back
Top