

A BepInEx plugin for H3VR that replaces the default player injury and death sounds with customizable sound packs.
There is also a last stand feature for playing a dramatic sound or music when at low health. By default this health percentage is 25%.
The game must boot up at least once with a detectable OuchPack for it to be selectable from the configuration file.
Hopefully I did not break anything by making this.
pain_low soundspain_default soundspain_high soundsRequired sound categories (minimum for pack to work):
pain_default: General injury soundsdeath: Played when the player diesOptional sound categories:
pain_high: High damage sounds (played when damage is >= 20% of max health)pain_low: Low damage sounds (played when damage is <= 5% of max health)last_stand: Looping sound played when health is below 25% (like a heartbeat)critical_health: Alert sound that plays once when you go below 25% health, like the HEV suit in Half Life.impact_default: Default sound for any impacts against the player, the hit you receive before pain registersimpact_bullet: For bullet and projectile impacts.If optional pain categories are missing, the plugin will fall back to using pain_default sounds.
If optional impact categories are missing, the plugin will fall back to impact_default. If impact_default is missing, no impact sound will play.
The directory names (pain_default, death, impact_bullet, etc.) must match exactly, but the sound files themselves can be named anything as long as they are WAV or OGG files.
When packaging your sound pack for Thunderstore:
AuthorName-YourModName-1.0.0.zipOuchPack folder inside a plugins folder at the root of the zipExample of what your zip should contain:
AuthorName-YourModName-1.0.0.zip
├── plugins/
│ └── OuchPack/
│ └── YourSoundPack/
│ ├── pain_default/
│ │ ├── sound1.wav
│ │ └── sound2.ogg
│ └── death/
│ ├── sound1.wav
│ └── sound2.ogg
├── manifest.json
├── README.md
└── icon.png
When installed, it will be extracted to your plugins folder like this:
BepInEx/plugins/
AuthorName-YourModName/
OuchPack/
YourSoundPack/
pain_default/
sound1.wav
sound2.ogg
death/
sound1.wav
sound2.ogg
manifest.json
README.md
icon.png
After installing a new sound pack, you must edit the configuration to enable it. By default, the plugin starts with no sound packs enabled. Open the configuration menu in-game to select your desired sound pack.
OGG and WAV files are supported. MP3 files are not supported.
**(NEW)** Enable Pain Sounds: Toggle regular pain sounds on or off.
Sound Pack: Select which sound pack to use for player injury and death sounds.
**(NEW)** Prevent Pain Sound Overlap: Prevent new pain sounds from playing until the previous pain sound has finished (disabled by default).
Volume Multiplier: Adjust the volume of all injury and death sounds (0.0 to 2.0).
Play Pain With Death: If enabled, a pain sound plays immediately before the death sound.
Enable Last Stand: Enable looping sound when at low health.
Last Stand Threshold: Health percentage that triggers the last stand sound.
Enable Critical Health Sound: Enable a one-time sound when health drops below the critical threshold.
Critical Health Threshold: Health percentage that triggers the critical health sound.
**(NEW)** Enable Impact Sounds: Toggle 3D impact sounds on or off.
**(NEW)** Impact Volume Multiplier: Adjust the volume of impact sounds independently.
Debug Messages: Enable detailed logging for troubleshooting.