Skip to content

Game database

Every number here comes straight from the game’s own source data (data-src/), so it matches what the server actually loads. Nothing is transcribed by hand, which means nothing is mistyped, and one sync run picks up any upstream change.

55 items

Weapons, armor, accessories and consumables: damage dice, Guard, weight, price and where to get them. Browse

7 monsters

Health, Guard, to-hit, damage, movement speed, chase range, spawn depth and drops. Browse

2 dungeons

Locations, floor counts, boss stats, and the chest drop rules with each tier’s equipment pool. Browse

Fishing

The catch table, rarity weights, level gates, size and trophy thresholds, and expected income. Browse

Food and satiation

Satiation bands and their buffs, food efficiency, campfire cooking and food poisoning. Browse

Shops and economy

Rica’s catalogue, sell rates, how haggling works, world drop rates and where gold comes from. Browse

26 map locations

Continents, cities, seas and islands with coordinates, plus dungeon entrances. Browse

scripts/sync-gamedata.mjs pulls data-src/*.csv from the upstream repository into this site’s src/data/game/. The build reads those CSVs directly to generate the tables.

Two things happen here that the raw CSV cannot do:

  1. Derived values are filled in. A blank monster health, attack bonus or damage roll means “don’t override” — the server computes it from the level. Showing them empty would be wrong, so the same formulas run here and the derived values are marked.
  2. Currency is converted. The game stores a single copper integer; 1g = 100s = 10,000c is a display-layer convention.

When upstream changes a number, re-running the sync script is the whole update.