VORBEREITUNG
Was brauchst du?
Ein Condition-Zero-Server benötigt heute keine spektakuläre Hardware. Wichtiger sind eine stabile Internetverbindung, ein dauerhaft erreichbares System und eine saubere Ordnerstruktur.
HLDS läuft auf beiden Plattformen. Ein kleiner Homeserver, Mini-PC, VPS oder Docker-Host reicht für einen klassischen CZ-Server meist völlig aus.
Für einen öffentlichen Homeserver muss der Spielport von außen erreichbar sein. Bei CGNAT oder DS-Lite kann zusätzliche Netzwerktechnik nötig sein.
Außerdem sinnvoll:
INSTALLATION
SteamCMD & HLDS
Valve verteilt den klassischen Half-Life Dedicated Server über SteamCMD. Für GoldSrc wird App 90 verwendet; über die Mod-Konfiguration installieren wir die Condition-Zero-Dateien.
force_install_dir ./czserver
login anonymous
app_set_config 90 mod czero
app_update 90 validate
quit
Unter Linux verwendest du natürlich einen passenden absoluten Pfad,
beispielsweise /home/steam/czserver. Unter Windows kann das
beispielsweise C:\czserver sein.
Bei den alten GoldSrc-Dedicated-Servern steckt mehr als ein Mod hinter App 90.
Deshalb ist app_set_config 90 mod czero wichtig, damit SteamCMD
die Condition-Zero-Komponente berücksichtigt.
Wenn nach dem ersten Durchlauf Dateien fehlen, SteamCMD nicht sofort verfluchen.
Bei App 90 war und ist es nicht ungewöhnlich, app_update 90 validate
erneut laufen zu lassen. Entscheidend ist anschließend, dass der Ordner
czero vorhanden ist.
ERSTER START
Vanilla-Server starten
Bevor irgendein Plugin auf den Server kommt, starten wir HLDS einmal komplett ohne Metamod und AMX Mod X.
./hlds_run -game czero -secure -port 27015 +maxplayers 16 +map de_dust2_cz
hlds.exe -console -game czero -secure -port 27015 +maxplayers 16 +map de_dust2_cz
Wenn der Server startet, die Map lädt und du lokal verbinden kannst, hast du bereits den wichtigsten Meilenstein erreicht.
connect SERVER-IP:27015
NETZWERK
Port & Erreichbarkeit
Für unseren Beispielserver verwenden wir den klassischen Spielport
27015. Bei einem Homeserver muss dieser Port durch Firewall
und Router bis zum Server gelangen.
Protokoll: UDP
Externer Port: 27015
Interner Port: 27015
Ziel: IP deines CZ-Servers
Läuft der Server in Docker oder einer anderen Container-Umgebung, muss der Port zusätzlich korrekt zum Container veröffentlicht werden.
Dann ist HLDS wahrscheinlich gar nicht dein erstes Problem. Prüfe Router, Firewall, Port-Mapping und ob dein Anschluss überhaupt eingehende IPv4-Verbindungen zulässt.
Öffne nur die Dienste und Ports, die du tatsächlich brauchst. „Exposed Host“ oder eine komplett deaktivierte Firewall sind keine elegante Abkürzung für eine saubere Portfreigabe.
KONFIGURATION
server.cfg
Die zentrale Serverkonfiguration liegt im Mod-Verzeichnis:
czero/server.cfg
Eine einfache Ausgangsbasis kann so aussehen:
hostname "Mein Condition Zero Server"
sv_lan 0
sv_password ""
rcon_password "HIER_EIN_STARKES_PASSWORT"
mp_autoteambalance 1
mp_limitteams 2
mp_friendlyfire 0
mp_freezetime 5
mp_roundtime 3
mp_buytime 1.5
mp_c4timer 35
mp_timelimit 30
sv_allowdownload 1
sv_allowupload 0
Verwende ein langes, einzigartiges Passwort und veröffentliche es niemals in Screenshots, Forenposts oder einer öffentlich zugänglichen Config. Das Beispiel oben ist ausdrücklich nur ein Platzhalter.
Danach kannst du Regeln Stück für Stück ergänzen. Eine kleine Config, deren Befehle du verstehst, ist besser als eine 800-Zeilen-Datei aus dem Jahr 2005.
NETCODE & PERFORMANCE
Rates & Server-FPS
Für unsere Stutengasse-Server verwenden wir bewusst klassische, nachvollziehbare Rate-Limits:
sv_maxrate 25000
sv_minrate 10000
sv_maxupdaterate 101
sv_minupdaterate 20
sv_unlag 1
sv_maxunlag 0.5
sv_unlagsamples 1
sv_clienttrace 1
Diese Werte sind unsere Serverbasis – keine universelle Pflicht für jeden GoldSrc-Server. Client und Server müssen sinnvoll zusammenspielen.
→ ZUM GUIDE: RATES & INTERPOLATION
Unter Linux existieren zusätzlich klassische HLDS-Tuningoptionen wie
sys_ticrate und -pingboost. Ändere solche Werte
erst, wenn dein Vanilla-Server stabil läuft und du die tatsächliche
Server-Framerate misst. Unterschiedliche Hosts und Builds reagieren
nicht immer identisch.
VAC & ADMIN
Server absichern
Mit -secure startest du den Server im normalen VAC-Modus.
Wenn der Server erfolgreich mit Steam kommuniziert, sollte die Konsole
entsprechend anzeigen, dass er secure läuft.
-secure
Für Administration solltest du RCON nicht unnötig verteilen. Sobald später AMX Mod X läuft, können Adminrechte sauber an eine SteamID gebunden werden.
"STEAM_0:X:123456" "" "abcdefghijklmnopqrstu" "ce"
Die SteamID im Beispiel ist nur ein Platzhalter. Für echte Admins trägst du die jeweilige SteamID und nur die benötigten Rechte ein.
-insecure ist für Tests und spezielle Entwicklungsfälle gedacht.
Ein normaler öffentlicher Communityserver sollte nicht grundlos ohne VAC laufen.
MODDING
Metamod & AMX Mod X
Jetzt – und wirklich erst jetzt – kommt die Modding-Schicht. Metamod sitzt zwischen Game-DLL und Server; AMX Mod X läuft wiederum als Metamod-Plugin und stellt das bekannte Admin- und Plugin-System bereit.
meta list
amxx version
amxx plugins
amxx modules
Verwende eine Metamod-/AMXX-Kombination, die Condition Zero unterstützt. Das offizielle AMX-Mod-X-Projekt unterstützt CZ; bei sehr alten Paketen aus irgendwelchen Downloadarchiven weißt du dagegen oft nicht, was du dir einbaust.
CUSTOM CONTENT
Maps & FastDL
Eigene Maps kommen in czero/maps/. Je nach Map können zusätzliche
Models, Sounds, Sprites oder andere Ressourcen dazugehören. Diese Dateien müssen
ebenfalls in ihrer korrekten Verzeichnisstruktur vorhanden sein.
czero/maps/de_meinemap.bsp
czero/models/...
czero/sound/...
czero/sprites/...
Ohne FastDL lädt der Client Custom Content direkt vom Gameserver. Für größere Dateien ist ein separater HTTP-Webspace deutlich angenehmer.
sv_allowdownload 1
sv_allowupload 0
sv_downloadurl "https://download.example.org/czfastdl/"
Im FastDL-Verzeichnis spiegelst du die benötigte Struktur relativ zum CZ-Mod-Verzeichnis, also beispielsweise:
/czfastdl/maps/de_meinemap.bsp
/czfastdl/models/...
/czfastdl/sound/...
/czfastdl/sprites/...
Map auf dem Server vorhanden, aber ein Model oder Sound fehlt auf FastDL: Schon lädt der Client nicht sauber oder bekommt einen Fehler. Bei Custom Maps deshalb immer die komplette Ressourcenliste prüfen.
GO LIVE
Testen & Fehler finden
Bevor du den Server überall bewirbst, teste ihn einmal wie ein fremder Spieler: mit öffentlicher Adresse, sauberem Client und einer Custom Map.
status
version
meta list
amxx version
amxx plugins
Zur letzten funktionierenden Stufe zurückgehen. Startet Vanilla, aber nach Metamod nicht mehr? Dann liegt das Problem in dieser Schicht. Startet AMXX, aber nach einem neuen Plugin nicht mehr? Plugin wieder deaktivieren. Genau deshalb bauen wir den Server Schritt für Schritt.
31.18.86.75:27015
UNSEREN CZ-SERVER ANSEHEN