Modernize of the original Barefoot Realism on Skyrim SE / AE / VR, including native SKSE accelerator, plus a few Papyrus correctness fixes . All gameplay design, formulas, and balance are the original mod author's work — this project mainly swaps the heaviest Papyrus loops for a CommonLibSSE-NG plugins.
Check the original mod page for details.
Note: It is an beta version, so there might be problems. Please use with caution and report any issues if you run into any.
It is created with CommonLIbSSE-NG, so it is supposed to support all SE/AE/VR version that CommonLIbSSE-NG supports. But I could only test with 1.6.1170.0
Suggest to install with cleaned save or new save since I cleaned ESP.
What's New in NG
Native implemetation replacing Papyrus
| Original Papyrus | Replacement |
|---|---|
PBFTerrainDetectionQuestScript.OnUpdate — every second, did 2× PlaceAtMe + 2× MoveTo + Spell.Cast + 2× Delete + 9× FindClosestReferenceOfTypeFromRef to figure out which surface decal had spawned under the player
|
A single downward havok pick from C++; reads bhkShape::materialID and maps to the mod's 0..8 surface ids
|
PlayerBarefootQuestScript.GetCurrentLocationType — called twice per footstep (~6×/sec while sprinting) doing weather + cell-owner + faction-owner + cell-name substring search
|
Same logic in C++, one VM call per invocation |
PlayerBarefootQuestScript.OnAnimationEvent math — five global reads, five global writes, two Math.Pow calls, ten Config property reads, all in Papyrus per footstep
|
Two native calls (GetStaggerChanceNative for pure compute and ApplyDirtinessPainStep for the dirtiness/pain/roughness state writes)
|
Water detection is delegated to powerof3's PapyrusExtenderSSE (PO3_SKSEFunctions.IsRefInWater).
Papyrus correctness fixes shipped in the native implementation
- Clamp(NewDirtiness, 0, 1) was a no-op in the original (Papyrus pass-by-value with a discarded return). After enough sprinting, FeetDirtiness / FeetPain / FeetRoughness could drift above 1.0. Fixed when implementing in C++
- The sneak branch in GetStaggerChance was unreachable: the original if IsSprinting / elseif !IsRunning / elseif IsSneaking chain made the third arm a dead branch because IsSneaking is never reachable past !IsRunning == false. Reordered to check IsSneaking first.
- `BarefootRealism_AnkleRestraint` — worn items that block changing footwear. By default KID tags anything carrying the ZaZ `zbfWornAnkles` or Devious Devices `zad_DeviousAnkleShackles` keyword.
- `BarefootRealism_Shoes` — footwear that counts as "shoes" (still allowed past ankle restraints when the MCM option is on). By default KID tags armor with "Shoes" in its name.
- `BarefootRealism_BarefootException` — footwear that counts as barefoot (e.g. DDx slave heels). The MCM "Set worn as barefoot exception" button tags the worn item with this keyword (persists across saves); whole categories can be tagged by editing the INI.
Integrations
- Bathing in Skyrim - Renewed The original Bathing in Skyrim in the mod is changed to integrated with new BiSR.
Source
Edited by AsaChiri
New version with new dependencies
What's New in Version 0.2.0
Released
- Cleaned ESP file and updated to Form 44.
-
Footwear / ankle-restraint / barefoot-exception detection is now keyword-driven via Keyword Item Distributor (KID). New requirements: KID and powerofthree's Papyrus Extender. The bundled `BarefootRealism_KID.ini` reproduces the previous behavior and can be edited to support more items. The "Set current as exception" MCM button now tags the worn footwear with a keyword (persisted across saves) instead of storing a single item.
- Install the original mod including all its dependencies.
- Install extra dependencies (SKSE, Address Library for SKSE Plugins, powerof3's Papyrus Extender, Keyword Item Distributor) if you haven't, but I guess you should have.
- Install this mod and let it override the original mod.