XMage - Magic Another Game Engine https://xmage.today
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
ssk97 34c0ae6d37
OneShotNonTargetEffect improvements (#16637)
* Make OneShotNonTargetEffect apply inner effect with FixedTargets pointer

Allows the use of it inside of abilities that target (the original targets are left alone). A target adjuster still gets a copy of the ability, but only to build the targets. Converts several cards that can now use this.
2026-11-10 01:38:23 -08:00
.devcontainer/xmage-dev-tools dev: improved devcontainer compatibility 2026-11-03 23:48:25 +00:00
.github dev: fixed miss label for some PRs with tests 2026-10-25 05:19:21 +00:00
.travis dev: added detail logging info on startup (print all log appenders with their levels and file names) 2026-07-24 07:04:22 +00:00
Mage OneShotNonTargetEffect improvements (#16637) 2026-11-10 01:38:23 -08:00
Mage.Client GUI, game - fixed random errors on card popup usage (split url highlight and card search between threads, fixed errors like BadLocationException, close #11612) 2026-11-09 15:05:07 +00:00
Mage.Common version bump 2026-10-31 13:24:39 +04:00
Mage.Plugins version bump 2026-10-31 13:23:26 +04:00
Mage.Reports version bump 2026-10-31 13:23:26 +04:00
Mage.Server version bump 2026-10-31 13:23:26 +04:00
Mage.Server.Console version bump 2026-10-31 13:23:26 +04:00
Mage.Server.Plugins Convoke multitapping and other alternative mana payment improvements (#16508) 2026-11-10 00:37:03 -08:00
Mage.Sets OneShotNonTargetEffect improvements (#16637) 2026-11-10 01:38:23 -08:00
Mage.Tests OneShotNonTargetEffect improvements (#16637) 2026-11-10 01:38:23 -08:00
Mage.Verify GUI, game: fixed client error on emblem or dungeon usage in dialogs with m15 card render mode (example: trigger order with Liliana's emblem, close #15972); 2026-11-09 19:28:17 +00:00
repository/com/googlecode/jspf/jspf-core Added local repository to pom 2012-07-25 20:22:18 +03:00
Utils [Alchemy] Implement Val, Marooned Surveyor with seek events (#16546) 2026-11-07 23:10:06 +04:00
.gitignore [dev] Util folder cleanup (#15699) 2026-08-02 09:30:17 -05:00
.travis.yml Added data collectors, AI and testing tools improves: 2025-07-05 21:44:55 +04:00
clean_dbs.sh make clean_dbs.sh executable 2015-11-08 22:32:42 -08:00
LICENSE.txt add current MIT license to root 2018-06-02 17:48:28 +02:00
Makefile tests: improved code and cleanup, improved load tests 2026-08-22 11:24:31 +00:00
pom.xml version bump 2026-10-31 13:23:26 +04:00
readme.md Update URLs in readme.md to use HTTPS (#16075) 2026-09-01 22:53:49 -05:00

XMage — Magic, Another Game Engine

Build Status Latest release Commits since latest release

XMage is a full rules-enforcement engine for playing Magic against other players or computer AI, online or on your own server. It supports over 32 000 unique cards and more than 91 000 reprints across official sets, plus custom sets like Star Wars.

Local server supports a special test mode for testing combos and other game situations with pre-defined conditions.

There are public servers where you can play XMage against other players. You can also host your own server to play against the AI and/or your friends — including fully offline, with no internet connection required.

XMage community and resources:

Official public server with released version:

Other servers and status:

Features

  • The most tested open-source rules enforcement engine: ~9000 unit tests, ~80% coverage;
  • Cross-platform support: Windows, Linux, MacOS;
  • Two-player duels or multiplayer games (Commander and others) with up to 10 players;
  • Drafts, tournaments and single games with sideboarding supported;
  • Smart and fast AI opponents for both games and draft/deck-building;
  • Cheat-proof by design: all rules and hidden information are enforced server-side — clients never see or act on data they're not authorized to;
  • Deck editor (support deck import from multiple apps and services);
  • Players rating system (Glicko);
  • Supports dozens of formats and game modes like Commander, Oathbreaker, Cube, Tiny Leaders, Super Standard, Historic Standard and more;
  • Single matches or tournaments supported (elimination or swiss type handling), which can be played with up to 16 players;

Bug report / feature request

The best way to report bug or feature request is github's issues page.

Installation / running

  • Download files and follow install instructions on https://xmage.today/
  • You need to have Java version 8 or later to run launcher;
  • Recommended folder to unpack/install: D:\games\xmage (don't use Program Files or Download folders);
  • If you want to play with AI opponents then must run "server" app via the launcher and connect to it via localhost;

Wiki page contains detailed information about private or public server setup, developer onboarding and other useful things

Troubleshooting / FAQ

Github issues page contain popular problems and fixes:

Performance tweaks

The main way to increase performance or fix micro-freezes -- increase max memory usage by special java flag:

  1. Run launcher -> Settings -> Java tab -> Client java options text field;
  2. Add or change existing flag to -Xmx3000m or another value based on your free memory stats (recommended settings: 2000m for 1080p desktop, 3000m for 4k desktop). It's useless to give 5+ GB memory;
  3. If you play many AI games then it's recommended to change Server java options with same value too;

Development

Full project documentation and instructions for developers can be found in wiki pages.

First steps for XMage's developers:

Torch icons created by Freepik - Flaticon