Dynamic NPCs Wiki

When multiple mods change the same NPC (adding spells, changing stats, giving new items, etc.), Skyrim only keeps the last mod's version and throws away everyone else's changes. This plugin fixes that. It finds the missing changes and merges them back in. Install it, forget about it.

Quick Start: Install with your mod manager, launch the game. That's it. Open the MCM to tweak settings or set FaceGen priority. Check Data/SKSE/Plugins/DynamicNPCs.log if you want to see what it did.

Requirements

The MCM menu is optional. Without SkyUI and MCM Helper, the plugin still works using the INI file.

What This Mod Does

When multiple mods change the same NPC, Skyrim only keeps the last mod's version. Every other mod's changes are silently deleted. This plugin checks every mod that edited each NPC, figures out what was added, removed, or changed, and merges it all together at startup. Think of it like an automatic Bashed Patch for NPCs.

What This Mod Does NOT Do

This comes up a lot, so let's be clear:

The Problem

Skyrim has a simple rule: if two mods edit the same thing, the last one in your load order wins and the other gets thrown out. So if Mod A adds new spells to an NPC and Mod B changes that same NPC's outfit, you only get the outfit change. The spells are gone. No warning, no error. Just silently deleted.

This gets worse with popular NPCs. Followers, faction leaders, and named characters are commonly edited by many mods at once. The more mods you have, the more changes vanish.

The Fix

Dynamic NPCs looks at every mod that touched each NPC, figures out what each one added, removed, or changed, and merges all those changes together. The result is the same as if you had manually built a compatibility patch for every NPC conflict in your load order, except you don't have to do anything.

How It Works (Simple Version)

What Gets Merged

Inventory
Spells and shouts
Perks
Outfits (default + sleep)
AI packages
Faction memberships
Stats and skills
AI behavior
Traits (race, class, voice, etc.)
Keywords
Papyrus scripts
FaceGen override
SE + AE + VR support
Fully automatic

What Does NOT Get Merged (and Why)

Template Flags

Some NPCs use templates to inherit data from another NPC (like a template for all bandits). When an NPC has a template flag set for a category (e.g. "use template for inventory"), this plugin skips merging that category since the data comes from the template, not the NPC record itself. This is automatic and requires no configuration.

MCM Menu (Recommended)

If you have SkyUI and MCM Helper installed, open the Mod Configuration Menu and look for Dynamic NPCs. Everything is configurable there.

Features Page

Toggle each merge category on or off. All are enabled by default. Changes take effect on the next game startup.

Plugin Priority Page

This page controls which mod's face wins when multiple mods change the same NPC. The plugin auto-detects every mod in your load order that edits NPCs and lists them here with a slider.

Logs Page

Shows a summary of what the plugin did on the last startup: how many NPCs were processed, how many had conflicts, and what was added or removed per category. The bottom section lists the NPCs with the most conflicts, including their FormIDs so you can look them up in xEdit.

The MCM needs a small DynamicNPCs.esp file to work. This ESP only contains a quest that runs the MCM script. It does not change any NPCs or game data. You can create it automatically using the xEdit companion script (select "ESP Creator" mode).

INI Settings (Without MCM)

If you don't have SkyUI or MCM Helper, the plugin falls back to reading Data/SKSE/Plugins/DynamicNPCs.ini. This file is created automatically on first launch.

[General]
enablelogs = false

[Features]
mergeInventories = true
mergeSpells = true
mergePerks = true
mergeOutfits = true
mergePackages = true
mergeFactions = true
mergeStats = true
mergeAIData = true
mergeTraits = true
mergeKeywords = true
mergeScripts = true
mergeFaceGen = true

[FaceGen]
; Paste mod filenames below, one per line.
; Mods lower in the list take priority.
; BijinWarmaidens.esp
; PandorablesNPCs.esp

Settings Reference

enablelogs

Default: false
Logs every single change for each NPC: items added/removed, spells merged, stats changed, conflicts detected, etc. Helpful if you want to see exactly what was merged, but makes startup slower. Leave it off unless you're curious or troubleshooting.

