← Blog

Wie erstellt man einen RP-Server auf Garry's Mod von Grund auf?

Par Benjamin D. · PDG

· Mis à jour le 13. August 2026 · Lecture 9 min

Illustration zum Artikel : Wie erstellt man einen RP-Server auf Garry's Mod von Grund auf?
Inhaltsverzeichnis

Einen Garry's Mod RP-Server aufzusetzen ist 2026 kein Hexenwerk mehr, aber der Unterschied zwischen einem leeren Server und einer laufenden RP-Community liegt in den Details: Gamemode-Wahl, Workshop-Collection, FastDL, Tickrate und saubere Admin-Rechte. Dieses Tutorial führt dich durch die komplette Einrichtung – von der Hardware-Frage über DarkRP-Konfiguration bis zur Absicherung von RCON und Backups.



Garry's Mod RP-Server: Grundlagen, Hardware und Hosting-Entscheidung

Ein RP-Server unterscheidet sich technisch deutlich von einem Sandbox-Server. Rollenspiel-Gamemodes wie DarkRP, HL2RP oder ein Custom-Framework laufen mit vielen aktiven Entities (Türen, Drucker, Shops, NPCs), permanenter Datenbank-Kommunikation und einer großen Menge Lua-Code, der auf jedem Tick ausgeführt wird. Genau das macht Garry's Mod zu einem Single-Thread-Monster: Die Source-Engine nutzt im Wesentlichen einen Kern für die Server-Simulation.

Was das für die Hardware bedeutet

Für einen Garry's Mod RP-Server zählt nicht die Anzahl der Kerne, sondern die Single-Core-Leistung. Eine hohe Taktfrequenz und ein moderner Cache halten die Tickrate stabil, wenn 60 Spieler gleichzeitig Props spawnen, Fahrzeuge fahren und Lua-Timer laufen.

KomponenteEmpfehlung für RPWarum
CPURyzen 9 (hohe Single-Core-Leistung)Source läuft praktisch einthreadig, Tickrate hängt direkt daran
RAM4–8 GB für 32–64 SlotsAddons, Maps und Lua-Cache belegen dauerhaft Speicher
StorageSSD NVMeMap- und Addon-Ladezeiten, MySQL-Zugriffe
NetzwerkAnti-DDoS inklusiveRP-Server sind ein beliebtes Ziel für Angriffe auf Konkurrenz-Communities

Bei Nexus Games laufen die Gameserver auf Ryzen 9 mit DDR5-ECC-RAM und NVMe-SSDs, der Anti-DDoS-Schutz ist standardmäßig aktiv. Wer direkt loslegen will, findet die Konfigurationen unter Garry's Mod Server mieten; ein Blick auf Alle unsere Gameserver lohnt sich, wenn deine Community später noch Rust oder FiveM dazunehmen möchte.

Gehostet oder selbst verwalten?

  • Gameserver mit Panel: Sofortige Installation, Konsole, Dateimanager, Addon-Verwaltung, automatische Backups. Ideal, wenn du dich auf den Gamemode und die Community konzentrieren willst.
  • VPS-Setup: Volle Kontrolle über SteamCMD, Cronjobs, eigenen MySQL-Server und FastDL-Webserver. Sinnvoll für Netzwerke mit mehreren Instanzen. Ein Linux VPS oder ein Pterodactyl VPS deckt das ab.

Slots realistisch planen

Ein häufiger Anfängerfehler: 128 Slots buchen und dann bei 40 Spielern in Lag ertrinken. RP-Server werden nicht durch Slots limitiert, sondern durch Entities und Lua-Last. Starte mit 32 bis 48 Slots, messe die Tickrate mit net_graph 4 und der Konsolenausgabe von status, und skaliere erst dann nach oben.



Installation: SteamCMD, Gamemode und server.cfg

Variante A – Installation über das Panel

Im NexusPanel wählst du Garry's Mod als Spiel aus, der Server wird sofort deployt. Danach sind vier Schritte relevant:

  1. Gamemode auf darkrp (oder dein Framework) setzen.
  2. Startmap wählen, klassisch rp_downtown_v4c_v2 oder eine eigene RP-Map.
  3. Workshop-Collection-ID im Startparameter hinterlegen.
  4. server.cfg im Dateimanager anpassen und den Server neu starten.

Variante B – Manuelle Installation auf einem VPS

Auf einem Debian- oder Ubuntu-VPS installierst du zuerst die Abhängigkeiten. Garry's Mod Dedicated Server ist eine 32-Bit-Anwendung, die i386-Architektur muss also aktiviert sein.

sudo dpkg --add-architecture i386
sudo apt update && sudo apt upgrade -y
sudo apt install -y lib32gcc-s1 lib32stdc++6 steamcmd screen unzip

sudo adduser --disabled-password --gecos "" gmod
sudo su - gmod
mkdir -p ~/gmodserver

Anschließend den Server per SteamCMD herunterladen (AppID 4020, anonymer Login):

steamcmd +force_install_dir /home/gmod/gmodserver \
  +login anonymous \
  +app_update 4020 validate \
  +quit

Startskript mit Workshop-Collection und Tickrate:

#!/bin/bash
cd /home/gmod/gmodserver
./srcds_run -game garrysmod \
  -console -tickrate 22 \
  +gamemode darkrp \
  +map rp_downtown_v4c_v2 \
  +maxplayers 48 \
  +host_workshop_collection 1234567890 \
  -authkey DEIN_WORKSHOP_API_KEY \
  +exec server.cfg

Den Workshop-API-Key bekommst du in deinem Steam-Konto. Ohne ihn lädt host_workshop_collection keine Addons. Die offizielle Referenz zu Startparametern und Konsolenbefehlen findest du im Garry's Mod Wiki.

Die server.cfg für einen RP-Server

Diese Datei liegt unter garrysmod/cfg/server.cfg. Ein pragmatisches Grundgerüst:

hostname "[DE] Mein RP-Server | DarkRP | Nexus"
sv_password ""
rcon_password "EinLangesZufaelligesPasswort!2026"
sv_lan 0
sv_region 3

// Downloads
sv_allowdownload 1
sv_allowupload 0
sv_downloadurl "https://fastdl.meinedomain.de/garrysmod/"

// Gameplay / RP
sbox_maxprops 80
sbox_maxragdolls 3
sbox_maxvehicles 2
sbox_maxeffects 10
sbox_godmode 0
sbox_noclip 0

// Netzwerk
sv_minrate 100000
sv_maxrate 0
sv_minupdaterate 20
sv_maxupdaterate 66
sv_mincmdrate 20
sv_maxcmdrate 66

// Logging
log on
sv_logbans 1
sv_logecho 0
sv_logfile 1

Wichtig: sbox_noclip 0 und sbox_godmode 0 sind auf RP-Servern Pflicht, sonst fliegen Spieler durch die Map. sv_downloadurl zeigt auf deinen FastDL-Host – ohne FastDL warten Spieler minutenlang am Ladebalken, weil Content über das langsame Source-Netzwerkprotokoll übertragen wird.



DarkRP konfigurieren: Jobs, Entities, Datenbank und Admin-Mod

Ordnerstruktur verstehen

DarkRP wird nie direkt bearbeitet. Änderungen gehören in garrysmod/gamemodes/darkrp/gamemode/config/ nur zur Not, korrekt ist der Ordner darkrpmodification:

garrysmod/addons/darkrpmodification/lua/darkrp_config/settings.lua
garrysmod/addons/darkrpmodification/lua/darkrp_customthings/jobs.lua
garrysmod/addons/darkrpmodification/lua/darkrp_customthings/shipments.lua
garrysmod/addons/darkrpmodification/lua/darkrp_customthings/entities.lua
garrysmod/addons/darkrpmodification/lua/darkrp_customthings/food.lua

So bleiben deine Anpassungen bei einem DarkRP-Update erhalten. Wer stattdessen Kerndateien editiert, verliert bei jedem git pull alles.

Wichtige Settings für Balance

GM.Config.currencySymbol = "€"
GM.Config.startingmoney = 500
GM.Config.paycheckMinimum = 20
GM.Config.propertytax = false
GM.Config.doorcost = 30
GM.Config.deathpaydelay = 5
GM.Config.chatCommandPrefix = "/"
GM.Config.maxprintersperplayer = 2
GM.Config.adminsects = false
GM.Config.voiceradius = true
GM.Config.dyndoor = true

voiceradius = true ist auf RP-Servern praktisch nicht verhandelbar: Ohne Reichweitenbegrenzung hört jeder jeden über die gesamte Map, und Rollenspiel ist damit erledigt.

Ein Job hinzufügen

TEAM_MEDIC = DarkRP.createJob("Notarzt", {
    color = Color(47, 168, 168, 255),
    model = {"models/player/kleiner.mdl"},
    description = [[Du behandelst verletzte Bürger und darfst
    keine Waffen tragen.]],
    weapons = {"med_kit"},
    command = "notarzt",
    max = 3,
    salary = 60,
    admin = 0,
    vote = false,
    hasLicense = false,
    candemote = true,
    category = "Zivilisten",
})

Nach jeder Lua-Änderung ist ein Neustart über die Konsole des Panels nötig. Prüfe die Konsole danach auf [ERROR]-Zeilen – ein Syntaxfehler in jobs.lua kann dazu führen, dass der gesamte Gamemode nicht mehr lädt.

MySQL statt SQLite

