HumanitZ Guide

Survive the Outbreak.

HumanitZ Guide hero banner

HumanitZ Dedicated Server Linux Setup Guide

Running your own HumanitZ dedicated server on Linux gives you full control over mods, admin commands, save backups, and uptime. This guide walks through the full setup on Ubuntu and Debian — SteamCMD install, server file download, config files, port forwarding, firewall rules, a systemd startup script, common admin commands, and troubleshooting the issues that trip up most first-time hosts.

Last updated: July 5, 2026

Prerequisites and System Requirements

A HumanitZ dedicated server runs on any modern x86_64 Linux distribution, but this guide assumes Ubuntu 20.04 or newer because the SteamCMD package and library dependencies are best documented for it. You need root or sudo access, a non-root user to run the server (never run SteamCMD or the game server as root), and a public IPv4 address if you want players outside your LAN to connect.

If you are renting a VPS, pick one in a region close to most of your players — latency above 100 ms makes melee combat feel laggy in HumanitZ. A 4-core, 8 GB VPS comfortably hosts a full 32-player server with room for backups.

ComponentMinimumRecommendedNotes
OSUbuntu 20.04 LTS (x86_64)Ubuntu 22.04 LTS or Debian 12Avoid ARM builds — HumanitZ server is x86_64 only. Wine is not required.
CPU2 cores @ 2.4 GHz4 cores @ 3.0 GHzSingle-thread performance matters most for the main game tick.
RAM4 GB8 GBEach connected player adds roughly 150 MB. A full 32-player server needs 6 GB free.
Storage20 GB SSD40 GB NVMe SSDServer files are 8 GB. World saves grow 100 MB per real-time day of play.
Bandwidth5 Mbps up20 Mbps upEach connected player uses ~100 KB/s. 32 players = 3.2 MB/s sustained uplink.
SteamCMD AccountAnonymous loginSteam account with HumanitZServer files download anonymously. The game client key is not needed for the dedicated server binary.

Installing SteamCMD and Server Files

First, install the 32-bit libraries SteamCMD needs even on a 64-bit system. Run sudo dpkg --add-architecture i386 && sudo apt update && sudo apt install -y lib32gcc-s1 steamcmd. This pulls SteamCMD from the Ubuntu multiverse repository. If your distribution does not ship steamcmd as a package, download it manually from the official Valve mirror and extract it into/opt/steamcmd.

Create a dedicated user so the server never runs as root:sudo useradd -m -s /bin/bash humanitz, then switch to it with sudo -iu humanitz. Now download the server files. HumanitZ uses app ID 2698730 (the dedicated server). Run:

steamcmd +login anonymous +force_install_dir ~/humanitz-server \
  +app_update 2698730 validate +quit

The download is roughly 8 GB and takes 5 to 20 minutes depending on your uplink. When SteamCMD prints "Success! App '2698730' fully installed", the server files are in~/humanitz-server. Re-run the same command any time you want to update the server — SteamCMD only downloads the changed files.

Configuration Files and Server Settings

After the first run, the server generates its config directory at~/humanitz-server/HumanitZ/Saved/Config/LinuxServer/. The main file is GameUserSettings.ini. Stop the server before editing it, or your changes will be overwritten on shutdown. The most important settings are the server name, max players, password, and the world save slot.

Set a clear ServerNamebecause it is what players see in the server browser. Avoid generic names like "My Server" — players will not find it.MaxPlayerscan be set up to 32. Setting it above 32 is not supported and causes disconnects. TheServerPasswordfield is optional — leave it blank for a public server, set it for a friends-only server. Always setAdminPasswordto something strong; this is what lets you run admin commands in-game with the # prefix.

World saves live in~/humanitz-server/HumanitZ/Saved/SaveGames/. Back this folder up daily with a cron job — if it corrupts, the whole world is lost. A simpletar -czf save-$(date +%F).tar.gz SaveGames/in a cron entry is enough for most setups.

Ports and Firewall — What to Open and Why

Players can only connect if the game port and the query port are both reachable from the public internet. Forward them on your router (if hosting at home) and allow them in the host firewall (ufw on Ubuntu, firewalld on Debian/RHEL). The RCON ports are optional — only open them if you actually use remote admin tools.