mergeInventories

Default: true
Merges the items an NPC carries. If a mod adds items to an NPC and another mod overwrites that NPC, the items are restored.

mergeSpells

Default: true
Merges spells, shouts, and leveled spells. Additions and removals from all mods are combined.

mergePerks

Default: true
Merges perks and perk ranks. Lost perk additions are restored, rank changes are carried forward.

mergeOutfits

Default: true
Merges outfit item lists (what NPCs wear) and sleep outfits. Items added to outfits by overridden mods are restored.

mergePackages

Default: true
Merges AI packages (schedules, patrols, travel routines, etc.). Lost packages are added back, removed packages stay removed.

mergeFactions

Default: true
Merges faction memberships and ranks. If a mod adds an NPC to a faction and another mod overwrites that NPC, the faction membership is restored.

mergeStats

Default: true
Merges NPC stats: health/magicka/stamina offsets, level, speed multiplier, bleedout override, skills, and actor flags (Essential, Protected, Unique, etc.).

mergeAIData

Default: true
Merges AI behavior settings: aggression, confidence, mood, morality, assistance, and override package lists (spectator, observe corpse, guard warn, enter combat).

mergeTraits

Default: true
Merges NPC traits: default outfit, race, combat style, class, crime faction, gift filter, voice type, height, weight, and display name.

mergeKeywords

Default: true
Merges NPC keywords. Keywords are used by perks, abilities, and game systems to identify NPC types (e.g. ActorTypeUndead, MagicResistance).

mergeScripts

Default: true
Merges Papyrus scripts attached to NPCs. If a mod adds a script to an NPC and another mod overwrites that NPC, the script is restored. Works at the whole-script level (adds/removes entire scripts). NPCs that inherit scripts from a template are skipped.

mergeFaceGen

Default: true
Enables the FaceGen override system. When enabled, set your preferred appearance mods on the Plugin Priority page in the MCM (or in the [FaceGen] INI section). The plugin will copy the full look (head parts, face morphs, tint layers, skin, hair color, face texture) from your preferred mod. Higher number wins, just like load order. Only affects NPCs that the listed mod actually changes.

Reading the Log

The log at Data/SKSE/Plugins/DynamicNPCs.log always shows a summary of what happened:

=== DynamicNPCs: Merge complete ===
  NPCs: 2847 total, 64 with conflicts, 31 merged
  Inventory: +18 added, -2 removed, ~3 count changed
  Spells: +12 added, -1 removed
  Perks: +5 added, -0 removed, ~1 rank changed
  Packages: +8 added, -3 removed
  Factions: +4 added, -1 removed, ~0 rank changed
  Stats: ~6 fields changed, ~2 flags changed
  AI Data: ~3 fields changed
  Override Packages: ~1 changed
  Traits: ~4 fields changed
  Keywords: +7 added, -0 removed
  Scripts: +3 added, -1 removed
  FaceGen: 12 NPCs overridden
  Outfits: 412 total, 11 with conflicts, 5 merged
  Outfit items: +9 added, -1 removed

If you turn on enablelogs, you also get a detailed breakdown for each NPC:

  Lydia [NPC_:000A2C94]
    Winner: FollowerOverhaul.esp | Sources: Skyrim.esm, SpellMod.esp, FollowerOverhaul.esp
    -- Changes --
      + [SPEL] Fireball [00012FD0] (added by SpellMod.esp)
      + [SPEL] Healing [000B62EF] (added by SpellMod.esp)
      ~ [SKILLS] healthOffset 0->25  (changed by SpellMod.esp)
      + [KEYWORD] MagicResistance50 [000AA155] (added by SpellMod.esp)
      + [SCRIPT] MyCustomScript (added by SpellMod.esp)
    Result: spells(+2 -0), stats(~1 fields, ~0 flags), keywords(+1 -0), scripts(+1 -0)

Heads up: Detailed logging makes startup noticeably slower because it has to look up the name of every form. Keep it off for normal play.

Compatibility

Credits

Link to This Page

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

Support me on Ko-fi