5MCustoms

Server aufsetzen·5 Min. Lesezeit

FiveM Server optimieren: Warum er ruckelt und wie du den Grund in einer Stunde findest

Server-Tick, Client-FPS und Streaming sind drei verschiedene Probleme mit drei verschiedenen Werkzeugen. Wie du mit resmon, Profiler und txAdmin den Schuldigen findest, und welche zehn Ursachen fast immer dahinterstecken.

Blick aus dem Fahrzeug auf einen vollen FiveM Server

„Der Server laggt“ ist die häufigste Beschwerde auf jedem FiveM Server und die unpräziseste. Hinter dem Satz stecken drei verschiedene Dinge: Der Server rechnet zu langsam, der Client des Spielers zeichnet zu langsam, oder die Verbindung dazwischen stockt. Jedes hat eine andere Ursache und ein anderes Werkzeug. Wer die drei auseinanderhält, findet den Grund in einer Stunde. Wer wahllos Scripts löscht, sucht Wochen.

Die drei Arten von Lag

SymptomWas wirklich passiertWerkzeug
Alle Spieler gleichzeitig: Fahrzeuge springen, Aktionen kommen verzögert, Chat hängtDer Server-Tick ist zu langsam. Ein Script blockiert den Hauptthread oder die Datenbank antwortet nicht.txAdmin-Leistungsgraph, resmon auf dem Server, Profiler
Einzelne Spieler: niedrige FPS, Ruckeln an bestimmten OrtenDer Client ist überlastet: zu viele Entities, schwere Modelle, Client-Scripts mit engen Schleifen.resmon im Client (F8), Streaming-Speicher, Modelle prüfen
Einzelne Spieler: Gummiband-Effekt, Teleport-Sprünge, VerbindungsabbrücheNetzwerk: Leitung des Spielers, Paketverlust, oder der Server sendet zu viele Daten.Ping und Paketverlust im Client, OneSync-Einstellungen

Server-Tick: wenn alle gleichzeitig leiden

Der FiveM Server arbeitet in Ticks, ähnlich wie Bilder pro Sekunde. Dauert ein Tick zu lange, weil ein Script in ihm zu viel rechnet, warten alle Spieler. Der erste Blick geht in txAdmin auf den Leistungsgraphen: Zeigt er Spitzen, die mit Spielerzahl oder Uhrzeit zusammenfallen, ist der Server das Problem. Dann in der Serverkonsole:

Serverkonsole
resmon 1        # Tabelle: ms je Resource, live
profiler record 500
profiler save profil.json   # danach im Browser unter chrome://tracing öffnen

resmon zeigt je Resource, wie viele Millisekunden sie pro Tick kostet. Ein gesunder Server liegt in Summe unter 2 ms bei Leerlauf. Eine einzelne Resource über 0,5 ms im Leerlauf ist verdächtig, über 2 ms ein Fehler. Der Profiler zeigt, welche Funktion in dieser Resource die Zeit frisst. Typisch: eine Schleife, die jeden Tick alle Spieler durchgeht, eine Datenbankabfrage, die bei jedem Ereignis läuft, oder ein Script, das sekündlich alle Fahrzeuge zählt.

Client-FPS: wenn einzelne leiden

Ruckelt es nur bei manchen Spielern oder nur an bestimmten Orten, ist der Client überlastet. Im Spiel F8 drücken und resmon 1 eingeben: Dieselbe Tabelle, jetzt für Client-Scripts. Ein Client-Script über 0,1 ms im Leerlauf ist schon viel, über 1 ms ist ein Fehler. Häufigster Grund: eine Schleife mit Citizen.Wait(0), die jeden Frame prüft, ob der Spieler in der Nähe eines Punktes steht, statt einmal pro Sekunde.

Liegt es nicht an Scripts, liegt es an Inhalten. Ein Parkplatz voller Fahrzeuge ohne Detailstufen, ein MLO mit 4K-Texturen auf jeder Wand, ein Kleidungspack mit 200.000 Polygonen je Jacke: All das kostet FPS genau dort, wo es steht. Der Test ist einfach: An den Ort gehen, an dem es ruckelt, und schauen, was dort anders ist als anderswo.

Netzwerk und OneSync

Gummiband-Effekte und Fahrzeuge, die zurückspringen, sind fast immer Netzwerk. Zuerst die Leitung des Spielers ausschließen: Ping und Paketverlust zeigt der Client in den Einstellungen. Betrifft es viele, sendet der Server zu viele Daten. OneSync Infinity, die Standardeinstellung moderner Server, schickt jedem Spieler nur, was in seiner Nähe ist. Scripts, die jedem Spieler jede Sekunde den Zustand aller Fahrzeuge schicken, hebeln das aus. Statt Ereignisse an alle zu senden, gehören solche Daten in State Bags, die GTA selbst nur an die verteilt, die sie brauchen.

