You are viewing a potentially older version of this package. View all versions.
matsu-RepoMutantEnemies-0.4.2 icon

RepoMutantEnemies

Rare mutated enemy variants: Boomday Boy (recurring bomber w/ chain-exploding balloons) and Poltergeist (mutated Mentalist: a zero-G field floats your loot, then hurls it at you). Host-authoritative; chance scales with level.

By matsu
Date uploaded 2 days ago
Version 0.4.2
Download link matsu-RepoMutantEnemies-0.4.2.zip
Downloads 79
Dependency string matsu-RepoMutantEnemies-0.4.2

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2305 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2305
Zehs-REPOLib-4.2.0 icon
Zehs-REPOLib

Library for adding content to R.E.P.O.

Preferred version: 4.2.0

README

REPO Mutant Enemies

Rarely, a vanilla R.E.P.O. enemy spawns mutated — it keeps the base enemy's model but gains an orange mutation aura and a new, nastier ability. Host-side. Work in progress.

Mutants

  • Boomday Boy (mutated Birthday Boy): a tougher Birthday Boy that periodically detonates a blast when players get close — and survives it, re-arming after a cooldown. When you finally kill it, it sets off a bigger blast and chain-explodes every balloon it has placed. Its balloons are mutated orange as a warning.
  • Poltergeist (mutated Mentalist): its anti-gravity power runs wild. It projects a persistent zero-G field that makes nearby loot, props and the cart float, and it periodically hurls a floating object at a player — your own valuables become weapons (and can shatter on impact).

How it works

  • On spawn, a vanilla enemy has a chance to mutate. The chance scales with the level (default +1% per level, e.g. level 1 = 1%, level 10 = 10%, capped).
  • Host-authoritative: only the host drives mutations. Damage is dealt through the game's networked damage, so it affects everyone — the mod works even if only the host installs it. (The aura light and explosion visuals are shown on the host's screen only.)
  • Reuses the game's own explosion effect and sound, so no custom prefabs are added over the network.

Config & debug

BepInEx/config/com.matsu.repomutations.cfg

  • Mutation / ChancePerLevel, MaxChance
  • Per-mutant tuning (health, damage, cooldowns, ranges)
  • Debug spawn keys (host only): F9 = Boomday Boy, F10 = Poltergeist

REPO Mutant Enemies(日本語)

R.E.P.O. のバニラ敵が、まれに突然変異してスポーンします。見た目はベース敵のモデルのままですが、 オレンジの変異オーラをまとい、より厄介な新しい能力を得ます。ホスト側処理。開発中。

変異個体

  • Boomday Boy(突然変異した Birthday Boy): 通常より頑丈な Birthday Boy。プレイヤーが近づくと周期的に 爆発し、しかも自分は生き残ってクールダウン後にまた爆発する再発型です。倒すと、より大きな爆発とともに 設置した風船が全部連鎖爆発します。風船は警告としてオレンジ色に変異します。
  • Poltergeist(突然変異した Mentalist/メンタリスト): 反重力の力が暴走。周囲に持続する無重力 フィールドを張り、近くの宝・小物・カートをふわふわ浮かせ、周期的に浮いたオブジェクトをプレイヤーに ブン投げます。自分の宝が凶器になり、投げられた宝は割れることも。

仕組み

  • スポーン時、バニラ敵が一定確率で突然変異します。確率はレベルに応じて上昇(既定でレベル×1%。 例: レベル1で1%、レベル10で10%、上限あり)。
  • ホスト権威: 突然変異の処理はホストのみが行います。ダメージはゲームのネットワークダメージ経由なので 全員に効き、ホストだけ導入でも成立します(オーラの光や爆発の見た目はホスト画面のみ)。
  • 爆発はゲーム既存のエフェクト/効果音を流用し、ネットワークに独自プレハブを追加しません。

設定・デバッグ

BepInEx/config/com.matsu.repomutations.cfg

  • Mutation / ChancePerLevelMaxChance
  • 各変異個体の調整(HP・ダメージ・クールダウン・範囲)
  • デバッグ召喚キー(ホストのみ): F9 = Boomday Boy、F10 = Poltergeist

CHANGELOG

Changelog

0.9.3

  • Fixed: Boomday Boy balloons not exploding when physically touched/punched. Vanilla's own balloon pop handler (CheckForPoppedBalloonsRemoveBalloon) runs before our distance-based check, silently removing the balloon before the explosion could trigger. Now intercepted via a Harmony Prefix on RemoveBalloon: any Boomday Boy balloon that gets popped also detonates.

0.9.2

  • Fixed: Mutation aura/glow only visible on host. The mutation component was attached during EnemyParent.Spawn when Photon ViewID is still 0, causing the deterministic roll to disagree between clients — only the host's copy would mutate. Fixed by switching to SpawnRPC which fires after ViewID is assigned, so all clients always agree.
  • Fixed: Deadeye (mutated Huntsman) Photon Blaster beam dealt no damage to non-host players. The beam's HurtCollider was incorrectly disabled on non-host clients. REPO's damage system is victim-authoritative (IsMine check inside HurtCollider.PlayerHurt) — each client must have its own active collider to register damage on its own player. Restored for all clients. Also fixed: beam could stop firing permanently after the first shot (_activeBeam null-check bug).
  • Fixed: Boomday Boy explosions (proximity blast, death blast, balloon chain, balloon contact) dealt no damage to non-host players. All four explosion paths now broadcast via [PunRPC] on the enemy's PhotonView so every client spawns the explosion locally. Victim-authoritative HurtCollider prevents double damage automatically.
  • Confirmed: Fenrir countdown display runs on every client independently (state is RPC-synced by vanilla EnemyElsa). No fix needed.
  • Confirmed: Meltdown Crew 3 heads fully synced — extra heads are Photon network objects (SpawnNetworkPrefab) and their explosions use [PunRPC] ExplodeRPC. No fix needed.
  • Stronger mutation auras — default glow intensity 4.5 → 12, light range 3.7 m → 6 m. Adjustable in BepInEx config.

