• Journey's End on PC - Find info here and here. Please report bugs and issues for PC 1.4 and 1.4.1 to Re-Logic here.
  • Journey's End on Mobile - Find info here. Report bugs for Mobile 1.4 to DR Studios at this link and give as much detail as possible.
  • 1.4 will bring many changes to the PC version. We strongly advise making plans to back up your worlds and players prior to updating your game. More details here.
  • Console and Switch - The latest news can be found here. To report a bug, please use this link.

Terraria Sound Suite - Customize all ingame sounds (and more)

direwolf420

Terrarian
Terraria Sound Suite


Download via Mod Browser ingame! Only available on version 0.11.5 of tModLoader (and above)!




This mod allows you to replace and modify ingame sounds however you like. It also comes with a 'deaf mode' which makes sounds visible in the world. (Almost) everything in this mod is configurable. Additionally, the mod is clientside only, so you can use it on servers without issues. I concider it an extension of Dust and Sound catalogue by Flashkirby99. Big credit goes out to @jopojelly for giving permission to use some useful coding snippets, and to @orian34 for testing and feedback.

Use cases include:
* Listening to ingame sounds
* Replacing the sound of a weapon, sounds of idle enemies, sound of tiles when mined, boss roar volume reduction etc.
* Disabling specific sounds from playing completely
* Making everything sound like ducks

Manual:
* A Sound is split into two numbers: A type and a style. The type is the primary thing that decides what the sound is and roughly where it originates from. A single type can have one to more than a hundred styles, though most sound types have only one style. The style decides what variation of the sound it is, or in a broader sense, a sound that is classified as this type
* A sound will have a specific volume and pitch aswell, those are self explanatory, but are limited in range
* See Notes below for more information, exceptions etc
* If you are ingame: go to the menu, then to 'Mod Configuration'. If you are in the main menu: go to the mod list, and click on the cog icon for this mod
* Click on one of the categories you wish to edit
* To add a new rule, click the '+'
* In the 'key' entry, click the empty icon that says 'nothing'
* Pick a thing you want the sound to replace of
* In the 'New Sound' entry, pick a sound type, its style, volume and pitch
* Pick a 'Held Item Constraint' that will only apply this sound when the player holds that item (Leave blank to always apply)
* Click on 'Play Sound' to play the current sound
* If you want to replace ALL sounds of a given type (Item, NPC), leave the 'key' blank
* If you want to mute a sound of the given key, simply set the sound type to 'None'
* To find out what numbers to use, check the 'Debug Settings'
Demonstrated by replacing the sound of an item
Timestamps: Item Sounds: 0:02
NPC Hit Sound: 0:28
Using Debug Mode: 0:56
General Sound: 1:36
Deaf Mode: 2:39
Play Sound: 3:14

Debug Mode:
Demonstration of the debug mode in the video
* Sounds are defined by a type and a style
* As sounds play, they will appear on the left in a list
* Left click on the number on the left to 'favorite' it
* Right click on the number on the left to replay the sound
* Favorited sounds don't vanish from the list, the limit can be increased
* 'Deaf' debug mode will show sounds ingame as an overlay, mouseover to 'see' the sound if you are in range of 20 tiles or have line of sight to it

* 'Additional Info' shows some more information about the sound, mostly useful for modders
* The Blacklist decides which sounds won't be shown on the debug feed (common sounds like menu clicks, running, etc)

Notes:
* You can disable a whole category by clicking 'Active', and individual sound rules by clicking 'Enabled'
* If you have a 'Nothing' key (the default when adding things in the first three categories) and it is in use, you can't click the '+'. I haven't found a sensible solution to this but make the default a real item instead that no one uses
* 'Something' rule take priority over 'Nothing' or 'All' rules (for example: you have a rule that replaces all sounds with a click, and then have an item rule, that item will have its specified sound, while everything else will make a click)
* If you specify a sound with the type 'None' (-1), the given key is muted. If the key itself (in All Sounds) is 'None', it will use any sound as the key
* Do NOT modify the 'Sound Path' thing that says 'Vanilla'. It is used to recover sounds from the saved config (especially for modded sounds)
* 'Sound Path' doesn't update if changing between vanilla/modded sounds. Refer to the text that shows up at the top of the green box (it updates properly)
* If you use a pitch close to the -1/1, you might get an error in the chat:
Code:
Silently Caught Exception: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: value
. It's because vanilla first applies a random pitch (usually between -0.1/0.1, sometimes as high as -0.7/0.5), and then applies the value you specify, leading to values below/above the limit. Experiment with a pitch value below that so you can mitigate this

