You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c9b5147
Browse filesBrowse the repository at this point in the historyBrowse files
fix: stage pinned docker/saves into AppData before native game/load (#76)
Native POST /game/load reads RimWorld AppData Saves, not docker/saves.
The YAML pin only hashed the repo mirror, so #75's Crashlanded seed
(SimpleResearchBench + Smithing) could be ignored in favor of a stale
April AppData file. Copy the canonical save when the live hash diverges
and fail closed if the pin cannot be satisfied.
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Jason <jkbennitt@users.noreply.github.com>
Copy file name to clipboardExpand all lines: CLAUDE.md
+7-6Lines changed: 7 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ Four things must be set up before RLE can run against a live game:
9
9
1.**RimWorld** — Steam install at `C:\Steam\steamapps\common\RimWorld\` (or wherever Steam is)
10
10
2.**Harmony + RIMAPI mods** — Subscribe on Steam Workshop, then **enable both** in the in-game Mods menu. Load order: Harmony → Core → Royalty → RIMAPI. RIMAPI exposes REST API on `:8765` + SSE events.
11
11
3.**LLM provider** — [LM Studio](https://lmstudio.ai/) (local, port 1234) or [OpenRouter](https://openrouter.ai/) (cloud)
12
-
4.**Save file** — `rle_crashlanded_v1`save must exist in RimWorld's save folder (`C:\Users\<you>\AppData\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios\Saves\`). The scenario auto-loads it.
12
+
4.**Save file** — `rle_crashlanded_v1`is pinned in `docker/saves/` (YAML `save_sha256`). Native runs stage that file into RimWorld AppData Saves (`C:\Users\<you>\AppData\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios\Saves\`) when the live hash diverges, then `POST /game/load` by name. Docker entrypoint already symlinks `/opt/saves`.
13
13
14
14
### RIMAPI mod setup (critical)
15
15
@@ -272,11 +272,12 @@ Tick-specific priorities injected into all Felix agents (other harnesses get no
272
272
### Save Loading + Item Setup
273
273
274
274
`run_scenario.py` automatically:
275
-
1. Loads the scenario's save file (`rle_crashlanded_v1` seeds a built `SimpleResearchBench` at (128,136) and queues `Smithing`; the other five saves are derived from this base)
276
-
2. Polls until game is ready (colonist_count > 0)
277
-
3. Unforbids all starting items (via `POST /api/v1/things/set-forbidden`)
278
-
4. Runs any `setup_commands` declared in the scenario YAML (spawn_pawn, spawn_item, change_weather, drop_pod)
279
-
5. Unpauses game at speed 3 (if `--no-pause`)
275
+
1. Native only: `ensure_live_save()` copies `docker/saves/<name>.rws` into RimWorld AppData Saves when the live SHA ≠ YAML `save_sha256` (fail closed). Docker already symlinks `/opt/saves`. Summaries record `live_save_sha256` + `live_save_copied`.
276
+
2. Loads the scenario's save file (`rle_crashlanded_v1` seeds a built `SimpleResearchBench` at (128,136) and queues `Smithing`; the other five saves are derived from this base)
277
+
3. Polls until game is ready (colonist_count > 0)
278
+
4. Unforbids all starting items (via `POST /api/v1/things/set-forbidden`)
279
+
5. Runs any `setup_commands` declared in the scenario YAML (spawn_pawn, spawn_item, change_weather, drop_pod)
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -101,7 +101,7 @@ You need four things set up:
101
101
1.**RimWorld** (Steam) with **Harmony** and **[RIMAPI](https://github.com/IlyaChichkov/RIMAPI)** mods subscribed and **enabled** in the Mods menu. Load order: Harmony → Core → (DLCs) → RIMAPI.
102
102
2.**LLM provider** — [LM Studio](https://lmstudio.ai/) (local, free) or [OpenRouter](https://openrouter.ai/) (cloud)
103
103
3.**Python 3.14+** with [uv](https://docs.astral.sh/uv/)
104
-
4.**Save file** — `rle_crashlanded_v1` in RimWorld's save folder (the scenario auto-loads it). The Crashlanded seed includes a built `SimpleResearchBench` so research can leave the 7/31 starting floor.
104
+
4.**Save file** — `rle_crashlanded_v1`is pinned in `docker/saves/` (YAML `save_sha256`). Native runs copy it into RimWorld's AppData Saves when the live hash diverges, then auto-load by name. The Crashlanded seed includes a built `SimpleResearchBench` so research can leave the 7/31 starting floor.
105
105
106
106
> **RIMAPI note:** The Workshop version may not have our contributed endpoints yet. See [CLAUDE.md](CLAUDE.md) for instructions on building and deploying our fork DLL. AppSprout runs set `RIMAPI_DLL_PATH` and `RIMAPI_FORK_PATH` to the compiled checkout; summaries record that path, the DLL SHA, and the fork commit. Workshop is not source of truth.
0 commit comments