User:Clairebun/Chaos
This page is a public repository of gameplay and modding documentation for the Chaos Mode addon by CobaltBW. Please feel free to add on any currently missing information or improve the page's general formatting.
Modding
Map Things
Spawn Subtypes
Land - Spawns roaming ground-based objects such as Crawlas. These should be placed in open spaces that allow the spawned object plenty of room to move around.
Airborne - Spawns a flying or floating object, such as Buzzes, Spinbobert, and Flying Saucers. These should be placed low enough to the ground that the player is able to reach them; for a benchmark, the Z placement set is the lowest height that Spinbobert and Flying Saucers will hover at.
Underwater - Spawns an underwater enemy, such as Jet Jaw. Should be placed inside a water sector, at a height that the player can reach.
Water Surface - Spawns an object that interacts with liquid surfaces, such as Skim or Puma fireballs. Should be placed at or near the water level.
Ceiling - Spawns an object that interacts with the ceiling. Enemy ceiling spawns should always be placed under a relatively low ceiling. Most objects will automatically snap to the ceiling regardless of the mapthing's z placement.
Sniper - Spawns a ground-based object, typically a ranged type such as Robo-hood or a turret enemy. Unlike land spawns, sniper spawns are designed for enemies that do not require a lot of space to move around and prefer to be farther away from the action. The sides and corners of rooms and platforms tend to be ideal placements for these spawns.
Parameters
Angle - If a spawned object requires a fixed angle (such as Glaregoyle), this setting will determine the angle used.
Ambush flag - If this is checked, the spawned object will always spawn at a fixed angle.
Best Practices
- Be liberal with enemy spawnpoints! Remember that enemy counts will increase with the server difficulty setting. If you are not sure which enemy types to use, land and airborne are the most common and versatile.
- Try to ensure that target spawnpoints are evenly distributed across the map.
- Brak Eggman has the ability to teleport to any land enemy or land target spawn on the map. Be careful not to place any of these under a cramped space so that Brak is not crushed upon teleport.
- The first wave always spawns Eggplant Capsules, which require either a land, underwater, or sniper target spawn. As such, your map should always contain at least a few of any of those target spawn types.
- The map should typically contain 32 emerald spawns. These can be placed out in the open, hidden, or in hard to reach places, but they should always be accessible to every character.
- The map should typically contain 32 players spawns.
- Rings placed should be accessible to all characters, allowing players to score a perfect ring bonus. Ring monitors also count toward ring score.
- The number of rings that should be on the map will generally depend on the size of the map and its stage gimmicks, but a safe estimate is usually around 400. Note that maps with lots of rings will be easier to survive but more difficult to achieve the perfect bonus; stages with less rings will be more difficult to survive but easier to achieve the perfect bonus.
- It is usually ideal to have a variety of shield and powerup monitors scattered across the map (one of each type, for example), but the best monitor distribution can also depend on the map itself. For example, an underwater level may benefit from having several bubble shield monitors scattered across the map, while a fire/lava dense map may benefit from having multiple flame shields. Try to cater your shield and powerup placements around what would be useful to players.
Mapheader Info
Lua.ChaosFlower - Specifies the set of graphics and palettes to use for the HUD and for various ingame objects. See #Biomes for a list of valid arguments.
Lua.ChaosBiomeSet - Specifies the set of enemy/target/hazard spawning configurations to use for this map. See #BiomeSets for a list of valid arguments.
Lua.ChaosWaveSize - Controls the quantity of enemies and hazards that will regularly appear on the map. This also controls the amount of time to start each wave with; see this spreadsheet for a list of times according to wave size. Defaults to 3.
Lua.ChaosMaxWaves - The total number of waves the players must clear in order to complete the stage. Defaults to cvar chaos_maxwaves (8).
Lua.ChaosBossRate - The interval at which midboss and Eggman boss waves will appear; i.e. a rate of "4" will spawn midbosses on wave 4 and Eggman on wave 8. Defaults to the cvar chaos_bosswave (4).
Lua.ChaosTimeBonus - Extra time award when a target is destroyed. Defaults to the cvar chaos_bonustime
Music
Lua.Music2 - Music to play on waves after the midboss wave and before the Eggman boss wave. If undefined, defaults to the map's standard music.
Lua.MidBossMusic - Music to play on the midboss wave. If undefined, defaults to VSALT.
Lua.BossMusic - Music to play on the Eggman boss wave. If undefined, defaults to VSBOSS.
Dark Sky
Lua.NoDarkSky - If set to 1, disables the "dark sky" visual transformation.
Lua.NoDarkSkybox - If set to 1, removes the skybox during the "dark sky" event.
Lua.DarkWeather - If specified, changes the weather to the specified type during the "dark sky" event.
Lua.DarkSky1 - The first of four skynums to animate through during the "dark sky" event. Defaults to 12.
Lua.DarkSky2 - The second of four skynums to animate through during the "dark sky" event. Defaults to 18.
Lua.DarkSky3 - The third of four skynums to animate through during the "dark sky" event. Defaults to 12.
Lua.DarkSky4 - The last of four skynums to animate through during the "dark sky" event. The game will also remain on this skynum after the animation is complete. Defaults to 20.
Linedef Trigger Conditions
The following variables will execute on tagged linedefs depending on certain game conditions. Multiple tags can be assigned per variable. (e.g. Lua.FirstWaveLinedef = 100, 101, 102)
Lua.DarkSkyLinedef - Triggers during the "dark sky" event.
Lua.GameWinLinedef - Triggers when all waves have been successfully cleared.
Lua.GameLoseLinedef - Triggers when a game loss condition has been reached.
Pre-Wave Triggers
The following variables will execute on tagged linedefs before the start of certain waves. Please note that multiple conditions can trigger on the same wave depending on the conditions; the wave conditions have been listed below in the order that they are executed.
Lua.FirstWaveLinedef - Triggers before the start of the first wave.
Lua.AnyWaveLinedef - Triggers before the start of every wave.
Lua.OddWaveLinedef - Triggers before the start of every odd-numbered wave.
Lua.EvenWaveLinedef - Triggers before the start of every even-numbered wave.
Lua.FirstOfThreeLinedef - Triggers on the first of every three waves.
Lua.SecondOfThreeLinedef - Triggers on the second of every three waves.
Lua.ThirdOfThreeLinedef - Triggers on the last of every three waves.
Lua.FirstOfFourLinedef - Triggers on the first of every four waves.
Lua.SecondOfFourLinedef - Triggers on the second of every four waves.
Lua.ThirdOfFourLinedef - Triggers on the third of every four waves.
Lua.FourthOfFourLinedef - Triggers on the last of every four waves.
Lua.BossWaveLinedef - Triggers before the start of every Midboss and Eggman boss wave.
Lua.PostBossWaveLinedef - Triggers on the wave after a midboss/Eggman encounter.
Lua.FinalWaveLinedef - Triggers before the start of the final wave.
Linedef Trigger types
These can be executed with the Call Lua Function linedef.
CHAOSLUA SECRET - Causes a "Discovered a secret" message and sound effect to be displayed.
Biomes
Biomes serve two key roles: they determine the graphics and palettes used for various HUD elements and ingame objects, and they serve as groupings for spawnable enemy, target, and hazard types, allowing them to appear in maps configured to use certain #BiomeSets.
Type "biome" in console to bring up a list of biomes and their properties ingame.
neutral - The default biome type. Crucially, all biomesets allow the neutral biome objects to spawn, as this biome type contains all of the non-boss target types -- Eggplant Capsules, Lilypad Capsules, Flying Saucers, and Enemy Spawners. While mostly relegated to the standard target types, it also contains a few other general purpose enemies and hazards, such as the Eggman Monitor and the Red Crawla.
grass - Contains mostly Greenflower related objects, including the Egg Zapper boss. Also contains the Hive Elemental midboss object.
metal - Contains mostly Techno Hill and Egg Rock related objects (with few exceptions, such as Spincushion and Egg Slimer). This is currently the largest biome and houses a number of objects that are generic yet otherwise industrially themed, such as Buzzes, Jetty-Syn gunners, Crawla Commanders, and turrets. This objectset appears in most level biomesets due to the biome's general versatility.
water - Contains Deep Sea and Azure Temple related objects. Includes the Egg Marine boss. Designed for water environments.
medieval - Contains mostly Castle Eggman related objects, as well as the crushing spikeball hazard. Well suited for levels with a castle or otherwise medieval aesthetic.
sand - Contains Arid Canyon related objects. Suited for dry or sandy environments.
fire - Contains Red Volcano related objects. Suited for maps abundant in fire and/or lava.
snow - Contains Frozen Hillside related objects. Intended for objects that follow an ice/winter motif.
spooky - Contains Haunted Heights related objects (with the exception of Hangster, who resides in the cave biome). Intended for objects that follow a Halloween motif.
slime - Exclusively contains the Egg Slimer boss. Intended for objects that work well in THZ slime-related environments.
cave - Exclusively contains Hangster, the ceiling-hanging bat object, and the custom midboss Silver Claw. Designed for cave environments and maps with low ceilings.
amusement - Contains a few extraneous enemy and hazard types, such as bumpers and balloons. Intended for objects that align closely to a Spring Yard, Casino Night, or Carnival Night theme.
dark - Exclusively contains Brak Eggman. This biome's main purpose is to regulate the chances of Brak Eggman appearing as the final boss on certain maps.
BiomeSets
A BiomeSet is essentially a configuration for which Biomes are allowed to into the spawn queue, and with what probability. In other words, biomesets are responsible for controlling which object groups are likely to spawn on the map and which spawn groups are not allowed to spawn at all.
Type "biomeset" in console to bring up a list of biomesets and their respective properties ingame.
standard
greenflower
technohill
deepsea
castleeggman
aridcanyon
redvolcano
eggrock
frozenhillside
hauntedheights
aerialgarden
jadecoast
sunkenplant
icecave
themepark