About Debugging:
* You can't favorite the last remaining 'un-favorited' sound in the debug feed (that way it makes sure there are new sounds always coming in)
* The 'Tracked Sounds Count' decides how many sounds are collected until discarting old ones (both debug modes)
* The sound 'origin' is decided arbitrarily (read: hardcoded). Most sounds will show 'Unknown', some will show the item, npc, player, tile name of the thing if available

Deaf mode specifics:
* It generally shows an (x) you can mouse over and it will tell you the origin of a sound (if available)
* If the sound shows as '...', that means you need to get closer (about 20 tiles) to 'discover' it. Line of sight is often enough though (but not consistent)
* Sounds that are close to you are faded out so it won't clutter the screen near your player
* The sounds 'Waterfall' (34) and 'Lavafall' (35) are disabled from being used anywhere, because they are handled by the game in a different way
* Some sound styles are random even though they only accept one style (-1)
* Most sounds have only one style (-1), or just have [0 to x] amount of styles. This simple ones aren't listed below because they are self explanatory

Sound TypeStyle RangeComments
(14) ZombieMoan-1 to 20 and 2 are from 'Blood Zombie' and 'Sand Shark', -1 and 1 is 'Zombie'
(15) Roar0 to 40 boss roar, 1 worm digging, 2 high pitch scream, 3 unused, 4 lower pitch worm digging
(28) Mech0Clicking sound on tiles, even though it's only one style, it counts as 0, not -1
(32) Bird14 to 19Various bird sounds
(36) ForceRoar-1 to 2Same as (15) Roar, but accepts -1 (the EoC dash sound)
(37) Meowmere5 to 10Style defines the volume
(42) Trackable0 to 232Contains almost all the sounds used in the DD2 event


* Modded sounds can be of four types: Item, NPCHit, NPCKilled and Custom
* Once you change the type/style to a custom sound, the text at the top of the green box will say the sounds name for easier identification. Once you save and go back to the config, the 'Sound Path' will tell the mod name. Do NOT edit this text, as it is essential for making sure the right sound is loaded/used, even when the mod it belongs to is unloaded
* If you have a modded sound selected, and that mod is unloaded, it won't apply any rule associated with it. You can change the style of the sound (if it's in the custom range), but it will preserve that 'Sound Path' for consistency. If you wish to really change and discard that sound, switch the type on the sound and save, then reopen the config
* See the first reply in this thread for more information if you want to add your own sounds to the game, or intend to use sounds you discovered in your own mods

Changelog:

v0.1.3.1: Fixed WingSlot compatibility

v0.1.3: Added 'Held Item Constraint' to a 'key' entry; will only apply this sound when the player holds that item (Leave blank to always apply)

v0.1.2.4: Added WingSlot compatibility for wings origin

v0.1.2.3: Adjusted the debug text position slightly to accomodate for possible thorium buff UI

v0.1.2.2: Fixed 'Play Sound' button with invalid style, added origin to Chat, DoubleJump, ForceRoar and Splash, 'Tracked Debug Count' resizing fix

v0.1.2.1: Fix critical bug with modded chests being placed into a buggy state

v0.1.2: Added wings origin (also see v0.1.2.4), fixed proper origin display when replacing a sound

v0.1.1: Added 'Play Sound' button to directly test a sound, fixed ZombieMoan mismatch

v0.1: Release with icon

v0.0.0.2: Initial release (without icon)

