Matchmaking
Arena opponents are picked automatically by XP level, with tiered fallbacks so you always find someone to fight. No manual browsing - just tap Enter Arena and the system finds someone.

How Opponents Are Picked
When you tap Enter Arena, the system searches for an opponent using a three-tier XP band, tried in order until a match is found:
- Narrow band. Looks for opponents within a close XP range of yours. A player should prefer fighting someone close to their level.
- Wide band. If no narrow matches, widens the range. Still level-matched, just with more tolerance.
- Fallback. If both bands came up empty, the system matches you against any eligible player.
Within the matched band, the opponent is picked at random. There's no cooldown, history check, or anti-repeat logic - you can be matched with the same opponent again in later fights.
The Three Matchmaking Bands
The bands are designed so that:
- At any level, you'll usually fight someone close to your level.
- Early in the game, when the player base at exact levels is thin, the system widens quickly to make sure you get a match.
- No one gets stuck with "no opponents available" unless the entire eligible pool is empty.
The exact thresholds aren't exposed to players - the goal is "similar level," not "this specific percentage."
Who's Eligible to Be Matched
A player is eligible as your opponent if all of the following hold:
- Not deleted.
- Not anonymous. Anonymous accounts aren't in the arena pool.
- Not you.
- Has an avatar class selected.
Anonymous accounts can use the arena (if they've picked a class) but they aren't available as opponents for others. This is part of the broader rule that anonymous players aren't on the leaderboard or in public-facing profiles.
What Happens When Bands Are Empty
If no eligible opponent exists in any band - a rare scenario, usually only at extreme levels with no active players - the arena page shows an error: "Could not find an opponent. Please try again."
No ticket is consumed when matchmaking fails. You can retry the button without losing anything.
Opponent Data
When a match is found, the system fetches the opponent's full equipment profile - their avatar class, equipment slots, stats, level, name, and profile picture. This lets the battle engine construct their avatar exactly as it appears on the leaderboard.
The opponent is held in-memory for the duration of your battle; once the fight resolves, the snapshot is discarded.
No Opponent Privacy Concerns
Arena matches use only public data about the opponent - what they'd show on the leaderboard anyway. Their habits, journals, goals, and other encrypted content are never touched or fetched. The arena reveals nothing about the opponent that isn't already visible to every other player.
Why matchmaking is level-based
Early drafts of the arena considered matching by combat power (computed stats), but level is a better signal in practice. Two players at the same level with different builds should have different combat power - that's what builds are for. Level is an honest proxy for "how engaged is this player with the game," which maps closer to "is this a fair matchup" than raw stats would.
Can You See the Opponent Before Committing
No. You confirm your intent to fight before matchmaking runs, and the encounter intro is the first moment you see who you've been matched against. There's no "inspect and reject" step.
If you don't like the matchup - say you're a Knight matched against an Archer who's likely to hard-counter you - the options are:
- Forfeit. Starts the fight and immediately loses. Ticket used, no gold. Rare but legitimate.
- Fight anyway. Class counters are probabilistic, not automatic - you might win through a lucky series of dodges and parries.
