Raise Your First Gate
Provision a VPS, install the DevXH server, open port 6112, and run it as a systemd service that survives reboots.
ZeroTier Private Realms
Create a ZeroTier network, add your server and friends as members, and host a game nobody can see but your circle.
Joining a Public Game
Point stock DevilutionX at a DevXH gate and walk into town — plus the idle bot mode for automated companions.
Whispers Answered
Hosting FAQ
The questions every gate operator asks. Type to filter — the labyrinth remembers. Every guide page links here too.
What kind of server do I need to host a gate?
Almost anything. DevXH is headless — no display, no window manager — and idles around 2% CPU with a few dozen MB of RAM. The cheapest VPS tier at any provider is plenty for one gate. See Raise Your First Gate.
Which ports does a gate need open?
TCP 6112 by default for TCP/IP games. Change it with
--port N if it's taken and forward the same port. ZeroTier games need no
open ports at all — they tunnel out via UDP 9993 to ZeroTier's roots.
How many players can join one game?
Four total — and the gate itself occupies one slot as the idle host, leaving
three human slots. Want more people? Run several gates on one VPS,
each with its own --port and --name.
Is a public gate safe to expose to the internet?
The server only listens on its game port and speaks the DevilutionX protocol — there's
no shell, no admin panel, nothing else to attack. For privacy, add
--password, or use ZeroTier so the game is
invisible to anyone outside your network.
Do I need to own the game? Where do the MPQs come from?
Yes — you must own Hellfire (and/or Diablo). DevXH never distributes game assets; you
supply your own MPQ files (hellfire.mpq, hfmonk.mpq, …) and
point the server at them with --data-dir.
Players report lag. What affects it?
DevilutionX multiplayer is a lockstep simulation: the slowest connection sets
the pace for everyone. Server load is rarely the cause (the gate idles at ~2% CPU) —
it's almost always distance. Host the gate near your players, or run multiple regional
gates. The --verbose flag helps diagnose persistent desync.
Can I make a gate private but still public-facing?
Yes — start it with --password "secret". The game still appears in the
lobby, but joiners must enter the password. For total invisibility, use a ZeroTier
realm instead.
What happens if the server crashes or the VPS reboots?
With the systemd unit from the deployment guide, systemd restarts it
(Restart=on-failure) and it comes back after reboot
(WantedBy=multi-user.target). The idle hero's save persists in
--save-dir, so level and gear carry over across restarts.
How do I make the gate start automatically on boot?
Install it as a systemd service — the full unit file is in
Raise Your First Gate. The short version:
systemctl enable --now devxh. Logs land in journald:
journalctl -u devxh -f.
Can I run several gates on one VPS?
Yes — each gate is just another process. Give each a unique
--port, --name, and --save-dir (so heroes don't
overlap), then create one systemd unit per gate. Resources scale fine: a small VPS can
comfortably host several idle gates.
My players are behind CGNAT / strict firewalls. Options?
ZeroTier was built for exactly this: everyone joins one virtual network, no port forwarding, no public IP needed. The game shows up in the lobby as if you all shared a LAN.
Can the server join someone else's game as an idle player?
Yes — bot mode. --join ADDRESS connects the idle hero to any TCP/IP host
(or ZeroTier game name) instead of hosting, with
--hero-name/--hero-class to customize it. Useful for keeping
a friend's game warm or testing your own gate.
How do I get my gate on the public server list?
Registration opens with the membership backend — it's the next major piece of DevXH. Until then, share your gate's IP directly with players. Watch the Downloads section for the announcement.
No whispers match that search — try a different word, or read the guides.