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.
houmgaor
2026-03-20 16:56:45 +01:00
parent a3593b6261
commit 90bc36ad75

@@ -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/<name>.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/<name>.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.