You are viewing a potentially older version of this package. View all versions.
watchoutbro-WatchOutBro-1.0.0 icon

WatchOutBro

Annoying cat warns you when an enemy is near. That is the entire mod.

Date uploaded 5 months ago
Version 1.0.0
Download link watchoutbro-WatchOutBro-1.0.0.zip
Downloads 545
Dependency string watchoutbro-WatchOutBro-1.0.0

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

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

Preferred version: 5.4.2100

README

WatchOutBro

A gag mod. When an enemy is within ~15 metres of you, an extremely annoying overlay slaps onto your screen:

  • A photo of a cat in the bottom-left corner.
  • A speech bubble next to the cat that says "watch out bro...".
  • A yellow caution triangle in every corner of your screen.

That is the entire mod. There is no config. There is no point. Walk away and it goes away.

Install

Use r2modman or Gale. Click "Install with Mod Manager" and pick a profile.

Multiplayer

The overlay is purely client-side — only players who install the mod see the cat. Hosts and lobbies do not need to enforce it.

Credits

CHANGELOG

Changelog

3.0.1

Fixes

  • Game no longer freezes on level load. Diagnostic Harmony patches were dispatching pickup events on every fire — many "pickup"/"grab"/"collect" methods run every frame (e.g. Unity's OnTriggerEnter, IsPickupable()), which spammed the Goober counter into the thousands and spawned infinite duplicates. Diagnostic patches are now strictly log-only; narrowed keywords (pickup, shoot only); 50-patch cap per kind.
  • Mommy ASMR now plays on the main menu. SceneManager.activeSceneChanged doesn't fire for the scene already active when the plugin attaches — so the ambient loop never triggered on launch. Replaced with a 1Hz poll of SceneManager.GetActiveScene(); scene-name heuristic also recognises main.
  • Plugin compile fix. Config static class shadowed BaseUnityPlugin.Config (the inherited ConfigFile property) — renamed to ModConfig so dotnet build resolves correctly.

Goober — now actually wired

  • New PickupPatch.cs runs Harmony patches on a curated short list of likely method names (PhysGrabber.PickUpValuable, PhysGrabObject.OnGrab*, ValuableObject.OnPickUp, ItemAttributes.PickUp). Whichever resolves at runtime gets postfixed.
  • PickupRouter.OnRealPickup debounces same-instance pickups within a 0.6s window so multiple patched methods firing in one event count once.
  • Hard limits to keep the game playable even if the patch target is wrong:
    • 1s minimum gap between counted pickups
    • 500-pickup lifetime kill-switch with warning log
    • 100-duplicate hard cap per session (even with GooberDuplicate=true)
    • Self-duplicates excluded from re-counting
  • Clark trigger hard limits: 8s minimum gap between cameos, 50-fire lifetime cap.

Config defaults

  • GooberDuplicate default flipped to off — opt in once the pickup hook is verified working for your install.

3.0.0

Fixes

  • Per-enemy reactions actually trigger now. v2 substring-matched on the leaf GameObject name; spawned enemy components live on child objects so the parent prefab name was missed. v3 walks the entire transform-ancestor chain and matches against the joined string. Strips "(Clone)" suffix.
  • Diagnostic flag LogEnemyNames in BepInEx/config/watchoutbro.WatchOutBro.cfg dumps every distinct enemy's full ancestor chain + matched reaction key for tuning.

Features

  • Stacking overlays. Multiple enemies in range now show multiple stacked bubbles in the bottom-left (max 4), sorted by priority. Exclusive layouts (Huntsman shush, Wolters Kluwer modal) suppress the stack.
  • Voice + image drop-in folders. Drop OGG/WAV/MP3 into BepInEx/plugins/WatchOutBro/voices/ and PNG into BepInEx/plugins/WatchOutBro/images/ to override procedural placeholders. No rebuild needed.
  • Character cameos (overlay onto vanilla enemies/items, no new spawnable content):
    • Goobers — every valuable pickup increments a counter, plays goober_N.ogg (1..10) then goober_iquit.ogg, and spawns a visual duplicate of the same valuable at your feet (client-only, not net-synced).
    • Clark — picking up a high-value valuable (diamond / crown / jewel / gold / trophy / ruby / sapphire / emerald) flashes a Clark cameo and plays clark_pickup.ogg.
    • Mommy ASMR — ambient loop in menu / lobby / truck scenes. Drop mommy_asmr_loop.ogg to enable; otherwise silent.
    • Ulfric Stormcloak — random cameo on level load (5% chance, configurable).
    • Klonnku — re-skins the Gnome reaction.
    • Plonko — re-skins the Spewer reaction.
    • Dexter Morgan — re-skins the Chef reaction.
    • DIRCM (enemy) — re-skins the Trudge reaction with a nose-shaver icon.
    • DIRCM (weapon) — firing any gun flashes a cyan IR beam and plays dircm_fire.ogg (or a procedural whistle).
  • New procedural icons: NoseShaver, Beam. New procedural sound: IrBeam.
  • Pickup + gun-fire hooks use a diagnostic candidate-method scan; first launch logs which methods fired so the hook can be locked in a patch update if the heuristic missed.

Config

New BepInEx config keys in [Diagnostics], [Audio], [Gameplay] — see file in BepInEx/config/watchoutbro.WatchOutBro.cfg after first launch.

2.0.0

  • Per-enemy reactions: each enemy type now triggers its own overlay and message.
  • Wolters Kluwer compliance training modal once per level.
  • Procedural icons + sounds.

1.0.0

  • Initial release. Cat appears when enemy within 15 m.