Modathon
Recast - SKSE Runtime Visual NPC Replacement mod for The Elder Scrolls V: Skyrim Special Edition
Uploaded25 May 2026
Version1.0.0
798.64 KB
Total Files Sizes
62
Unique DLs
67
Total DLs
1
Total Files

Recast

File Size798.64 KB
Game Image for The Elder Scrolls V: Skyrim Special Edition
161
Utilities
GGM Exclusive

Runtime NPC Visual Replacer for Skyrim AE, SE, and VR


Recast is an SKSE plugin that lets you replace the face and body of any NPC at runtime by writing a small TOML file. Drop the patch into a folder, launch the game, and the target NPC renders with the new look. No ESP overrides, no save baking, no FaceGen regeneration.


What Recast Does


Recast swaps the visual identity of an NPC. That means:

  1. The face (head shape, eyes, hair, brows, tint layers)
  2. The body model (the WORN armor field in xEdit terms)
  3. Weight and height
  4. Sex flag
  5. Body tint color


The target NPC keeps everything else. Voice stays the same. Dialogue conditions still match. Faction memberships are untouched. Race ability spells from the original race are unchanged. The NPC's mechanical identity stays intact, which means quest dialogue, follower behavior, and stronghold logic all keep working correctly.


Key Features


Runtime only with no save baking. Recast never modifies your save file or the target NPC's record in any ESP. It works entirely in memory. That makes it safe to install, uninstall, or change at any point during a playthrough.


Compatible with everything. Because Recast does not override the target NPC's ESP record, mods like USSEP, AI Overhaul, and follower frameworks that share base NPCs all work alongside Recast cleanly. Recast layers on top of whatever the load order produced.


Body matches face by design. When Recast replaces a face, it also pulls the body from the same source NPC. The face the mod author designed comes with the body it was meant to pair with. No more mismatched looks from mixing a custom face with a vanilla body.


Cross-race friendly. Recast lets you replace any humanoid NPC's face with any other humanoid NPC's face. A Breton can wear a Nord face. A Redguard can wear an Imperial face. Recast logs a friendly note when the races differ so you can confirm the swap was intentional, but the replacement always applies.


Hot iterable. Edit a TOML file, relaunch Skyrim, see the change. No regenerating FaceGen. No rebuilding ESPs. No long MO2 setup. The cycle from "I want to try a different face" to "see the result in game" is one launch.


Steady state zero cost. Recast remembers what was applied last session in a tiny digest file. If nothing changed in your patches between launches, save loads do zero extra work. No flicker on already loaded NPCs, no actor refresh storms, no loading screen slowdown.


Simple file format. The TOML format is human readable and editable in any text editor. Most mod authors can pick it up in five minutes. Smart syntax detection means you can use EditorIDs (readable names) or FormIDs (precise hex codes) interchangeably in the same file.


FOMOD installer ready. Mod authors can ship one TOML per NPC face, so FOMOD installers can include or exclude individual faces at install time. Users get fine grained choice without the mod author having to ship multiple FOMOD options.


Recast and SkyPatcher


SkyPatcher and SPID are fantastic general-purpose patching frameworks that handle outfits, spells, perks, factions, keywords, stats, AI behavior, and much more. For all those tasks, SkyPatcher or SPID remain the right tool, and Recast is designed to coexist with them cleanly.


Recast was built specifically for swapping the face and body of an NPC. Here is what Recast brings to the table for that one focused task:

Fast loading. Recast's apply pipeline is around 250 lines of compact C++. The plugin parses and applies a 100-NPC library in 17 milliseconds on a modern CPU, measured end to end from "start parsing TOMLs" to "ready to render." The work is hidden behind the loading screen, but you do not have to give it any room.


Bug free by design. Recast uses an architecture called the faceNPC pivot. Instead of copying face data field by field, it points the target NPC's face slot at the source NPC and lets Skyrim's own rendering pipeline do the resolution. This is the same mechanism Skyrim itself uses internally for bandit and guard preset faces, so Recast is piggy backing on a path the engine already exercises every frame. The result is a clean, predictable application path with no shared heap state between target and source.


Clear logs. Recast writes one line per stage in a structured format. You can see exactly what got applied, what was skipped, and why. Error messages include the exact file and line number that caused the problem, so fixing a typo in a 100-entry TOML takes seconds.


