About this build

Generated 2026-07-13 05:46:11 UTC from game data version 1.3.

Coverage

DatasetSource recordsPages in this build
Items1,4611,461
NPCs1,7861,786
Companions1111
Quests120120
Shops134134
Harvest resources9797
Workbenches77
Achievements262262
Traits165165
Spellbook7272
Areas9898
Travel7878
Player houses1818

Methodology

  • All XML files in each supported data folder are merged in filename order, allowing extension files to override matching IDs.
  • Ground items come from Data/Spawners/ls_*.txt; NPC locations come from ns_*.txt; Unity scenes provide harvest resources, workbenches, linked entrances, and serialized MapIcon records.
  • The standalone Map uses the game's own service glyphs, local/world label positions and font sizes, and the dedicated WorldMapTexts scene. Store categories come from the serialized icon; merchant joins only supply the shop name and page link.
  • Map tiles, visible markers, and labels are virtualized. Tiles and generated WebPs use stable cache keys and long-lived cache headers when served by serve_wiki.py.
  • Loot tables, shop inventories, quest rewards, recipes, traits, and achievements are joined by their explicit IDs.
  • Item salvage eligibility, material type, level-based yield range, and the 20% Old Artifact roll reproduce SalvagingHandler from Assembly-CSharp.dll.
  • Spellbook entries come from AbilityHandler; effect timers come from UnitAttacks; original icons come from Data/Textures/Abilities. Managed definitions are cached by assembly signature.
  • The Combat Simulator transcribes Calculations, DamageHandler, UnitAttacks, and NPCHandler managed formulas, then runs 20,000 deterministic standard-duel trials against runtime-resolved NPC profiles.
  • Companions are derived from Horsy, NPC Dismiss interactions, and paired event AddFollower/RemoveFollower actions. Ordinary quest escorts are excluded; stats and AI actions come directly from their NPC records.
  • Exceptional gear variants reproduce ItemHandler.LoadItems: runtime ID +100000, positive stats x1.25, negative stats x0.75, and Unity midpoint-to-even integer rounding.
  • Shop merchants are joined from event and dialogue OpenShop actions. Conditional data is displayed, never silently treated as unconditional.

Optional enrichment tools

Loaded 2,865 harvest spawns from the Unity extraction cache.

Loaded 644 standalone-map landmarks from the Unity extraction cache.

Loaded 72 spellbook definitions from the managed-assembly cache.

Generated 56×56 WebP table thumbnails with Pillow.

The XML-only build remains supported. Without UnityPy and TypeTreeGeneratorAPI, generation succeeds with a warning but omits Unity-scene harvest locations, linked entrances, scene-authored labels, and exact service icons. Without ILSpy or a matching managed-ability cache, generation succeeds with a warning but omits Spellbook pages. Without Pillow, generation succeeds with reduced map-icon coverage and original PNG table icons.

Parser warnings

  • Could not parse Thornhill_Ghastly_Weapons_Questline.xml: not well-formed (invalid token): line 1, column 226

Credits

Based entirely on Demeyer's work. I wouldn't have bothered making this if he didn't already prove the art of the possible, my only gripe is his server is incredibly slow (and thus why this exists).

Check out the original, semi-official wiki and map at:
https://cursebreaker-map.online/
https://cursebreaker.wiki/