MicSnitch

v1.1.1·Updated 2026-05-15

Snitches on whoever is talking - quiet background filtered, loud shouters in red. Toggle with F8. Resolves real nicknames via PhotonView ID.

About this mod Author’s original text

Mic Snitch

Snitches on whoever is talking. Shows the nicknames of every player currently

transmitting voice, right on your screen — so the soundboard spammer on the loading

screen has nowhere to hide.

A working replacement for the old, deprecated See_who_is_talking mod, which stopped

showing names in current R.E.P.O. builds.

What you see

  • A list of currently-talking players in the upper-right corner.
  • Loud / shouting players — bold red, stay visible for 3 seconds. A sudden

shout always pops out, even when 10 other people are also on the mic.

  • Normal speech — soft yellow, fades after ~0.7s.
  • Quiet background noise is filtered out by amplitude — open-mic players who are

just breathing into the headset don't pollute the list.

  • Sorted with loud people on top.

Hotkey

  • F8 — toggle the overlay on/off. When hidden, a faint [F8] Mic Snitch hint

stays in the corner so you never forget the toggle.

Why

In R.E.P.O. voice is proximity-based in a level, but global on loading screens

and in the lobby — that's where someone always blasts a soundboard and you have no

idea who. The old mod hooked the per-player Speaker component to find out.

Problem: when other players run cosmetic mods (MoreHead & co.), their

SetupCosmeticsModdedRPC fails, the Speaker never gets created, and the old mod

sees nothing.

How it's fixed

Mic Snitch hooks RemoteVoiceLink.OnDecodedFrameFloatAction — the per-frame decoded

audio callback at the VoiceClient level, before the player init / Speaker step.

It fires for every remote voice that has a stream, including not-inited players.

From the decoded float samples it computes the peak amplitude, classifies the speaker

(quiet / normal / loud) and resolves the nickname through

PhotonNetwork.CurrentRoom.GetPlayer(actorNumber).NickName, which keeps working even

when a player's local object is broken by RPC errors.

Local mic state is read directly from LocalVoice.IsCurrentlyTransmitting, so your

own name shows when you talk too — works even alone in a lobby for testing.

Everything is resolved via reflection — if a future game patch renames a type, the

mod logs a warning and degrades gracefully instead of crashing.

Install

Use a mod manager (r2modman app) — it handles the BepInExPack

dependency. Manual install: drop MicSnitch.dll into BepInEx/plugins.

Credits

Concept inspired by the original See_who_is_talking by xiaolei. Rebuilt from scratch.

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. 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.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. 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.

Dependencies

Install these first, or the mod will not work:

BepInEx-BepInExPack

File & checksum

Filename
MicSnitch-1.1.1.zip
File size
92.2 KiB