Modathon
Disabled Reference Integrity Fix (SKSE) mod for The Elder Scrolls V: Skyrim Special Edition
Latest06 Apr 2026
Uploaded04 Apr 2026
Version1.2.0
530.38 KB
Total Files Sizes
0
Unique DLs
0
Total DLs
3
Total Files

Disabled Reference Integrity Fix AE (SKSE)

File Size176.3 KB
Game Image for The Elder Scrolls V: Skyrim Special Edition
6
Bug Fixes

⟳ Last Commit ⚠ Issues ⚖ License ⬆ Releases


Description


Disabled Reference Integrity Fix is a lightweight SKSE plugin that fixes micro-stutter caused by broken references and navmesh data placed below Skyrim's worldspace floor. In heavy load orders, some records end up with Z values below the engine boundary (below z=−30000). That can create constant background work for the engine and lead to stutter spikes. This plugin intercepts those references before their meshes and textures ever load, and corrects invalid data automatically.


Requirements


  1. SKSE64
  2. Address Library
  3. Visual C++ Redistributable


What It Fixes


Heavily inspired by Z-Floor Patcher, this SKSE plugin operates under defined and strict rules to ensure only the problematic records are being fixed. The rules are the following:

If a record is flagged as initially disabled and is not persistent / has no parent / not linked to a quest and has a Z position ≠ −30000, then it is auto set to −30000.

  1. If a record is set to −30000 or below but not initially disabled, then it is given the flag.
  2. If a record is flagged as deleted and is not a navmesh, then remove the deleted flag, add the init disabled flag and put to −30K.
  3. Places all vertices of an initially disabled navmesh to −30000 in accordance with what the Z-Floor Patcher does.
  4. For every ref that gets changed by the DLL, the playerRef parent is also added with the flag "set enable state opposite to parent" to ensure they are never re-enabled by accident. This is a synchronisation safety measure, many plugins with disabled refs already do this.

Skyrim can tolerate many data issues, but bad placement coordinates are particularly annoying because they still get rendered, and in particular, deleted references can in some cases lead to crashes.


Basically, this plugin fixes objects in-game that are not correctly disabled and therefore still render. It also fixes objects marked as "deleted" (you should never remove an object this way, it can cause issues) and fixes navmeshes with vertices set to a too-low vertical position.


Disabled Reference Integrity Fix does not try to be a general "performance magic" mod. It solves small mistakes made by mod authors to ensure that only what we want seen is rendered.


Core Behavior


The core plugin function of manipulating record flags and positions was adapted from Base Object Swapper source code.

The plugin can run in two phases:

Phase 1: Primary

InitItemImpl + Load3D Hooks

Intercepts references before their meshes and textures load. This is where actual stutter prevention happens. References at −30000 without the initially disabled flag are caught and gated here unconditionally, no exclusion logic can cause them to be silently skipped.


Phase 2: Secondary

Cell Load & Save Events

Runs on cell load events and on save load. Handles Disable() calls, enable parent attachment, navmesh vertex correction, and acts as a safety net for anything the hooks may have missed. Fires after meshes are already loaded but ensures correct game state going forward.

This keeps correction automatic while avoiding broad, blind edits. The plugin is script-free and lightweight, no scripts, no MCM, no UI frameworks, no gameplay systems. Event-driven behavior instead of constant polling. The plugin only engages during cell processing.


Configuration


Everything is configurable in DisabledReferenceIntegrityFix.ini:

enable_logging = true
verbose_logging = false
log_level = 3

fix_references = true ; Enables reference correction logic.
fix_navmeshes = true ; Enables navmesh vertex correction below floor (EXPERIMENTAL)
auto_fix_on_cell_load = true ; Keeps protection active while you move through the world.

patch_interior = true ; Scans and fixes interior cells only.
patch_exterior = true ; Scans and fixes exterior cells only.

include_deleted_refs = false ; Off by default. Recovery of deleted records is advanced behavior.
fix_all_init_disabled = false ; More aggressive handling of InitiallyDisabled refs.

max_refs_per_batch = 0 ; Cap per-cell work for softer incremental cleanup on heavy setups.


Exclusions and Control


By default only marker-type references are excluded from correction. Any other form type sitting at −30000 without the initially disabled flag will be processed.

You can exclude known sensitive content via the INI:

Exclude by plugin name Exclude by FormID

This lets you keep known edge-case content untouched while still benefiting from automated cleanup elsewhere. DynDOLOD.esp is excluded by default, as the effect of position changes on the initially disabled records it modifies is not yet confirmed.


Logging and Diagnostics


Logging is built-in and configurable.

Standard Mode

Useful operational summaries without noise.

Verbose Mode

Available for deep troubleshooting sessions.

Log Levels

1=error · 2=warn · 3=info · 4=debug · 5=trace


Logging keeps track of the record type and FormID so you can see exactly what was problematic. If you want to verify in-game that fixes are being applied, use the Prid console command to select a reference regardless of its state, then inspect it with More Informative Console. Example: Prid 0xFECF0871

▶ Example log output[18:08:58.740] [I] DisabledReferenceIntegrityFix v1-1-0-0
[18:08:58.740] [I] [Disabled Reference Integrity Fix] Early reference hooks installed (InitItemImpl + Load3D)
[18:10:36.474] [I] [ref-fix] stage=init reason=below_floor_gate ref=0x01000DBC oldZ=-30000.000 newZ=-30000.000 cell=0x00009659 cellType=ext cellXY=(4, -5) srcRef=wip Skyrim Regional Forests Framework 1.0.esp
[18:10:36.917] [I] [ref-fix] stage=init reason=below_floor_gate ref=0xFE41D4E1 oldZ=-30000.000 newZ=-30000.000 cell=0x000099C4 cellType=ext cellXY=(-1, -1) srcRef=Serpents_Covenant_Merged.esp
[18:10:40.599] [I] [ref-fix] stage=init reason=below_floor_gate ref=0x000C0627 oldZ=-30000.000 newZ=-30000.000 cell=0x00009712 cellType=ext cellXY=(5, -11) srcRef=Ivy - Riverwood Windmill Garden.esp
[18:10:48.038] [I] [ref-fix] stage=init reason=below_floor_gate ref=0x00077E93 oldZ=-30000.000 newZ=-30000.000 cell=0x000093BF cellType=ext cellXY=(-11, 15) srcRef=Environs - Hroggars House.esp
[18:10:52.742] [I] [ref-fix] stage=init reason=below_floor_gate ref=0x000C3C6E oldZ=-30000.000 newZ=-30000.000 cell=0x00009883 cellType=ext cellXY=(8, -23) srcRef=MoveableChain.esp
[18:11:17.896] [I] [ref-fix] stage=init reason=below_floor_gate ref=0x5A000808 oldZ=-30000.000 newZ=-30000.000 cell=0x0000BCB0 cellType=ext cellXY=(41, -23) srcRef=Riften Docks Overhaul.esp
[18:11:36.452] [I] [ref-fix] stage=init reason=below_floor_gate ref=0x00015B2A oldZ=-30000.000 newZ=-30000.000 cell=0x00009292 cellType=ext cellXY=(-7, 24) srcRef=wip Skyrim Regional Forests Framework 1.0.esp
[18:11:37.644] [I] [ref-fix] stage=init reason=below_floor_gate ref=0xFE18D999 oldZ=-30000.000 newZ=-30000.000 cell=0x00009A07 cellType=ext cellXY=(-2, -3) srcRef=Environs - Tundra Farmhouse.esp


Compatibility


Built for Skyrim SE / AE / VR. Compatible with 1.5.97 and 1.6.1170. Other versions are untested.

✓ Compatible with any mod that creates or modifies records.

✓ Complements load-order cleanup and conflict resolution, but does not replace them.

✓ No known conflicts with other SKSE plugins.

As always, if you enable experimental settings, test in your own setup first.


Performance Expectations and Limitations


This mod correctly disables and stops rendering of unwanted records, mostly caused by other mods.


What to expect

  1. Less micro-stuttering
  2. Fewer crashes or bugs caused by deleted records

What not to expect

  1. It will not fix unrelated bottlenecks (scripts, drawcalls, textures, CPU limits…)
  2. It is not a generic FPS booster, just a record fixer.


Results scale with the number of mods you have. This mod only fixes non-base-game content, so a noticeable performance boost is only likely if the mods you use are truly broken.

There is a possibility this mod touches (despite the strict rule system) unintended records. Some records are disabled but not set to −30000 because they are used by quests, have linked parents, or are persistent. Some record types such as Markers must not be touched. If you find any issue, please report it so specific references or plugins can be excluded. You can also blacklist them yourself via the INI.

If you are experienced enough, it is always better to manually fix these issues in xEdit rather than fully relying on this plugin. This is an additional layer of protection, not a replacement for proper load-order management.


FAQ


Is this safe to install mid-save?

Yes.

Should I enable all options immediately?

Start with defaults, playtest, then enable experimental options only if you have a clear reason.

Do I need verbose logging all the time?

No. Keep verbose off for normal play. Use it temporarily when debugging.


Credits & Source Code


SKSE Team for SKSE

Ryan McKenzie for CommonLibSSE

CharmedBaryon for CommonLibSSE-NG-VR

doodlum for pointing out core malfunctions

Supertron for ClibDT - CommonLib Dev Toolkit

powerofthree for Base Object Swapper source code, used as a template

patchulidev, Quantumyilmaz, shazdeh2, J3w3ls, aglowinthefield for assistance, troubleshooting and ideas

Modding Guild and all beta testers for their time testing and providing feedback


⟨/⟩ Source Code on GitHub

If you'd like to support development:

☕ Ko-fi ❤ Patreon

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?

    Yes, but only if I am retired / unresponsive / inactive

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

    Yes, no need to contact me first

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

    Yes, no need to contact me first. Earning GGP is allowed

  • Do you allow translations for your mod?

    Yes, but only if you give me the translation files to add to my base mod

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

    Yes, no need to contact me first. So long as you don't earn GGP

Disabled Reference Integrity Fix AE (SKSE)

Type: Main
Date uploaded04 Apr 2026
File Size176.3 KB
Unique DLs0
Total DLs0
Version1.2.0

For Skyrim 1.6.640 - 1.6.1170. Also works for 1.6.1179 (GOG) Don't forget to endorse the mod if you want to support it!

Disabled Reference Integrity Fix SE (SKSE)

Type: Main
Date uploaded04 Apr 2026
File Size173.37 KB
Unique DLs0
Total DLs0
Version1.2.0

For Skyrim 1.5.97. Don't forget to endorse the mod if you want to support it!

Disabled Reference Integrity Fix VR (SKSE)

Type: Main
Date uploaded04 Apr 2026
File Size180.71 KB
Unique DLs0
Total DLs0
Version1.2.0

For Skyrim VR. Untested. Don't forget to endorse the mod if you want to support it!