You are viewing a potentially older version of this package. View all versions.
muckers-GlacialElite-0.2.1 icon

GlacialElite

Some hostile mobs spawn as Glacial elites: 4x health, 2x damage, slowing hits, and an ice bomb on death. All players should install it.

By muckers
Date uploaded a day ago
Version 0.2.1
Download link muckers-GlacialElite-0.2.1.zip
Downloads 13
Dependency string muckers-GlacialElite-0.2.1

This mod requires the following mods to function

BepInEx-BepInExPack_Muck-5.4.1101 icon
BepInEx-BepInExPack_Muck

BepInEx pack for Muck. Preconfigured and ready to use.

Preferred version: 5.4.1101

README

Glacial Elite

Some ordinary hostile mobs spawn as Glacial elites.

A Glacial mob has 4× health and deals 2× damage. It is tinted icy blue. At the default damage multiplier, Muck treats it as a buff: it is larger, it shows the buff bar, the host drops 1.25× loot, and the kill counts toward the Steam BuffKills stat. A damage multiplier of 1 or less does not do those things. Its melee hit slows you on the ground for 1.5 seconds, and the edges of your screen frost over pale blue while you are slowed. When it dies it leaves a see-through blue sphere. Standing inside it tints your view pale blue. After 2 seconds that sphere bursts. If you are within 4 meters you take damage. On the ground your speed is clamped and you cannot jump for 1.5 seconds. A low clink plays and the frost on your screen edges grows stronger until you can move again. In the air you keep your momentum and can still steer. A player who is already standing still can creep, because the game adds a little force before it clamps speed. Shield drains before health, the same way a mob hit does. That hit path has been read in the Update 4 decompile and has not been confirmed in a match.

The health number is 4.03125× at the defaults. The extra 0.8% is a tag so the mod can recognize the mob after a save. The bomb's damage does not grow with the elite's damage multiplier. The default hit is 22. The host then applies the day's mob-damage multiplier and your armor, as for any mob hit, so on Normal it is 19 at day 0 and 116 at day 10, before armor. BombDamageCap (30) caps the value before that multiplier, not the damage you take.

On an Artifact of the Night Swarms night, mobs still roll Glacial. Swarms' health factor (0.5 by default) stacks with the 4×, so a Glacial mob has about 2× normal health that night. Everything else about it is the same. If you change Swarms' health factor to a value that is not a multiple of 1/16 (0.0625), such as 0.3, no mob becomes Glacial on Swarms nights.

With RoR2 Enemies installed, a mob it has converted (a Jellyfish or a Stone Titan, for example) is never Glacial. That mod stores the enemy type in the mob's health multiplier, and Glacial leaves that value alone so the type is not lost.

This is not a new powerup. It adds no item ids, so chest and shrine drops stay the same.

Bosses, guardians, and neutral animals do not spawn Glacial. Set IncludeNeutral if you want neutral animals included. Bosses and guardians stay excluded.

Multiplayer

All players should install this mod. A peer without it can still join, because the mod adds no packets and no ids. The players will not agree about which mobs are Glacial.

Every player in a lobby should use the same Spawn and Stats values. If they differ, health bars disagree. On launch the log prints Glacial config and a hash of those values. Every peer should print the same hash.

Slow, freeze, and the bomb are per player. Muck trusts the client that reports a hit, so each player's own config decides the debuffs they receive. Config is not copied to other players.

  • Modded host, vanilla client. The client sees a normal mob at normal size, with no buff bar, and takes normal melee damage. The host's health is about 4×, so the mob takes longer to kill. The client gets no slow and no bomb.
  • Vanilla host, modded client. The host's health is normal. The client's bar shows the tagged 4× value. That client takes 2× hits, the slow, and the bomb. The vanilla host still applies the bomb hit.
  • Both modded, same config. Both players pick the same mobs, and the health bars match. Each bomb hurts only the player who is standing in it.

Saves

MuckSaveGame loads mobs by calling the normal spawn path with the saved multipliers. A Glacial mob's saved pair carries a 1/64 tag, including one from a Swarms night. The mod sees that tag and puts the tint and the bomb back without scaling the mob again. If DamageFactor changed between the save and the load, the tag no longer matches and the mob is left as a plain buffed mob.

Config

