Locks doors during night hours, unlocks them during daytime. Highly configurable.
Dynamically supports anything, carefully built to avoid conflicts with an interface for adding custom rules.
Requires OpenMW 0.49 or newer!
→ Features
-
Doors dynamically lock each night
-
Lock chance and level based on how many other nearby doors there are
-
Lock chance also based on: is this a door for a business?
-
Lock level is calculated in a similar manner
-
If a door is already locked by some content (e.g.,
Morrowind.esm
), it will always be locked (and at the level it was locked at by its content file) -
Highly configurable
-
Supported mods:
This mod is not compatible with Nighttime Door Locks!
→ How It Works
This mod dynamically supports all content and has many internal exceptions designed to prevent breaking other mods and quests.
It works like this:
- When a door is first loaded it's checked against several exception types
- Information about the door is stored, including but not limited to its lock state and level
- It will then be processed when cells change or when day becomes night/night becomes day (if enough time has passed since the last processing)
- There is a small chance that a door may not lock or unlock, with some exceptions (doors that are locked by default will always try to relock)
→ Credits
Author: johnnyhostile
Special Thanks:
- LDones for making Nighttime Door Locks
- lelimule for creating the French language cell whitelist
- The OpenMW team, including every contributor for making OpenMW and OpenMW-CS
- The Modding-OpenMW.com team for being amazing
-
All the users in the
modding-openmw-dot-com
Discord channel on the OpenMW server as well as the showcase thread for this mod for their dilligent testing and feedback ❤️ - Bethesda for making Morrowind
And a big thanks to the entire OpenMW and Morrowind modding communities! I wouldn't be doing this without all of you.
→ Localization
- EN: johnnyhostile
-
Playing With A Non-English Copy Of Morrowind
Currently this mod only officially supports named cells for the French release of Morrowind. To use, enable the
go-home-locking-doors-fr.omwscripts
plugin in your load order (load it after the other two plugins for this mod). You'll see a log entry like this when it's active:[12:43:34.405 I] Global[scripts/go-home-locking-doors/rules-fr.lua]: [GoHomeLockingDoors]: Enabling French language support for named cells!
→ Web
- Project Home
- Update Center
- Go Home! on Modding-OpenMW.com
- Source code on GitLab
- Discord thread on the OpenMW server
- Discord thread on the Morrowind Modding Community server
→ Installation
OpenMW 0.49 or newer is required!
-
With umo
- Click the "Install with umo" button at the top of this URL
-
Run
umo cache sync custom
, thenumo install custom
Adjust
custom
above if you're using a named custom list. -
Manual
- Download the mod from this URL
- Extract the zip to a location of your choosing, examples below:
# Windows C:\games\OpenMWMods\Gameplay\GoHome # Linux /home/username/games/OpenMWMods/Gameplay/GoHome # macOS /Users/username/games/OpenMWMods/Gameplay/GoHome
-
Enable
In order to enable the mod for use:
-
Add the appropriate data path to your
opemw.cfg
file (e.g.data="C:\games\OpenMWMods\Gameplay\go-home"
) -
Add
go-home-locking-doors.omwscripts
to your load order inopenmw.cfg
or enable it via OpenMW-Launcher
Go Home! Locking Doors will not start when used alongside of the following mods:
-
Add the appropriate data path to your
→ Mod Settings
Please see the in game script menu for detailed descriptions (ESC >> Options >> Scripts >> Go Home! Locking Doors).
-
The hour that doors unlock (default:
8.5
) -
The hour that doors lock (default:
21.5
) -
The maximum chance a door will lock (default:
95
) -
The maximum lock level a door will be locked at (default:
75
) -
Extra weight for business doors (default:
15
) -
Enable debug messages in the log (default:
No
)
→ Adding Support For New Content
This mod is designed to be very conservative about the doors it affects and as such out of the box won't affect any new content. To add support:
- Create an exception mod that adds cells from the new content in question to the whitelist
-
Run this mod with the content in question, ensure debug logging is
enabled
- ESC >> Options >> Scripts >> Go Home! Locking Doors >> Mod Settings >> Enable debug messages in the log
- Go to a cell that you wish to add support for
- The log will list each door in that cell and state whether or not it supports them
Depending on the content, this might be enough to support all doors in the given cell. You'll have to inspect the log and see what doors are being blocked or should be blocked and adjust accordingly.
See this
page for more information about how to create a mod that adds
exceptions for Go Home! Locking Doors. In that example, replace
GoHome
with GoHomeLockingDoors
for this
mod.
→ Updating This Mod
When you update this mod on an existing save, upon first loading an automated factory reset is executed by the mod. This allows new exceptions and other mod updates to be applied without any intervention on the part of the user.
Any other special requirements for updating this mod will be listed in the related changelog entry for a release. Usually, an automated factory reset is all that needs to happen but that may not always be the case.
→ How To Test This Mod
If you're trying to work with the code or just wanting to see it do what it says it should do, follow these steps to test out all of the features of this mod.
Please note that it's recommended to enable debug logging prior to doing this, that can be done via the script settings menu at: ESC >> Options >> Scripts >> Go Home! Locking Doors >> Mod Settings >> Enable debug messages in the log
-
Use the OpenMW feature to start a test character and spawn into
Seyda Neen
-
Press
t
(default) open the rest dialogue and rest until 10PM - There is a random chance that local doors may lock, see the log for detailed info about what happened to each door
→ Lua Exceptions Interface
-
RegisterDestCellBlacklist
List of named destination cells for door objects that should be ignored.
Usage:
I.GoHomeLockingDoors.RegisterDestCellBlacklist({
"Cell Name One",
"Cell Name Two",
"Another Cell Name"
})
-
RegisterDoorBlacklist
List of recordIds for door objects that should be ignored.
Usage:
I.GoHomeLockingDoors.RegisterDoorBlacklist({
"Door ID One",
"Door ID Two",
"Another Door ID"
})
-
RegisterGridCellWhitelist
Add a specific unnamed cell to the internal whitelist, use this for cels that are identified only by X and Y grid coordinates.
Usage:
I.GoHomeLockingDoors.RegisterGridCellWhitelist({
{x = -1, y = -7},
{x = 3, y = -6},
{x = 4, y = -5},
{x = 4, y = -7}
})
-
RegisterNamedCellWhitelist
Add a specific named cell to the internal whitelist.
Usage:
I.GoHomeLockingDoors.RegisterNamedCellWhitelist({
"Cell Name One",
"Cell Name Two",
"Another Cell Name"
})
→ Global Lua Interface
Use these from a global script or after doing luag
in
the in-game console:
-
ShowAll()
Print a dump of all global data to the console. Useful for troubleshooting.
I.GoHomeLockingDoors.ShowAll()
→ Report A Problem
If you've found an issue with this mod, or if you simply have a question, please use one of the following ways to reach out:
- Open an issue on GitLab
-
Email
go-home-locking-doors@modding-openmw.com
-
Contact the author on Discord:
@johnnyhostile
-
Contact the author on Libera.chat IRC:
johnnyhostile