PortProtocolDirectionPurpose
7777UDPInboundMain game server port (default). Players connect here. Forward on router and allow in firewall.
7778UDPInboundQuery port. Used by Steam server browser to list your server. Must be open for the server to appear in the public list.
27015UDPInboundSteamCMD RCON port (optional). Enable only if you want remote console access from a different machine.
25575TCPInboundRCON TCP port (optional, if configured). For admin tools and web dashboards. Disable if unused.

Apply the rules with ufw:sudo ufw allow 7777/udp && sudo ufw allow 7778/udp. Verify they are open from an external machine withnc -uv your.server.ip 7777. If the port test fails but ufw shows the rule, your VPS provider may have a separate cloud firewall in its control panel — open the ports there too.

Startup Script and systemd Service

Do not run the server in an interactive SSH session — it dies the moment your connection drops. Use a systemd service so it auto-restarts on crash and boots on server restart. Create/etc/systemd/system/humanitz.serviceas root:

[Unit]
Description=HumanitZ Dedicated Server
After=network.target

[Service]
Type=simple
User=humanitz
WorkingDirectory=/home/humanitz/humanitz-server
ExecStart=/home/humanitz/humanitz-server/HumanitZServer.sh \
  -Port=7777 -QueryPort=7778 -MaxPlayers=32
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Enable and start it withsudo systemctl daemon-reload && sudo systemctl enable --now humanitz. Watch the log withjournalctl -u humanitz -f. The first boot takes 1 to 2 minutes while the world generates. Once you see "Server is ready" in the log, players can connect.

Admin Commands

Log in as admin in-game by opening chat (default key Enter) and typing #login YourAdminPassword. Once authenticated, the following commands are the ones you will use most. All admin commands start with the # prefix.

  • #kick PlayerName — disconnect a player by name. Use the exact in-game name.
  • #ban PlayerName — ban by name. The ban is stored in the server ban list and survives restarts.
  • #teleport PlayerName — teleport yourself to a player. Useful for inspecting reported griefing.
  • #settime 12 — force the in-game clock to noon (0-24). Useful for stopping night-time raids.
  • #save — force a world save. Run this before any restart.
  • #shutdown 60 — graceful shutdown in 60 seconds with a warning broadcast to all players.

Always run #savebefore #shutdown, or the last few minutes of player progress may be lost. For scheduled restarts, put both commands in a cron job 10 minutes apart so players get a warning window.

Troubleshooting Common Server Issues

Server does not appear in browser. The query port (7778 UDP) is almost certainly blocked. Confirm with sudo ufw statusand from an external machine. Also check that yourServerNamein the config is not empty — the browser silently drops nameless servers.

Players get "Connection timed out". Either the game port (7777 UDP) is blocked, or the server crashed. Check systemctl status humanitzand journalctl -u humanitz -n 50for the last error. The most common crash is a corrupted save — restore from your daily backup and restart.

High CPU after a few days. World saves accumulate entity bloat (dropped items, dead zombie bodies, base parts). Restart the server once a day with the #shutdowncommand and a cron job. If CPU stays high after restart, the world save is too large — start a fresh world and notify players. Most public HumanitZ servers wipe every 2 to 4 weeks for this reason.

Frequently Asked Questions

Do I need to own HumanitZ on Steam to run a dedicated server?

No. The dedicated server binary downloads anonymously through SteamCMD with the +login anonymousflag. You do not need the game in your Steam library, and you do not need a Steam key. Only players connecting to your server need to own the game. This is the same model Valve uses for most Source-engine and Unreal-engine dedicated servers.

Can I run the server on a Raspberry Pi or ARM VPS?

Not natively. The HumanitZ dedicated server is compiled for x86_64 only and there is no official ARM build. You can run it under QEMU user-mode emulation on ARM, but performance is roughly 5x worse and unstable under load. For a real server, rent an x86_64 VPS — the cheapest 2-core, 4 GB instances from any major provider handle a 10 to 16 player server fine.

How do I update the server without losing the world save?

Stop the server cleanly first with#savethen sudo systemctl stop humanitz. Back up theSaveGamesfolder. Then re-run the SteamCMD install command (the same one used to download the server) — it will only pull the changed files and will not touch your world save. Start the server again withsudo systemctl start humanitz. If the new build changed the save format, the server prints a migration notice in the log on first boot — checkjournalctland roll back to your backup if the migration fails.