Modhold
Skyrim SE
ToolFreev1.6.0

Visage NPC Face Library and Replacer System

Build self-contained NPC face libraries for Skyrim SE. Pick the faces you want from as many appearance mods as you like, and Visage copies them into one plugin that masters only on Skyrim and the DLC. Disable the originals, reclaim your load order slots, and lose the conflicts. A standalone app that never touches your existing mods.

ColdSun21Pass @ColdSun
0Unique downloads
1.8kDownloads
13kViews
0Vouches
–no scores yetScore
V I S A G E

Build self-contained NPC face libraries for Skyrim SE.

Harvest the faces you love. Reclaim your load order.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Overview

You have a dozen appearance mods installed because you liked three faces in each one.

Every one of them eats a load-order slot, fights the others over the same NPC records, and drags along records you never wanted.

Visage fixes that. Pick the NPCs whose faces you actually want, from as many mods as you like, and Visage copies their appearance into a single plugin that masters only on Skyrim and the DLC (plus any shared asset pack your source mods rely on). Then you disable the original plugins. One library, one slot, no conflicts.

Note: Visage is a standalone Windows desktop app. It is not a mod, nothing gets installed into your game folder, and it never writes to your existing mods. It only reads them, and every output is a fresh zip you choose the location of. The app is code-signed through Azure so Windows and antivirus tools can verify it came from ColdSun.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

What It Does
  • Copies faces, not mods - Visage reads the NPC records out of your appearance mods and writes fresh copies into your own plugin, re-prefixed VIS_. Head parts, hair colors, face tints, and everything else the face depends on come along, so the library never needs the source mod as a master
  • No dependency on the mods you harvested - a finished library masters only on Skyrim.esm and the DLC, so it cannot break when you disable the mod you took a face from
  • Keeps your assets in place - loose meshes and textures are pointed at, not copied, which is why you disable the source plugins and leave the mods themselves installed. Files that live only inside a mod's BSA are the exception: those get extracted into the library, since a BSA unloads with its disabled plugin
  • Shows you the face first - every NPC in the picker has a 3D preview built from their actual FaceGen, so you choose by face, not by EditorID
Two extras ship alongside the core builder:
  • Import Face - bring a RaceMenu sculpt of your own into a library as a brand-new NPC
  • Recast Patches - map a library face onto any NPC already in your load order at runtime, with no ESP edits at all
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Requirements
  • Skyrim Special Edition or Anniversary Edition on Windows
  • The appearance mods you want to harvest, installed and deployed
  • Mod Organizer 2, Vortex, or a plain mods folder
  • Racemenu - only if you want to use Import Face
  • Recast - to create the Recast patches for easily replacing NPC with zero conflicts
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Getting Started

Run the installer, launch Visage, and on first run it asks you to point it at two folders.
  • Skyrim folder - the install root that contains SkyrimSE.exe. Visage finds the Data folder inside it automatically
  • Mods folder - where your mods actually live. For MO2 that is your mods\ folder; for Vortex it is the staging folder, usually under AppData\Roaming\Vortex\skyrimse\mods
Then pick your mod manager mode, which decides how Visage resolves conflicts between mods:
  • Manual - reads the mods folder as-is, loose files win. Fine if you do not use a manager
  • Mod Organizer 2 - reads the active profile's modlist and load order, so conflicts resolve by mod priority exactly as the game sees them. Pick your profile from the dropdown
  • Vortex - reads the deployment manifest and plugins.txt. Deploy in Vortex before building
Visage tries to detect your manager and tells you what it found. Getting this right is what makes Visage see the same winning records your game does.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Building a Library

Open Create Library and walk the wizard.

Name

Name the library, something like Pretty Girls. Visage derives the plugin name from it, so that becomes VIS_PrettyGirls.esp. Spaces are fine; they are just stripped from the filename.

Source mod

Visage scans your mods folder for every plugin that contains NPC records and lists them, excluding vanilla and DLC automatically. The first scan takes a few seconds, then results are cached. Search to narrow the list and click the mod you want to take faces from.

NPCs

Every NPC in that mod appears as a card with its name, EditorID, FormID, race, and sex. Filter by name, race, or sex. Preview any NPC to open their face in 3D (drag to rotate, scroll to zoom); faces load only when you ask, so browsing stays fast. Click a card to include that NPC, then hit Add to library.

Repeat

This is the part that makes Visage worth using. You are dropped back at the mod list, so pick another mod, take a few more faces, and keep going. A running tally shows what you have gathered so far.

Review and Build

Everything you picked, grouped by the mod it came from. Remove a whole mod or a single NPC if you changed your mind, confirm the names look right, then Build library and choose where to save the zip.

The report

