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.