Die zehn Ursachen, die fast immer dahinterstecken

  1. Schleifen ohne Pause: Citizen.Wait(0) in einem Script, das nur alle paar Sekunden etwas prüfen müsste.
  2. Datenbankabfragen in Ereignissen, die oft feuern: Bei jedem Inventarklick eine Abfrage, bei 60 Spielern 600 Abfragen pro Minute.
  3. Fahrzeuge ohne Detailstufen. Zehn davon auf einem Parkplatz halbieren die FPS aller, die vorbeifahren.
  4. Zu viele Entities. Jedes gespawnte Objekt, jeder Ped, jedes abgestellte Fahrzeug bleibt, bis es jemand entfernt. Verwaiste Fahrzeuge sind der Klassiker.
  5. 4K-Texturen auf Kleidung und Wänden, wo 1K niemand unterscheiden würde.
  6. Ereignisse an alle statt an die Betroffenen: TriggerClientEvent(-1, ...) für Dinge, die nur zwei Spieler sehen.
  7. Scripts, die niemand nutzt, aber die trotzdem jeden Tick laufen. Jedes Script, das Spieler nicht täglich brauchen, raus.
  8. Veraltete Artifacts. Jede FiveM-Version bringt Leistungsverbesserungen; wer ein Jahr nicht aktualisiert, verschenkt sie.
  9. Die Datenbank auf einer Festplatte statt SSD oder ohne Indizes auf Spalten, nach denen gesucht wird (Charakter-ID, Kennzeichen).
  10. Der Hoster. Ein Server, der sich einen CPU-Kern mit zehn anderen teilt, ist nicht zu retten. FiveM braucht einen schnellen Kern, keine vielen.

Das Vorgehen in einer Stunde

  1. txAdmin-Graph ansehen: Server oder Client? Wenn die Tick-Zeit ruhig ist, liegt es nicht am Server.
  2. resmon auf der Seite, die betroffen ist. Die drei teuersten Resources notieren.
  3. Die teuerste Resource stoppen, zehn Minuten warten, Graph vergleichen. Erst dann die nächste.
  4. Ist es keine Resource: Entities zählen. Mehr als ein paar hundert Fahrzeuge auf der Karte sind ein Problem, egal wie gut die Scripts sind.
  5. Ist es ein Ort: dort die Inhalte prüfen, MLO, Fahrzeuge, Kleidung der anwesenden Spieler.

Wie 5MCustoms-Module gebaut sind

Jedes Modul wird mit resmon abgenommen, bevor es in den Shop kommt: Leerlauf unter 0,05 ms im Client, keine Schleife ohne Pause, Datenbankzugriffe gebündelt statt je Ereignis. Zustände wie Dienst, Fesselung oder Fahrzeugschlüssel liegen in State Bags, nicht in Ereignissen an alle. Fahrzeuge aus dem Shop haben alle Detailstufen, Kleidung 1K- oder 2K-Texturen. Das macht einen Server nicht automatisch schnell, aber es nimmt die häufigsten Ursachen aus dem Spiel.

Häufige Fragen

Wie viele ms sind in resmon normal?

Im Leerlauf: Server in Summe unter 2 ms, Client unter 1 ms. Eine einzelne Resource sollte im Leerlauf unter 0,1 ms bleiben. Kurze Spitzen bei Aktionen sind normal, Dauerwerte darüber nicht.

Hilft mehr RAM oder eine stärkere CPU?

RAM hilft nur, wenn er voll ist, und das ist er selten. FiveM hängt an der Geschwindigkeit eines einzelnen CPU-Kerns. Ein Wechsel von einem geteilten vServer auf einen mit schnellem Kern bringt mehr als jede Verdopplung des Speichers.

Macht OneSync den Server langsamer?

Nein, im Gegenteil. OneSync Infinity ist Voraussetzung für mehr als 32 Spieler und schickt jedem nur, was in seiner Nähe ist. Langsam wird es nur durch Scripts, die diese Logik mit Ereignissen an alle umgehen.

Passend dazu

5MCustoms

Gründer von 5MCustoms

Justin baut seit Jahren FiveM Server, Fahrzeuge und Scripts. 5MCustoms ist das Framework, das daraus entstanden ist. Was hier steht, kommt aus der Praxis, nicht aus einer Produktbeschreibung.

Discord

Weiterlesen

Alle Artikel

Verfügbar

Bau deinen Server auf einem Fundament.

Modul für Modul oder alles auf einmal: 5MCustoms wächst mit deiner Stadt.