Standardmäßig speichert DarkRP Geld, Türen und Playerdaten in einer lokalen SQLite-Datei. Für einen wachsenden RP-Server, mehrere Instanzen oder externe Webseiten-Statistiken lohnt sich MySQL über das MySQLoo-Modul:

-- settings.lua
DarkRP.registerDatabaseTable(...)
MySQLite_CONFIG = {
    EnableMySQL = true,
    Host = "127.0.0.1",
    Username = "gmod_rp",
    Password = "sicheres_db_passwort",
    Database_name = "gmod_darkrp",
    Database_port = 3306,
    Preferred_module = "mysqloo",
    MultiStatements = false,
}

Auf einem VPS installierst du die Datenbank dazu selbst:

sudo apt install -y mariadb-server
sudo mysql_secure_installation
sudo mysql -e "CREATE DATABASE gmod_darkrp CHARACTER SET utf8mb4;"
sudo mysql -e "CREATE USER 'gmod_rp'@'localhost' IDENTIFIED BY 'sicheres_db_passwort';"
sudo mysql -e "GRANT ALL PRIVILEGES ON gmod_darkrp.* TO 'gmod_rp'@'localhost'; FLUSH PRIVILEGES;"

Admin-Mod und Rechteverwaltung

Ohne Admin-Mod ist Moderation auf einem RP-Server unmöglich. ULX/ULib oder ein modernes Alternativ-Framework wird als Addon installiert:

cd /home/gmod/gmodserver/garrysmod/addons
git clone https://github.com/TeamUlysses/ulib.git
git clone https://github.com/TeamUlysses/ulx.git

Danach vergibst du Ränge sparsam. Praxisregel: Moderatoren brauchen kick, ban, gag, mute, teleport – aber keinen Zugriff auf rcon, lua_run oder ulx exec. Genau darüber laufen die meisten internen Server-Übernahmen.

Rechte-Matrix als Orientierung

RangErlaubtVerboten
ModeratorKick, Gag, Mute, Jail, Teleportlua_run, rcon, Dateizugriff
AdminBan, Physgun-Freeze, Entity-Cleanuplua_run, Panel-Zugriff
Head-AdminRangvergabe bis AdminRoot-Panel, SSH
OwnerPanel, Konsole, Dateien, Backups

Im NexusPanel lassen sich Sub-User anlegen, sodass ein Head-Admin die Live-Konsole nutzen kann, ohne Zugriff auf Abrechnung oder Server-Löschung zu erhalten.



Performance, Content-Delivery und Absicherung

Tickrate und Netzwerk

Viele RP-Server laufen unnötig hoch getaktet. 22 bis 33 Ticks reichen für Rollenspiel völlig aus; wer 66 Ticks fährt, verdreifacht die CPU-Last ohne spürbaren Gameplay-Gewinn – anders als bei Shooter-Gamemodes wie TTT oder Deathrun. Überwache die Serverlast im Spiel:

// In der Server-Konsole
status
stats
net_status

Fällt der FPS-Wert des Servers (stats) dauerhaft unter die gesetzte Tickrate, hast du ein Lua- oder Entity-Problem, kein Hardware-Problem. Typische Verursacher: zu viele Drucker, endlos gespawnte Props, schlecht geschriebene Workshop-Addons mit Think-Hooks.

Addons aufräumen statt anhäufen

  • Eine einzige Workshop-Collection pflegen und im Startparameter referenzieren.
  • Doppelte Weapon-Bases und mehrere Fahrzeug-Frameworks vermeiden – häufigste Ursache für Client-Crashes.
  • Addons, die nur clientseitigen Content liefern, per resource.AddWorkshop laden, nicht als serverseitiges Lua.
  • Nach jedem Addon-Batch die Konsole auf Lua-Fehler prüfen und einen Testjoin machen.
-- garrysmod/lua/autorun/server/sv_workshop.lua
resource.AddWorkshop("104815552")  -- Map-Content
resource.AddWorkshop("143171734")  -- Fahrzeug-Pack

FastDL einrichten

Custom-Maps, Sounds und Models über FastDL auszuliefern verkürzt die Ladezeit neuer Spieler drastisch. Auf einem VPS reicht ein schlanker Nginx:

sudo apt install -y nginx
sudo mkdir -p /var/www/fastdl/garrysmod
sudo chown -R www-data:www-data /var/www/fastdl
# Dateien als .bz2 komprimiert ablegen
bzip2 -k maps/rp_downtown_v4c_v2.bsp
sudo systemctl reload nginx

Struktur unter /var/www/fastdl/garrysmod/ muss die Server-Ordner spiegeln: maps/, materials/, models/, sound/. Danach passt der Pfad in sv_downloadurl exakt dazu.

Sicherheit: die Punkte, die wirklich zählen

Volumetrische DDoS-Angriffe werden bei Nexus Games infrastrukturseitig gefiltert – darum musst du dich nicht kümmern. Was in deiner Verantwortung bleibt:

  1. RCON-Passwort: mindestens 24 Zeichen, zufällig, nirgends geteilt. Niemals im Discord posten, niemals im Screenshot der Konsole sichtbar lassen.
  2. lua_run sperren: Kein Staff-Rang unterhalb des Owners darf serverseitiges Lua ausführen.
  3. Backups: Automatische Backups aktivieren und zusätzlich vor jedem größeren Addon- oder Gamemode-Update manuell einen Snapshot ziehen. DarkRP-Datenbanken separat sichern.
  4. Updates: Garry's Mod nach jedem Steam-Update per app_update 4020 validate aktualisieren, Addons regelmäßig auf Abandonware prüfen.
  5. Whitelist in der Aufbauphase: Solange du Jobs und Entities testest, hilft ein temporäres sv_password gegen Zuschauer im halbfertigen Server.

Zusätzliche Härtung auf einem eigenen VPS

# SSH-Key statt Passwort
ssh-keygen -t ed25519 -C "gmod-admin"
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@DEINE_IP

# Passwort-Login abschalten
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart ssh

# Firewall: nur nötige Ports
sudo apt install -y ufw fail2ban
sudo ufw allow 22/tcp
sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw allow 80/tcp
sudo ufw enable
sudo systemctl enable --now fail2ban

Für einen dauerhaft laufenden Serverprozess ist ein systemd-Service sauberer als screen:

sudo systemctl enable gmod.service
sudo systemctl start gmod.service
sudo journalctl -u gmod -f

Community-Start: was nach der Technik kommt

Ein technisch perfekter Garry's Mod RP-Server bleibt leer, wenn Regeln, Staff und Kommunikation fehlen. Bewährt hat sich: ein Discord mit Ticket-System, klare RP-Regeln (NLR, RDM, Metagaming), ein Bewerbungsformular für Staff und ein Changelog-Kanal. Für die Automatisierung von Bewerbungen, Rollen und Serverstatus-Anzeigen lässt sich das Discord-Bot-Hosting nutzen, damit der Bot nicht auf einem privaten Rechner läuft. Weitere Tutorials zu Gameserver-Themen findest du im Nexus Games Blog.

Vor dem öffentlichen Launch eine kurze Checkliste durchgehen:

  • Testjoin über die öffentliche IP, nicht nur über LAN.
  • Konsole 10 Minuten beobachten: keine wiederkehrenden Lua-Fehler.
  • FastDL greift (neuer Spieler lädt Content in Sekunden, nicht Minuten).
  • Backup manuell wiederherstellen und prüfen, ob es funktioniert.
  • Alle Staff-Ränge mit Testkonto durchklicken.

Wer parallel andere Communities betreut, kann mehrere Instanzen bündeln – etwa mit einem Pterodactyl VPS für eigene Node-Verwaltung oder direkt als separater Gameserver.



Fazit

Ein stabiler RP-Server steht auf drei Säulen: starke Single-Core-Leistung, saubere Addon- und Gamemode-Konfiguration sowie konsequente Rechteverwaltung. Wenn Tickrate, FastDL, MySQL und Backups einmal richtig eingerichtet sind, verlagert sich deine Arbeit von der Technik zur Community. Prüfe die Konsole regelmäßig, dokumentiere jede Änderung und teste Backups – das erspart die meisten Notfälle.



FAQ

Wie viel RAM und wie viele Slots brauche ich für einen DarkRP-Server?

Für 32 bis 48 Slots mit einer mittelgroßen Workshop-Collection reichen 4 bis 8 GB RAM. Entscheidend ist aber die CPU-Single-Core-Leistung, weil die Source-Engine die Server-Simulation einthreadig ausführt. Starte mit weniger Slots, beobachte die Server-FPS über stats und erhöhe erst, wenn die Tickrate stabil bleibt.

Warum laden Spieler so lange beim Verbinden, obwohl der Server schnell ist?

Fast immer fehlt FastDL. Ohne sv_downloadurl wird Custom-Content über das langsame Source-Protokoll übertragen. Lege Maps, Materials, Models und Sounds als .bz2 auf einem HTTP-Host ab, spiegle die Ordnerstruktur exakt und verweise per sv_downloadurl darauf. Zusätzlich Workshop-Content über resource.AddWorkshop ausliefern.

Wie verhindere ich, dass ein Staff-Mitglied den Server übernimmt?

Trenne Spiel-Moderation von Server-Administration. Kein Rang unter dem Owner erhält lua_run, rcon oder Dateizugriff. Das RCON-Passwort bleibt ausschließlich beim Owner, im Panel arbeitest du mit Sub-Usern mit eingeschränkten Rechten, und du hältst automatische Backups aktiv, um eine fehlerhafte Änderung schnell zurückzurollen.