Mindustry
Tower-defense and factory game with servers
Mindustry is a free, open-source hybrid tower-defense and factory-building game. It includes a dedicated headless server for hosting cooperative and competitive multiplayer matches.
Key features
- Tower-defense plus factory gameplay
- Dedicated headless server
- Cooperative and PvP modes
- Mods and custom maps
Pros & cons
Strengths
- Lightweight server
- Large active community
Trade-offs
- Niche genre blend
- Server admin via console
Mindustry replaces
Last reviewed Aug 26, 2026 · 740 words
A Mindustry server is the cheapest multiplayer game server you will ever run: one Java process, 512 MB of RAM, a single port, and a game that is free to download from GitHub or itch.io so nobody has to buy anything to join. The only thing that reliably breaks it is version mismatch, and that is a scheduling problem, not a technical one.
The whole install is one jar
Download server-release.jar from the same GitHub release your players are on, put it in a directory, and start it:
java -Xmx1G -jar server-release.jar
You land in a console. Type host and it starts a game on a default map; host groundZero survival picks a map and mode. The server listens on 6567 for both TCP and UDP, so forward both or the client will see the server in the list and fail to join. config name "My Server" and config port 6567 do what they say and persist to config/ next to the jar. A Java 17 runtime is the safe choice for current builds. Peak memory with 8 players on a large map has stayed under 1 GB for me, which is why -Xmx1G is a reasonable default and the 512 MB minimum is honest for small groups.
Client and server must be the same build, exactly
Mindustry checks the build number on connect and rejects any mismatch. Steam updates clients automatically, itch.io and GitHub users update by hand, and your server updates only when you replace the jar. So the usual complaint, "it worked last week and now my friend can't join", is almost always that one of the three moved. Pin your group to a release, tell them to disable Steam auto-updates for the game or update together, and swap the jar on a day everyone agrees to. When you do upgrade, back up config/saves/ first; older saves generally load in newer builds, but I would not bet a 30-hour map on it without a copy.
The console is the admin panel
There is no web UI. Everything is a console command: admin add <name> grants in-game admin, kick, ban, pause, save 1, load 1, stop. That is fine as long as you can reach the console after you close your SSH session, which means either tmux or Docker with stdin_open: true and tty: true so docker attach gives you the prompt. If you would rather send commands from a script, config socketInput true opens a local TCP socket that accepts the same commands, which is what most community wrappers use. Mods and plugins go in config/mods/; server-side plugins that add rank systems, map voting and anti-grief are common and worth adding once strangers are involved.
Where it sits next to Factorio and a panel
Mindustry gets compared to Factorio because both are factory games with belts and logistics, but Mindustry is a wave-defence game at heart, matches last an hour rather than a campaign, and PvP is a first-class mode. If your group wants a persistent base that runs for months, a Factorio server is the better fit and costs more RAM. If you already host several games, Mindustry has community images that drop straight into Pterodactyl, and its resource footprint means it can share a node with almost anything else in the games category.
Public, or friends only
The game has a public server list, and listing yours means strangers, griefers and the moderation work that follows. For a friends' server, skip port forwarding altogether: run the server on a machine in your Tailscale network and have friends join by its tailnet IP. Latency over WireGuard is a few milliseconds and the attack surface is zero. If you do go public, add an anti-grief plugin before the first stranger arrives, not after the first ruined base.
What I'd do
Docker or a bare java -jar under tmux on any spare box, -Xmx1G, 6567 TCP and UDP forwarded only if you truly want strangers, Tailscale otherwise. Agree a build number with the group, keep the matching jar in the directory, and back up config/saves/ before every upgrade. For the price of half a gigabyte of RAM it is the easiest co-op server I have hosted, and the version rule is the only thing you need to remember.
Compare Mindustry
1 head-to-head comparisons.
Similar game servers apps
Lichess
Game ServersOpen-source chess server and platform
Replaces Chess.com
OpenRCT2
Game ServersOpen-source remake of RollerCoaster Tycoon 2
Replaces RollerCoaster Tycoon
papermc-docker
Game ServersContainerized Minecraft Java server image
Replaces Minecraft Realms
ArchiSteamFarm
Game ServersTool for farming Steam cards from multiple accounts
Replaces Idle Master
2048
Game ServersSelf-hostable browser version of the 2048 sliding puzzle
Replaces Mobile puzzle games
Nakama
Game ServersOpen-source game server for realtime multiplayer and social features
Replaces PlayFab, Firebase