Adding Custom Block Sounds
INFO
This page assumes you have some knowledge of how to create and modify resource packs. If you are unfamiliar with this, you can find more information here.
Custom block sounds are created through resource packs, block sound definitions (also known as TagPair
's internally) are defined in the assets/<namespace>/sounds/blocks/<definition>.json
file.
Example definition: assets/minecraft/sounds/blocks/sheet_metal.json
:
{
"enabled": true,
"group": {
"break": {
"sound_id": "sounds:block.sheet_metal.break"
},
"fall": {
"sound_id": "minecraft:block.netherite_block.fall"
},
"hit": {
"sound_id": "minecraft:block.netherite_block.hit"
},
"pitch": 1.2,
"place": {
"sound_id": "minecraft:block.netherite_block.place"
},
"step": {
"sound_id": "sounds:block.sheet_metal.step"
},
"volume": 1.0
},
"keys": [
"minecraft:iron_bars",
"minecraft:iron_trapdoor",
"minecraft:hopper",
"#minecraft:cauldrons"
]
}
The keys array works similarly to vanilla tags, you can specify individual block identifiers or tags using the hashtag notation, eg: #minecraft:logs
for all log variants.
Disabling Specific Sounds
If you want to disable a specific sound, you'll need to create an empty definition file in a resource pack that is loaded higher than the "Fabric Mod" resource pack.
{
"enabled": false,
"keys": [],
"group": {
"break": { "sound_id": "sounds:block.sheet_metal.break" },
"fall": { "sound_id": "minecraft:block.netherite_block.fall" },
"hit": { "sound_id": "minecraft:block.netherite_block.hit" },
"place": { "sound_id": "minecraft:block.netherite_block.place" },
"step": { "sound_id": "sounds:block.sheet_metal.step" },
"pitch": 1.2,
"volume": 1.0
}
}
Unfortunately, due to the way codecs work, you will need to specify the group
object even if you are setting enabled
to false
- likewise for the keys
array, but you can leave it empty.