Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/magefree/mage/llms.txt

Use this file to discover all available pages before exploring further.

XMage is a multiplatform Java application that runs on Windows, Linux, and macOS. Whether you are joining an existing public server as a player or hosting your own private server for friends and AI opponents, understanding the minimum requirements before you begin will save you troubleshooting time later. The sections below outline what you need for each role.

Java

Both the XMage client and server require Java 8 or later. The project is compiled with <java.version>1.8</java.version> source and target compatibility (as declared in the root pom.xml), so any JRE or JDK from version 8 onward will work. Oracle JDK, OpenJDK, Eclipse Temurin, and Amazon Corretto are all compatible distributions.
On macOS with Apple Silicon (M1/M2/M3), use a native ARM64 JDK such as Eclipse Temurin for macOS AArch64 or Azul Zulu for ARM. Running an x86-64 JDK under Rosetta 2 works but may cause rendering glitches and reduced performance.

Supported Operating Systems

PlatformStatus
Windows 10 / 11 (64-bit)✅ Fully supported
Windows 7 / 8 (64-bit)⚠️ Works, not actively tested
Linux (x86_64)✅ Fully supported
Linux (ARM / Raspberry Pi)⚠️ Community-supported
macOS 11+ (Intel)✅ Fully supported
macOS 12+ (Apple Silicon)✅ Requires native ARM JDK

Hardware Requirements

The table below shows recommended minimums for each role. Running both client and server on the same machine requires combining the figures.
ComponentClient (player)Server (self-hosted)
Java8 or later8 or later
RAM512 MB minimum; 1–2 GB recommended with images loaded1 GB minimum; 2–4 GB for active multiplayer
CPUAny dual-core, 1 GHz+Any dual-core, 2 GHz+ for multiple concurrent games
Disk space~200 MB base install; card image cache can reach several GB after full download~200 MB base install; additional space for saved games if enabled
Display1280 × 800 or higherNot required (headless)
NetworkTCP access to server on ports 17171 and 17179Ports 17171 and 17179 open inbound through firewall/NAT
If you only want to play against the AI and do not need to download full card artwork, the disk footprint stays well under 500 MB. Card images are cached incrementally — you only download the sets you actually play with.

Network Ports

XMage uses two TCP ports for its JBoss Remoting bisocket transport:
PortPurposeConfig attribute
17171Primary server socket (client connections)port
17179Secondary / callback socketsecondaryBindPort
Clients must be able to reach both ports on the server. If secondaryBindPort is set to -1 in config.xml, the server will choose a random ephemeral port at startup — this can be problematic behind NAT or strict firewalls, so it is best to keep the explicit value for public servers.

macOS-Specific Notes

Gatekeeper may block the XMage launcher JAR or accompanying scripts the first time you run them. If you see a message saying the application “can’t be opened because it is from an unidentified developer,” go to System Settings → Privacy & Security and click Open Anyway, or launch via Terminal to bypass the check.
macOS users with M1 or M2 hardware should also verify that their installed Java binary is a native ARM build:
java -XshowSettings:property -version 2>&1 | grep "os.arch"
# Expected on Apple Silicon: os.arch = aarch64
If you see x86_64, install an AArch64 JDK to avoid potential GUI freezes and degraded performance.

Build docs developers (and LLMs) love