AnnoyingSpeaker
The ship speaker blares fake commercials stitched from the game's own sounds. Each one is real noise that calls Eyeless Dogs - reach the speaker and hit [E] to cut it before they hear. No audio files
About this mod Author’s original text
ANNOYING SPEAKER
Language / Язык: English · Русский
ANNOYING SPEAKER
Author: Solo00n
The ship speaker becomes a corporate radio station you cannot escape — it blares fake commercials built from the game's own sounds, and every one of them is real noise that Eyeless Dogs come to investigate.
WHAT IT DOES
- Fake commercials — the speaker cuts in on a timer with an advert stitched together from real game sounds: advert music, terminal purchase confirmations, walkie static, boombox music.
- Emergency bulletins — alarms and company announcements, played out of context whenever a Bracken or a Nutcracker is alive inside the complex.
- Weather bulletins — the radiation and meteor warning tones, on moons that actually have weather.
- Jumpscare — a 5% chance any broadcast is replaced by one loud, existing, frightening game sound at full volume.
- Dogs hear it — a broadcast feeds the game's own noise system from the ship and keeps calling for as long as it is still playing.
- A window to stop it — nothing is heard for the first few seconds, so you can sprint to the speaker and cut the advert before any creature learns where you parked.
- They lose interest — once the speaker goes quiet, dogs loitering at the ship give up faster than vanilla and wander off instead of camping you.
- Louder screen ads — the vanilla on-screen advert, with its real 3D product model tied to real store discounts, shown on your own schedule instead of once per quota.
- Terminal control — speaker on / speaker off / speaker.
- No audio files — the mod ships no sound assets whatsoever.
HOW IT WORKS
- Every clip is a reference to an AudioClip the game already has loaded, resolved by reflection at runtime. Nothing is extracted, copied or redistributed, and the DLL stays a few dozen KB.
- Banks are declared in the config as Type.field tokens (for example HUDManager.advertMusic), so clips can be added or removed without recompiling. Both AudioClip and AudioClip fields work; unknown tokens are logged and skipped.
- Category roll per broadcast: jumpscare first and independently, then an emergency bulletin if a Bracken or Nutcracker is alive, then a weather bulletin if currentWeather is set, otherwise an advert. The advert is also the guaranteed fallback, so a quiet run is never silent.
- Playback runs through one cached AudioSource parented to the ship's own speakerAudioSource, copying its spatial settings — nothing is allocated per broadcast.
- Noise is emitted through the vanilla RoundManager.PlayAudibleNoise. It stays silent for NoiseDelaySeconds, then repeats every NoiseRepeatSeconds until the clip ends.
- The physical switch reuses the vanilla InteractTrigger already wired to StartOfRound.DisableShipSpeaker in the ship scene — no new networked object is spawned.
- Pressing [E] on the speaker skips the current advert; it does not switch the speaker off. That is the terminal's job.
Why dogs no longer camp the ship. Vanilla already fades a dog out: in state 1 it drops one point of suspicionLevel every 4s and returns to roaming at <= 1; in state 2 it drops one every 3s and falls back to state 1 at <= 8. A full climb-down takes roughly 40 seconds. The trap is DetectNoise: within 18 x NoiseLoudness metres it does not increment suspicion, it slams it back to 9 and re-enrages — so any noise repeating faster than the climb-down pins the dog there forever.
Three things prevent it: SustainedNoiseInterval stays above the climb-down, SustainedNoiseSkipIfDogNear refuses to keep calling a dog that already arrived, and FadeInterest drains suspicion faster once the speaker is quiet. A broadcast's own noise loop repeats far faster than that on purpose — it is safe because the loop dies with the music.
MULTIPLAYER (HOST-AUTHORITATIVE)
Both the host and all clients must install the mod. Only the host's settings matter — it owns the on/off state and picks every broadcast.
Sync: Unity Netcode named messages via CustomMessagingManager. No NetworkObject is registered and n
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.
Install these first, or the mod will not work: