Mods / Sound Physics Adapted

Tags:
Author:
Nyarc
Side:
Both
Created:
Aug 14th at 2:49 PM
Last modified:
Aug 21st at 4:30 PM
Downloads:
1696
For testers (for Vintage Story 1.22.0 - 1.22.7):
soundphysicsadapted_v0.2.6-dev.8.zip  1-click install

Sound Physics Adapted gives Vintage Story real acoustics.
Walls muffle sound. Caves echo. Rain and Wind comes through open spots / windows, positionally.

Hey Guys. This mod has been in private development since 03.2026 , prereleased as .dev on the Discord. I never that the courage to upload it, as I wanted to make this mod as stable and bugless as possible, as it changes core audio features.
Think of it has the Equivalent to "Sound Physics Remastered"

All sound processing is Client Side.
Mod is: universal - though - if installed on server, additional patches for syncing resonators "Pause / Resume" behaviour are enabled server-wide.

  • Occlusion. Blocks between you and a sound remove volume and high frequencies.
  • Reverb. The room around a sound decides the echo.
  • Sound paths. A blocked sound moves to the opening that you hear it through.
  • Weather. Rain, wind and hail play at the openings near you.
  • Thunder. Tweaked Thunder distance and VFX effects.
                    Thunder will no longer be audible when inside a shelter above sealevel.

Install

  1. Click 1-click install, or download the ZIP file above.
  2. For a manual install, put the ZIP file into VintagestoryData/Mods.
  3. Start the game.

The mod makes its configuration files at the first start. You do not have to set anything.

Features in detail

Occlusion

The mod traces a ray from each sound to your ears. Every block on the path removes volume and high frequencies. The material decides how much. Stone blocks more than wood. Wool and containers block more than a fence.

Doors, gates, hatches and glass panes use their real state. Open a door and the sound is clear at once. Close it and the sound goes dull.

Chiseled blocks and slabs occlude by their true volume, not as a full block.

Reverb

The mod sends rays from the sound source and measures the space around it. Size and material give the echo. A cave rings. A small cellar sounds tight. Open ground stays dry.

Four reverb slots run at the same time, so sounds in different spaces keep their own echo.

Sound paths and repositioning

A wall between you and a sound does not stop the sound. The mod looks for an open path around the wall. If it finds a door, a window or a gap, the sound comes from that opening.

Sounds around a corner lose treble by the angle of the bend. Sounds in a fully sealed space stay dull and dry.

Weather

Rain, wind and hail are not a flat layer over your head. The mod finds the openings near you and puts the weather sound at each one. A window on the north wall makes rain come from the north.

Your shelter level controls the volume. The change is gradual, not a switch. Wind sounds move to roof height at a sky opening.

Thunder

Each strike gets a direction above the horizon and a distance up to 1000 blocks. Distant thunder is deeper and quieter. Indoors, the mod muffles the crack and keeps the rumble.

Distance and air

Sounds carry farther than in the base game, because walls now stop them. Distant sounds lose treble through air absorption. Every value is in the configuration file. Set the multiplier to vanilla values if you want the old range.

Blocks and other mods

Resonators keep the correct sound through pickup, placement and world reload. With the CarryOn patch, you can carry a resonator that plays.

Other mods can change occlusion and material values at runtime through the mod API.

Debug

Type  .sp  in chat to show all commands

Type .sp viz in chat for multiple debug views (WIP)

Configuration

The mod writes two files into VintagestoryData/ModConfig:

  • soundphysicsadapted.json for the audio behavior and the performance limits.
  • soundphysicsadapted_materials.json for the occlusion and reflection value of each material and block.

With the ConfigLib mod you can change the settings in game.

Useful values for performance:

  • MaxSoundsPerTick limits how many sounds the mod updates in one tick.
  • EnableStaticSoundCache lets sounds that do not move skip their raycast.
  • EnableDistanceModelOverrides turns the range and air absorption changes off.

An old configuration file updates itself after a mod update (Thanks for Dana for guiding me towards their Config Update flow)

Compatibility

Vintage Story 1.22 Mod version 0.2.3 and later
Vintage Story 1.21 Mod version 0.2.2 and earlier
Client Required
Server Not required
Multiplayer Works. Only the client with the mod hears effects
CarryOn Compatible. Extra patches for carried resonators
Medieval Expansion Compatible. Extra patches for doors and gates
ConfigLib Optional. Adds an in-game settings screen
Cave Symphony, Forest Symphony Tested
Wildcraft, Wildgrass Supported. Plants occlude by their volume
RPVoiceChat  API merged on RPVoice since 2.6.1

Report a problem with another mod in the comments or on GitHub.

Known limits and planned work

Known limits

  • A sound that starts while the world loads plays without the filter for about one second. The fix is in work.
  • A door and a window closer than 3.5 blocks to each other can merge into one weather source. The direction is then between them.
  • The reverb can change in a step when you walk over an internal cell border.
  • A chiseled block with a hole can still block sound. The collision shape of the block decides this. Test coverage is thin here.
  • Dense geometry costs CPU time. The mod limits the work per tick, so distant sounds update more slowly under load.
  • Custom sound replacement for Thunder is off currently..

Planned

  • Attach the filter during the world join, so no sound starts wide open.
  • Thunder VFX Adjustments / Sound Replacement System eg. Rain / Wind
  • Blend the reverb between neighbor cells to remove the step.
  • Cache the reverb of a sealed room until a block changes.
  • Ready-made performance presets that you drop into the configuration folder.

AI Disclaimer

This project is written with help of AI.

I give the ideas, the acoustic design and the direction and then do debugging and testing manually.

My background is media design and have been developing various projects for about 14 months. Audio Engineering is a thematic i adored

alot over my last decade and got me inspired to start creating this mod. 

Links

The mod follows the idea of Sound Physics Remastered for Minecraft. The code is new and specific to Vintage Story.

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
0.2.6-dev.8 soundphysicsadapted
1.22.0 - 1.22.7
807 Aug 21st at 4:30 PM soundphysicsadapted_v0.2.6-dev.8.zip 1-click install

## [0.2.6-dev.8] - 2026-08-21

### Changed
- The mod now runs on every Vintage Story 1.22.x release, starting at 1.22.0. Earlier development builds declared 1.22.5 or newer without a technical reason and were refused by older game builds before any code ran.

0.2.6-dev.7 soundphysicsadapted
1.22.5 - 1.22.7
25 Aug 21st at 3:54 PM soundphysicsadapted_v0.2.6-dev.7.zip 1-click install

## [0.2.6-dev.7] - 2026-08-21

### Fixed
- Some sounds could lose their muffling forever after another sound ended on the same audio channel. The mod now checks that a finished sound still owns its channel before cleaning up.
- Stereo sounds (music, resonator tracks) can no longer lose stereo permanently after a fast sequence of loads. A failed load no longer leaves the flat mono version behind.
- Rain and thunder from the replacement system and the vanilla system can no longer play at the same time after you turn weather enhancement off and on between sessions.
- In multiplayer, the server now ignores resonator and boombox messages from players who are not near the device, arrive too fast, or carry a malformed track name.
- Two openings close together (one above the other) now keep their own identity instead of fighting over one voice.
- When there are more openings than voices, the nearest opening wins the free slot first — not the oldest one.
- The Layer 1 rain bed now fills in when an opening qualified for a voice but had no slot left, so wide cave mouths no longer go quiet.
- Leafless rain no longer adds extra volume on top of leafy rain in dense forests.
- Thunder cracks indoors no longer fight with the rumble over one filter.
- A disc taken out of a resonator no longer reloads at an old frozen rotation.
- Frozen resonator rotations no longer leak into a new world at the same coordinates.

### Changed
- Max Rain Sources default went from 4 to 8. This value also decides how many openings get tracked each tick; 4 starved cave mouths. Existing configs keep an edited value.
- Removed the dead "Opening Persistence" setting. It did nothing since persistence moved to the virtualization model.

### Performance
- Reverb raycasts, path records, and block-change invalidation allocate far less, so mining and fighting cause less stutter.
- Turning OFF sound repositioning no longer silently turns OFF positional reverb with it.
- The player reverb cache refreshes after a block change even when you stand still.

0.2.6-dev.6 soundphysicsadapted
1.22.5 - 1.22.7
214 Aug 19th at 6:30 PM soundphysicsadapted_v0.2.6-dev.6.zip 1-click install

## [0.2.6-dev.6] - 2026-08-19

