Metal Gear Sounds (Updated Classic)

Remake of MGSSounds

File Details

MGSSounds-v1.5.0.zip

  • R
  • Oct 19, 2025
  • 511.12 KB
  • 48
  • 1.15.7
  • Classic

File Name

MGSSounds-v1.5.0.zip

Supported Versions

  • 1.15.7

Changelog

All notable changes to MGSSounds will be documented in this file.

[v1.5.0] - 2025-10-19

Added

  • Killing Blow Debounce Control: New "Limit Repeat" option for killing blow sound
    • Sub-checkbox under "Killing Blow Sound" in options panel
    • Prevents sound from playing more than once within configured delay period
    • Enabled by default to prevent sound spam during rapid kills
  • Configurable Delay Slider: New slider to adjust killing blow debounce delay
    • Range: 0 to 5 seconds in 0.5-second increments
    • Default: 2 seconds
    • Setting to 0 seconds disables debounce (instant repeat)
    • Displays formatted value (e.g., "0 sec (instant)", "1 sec", "2.5 sec")
    • Positioned as indented sub-option under "Limit Repeat" checkbox

Changed

  • Updated killing blow sound handler to use configurable delay instead of hardcoded 2 seconds
  • Enhanced options panel with slider helper function for future extensibility
  • Updated "Limit Repeat" tooltip to reference configurable delay

Technical

  • Added killingblow_limitrepeat saved variable (defaults to true)
  • Added killingblow_delay saved variable (defaults to 2 seconds)
  • Implemented debounce flag and timer system for killing blow sound
  • Created newSlider() helper function for creating UI sliders
  • Slider properly refreshes when options panel is reopened

[v1.4.0] - 2025-10-17

Added

  • Exit Combat Sound: New sound (mgsreturn.mp3) plays when player exits combat
    • Triggered by PLAYER_REGEN_ENABLED event
    • Toggle with /mgssounds exitcombat command
  • Eating/Drinking Sound: New sound (mgs-rations.mp3) plays when player eats or drinks
    • Triggered by UNIT_SPELLCAST_SUCCEEDED event for food/drink spells
    • Includes debounce logic to prevent duplicate sounds when eating and drinking simultaneously
    • 2-second cooldown prevents sound spam
    • Toggle with /mgssounds rations command
  • Killing Blow Sound: New sound (mgs-socom-silenced.mp3) plays when player gets a killing blow
    • Triggered by COMBAT_LOG_EVENT_UNFILTERED event (PARTY_KILL subevent)
    • Toggle with /mgssounds killingblow command

Changed

  • Updated help text to include new sound options
  • Options panel now displays 11 sound toggles (6 in left column, 5 in right column)
  • Added configuration options for all three new sounds in both global and character-specific settings

Technical

  • Registered PLAYER_REGEN_ENABLED, UNIT_SPELLCAST_SUCCEEDED, and COMBAT_LOG_EVENT_UNFILTERED events
  • Added debounce timer system for eating/drinking sound using C_Timer.NewTimer
  • Comprehensive food/drink spell ID list for Classic Era compatibility
  • Updated saved variables structure to include exitcombat, rations, and killingblow settings

[v1.3.3] - 2025-10-17

Fixed

  • Options Command Error: Fixed "attempt to call global 'InterfaceOptionsFrame_OpenToCategory' (a nil value)" error when using /mgssounds options command
    • Removed deprecated InterfaceOptionsFrame_OpenToCategory API
    • Updated to use Settings.OpenToCategory API for Classic Era 1.15.4+
    • Simplified options panel registration to use Settings API directly

Technical

  • Replaced InterfaceOptionsFrame_OpenToCategory with Settings.OpenToCategory
  • Updated options panel registration to use Settings.RegisterCanvasLayoutCategory
  • Removed legacy API fallbacks no longer needed for current Classic Era version

[v1.3.2] - 2025-10-17

Fixed

  • Event Handler Error: Fixed "attempt to index global 'MGSSounds_Vars' (a nil value)" error that occurred when game events fired before addon initialization
    • Added nil check in OnEvent handler to prevent accessing uninitialized variables
    • ADDON_LOADED event now prioritized to ensure proper initialization order
    • All other events safely ignored until addon is fully loaded
  • Audio Channel Dropdown Display: Fixed dropdown showing "Custom" instead of saved audio channel value
    • Corrected initialization order for dropdown menu
    • Added UIDropDownMenu_SetText to properly display selected value
    • Implemented refresh function to update dropdown when options panel is reopened
    • Dropdown now correctly displays saved channel (e.g., "SFX") on UI reload

Technical

  • Modified OnEvent handler to prioritize ADDON_LOADED and check for nil MGSSounds_Vars
  • Updated dropdown initialization sequence: Initialize → SetSelectedValue → SetText
  • Added dropdown.refresh() method for dynamic UI updates
  • Stored dropdown reference in panel for refresh capability

[v1.3.1] - 2025-10-17

Fixed

  • Slash Command Error: Fixed "attempt to index global 'MGSSounds_Vars' (a nil value)" error when using slash commands before addon fully loads
    • Added safety check in Command function to ensure variables are initialized
    • Users now receive a friendly message if commands are used too early
  • Options Panel Disappearing: Fixed intermittent issue where options panel would not appear in Interface Options after UI reload
    • Implemented single-creation guarantee using optionsPanelCreated flag
    • Added automatic state refresh when panel is reopened
    • Panel now properly persists across UI reloads

Technical

  • Added initialization check at start of Command function
  • Implemented optionsPanelCreated flag to prevent duplicate panel creation
  • Added UI element references (masterToggle, scopeToggle, soundToggles) for dynamic updates
  • Panel now refreshes checkbox states on each show event

[v1.3.0] - 2025-10-17

Added

  • Hybrid Settings System: Choose between account-wide or character-specific settings
  • New /mgssounds scope command to toggle between account-wide and character-specific settings
  • New /mgssounds channel [channel] command to set audio channel (Master, Music, SFX, Ambience, Dialog)
  • New /mgssounds debug command to toggle debug output
  • New /mgssounds config command to open options panel
  • Options panel with graphical interface for all settings
  • "Use Character-Specific Settings" checkbox in options panel
  • "Reload UI" button that appears when scope setting is changed
  • Audio channel dropdown selector in options panel
  • Two-column layout for sound toggle checkboxes in options panel

Changed

  • Settings now use dual saved variables system:
    • MGSSounds_GlobalVars for account-wide settings
    • MGSSounds_CharVars for character-specific settings
    • MGSSounds_Vars automatically points to the active settings table
  • Updated help text to include new commands
  • Improved user feedback messages for all commands

Technical

  • Added useCharacterSettings flag in global variables to control settings scope
  • Implemented smart pointer system that switches between settings tables based on user preference
  • Options panel uses lazy initialization pattern (only creates UI on first show)
  • Backward compatible with existing installations (defaults to account-wide settings)

[v1.2.1] - Previous Release

Features

  • Combat sound (Metal Gear Solid alert)
  • Death sound
  • Trade request sound
  • Trade window sound
  • Trade cancel sound
  • Loot window sound
  • Loot collection sound
  • Whisper sound
  • Individual toggle commands for each sound
  • Master disable toggle
  • Per-character saved variables