Muck
Install with App

Details

Latest version
0.3.0
Last Updated
First Uploaded
Downloads
8
Likes
0
Size
188KB
Dependants

Categories

RoR2 Enemies

Some night spawns become Risk of Rain 2 enemies. A Goblin can become a Lemurian. A lil Dave can become a Jellyfish or a Lesser Wisp. A Big Chunk boss can become a Stone Titan.

The host decides every conversion and sends it in the game's own spawn packet. Install the mod on every player so the new bodies and names show up. A vanilla client can still join a modded host.

Multiplayer

Modded host, vanilla client. Spawns, health, projectiles, spikes, attack choices, and loot come from the host through the game's own packets. The vanilla client sees the base mob, with the converted numbers and attack choices. The new body, the nova, and the laser are drawn only on modded players.

Modded host, modded client. Both players see the new bodies. The nova and the laser damage only the local player on that machine.

Vanilla host, modded client. The mod does nothing. No spawn tag decodes, so nothing adopts. Shrine names stay on the vanilla text, because the client never adopts a tagged mob.

Config mismatch. Spawns follow the host. Damage numbers are compiled into the mod, so two modded players agree on them. The Stone Titan shrine label can differ, because each peer reads its own shrine settings. Compare the RoR2 Enemies config line in the two logs.

Packets. The mod adds no packet types. It uses MobSpawn, MobAttack, MobSpawnProjectile, PlayerHitMob, and the shrine chat line the game already sends.

What you see

Lemurian

The base mob is the Goblin.

A modded player sees a hunched purple lizard named Lemurian, with a cream belly, glowing orange eyes, an open red mouth, dark spines down its back and tail, and claws. It throws fireballs and bites. The bone club is hidden. The bite on a modded player is harder than the Goblin club.

A vanilla client sees a Goblin named Goblin. That client takes the club bite and the same fireballs. Health is the converted value on every machine.

Jellyfish

The base mob is lil Dave.

A modded player sees a hovering jellyfish named Jellyfish: a pale blue ribbed bell with a scalloped skirt, a white glowing core, and wavy tentacles. It glows for about a second and then bursts. The lil Dave bite stays hidden. A burst leaves no corpse.

A vanilla client sees a lil Dave named lil Dave, on the ground. That client sees the bite, then a ragdoll and a hit number. There is no burst on that client.

A self-exploded Jellyfish drops no loot and does not count as a kill. A player who kills it during the glow still gets the lil Dave coins.

Lesser Wisp

The roll starts as a lil Dave. The spawned mob is a Wyvern.

A modded player sees a floating bone-white mask with horns and dark eye holes in a body of orange flame, named Lesser Wisp. It hovers about 5.6 m above the ground below it. Each attack is three fireballs that converge on the target.

A vanilla client sees a Wyvern named Wyvern and the same three fireballs. Between position updates it moves at Wyvern speed while the host moves it slower, so it slides back.

Stone Titan

The base mob is Big Chunk.

A modded player sees a faceted stone colossus named Stone Titan, with rock shoulders, two big fists, glowing orange cracks and one red eye. The eye fires a laser. The slam throws spikes. The leap is the Big Chunk leap. The boss bar reads Stone Titan. A shrine that rolled Titan reads Challenge Stone Titan after this client has adopted a tagged mob in the session.

A vanilla client sees Big Chunk on the boss bar. The chat line can say summoned Stone Titan. That client sees a swipe during the laser. The spikes and the leap hit that client too. Between position updates it walks at Big Chunk speed.

Wave Run

With Wave Run installed, its rounds convert too. Round mobs follow the same rules as night spawns (Director), so Lemurians appear from round 2 and Jellyfish from round 3 at the defaults. A Big Chunk boss round can be a Stone Titan (BossNight), and Wave Run's banner and HUD then say STONE TITAN. Without Wave Run nothing changes.

