From 0f54eeebc5ef7f032cf72772e257305e76c8d1fb Mon Sep 17 00:00:00 2001 From: Ryan Barlow <7389646+ryanbarlow97@users.noreply.github.com> Date: Thu, 15 Oct 2026 21:04:21 +0000 Subject: [PATCH 1/3] docs: describe infusion table persistence and recovery --- projects/GemInfusion/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/projects/GemInfusion/README.md b/projects/GemInfusion/README.md index 2bd65e0..3b45fbd 100644 --- a/projects/GemInfusion/README.md +++ b/projects/GemInfusion/README.md @@ -32,6 +32,19 @@ definitions for hits, materials, tiers, qualities and projects. It loads persisted stations, flushes them periodically and on shutdown, and registers socket/unsocket listeners. +Infusion tables save their gem IDs and hit progress after each deposit or hit in +`plugins/GemInfusion/data/infusion-stations/___.yml`. +Completed batches also save the rolled items awaiting delivery. Startup restores +unfinished batches and resumes remaining drops without requiring the player to +be online. Tables stay occupied until delivery finishes. Autosave and shutdown +also save active tables. + +A failed deposit or hit save leaves the gem or infusion token with the player and +keeps the previous progress. Unreadable snapshots, missing worlds and unknown +gem IDs are logged and retained; the affected table refuses new deposits until +staff repair the snapshot or restore the missing configuration. Stop the server +before repairing saved files. Replaced snapshots are written atomically. + `/geminfusion reload` reloads definitions and stations. `/geminfusion select ` selects a project on an empty table the player is looking at within six blocks. Both commands require `geminfusion.admin`. Goldsmithing gameplay uses From 094dadec0f153a18358113de8ddda367ef432fc2 Mon Sep 17 00:00:00 2001 From: Ryan Barlow <7389646+ryanbarlow97@users.noreply.github.com> Date: Thu, 15 Oct 2026 21:18:37 +0000 Subject: [PATCH 2/3] docs: explain durable snapshots and cleanup retries --- projects/GemInfusion/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/projects/GemInfusion/README.md b/projects/GemInfusion/README.md index 3b45fbd..a147ec9 100644 --- a/projects/GemInfusion/README.md +++ b/projects/GemInfusion/README.md @@ -43,7 +43,10 @@ A failed deposit or hit save leaves the gem or infusion token with the player an keeps the previous progress. Unreadable snapshots, missing worlds and unknown gem IDs are logged and retained; the affected table refuses new deposits until staff repair the snapshot or restore the missing configuration. Stop the server -before repairing saved files. Replaced snapshots are written atomically. +before repairing saved files. Snapshots are flushed to disk before atomic +replacement, then the directory is flushed. A directory flush failure after +replacement is logged without rolling back the committed deposit. Finished +tables retry failed snapshot deletion before accepting a new batch. `/geminfusion reload` reloads definitions and stations. `/geminfusion select ` selects a project on an empty table the player From 95ff55f6e5643525fbf946a4b6eef1ecaedba3a9 Mon Sep 17 00:00:00 2001 From: Ryan Barlow <7389646+ryanbarlow97@users.noreply.github.com> Date: Thu, 15 Oct 2026 21:24:54 +0000 Subject: [PATCH 3/3] docs: clarify restart after repairing retained infusion tables --- projects/GemInfusion/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/projects/GemInfusion/README.md b/projects/GemInfusion/README.md index a147ec9..e62b0b3 100644 --- a/projects/GemInfusion/README.md +++ b/projects/GemInfusion/README.md @@ -43,7 +43,8 @@ A failed deposit or hit save leaves the gem or infusion token with the player an keeps the previous progress. Unreadable snapshots, missing worlds and unknown gem IDs are logged and retained; the affected table refuses new deposits until staff repair the snapshot or restore the missing configuration. Stop the server -before repairing saved files. Snapshots are flushed to disk before atomic +before repairing saved files; restart after restoring configuration to retry +retained snapshots. Snapshots are flushed to disk before atomic replacement, then the directory is flushed. A directory flush failure after replacement is logged without rolling back the committed deposit. Finished tables retry failed snapshot deletion before accepting a new batch.