Step-by-Step Guide to Create a "Seamless Interior Door" Mod
(For Nexus Mods Release)
This tutorial will help you merge an interior cell into the exterior, add a working door, fix lighting/navmesh, and package it for Nexus Mods.
Phase 1: Set Up the Project
1. Tools Needed
Creation Kit (Skyrim SE)
SSEEdit (for cleaning)
NifSkope (optional, for door models)
2. Create a New Mod
Open Creation Kit → File → New.
Save as SeamlessInteriors.esp.
Phase 2: Move the Interior Cell to the Exterior
(Example: Breezehome)
1. Locate the Interior Cell
In the Object Window, go to:
Worldspace → Interiors → WhiterunBreezehomeInterior.
2. Change the Cell’s Worldspace
Right-click the cell → Worldspace → Select Tamriel.
Reposition the interior:
Open Tamriel in the Render Window.
Drag the interior near Breezehome’s exterior door.
3. Disable the Original Door Teleport
Find WhiterunBreezehomeDoor (RefID: 000165A8).
Remove DoorLoad script (or DefaultDisableHavokOnLoad).
Phase 3: Add a Functional Door
1. Option A: Static Door (Simplest)
Replace the door with a non-teleporting model (DoorStatic).
2. Option B: Animated Door (Recommended)
Assign an Animated Door Model (e.g., FarmhouseDoor01).
Attach Script:
papyrus
Copy
ScriptName PH_AnimatedDoor extends ObjectReference
Event OnActivate(ObjectReference akActionRef)
if IsAnimationPlaying("Open") || IsAnimationPlaying("Close")
Return
endif
if GetOpenState() == 0 ; Closed
PlayAnimationAndWait("Open", "Opened")
else
PlayAnimationAndWait("Close", "Closed")
endif
EndEvent
Compile in CK (Ctrl+F4).
Phase 4: Fix Lighting & Navmesh
1. Rebuild Lighting
Select the merged cell → Press Ctrl+F4.
Check "Generate Lighting" → Click OK.
2. Merge Navmesh
Select the interior navmesh → Copy (Ctrl+C).
Paste into the exterior cell → Connect edges (Ctrl+Click).
Phase 5: Dynamic Loading (Optional)
1. Hide Interior Until Door Opens
Group all interior objects under an EnableParent (EnableParent_Breezehome).
Add Script to Door:
papyrus
Copy
ObjectReference Property EnableParent_Breezehome Auto
Event OnActivate(ObjectReference akActionRef)
EnableParent_Breezehome.Enable()
PlayAnimation("Open")
EndEvent
Phase 6: Final Testing
1. In-Game Checks
Open console (~) and type:
coc WhiterunBreezehomeExterior
Test:
Does the door open smoothly?
Does the interior appear correctly?
Can NPCs path inside? (tdt for navmesh debug).
Phase 7: Package for Nexus Mods
1. Create a Mod Folder
Copy
SeamlessInteriors/
│
├── Meshes/
├── Textures/
├── Scripts/
├── SeamlessInteriors.esp
└── README.txt
2. Write a README
Include:
Installation (Manual or Mod Manager).
Compatibility Notes (Conflicts with city overhauls?).
Credits (If using assets from others).
3. Compress & Upload
Zip the folder → Upload to Nexus Mods.
Final Notes
Done! Your mod now has:
A seamless door (no load screen).
Merged interior/exterior lighting & navmesh.
Nexus-ready packaging.
Want me to pre-make a version for Breezehome so you can test before release?