Body and face stay coherent. When Recast replaces a vanilla NPC's face with a custom face NPC, the body also comes from the same custom NPC. The face the modder designed comes with the body it was meant to pair with. The result looks the way the modder intended without extra patch work.


Atomic per NPC. Every NPC mutation is snapshotted before any field is touched. The snapshot map enables future hot reload and undo features without requiring a game restart.


Steady state efficiency. Recast persists a per NPC digest hash across sessions. The next time you launch, if nothing changed in your patches, Recast does zero extra work. No actor refresh, no flicker, no loading screen impact.


Runs alongside SkyPatcher. or SPID Recast can be installed alongside SkyPatcher or SPID without conflict. Recast handles the face and body. SkyPatcher or SPID continue to handle outfits, spells, perks, factions, and everything else. They are designed to coexist.


Requirements


  1. Skyrim Special Edition, Anniversary Edition, or VR
  2. SKSE matching your runtime version
  3. Address Library
  4. Po3's Tweaks (optional, only needed if your patches use EditorID selectors instead of FormIDs)


Compatibility


  1. Unified Plugin works on AE/SE/VR versions of Skyrim SE.
  2. Compatible with USSEP, AI Overhaul, follower frameworks, and other mods that patch the same vanilla NPCs.
  3. Compatible with SkyPatcher for non face replacement patches.
  4. Compatible with any custom NPC mod (Foundation, Visions, Pantheon, third-party NPC packs).
  5. Save game safe to install, uninstall, or update at any point in your playthrough.


Credits


Recast was developed by ColdSun.


The faceNPC pivot architecture borrows the same mechanism Skyrim itself uses for bandit and guard preset faces. Recast simply makes that mechanism available to mod authors for runtime face replacement.

Instructions

How to Use Recast


Recast is an SKSE plugin that replaces NPC faces using simple TOML files. This guide shows you how to write your own patches.


What You Need


Before you start:

  1. Skyrim Special Edition, Anniversary Edition, or VR
  2. SKSE (Skyrim Script Extender)
  3. Address Library
  4. Po3's Tweaks (only needed if you use EditorID names instead of FormIDs)


Where Your Files Go


Recast looks for patches at:


Data/SKSE/Plugins/Recast/Patches/


You can organize them however you like. Recast scans the folder recursively, so subfolders work fine. Drop your TOML files anywhere under that path.


Basic File Structure


Every patch file has two parts: a manifest at the top, and your replacements below.


[manifest]
name = "My Replacements"
priority = 100
api_version = 1

[replacements]
Lydia = "MyMod_NewLydia"


The manifest tells Recast which version of the patch format you are using and how to break ties if two files target the same NPC. Higher priority wins.


The replacements section is where you list each NPC you want to swap.


Method 1: Using EditorIDs (Easiest)


EditorIDs are the readable names mod authors give NPCs in the Creation Kit. They are the most readable way to identify NPCs.


[manifest]
name = "EditorID Example"
priority = 100
api_version = 1

[replacements]
Lydia = "MyMod_NewLydia"
AelaTheHuntress = "MyMod_NewAela"
Mjoll = "MyMod_NewMjoll"


This method requires Po3's Tweaks to be installed, because Skyrim does not normally keep EditorIDs in memory after loading. Po3's Tweaks fixes that, and most modern modlists already include it.


Method 2: Using FormIDs


FormIDs are the eight-digit hex codes you see in xEdit. Use them when you do not have Po3's Tweaks, or when an NPC does not have a unique EditorID.


[manifest]
name = "FormID Example"
priority = 100
api_version = 1

[replacements]
"0x000A2C8E~Skyrim.esm" = "MyMod_NewLydia"
"0x0001A696~Skyrim.esm" = "MyMod_NewAela"
"0x0001B07F~Skyrim.esm" = "MyMod_NewMjoll"


The format is the FormID, a tilde character, then the plugin filename. The quotes around the key are required because the tilde and the 0x prefix are not allowed in TOML's bare-key syntax.


Mixing Both Methods


You can mix EditorIDs and FormIDs in the same file. Recast detects which one you used by looking at the syntax of each string.


[manifest]
name = "Mixed Example"
priority = 100
api_version = 1

[replacements]
Lydia = "MyMod_NewLydia"
"0x0001A696~Skyrim.esm" = "MyMod_NewAela"
Mjoll = "MyMod_NewMjoll"


The source side (the value on the right) also accepts both forms.


Multiple NPCs in One File


You can put as many entries as you want in a single TOML. There is no practical limit. A file with 200 NPCs is fine.


[manifest]
name = "My Big Replacer Pack"
priority = 100
api_version = 1

[replacements]
Lydia = "MyMod_NewLydia"
Aela = "MyMod_NewAela"
Mjoll = "MyMod_NewMjoll"
Uthgerd = "MyMod_NewUthgerd"
Ria = "MyMod_NewRia"
Njada = "MyMod_NewNjada"


One TOML Per NPC (For FOMOD Installers)


If you ship your mod with a FOMOD installer and want users to pick individual NPCs to install, give each NPC its own TOML file. The FOMOD can then include or exclude each file based on user choice.


YourMod/
SKSE/
Plugins/
Recast/
Patches/
Lydia/
1-Lydia_Face.toml
Aela/
1-Aela_Face.toml


Each file contains a single entry.


[manifest]
name = "Lydia Face"
priority = 100
api_version = 1

[replacements]
Lydia = "MyMod_NewLydia"


How Priority Works


If two patch files both replace the same NPC, only one wins. The winner is the file with the higher priority number. Default priority is 0, so set yours to 100 or 200 if you want to override default-priority patches.


If priorities tie, Recast uses the filename and then the line number as deterministic tiebreakers. The loser is logged so you can see what got overridden and why.


Verifying It Works


After you launch the game, check the Recast log at:


Documents/My Games/Skyrim Special Edition/SKSE/Recast.log


You should see lines like this:


TomlLoader: parsed 1 file(s), 3 entry(ies) after conflict resolution, 0 diagnostic(s).
FormResolver: 3 entry(ies) resolved, dropped: 0 unresolved, 0 non-NPC, 0 self-recast, 0 duplicate; 0 cross-race accepted.
VisualCopy: 3 applied, 0 failed.


The applied count tells you how many NPCs Recast is now driving. Any error lines name the exact TOML file and line that had the problem, so fixing them is straightforward.


Common Errors


If you see "form not found", the source NPC's plugin probably is not loaded. Check your load order.

If you see "duplicate target", two of your entries point at the same NPC. Pick one, or use the priority field to decide which wins.

If you see "non-NPC", you accidentally pointed at a weapon or armor record instead of an NPC. Double check the FormID or EditorID.

If you see "cross-race accepted" as a warning (not an error), that just means you replaced an NPC's face with an NPC of a different race.


Recast still applies the swap. The warning is there in case the cross-race pairing was unintentional.


A Complete Example


Here is a full working example you can adapt:


[manifest]
name = "Beautiful Whiterun Replacer"
priority = 100
api_version = 1

[replacements]

# Lydia replaced using EditorID
Lydia = "BWR_LydiaReplacement"

# Carlotta replaced using FormID (because there are several Carlottas in mods)
"0x000133D8~Skyrim.esm" = "BWR_CarlottaReplacement"

# Olfina replaced using EditorID
OlfinaGrayMane = "BWR_OlfinaReplacement"

# Adrianne replaced using EditorID
AdrianneAvenicci = "BWR_AdrianneReplacement"


That is everything you need to know to get started. Recast handles the rest.

Requirements

Permissions and credits

  • Do all the assets in this mod belong to you and/or do you have permission to redistribute these assets?

    Yes

  • Do you allow others to upload fixes, compatibility patches or updates for your mods as a separate mod page?

    No, I do not wish for fixes to be uploaded even if I am retired/inactive

  • Do you allow others to upload edits to your mods as a separate mod page?

    No, I do not allow edits to my mod under any circumstances

  • Do you allow others to use assets in your mods in their own mod pages with credit?

    No, I do not allow assets in my mod to be used under any circumstances

  • Do you allow translations for your mod?

    Only if you contact me to ask permission first

  • If you consented to derivative works (updates, translations, assets being in another mod), can they be made through the use of AI?

    Only if you contact me to ask permission first

Recast

Type: Main
Date uploaded25 May 2026
File Size798.64 KB
Unique DLs62
Total DLs67
Version1.0

An SKSE Runtime NPC Replacement System