Resource icon

[Open Assets] ChaosKart - Turn SRB2Kart into a Torturous Hellscape! v2.0.0

This content may be freely modified and/or maintained by anyone.

Spectra

Loser
Chaoskart

Chaoskart is a mod intended to make SRB2Kart as chaotic as possible.
There are multiple different effects that are there to ruin your day. Each of them will have different lasting effects, or some may even be quick events that hit you when you least expect it.
attachment.php
attachment.php

There are over 50 different effects by default. You can look at the many different effects with the console command "ck_listevents".

There are also permanent effects, effects that have a chance to start up for the entire race, every race. Around a 5% chance.
attachment.php
attachment.php

Console Commands:
ck_listevents: Lists all the events.
ck_doevent <eventid>: Runs an event.
ck_dorareevent <eventid>: Runs a rare event.
ck_eventtime <time>: The time until each event is run.

ck_deathroulette <on/off>: Whether death roulette can be run or not.
ck_startdeathroulette: Starts death roulette.

chaoskart <on/off>: Enables or disables chaoskart.

Chaoskart has Custom Event support aswell!
Code:
-- Hello! This is a tutorial wad for how Chaoskart Events work!
-- You must have decent Lua knowlege for this.
-- If you must, you could even use other hooks.

-- Let's look at this event. For this example, we'll make it blow up 2nd.
freeslot("sfx_noooo3")

ckAddEvent(ckEvents, {
	name = "Explode 2nd", -- The name of the event, it will be displayed next to the item slot. If omitted, will display "Missing Name!"
	shortname = "ExplodeSecond", -- The ID of the event, it is used for the commands. REQUIRED.
	eventprint = "2nd place was blown up!", -- This is plastered below the event name. REQUIRED.
	namecol = SKINCOLOR_ORANGE, -- Irrelavent until the next update.
	battlemode = true, -- Whether this can be called in battle mode or not. If omitted, defaults to true.
	soundplay = sfx_noooo3, -- The sound that is played instead of the default. If omitted, plays the default sound
	candeathroulette = false, -- Whether this can be called in the death roulette or not.
	eventfunc = function(time) -- The code that is run when the event is called.
		for p in players.iterate
			if p.kartstuff[k_position] == 2 and p and p.mo and p.valid and p.mo.valid
				K_SpawnMineExplosion(p.mo, p.mo.color)
				p.kartstuff[k_spinouttimer] = 3*TICRATE
				P_StartQuake(30*FRACUNIT, TICRATE/2)
				P_InstaThrust(p.mo, p.mo.angle, 0)
				P_SetObjectMomZ(p.mo, 10*FRACUNIT)
				p.xpld = true
			end
		end
	end,
	eventthink = function() -- A thinkframe for the event. Runs every tic.
		for p in players.iterate
			if p.xpld == true
				CONS_Printf(p, "Sorry! But hey atleast you know 'eventthink' works!")
				p.xpld = false
			end
		end
	end,
	eventpthink = function(p) -- 2.2 playerthink. Runs every tic.
		if p.xpld == true
			CONS_Printf(p, "Sorry! But hey atleast you know 'eventpthink' works!")
			p.xpld = false
		end
	end,
})

-- If you want to make a rare event, replace
// ckAddEvent(ckEvents, {
-- With
// ckAddRareEvent(ckRareEvents, {

-- As you may or may not know, chaoskart comes with permeffects too.
-- Here is how to make one.

-- Here is our permeffect. For an example, we'll make it spam the console.
ckAddPermEffect({
	name = "Console Spam", -- The name of the perm effect. REQUIRED.
	desc = "I'm so sorry!", -- The description of the perm effect. REQUIRED.
	encoredesc = "I'm really sorry!", -- The description of the perm effect in encore mode. If omitted, it will use the regular description.
	startsound = sfx_noooo3, -- The sound that is played when the perm effect starts. REQUIRED.
	rare = true, -- If this is rare or not. If omitted, defaults to false.
	battlemode = true, -- If this can be called in battle mode or not. If omitted, defaults to true.
	synchnewjoiners = true, -- Executes 'starteffect' whenever someone joins
	starteffect = function() -- Executes as soon as this perm effect is called.
		print("This console boutta die")
	end
	effect = function() -- The effect of the perm effect. Runs every tic. REQUIRED.
		print(":)")
	end,
	encoreeffect = function() -- The effect in encore mode. Runs every tic. If omitted, uses the regular effect.
		print(":)")
		print(":)")
		print(":)")
	end,
	mobjthinker = function(mo) -- The Mobj Thinker that will run. Not required.
		if mo.valid
			if mo.type == MT_PLAYER
				mo.colorized = true
				mo.color = SKINCOLOR_ORANGE
				local smoke = P_SpawnMobj(mo.x+P_RandomRange(-25, 25)*mo.scale, mo.y+P_RandomRange(-25, 25)*mo.scale, mo.z+P_RandomRange(5, 30)*mo.scale, MT_SMOKE)
				if not S_SoundPlaying(mo, sfx_kc51) then S_StartSound(mo, sfx_kc51) end
			end
		end
	end,
	spineffect = function(p, i, s) -- The code that will run if the player is spun out.
		if (p.valid and p.mo.valid)
			if s.type == MT_PLAYER
				p.kartstuff[k_spinouttimer] = $*2
				p.onfire = 10*TICRATE
			end
		end
	end,
	xpldeffect = function(p, i, s) -- The code that will run if the player is blown up.
		if (p.valid and p.mo.valid)
			if s.type == MT_PLAYER
				p.kartstuff[k_wipeoutslow] = $*2
				p.onfire = 10*TICRATE
			end
		end
	end,
})

-- I hope you'll enjoy this!

Changelog:
v1.0:
- Release

v1.1:
- "chaoskart" command (disables chaoskart while loaded)
- "PermaShrink" Perm-Effect

v1.2:
- Various Bugfixes to certain events
- Encore Mode perm effects
- New Event "RandItem"

v1.3:
- Tweaked "IceballRand", "HyperOrbinautRand", "GiantBananaRand" and "Driftless"
- New Event "FireRain"
- New Event "Blooper"
- New Event "AutoAccel"
- New Event "InvertControls"
- "PermAccel" Perm-Effect.

1.4:
- Timed Events now show up below the timer.
- Speaking of the timer, it has been redone to make it look better.
- New Event "StopAll"
- New Event "BunnyHop"
- New Event "FlipAll"
- "Speed Shoes" Perm-Effect
- "Kansei Dorifto" Perm-Effect
- "Spring-Floor" Rare Perm-Effect.

1.41:
- Timed events would carry into the next race. This is rectified.
- Frozen players can press any button to break out.
- Removed "Blooper".

ChaosKart is intended for... well... chaos, and so, some levels may be unplayable, or too chaotic to complete. Please do not complain if you're unable to complete a track or are barely able to play the game, it's all part of the fun!
 

Attachments

  • kart0011.gif
    kart0011.gif
    2.6 MB · Views: 10,564
  • kart0016.gif
    kart0016.gif
    3 MB · Views: 9,053
  • kart0017.gif
    kart0017.gif
    7.2 MB · Views: 9,357
  • Chaoskart-Event-Template.pk3
    418.4 KB · Views: 386
  • kart0000.gif
    kart0000.gif
    2.8 MB · Views: 8,174
  • KL_ChaosKart-v1.41.pk3
    1.3 MB · Views: 521
Last edited:
Man that is so poggers.

So much chaotic fun, throughout testing it a ton.

I recommend it if you want some fun.
 
It would be great to have a c-var or command that disables the add-on while it's still loaded. I run a server where more add-ons are enabled randomly, but this add-on does not have any way to turn it off until I need it!
 
I have updated ChaosKart, here is the changelog
v1.0
Release!

v1.1
Adds one new Permanent Effect and the ability to disable ChaosKart while it's loaded.
 
Chaoskart has been updated due to a bit of an oversight on my part.

v1.2:
- Various Bugfixes to certain events, some were fatal when players were spectating
- Encore Mode perm effects
- New Event "RandItem"
 
I've only stumbled into a server running this a few times, but it's always such a wacky experience. My main suggestion would be to have the current effect be displayed as text at the top of the screen with the timer. Also that the timer graphic is a little simple looking, but that's just aesthetic.
 
some update

Chaoskart had a small update

Changelog:
v1.0:
- Release

v1.1:
- "chaoskart" command (disables chaoskart while loaded)
- "PermaShrink" Perm-Effect

v1.2:
- Various Bugfixes to certain events
- Encore Mode perm effects
- New Event "RandItem"

v1.3:
- Tweaked "IceballRand", "HyperOrbinautRand", "GiantBananaRand" and "Driftless"
- New Event "FireRain"
- New Event "Blooper"
- New Event "AutoAccel"
- New Event "InvertControls"
- "PermAccel" Perm-Effect.

1.4:
- Timed Events now show up below the timer.
- Speaking of the timer, it has been redone to make it look better.
- New Event "StopAll"
- New Event "BunnyHop"
- New Event "FlipAll"
- "Speed Shoes" Perm-Effect
- "Kansei Dorifto" Perm-Effect
- "Spring-Floor" Rare Perm-Effect.
 

Attachments

  • kart0000.gif
    kart0000.gif
    5.2 MB · Views: 328
Ah, cool update! Thanks for taking my suggestions into consideration


By the by, is there a full list of all the effects somewhere? Either I'm blind or it's not in the OP. Also, are you open to suggestions for future effects?




Looking forward to whatever whaky shenanigans you come up with next~
 
By the by, is there a full list of all the effects somewhere? Either I'm blind or it's not in the OP. Also, are you open to suggestions for future effects?

There's a command called "ck_listevents" which lists all the events.
You can also start events with the command "ck_doevent". It accepts event IDs and event shortnames.

I may be open to future event suggestions.
 
Last edited:
So This add-on was meant to torture hackers, cheaters, & Whalers and other case sore winners/losers. by making a SRB2 OmniKart add-on based on Super Mario 64 Chaos Edition mod.




P.S.: Also Shoutout to SimpleFlips for entering the chat. greet him his inclusion.
 
Oh, SimpleFlips entered the chat? That makes two popular people who have been known to try this mod (ScottFalco being the first)

Anyway, cool update, pure hell awaits you.
 
Tried up the new events, they are definitely pretty fun and can't wait to see how people will react to them especially RandScale and Gliders.
 
Another thing I noticed is, that this addon is hogging up a lot of CPU cycles even if currently disabled. This makes the game run at an unplayable framerate, when other addons are also loaded.
 

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

Back
Top