Blazing Elite (0.2.0 and later) and Glacial Elite never take these enemies, so a Jellyfish's burst is never doubled.

Mob zones

Daytime MobZone mobs stay vanilla. MobZone.ServerSpawnEntity never calls ServerSpawnNewMob, so those spawns cannot carry these enemies.

Config

BepInEx/config/evan.muck.ror2enemies.cfg, created on first launch. The host decides which spawns convert. Hotkeys are host only, and they stay off until Debug.SpawnHotkeys is true. F6 is Lemurian, F7 is Jellyfish, F8 is Lesser Wisp, and F9 is Stone Titan.

Section Key Default Meaning
Lemurian Enabled true Host conversions of Goblins. A client with this off still shows a mob the host tagged.
Lemurian FirstDay 1 Earliest day that can convert a Goblin. Day 0 stays vanilla at the default.
Lemurian Chance 0.35 Share of eligible Goblin spawns.
Lemurian MaxAlive 6 Cap on live Lemurians. Past the cap, the Goblin still spawns.
Lemurian Sources Director, BattleTotem Night director and Battle Totems.
Jellyfish Enabled true Host conversions of lil Daves into Jellyfish. A client with this off still shows a tagged mob.
Jellyfish FirstDay 2 Earliest day that can convert a lil Dave into a Jellyfish.
Jellyfish Chance 0.25 Share of eligible lil Dave spawns.
Jellyfish MaxAlive 3 Cap on live Jellyfish. Past the cap, the lil Dave still spawns.
Jellyfish Sources Director, BattleTotem Night director and Battle Totems.
Jellyfish Hover 1 Metres the Jellyfish floats above lil Dave's walking height, 0 to 6. At 1 the bell is at head height. Cosmetic, applied by each modded player. Replaces 0.2.0's HoverOffset: a value you changed there carries over, the old 1.5 default does not.
LesserWisp Enabled true Host conversions of lil Daves into Lesser Wisps. A client with this off still shows a tagged mob.
LesserWisp FirstDay 3 Earliest day that can convert a lil Dave into a Lesser Wisp.
LesserWisp Chance 0.20 Share of eligible lil Dave spawns.
LesserWisp MaxAlive 4 Cap on live Lesser Wisps. Past the cap, the lil Dave still spawns.
LesserWisp Sources Director Night director only.
LesserWisp HoverHeight 5.6 Metres above the ground under the wisp. Cosmetic, applied by each modded player.
StoneTitan Enabled true Host conversions of Big Chunk bosses. A client with this off still shows a tagged mob and does not relabel shrines.
StoneTitan FirstDay 1 Earliest day for a Titan boss night and for the shrine label.
StoneTitan Chance 0.5 Share of Big Chunk boss nights.
StoneTitan ShrineChance 0.34 Seeded share of Big Chunk shrines labelled Stone Titan.
StoneTitan MaxAlive 1 Cap on live Stone Titans from boss nights. A labelled shrine still spawns its Titan. Past the night cap, the Big Chunk still spawns.
StoneTitan Sources BossNight, BossShrine Boss nights and boss shrines.
Cleanup VanillaGroundFx true Remove the Stone Golem and Big Chunk ground-slam effects 5 s after they spawn. Vanilla leaves them in the scene. Local only.
Debug VerboseLogging false One log line per conversion and one log line per adoption.
Debug SpawnHotkeys false Host only. F6 Lemurian, F7 Jellyfish, F8 Lesser Wisp, F9 Stone Titan.
Debug LogRigs false Log each rig's body height and joint positions on the first adoption.
Debug LogHover false Log where each Jellyfish and Lesser Wisp floats, once a second for its first 5 seconds: heights of the body, the ground, the parts and the collider, and how far the lowest part clears the ground.

A Titan shrine uses ShrineChance. StoneTitan.Chance applies to boss nights.

Credits

The icon and the four enemy models are original. The models were built in Blender for this mod. This mod contains no assets from Risk of Rain or Muck.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.