Shadows of Doubt

Details

Last Updated
2 months ago
First Uploaded
2 months ago
Downloads
262
Likes
1
Size
145KB
Dependency string
Khundian-Shadows_of_Doubt_Tracker_Control-0.5.0
Dependants

Categories

Changelog

0.5.0

Initial public build focused on muting tracker toasts by location.

  • Added

    • Per‑location muting for tracker “Movement Alert” toasts.
    • In‑game Tracker Control UI (default hotkey: F8).
    • Optional suppression of related audio: nearby world one‑shots and 2D UI pings during a short window.
    • Automatic learning of location names from alerts; persistent list with filter, remove, mute/unmute all, reload, center.
  • 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

    • UI opens only while in‑game; closes in menus.
    • Uses Desktop Mode while open; unlocks mouse cursor; pauses/resumes gameplay; disables/enables movement & mouselook; restores crosshair and typing focus on close.
    • Pressing 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

    • Harmony patches:
      • 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

    • BepInEx 6 (Unity.IL2CPP). Windows paths shown; other OS layouts may differ with BepInEx.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.