### Fixed
- Rain no longer plays from behind solid rock. In a cave, sources placed at openings found earlier from the surface kept playing through the stone above you and buried the one opening you could actually hear. A source that measures inaudible now gives its slot back.
- An opening you can see now wins its slot over one remembered from somewhere else.
- Rain sources sit on an opening, not in the middle between two of them.
- Rain and wind through windows or doors no longer flicker in volume.
- Window and door openings change size smoothly instead of jumping.
- A single block of open sky no longer sounds as loud as the open sky itself.
- Sounds fade in and out more smoothly.
- The carried resonator (boombox) works again with Carry On 2.0. Older Carry On versions still work as before.
- Fixed music staying at an old position after a failed pickup.
- Rain and wind now fade in gently when first detected, instead of jumping straight to full volume.
- Quiet sounds change smoothly instead of jumping suddenly.
- Less stutter when you place or break a block.

### Changed
- Sounds muffle and fade at a more natural speed.
- Sound transitions now match how fast you are moving, such as sprinting or falling.

### Performance
- The mod runs noticeably faster, especially in rain. (20-40% decrease in function ms after Trace)

0.2.6-dev.5 soundphysicsadapted
1.22.5 - 1.22.7
152 Aug 17th at 3:01 PM soundphysicsadapted_v0.2.6-dev.5.zip 1-click install

## [0.2.6-dev.5] - 2026-08-16

### Fixed
- **Rain no longer sounds like metal on a wooden trapdoor.** The rain impact list held the
  pattern `trapdoor`. The mod matches a pattern as a prefix, so the pattern also caught the
  wooden trapdoors and the legacy trapdoors. The list now holds the two metal styles only,
  `trapdoor-plate` and `trapdoor-bars`.
- **`.sp toggle` gives the game back to vanilla audio.** The toggle stopped new work only.
  A sound that already played kept the filter, the reverb, the pitch and the moved position
  of the mod. Rain was the worst case. It stayed at its last level and no longer got quieter
  when you walked inside. The toggle now restores every live sound. It stops the weather and
  thunder sounds of the mod, and it gives the reverb, the weather, the underwater filter and
  the distance attenuation back to the game.
- The toggle also reacts to a change in the ConfigLib window or in the config file. Before,
  it reacted to the chat command only.

### Changed
- **A torch on a torch holder is 20 percent louder.** The default volume of the crackle goes
  from 0.35 to 0.42.
- **One smoothing stage for each thing you hear.** The filter, the reverb and the position of
  a sound move toward their new value in one place, every 25 ms. Before, two steps smoothed
  the same value at rates that changed with the distance, so the real speed matched no
  written number.
- A far sound reacts as fast as a near sound. Its reverb needs the same time. Only the
  measurement is less frequent.
- The filter moves through the loudness in equal steps. A transition no longer runs fast at
  the loud end and slow at the quiet end.

### Performance
- The mod writes the reverb of a sound only while the reverb moves. A sound in a room that
  does not change costs no reverb work.
- The mod does not measure a throttled sound. Its fade continues in the audio step.

### Configuration
- **The mod upgrades an old config file. It does not replace it.** Both config files go to
  version 11. The mod keeps every value you set and changes only what this release changed.
  It replaces the `trapdoor` pattern, and it raises the torch volume to 0.42 if your file
  still holds the old default of 0.35. A value that you edited stays. A file older than
  version 10, or newer than the mod, still falls back to fresh defaults.

### Known limits of the toggle
- The game applies a replaced sound file and an added block ambient sound when it loads the
  assets. The mod silences the added block ambient sounds when you turn it off. A replaced
  sound file stays until you restart the game.
- A sound that the mod mixed down to mono stays mono until the game loads that asset again.
  A new sound loads in stereo, as vanilla does.

### Internal
- `AudioPhysicsSystem.ProcessSoundRaycast` is now `UpdateSoundAcoustics` with
  `ResolveAcousticPaths` and `ResolveRepositioning`. New files: `Core/SmoothingCurves.cs`,
  `Core/ThrottleFadeState.cs`, `Core/AmbientVolumeResolver.cs`, `Core/FilterPipeline.cs`.
- `SoundPhysicsAPI` and the weather system read the occlusion from the applied filter gain,
  so the value includes the airspace, opening and diffraction floors.

0.2.6-dev.4 soundphysicsadapted
1.22.5 - 1.22.6
451 Aug 14th at 4:26 PM soundphysicsadapted_v0.2.6-dev.4.zip 1-click install

Bump Changelog Config

0.2.6-dev.3 soundphysicsadapted
1.22.0 - 1.22.6
29 Aug 14th at 3:29 PM soundphysicsadapted_v0.2.6-dev.3.zip 1-click install

Initial Release for 1.22.x

0.2.2-dev.4 soundphysicsadapted
1.21.0-pre.1 - 1.21.7
18 Aug 14th at 3:52 PM soundphysicsadapted_v0.2.2-dev.4.zip 1-click install

Backwards Version for 1.21.x 
Might be buggy, no Issue Reporting will be done on this.
Might update later


15 Comments (oldest first | newest first) (threaded | flat)

Lyra_Yanaris, 3 days ago

it doesn't work with tasshrooms extreme winters very well.

Nyarc , 4 hours ago
@Lyra_Yanaris: it doesn't work with tasshrooms extreme winters very well.

I will look into it when i get the time

Burksty, 6 days ago

Im noticing framedrops around the watersheds rivers, I lose about 8-15 frames

Gloo, Aug 26th at 1:52 AM

I really like what this mod does, but it really starts to tank performance when you go off exploring.
It looked like I was swapping between 150 and 30fps every other frame, causing really unplayable stuttering, which persisted even after I stopped moving around.

Nyarc , Aug 26th at 7:19 PM
@Gloo: I really like what this mod does, but it really starts to tank performance when you go off exploring.It looked like I was swapping between 150 and 30fps every other frame, causing really unplayable stuttering, which persisted even after I stopped moving a

Interesting. Do you play heavily modded? Maybe its some mod interaction i dont have on the radar yet. On my system it runs fine. Id need your logs, if you wanna help me analyse this problem. Hit me up on Discord please!

Gloo, Aug 26th at 8:17 PM
@Nyarc: Interesting. Do you play heavily modded? Maybe its some mod interaction i dont have on the radar yet. On my system it runs fine. Id need your logs, if you wanna help me analyse this problem. Hit me up on Discord please!

It was running just fine for a long while. I get around 140fps on average. It was only once I went out a few thousands blocks that it started stuttering real bad out of nowhere. Which has never happened before.

I have 30 or so mods. I can look into it further when I have the time, see if there is any common denominator if it starts stuttering again.
I'll look into getting those logs too. If I find anything of interest, I will send it your way.

HansJack, Aug 24th at 8:46 AM

Has this become a client-and-server mod now? The mod description still says it’s client-side only.

It would be best to keep this mod client-side only. Server owners generally won’t want to install an extra mod just to improve physics-based audio, since it isn’t really necessary.

Nyarc , Aug 24th at 4:17 PM (modified Aug 24th at 4:17 PM)
@HansJack: Has this become a client-and-server mod now? The mod description still says it’s client-side only. It would be best to keep this mod client-side only. Server owners generally won’t want to install an extra mod just to improve physics-based audio, since it

Sorry, that is a little bit of an unspecific line.
You can join a server with this mod as an extra "client side" mod, no problem.
Its Client and Server because it has additional Server Patches that are OPTIONALLY getting activated - if the Server has this mod installed aswell (Resonator Sync).

MyrtleMist, Aug 21st at 10:53 AM

The mod says it is compatible with versions 1.22.0 to 1.22.7, but it doesn't load on 1.22.3, claiming it requires at least 1.22.5. I am waiting a bit longer before moving to newer versions so that mods I use can update, was really wanting to try this mod out though!

Bummelwurf, Aug 18th at 6:26 PM

Absolutely love this mod. Sadly it reduces my fps in my base from 80 to barely 60 and laggy af. Other than that it sounds fantastic

Nyarc , Aug 19th at 1:35 PM
@Bummelwurf: Absolutely love this mod. Sadly it reduces my fps in my base from 80 to barely 60 and laggy af. Other than that it sounds fantastic

Please hit me up on Discord "Nyarc" - I didnt test various scenarios yet.
If you are in a world with alot of Chiseled blocks, alot of sound sources, or on a non windows version of VS, that could be really valuable info for me to continue investing in performance optimizations.

Mirok, Aug 16th at 6:24 AM

Will there be examples to listen to?
Picture background

Nyarc , Aug 16th at 6:09 PM
@Mirok: Will there be examples to listen to?

Soon TBD