Chaos Mode 1.7

Status
Not open for further replies.

amperbee

thunderdome denizen
10/12/17: Updated to 1.7!
Introducing a new small score HUD and a map thing for custom maps!

I haven't got 1.7 screenshots/gifs yet, but most HUD related things are the same from 1.6 to 1.7.
I'll update this post as soon as I get some images. Sorry for the inconvenience!



Remember that old Chaos gamemode?
Chaos was one infamous gamemode that was removed after the 1.09 release of SRB2 due to poor reception.
But now, it is back, better than ever!

attachment.php
(1.6 screenshot)

1.6 showcase | 1.7 showcase



This version of Chaos plays as it was played back then:
Enemies spawn in their spawn points, and you destroy them for points, without dying in the process.
The goal? Get more points than your opponents!

Once you destroy a badnik, you will start a chain. For every consecutive enemy destroyed, your score will multiply!
If you touch the ground or start climbing a wall (without invincibility), your current chain will end and the accumulated points will be added to your score.
But if you get hit by an enemy during a chain, you will lose all these points you've been racking up!
If you die, you will not only lose your chain, but also half of your score.

This WAD was designed to be played in Match.
You can also play it on Team Match for, well, Team Chaos, or CTF if you find carrying flags too easy.
This doesn't work in other gamemodes.

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


There may be some commands that are not listed.

chaosmode <0|1>
Enables or disables Chaos mode.
You have to restart the map to enable Chaos, you cannot start it mid-game.

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 single enemy spawn.
This command changes it so the script will use multiple spawn points to spawn more than one enemy per spawning event.
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!

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

chaos_ringslinger <0|1>
Toggles ringslinger in Chaos.
Designed because the ringslinger CVar doesn't allow the server to disable it on Match.

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).

All commands that start with cme_
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 cme_ in the console, then hold CTRL and press TAB.

You can find some stuff about Chaos and how to use the new Chaos enemy entrance map thing under this spoiler block.
So you would like to start Chaos on your server!
Alright!
Make sure to check "chaos.txt". Feel free to modify it to suit your needs.

0) Load the WAD.
1) Start the server on a map for Chaos.
2) Type in console "exec chaos.txt" to load all the values.
3) Enjoy!

You can also change cme_ values and the spawn rate mid-game.

And that's pretty much it!
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 climbing a wall (or getting hit). This way you can multiply your score by A LOT!
As said above, every enemy you kill will grant you its value in points.
For this example, we are destroying blue Crawlas, whose value is 100 points.
If you start a chain, the first destroyed enemy on the chain will grant you 100 points, the second enemy will be worth twice as much (200 points), the third 300, and so on.
As your chain progresses, the value of each enemy in the chain will progressively increase in worth.
The formula would be [current chain]*[enemy value].

But these points aren't instantly granted! Once you land on the ground or you start climbing on a wall, and you are not invlnerable or super, those points that you accumulated will be added to your score.
If you get hit in the middle of a chain, you will lose it, along with all the points you accumulated.

Bosses work similarly to enemies, with the small exception that hitting them also grants points.

If you die, your score will be halved. Dying implies that you got hit, so you lose your chain too.
Looking to add support for Chaos to your maps?
You can use match emerald spawn point map things, for maps that work both on match and Chaos and have emeralds, but you would be missing on the custom features for maps dedicated to Chaos (or match and Chaos but no emeralds!).

This WAD adds a new map thing, Map Thing #666 (Chaos enemy entrance).
When plced directly, Chaos enemies will begin spawning from these entrances, as usual, with the same angle as the entrance.

Checking the ambush flag will mark the entrance as "floating", raising the entrance by 24 FRACUNITs upwards.
Checking the special flag will mark the entrance as "angleless", making enemies have a random angle when spawning on this entrance.

The flip flag does not flip the spawner yet.

Some error troubleshooting:
There are no entries in the enemy bowl!
This means that all cme_ values are zero, thus no enemies can spawn since none have any probability of doing so!
To fix this, set a cme_ value to non-zero.

There are no enemy spawn points!
The map/gametype you're on doesn't contain any valid spawn points.
Spawn points are created at match emerald spawn points or at Chaos enemy entrances.

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.
Full changelog:

1.7
> Quite interesting changes:
Added: Custom Chaos enemy spawn object. (ambush = float, special = angleless)
Added: Super characters will not have their chain broken when touching the floor.
Added: Destroying an enemy makes center text appear.
Added: Enemies now have a score value! Some are worth more than others.
Changed: Maximum enemy entries bumped to 100.
Changed: Map restart required to enable.
Changed: Hit messages are now transparent so chat becomes more readable.
Critical fix: Fixed game freezing when hitting a player while rolling, causing an infinite loop because of a faulty condition. APOLOGIES
Fix: Your chain is lost when you fall on a pit.
Removed: chaos_teammatchcompatibility is now unnecesary.
Removed: Bosses no longer provide extra chains on lower health. (Might provide higher chain SCORE in the future instead)
Removed: Custom enemy support. Sorry

> Less interesting(?) changes:
Added: If a hit/kill doesn't involve players and is not in the obituary list, it will print [set # #].
Added: Hit message for set 45, 44 (Inflictor is Egg Slimer's hitbox, source is Egg Slimer).
Added: Hit message for set 157, 15 (Turret laser, turret).
Changed: Rewrote a good chunk of code. wow
Changed: Rewrote LUA_CHO2.
Changed: Chain sound effects have lower requeriments.
Changed: Lowered quality of enemy spawn sound. Nobody will notice.
Changed: Something something MapLoad.
Changed: Chaos enemy spawning now use match emerald spawn map thing coordinates, removing the emerald object dependance.
Changed: The script now uses a different way to play with score. Hitting players is now legal.
Changed: This releases post should look better now.
Changed: Moved "Chains: #" a tad bit upwards, and made "+###" go under it.
Changed: Moved "Max chains" a bit to the right.
Fix: A debug command was printing an uninitialized "player" variable.
Fix: chaos_playerobituaries was not getting set.
Removed: Enemies no longer have a "bowl name". Kinda.
Removed: Certain HUD animation.

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!

For future versions
ToDo:
- Commands to change enemy score value
- Custom enemy support, again
- Support for other gamemodes
- Have the flip flag flip the enemy entrance
- Get more 1.7 screenies
- Get a logo?

ToDo?:
- Make better HUD
- Change enemy spawn sound
- Scale Chaos fog
- New Chaos Fog frames?
- Command to change max entries

Suggested
- Custom time limit
-- On time end, freeze everyone, overtime for players in chain
- Accelerate spawn rate over time

And there's more inside the WAD! Probably



Included in the .zip file you can find two text files, "chaos.txt" and "chaos2.txt". After loading Chaos mode and opening a server, execute one of these to quickly set up the game!
They will enable cheats, however. Feel free to edit them.

Also you can download a map pack with five old Chaos maps! (ChaosMaps.wad)
AGHmM2I.png




And now, everything aside, have fun with this mod! Enjoy!

Oh yeah, earrape warning when your chain is over 100. I didn't find a replacement sound. Thought the current one was cool.

Inspired by this SOC.
 

Attachments

  • srb20089.jpg
    srb20089.jpg
    212.7 KB · Views: 6,824
  • srb20090.jpg
    srb20090.jpg
    195.8 KB · Views: 845
  • srb20096.jpg
    srb20096.jpg
    156.7 KB · Views: 744
  • srb20097.jpg
    srb20097.jpg
    108.3 KB · Views: 835
  • srb20100.jpg
    srb20100.jpg
    123 KB · Views: 821
  • ChaosMode17.zip
    93.6 KB · Views: 804
  • ChaosMaps.zip
    111.3 KB · Views: 763
Last edited:
Updated to 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
 
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!
 
Updated to 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.
...and 1.2.1.
- A comment in the script now shows the current version.
- Added Brak Eggman!
 
Last edited:
Updated to 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.

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.
 
Updated to 1.5.
I've added the Chaos enemy entrance fog thing!

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.
 
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.
- 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.
 
It took me long enough but I went ahead and updated it to 1.7.

There were a lot of minor changes, you can find the changelog up there.

Among the important changes there is a critical fix for a bug I found, and the removal of custom enemy support.
Also there's a new map pack to go alongside it!

I still need to get some good 1.7 screenshots, but the old ones still show what Chaos is about, plus there are two showcase videos.
 
Last edited:
Gentlemen... chaos mode has returned. (We don't know for sure if chaos mode will be re-added in 2.2. It may not get announced, but we'll just wait & see for now.)
 
Chaos mode will not return in any future version of vanilla SRB2.
 
Status
Not open for further replies.

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

Back
Top