BepInEx/config/evan.muck.glacialelite.cfg, created on first launch.

For a test, set Chance to 1. Every eligible mob is then Glacial.

Section Key Default Where the number comes from
Spawn Chance 0.1 Not from the wiki. RoR2 elites come from director credits, not a flat chance.
Spawn IncludeNeutral false Not from the wiki
Stats HealthFactor 4 RoR2 wiki, tier 1 elite health. The tag makes the effective value 4.03125
Stats DamageFactor 2 RoR2 wiki, tier 1 elite damage. Applied through mob.multiplier. Above 1 is Muck's buff, including 1.25× host loot and the Steam BuffKills stat. 1 or less is not a buff
Slow EnableSlow true Not from the wiki
Slow SlowSpeedFactor 0.2 RoR2 wiki, an 80% slow. Caps speed on the ground. Airborne movement is unchanged
Slow SlowSeconds 1.5 RoR2 wiki
Bomb EnableBomb true Not from the wiki
Bomb BombFuse 2 RoR2 wiki
Bomb BombRadius 4 Not from the wiki. The RoR2 wiki lists no radius
Bomb BombDamageFraction 1.5 RoR2 wiki, 150%
Bomb BombBaseDamage 15 Not from the RoR2 wiki. Goblin melee baseDamage from a pre-Update-4 asset rip
Bomb BombDamageCap 30 Not from the wiki. Applies before the day multiplier
Bomb FreezeSeconds 1.5 RoR2 wiki
Bomb FreezeSpeedFactor 0 RoR2 freeze, read as 0 ground speed. A still player can creep. Airborne momentum stays
Bomb FreezeBlocksJump true Not from the wiki
Bomb MaxLiveBombs 16 Not from the wiki
Visual TintStrength 0.6 Not from the wiki
Visual TintColor 0.55, 0.85, 1 Not from the wiki
Visual BombColor 0.35, 0.6, 0.9 Not from the wiki. Its alpha is ignored: the bomb draws at 0.35 alpha so you can see through it. Read when the first bomb builds its material. A later edit does not recolor bombs
Debug VerboseLogging false Not from the wiki. When on, the log names each Glacial mob id

What this version leaves out

  • Slow from arrows, thrown attacks, and bosses.
  • The bomb does not hurt mobs, does not chain, and does not freeze other players. Each player resolves their own body.
  • No freeze icon or particles. The sphere, the frost on your screen edges and the freeze clink are the only feedback.
  • Copying this config to other players. The log hash only shows a mismatch.
  • Mobs spawned by a MobZone. Those never go through MobSpawner.SpawnMob.
  • A mob that is both Blazing and Glacial. If both mods are installed, Blazing keeps the mob.

Credits

The Glacial elite idea is Hopoo Games' from Risk of Rain 2. This mod contains no assets from Risk of Rain 2 or Muck. The icon is original.

CHANGELOG

Changelog

0.3.0

  • The ice bomb is a ring of ice on the ground instead of a blue sphere. A low-poly ice formation, modelled and animated in Blender in Muck's flat-shaded style, marks it: a cluster of crystals bursts from the corpse, twelve crystal clusters crack out of a dark frost crust around the edge, and frost motes drift up inside. Under it, Muck's attack-warning projector (the same one the Chief's leap, the Guardian's slam and dragon fireballs use) washes the danger zone pale ice blue, so it follows hills. The crust follows the ground too, and its dark band and jagged cracks read on grass and on snow, and in grayscale.
  • The ice grows out from the corpse over 0.5 seconds with a crackle, and it cannot hurt until that wind-up and the fuse have both elapsed. From then until the burst it builds up with no pause, timed to BombFuse so it peaks exactly on the hit: the crystals swell and tremble harder and faster, the ground glow and the crust's crack rim pulse brighter on beats that come faster and faster, frost motes rise faster, and the hiss climbs in pitch and volume. On the burst every crystal pops and the glow flashes, then the ice cracks, tilts and sinks into the ground as chips fly off. A looping hiss plays while it is up, a sting plays when you step in, and a separate hit marks the burst. The freeze clink is unchanged.
  • The crystals come up at 40% of their size and grow steadily through the whole fuse, reaching full size on the hit. The dark crust covers the full radius from the start, so the area is marked the whole time. The crystals glow on the same beats as the crack rim, brighter and whiter until the pop. If the game's shader lacks emission, the colour shift alone still brightens them.
  • The hiss peaks at volume 0.29 and pitch 1.79, down from about 0.58 and 2.16, so it stays at least 6 dB under its old peak and does not clip in a full mix. It still rises all the way to the hit.
  • The bomb freezes you before it sends its hit to the host. On a solo host that send runs the host's whole damage path before it returns, so an error anywhere on it used to skip the freeze, the frost and the clink. An error there is now logged and the freeze still applies. Each freeze logs Glacial freeze for N s, from t=… to t=….
  • The developer README no longer calls the default bomb hit 22. The mod sends 22, and on Normal the host multiplies a mob hit by 0.9 on day 0 and truncates it, so it lands as 19 before armor, as this README already said.
  • Frost still rims the screen. An ice crystal with a dark outline sits in the corner while you are slowed or frozen, and it throbs while you are only slowed.
  • Visual.HighContrast (default on) widens the dark crust, makes the crystals 15% larger and thickens the icon's outline.
  • Visual.BombColor is gone. The ice uses a fixed icy palette. An old cfg line for it is ignored.
  • The ring lives in HazardTelegraph, so another mod can spawn the same mark. This version does not move any other mod onto it.

