Playmat

A fan-made web client for XMage.

Playmat is a hobby project: a browser client for XMage, the open-source Magic: The Gathering rules engine, styled after MTG Arena. Play it in your browser at playmat.deimos.studio, install it on your computer to play XMage's AI, Career or friends on your Wi-Fi, or run a server for your group. It's free, MIT licensed, and not affiliated with Wizards of the Coast.

It's a work in progress with rough edges. Bug reports and pull requests are welcome on GitHub.

Free for Windows, macOS and Linux. All downloads

A game against the AI: three creatures attack, red arrows run from each to the opponent's life total, and an amber Attack (3) button waits bottom right.

Playing

Pick a deck and press Play to start a game against the AI, or send a friend an invite link to play each other.

  • Attack arrows, a visible stack and priority you can read at a glance
  • Auto-pass with the stops you choose, and keyboard shortcuts
  • Practice mode: a goldfish opponent and any card into your hand or onto the battlefield
  • Spectating, match history and replays of finished games
  • Visible keyboard focus, reduced motion respected, and no state shown by colour alone
The Play screen: a list of decks on the left, the chosen deck's art filling the mat, and a Play panel with an amber Play button.

Decks

Decks come in from a link (Archidekt, Moxfield and other sites), a pasted list or a .dck file. Every new account gets a set of starter decks, Commander ones included.

  • Card search by name, type, rules text, colour, cost, rarity and set
  • Format checks, a mana curve and colour counts as you build
  • Booster draft, sealed, Jumpstart and constructed events, with AI players in empty seats
The deck builder: a grid of dinosaur cards from a rules-text search on the left, the deck list with its mana curve on the right.

Career mode

An optional single-player mode. You start with a starter deck and a hundred coins, win games against the AI, open packs to build a collection, and work through a school for each format.

The Career hub: the next opponent on the left, tiles for Opponents, Campaign, Academy, Gauntlet, Puzzles, Sealed and Draft, Weekly Challenge, Shop, Collection and Progress, and daily quests on the right.
A Lorwyn Eclipsed booster pack half revealed: twelve cards face up, two still face down, one of them glowing.
Campaign
Five colour paths, a boss at the end of each.
The Academy
A school for every format, from the rules to today's decks.
Gauntlet
Build from packs and climb eight bosses.
Sealed & draft
Open or draft a set, then play to three wins.
Puzzles
Win from a fixed position this turn.
Weekly challenge
The same decks for everyone, and a board.
The same game on a tablet in portrait: the board stacks vertically with the turn tracker across the middle.

Tablets and Android

The table reflows from a wide monitor down to a tablet in portrait. It installs as a web app, and there's an Android app built from the same code that keeps card pictures on the device.

  • Any modern desktop browser
  • Tablets in landscape and portrait, fullscreen when installed
  • Android app built from the same code
  • English and Spanish

From XMage

Playmat is a new client, not a new engine. All of this comes from XMage:

Multiplayer
Commander, Brawl, Oathbreaker and free-for-all games for up to ten players.
Tournaments
Swiss or elimination events with drafting, sealed pools and sideboarding.
Lobby
Chat, players online, profiles and a table browser to join or watch any game.
Rules on the server
Rules and hidden cards are handled on the server, so a client can't cheat.
Accounts
Optional sign-up with passwords, ratings, moderation and admin tools for public servers.

Play on your computer

One download with everything inside, Java included. Nothing else to install and nothing to set up: open Playmat and the game opens in your browser. Play the AI and Career on your own, or have friends on the same Wi-Fi join you.

  1. InstallRun the installer, or drag Playmat to Applications on a Mac.
  2. Open PlaymatThe first start prepares the card database. That takes a few minutes, once.
  3. PlayThe game opens in your browser. Friends on your network join at the address Playmat shows.
The Playmat window: Ready to play, a Play button, the address friends on the network can join at, and a Player accounts checkbox.
  • Windows

    Download for Windows

    Windows 10 or 11. Run the installer and press Install. If Windows says it protected your PC, choose More info and then Run anyway: Playmat is a free fan project without a paid signing certificate. Or skip that screen by installing from PowerShell:

    irm https://github.com/arcanite24/playmat/releases/latest/download/install.ps1 | iex
  • macOS

    Apple silicon (M1 and later) Intel Mac

    Not sure? Apple menu, About This Mac: "Apple M…" is Apple silicon. Drag Playmat to Applications. The first time, macOS asks you to allow it: open System Settings, Privacy & Security and choose Open Anyway. Or skip that step by installing from the Terminal:

    curl -fsSL https://github.com/arcanite24/playmat/releases/latest/download/install.sh | sh
  • Linux

    Paste this in a terminal. It picks x64 or ARM, installs Playmat in your home folder, adds it to the applications menu and starts it.

    curl -fsSL https://github.com/arcanite24/playmat/releases/latest/download/install.sh | sh

    Or download the x64 or ARM archive and run Playmat/playmat.

  • Your accounts, decks and Career progress stay on your computer and are kept when you update.
  • Playmat tells you when a new version is out.
  • Card pictures come from Scryfall, so an internet connection helps.

Release notes and earlier versions are on the releases page.

Run a server

For a group that plays together from anywhere, someone runs the server with Docker Compose, on a home machine for a LAN or on one with a domain, and everyone else opens the site in a browser.

xmage
the game server and its WebSocket bridge
web
Caddy: automatic HTTPS, security headers, rate limits
imgcache
a caching proxy for Scryfall card pictures
backup
nightly dumps of the player databases

The images are published for x86 and ARM, so nothing needs building, and the owner updates the server from its admin console. Run a server and Updating in the docs walk through it; the deployment guide has every setting, LAN servers with no domain, and capacity numbers.

# get the code
git clone https://github.com/arcanite24/playmat.git
cd playmat

# set DOMAIN, XMAGE_AUTH, XMAGE_OWNER
cp ops/web/.env.example ops/web/.env

# pull the published images and start
docker compose -f ops/web/docker-compose.yml --env-file ops/web/.env up -d

Credits

The rules engine, the card implementations and the AI are the work of the XMage project and its contributors since 2010; Playmat merges XMage regularly to pick up new sets and fixes. Card pictures and data come from Scryfall. Magic: The Gathering belongs to Wizards of the Coast.

XMage on GitHub · Scryfall