Source Code and alternative downloads (under Releases): Github
 
Last edited:

direwolf420

Terrarian
This post is targeted towards modders, and people who want to add their own sounds to the game using this mod.

Follow this guide to get a very basic mod skeleton going. Once you have made sure it works, you can delete the Items folder, and add a "Sounds" folder, then inside it a "Custom" folder. This is where you put your mp3 files (how you get or make those is up to you). Then load up ingame with your and this mod enabled, pick the 'Custom' sound type, and scroll through the styles. Your sound should come up there.
Relevant information is given in this guide from tModLoader: Basic Sounds
In short: the values you get from the mod and that you see in the debug menu (type, style) can be plugged into here to play that sound:
Code:
Main.PlaySound(int type, int x = -1, int y = -1, int Style = 1, float volumeScale = 1f, float pitchOffset = 0f)
the number for the type can be seen in the debug screen, or in the config at the top of the green box

If you want to set a vanilla sound to item.UseSound, npc.HitSound or npc.DeathSound, use this pattern (only applicable to the sound type item, npchit and npcdeath): SoundID.<SoundType><style>. If not the mentioned compatible styles, follow the manual approach below (that also works for custom sounds)
Code:
item.UseSound = SoundID.Item113;
npc.HitSound = SoundID.NPCHit50;
npc.DeathSound = SoundID.NPCDeath53;
Code:
//Manual
using Terraria.ModLoader;
using Terraria.ID;
...
//Use the "name" of the sound type like this: SoundID.<Name>
item.UseSound = new LegacySoundStyle(SoundID.CoinPickup, -1);
//below examples only when the sound is from your own mod
if (!Main.dedServ) npc.HitSound = mod.GetLegacySoundSlot(SoundType.Item, "Sounds/Item/test");
//this is needed when you use custom sounds
if (!Main.dedServ) npc.DeathSound = mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Custom/test");
 
Last edited:

direwolf420

Terrarian
v0.1.1: Added 'Play Sound' button to directly test a sound, fixed ZombieMoan mismatch

This is how it looks like now:

Click the button, and the currently selected sound will play, making it much easier to test sounds now!
 

FiveSix78

Terrarian
Oh wow, I just logged in for the first time in nearly half a year and see this. The last time I logged in, I was interested in commissioning a modder to make a mod that lets users 1: replace Terraria's songs with a pool of songs of their choice (including the ability to add multiple custom songs in place of single Terraria songs, e.g. 5+ different tracks that are randomly selected when entering a different biome with its own music), and 2: easily share song packs in the form of .zip files or something. Would you be willing to make a mod like this?
 

64BTX

Official Terrarian
Would it be possible to add the ability to change an NPC hit sound if they are hit with a specific weapon? (ie: if an enemy is hit with a lead broadsword, play [x] sound, otherwise use default NPC hit sound)
 

direwolf420

Terrarian
Would it be possible to add the ability to change an NPC hit sound if they are hit with a specific weapon? (ie: if an enemy is hit with a lead broadsword, play [x] sound, otherwise use default NPC hit sound)
Certainly possible, but I don't know where I would fit it in UI wise. The config UI is already very cluttered
 

64BTX

Official Terrarian
Certainly possible, but I don't know where I would fit it in UI wise. The config UI is already very cluttered
Maybe if it was added as another "key" row along with the NPC selection row in the NPC-Hit part of the config? An example of how it would look in the UI could be:
Code:
NPC Hit
Active: Yes, #Rules: 1, #Enabled: 1
Active                            [ON]
Rule
    1:
      Key (NPC)                   [NPC]
      (new row) Key (Item)        [ITEM]
      New Sound: Enabled: etc. etc.
        Enabled                   [ON]
        Volume: 1          [-----|-----]
        etc. etc.
 

direwolf420

Terrarian
Update to v0.1.3:
* Added 'Held Item Constraint' to a 'key' entry; will only apply this sound when the player holds that item (leave blank to always apply)

Screenshot_10.png
 
Top Bottom