Outer Wilds Mods

< All mods

OWML

The mod loader and mod framework for Outer Wilds

Outer Wilds Mod Loader

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.

How it works

OWML does the following: 1. Patches the game to make it call the mod loader. 2. Starts the game. 3. The mod loader loads and initializes installed mods.

Installation

With Outer Wilds Mod Manager (recommended): 1. Download the Mod Manager from the Outer Wilds Mods website. 2. Use the Mod Manager to install OWML and mods, and start the game.

Manual install: 1. Download OWML and extract the zip file anywhere you want. 2. Download Outer Wilds mods and put them in the Mods folder, each mod in a separate folder. 3. Start the game with OWML.Launcher.exe.

Sample mod

One mod is included as an example. It's disabled by default, enable in manifest.json.

Sample modDescription
OWML.EnableDebugModeEnables 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.

For modders

Refer to the sample mods for examples.

Get started

  1. Create a class library project targeting .Net Framework 3.5.
  2. Install the OWML Nuget package.
  3. Reference the following files in {gamePath}\OuterWilds_Data\Managed:
    • Assembly-CSharp.dll
    • UnityEngine.CoreModule.dll
    • More Unity DLLs if needed
  4. Inherit from ModBehaviour.

For more info, see For modders.

Configuration

OWML is configured by OWML.Config.json:

KeyDescription
gamePathThe path to the game files. OWML will try to locate the game automatically.
combinationsBlockInputIf this is true, mod input combinations will block game input.

Each mod is defined in a manifest.json file:

KeyDescription
filenameThe filename of the DLL containing the ModBehaviour class.
authorThe name of the author.
nameThe name of the mod.
uniqueNameUsually {author}.{uniqueName}.
versionThe version number.
owmlVersionThe version of OWML the mod was built for.
dependenciesArray of dependency names. Make sure to use the unique name.

Each mod can be configured with an optional config.json file:

KeyDescription
enabledWhether or not the mod will be loaded. Default: true.
requireVRWhether or not the mod requires VR to work. Default: false.
settingsAn 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.

Compatibility

  • Compatible with the latest version of Outer Wilds - 1.0.7.
  • Currently Windows only.

Feedback

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.

Credits

Authors:

Special thanks to:

Dependencies: