Back to work

Interactive Web App · 2026

TalesRunner Wardrobe

Rebuilding a nostalgic game's entire item catalogue as structured data, then turning it into a fast, shareable loadout planner.

16,001 catalogued items, per-character wearability rules, and a full build shared as a single URL.

Overview

TalesRunner ships no API and no documentation, and players trade equipment builds as screenshots nobody can reproduce. I rebuilt the game's full catalogue as structured data — 16,001 items and 50 characters — and used it to build an unofficial wardrobe that turns any complete loadout into a single shareable link.

The source data follows no published format: UTF-16LE text, a magic header line, and a schema tucked into a commented CSV row. Item attributes are stored as bare integer IDs, so I mapped them back to real stats by cross-referencing values visible in game, then checked the result against builds I could verify in play. Everything is generated by a Python pipeline rather than typed by hand.

The most interesting rule was not in any table: which characters can actually wear which item. I inferred it from the game's asset topology — an item is wearable by a character only when that character's own model and texture exist for it — which collapsed into 102 distinct wearability signatures, layered with a gender lock and the game's own per-character whitelist. It also surfaced an undocumented field that decides whether an item's effect applies to the Avatar layer or the character.

On top of that data sits the app: two independent equipment layers across 15 slots, multi-slot occupancy, set bonuses, search, and live stat aggregation against per-character base stats. The whole configuration is serialized into the URL hash, so another player restores the exact build with no account, database, or backend.

Highlights

  • 16,001 items and 50 characters compiled by an automated pipeline, not hand-entered
  • Mapped an undocumented table encoding and bare attribute IDs back to verified in-game stats
  • Per-character wearability inferred from asset topology — 102 distinct signatures
  • Independent Avatar and character equipment layers across 15 slots
  • Live stat aggregation with set bonuses and cap-raising modifiers
  • Shareable URL state with no login, database, or backend

Screens

A clean URL starts with an empty, predictable loadout.
A clean URL starts with an empty, predictable loadout.
Avatar and character gear remain independent across all 15 slots.
Avatar and character gear remain independent across all 15 slots.
The stats panel combines selected equipment layers and paginates every bonus.
The stats panel combines selected equipment layers and paginates every bonus.
Search works across names, categories, descriptions, and stat values.
Search works across names, categories, descriptions, and stat values.
Back to work