AnnoyingSpeaker

版本 v1.0.0·更新於 2026-08-27

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

模組介紹 作者原文

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

安裝與使用 安裝:BepInEx 外掛

  1. 本站下載的壓縮包就是模組本體,通常是 BepInEx 外掛(解壓後得到 .dll 或外掛資料夾)。
  2. 建議流程:用社群模組管理器(如 r2modman)選中本遊戲後匯入該模組,管理器會自動裝好 BepInEx 前置並處理依賴。
  3. 手動流程:先在遊戲目錄裝好 BepInEx 載入器,再把解壓出的 .dll 或外掛資料夾放進 BepInEx/plugins/。
  4. 啟動遊戲,BepInEx 控制台會列印載入日誌;確認這個模組出現在日誌裡即為安裝成功。

帶「前置依賴」的模組需要一併安裝,否則不會載入。功能開關通常在遊戲內或外掛自帶的設定檔裡調整。

前置依賴

下面這些內容需要先安裝,否則該模組不會生效:

BepInEx-BepInExPack

檔案與校驗

檔案名稱
AnnoyingSpeaker-1.0.0.zip
檔案大小
38.2 KiB