XPHero Fans logo XPHero Fans
HomeBlog › How we built xphero.fans

How we built xphero.fans

The origin story: an APK, 153 data tables, 5,462 sprites and one stubborn refusal to take "the wiki doesn't exist" for an answer.

XP Hero is a mobile idle RPG by Supercent. It has levels, weapons, bosses, a tower, a world — and, when we started, no wiki worth the name. No stat tables, no drop rates, no map. This post is the story of how a handful of Python scripts and one extracted APK became a full fan hub — and what we learned along the way.

extracted sprite
extracted sprite
extracted sprite
extracted sprite
extracted sprite
extracted sprite

Real sprites, straight out of the game's files: a skeleton warrior, a Chapter-1 face, a dagger, a chest, a merchant and a fire skill.

It started with a black box

Unzipping the APK gives you the usual Android layout — and inside assets/bin/Data, more than 8,300 files with names like a92133f5e5c4e4f8b6d3c2a1f0e9d8c7. No extensions. No images. Just Unity serialized data from engine version 2022.3.76f1, opaque to every normal tool.

The first breakthrough was boring and enormous at the same time: those files are raw Unity serialized files — not LZ4-compressed bundles — so UnityPy opens them directly. From there it was a matter of pulling every Texture2D object, decoding it, and letting the filenames do the categorizing.

Tip: the filenames were the Rosetta Stone. The game's artists named things properly — Face_CH16_SkeletonWarrior, W_Dagger, Img_Epic_Box — so a pile of keyword rules was enough to sort 5,462 unique images into sensible buckets.

The numbers wall

5,462unique sprites extracted
153data tables dumped as JSON
3,543locale strings (11 languages)
208monsters with real stats
84weapons in evolution chains
850quests in the main chain
250Challenge Tower floors
400levels of rewards charted

None of these numbers were typed in by hand. Every one is read from the game's own tables at build time — which is also why this post can print them safely: when the game updates, the scripts re-run and every number on the site refreshes itself.

The data layer was (almost) free

The big fear with mobile games is IL2CPP: compiled code you can only read with heroic effort. XP Hero dodged that — its designers stored the entire game balance as plain JSON TextAssets sitting right there in the bundles. Monster HP, weapon DPS, smithy odds, building costs, the 850-quest main chain, the level curve out to 1500: all of it readable with a one-line JSON parse.

The one missing piece was names. The tables store keys like ENEMY_NAME_MANDRAGORA. The game's full localization table (Locale_824.json, 3,543 entries × 11 languages) resolved almost all of them — and that file is where the true rarity ladder came from too: Normal, Fine, Rare, Epic, Legendary, Ancient, Mythic, Exotic, Eternal.

From tables to tools

Raw JSON is for machines. The site is where it becomes useful:

What we'd tell anyone starting this

  1. Look at the filenames before you write any code. Half the categorization was free.
  2. TextAssets first, IL2CPP never. Check what the game ships as plain data before assuming you need to reverse-engineer compiled code.
  3. Join everything. A spawn point is just a coordinate until you chain it through four tables into a named monster with a respawn timer and a bestiary link. The joins are the product.
  4. Build a pipeline, not a pile of scripts. Every page on this site is generated. When the game patches, we re-run the pipeline and the whole site updates itself — numbers, sprites, map and all.
  5. Be honest about the gaps. The power formula is a reconstruction. The chapter-position estimate is an estimate. Pages that say "this is a fan reconstruction" age better than pages that pretend.

What's next

The site keeps growing with the game: more guides as we climb further ourselves, deeper tooling where the data supports it, and the community features as the Discord fills up. If you're playing XP Hero and something on this site saved you time — that's the whole point. Come say hi.

Built by fans, for fans. XP Hero is developed by Supercent; this site is unofficial and not affiliated with or endorsed by them. All game data and sprites © Supercent — reproduced here for identification and commentary.