Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
MicSnitch
Snitches on whoever is talking - quiet background filtered, loud shouters in red. Toggle with F8. Resolves real nicknames via PhotonView ID.
By efmeow
CHANGELOG
Changelog
1.1.1
- Fixed nickname resolution. Some players were showing as
Player 9/Player 23instead of their real nicknames. The voice subsystem uses a separate Photon room with its own actor numbering, so feeding the voice playerId straight intoRoom.GetPlayer()resolves the wrong player (or no one). - The fix reads the PhotonView ID that PUN packs into
VoiceInfo.UserData(this is the same hintPunVoiceClient.InstantiateSpeakerForRemoteVoiceuses to link a Speaker to a player), and derives the real game ActorNumber from it (PUN's standardviewID = actorNumber * 1000 + viewNumberlayout). Falls back to the voice playerId only if UserData is missing.
1.1.0
- Loudness filter: quiet background noise (passing the open-mic threshold but contributing nothing) no longer pollutes the list. Only real speech registers.
- Loud shouters in red: anyone speaking above the loud threshold is highlighted in bold red and stays visible for 3 seconds, so a sudden shout pops out from the always-on chatter.
- F8 toggles the overlay. A faint
[F8] Mic Snitchhint stays in the corner when hidden, so the hotkey is never forgotten. - Sort order: loud speakers on top (most recent first), then normal-volume speakers below.
- Smaller, semi-transparent text — readable but not in your face when 10 people are on a loading screen.
- Internal: dropped the redundant
Speaker.OnAudioFrame/VoiceClient.onFrame/Transport.onVoiceFrameEventhooks; everything now flows throughRemoteVoiceLink.OnDecodedFrameFloatActionwhich fires for every decoded voice (init-broken or not) and gives access to the audio samples for the loudness analysis.
1.0.0
- Initial release.
- Shows nicknames of currently-talking players in the upper-right corner.
- Hooks
LoadBalancingTransport.onVoiceFrameEventso detection works even when other players' cosmetic mods breakSpeakerinitialization. - Local mic detection via
LocalVoice.IsCurrentlyTransmitting— shows your own name too. - All game/Photon types resolved via reflection for forward-compatibility.