Muzako Posted March 22 Posted March 22 Pregnancy Normal-map Swapper NG View File Pregnancy Normalmap Swapper NG is a rewrite of Pregnancy Normalmap Swapper by handroid, reimplemented from scratch as a pure C++ SKSE plugin. The original mod used an ESP with Papyrus scripts — this version replaces all of that with a native DLL, eliminating the ESP dependency and any save-game impact. The plugin automatically swaps body normal map textures based on RaceMenu body morph values. As a morph like `PregnancyBelly` increases, the plugin transitions through progressive texture stages for smooth visual progression. No ESP. No save-game impact. Everything happens at runtime — install or remove at any time. Features: Automatic normal map swapping driven by RaceMenu/SKEE body morphs Monitor multiple morphs simultaneously with configurable combine modes (additive, average, maximum) Per-race texture support with auto-detection of texture stages Weight-variant textures (maps actor weight to different texture sets) Race alias via `Use.txt` (vampire races can share base race textures) Papyrus ModEvent API (`PNSUpdateRequest`) — backward-compatible with the original PNS Force-update hotkey (default: LShift+LAlt+Y, configurable) Periodic polling with configurable interval Works on player and NPCs automatically — no SPID needed Drop-in replacement for PNS v2.x (same texture layout, same API, no ESP required) Normal map textures are NOT included. You need a compatible texture pack such as dw's Pregnant Normal Maps for CBBE 3BA. Requirements SKSE (Skyrim Script Extender) Address Library for SKSE Plugins RaceMenu (provides the body morph and NiOverride APIs this plugin depends on) A compatible normal map texture pack placed in `Data/textures/PNS/` Install Instructions Extract the archive into your Skyrim `Data/` folder, or install with your mod manager Install a compatible normal map texture pack into `Data/textures/PNS/` (Optional) Edit `Data/SKSE/Plugins/PNS-NG/Config.json` to customize settings Launch the game through SKSE Your folder structure should look like: Data/ ├── SKSE/Plugins/ │ ├── PregnancyNormalmapSwapperNG.dll │ └── PNS-NG/ │ └── Config.json └── textures/PNS/ └── _Default/ └── female/ ├── femalebody_1_msn_p1.dds ├── femalebody_1_msn_p2.dds └── ... Upgrading from PNS v2.x: Remove the old mod/plugin (keep the textures), install this version. Credits: Pregnancy Normalmap Swapper by handroid — the original mod this is based on SKSE Changelog: Quote v1.0.1 Fixed Texture partitions now documented as starting at `p1` — no `p0` texture is needed. When the morph value is at or below the minimum, the plugin removes the overlay and restores the original normal map automatically. Existing `p0` files on disk are harmless but ignored. Updated README and texture authoring guide to reflect 1-based partitions. v1.0.0 Initial release as Pregnancy Normalmap Swapper NG — a full rewrite of PNS v2.x. Features Pure C++ SKSE plugin — zero ESP, zero save-game impact Automatic normal map swapping based on RaceMenu/SKEE body morphs Multiple morph support (`MorphNames` array) with configurable combine mode (`MorphCombineMode`) Per-morph key aggregation modes: additive, averaged, maximum (`MorphMode`) Cross-morph combination modes: additive, average, maximum (`MorphCombineMode`) Per-race texture support with auto-detection of partition count Weight-variant textures mapped from actor weight Race alias via `Use.txt` for vampire/variant races Papyrus ModEvent API (`PNSUpdateRequest`) — backward-compatible with PNS v2.x Force-update hotkey configurable as an array of DirectInput scan codes Periodic polling with configurable interval Actor filtering (gender, keywords, child exclusion) Config at `Data/SKSE/Plugins/PNS-NG/Config.json` Linux cross-compilation support via `clang-cl` + `xwin` Drop-in replacement for PNS v2.x (no ESP, same texture layout, same API) Submitter Muzako Submitted 03/22/26 Category Adult Mods Requirements SKSE, Address Library for SKSE Plugins, RaceMenu Regular Edition Compatible No Install Instructions Install Instructions 1. Extract the archive into your Skyrim `Data/` folder, or install with your mod manager 2. Install a compatible normal map texture pack into `Data/textures/PNS/` 3. (Optional) Edit `Data/SKSE/Plugins/PNS-NG/Config.json` to customize settings 4. Launch the game through SKSE 2
Mister X Posted March 23 Posted March 23 Hey, this looks very good, though the OG mod says that no "p0" texture is needed anymore. Is it still needed for this NG version of the mod?
GownTwiceItself691764 Posted March 23 Posted March 23 looks like i have to go find the mirrors to those BNP pregnancy normalmaps that one guy on here made.
Uffda Posted March 23 Posted March 23 So, what mods needs this? I thought Fertility mode and most of the preg mods used it automatically.....
Muzako Posted March 23 Author Posted March 23 7 hours ago, Mister X said: Hey, this looks very good, though the OG mod says that no "p0" texture is needed anymore. Is it still needed for this NG version of the mod? Hey! There is actually no need for the "p0" texture, I've update the docs to reflect it. When the value is 0 it just removes the added normal map.
Muzako Posted March 23 Author Posted March 23 38 minutes ago, Uffda said: So, what mods needs this? I thought Fertility mode and most of the preg mods used it automatically..... This plugin is independent, it updates the normal-map based on morph values so it should work with any plugin/mod.
bloodrequest Posted March 23 Posted March 23 Would it be fine if i used Mu Dynamic NormalMap instead of dw's?
Muzako Posted March 24 Author Posted March 24 1 hour ago, bloodrequest said: Would it be fine if i used Mu Dynamic NormalMap instead of dw's? You can use any normal-map as long as it is correctly structured in the folder. Mu Dynamic NormalMap already achieves normal-map swapping, they would collide if run in parallel. 1
40Karats Posted March 24 Posted March 24 (edited) I get femalebody_1_msn_p1 applied even though the body morph is at 0. Using v1.0.1. Also, at what morph values are the normal maps swapped and is it configurable? Because I get p2 applied at around 0.1, p3 at 0.2, and p4 at 0.4. But I want to make it swap at 0.2, 0.4, 0.6, 0.8. What do the options in the config file do? You mention a readme but I can't find it. Edited March 24 by 40Karats
Muzako Posted March 25 Author Posted March 25 On 3/24/2026 at 2:14 AM, 40Karats said: I get femalebody_1_msn_p1 applied even though the body morph is at 0. Using v1.0.1. Also, at what morph values are the normal maps swapped and is it configurable? Because I get p2 applied at around 0.1, p3 at 0.2, and p4 at 0.4. But I want to make it swap at 0.2, 0.4, 0.6, 0.8. What do the options in the config file do? You mention a readme but I can't find it. Each stage is given equal "spacing" between minValue and maxValue. So if you have 4 normalmaps, and the min/max are 0/1 then it will be from 0-0.25, 0.25-0.5, etc. The docs where in the src zip, I've now included them in the main zip as well. I added a possible fix for the first stage, download the new version and test it. You can also try playing with the settings, the docs are in docs/configuration.md
NativeEngoyer Posted March 25 Posted March 25 dw's normalmaps have 5 images (20%, 40%, 60%, 80%, 100%) does it mean that 20% should be named femalebody_1_msn_p1.dds, 40% - femalebody_1_msn_p2.dds ... 100% - femalebody_1_msn_p5.dds ?
Muzako Posted March 26 Author Posted March 26 23 hours ago, NativeEngoyer said: dw's normalmaps have 5 images (20%, 40%, 60%, 80%, 100%) does it mean that 20% should be named femalebody_1_msn_p1.dds, 40% - femalebody_1_msn_p2.dds ... 100% - femalebody_1_msn_p5.dds ? Exactly, start from 1 until how ever many stages there are.
Muzako Posted March 26 Author Posted March 26 2 hours ago, SIKguy said: Can we get VR support?) No idea how to support the VR version, I only play SE/AE. The source is available in the downloads if anyone wants to make it compatible.
Kingslayer101 Posted March 26 Posted March 26 Will this work? I've got a bunch of stages setup for different normal maps based on weight on the old PNS 2.1. There's line 11 stages of muscle normals from BnP and the p1-5 are stages of pregnancy.
Muzako Posted March 26 Author Posted March 26 If the texture pack worked with PNS 2.1 then it should work fine with this version.
WipeLawn Posted March 27 Posted March 27 Thanks for sharing this mod, I always loved the original version, even though it was known to cause some issues. Just to warn people switching from 1.0.1 to 1.0.2 on an ongoing save, some textures called by this mod won't load properly anymore. You'll have to start a new game (or clean save maybe, I didn't try) for them to load properly. Luckily I was already planning to start a new game so no biggies for me.
Whatevs120 Posted March 27 Posted March 27 I have a suggestion: I think PNS was always great for people who put abs on their characters because Mu Dynamic NormalMap's auto generated abs are a bit lacking and they look weirder when pregnant. At the same time Mu Dynamic NormalMap is great for skin indentations. As a compromise to use both, could this mod somehow be made to swap MDNM's overlay and mask textures instead of the regular normals? This way you could have the best of both worlds. PNS handling the belly overlays while MDNM handles the rest. That being said, thanks for making a SKSE version. It was much needed
Muzako Posted March 28 Author Posted March 28 On 3/27/2026 at 9:12 AM, WipeLawn said: Thanks for sharing this mod, I always loved the original version, even though it was known to cause some issues. Just to warn people switching from 1.0.1 to 1.0.2 on an ongoing save, some textures called by this mod won't load properly anymore. You'll have to start a new game (or clean save maybe, I didn't try) for them to load properly. Luckily I was already planning to start a new game so no biggies for me. That's weird, the plugin should not have persisting effects for the save. You should be able to install/uninstall at any time, the normalmaps are replaced on runtime only. I'll investigate to see if there is a persistence issue.
Muzako Posted March 28 Author Posted March 28 On 3/27/2026 at 12:00 PM, Whatevs120 said: I have a suggestion: I think PNS was always great for people who put abs on their characters because Mu Dynamic NormalMap's auto generated abs are a bit lacking and they look weirder when pregnant. At the same time Mu Dynamic NormalMap is great for skin indentations. As a compromise to use both, could this mod somehow be made to swap MDNM's overlay and mask textures instead of the regular normals? This way you could have the best of both worlds. PNS handling the belly overlays while MDNM handles the rest. That being said, thanks for making a SKSE version. It was much needed You are welcome! I'm currently looking into integrating it with Mu Dynamic NormalMap and also integrating it better with Skill Based Muscle. 1
Qwert_yyy Posted March 28 Posted March 28 If I remember correctly, the game can't load two normal map textures onto one object and mix them?
Whatevs120 Posted March 28 Posted March 28 1 hour ago, Muzako said: You are welcome! I'm currently looking into integrating it with Mu Dynamic NormalMap and also integrating it better with Skill Based Muscle. That would be amazing!
Muzako Posted March 28 Author Posted March 28 2 hours ago, Qwert_yyy said: If I remember correctly, the game can't load two normal map textures onto one object and mix them? Using NiOverride it can only support one normal map. Mu Dynamic NormalMap uses a custom shader. The problem is that the NormalMap expected for Mu Dynamic NormalMap is in a different format and with a mask, completely different from the normal maps expected for this plugin. Mu Dynamic NormalMap overlays/mixes normal maps dynamically, this plugin completely overrides the entire normal map. I think it's going to be easier to make another plugin that is built from the ground up for Mu Dynamic NormalMap
Qwert_yyy Posted March 29 Posted March 29 20 hours ago, Muzako said: Using NiOverride it can only support one normal map. Mu Dynamic NormalMap uses a custom shader. The problem is that the NormalMap expected for Mu Dynamic NormalMap is in a different format and with a mask, completely different from the normal maps expected for this plugin. Mu Dynamic NormalMap overlays/mixes normal maps dynamically, this plugin completely overrides the entire normal map. I think it's going to be easier to make another plugin that is built from the ground up for Mu Dynamic NormalMap Thank you for your clear and detailed answer. 1
calvin67 Posted April 23 Posted April 23 (edited) I dont see a PNS folder under textures. Am i making my own folders inside this mod or am I missing something? (I'm using mo2) Edited April 23 by calvin67
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now