RoR2Enemies
Risk of Rain 2 enemies for Muck: Lemurian, Jellyfish, Lesser Wisp and the Stone Titan boss. Every player should install it. Vanilla clients can join.
By muckers
| Date uploaded | a day ago |
| Version | 0.3.0 |
| Download link | muckers-RoR2Enemies-0.3.0.zip |
| Downloads | 24 |
| Dependency string | muckers-RoR2Enemies-0.3.0 |
This mod requires the following mods to function
BepInEx-BepInExPack_Muck
BepInEx pack for Muck. Preconfigured and ready to use.
Preferred version: 5.4.1101README
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.
CHANGELOG
Changelog
0.3.0
- Wave Run support. Wave Run spawns its rounds outside the vanilla night loop, so no round mob or boss ever converted. Its round mobs now follow the night rules and its boss the boss-night rules, through an optional hook that only installs when Wave Run is present. Without Wave Run nothing changes.
- The Jellyfish floats lower, with its bell at head height during the glow.
Jellyfish.HoverOffset(default 1.5) is replaced byJellyfish.Hover(default 1). A value you set inHoverOffsetcarries over. The untouched 1.5 does not. A test runs the migration on a real BepInEx config file. - Blazing Elite 0.2.0 no longer takes these enemies, so a Jellyfish's burst is never doubled.
0.2.0
- New bodies for all four enemies, built in Blender in Muck's low-poly style: a hunched purple Lemurian with a cream belly, an open red mouth, glowing eyes and spiky back and tail; a ribbed pale blue Jellyfish with a scalloped skirt, a glowing core and wavy tentacles; a bone-white Lesser Wisp mask with horns in a body of layered flame; and a faceted Stone Titan with rock shoulders, two big fists, glowing cracks and one red eye. Each part still rides one bone of the vanilla mob, so the vanilla animations move it.
- The Lemurian holds its tail off the ground, the Jellyfish's side tentacles sway below the skirt instead of through it, and the Stone Titan's fists stay above the ground when its arms hang down.
- If a body's model data cannot be read, that enemy keeps the vanilla mob's look, and the log says why once.
- New
Jellyfish.HoverOffset(default 1.5, 0 to 6): how high the Jellyfish floats. Each modded player applies their own value. - New
Debug.LogHover: logs where each Jellyfish and Lesser Wisp floats for its first 5 seconds, to tune the hover.
0.1.1
The Fireball, Spike Attack and Coin lookups and the named loot rows work in the second game of a session. Muck wakes a new ItemManager on every Menu load, and from the second game of a session ItemManager.Instance is an object Unity has destroyed but vanilla keeps using. Unity's == null calls it null. The lookups returned early and loot rows were skipped as missing. It is now compared by reference.
0.1.0
- Lemurian, Jellyfish, Lesser Wisp, and Stone Titan. The host can turn some Goblins, lil Daves, and Big Chunk bosses into those enemies. A vanilla client can still join.