Skip to content

NocturneRecomp v1.2.2

Choose a tag to compare

@github-actions github-actions released this 04 Jul 21:17

Get the game on Goopie!

This release focuses on letting mods depend on and communicate with each other, as well as general polish.

Mod dependency metadata

mod.toml now supports three optional keys:

  • requires = "other_mod": the named mod must also be enabled, and loaded
    before this one. If it isn't, the game fails to start with an error
    naming the mod, the missing/misordered dependency, and the fix.
  • load_after = "other_mod": a soft ordering hint. Violating it only logs a
    warning; the game still starts.
  • conflicts = "other_mod": if both this mod and the named one are enabled,
    the game fails to start, regardless of load order.

F6 now also shows a mod's requires/conflicts in the mod manager
overlay when it declares them.

Shared mod registry

Mods can now publish data for other mods to consume, instead of every mod
independently reverse-engineering (or copy-pasting) the same guest
addresses:

  • Addresses: one mod registers a guest address by name (resolved
    automatically for vanilla vs. title-update builds); other mods look it up
    instead of hardcoding it themselves.
  • Events: mods can publish/subscribe to named events with a small
    payload, letting one mod react to something another mod does.
  • Tick: mods can register a callback fired once per guest frame.

New example mods

  • Game Symbols: a library mod with no UI of its own. Publishes the UI
    accent color's guest address for other mods to use.
  • UI Color Picker: updated to consume Game Symbols's published address
    (requires = "game_symbols") instead of hardcoding it.
  • Event Ping: a library mod with no UI. Ticks once a second and
    publishes a "sample.ping" event.
  • Event Pong (F11): subscribes to Event Ping's event and republishes
    a running count to Blackboard, if enabled (requires = "event_ping").
  • Blackboard (F12): a shared key/value store other mods can
    read/write over the event bus, with a viewer/editor overlay.
  • Bus Inspector (F5): a live scrolling log of event-bus traffic,
    demonstrating multiple mods subscribing to the same event.

You can find more mods in our official Discord server.
Mod management can still be done manually, or via the Goopie Launcher.

Other changes

  • Keyboard controls are now enabled by default, and mapped to a decent scheme
  • Mouse cursor is finally not getting captured by the window anymore
  • Removed the Save button in the Settings overlay (F4)
  • The Debug overlay (F3) now shows both host (window) and guest (game) FPS

Full Changelog: v1.2.1...v1.2.2