When we launched the sprite gallery, the point was that the game's data shouldn't be locked inside the APK. But a website is something you visit — and questions about XP Hero mostly happen somewhere else: in Discord, mid-conversation. So the data learned to come to you. Our bot puts the bestiary, the weapon trees, the Challenge Tower and the DPS calculator behind slash commands, with autocomplete and zero typing-from-memory.
What it can do
| Command | What you get | Try it |
|---|---|---|
/hero | Lore, all skills, blessings & abilities | /hero Azio |
/weapon | Evolution chain, base stats, next tier — or DPS numbers | /weapon S-tier dagger |
/monster | Bestiary entry: story, gold, drops, appearances + deep link | /monster Volcanus |
/tower | Any floor's roster, HP/DPS requirements, rewards | /tower 70 |
/dps | Estimated DPS + how far up the tower it clears | /dps Katarina |
/search | Find anything: monsters, weapons, items, heroes, buildings | /search soul chest |
/item | Item card | /item Soul Chest Key |
/help | Every command with a usage example | /help |
Every name input has autocomplete — type /monster vol and pick
Volcanus. No memorizing spellings, no wrong turns. And /links drops the
full site map into chat whenever someone asks "where's that tool again?"
What it looks like
Answers are Discord message embeds in the site's gold-on-dark branding, with the
monster's actual sprite as the thumbnail. Here's /hero Azio, faithfully
recreated:
Same data, same math — guaranteed
The bot doesn't have its own copy of the truth. It reads the exact JSON files the site builds from, and it implements the DPS calculator's formula. That's not a one-time claim: at every startup the bot runs a self-test that recomputes DPS for every weapon tier at key levels and compares against the site's calculator code.
If the site and the bot ever disagree about a number, the bot refuses to start. When 26.0.0 lands and the pipeline re-runs, a restart picks up the new tables — commands, autocomplete and all — with zero code changes.
Small engineering things we're proud of
- Zero assets shipped. Embed sprites load from xphero.fans like any browser image. The bot is a few hundred lines of Python plus the data files — no deploy coupling, and new art appears automatically.
- The game's markup, translated. Locale strings are written for Unity's
renderer:
<color=#3d8300>,{0}:P0, nested formatting. The bot strips all of it so skills read as plain prose — and its self-test fails the build if a raw tag ever slips through. - Deep links, pre-filtered. A monster card links straight into the site bestiary with that monster pre-selected — from Discord to the full entry in one click.
- It announces new posts itself. The bot watches our RSS feed; when a blog post goes live, configured channels get the announcement within minutes. No "did you see the new post?" required.
Adding it to your server
The bot already answers questions in the
community Discord. To bring it to yours: it needs no
special permissions (it only replies to slash commands), no message-reading
intents, and nothing beyond an invite link — ask in our Discord, or run
/invite once it's in a shared server and the bot will hand you its own
link. Hosting is one small Python process; when the game updates, the pipeline
re-runs and a restart refreshes everything.
What's next
The obvious one: /rune. When 26.0.0 ships, the extraction will
contain the real rune tables — and the bot will grow rune lookups the same week,
alongside the site's reference pages. If there's a question your guild keeps
asking in chat, tell us — if the answer is in the data, there's probably a slash
command shape that fits.
The XPHero Fans bot is a fan project reading data extracted from XP Hero v25.3.0. XP Hero is developed by Supercent — this bot and site are unofficial and not affiliated with or endorsed by them.