Direkt zum Inhalt

FiveM – FPS Drops & Server-Hitches beheben

Fivem Performance verbessern: weniger Lag, bessere Tickrate und Optimierungstipps von NexoraHost.

Gameserver

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

  1. Öffne txAdmin → Diagnostics
  2. Sieh dir den Performance Graph an – rote Spitzen sind Hitches
  3. Klicke auf eine Spitze um zu sehen, welches Script den Hitch verursacht hat
  4. 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:

  1. Öffne txAdmin → Diagnostics → Performance
  2. Beobachte den Graphen über mehrere Minuten
  3. Jede rote Spitze zeigt einen Hitch mit der verursachenden Ressource
  4. 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

  1. Alle nicht-essentiellen Scripts stoppen: In der Konsole nacheinander Scripts stoppen und prüfen ob Hitches verschwinden
  2. Spielerzahl temporär begrenzen: sv_maxclients 32 – weniger Spieler = weniger Sync-Last
  3. OneSync-Culling aggressiver einstellen: onesync_distanceCull 300 (Standard: 424)
  4. 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

  1. txAdmin Performance Graph öffnen und Hitches identifizieren
  2. Verursachende Ressource finden (txAdmin zeigt sie direkt an)
  3. Datenbank-Abfragen der Ressource prüfen und optimieren
  4. Schleifen im Code auf Wait() prüfen – kein Wait(0) in Produktion
  5. Streaming-Assets auf Größe und Anzahl prüfen
  6. Client-seitige Grafikeinstellungen optimieren
  7. Server regelmäßig neustarten (alle 6-12 Stunden)

Passende Anleitungen

Server bei NexoraHost: nexorahost.com

Weiterlesen

Beliebt und aktuell – nicht nur die ältesten Guides.

Mehr

Weiter entdecken