-
Notifications
You must be signed in to change notification settings - Fork 1
Sounds Guidelines
This page covers the current BLU-compatible workflow for:
- building a separate addon that registers a sound pack with BLU
- creating a sound with
low,medium, andhighvolume variants - adding personal custom files without writing your own addon
The old edit BLU files directly workflow is no longer the recommended path.
BLU supports two different integration styles:
-
Full BLU-compatible sound pack
- best option for addon authors
- supports
_low,_med, and_highvariants - registers through
BLU:RegisterSoundPack(...)
-
Simple external bridge pack
- quickest option for a single file per sound
- registers through
BLU:RegisterExternalSoundPack(...) - does not use BLU's 3-variant volume switching
If you want a sound pack that behaves like BLU's built-in packs, use the first option.
Each BLU-compatible sound should use the same base name with three OGG files:
victory_low.ogg
victory_med.ogg
victory_high.ogg
Notes:
- BLU uses the
_med.oggfile as the registered base path. - When the player selects Low or High in BLU, it swaps to
_low.oggor_high.ogg. - For the cleanest compatibility, use
.oggfor these 3-variant pack sounds.
Recommended export target:
- mono or clean stereo source
- trimmed start/end silence
- consistent loudness across the three variants
- keep the same exact filename stem for all three files
Example volume workflow:
- Export your main version as
victory_med.ogg. - Export a quieter copy as
victory_low.ogg. - Export a louder copy as
victory_high.ogg.
Create a separate addon folder for your pack instead of editing BLU itself.
Interface/
\-- AddOns/
\-- MyBLUSoundPack/
|-- MyBLUSoundPack.toc
|-- MyBLUSoundPack.lua
\-- media/
\-- sounds/
|-- victory_low.ogg
|-- victory_med.ogg
|-- victory_high.ogg
|-- quest_low.ogg
|-- quest_med.ogg
\-- quest_high.ogg
Use BLU:RegisterSoundPack(...) when you want BLU to treat your pack like a native multi-volume pack.
## Interface: 120001
## Title: My BLU Sound Pack
## Author: You
## OptionalDeps: BLU
MyBLUSoundPack.lualocal frame = CreateFrame("Frame")
frame:RegisterEvent("PLAYER_LOGIN")
frame:SetScript("OnEvent", function()
local BLU = _G.BLU
if not BLU or type(BLU.RegisterSoundPack) ~= "function" then
return
end
BLU:RegisterSoundPack("my_blu_pack", "My BLU Pack", {
my_blu_pack_victory = {
name = "Victory",
file = "Interface\\AddOns\\MyBLUSoundPack\\media\\sounds\\victory_med.ogg",
category = "all",
source = "BLU",
},
my_blu_pack_quest = {
name = "Quest Reward",
file = "Interface\\AddOns\\MyBLUSoundPack\\media\\sounds\\quest_med.ogg",
category = "all",
source = "BLU",
},
my_blu_pack_level = {
name = "Level Up",
file = "Interface\\AddOns\\MyBLUSoundPack\\media\\sounds\\level_med.ogg",
category = "all",
source = "BLU",
},
})
if type(BLU.RefreshSoundPackUI) == "function" then
BLU.RefreshSoundPackUI()
end
end)Important details:
- Register the
_med.oggfile path, not_low.oggor_high.ogg. - Keep
source = "BLU"so BLU applies its built-in volume variant switching. -
category = "all"makes the sound show up for every supported BLU event. - Use your own unique sound IDs and pack ID to avoid collisions.
Use BLU:RegisterExternalSoundPack(...) if you only want to expose direct file paths.
local frame = CreateFrame("Frame")
frame:RegisterEvent("PLAYER_LOGIN")
frame:SetScript("OnEvent", function()
local BLU = _G.BLU
if not BLU or type(BLU.RegisterExternalSoundPack) ~= "function" then
return
end
BLU:RegisterExternalSoundPack("My Simple Pack", {
{ name = "Victory", path = "Interface\\AddOns\\MyBLUSoundPack\\media\\sounds\\victory_med.ogg" },
{ name = "Quest Reward", path = "Interface\\AddOns\\MyBLUSoundPack\\media\\sounds\\quest_med.ogg" },
{ name = "Level Up", path = "Interface\\AddOns\\MyBLUSoundPack\\media\\sounds\\level_med.ogg" },
})
end)Use this only when you want a simple bridge entry. BLU will play the file you register directly and will not swap between _low, _med, and _high for this API.
If you are not building an addon and just want your own files available in BLU, the recommended folder is:
Interface\AddOns\BLU\user\sounds\
BLU can also resolve custom files from these common locations:
Interface\AddOns\Interface\AddOns\sounds\Interface\AddOns\BLU\Interface\AddOns\BLU\sounds\Interface\AddOns\BLU\user\Interface\AddOns\BLU\user\sounds\Interface\AddOns\BLU\media\Interface\AddOns\BLU\media\sounds\
After placing the files:
- Open
/blu - Go to the
Soundstab - Use
Add Custom Sound - Enter
myfileormyfile.ogg
You can also use:
/blu addcustom myfile
/blu refresh
BLU will search the supported folders and store the resolved match in your profile.
After installing or updating your sound pack:
- Reload the UI with
/reload - Open
/blu - Check the sound dropdowns for your pack
- Test the sound at Low, Medium, and High
- If needed, run
/blu refreshand/blu rescan
If your pack does not appear:
- confirm BLU is loaded
- confirm your addon is enabled
- confirm the file paths start with
Interface\\AddOns\\ - confirm your filenames match exactly, including
_low,_med, and_high - confirm you registered the
_med.oggfile for full BLU-compatible packs
Use this for full BLU behavior:
BLU:RegisterSoundPack(...)Use this for simple direct-path bridge entries:
BLU:RegisterExternalSoundPack(...)Join the vibrant BLU community to ask questions, share ideas, and contribute to the project’s development.
- BLU Discussions: Connect with other BLU users, ask questions, and share your experiences.
- Report Issues: Found a bug or have a feature request? Report it in the Issues section.
If you find BLU helpful and want to support its continued development, you can contribute in several ways:
- Buy Me a Coffee: Show your appreciation and support the project with a small donation.
- Donate via CashApp: Another option to support BLU financially.
Follow the latest developments and updates to BLU by checking out our changelog and releases. Be sure to star the project on GitHub to show your support and receive notifications on new releases.
Thank you for being a part of the BLU community! This wiki is here to help you make the most of your experience with BLU. If you have any questions or suggestions, feel free to contribute to the discussions or contact the maintainers.