0.2.1

  • The ice bomb is a see-through blue sphere. It used Unity's legacy additive particle shader, which ignores the colour the mod set, so it most likely drew white, and a melee killer standing inside it had the screen washed white until the burst. It now uses Sprites/Default with BombColor at 0.35 alpha, so from inside the view is tinted pale blue and stays readable. BombColor's alpha is ignored.
  • Slow and freeze now show. The screen edges frost pale blue at alpha 0.3 while you are slowed and 0.6 while you are frozen, fading out over the last 0.25 s. A freeze starts with vanilla's armor clink pitched down to 0.6. Only the affected player sees and hears them.
  • The frost edges hide while a vanilla menu is open (pause, settings, map, inventory or a station, respawn totem, trader) and while you are dead. A bomb that kills you plays no clink: the clink waits for the host's answer to the bomb's hit, and plays only if you are still alive.

0.2.0

  • Glacial now rolls on Artifact of the Night Swarms nights. It accepts any spawn with multiplier 1 and a bossMultiplier that is a positive multiple of 1/16, and scales that bossMultiplier instead of replacing it. At the defaults a Swarms-night Glacial has 2.03125× normal health. In 0.1.0 no mob became Glacial on those nights. A Swarms HealthFactor that is not a multiple of 1/16 still blocks Glacial on Swarms nights.
  • A bossMultiplier off the 1/16 grid carries another mod's tag and is left alone. RoR2 Enemies stores its kind code as kind / 256 on top of a 1/16 multiple, so its converted mobs (Jellyfish and Stone Titan keep multiplier 1) are never Glacial and keep their code on every peer.
  • The save tag now works for any incoming bossMultiplier. The health part is rounded to the nearest 1/32 and the 1/64 tag is added, so a tagged value is always an odd multiple of 1/64. A saved Swarms-night Glacial is adopted on reload. A HealthFactor change between save and load no longer drops the Glacial state. A DamageFactor change still does. Tags saved by 0.1.0 are still adopted.
  • A tag can no longer equal a vanilla buff pair. In 0.1.0, DamageFactor 1.5 with HealthFactor 1.4765625 made every vanilla buff mob read as Glacial.
  • BombDamageCap is described as a cap before the host's day multiplier, which is what it always was. The docs give the bomb hit at day 0 and day 10.

0.1.0

  • First release. Some hostile mobs spawn as Glacial elites with more health, more damage, an icy tint, a slowing melee hit, and an ice bomb on death.
  • A fresh roll writes a 1/64 tag into bossMultiplier so a later spawn of the same multipliers is adopted instead of scaled again.
  • Melee already uses mob.multiplier, so the mod does not rescale hitboxes. The bomb uses a flat base and a cap. It does not stack on the elite damage multiplier.
  • A failed world-seed read promotes nobody. Tagged mobs are still adopted. The log prints a config hash at world start.
  • Slow and freeze apply to the local player. GetSpeedMultiplier replaces a null argument before a postfix runs, so the patch records that null first.