About the bot
Every embed is built from the site's own JSON at request time: 15 commands covering the bestiary (169 monsters with lore, drops and appearances), 84 weapon tiers in 12 evolution chains, all 24 heroes' evolution chains and star ladders, the Challenge Tower floor-by-floor (roster, HP/DPS requirements, rewards, chest milestones), all 115 runes with their cost ladders and Tomb drop rates, and the full item index. Deep links in every embed land on the exact entry on xphero.fans.
The DPS model is the site calculator's formula,
power = (Add + PerLevel·lvl) × Mult × BA_mult × PSV_mult,
self-tested against the calculator's own code at startup — so bot and
site can never drift apart on a number. The same startup self-test suite
checks command-tree wiring, markup cleanliness, drop formatting and
every data join before the bot is allowed online.
Its permissions are an anti-feature by design: the invite grants zero permissions and no privileged intents. The bot only sends messages in response to slash commands — it can't read your members, your messages or your channels' history. If it ever goes missing, that's a Discord outage, not a privacy event.
Command manual
Every name input has autocomplete: type /monster vol and
pick Volcanus from the suggestions. The detail:
options on /weapon and /dps switch between a compact card and the full
numbers view.
| Command | What it does |
|---|---|
/hero ↹ autocomplete | Hero lore, skills, blessings & abilities summary, portrait + deep link to the hero's reference page (autocomplete) |
/evolution | Hero evolution chain: per-step costs (Coins + Hero Pieces), star ladder, base stats |
/weapon | Card: base stats, full evolution chain, skills, next tier — or `detail: dps` for numbers |
/monster | Bestiary entry: story, drops, gold, appearances, deep link into the site bestiary |
/tower <1–250> | Floor roster with per-enemy HP/DPS, required DPS, rewards, next chest milestone |
/dps | Estimated DPS + the Challenge Tower floor it clears + chain rank |
/rune ↹ autocomplete | Rune effect at a level, milestones, level-up costs (Rune Dust + BlueStone), dismantle value, Tomb drop rates. Normal runes are per-rarity — `sword exotic`, `epic crossbow` (autocomplete) |
/tombruns <1–20> | Tomb of Heroes difficulty: per-enemy drop odds, held-item drops, cost-to-max per grade and a dismantle economy example |
/search | Finds monsters, weapons, items, heroes, buildings |
/item | Item card (falls back to weapons, since weapons are "items" in-game) |
/buildcard | Renders a Hero Builder share link as a 1200×630 stat-card image (same layout as the page's Download card button) |
/help | Every command with a one-line description and a usage example |
/links | Every site tool as clickable links |
/commands | Same embed as `/help` (kept as an alias) |
/invite | Bot invite URL |
Invite it in three steps
- Click the gold button up top (or run
/inviteinline as a member). You need the Manage Server permission in the server you're adding it to. - Confirm the scopes: it asks for
applications.commands botwith 0 permissions — accept as-is, never check extra boxes. - Type
/helpto see the full manual plus a usage example for every command. Under/linksyou'll get a clickable menu of every site tool.
First-command patience: global slash commands propagate across Discord and can take a few minutes to appear after a fresh invite (occasionally up to an hour on brand-new apps). That's Discord's behavior, not a bug — the re-sync happens every boot.
More than one server? Yes.
The bot is multi-server by design — the same invite link works in every server, nothing is configured per-server, and each server gets the full command set on arrival (see the FAQ post for how the bot's own announcements work). Every server that invites it sees the same data with no setup, and none of them see each other's channels.
--feed mode polls this site's RSS feed every 10 minutes and
announces new posts as branded embeds in any channels registered in
bot/feed_channels.json — a flat list of channel IDs, so
announcing in several servers (or several channels) is one JSON edit. New
posts are announced exactly once per channel, flood-protected on first
run, and delivery retries if a channel bot can't reach.What it won't do
- No moderation, no logs, no welcome messages — it's a data bot, so it doesn't need and can't touch your server administration.
- No DMs by default — if you blocked DMs from members, the bot respects that like any other member would.
- Nothing reads your data. Beyond answering slash commands and sending auto-poster embeds into opted-in channels, it does nothing — there's no telemetry and no state beyond "which posts have been announced."
The bot is maintained by the XPHero Fans team as part of the fan hub. All game data comes from the same extracted tables the site is built on (game v26.2.0); XP Hero is developed by Supercent — XPHero Fans and its bot are unofficial and not affiliated with or endorsed by Supercent, and this page describes a free fan tool, not a Supercent product.