From 90bc36ad75527078d41eec3579ed42791780350f Mon Sep 17 00:00:00 2001 From: houmgaor Date: Fri, 20 Mar 2026 16:56:45 +0100 Subject: [PATCH] docs(operations): document JSON format support for quests, scenarios, rengoku All three file types now accept .json as a human-readable alternative to .bin. Document the priority (.bin first), what each JSON format covers, and update the bin/ directory tree to reflect both extensions. --- Server-Operations.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/Server-Operations.md b/Server-Operations.md index 5419df4..778be19 100644 --- a/Server-Operations.md +++ b/Server-Operations.md @@ -6,19 +6,29 @@ The `bin/` directory (configured via `BinPath` in config.json) holds game data f ``` bin/ -├── quests/ # Quest binary files -├── scenarios/ # Cutscene/scenario files +├── quests/ # Quest files (.bin or .json) +├── scenarios/ # Scenario files (.bin or .json) ├── events/ # Organized quest archives (not read by server) -├── rengoku_data.bin # Rengoku survival mode config +├── rengoku_data.bin # Hunting Road config (.bin or .json) └── save_override.bin # Optional: forces savedata values on character creation ``` +### JSON Format Support + +All three file types support a human-readable `.json` alternative. The server always tries `.bin` first and falls back to `.json` automatically — existing binary files work unchanged. + +**Quest** (`bin/quests/.json`): covers all binary sections — quest text (UTF-8, converted to Shift-JIS on the wire), objectives, monster spawns, reward tables, supply box, stages, map sections, gathering points, and more. Use `ParseQuestBinary` to convert an existing `.bin` to JSON. + +**Scenario** (`bin/scenarios/.json`): supports sub-header chunks with UTF-8 strings (flags 0x01/0x02), inline episode listings (flag 0x08), and opaque base64 blobs for JKR-compressed chunks (flags 0x10/0x20). See `docs/scenario-format.md` in the Erupe repository for the full format reference. + +**Hunting Road** (`bin/rengoku_data.json`): define multi-road and solo-road floors, spawn tables, and monster IDs in plain JSON. The server assembles and ECD-encrypts the binary at startup. + ### Quest File Naming Files in `quests/` follow this pattern: ``` -[questID][time][season].bin +[questID][time][season].bin (or .json) ``` - **questID**: 5-digit hex ID (e.g., `23045`) @@ -34,7 +44,7 @@ If `SeasonOverride` is enabled in the config, the server converts quest filename Files in `scenarios/` follow this pattern: ``` -[CategoryID]_0_0_0_S[MainID]_T[Flags]_C[ChapterID].bin +[CategoryID]_0_0_0_S[MainID]_T[Flags]_C[ChapterID].bin (or .json) ``` Missing scenario files will crash the client — make sure all referenced scenarios have corresponding files.