Game systems

PvP duels: an arena with entries and prizes

How the ready-made iDos Games PvP arena works - duels with an entry, heroes by Power, a battle strategy by zones and a fight the server resolves at once - and how to set it up in the dashboard.

Updated: Русский

The PvP arena is a duel system: a player opens a duel with an entry, another one joins with their hero, and the server fights the battle at once. The winner takes the pot after the burn you set, a draw returns the entries.

What the player sees

  • Open duels to join with one of your heroes.
  • Your duels: waiting (cancel returns the entry) and finished (won, lost, draw).
  • A new duel: rule, hero by Power, entry within the rule's bounds and what the winner takes.
  • The battle strategy (attack and defence zone per round) and the fight replayed round by round.
Arena
12 450
320
Open duels
My duels
Arrow · Power 1 920Entry 100 coins
Join
Mira · Power 2 300Entry 250 coins
Join
Strategy

Attack: head · Defence: body

New duel
Round 1: critical to the head
-412
Round 2: blocked
0
Open duels to join with your hero, and your own duels.
A new duel with an entry; the attack and defence zones per round.
The server fights instantly; the result is replayed round by round.
Example. The arena: open duels, the strategy and the fight replayed by rounds.

How it works

  • The fight is computed by the server from the heroes' stats: hit, critical, block or dodge every round.
  • Heroes and their stats come from the heroes system; without a hero the screen offers it.
  • A rule sets the entry bounds and the share of the pot that is burned.

Step 01Add the system to your project

Ask the AI coder: "Add a PvP arena". It installs the ready system with a coin duel (entry 10 to 500, 10% burned) fought by the demo heroes.

Step 02Set it up in the dashboard

Open the dashboard, pick your project and go to Live Operations → v2 → Match.

  • Create a duel rule: entry currency and bounds, burn share and which stats fight.
  • Make sure the title has heroes in Character.

The AI button on the page opens an assistant: describe what you need, it proposes changes, and you review them and press Save.

Step 03Test and release

Check the system in the test version of your app. Settings go to the live app as a separate action - see publishing and links.

For developers

Duels work through client.match in @idosgames/core.

TypeScript
// Open a duel with an entry of 100 coins by the 'coin_duel' rule
const created = await client.match.createMatch(
  { Entries: [{ Type: 'VirtualCurrency', CurrencyID: 'coins', Amount: 100 }] },
  'coin_duel',
  'knight',
)
// Join someone else's duel: the server fights it at once
const battle = await client.match.instantBattle(matchID, 'coin_duel', 'knight')
  • The entry is taken when the duel is created; cancelling an open duel returns it.
  • The fight log is in the response of instantBattle: replay it, do not compute it.

Every field is described in the match-system skill, served by the SDK MCP server.

Frequently asked questions

Is the fight real time?

No. The server resolves the whole fight at once from the heroes' stats and the strategies; the screen replays it.

What happens on a draw?

Both entries are returned.

See also

Make your own game

Describe the idea in a sentence - the AI coder builds it, and it goes live at its own link.