0.9.1

  • Fixed mutations happening far too often — enemies could all end up mutated even on early levels, ignoring the configured chance. Mutation odds now work as intended.
  • New MaxChance cap (default 25% per enemy type) so the per-level scaling can't run away to a near-guaranteed mutation on deep runs. Raise it to 1 for the old behaviour, or lower it to make mutants rarer.

0.9.0

  • Three new mutants:
    • Deadeye (mutated Huntsman) — shoots the players' own Photon Blaster: a sustained laser beam.
    • Hivemind (mutated Gnome) — multiplies over time. One gnome becomes two, becomes four...
    • Fenrir (mutated Elsa) — the dog freezes and a countdown appears over its head when it spots you; when it hits zero it transforms and hunts as normal. Just enough time to run. Petting won't save you.
  • Mutants now show their name when you grab one (e.g. "Fenrir", "Boomday Boy").
  • Mutation chance reworked: now a flat 2.5% per level with no upper cap (was 1% + a pity system), so deeper runs get much wilder.
  • Brighter auras — mutants now glow more strongly so they're easier to spot.
  • Fix: Deathgaze's beam no longer gets blocked when the Peeper is mounted on the ceiling.

0.8.0

  • Auras are now actually visible — the coloured mutation aura is a proper light now, so you can spot a mutant at a glance (even the otherwise-invisible Snatcher).
  • Meltdown Crew now lobs three heads at once (normal / sluggish / frantic speed) instead of one at a time — fully synced for everyone.
  • Poltergeist — its zero-gravity field range is now shown, its thrown objects hurt players properly again, and it no longer damages/stuns itself with its own throws. Field range trimmed a little.
  • Boomday Boy — its blasts deal damage again, no longer knock/hurt itself, and it turns hostile and chases you after it goes off.
  • Deathgaze stare time increased a bit, and its beam no longer gets blocked by the Peeper itself.

0.7.0

  • New mutant: Deathgaze (mutated Peeper). Don't let it hold you in its stare for too long.

0.6.0

  • Two new mutants:
    • Meltdown Crew (mutated Cleanup Crew, toxic-green aura): instead of lobbing one bomb-head, it fires a 3-shot volley — normal speed, then a sluggish half-speed head, then a frantic double-speed head.
    • Snatcher (mutated Hidden, violet aura): instead of slowly dragging a grabbed player far away on foot, it instantly teleports them to a random spot on the map (verified to be solid ground, never a pit) and hurts them the moment it grabs.
  • Mutation chance reworked into a pity system: chance is now level% + pity, where pity grows by that level's own level% for every level a given mutation type fails to appear, and resets to 0 the moment it does — so a long dry streak makes the next appearance increasingly likely, independently per mutant type.
  • Sticky per-individual mutation: once a specific enemy mutates, it stays mutated through every despawn/respawn cycle within the same level (previously it could theoretically re-roll). Verified this also works correctly with two enemies of the same type alive at once, one mutated and one not.
  • New jacket artwork.

0.5.0

  • Everyone must install: mutation attachment now happens independently on every client (a deterministic per-enemy roll), so mutation auras and visuals render correctly for all players, not just the host.
  • Mutation auras recolored: replaced the point-light aura with a Fresnel rim-glow on the enemy's own model (Boomday Boy = orange, Poltergeist = light blue), visible to every client.
  • Real explosions: Boomday Boy's blasts now use the game's actual explosion (damage, knockback, and sound), replacing the old fixed-damage/VFX-only approach.
  • Balloon rules overhauled:
    • A player touching a balloon now explodes only that single balloon — no more chain reaction on touch.
    • An enemy touching a balloon just pops it harmlessly.
    • Death/recurring-blast chain reactions now detonate balloons in the order they were placed, one every 0.1 seconds, and this fix also makes the touch-explosion actually trigger reliably.
    • Multiple Boomday Boys now correctly track only their own balloons.
  • Slightly reduced Boomday Boy's explosion damage.
  • Poltergeist rework: removed the indiscriminate telekinetic damage entirely. Thrown valuables now use the same throw physics as the game's own loot-throwing enemy — the object's own impact deals the damage, so there's no more artificial or unavoidable hit.
  • Mutant health multiplier (2x by default) now reliably applies to the enemy's current health, not just its maximum.

0.4.2

  • Rebalanced Boomday Boy explosion damage and mutation chance scaling (level x 1% by default).

0.4.0

  • Added Poltergeist (mutated Mentalist): persistent zero-G field + telekinetic barrage.

0.1.0

  • Initial release. Boomday Boy (mutated Birthday Boy): recurring bomber with chain-exploding balloons.