Docs menu · Changelog+

    Releases · SDK 1.11.0

    Changelog

    Every SDK release, newest first. A minor version only adds to the interface, so a mod built for 1.2 still loads on 1.11. Something is removed only with a new major version

    SDK 1.11.0latest

    · interface 1.11 · release on GitHub

    • feat(sdk): a data folder per mod and the save slot in use, interface 1.11 #172
    • chore: rename rac1-mods to openrac-mods #162
    • fix: open issues #39 #48 #66 #127 #135 #141 #152
    • feat(sdk): add rac1 hook points for menus, HUD, vendor, ammo drops and saves #136

    SDK 1.10.1

    · interface 1.10 · release on GitHub

    • fix(sdk): the templates pin 1.10.1, as the packager requires #118
    • chore(sdk): 1.10.1, the first SDK with Android native mods #117
    • fix(rac1): drones and Novalis sparks, matched C backfills, Exit item, native mods on Android #110

    No change to the API since 1.10.0: fixes and docs only.

    SDK 1.10.0

    · interface 1.10 · release on GitHub

    • feat(sdk): add persistent RAC1 savestate support #103
    • feat: RAC1 online co-op: SDK interface 1.9, the port's play and world calls #99
    • feat(sdk): the world for multiplayer mods, interface 1.9 23cd1c8
    • feat(sdk): play calls for multiplayer mods, interface 1.8 9206c5c
    • fix(port/rac1): stretch a mod's menu pages across the screen, not into it 9dad055
    • feat(sdk): pages of the game's own menus and main-menu items, interface 1.7 38077ef
    • fix(port): generate openrac_game_restore_overlay for games without an overlay hook 3c062f1
    • feat(sdk): front-end menu entries with a page of the mod's own, interface 1.5 fb98e30
    • feat(port): expose warm RAC1 savestates to mods 2f2c9c0
    • feat(port): support Android 9 (API 28) #77
    • refactor(port): stats::probe reads its switches through common/env.h 0d8a65d
    • refactor(sdk/tests): split main into one named check per behaviour, and comment the test 785e83c
    • docs(sdk/include): document every exported name and the headers' order c11e301
    • refactor(sdk/mod.hpp): name private members m_<name> cb9cb39
    • refactor(sdk): template/ named as the source of the files the templates share abfd8da
    • feat(sdk): the pointer over the game's picture, interface 1.3 eb5ea81
    • chore(launcher): the preview's difficulty mod, with its presets of sliders ea1ed93
    • feat(sdk): package_mod.py takes presets of any setting type 6dea7f7
    • feat(port): rac1 hook points for damage, hits, ammo, deaths, the level load and the hero's speed 4d5be5d
    • chore(sdk): version 1.2.0, for the mod interface 1.2 231d337
    • docs(sdk): the keyboard and mouse, keybind settings and presets (interface 1.2) 09c5d87
    • feat(sdk): a mod reports the interface its manifest names c599937
    • feat(sdk): the keyboard and mouse for mods, interface 1.2 1a87871
    • feat(editor): levels open in Godot lit as the game lights them 221180a
    • feat(editor): terrain as a modding family in the asset export and import 37d3041
    • feat(sdk): a tag <id>-v<version> releases only that mod eae1d0c
    • feat(port): rac1 hook points for giving items, planets, the vendor and gold bolts 0ffcd2b
    • fix(sdk): the hook reference lists the catalogue's hook points by their ids 8a02b24
    • feat(sdk): generate the API reference from the SDK's sources c45b8ef
    • feat(hostgen): a hook point under a wrap of the port's own ccc213d
    • feat(launcher): script mods in the store, and mod interface 1.1 261c1b7
    • feat(sdk): a header-only C++ layer over the mod interface 309b33a
    • feat(port): manifests of script mods 40505cb
    • feat(editor): the collision block as data, written back byte-exact and edited 5510d38
    • feat(editor): catalogue hook names Moby_<Class>_Update and a stable classes.json 1689f83
    • feat(editor): the moby behaviour catalogue for modders 744b137
    • feat(sdk): the template is a mod's repository, released by its workflow c6cc3dd
    • fix(ci): make the SDK workflow's build folder before copying into it 22f33a0
    • feat(sdk): a CMake package for building mods f1c04e7
    • feat(sdk): the mod interface's headers 298918e

    SDK 1.7.0

    · interface 1.7 · release on GitHub

    • feat(sdk): pages of the game's own menus and main-menu items, interface 1.7 ebcd92b
    • test(mods): the tick boundary, the snapshot calls and a 1.5 mod on interface 1.6 ee1b622
    • Merge origin/master into the warm savestates branch, interface 1.6 3cd0ea7
    • feat(port): expose warm RAC1 savestates to mods 12342e6

    SDK 1.5.0

    · interface 1.5 · release on GitHub

    • fix(ci): pin the mod templates to SDK 1.5.0 and format the menu test lines eddeb9f
    • feat(sdk): front-end menu entries with a page of the mod's own, interface 1.5 850d5fd
    • feat(sdk): views of the game and a shared Vulkan device, interface 1.4 #82
    • docs(sdk): point every mention of the catalogue generator to sdk/tools 7f61043
    • chore(sdk): the behaviour catalogue names its generator's new place 8eda8ae
    • refactor(sdk): the behaviour catalogue generator moves to sdk/tools c282bba
    • docs(sdk): regenerate the C and C++ references from the documented headers a748780
    • docs(sdk/cmake): comment the platform key, openrac_add_mod and the version file a3e7926
    • docs(sdk/examples): comment frame-counter's state, entry points and branches 36d18a1
    • docs(sdk/template): say how the template mod works and why load refuses another game fa7b10e
    • refactor(sdk/tests): split main into one named check per behaviour, and comment the test 05d98b6
    • docs(sdk/include): document every exported name and the headers' order c196edd
    • refactor(sdk/mod.hpp): name private members m_<name> dbb4e60
    • style(sdk): lay out the SDK's C and C++ with the port's clang-format and blank-line rules e887aa6
    • refactor(sdk): template/ named as the source of the files the templates share 31cceee
    • test(sdk): one file of test vectors for the manifest checks, the SDK's held to it abbadfa

    SDK 1.3.0

    · interface 1.3 · release on GitHub

    • feat(sdk): the pointer over the game's picture, interface 1.3 25a808e

    SDK 1.2.1

    · interface 1.2 · release on GitHub

    • chore(sdk): version 1.2.1, with hook ids and presets of any setting in package_mod.py 4743c95
    • docs(sdk): presets of any setting type fd7a108
    • feat(sdk): package_mod.py takes presets of any setting type 8c1ed0e
    • fix(sdk): package_mod.py takes hook points by id or alias, checked against the binding table 003edc8
    • feat(port): rac1 hook points for damage, hits, ammo, deaths, the level load and the hero's speed 5ae8a5c

    SDK 1.2.0

    · interface 1.2 · release on GitHub

    • chore(sdk): version 1.2.0, for the mod interface 1.2 7340dfb
    • docs(sdk): the reference names OPENRAC_MOD_TARGET_MINOR 6c12dcf
    • docs(sdk): the keyboard and mouse, keybind settings and presets (interface 1.2) 8539593
    • feat(sdk): a mod reports the interface its manifest names 7e105ae
    • feat(sdk): the keyboard and mouse for mods, interface 1.2 e4c480f

    SDK 1.1.2

    · interface 1.1 · release on GitHub

    • chore(sdk): version 1.1.2, under the MIT license 3392337
    • docs: the SDK's license is MIT, and its releases stay in OpenRAC's list fed9160
    • chore(sdk): the SDK is under the MIT license 44d1f39
    • chore(sdk): regenerate the behaviour catalogue for the new rac1 hook points 6c40069

    No change to the API since 1.1.1: fixes and docs only.

    SDK 1.1.1

    · interface 1.1 · release on GitHub

    • chore(sdk): version 1.1.1 db102f0
    • feat(sdk): a tag <id>-v<version> releases only that mod 67d6334
    • feat(port): rac1 hook points for giving items, planets, the vendor and gold bolts c46a749

    SDK 1.1.0

    · interface 1.1 · release on GitHub

    • fix(sdk): the hook reference lists the catalogue's hook points by their ids a9dabee
    • docs(port): the docs split between the SDK's guides and MODS.md d473d85
    • feat(sdk): the SDK's archive carries the guides and the reference 5ef7016
    • docs(sdk): guides for modders 6a733c6
    • feat(sdk): generate the API reference from the SDK's sources e2e83b2
    • chore(sdk): the behaviour catalogue regenerated for its new hook points 15b8f17
    • feat(sdk): the C++ layer asks for a hook point by its permanent id 867061c
    • feat(sdk): permanent hook ids, and the catalogue's updates as hook points c027aec
    • chore(sdk): version 1.1.0, for the mod interface 1.1 679e360
    • feat(sdk): the script template points luau-lsp at the SDK's types dd782a2
    • fix(sdk): the script template's pad example reads the buttons at byte 0 c9eb49a
    • docs(sdk): script mods: the template, packaging and the types 9158fb0
    • feat(sdk): a script mod's template, in the SDK's archive b35fe1c
    • ci(sdk): the mod workflow packages script mods, with no build b8f243b
    • feat(sdk): package_mod.py packages script mods dc897a3
    • docs(sdk): writing a mod in C++ 45b3534
    • test(sdk): the C++ layer's test, built on every system from the SDK archive cd41841
    • feat(sdk): the template is a C++ mod 465e610
    • feat(sdk): openrac_add_mod builds C++ mods, exporting only the entry points 5b143de
    • feat(sdk): a header-only C++ layer over the mod interface 5dd1585
    • fix(port): the rac1 script binding beside the game's host C, not in it 6c7cbdb
    • feat(sdk): generate a game's binding for mods from one table 0080dc8
    • feat(port): run script mods in sandboxed Luau states e9bea03
    • refactor(editor): remove the GDScript behaviour prototype dd5213c
    • docs(port): MODS.md and the SDK README name classes.json, the catalogue's stable table 354ed2b
    • chore(sdk): regenerate the rac1 behaviour catalogue with classes.json ba29d41
    • chore(sdk): ship the behaviour catalogue in the SDK archive db6e952
    • chore(sdk): generate the rac1 behaviour catalogue 6e6e95a

    SDK 1.0.3

    · interface 1.0 · release on GitHub

    • fix(sdk): the template's files have LF line endings on every system d4f84bd

    No change to the API since 1.0.2: fixes and docs only.

    SDK 1.0.2

    · interface 1.0 · release on GitHub

    • docs(sdk): publishing a mod from a repository ff31069
    • feat(sdk): the template is a mod's repository, released by its workflow f5388dc

    No change to the API since 1.0.1: fixes and docs only.

    SDK 1.0.1

    · interface 1.0 · release on GitHub

    • chore(sdk): version 1.0.1 7546ba1
    • docs(port): where mods live for an installed launcher, and the SDK archive 9bbf995
    • feat(sdk): the SDK as one archive, versioned with the interface 379c8ae
    • docs(sdk): how to write, build, package and install a mod a7d3fb4
    • feat(sdk): a mod template and the frame-counter example c25bb8c
    • feat(sdk): package_mod.py writes and joins mods' archives 7ac93bd
    • feat(sdk): a CMake package for building mods 2585370
    • feat(sdk): the mod interface's headers 336a5b4

    The first release of the SDK.