
About EO Codex
How it works
Every page on this site is generated at build time from the EOR API. There is no CMS, no database and no content written by hand. If it is on this site, it came from the API.
The build runs in three stages: every /dump endpoint is downloaded, validated against a Zod contract, then transformed into a linked entity graph. Because the upstream data changes rarely, all 4,023 pages are prerendered to static HTML and no API call happens while you browse.
The API stores most relationships in only one direction. An NPC knows how many maps it spawns on but not which ones, and an item knows it is gatherable but not where. Those reverse indexes are derived during the build, which is what lets every page link both ways.
What's in the graph
- items
- 1,447
- npcs
- 989
- maps
- 429
- quests
- 218
- shops
- 140
- spells
- 562
- spells Playable
- 36
- classes
- 7
- guides
- 20
- effects
- 48
- mounts
- 23
- routes
- 4,023
- search Docs
- 3,286
Derived relationships
- NPC spawn points
- 2,306
- Warp edges
- 5,864
- Gather nodes
- 745
- Chest spawns
- 281
- Quest chain links
- 60
Known limits of the data
Things the API does not provide. Stated plainly rather than papered over.
- Quests have no text
- The API exposes quest states as NPC references only. There is no dialogue, objective or description text anywhere in the payload. Quest pages therefore describe structure, participants, gating and rewards rather than a written walkthrough.
- 526 spells are placeholders
- Of 562 spell records, 526 are unused slots literally named “Res”. They are excluded from listings and search but remain reachable at their own URLs so nothing is deleted.
- Spell artwork is unavailable
- The documented /spells/{id}/icon and /spells/{id}/graphic endpoints return 404 for every spell. Item and NPC artwork is complete: all 3,883 sprites are bundled with the site.
- Some names collide
- 92 item names, 62 NPC names and 31 map names are not unique, and a few maps are unnamed or “???”. Unique names keep clean URLs; colliding names are suffixed with their id, and the shared name becomes a disambiguation page.
Data integrity
Every relationship is checked when the graph is built. References that cannot be resolved are dropped rather than rendered as dead links, and the count is reported here.
- Broken references
- 0
- Unreferenced items
- 652
- Unreferenced npcs
- 287
- Unreferenced maps
- 32
Unreferenced records are real rows in the game data with no recorded source, spawn or connection, typically reserved, admin-only or event content. They still have pages.
