OWML is the mod loader and mod framework for Outer Wilds. It patches Outer Wilds to load mods, and provides mods with a framework to interact with the game. OWML is inspired by SMAPI for Stardew Valley.
OWML does the following:
- Patches the game to make it call the mod loader.
- Starts the game.
- The mod loader loads and initializes installed mods.
With Outer Wilds Mod Manager (recommended):
- Download the latest release of the Mod Manager.
- Use the Mod Manager to install OWML and mods, and start the game.
With Vortex:
- Download OWML and extract the zip file.
- Put the OWML folder in the game's root folder, usually C:\Program Files\Epic Games\OuterWilds.
- Install the Vortex extension.
- Use Vortex to install mods and start the game.
Manual install:
- Download OWML and extract the zip file anywhere you want.
- Download mods and put them in the Mods folder, each mod in a separate folder.
- Start the game with OWML.Launcher.exe.
One mod is included as an example. It's disabled by default, enable in manifest.json.
Sample mod | Description |
---|---|
OWML.EnableDebugMode | Enables the built-in debug mode in the game. Highlights: cycle through debug UIs with F1, warp to planets with the number keys, and explode the sun with the End key. |
Refer to the sample mods for examples.
- Create a class library project targeting .Net Framework 3.5.
- Install the OWML Nuget package.
- Reference the following files in {gamePath}\OuterWilds_Data\Managed:
- Assembly-CSharp.dll
- UnityEngine.CoreModule.dll
- More Unity DLLs if needed
- Inherit from ModBehaviour.
For more info, see For modders.
OWML is configured by OWML.Config.json:
Key | Description |
---|---|
gamePath | The path to the game files. OWML will try to locate the game automatically, set this manually if needed. |
verbose | If this is true, errors from all of the game will be displayed and logged. Intended for modders only. |
Each mod is defined in a manifest.json file:
Key | Description |
---|---|
filename | The filename of the DLL containing the ModBehaviour class. |
author | The name of the author. |
name | The name of the mod. |
uniqueName | Usually {author}.{uniqueName}. |
version | The version number. |
owmlVersion | The version of OWML the mod was built for. |
dependencies | Array of dependency names. Make sure to use the unique name. |
Each mod can be configured with an optional config.json file:
Key | Description |
---|---|
enabled | Whether or not the mod will be loaded. Default: true. |
requireVR | Whether or not the mod requires VR to work. Default: false. |
settings | An object of mod-specific settings. Default: empty. |
Example:
{
"enabled": true,
"requireVR": false,
"settings": {
"enableMusic": true,
"foo": "bar",
"lol": 1337
}
}
More info about config can be found here.
- Tested with all versions of Outer Wilds up to and including v1.0.7.
- Currently Windows only.
I'm working tightly with the mod community to improve OWML and aid in mod development. I'm Alek on the Outer Wilds Discord.
Feature requests, bug reports and PRs are welcome on GitHub.
Authors:
Special thanks to:
- Outer Wilds
- Outer Wilds on Discord
- Outer Wilds on Reddit
- Inspired by (and some code from) SMAPI
- Texture_Turtle for graphics on Nexus page
Dependencies: