


Initial public build focused on muting tracker toasts by location.
Added
F8).Configuration (BepInEx Khundian.SoD.TrackerControl.cfg)
Mute.EnablePerTrackerMute (bool, default true): master toggle.Mute.MuteTrackerNamePatterns (string): comma/semicolon list; case‑insensitive substring match; * accepted but treated as contains (e.g., City Hall* → City Hall).Mute.AudioMuteWindowMs (int, default 100): suppress nearby world SFX for this many ms after a mute.Mute.MuteUIPings (bool, default true): also suppress 2D UI pings during the mute window.UI.TrackerMuterToggleKey (string, default F8): UI toggle hotkey (KeyCode name).Mute.KnownTrackerLocations (string): internal, learned locations (semicolon‑separated).UX & Safety
Esc while the UI is open closes the UI and consumes the key to prevent the game menu from opening on the same press.Technical Notes
InterfaceController.Update: strips muted messages from notificationQueue and starts the audio mute window.InterfaceController.GameMessages() state machine: skips muted items by advancing the iterator.GameMessageController.OnEnable/Update: kill‑switch/render‑guard destroys late‑identified muted toasts; reflection used to avoid TMP dependency.AudioController.PlayWorldOneShot/Play2DSound: suppresses related audio during the mute window (radius ~25m for world SFX).Compatibility