Docs menu · Overview+

    You are reading the docs of SDK 1.1.0, an older release. See the latest (1.11.0).

    Start · SDK 1.1.0

    Make mods for OpenRAC

    Change how Ratchet & Clank plays in OpenRAC: new moves, swapped buttons, tweaks to enemies. These docs teach the mod SDK one piece at a time, with code you can copy

    Pick your way in

    Reference

    In this release New 1.1

    SDK 1.1.0, released , describes mod interface 1.1. Since 1.0.3: 712 new names in the API. What changed

    OpenRAC plays Ratchet & Clank natively on a PC. A mod changes how the game behaves: a new way to strafe, swapped buttons, a tweak to an enemy. Players install mods from the OpenRAC launcher's Mods tab, by pasting the address of your repository, and switch them on and off there.

    There are two kinds of behaviour mod:

    Script modNative mod
    Written inLuau (a typed Lua)C or C++
    You needa text editora C/C++ compiler and CMake
    Runs onevery platform, Android includedthe platforms you build it for (the template's workflow builds Windows, Linux and macOS)
    Safetysandboxed: it sees only what OpenRAC gives itruns as code on the player's computer
    Sinceinterface 1.1 (SDK 1.1)interface 1.0

    Start with a script mod unless you need the speed or the reach of native code. Mods of textures, models and levels are made with the level editor instead (editor/MODDING.md).

    Guides#

    1. Getting started: from the template to a mod players can install.
    2. The manifest: openrac-mod.json, field by field.
    3. Settings: options players change in the launcher.
    4. Hooks: how a mod changes what the game does, and the hook ids that never change.
    5. Writing the code:
    6. Packaging and releases: the archive, the workflow, tags.
    7. Install from a link: what the launcher does with your repository.
    8. Where mods live: the folders and files on a player's computer.
    9. Troubleshooting: a mod that does not load, purist mode, crash reports.

    Reference#

    Generated from the SDK's headers, tables and type files by OpenRAC's sdk/tools/gen_reference.py; never edited by hand:

    What is stable#

    Stable, and kept working by every OpenRAC of the same interface major version: the C interface, the manifest, packaging, install from a link, the repository templates, hook ids, and the openrac script API.

    Experimental: anything that names the game's internals: the behaviour catalogue (moby classes, their update functions and pvars), the fields exposed to scripts, and the game functions and addresses a native mod looks up itself. They follow the decompilation and may change. A hook id stays, even when the function behind it is renamed (hooks).

    How OpenRAC is built inside will get guides of its own after the port's move to C++. The design notes are in docs/port/MODS.md (docs/MODS.md in the SDK archive, beside these pages).