When it finishes, Visage tells you how many NPCs were copied, how many records that pulled in, and how many FaceGen files came along. It also lists anything you need to know:
  • Extracted from BSA - files pulled out of source archives into the library, because a BSA stops loading once its plugin is disabled
  • Skipped NPCs - with the reason, usually a custom race added by a mod
  • Plugins to keep enabled - shared asset packs your library now depends on
  • Mods to keep installed - the mods supplying the meshes and textures your library points at
  • Missing FaceGen - NPCs whose face files were not found loose or in a BSA, usually shipped in a separate assets mod
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Installing Your Library

Install the zip with your mod manager like any other mod. It contains the plugin and its FaceGen at the archive root, so it works in MO2 and Vortex without repackaging.

Then the important part: disable the source PLUGINS, not the source MODS.

Uncheck the .esp files of the mods you harvested, but leave the mods themselves installed and enabled, because your library still uses their meshes and textures. That is what buys back your load-order slots without breaking anything. Visage reminds you with a popup listing exactly which files to touch, and if a source mod depends on a shared asset pack, that pack's plugin stays enabled and is never offered for disabling.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Extend It Later

The Libraries screen keeps every library you have built, along with the full recipe: which mods, which NPCs.
  • Open in wizard - reloads the whole recipe so you can add more faces and rebuild
  • Show zip - reveals the built archive in Explorer
  • Delete - removes the saved recipe only; your zip is never touched
If a source mod is no longer installed, Visage flags it in amber, so you know that part of the recipe cannot be rebuilt until you put the mod back.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Import Face

Sculpted someone in RaceMenu you want to keep? Import Face adds that sculpt to an existing library as a new NPC. You need four files from your RaceMenu export:

  1. The CharGen head mesh, .nif
  2. The facetint texture, .dds
  3. The RaceMenu preset, .jslot
  4. The savepcface sculpt, .npc


Open a library, choose Import Face, and browse to the head mesh. Visage guesses the other three paths from it, validates the set, and reads the race and sex straight out of the sculpt. Name the face, run the preview to see exactly what will be written, then apply. The import is recorded in the library recipe, so it comes back if you rebuild that library later.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Recast Patches

Recast patches are the other way to use a library. Instead of a replacer plugin, they tell the Recast SKSE plugin to apply a face at runtime, so there are no ESP edits and no conflicts at all.

  1. Open Recast Patches and start a new patch. Name it and pick which library the faces come from
  2. Visage indexes every named, unique NPC in your load order. For each face in the library, assign a target NPC. The picker filters to matching sex and warns you before mapping a beast-race face onto a humanoid, since those head shapes are not compatible
  3. Auto-match does the work for you. Faces from replacer mods are matched by identity, so big replacer packs map themselves in one click; everything else is matched by name when there is exactly one safe candidate. It never touches an assignment you made by hand, and leaves anything uncertain for you
  4. Optionally set extras per swap: rename the NPC, change their voice type, or swap in a different body. The body picker lists actual body meshes from your mods, not the thousands of wearable armors in your load order
  5. Set a priority, review the mapping, and export


You get a zip containing the patch TOML under SKSE/Plugins/Recast/Patches/. Install it with your mod manager. The Recast SKSE plugin has to be installed, and the library mod stays enabled, since that is where the faces live.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Good to Know

Asset packs are supported. Many follower and NPC mods keep their shared hair, eyes, and bodies in a separate asset pack. Visage keeps that pack as a dependency of your library rather than copying it in, and the completion screen tells you which plugins to keep enabled. Everything else is still copied, so you disable the source plugin as usual and leave the pack alone.

Visage tells you what your library needs. Because it points at meshes and textures rather than copying them, a finished library depends on the mods supplying those files. The completion screen lists them, including asset packs that ship no plugin at all. If you share a library, that list is its requirements. Body replacers show up there too, since copied body records use the standard body paths those mods override.

Some NPCs get skipped, on purpose. An NPC on a custom race added by a mod cannot be copied, because reproducing the race would drag a foreign master into your library and defeat the point. Visage tells you which NPCs were skipped and why.

BSA-packed mods just work. If a mod ships its FaceGen, tints, meshes, or textures inside a BSA, Visage extracts exactly what the library needs out of the archive. Nothing is unpacked into your source mods, and anything shipped loose is left where it is.

Plugins off, mods on. Worth repeating, because it is the single most common way to break a library. Disable the source plugins, keep the source mods installed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Compatibility

Works with:
  • Mod Organizer 2, Vortex, or a plain mods folder
  • Appearance mods, replacer packs, and follower mods as face sources
  • Shared asset packs, kept as a library dependency instead of copied
  • BSA-packed mods, with the needed files extracted into the library
  • The Recast SKSE plugin, for runtime face patches with no ESP edits
Visage never writes to your existing mods and never touches your game folder. Every result is a standalone zip.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Created by ColdSun

Developed by an engineer with 35 years of experience in the field

AI was used as an assistant to development

The app is signed through the Azure Signing Program

Built with Tauri | SvelteKit | Rust