Latest version: ...

Dev Build

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

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:

  1. When a door is first loaded it's checked against several exception types
  2. Information about the door is stored, including but not limited to its lock state and level
  3. 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)
  4. 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:

And a big thanks to the entire OpenMW and Morrowind modding communities! I wouldn't be doing this without all of you.

Localization

  1. 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

Installation

OpenMW 0.49 or newer is required!

  1. With umo

    1. Click the "Install with umo" button at the top of this URL
    2. Run umo cache sync custom, then umo install custom

    Adjust custom above if you're using a named custom list.

  2. Manual

    1. Download the mod from this URL
    2. 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
    
  3. Enable

    In order to enable the mod for use:

    1. Add the appropriate data path to your opemw.cfg file (e.g. data="C:\games\OpenMWMods\Gameplay\go-home")
    2. Add go-home-locking-doors.omwscripts to your load order in openmw.cfg or enable it via OpenMW-Launcher

    Go Home! Locking Doors will not start when used alongside of the following mods:

Mod Settings

Please see the in game script menu for detailed descriptions (ESC >> Options >> Scripts >> Go Home! Locking Doors).

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:

  1. Create an exception mod that adds cells from the new content in question to the whitelist
    • See this and this for a reference on both
  2. 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
  3. Go to a cell that you wish to add support for
  4. 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

  1. Use the OpenMW feature to start a test character and spawn into Seyda Neen
  2. Press t (default) open the rest dialogue and rest until 10PM
  3. 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

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"
})

List of recordIds for door objects that should be ignored.

Usage:

I.GoHomeLockingDoors.RegisterDoorBlacklist({
  "Door ID One",
  "Door ID Two",
  "Another Door ID"
})

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}
})

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:

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: