outerwildsmods.com source code

Outer Wilds Mods

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

For modders


Refer to the sample mods in the source code for examples. These mods are not included in releases.

Get started

  1. Create a C# 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 in the in-game MODS menu, or in OWML.Config.json:

KeyDescription
gamePathThe path to the game files. OWML will try to locate the game automatically.
debugModeIf enabled, a lot more information is written to the console. Intended for developers.
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 in the in-game MODS menu, or in config.json:

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 all versions of Outer Wilds.
  • Custom menus only work with the latest version of Outer Wilds - 1.0.7.

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:

OWML

by Alek

The mod loader and mod framework for Outer Wilds

Downloaded 9664 times