Dynamic Music and Sounds Wiki

When multiple mods change the same music type, music track, or sound descriptor, Skyrim only keeps the last mod's version. Every other mod's added tracks and sound files are silently thrown away. This plugin fixes that. It finds what was lost and adds it back. Install it, forget about it.

Quick Start: Install with your mod manager, launch the game. That's it. Check Data/SKSE/Plugins/DynamicMusicAndSounds.log if you want to see what it did.

Requirements

What Does This Fix?

This plugin handles three types of records that share the same conflict problem:

Music Types (MUSC)

A music type controls which tracks can play in a situation, like exploring, combat, or visiting a town. Mods add new tracks to these lists so their music plays in the right context. When two mods edit the same music type, one mod's tracks get lost.

Music Tracks (MUST)

A music track can be a "palette" that holds multiple sub-tracks organized into layers. When two mods add different sub-tracks to the same palette, only the last mod's additions survive.

Sound Descriptors (SNDR)

A sound descriptor holds the list of audio files that play when a sound event fires. For example, a footstep sound might have 5 different audio files so it doesn't sound identical every time. When a mod adds new sound variants and another mod also edits that descriptor, one set of variants is lost.

The Fix

Dynamic Music and Sounds looks at every mod that touched each record, figures out what each one added or removed, and restores the missing entries at startup. The result is the same as if you had manually built a compatibility patch for every music and sound conflict in your load order.

How It Works

Features

Restores missing music tracks
Restores missing sound variants
Respects intentional removals
Per-type toggles in INI
Skip specific mods via INI
Skip specific records via INI
Detailed optional logging
SE + AE + VR support
xEdit companion script

INI Settings

The config file is at Data/SKSE/Plugins/DynamicMusicAndSounds.ini. If it doesn't exist, it gets created automatically the first time you launch the game.

General

[General]
;Write detailed per-record info to the log file. Useful for troubleshooting.
enablelogs = false

;Toggle conflict resolution for each record type independently.
mergemusictypes = true
mergemusictracks = true
mergesounddescriptors = true

Exclusions

[Exclusions]
;Comma-separated list of plugin filenames to skip entirely.
;Example: skipMods = SomePlugin.esp, AnotherMod.esp
skipMods =

;Comma-separated list of EditorIDs to skip, per record type.
;Example: skipMusicTypes = MUSExploreCity
skipMusicTypes =
skipMusicTracks =
skipSoundDescriptors =

Settings Reference

enablelogs

Default: false
Logs every record that was checked and every track or sound file that was added or restored. Helpful if you want to see exactly what changed, but makes startup slower. Leave it off unless you're curious or troubleshooting.

mergemusictypes

Default: true
Toggle for music type (MUSC) conflict resolution. These are the records that control which tracks play during exploration, combat, towns, etc.

mergemusictracks

Default: true
Toggle for music track (MUST) conflict resolution. Only palette-type tracks are processed, since they are the only type with mergeable sub-track lists.

mergesounddescriptors

Default: true
Toggle for sound descriptor (SNDR) conflict resolution. Only standard sound definitions are processed, since they are the only type with mergeable sound file lists.

skipMods

Default: (empty)
Comma-separated list of plugin filenames (e.g. SomePlugin.esp). Any mod in this list will be completely ignored. Its additions won't be restored and its removals won't be tracked.

skipMusicTypes / skipMusicTracks / skipSoundDescriptors

Default: (empty)
Comma-separated EditorIDs. Records matching these IDs won't be touched, regardless of how many mods edit them.

xEdit Companion Script

The plugin comes with an xEdit (SSEEdit) script called ST - Dynamic Music and Sounds.pas. It has two modes:

Tip: You can use the xEdit script and the SKSE plugin together. The script builds a patch file, and the plugin catches anything the patch missed. They don't conflict.

Compatibility

Credits

Link to This Page

Copy a link to share this wiki from your Nexus description or documentation:

Support me on Ko-fi