Enterprise Hosting · Von Gamern für Gamer
FiveM – FPS Drops & Server-Hitches beheben
Kurzantwort: Server-Performance mit gezielten Config-Änderungen verbessern – RAM/CPU prüfen, Einstellungen anpassen und schwere Mods/Scripts entfernen.
Diese Anleitung hilft dir, FPS-Einbrüche und Server-Ruckler auf deinem FiveM-Server zu identifizieren und zu beheben. Hitch bedeutet, dass der Server für Millisekunden bis Sekunden "hängt" – alle Spieler frieren kurz ein, Fahrzeuge springen und das Spielgefühl leidet massiv.
Hinweis: Weitere Anleitungen zur Performance-Optimierung findest du in der linken Navigation.
Ursachen erkennen: Server-Side vs. Client-Side
| Problem | Server-Side | Client-Side |
|---|---|---|
| Alle Spieler gleichzeitig betroffen? | Ja – alle frieren gleichzeitig ein | Nein – nur einzelne Spieler |
| Hauptursache | CPU-Spikes, Script-Loops, Datenbank-Lags | GPU-Überlastung, lokale Mods, Grafiksettings |
| Erkennung | Server-Konsole zeigt "server hitch" Warnungen | Spieler berichten von Rucklern, andere nicht |
1. Server-Hitches identifizieren
Hitch-Warnungen in der Konsole
Wenn der Server hängt, zeigt die Konsole Warnungen wie:
Warning: server hitch of 345 ms detected
Warning: server hitch of 1200 ms detected – this is severe!
Alles über 100 ms ist spürbar. Alles über 500 ms ist kritisch und führt zu sichtbaren Rucklern bei allen Spielern.
Hitch-Quelle mit txAdmin finden
- Öffne txAdmin → Diagnostics
- Sieh dir den Performance Graph an – rote Spitzen sind Hitches
- Klicke auf eine Spitze um zu sehen, welches Script den Hitch verursacht hat
- txAdmin zeigt die genaue Ressource und die Dauer in ms
2. Die häufigsten Ursachen für Server-Hitches
Datenbank-Abfragen während des Spiels
Der häufigste Grund für Hitches. Jedes Mal wenn ein Script eine SQL-Abfrage macht, kann der Server kurz hängen – besonders bei unoptimierten Queries:
- Problem: SELECT * FROM players ohne LIMIT bei 1000+ Spielern
- Problem: INSERT/UPDATE in einer Schleife (z.B. jedes Item einzeln speichern)
- Lösung: Abfragen mit LIMIT versehen, Bulk-Inserts nutzen, oxmysql verwenden (asynchron)
Schlechte Script-Praktiken
- Endlosschleifen: while true do ohne Wait() – blockiert den gesamten Server
- Zu viele Citizen.Wait(0): Jede 0ms-Wartezeit erzwingt einen neuen Tick – mehrere davon pro Frame fressen CPU
- Große Datenmengen in einem Tick: 1000 Spieler-Daten auf einmal laden statt portionsweise
Streaming-Assets
- Zu viele YDR/YTD-Dateien (Models/Texturen) die gleichzeitig geladen werden
- Große MLOs (Interieurs) die beim Betreten den Server kurz blockieren
- Lösung: Assets mit
SetModelAsNoLongerNeeded()entladen, Stream-Prioritäten setzen
3. FPS Drops clientseitig beheben
Client-Konfiguration in txAdmin
In txAdmin unter Settings → Game Settings kannst du clientseitige Einstellungen erzwingen:
# Schwere Grafikeinstellungen deaktivieren
setr game_enableFlyThroughWindscreen false
setr game_enableDynamicShadowCasting false
setr game_enableLongDistanceShadows false
setr game_enableHighQualityShadows false
setr game_enableVehicleHeadlightShadows false
Client-Streaming-Prioritäten
# Streaming-Budget erhöhen (MB)
setr streaming_memory 256
# Stream-Tick-Rate anpassen
setr streamerTickMs 20
4. Profiling-Tools nutzen
txAdmin Performance Graph
Der beste Weg, Hitches zu finden:
- Öffne txAdmin → Diagnostics → Performance
- Beobachte den Graphen über mehrere Minuten
- Jede rote Spitze zeigt einen Hitch mit der verursachenden Ressource
- Deaktiviere die verursachende Ressource testweise und prüfe ob die Hitches verschwinden
OneSync-Profiler
# In server.cfg
set onesync_enableProfiler true
Der Profiler zeigt in der Konsole detaillierte Informationen zur Sync-Last pro Spieler und Ressource.
5. Konkrete Optimierungen
Datenbank-Optimierung
# In server.cfg – oxmysql mit Debug-Modus testen
set mysql_connection_string "mysql://user:pass@localhost/fivem?charset=utf8mb4"
set mysql_slow_query_warning 100 # Warnt bei Queries über 100ms
Script-Tick-Rate begrenzen
# In server.cfg – globale Tick-Rate
set sv_networkTickRate 30 # Standard: 60, reduziert CPU-Last um ~30%
# In einzelnen Scripts – Loop-Geschwindigkeit reduzieren
Citizen.CreateThread(function()
while true do
Citizen.Wait(500) -- Statt 0ms – 500ms reicht für die meisten Checks
-- Script-Logik
end
end)
Streaming für große MLOs
-- In der fxmanifest.lua oder client.lua – Prioritäten setzen
SetStreamingPriority(GetHashKey('mein_mlo'), 0) -- 0 = höchste Priorität
6. Notfall-Maßnahmen bei akuten Hitches
- Alle nicht-essentiellen Scripts stoppen: In der Konsole nacheinander Scripts stoppen und prüfen ob Hitches verschwinden
- Spielerzahl temporär begrenzen:
sv_maxclients 32– weniger Spieler = weniger Sync-Last - OneSync-Culling aggressiver einstellen:
onesync_distanceCull 300(Standard: 424) - Server neustarten: Manchmal hilft nur ein Neustart – besonders nach langer Laufzeit können Memory Leaks Hitches verursachen
Häufige Probleme und Lösungen
Hitches nur bei bestimmten Aktionen:
- Beim Betreten eines bestimmten Interieurs → MLO zu groß oder defekt
- Beim Öffnen des Inventars → Datenbank-Abfrage unoptimiert
- Wenn ein bestimmter Spieler joint → zu viele Daten werden auf einmal geladen
Hitches zu bestimmten Uhrzeiten:
- Prüfe ob ein Cronjob oder Backup um diese Zeit läuft
- Autosave-Intervall prüfen – jeder Server-Save kann einen kurzen Hitch verursachen
Hitches werden mit der Zeit schlimmer:
- Klassisches Zeichen für Memory Leaks – Server regelmäßig neustarten (alle 6-12 Stunden)
- Prüfe ob ein Script Daten in einer Schleife sammelt ohne sie freizugeben
Schnell-Checkliste
- txAdmin Performance Graph öffnen und Hitches identifizieren
- Verursachende Ressource finden (txAdmin zeigt sie direkt an)
- Datenbank-Abfragen der Ressource prüfen und optimieren
- Schleifen im Code auf Wait() prüfen – kein Wait(0) in Produktion
- Streaming-Assets auf Größe und Anzahl prüfen
- Client-seitige Grafikeinstellungen optimieren
- Server regelmäßig neustarten (alle 6-12 Stunden)
Passende Anleitungen
Server bei NexoraHost: nexorahost.com
NexoraHost
Gameserver bestellen
Minecraft, ARK, FiveM & 24+ Spiele – 1-Click, Mods erlaubt, ab 4,99 €/Monat.
nexorahost.com · Maincubes FRA01 · 1 Tbit/s DDoS · 99,9 % Uptime