unia-NoDynamitePlayerDamage icon

NoDynamitePlayerDamage

Re-implements the old speedrunning behaviour where dynamite deals no damage to players. Fish still take full damage. Host-only, nobody else needs the mod. Built with the aid of Claude Opus 5.

By unia
Last updated 3 hours ago
Total downloads 72
Total rating 0 
Categories Mods
Dependency string unia-NoDynamitePlayerDamage-1.0.0
Dependants 0 other packages depend on this package

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

README

No Dynamite Player Damage

Dynamite no longer damages players. Fish, creatures and everything else take full damage exactly as before.

This re-implements the behaviour speedrunners relied on in older versions of the game, where dynamite could be used freely around your own character without killing you. A more recent patch made explosions hurt players, which took that option away — this mod puts it back.

Only the lobby host needs this mod. Explosion damage in How to Fish is server-authoritative: the host decides who gets hurt and broadcasts it to everyone. This mod stops the host from ever sending that message, so no player in the lobby takes dynamite damage regardless of what any of them have installed.

What it changes

  • Dynamite (and any lit or thrown explosive item) deals zero damage to players
  • Fish and creatures are completely untouched — they take full explosion damage and still die as normal
  • Every other damage source is untouched: melee, fall damage, bites, drowning
  • Optionally covers the Bowhead Whale landing explosion (off by default)

Worth knowing: turning off friendly fire in the server settings does not stop this. The game's friendly-fire check only blocks damage from other players — damage you deal to yourself passes straight through it. That is why dynamite could still kill you with friendly fire disabled, and it is the specific case this mod closes.

Side effect

Blocking the damage also removes the knockback that dynamite applies to players. In the game's code the explosion force is delivered as part of the same damage call and is skipped entirely when damage is zero, so there is no way to keep the launch while removing the damage from the host side alone. Fish and physics objects are still thrown around normally.

Configuration

A config file is generated at BepInEx/config/elliott.howtofish.nodynamiteplayerdamage.cfg after the first launch.

Setting Default Effect
BlockDynamitePlayerDamage true Dynamite deals no damage to players
BlockWhaleLandingPlayerDamage false Also block player damage from the Bowhead Whale landing
LogBlockedHits false Log a line each time a hit is suppressed

How it works

The mod raises a counter around Explosive.ServerExplode and, while that counter is raised, a Harmony prefix on Server.HitPlayer returns false so the damage RPC is never sent. Fish damage travels through Server.HitCreature, a completely separate call, so it is never affected. Because the suppression is scoped to the explosion call itself, no other damage source can be caught by it.

Compatibility

  • Requires BepInEx 5 (BepInExPack 5.4.2305)
  • No known conflicts; it patches two methods and touches nothing else
  • Install on the host only, though it is harmless for clients to have it

Credits

Built with the aid of Claude Opus 5, which decompiled the game assembly, traced the explosion damage path, and wrote the Harmony patch.