Skip to content

feat: the editor link's live scene, timeline and console, and --mods - #1214

Merged
vdmkenny merged 2 commits into
mainfrom
feat/editor-link-minimal
Oct 15, 2026
Merged

vdmkenny merged 2 commits into
mainfrom
feat/editor-link-minimal

Conversation

@vdmkenny

Copy link
Copy Markdown
Collaborator

The editor's live scene, timeline and Mod mode console, with as little added to the link as they need. Only one message is new: everything else uses what the link already has (docs/engine/editor-link.md, Adding a message).

  • Live scene (The editor link: the live scene for an editor #1059): no new message. Mission file already gives where the ships are: the game keeps each ship's run-time place and heading in its record every frame, as the original does (mission_ships_sync), and flags a destroyed one. State gains each ship's order and target (ship.N.order, ship.N.target).
  • Timeline (The editor link: the script's events for the editor's timeline #1207): no new message. State gains what the script did since the last state: the triggers fired and the commands run, each with its time on the script's clock (event.N.*, events_dropped). The game keeps them only while an editor is linked, 512 at most.
  • Console (The editor link: the game's console and reloading mods' scripts #1201): one message, Console line (0x107). It runs a line as if typed into the game's console (developer mode, a mod with scripts), in the menus too. While no mission plays, OpenReliant's own messages are taken and the original's still wait. The console's answers now go to the log under console, a line each, where an editor reads them with what the scripts print. Reloading needs nothing new: folder mods' scripts already reload when saved, and reload is a console line.
  • Play with chosen mods (Start OpenReliant with a chosen set of mods #1202): an option, not a message. --mods <mod,...> loads only those mods, in that order, by name in the mods folder or by a path to a folder or .hog elsewhere, and leaves the mods screen's list as it is. openListing's sorting of mods is shared with it.

The link's protocol is 2. The released editor still links to it: it only notes the different version.

Checks: zig build test (all pass, 1 skipped), zig fmt --check, make check-files, make check-missions (75 missions, 0 failing). End to end against the real game, headless, with a small client: Hello gives protocol 2; --mods loaded the first-mission mod and the bananas example by its path; State gave the ships' orders and the start part's five commands at 0 ms; a console line ran both in a mission and in the menus, and its answer came out in openreliant.log.

Closes #1059
Closes #1207
Closes #1201
Closes #1202

The editor keeps its live scene, its timeline and Mod mode's console
with as little added to the link as they need.

- The live scene reads where the ships are from Mission file, which the
  game already keeps up each frame as the original does, and their
  orders and targets from State.
- The timeline reads the triggers fired and the commands run since the
  last State, from State.
- The console takes the one new message, Console line, run as if typed
  into the game's console. The console's answers now go to the log too.
- Playing with a chosen set of mods needs no message: --mods loads only
  the mods it names, in that order, for that run.

Closes #1059
Closes #1207
Closes #1201
Closes #1202
With --mods, the mods screen opened on the chosen mods only, and saving
there, or CANCEL CHANGES, wrote that short list to starlancer.ini. The
screen now stays shut with --mods, as it does with --no-mods.

Review fixes: --mods tells a path from a name by the platform's
separators, the editor's console lines run through the console driver,
the script's clock in ticks has one helper, the session's tests share
their setup, and the new docs and comments are reworded plainly.
@vdmkenny
vdmkenny merged commit 05a8555 into main Oct 15, 2026
4 checks passed
@vdmkenny
vdmkenny deleted the feat/editor-link-minimal branch October 15, 2026 06:54
vdmkenny added a commit to OpenReliant/openreliant-editor that referenced this pull request Oct 15, 2026
OpenReliant 0.16.0
([OpenReliant/openreliant#1214](OpenReliant/openreliant#1214))
raises the link's protocol to 2. The new version only adds messages and
keys, which a reader skips, but the editor noted any protocol other than
its own as a failure. It now notes only an older game's protocol, and
says to update OpenReliant. A test covers a newer and an older game.

The design and the docs now say what OpenReliant 0.16.0 gives the
editor, with one new message:

- **Live scene:** `Mission file` (asked for with `Get mission`) has each
ship's place and heading, which the game updates every frame, and
`State` gives each ship's order and target.
- **Timeline:** `State` lists the triggers fired and the commands run
since the last state, on the script's clock. The holds are the editor's
own.
- **Console:** `Console line` runs a line in the game's console, and the
answers come from `openreliant.log`. Reload scripts is the console line
`reload`.
- **Play with this mod only, and a packed `.hog`:** `--mods`.

Reload scripts and Play with this mod only pointed at
OpenReliant/openreliant#1201 and OpenReliant/openreliant#1202, which are
done. They now point at Mod mode (#4), where the editor's side of them
belongs. The catalogue export is the editor's own work. OpenReliant
still has to bring live changes (OpenReliant/openreliant#1057), and the
earlier parts' variables for Play from part
(OpenReliant/openreliant#577).

Checks: `make check` (format, files, tests).
vdmkenny pushed a commit that referenced this pull request Oct 15, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.16.0](v0.15.0...v0.16.0)
(2026-10-15)


### Features

* the editor link's live scene, timeline and console, and --mods
([#1214](#1214))
([05a8555](05a8555)),
closes [#1059](#1059)
[#1207](#1207)
[#1201](#1201)
[#1202](#1202)


### Fixes

* the names a mod gives its ship types and pilots reach the game
([#1190](#1190))
([66a0fc1](66a0fc1)),
closes [#1186](#1186)


### Documentation

* the editor link's messages, the original's and OpenReliant's own
([#1212](#1212))
([4a2bc7c](4a2bc7c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
vdmkenny added a commit to OpenReliant/openreliant-editor that referenced this pull request Oct 15, 2026
Pins OpenReliant at its v0.16.0 release, whose link carries the live
scene, the timeline's events and the console line
(OpenReliant/openreliant#1214). Its new `Console line` tag is one only
the editor sends, so the session's switch over OpenReliant's messages
ignores it, as it ignores `Get mission` and `Get state`.

Checks: `make check` (40 steps, 46 tests), and `--check-missions`
against the game (44 missions, 0 failing).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant