SRB2 Message Board  

Go Back   SRB2 Message Board > Sonic Robo Blast 2 > Releases > Lua

Reply
 
Thread Tools
Chaos Mode 1.6 [Custom Enemy update] Details »»
Chaos Mode 1.6 [Custom Enemy update]
Version: 1.6, by Rapidgame7 (pressure pressure pressure) Rapidgame7 is offline
Developer Last Online: Jun 2017

Category: Version: SRB2 Rating: (4 votes - 4.40 average)
Released: 09-23-2016 Last Update: 09-25-2016 Installs: 2
Scripts Re-Useable Content

03/09/17: I'm not dead! I'm working on 1.7.

10/20/16: Updated to 1.6!
It brings custom enemy support for modders and players, among other additions and changes.
Open the WAD and open the LUA_CHO2 lump for more information on how to add more enemies!




Remember the old Chaos gamemode?
Chaos was one infamous gamemode that got removed after the 1.09 release of SRB2 due to poor reception.
Some didn't like the gamemode and were alright with the change, but what about those that did enjoy the gamemode?

Well, fear not Chaos lovers, because it is back:
A shot for recreating and modernizing our beloved Chaos mode!


This version of Chaos plays almost similarly as it was played back then in terms of gameplay and mechanics:
Enemies spawn from designated spawn points, and players get the task of destroying them for points, get the highest chain possible, get the highest score and not die.
The goal? Get more points than your opponents!
That's it! Simple, isn't it?

Once you destroy a badnik, you will start a chain and get 100 points. For every consecutive enemy destroyed, your score will increase quickly!
This chain ends when you land on the ground (and you are not spindashing), you start climbing a wall, or you get hit. The points you accumulated will go to your score. But if you have invincibility, the chain will not end!
But if you die, you will not only lose your chain, but also half of your score.

This script is to be played in Match.
You can also enable it in CTF if you feel that CTF is too easy!
But Team Match doesn't work correctly. I'll fix it, I promise!

Depending on how is it set up, the game can get hectic after a while and hits can be almost unavoidable!


Spoiler: Commands and variables

There may be some commands that may not be listed.

chaosmode <0|1>
Enables Chaos mode, makes enemies spawn... And overall it gets spooky after a while.

chaos_spawnrate <1 - 1575>
Changes the time, in tics, between two enemies spawning. 35 tics are 1 second.

chaos_batchspawning <0|1|anything>
Every moment that the script wants to spawn an enemy, it only uses one enemy spawn and places one enemy there.
If you want to fill the stage faster, this could be of assistance!
1 is the default. If you choose 2 or a larger number, the script will use that amount of enemy spawners per spawning event. So every [chaos_spawnrate] tics, [chaos_batchspawning] enemies will spawn!
0 will use all enemy spawns found in the map, so use with care!

chaos_playerobituaries <-1|0|1>
Allows the script to change the "Player was hit/killed by an environmental hazard" messages to coloured hit/kill messages!
Using the argument 1 will allow the script to do just that.
Using 0 will keep the original messages, and using -1 will only suppress the messages except for player-to-player hits and actual environmental damage.

chaos_ringslinger <0|1>
It's like disabling/enabling ringslinger in gametypes that weren't designed with ringslinger in mind (like Race, Co-op...), but for Chaos exclusively.

chaos_enemies <"clear"|"total">
A little utility command. "clear" sets all enemy entries to 0, while "total" shows how many enemies are in the enemy bowl (this is a thing here).

chaos_teammatchcompatibility <0|1|2>
Chaos Team Match compatibility. Since Team Match removes all emerald spawns from the map, this allows the script to make them appear again! And you can choose whether you want these spawners to spawn emeralds or not.

All commands that start with cm_
These commands set the chance for the specified enemy to appear on every enemy spawn event.
To list all of the commands that start with this prefix, type cm_ in the console, then hold CTRL and press TAB.
Click image for larger version

Name:	he kno.png
Views:	164
Size:	7.3 KB
ID:	9005


Some stuff about Chaos:
Spoiler: How to set up Chaos
So you would like to assemble your own Chaos for your server?
Alright!

First, load the script. Once it is done, type chaosmode 1 in the console to activate it.
To start trying it, host a match map.
Chances are that the game will start talking about an "enemy bowl" being empty. To fix that, use one of the cm_ values and change it! This way you can fill the "bowl" with enemies and they will start spawning.
You can set how quickly enemies spawn by using chaos_spawnrate.

And that's pretty much it!

Spoiler: What's the goal in Chaos?
Destroy badniks, get points, survive!
If you're feeling adventurous, you can try making a chain, that involves jumping from one badnik to another without touching the ground (or getting hit). This way you can multiply your score!

Spoiler: Enemy bowl!? What's that?
What I mean with this, is that the method of choosing an enemy is like using a bowl with papers where someone picks one paper at random.

If you set cm_bluecrawla to 20 and cm_redcrawla to 10, then "Blue Crawla" will be written in a table 20 times, and "Red Crawla" only 10.
If you had to pick a name from the table, 2/3 of the time you will get a blue Crawla.

Spoiler: There are no Chaos enemy spawners! How can enemies spawn?
Because there are no Chaos spawn points in the game, the script will use the emerald spawn points, just like this SOC.

Spoiler: Chaos scoring
I'll explain.
As said above, every enemy you kill will grant you 100 points.
If you start a chain, the first enemy on a chain will give you 100 points, the second 200, the third 300, and so on. It accumulates, so after the third enemy you can get 600 points!
But these points don't directly go to your score! Once you land on the ground or you start climbing on a wall, those points that you accumulated will be safely stored in your score!
If you manage to get hit in the middle of a chain, you will lose it, and the points you accumulated will be voided.

Bosses work normally but with a different twist: Every hit will grant you 1 chain and the usual 100 points.
Bosses usually grant more points when they are near death, so continue attacking them for more points!

If you die, your score will be halved.

Spoiler: Custom enemies!? How do I add mine?
You can find information and examples in the LUA_CHO2 lump in the WAD.


And some error troubleshooting:
Spoiler: The console says stuff!
There are no entries in the enemy bowl!
This means that none of the enemies have any chance of spawning when the script wants to spawn an enemy. To fix this, set a chance for an enemy to spawn through one of the cm_ variables.

There are no enemy spawn points!
Thee gametype you're on doesn't have any emerald spawn points.
There's a Team Match compatibility command that forces them to appear if the Things are on the map!

Chaos mode can only be used in Match, Team Match or CTF!
Exactly what it says is the problem.
It wasn't designed to be played on Co-op, Race, Competition, Tag nor Hide and Seek, at least yet.
The script will prevent you from playing Chaos mode under any of these gametypes.


And a final spoiler block with a changelog, known bugs, and a small ToDo.
Spoiler: Sorry for all those spoiler blocks
Full changelog:
1.6
- Added: Custom enemy support! Now any modder can make their enemies appear in Chaos!
-- Or you can add your favourite mod (with enemies), make a quick Lua script and add their enemies in Chaos!
- Added: CTF Support (I had to write less than 1 line and that's it kek)
- Added: In team gametypes, player names will now be colorized!
- Added: More hit messages, covering some objects thrown/left by dead enemies.
- Added: chaosdebug_about just in case anyone wants to read.
- Added: chaosdebug_hitdebug which should help with finding hit cases I didn't add for vanilla enemies, and for messages in custom enemies.
- Added: Small HUD animation where the "+100" counter above the chain text bounces a little when a badnik is defeated.
- Added: New enemy spawn sound effect.
- Changed: Instead of pre-set enemies, now the script comes with a pre-set but editable enemy table.
- Changed: The "player got hit/killed by" messages are also stored in a table, for flexibility.
- Changed: Instead of spamming the console, Chaos disables itself when enabled in a non-supported gametype.
- Changed: The "Player got a chain of X" now appears on chains larger than 5 instead of 6.
- Changed: Because of the previous change, some chain sound effect requeriments have been lowered.
- Changed: Debug commands will now have the prefix "chaosdebug".
- Changed: Renamed the WAD file to be easier to add.

1.5
- Added: Chaos enemy entrance fog, ported directly from SRB2 1.08!
-- I'm planning to edit it instead of being a direct rip, so it looks better.
- Changed: No more ".lua", it is now ".wad". Sorry!
- Changed: Placed the WAD inside a ZIP file along with chaos.txt.
- Fixed: Error with the "score halved" animation where it would not vibrate.

1.4
- Quality over quantity, correct?
- Made the changelog from now on 120% more readable!
- Changed: Max chain only changes if the new record was successful.
- Changed: Now using chaosMode.emeraldLocations instead of emeraldLocations.
- Changed: Now using MT_UNKNOWN (instead of MT_THOK) when no enemies can spawn in an enemy spawner.
- Updated: That little chaos.txt file has been updated!
- Added: HUD animation when a player loses their chain due to getting hit.
- Added: HUD animation when a player gets their score halved because of dying.
- Added: Sound effect when a player loses their chain.
- Added: Placeholder visual effect when an enemy spawns.
- Added: More enemies: AquaBuzz, Jet Jaw, Robo-Hood, Skim and Snailer!
- Added: Batch spawning! chaos_batchspawning
- Added: Now you can disable ringslinger during Chaos! chaos_ringslinger
- Fixed: Less errors when you load/activate Chaos during a game.
- Fixed typo: "ligering" to "liNgering"
- Fixed typo: Wrong number in one of the options for chaos_teammatchcompatibility.

1.3.1
- Fixed: Checking for damager.player before damager on boss hit.
- chaosMode.enemyBowl now uses a copy of chaosMode.enemyBowlDefault instead of a direct reference. Lua stop
-- "chaos_enemies clear" works now.
- cm_ commands now set the correct amount of entries for an enemy.
- Added: A few typos here and there

1.3b and 1.3c
- Fixed typo that made bosses not grant chains.
- A thing that shouldn't be printing now doesn't print.

1.3
- Egg Slimer doesn't crash the game anymore!
- Added chaos_playerobituaries.
- Added a few colors in some messages printed by the script.
- If a player gets hit, their chain will end and the score will be lost.
- Your score will return to 0 if you enter spectator.
- Removed inexistent variable "acted" in chaos_enemies command.
- Removed an extra word in a message.

1.2.1b
- When checking for health left in bosses, I was actually checking the player health. Whoops! It got fixed.

1.2.1
- A comment in the script now shows the current version
- Added Brak Eggman!

1.2
- Emerald spawns now create boss fleeing points so bosses don't endlessly fly upwards.
- Egg Slimer now works! It will be forced into the pogo state.
- All bosses now give 1 chain per hit!
- Metal Sonic now gives 2 chain when hit in his pinch phase.
- Knuckles's chain will end if he begins to climb a wall.

1.1
- Small animation when you receive points when stepping on land
-- Also plays a sound effect depending on the chain amount at the moment
- Renamed "Chain:" to "Chains:"
- "chaos_enemies", when used with no arguments, talks about an argument named "default". It does not exist, so it was renamed.
-- Also it talks about "Total" when it should be "total". Also renamed.
- And a bunch of other things that I forgot to write down

1.0
- Released

Known bugs:
- The HUD likes to hide behind the screen
- Desynches are going to be pretty common
- Team Match works ok, but the game will tend to apply score normally and ignore Chaos score. It will do bad to the team score counter. Even more because of death and halved scores, as it doesn't detect those.
- Horrible bug that causes the game to crash randomly when a player collides with an enemy elemental shield's fire tail! I'm trying to find the cause, and so far I think it is caused by HurtMsg after some testing. I'm trying to find a solution!
- If you find any bugs not listed here, notify me!

ToDo (might do):
- Make chaosMode.maxEntries modifiable in-game.
-- I don't think this will happen
- Fix Team Match!
-- Prevent the player from receiving score when hitting another player in Team Match.
-- Prevent the Team Match team score from increasing when a team member destroys a badnik.
- Interpolate some frames in the Chaos enemy spawn effect.

Note 10/13/2016: The problem with Team Match and Chaos is that Chaos uses a different way of scoring, making the normal score counter get set to a different value every tic. When a player hits another, the damager gets 50 points (or 100 if the player is killed), and when jumping over an enemy, you get 100 points, and due to how SRB2 handles score, this gets added to the team score in Team Match. This shouldn't happen in Chaos.
All I have to do is prevent PvP damage from giving any score by making artificial damage, and find a way to prevent players from receiving the normal score after killing an enemy (only use Chaos score!), and Team Chaos should be ready to go.
Oh, and CTF. I should allow it, I don't have to change anything! The Chaos emeralds already spawn in the gametype, and the team score only increases when capturing a flag, so all should be set for this.


And there's more inside the WAD!


There's a video I made in Youtube about this Chaos mode script, if you want to check it out.
It is just a bit outdated, but don't worry, Chaos is played the same. (Click here to watch it.)

Included alongside the Lua script, there is "chaos.txt" that you can execute in the console to quickly set up the game with my configuration: Almost all enemies, some bosses, 3 minutes as time limit, point limit of 37500 points, and enemies spawn every 15 tics.
It also changes monitors and whatnot so it might enable cheats in the netgame. I'd recommend you check the configuration!



And now, everything aside, enjoy!

Download Now

File Type: zip ChaosMode16.zip (45.7 KB, 189 views)

Screenshots

Click image for larger version

Name:	srb20089.jpg
Views:	2009
Size:	212.7 KB
ID:	9004   Click image for larger version

Name:	srb20090.jpg
Views:	139
Size:	195.8 KB
ID:	9007   Click image for larger version

Name:	srb20096.jpg
Views:	121
Size:	156.7 KB
ID:	9008   Click image for larger version

Name:	srb20097.jpg
Views:	127
Size:	108.3 KB
ID:	9009   Click image for larger version

Name:	srb20100.jpg
Views:	148
Size:	123.0 KB
ID:	9010  

Show Your Support

  • The author of this addon has given explicit permission for its content to be re-used and/or reproduced.

Comments
Old 09-24-2016   #2
Rapidgame7
pressure pressure pressure
 
Rapidgame7's Avatar
Default

Updated to 1.1.
Spoiler: Changes
- Small animation when you receive points when stepping on land
-- Also plays a sound effect depending on the chain amount at the moment
- Renamed "Chain:" to "Chains:"
- "chaos_enemies", when used with no arguments, talks about an argument named "default". It does not exist, so it was renamed.
-- Also it talks about "Total" when it should be "total". Also renamed.
- And a bunch of other things that I forgot to write down
__________________
Quote:
<Steel Titanium> so many eggman laughs
<Rapidgame7> hehehe HEHE HEhEhe
<Rapidgame7> AAAAAUUUUGGGGH
Rapidgame7 is offline   Reply With Quote
Old 09-24-2016   #3
Boinciel
ヒトデパンと奇妙なジャム
Developer
 
Boinciel's Avatar
Default

Welcome to Releases!
__________________
I'm deleting WOW + FURYHUNTER your not int his BLAPCK robo ass memes because that was a bad pun MonsterIestyn

hubjim
Boinciel is offline   Reply With Quote
Old 09-24-2016   #4
Rapidgame7
pressure pressure pressure
 
Rapidgame7's Avatar
Default

I've just included a little .txt file in case someone wants to quickly setup Chaos without going command to command and changing all values.
Only execute it with "exec chaos.txt" and play!
__________________
Quote:
<Steel Titanium> so many eggman laughs
<Rapidgame7> hehehe HEHE HEhEhe
<Rapidgame7> AAAAAUUUUGGGGH
Rapidgame7 is offline   Reply With Quote
Old 09-24-2016   #5
Rapidgame7
pressure pressure pressure
 
Rapidgame7's Avatar
Default

Updated to 1.2.
Spoiler: Changes
- Emerald spawns now create boss fleeing points so bosses don't endlessly fly upwards.
- Egg Slimer now works! It will be forced into the pogo state.
- All bosses now give 1 chain per hit!
- Metal Sonic now gives 2 chain when hit in his pinch phase.
- Knuckles's chain will end if he begins to climb a wall.

...and 1.2.1.
Spoiler: Last minute changes
- A comment in the script now shows the current version.
- Added Brak Eggman!
__________________
Quote:
<Steel Titanium> so many eggman laughs
<Rapidgame7> hehehe HEHE HEhEhe
<Rapidgame7> AAAAAUUUUGGGGH

Last edited by Rapidgame7; 09-24-2016 at 07:49 AM. Reason: Added 1.2.1 info.
Rapidgame7 is offline   Reply With Quote
Old 09-24-2016   #6
MK.exe
aaaaaaaaahahahahaha
 
MK.exe's Avatar
Default

Nice take on chaos mode!
__________________
Done:
Hit a 180 Rail shot
First person to have a map in releases with Slopes
MK.exe is offline   Reply With Quote
Old 09-25-2016   #7
Timothy Cyan-Tail'sFan
forever alone~
 
Timothy Cyan-Tail'sFan's Avatar
Default

for a sec i though it was chaos mode from 2.0... I WAS SO WRONG
__________________
this is Marshi Boo speaking. yeah? oh i'm aware i'm a dick to people sometimes, so what?
Timothy Cyan-Tail'sFan is offline   Reply With Quote
Old 09-28-2016   #8
Rapidgame7
pressure pressure pressure
 
Rapidgame7's Avatar
Default

Updated to 1.4.
Spoiler: Changes
- Quality over quantity, correct?
- Made the changelog from now on 120% more readable!
- Changed: Max chain only changes if the new record was successful.
- Changed: Now using chaosMode.emeraldLocations instead of emeraldLocations.
- Changed: Now using MT_UNKNOWN (instead of MT_THOK) when no enemies can spawn in an enemy spawner.
- Updated: That little chaos.txt file has been updated!
- Added: HUD animation when a player loses their chain due to getting hit.
- Added: HUD animation when a player gets their score halved because of dying.
- Added: Sound effect when a player loses their chain.
- Added: Placeholder visual effect when an enemy spawns.
- Added: More enemies: AquaBuzz, Jet Jaw, Robo-Hood, Skim and Snailer!
- Added: Batch spawning! chaos_batchspawning
- Added: Now you can disable ringslinger during Chaos! chaos_ringslinger
- Fixed: Less errors when you load/activate Chaos during a game.
- Fixed typo: "ligering" to "liNgering"
- Fixed typo: Wrong number in one of the options for chaos_teammatchcompatibility.


I thought of making replies to this post about the 1.2.x and 1.3.x updates back then but it would have been too spammy.
__________________
Quote:
<Steel Titanium> so many eggman laughs
<Rapidgame7> hehehe HEHE HEhEhe
<Rapidgame7> AAAAAUUUUGGGGH
Rapidgame7 is offline   Reply With Quote
Old 10-04-2016   #9
Rapidgame7
pressure pressure pressure
 
Rapidgame7's Avatar
Default

Updated to 1.5.
I've added the Chaos enemy entrance fog thing!

Spoiler: Changes

1.5
- Added: Chaos enemy entrance fog, ported directly from SRB2 1.08!
-- I'm planning to edit it instead of being a direct rip, so it looks better.
- Changed: No more ".lua", it is now ".wad". Sorry!
- Changed: Placed the WAD inside a ZIP file along with chaos.txt.
- Fixed: Error with the "score halved" animation where it would not vibrate.
__________________
Quote:
<Steel Titanium> so many eggman laughs
<Rapidgame7> hehehe HEHE HEhEhe
<Rapidgame7> AAAAAUUUUGGGGH
Rapidgame7 is offline   Reply With Quote
Old 10-20-2016   #10
Rapidgame7
pressure pressure pressure
 
Rapidgame7's Avatar
Default

Updated to 1.6.
This version adds a way for modders and players alike to add custom enemies to the Chaos enemy rotation.
Except bosses. That's a bit complicated and it uses different checks.
Spoiler: More changes
- Added: Custom enemy support! Now any modder can make their enemies appear in Chaos!
-- Or you can add your favourite mod (with enemies), make a quick Lua script and add their enemies in Chaos!
- Added: CTF Support (I had to write less than 1 line and that's it kek)
- Added: In team gametypes, player names will now be colorized!
- Added: More hit messages, covering some objects thrown/left by dead enemies.
- Added: chaosdebug_about just in case anyone wants to read.
- Added: chaosdebug_hitdebug which should help with finding hit cases I didn't add for vanilla enemies, and for messages in custom enemies.
- Added: Small HUD animation where the "+100" counter above the chain text bounces a little when a badnik is defeated.
- Added: New enemy spawn sound effect.
- Changed: Instead of pre-set enemies, now the script comes with a pre-set but editable enemy table.
- Changed: The "player got hit/killed by" messages are also stored in a table, for flexibility.
- Changed: Instead of spamming the console, Chaos disables itself when enabled in a non-supported gametype.
- Changed: The "Player got a chain of X" now appears on chains larger than 5 instead of 6.
- Changed: Because of the previous change, some chain sound effect requeriments have been lowered.
- Changed: Debug commands will now have the prefix "chaosdebug".
- Changed: Renamed the WAD file to be easier to add.
__________________
Quote:
<Steel Titanium> so many eggman laughs
<Rapidgame7> hehehe HEHE HEhEhe
<Rapidgame7> AAAAAUUUUGGGGH
Rapidgame7 is offline   Reply With Quote
Old 11-11-2016   #11
Bluesfire
Since 2006
 
Bluesfire's Avatar
Default

Thank you for this! Was really hoping someone had done this.
__________________
'Member Final Demo 1.09.4?

I like memes.

https://www.youtube.com/user/BluesfireTV/
Bluesfire is offline   Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 03:44 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, vBulletin Solutions, Inc.