Multiplayer¶
JA2 1.13 includes a multiplayer mode: tactical skirmishes for up to four players, fought out in a single sector as deathmatch, team deathmatch, or co-operative battles against the AI. It is built into the mod itself — click Multiplayer Game on the main menu to host a match or join one.
A legacy feature — expect roughness
Multiplayer was developed roughly between 2007 and 2011 and has seen essentially no gameplay work since. The code still ships in every current release and is kept compiling, but it is largely untested today. It only synchronizes part of the game's mechanics between players, desyncs can happen, and there is no matchmaking or server browser — you connect directly to a host's IP address. Treat it as a fun experiment to try with friends, not a polished competitive mode. There is no persistent campaign: a multiplayer game is one battle in one sector.
How it came to be¶
Multiplayer ("JA2MP") started in late 2007 as a standalone prototype by Haydent, built
on the free RakNet UDP networking library. In that early version you configured everything
by hand in a ja2_mp.ini file and started the server and client with hotkeys from the map
screen. RoWa21 later merged the code into mainline 1.13, and together with Zathras
and BirdFlu the team added the in-game multiplayer menu, co-op mode and the file
transfer system that exist today. The credited authors of JA2MP are Haydent, RoWa21,
Zathras and BirdFlu. (A Ja2_mp.ini still exists in current builds, in your user profile
folder, but only to remember the player name, IP and port you last entered on the Join
screen.)
The multiplayer code is still part of the current GitHub source — the Multiplayer/
folder, including the bundled RakNet library, compiles into every release — but GitHub-era
commits touching it have been code maintenance rather than feature work. The most recent
player-visible change was removing the surrender offer from multiplayer in the v3 release
(August 2025); see the version history.
Everything below described as current was verified against the game's source code and English game text in July 2026. Details that come only from the early developer documentation are marked as historical — they describe the original implementation and may differ in current builds.
Game modes¶
| Mode | Description |
|---|---|
| Deathmatch | Every player fights every other player. |
| Team-Deathmatch | Players on the same team fight together against the other team(s). |
| Co-Operative | All players fight side by side against AI enemies. |
These are still the three game types offered on the current Host screen. Co-op did not work in the earliest releases; it was fixed during later development and the old wiki confirmed it as playable by early 2011.
AI-controlled forces (enemies, militia, civilians) are generated only on the host and sent to the clients, so every player sees the same opposition. In the original implementation, creature spawns were effectively disabled — the creature team was reduced to a single slot to make room for the four player teams (historical).
Hosting a game¶
- Click Multiplayer Game on the main menu.
- Click Host on the Join screen.
- Configure the game type and game options, then click Start. The game switches to the map (strategic) screen — this is the lobby.
- While the lobby is open (the laptop is still locked):
- you can change the starting sector by moving the drop zone in the airspace view,
- new players can connect to the game,
- players can change their starting map edge (click the button with the compass icon),
- players can change their team the same way (click the team button).
- When everyone is in, click Start Game. This locks the game settings and unlocks the laptop.
- Players now hire their mercs — unless the random-mercs option was selected, in which case mercs are hired automatically — and click Ready.
- When all players are ready, the battle begins.
The Host options screen in current builds lets you set the server name, the game type, the maximum number of players (2–4), mercs per player (1–6), how mercs are hired (each player hires their own, or random), whether two players may hire the same merc, starting cash, weapon damage (very low, low or normal), timed turns, starting time (morning, afternoon or night), difficulty, Bobby Ray's access, civilians and maximum enemies for co-op games, and the file-transfer directory described under File transfer.
Firewall and router setup
For other players to reach your game:
- the JA2 executable must not be blocked by your firewall,
- the other players need your external IP address,
- the game port (default: 60005) must be forwarded on your router, for both UDP and TCP.
See Troubleshooting below for the details.
Joining a game¶
- Click Multiplayer Game on the main menu.
- Type in your player name.
- Type in (or paste) the host's external IP address and the port.
- Click Join.
- The game switches either to the map screen (the lobby) or to a connect screen where you first download game files from the server — see File transfer below.
- While the game has not started yet you can change your starting map edge — and, in team deathmatch or co-op, your team — via the drop-downs in the columns next to your name.
- After the host clicks Start Game, hire your mercs (unless random mercs is on) and click Ready.
The game settings you pick when starting a multiplayer game as a client do not matter: you receive the actual settings from the host after connecting. Your game version must match the host's exactly — the server rejects clients running a different version.
Playing a match¶
According to the original documentation, a match plays out like this:
- Once all players are ready, the sector loads into the overhead tactical placement view, and each player places their mercs along their chosen map edge.
- The battle starts in real time and switches to turn-based mode at the first enemy sighting. It can drop back to real time if the sides lose sight of each other for a few turns.
- Press Y at any time to open the in-game chat (still current; you can send to all players or to allies only).
- The host can enable timed turns, which limit how long each player's turn may take — still an option on the current Host screen (the seconds-per-tick value is part of the game settings the host sends).
- When your last merc dies you are not dropped from the game — you stay connected as a spectator (spectator mode is still present in current builds).
- When the battle in the sector is over, the scoreboard is displayed after a few seconds. Press Continue to re-join (or re-host) the server for another game, or Cancel to return to the main menu.
The host also has two control keys, both still present in the current source: Alt+E manually ends another player's turn (or forces turn-based mode from real time) — the game itself suggests it if a match gets stuck on a player whose progress bar stops moving — and Alt+K kicks a player, which removes their mercs from the battle but leaves them connected as a spectator.
What is synchronized — and what is not¶
Multiplayer does not replicate the full JA2 engine across the network. The original developer documentation lists what is sent between players:
- merc movement on the ground level (with a lock-step grid synchronization system),
- stance changes (standing, crouching, prone) and facing direction,
- firing a gun, bullet trajectories, bullet damage, and deaths,
- knife, punch and burst-fire damage (though in the early builds without their animations),
- stopping a merc when a new enemy is spotted, and interrupts,
- doors, and periodic updates of each merc's position, health and breath.
Everything else was left unimplemented at the time — the documentation explicitly names roof combat (roof climbing was disabled), grenades and med kits as things to avoid, and advises players to agree beforehand not to use unsupported mechanics to prevent confusion and invalid battle actions. Roof climbing is still blocked in current builds — the game refuses with a "climbing is disabled in a multiplayer game" message. No comprehensive newer list exists, so assume that anything exotic may desync.
One documented quirk of the design: hit calculations are made on the shooter's machine and sent to the others afterwards. Your game may therefore first show an incoming shot missing, and a moment later apply the damage anyway when the shooter's result arrives.
Keep it simple
Matches are most stable when everyone sticks to the supported basics: move, take a stance, shoot. Agree on house rules with your opponents before the match starts.
File transfer (sharing maps and mods)¶
Multiplayer includes a built-in file transfer system so a host can send modified game
files — custom maps, tweaked XML data, a modified Ja2_Options.INI — to the players who
connect. This means everyone plays with the same data without installing anything manually.
Downloaded files never overwrite your own installation. They are stored in a VFS profile — a folder unique to that server — so you can play on many different servers with different settings without your own game data getting messed up.
Security¶
- When you connect to a server that wants to send files, you are asked whether to proceed or to disconnect without downloading anything. Click YES to download, NO to return to the Join screen.
- You can list files, folders or file types you never want to receive in
transfer_rules.txtin your game directory. Anything on that ignore list is skipped even if the server sends it. Normally you do not need to touch this file.
Setting up files to send as a host¶
- Create a mod folder under your game directory (the folder containing
ja2.exe), by default underMULTIPLAYER\Servers\— for exampleGAMEDIR\MULTIPLAYER\Servers\My Server. - Place your modified files in it using the same relative paths they would have under
GAMEDIR\Data\orGAMEDIR\Data-1.13\. For example, modified TableData XML files go intoGAMEDIR\MULTIPLAYER\Servers\My Server\TableData\, and a modifiedJa2_Options.INIgoes directly intoGAMEDIR\MULTIPLAYER\Servers\My Server\. - On the Host options screen, enable Synchronize Game Directory and check the path
in the MP Sync. Directory field — use
/instead of\as the path separator, as the screen itself reminds you. - Host the game.
Keep the server folder in sync with Data-1.13
Per the file transfer documentation, the host's own game does not initialize from
the server folder — it initializes from Data-1.13. Make sure the files in your server
folder are identical to the ones in your Data-1.13 folder, otherwise clients end up
playing with different data than the host. The safest workflow is to modify the files
in Data-1.13 first and then copy them into the server folder. (See
Configuration for how the data folders are layered.)
While clients download, the host sees a blue progress bar behind each player's name in the player list on the strategy screen. The game cannot be started until all players have finished downloading.
On the client side¶
During the download you see a progress bar and the names of the files being transferred;
you can chat with Y while you wait. The files are stored under
GAMEDIR\MULTIPLAYER\Servers\<Unique_Server_Id>, where the ID is a unique string (for
example 4MWZX-5WUKF-BXJSQ-MWFCW-FDM5E) identifying that server. This folder is created
even if the server sends no files. When the multiplayer game loads its data, it looks in
this folder first, then in Data-1.13, then in Data.
Differences from single player¶
Several differences are hard-coded in the current source:
- Cheats are disabled entirely: networked sessions force the cheat level to zero, and the Ctrl+G activation prompt does not appear in multiplayer.
- NCTH is forced off — multiplayer battles always use the vanilla-style OCTH rules, whatever the host's INI says.
- The improved interrupt system is likewise forced off in networked games.
- Real-time sneaking is disabled, and crows do not appear.
- The host's choice of inventory system applies to everyone: if the host picks the New Inventory System and your screen resolution cannot display it, the game refuses with an error message.
- Since the v3 release (August 2025), the surrender offer no longer appears in multiplayer.
Beyond that, the original documentation describes a number of gameplay tweaks made for multiplayer (historical — details may differ in current builds):
- A multiplayer game is a single battle in one sector chosen by the host's drop zone; there is no strategic campaign around it.
- Each player hires a limited number of mercs — the current Host screen allows 1 to 6 per player (the early documentation said up to 7); all hires arrive at the drop-zone sector.
- AIM contracts were fixed at one day, with delivery time and confirmation streamlined, since a match is assumed to last less than a game day.
- Bobby Ray's orders were delivered immediately into the battle sector, accessible from map inventory without loading the map, and further orders could be placed mid-game. Medical deposit costs were disabled.
- The host could set a damage multiplier and a starting balance for all players (both still exist as the Weapon Damage and Starting Cash options on the current Host screen).
- Multiplayer used its own savegame directory, separate from your single-player saves.
Troubleshooting¶
Others cannot connect to my game. Check, in order:
- Your firewall is not blocking the JA2 multiplayer executable.
- The other players are using your external IP address (the address your internet
provider gives you, not your
192.168.x.xLAN address). A "what is my IP" website such as http://www.whatismyip.com shows it to you. - The game port (default 60005) is forwarded on your router to your PC, for both UDP
and TCP. Router-specific guides are available at http://portforward.com/. The general
recipe: find your internal IP (run
ipconfig /allin a command prompt), open your router's configuration page in a browser (often your internal IP ending in.1), and add a forwarding rule from port 60005 to your internal IP. - Everyone runs the exact same game version — the server rejects a client whose version differs from its own.
A client can't rejoin mid-game / something desynced. There is no documented recovery procedure. End the battle (or disconnect) and re-host; keep matches short and save the game after everyone has hired their mercs, as the original documentation suggests.
For general (non-multiplayer) startup and display problems, see Troubleshooting.
Finding opponents¶
There has never been a large multiplayer player base, so you will need to arrange matches yourself. The old wiki — and the in-game Join screen's help text to this day — pointed players to a QuakeNet IRC channel, which is long inactive; the wiki also mentioned the Bear's Pit forum's multiplayer board. Today your best bet is the 1.13 community Discord and the Bear's Pit forum — see Contributing for how to reach the community, and Links for the full list of community sites.
Sources¶
- "Jagged Alliance 2 1.13 Multiplayer" (JA2MP getting-started readme by Haydent, RoWa21, Zathras and BirdFlu), from the 1.13 documentation files
- "File Transfer" (JA2MP file transfer readme), from the 1.13 documentation files
- "JA2 v1.13 Multiplayer" developer readme (b3) by Haydent, 2007–2008 — historical
- Multiplayer — old JA2 v1.13 pbworks wiki (2009–2014 era) — historical
- Current 1.13 source code at github.com/1dot13/source:
the
Multiplayer/folder (client.cpp,server.cpp, bundled RakNet),Ja2/MPJoinScreen.cpp,Ja2/MPHostScreen.cpp,Ja2/MainMenuScreen.cpp,Ja2/GameSettings.cpp,Tactical/Turn Based Input.cppand the English game text ini18n/_EnglishText.cpp— all current claims verified against these, July 2026 - GitHub commit history of the
Multiplayer/source folder (maintenance-only changes through December 2025) and the v3 release notes — see Version history