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. Check Data/SKSE/Plugins/DynamicNPCs.log if you want to see what it did.

Requirements

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
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.

INI Settings

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

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

[Features]
;Merge NPC inventory
mergeInventories = true
;Merge NPC spells, shouts, and leveled spells
mergeSpells = true
;Merge NPC perks
mergePerks = true
;Merge outfit item lists (what NPCs wear)
mergeOutfits = true
;Merge NPC AI packages (schedules, travel, patrol, etc.)
mergePackages = true
;Merge NPC faction memberships and ranks
mergeFactions = true
;Merge NPC stats: health/magicka/stamina offsets, level, speed, skills, and actor flags
mergeStats = true
;Merge NPC AI behavior: aggression, confidence, mood, morality, and override package lists
mergeAIData = true
;Merge NPC traits: race, class, outfit, combat style, voice type, height, weight, name, and more
mergeTraits = true
;Merge NPC keywords (used by perks, abilities, and other systems to identify NPC types)
mergeKeywords = true

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).

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 AIDT fields changed, ~1 override packages changed
  Traits: ~4 fields changed
  Keywords: +7 added, -0 removed
  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)
      ~ [STAT] healthOffset 0->25  (changed by SpellMod.esp)
      + [KYWD] MagicResistance50 [000AA155] (added by SpellMod.esp)
    Result: spells(+2 -0), stats(~1 fields, ~0 flags), keywords(+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