50 new atmospheric, sometimes haunting, cave ambience SFX — mixed in alongside the vanilla pool, with optional full replacement.
Minecraft ships with only 13 ambient.cave sounds. Spend enough hours underground and you'll know every creak and groan by heart. Expanded Cave Sounds hooks directly into the game's existing cave-mood system and lifts the rotation from 13 sounds to 63 — without changing when the ambience fires, how it fades in, or where it positions itself in 3D space.
Nothing is louder. Nothing is more frequent. You just hear something new the next time it plays.
soundPositionOffsetThe mod does not re-implement cave ambience. It lets vanilla continue doing what it already does — sampling a random block in a 17×17×17 cube around the player each tick, incrementing a mood counter when dark enough, and dispatching minecraft:ambient.cave at a randomly-jittered offset position.
At the exact moment Minecraft calls SoundManager#play with that cave sound, a Mixin intercepts the dispatch and decides what happens:
| Situation | Action |
|---|---|
| Not a cave sound | Pass through. Every other sound in the game is unaffected. |
| Cave sound, coin flip picks vanilla | Pass through. Vanilla's 13 variants play as they always did. |
| Cave sound, coin flip picks expanded | Cancel the original, dispatch one of the 50 new sounds at the same position/volume/pitch. |
Because the hook is at the dispatch site rather than the upstream mood pipeline, every vanilla tuning knob — biome tickDelay, blockSearchExtent, soundPositionOffset, subtitle category, reverb from downstream mods — keeps working unchanged.
A plain JSON config is written to .minecraft/config/expandedcavesounds.json on first launch:
{
"playVanillaCaveSounds": true
}
| Setting | Value | Result |
|---|---|---|
playVanillaCaveSounds |
true |
Default. Fair 50/50 mix of vanilla's 13 sounds and the 50 expanded ones. |
false |
Expanded-only. Vanilla's ambient.cave is replaced on every trigger. |
Restart Minecraft after editing the file.
| Loader | Minecraft | File to install | Notes |
|---|---|---|---|
| Forge 47.x | 1.20.1 | ...-forge-1.20.1-*.jar |
Primary Forge target |
| NeoForge 47.1.x | 1.20.1 | ...-forge-1.20.1-*.jar |
NeoForge at 1.20.1 is Forge-compatible |
| Fabric 0.15+ | 1.20.1 | ...-fabric-1.20.1-*.jar |
Primary Fabric target |
| Quilt 0.22+ | 1.20.1 | ...-fabric-1.20.1-*.jar |
Loads via Quilt's Fabric compatibility layer |
.minecraft/mods/ folder.Free to include in any modpack, public or private, monetised or not. Credit is appreciated but not required. A link back to this CurseForge page helps route feedback upstream.
Does it work on a multiplayer server?
Yes. The mod runs entirely on the client — each player hears their own soundscape. Install it only on the clients that want the expanded ambience. Servers require no changes.
Does it replace the vanilla cave sounds?
Not by default. In the default configuration, vanilla's 13 sounds still play — the mod simply adds 50 more to the rotation. Set playVanillaCaveSounds to false if you prefer expanded-only.
Does it conflict with AmbientSounds, Dynamic Surroundings, or Sound Physics Remastered?
No. The Mixin intercepts only dispatches of minecraft:ambient.cave. Other ambient layers — biome ambience, reverb/DSP, weather — are completely untouched. Sound Physics reverb in particular works unchanged because the mod replaces the source sample, not the dispatch pipeline.
Will it change how often I hear cave sounds?
No. The vanilla mood sampler still decides when a sound plays. The mod only decides which sound that dispatch uses.
neoforge.mods.toml jar; 1.21.x targetAll Rights Reserved. Sound design and programming by dylanjkl.