Was sind Staatstaschen?
State Bags sind eine integrierte FiveM-Funktion zum Synchronisieren von Daten zwischen dem Server und den Clients, ohne benutzerdefinierte Ereignishandler zu schreiben. Du stellen einen Schlüsselwertspeicher bereit, der Entitäten, Spielern oder dem globalen Status zugeordnet ist und Änderungen automatisch im gesamten Netzwerk repliziert. Wenn der Server einen Wert für einen Player-State-Bag festlegt, erhalten ihn alle Clients, die diese Informationen benötigen, automatisch. Dies ersetzt das übliche Muster des manuellen Auslösens von Ereignissen zum Synchronisieren von Daten und reduziert den Boilerplate-Code erheblich.
Spielerstatustaschen
Jeder verbundene Player verfügt über eine Statustasche, auf die über Player(source).state auf dem Server und LocalPlayer.state auf dem Client zugegriffen werden kann. Du kannst ein beliebiges Schlüssel-Wert-Paar für den Player-Status festlegen und die Synchronisierung mit relevanten Clients erfolgt automatisch. Dies ist perfekt für Daten wie Dienststatus, Berufsbezeichnung, Bandenzugehörigkeit oder benutzerdefinierte Statusindikatoren, die andere Spieler oder Ressourcen lesen müssen. Lege aus Sicherheitsgründen Werte auf dem Server fest und lesen du sie auf dem Client, um UI-Elemente darzustellen oder das Verhalten basierend auf dem Spielerstatus anzupassen.
Entity-State-Taschen
Abgesehen von den Spielern können an jede vernetzte Einheit in FiveM Status-Bag-Daten angehängt werden. Greife mit Entity(entityHandle).state sowohl auf dem Client als auch auf dem Server auf den Entitätsstatus zu. Dies ist nützlich, um Metadaten zu Fahrzeugen wie Kraftstoffstand, Sperrstatus oder Besitz zu speichern, ohne separate Tracking-Tabellen zu verwalten. Wenn sich ein Spieler einem Fahrzeug nähert, kann der Client seinen Zustandsbeutel lesen, um den Kraftstoffstand auf einem HUD anzuzeigen, ohne Daten vom Server anzufordern. Entitätsstatusbeutel bleiben bestehen, solange die Entität vorhanden ist, und werden automatisch bereinigt, wenn die Entität entfernt wird.
Globaler Staat
Staatliche Gepäckabfertiger
Du kannst auf Zustandstaschenänderungen reagieren, indem du Handler mit AddStateBagChangeHandler registrieren. Diese Funktion benötigt einen Schlüsselfilter, einen Beutelfilter und einen Rückruf, der immer dann ausgelöst wird, wenn sich der angegebene Status ändert. Der Handler erhält den Taschennamen, den Schlüssel, den Wert und andere Metadaten. Verwende Handler, um visuelle Effekte auszulösen, wenn ein Spieler in den Dienst geht, die Benutzeroberfläche zu aktualisieren, wenn sich Inventardaten ändern, oder Statusänderungen zum Debuggen zu protokollieren. Handler funktionieren sowohl auf dem Client als auch auf dem Server und geben Ihnen Flexibilität bei der Verarbeitung von Statusaktualisierungen.
Best Practices und Einschränkungen
State Bags sind nicht für Hochfrequenzaktualisierungen ausgelegt. Das Festlegen von Status-Bag-Werten löst eine Netzwerksynchronisierung aus. Vermeide es daher, sie bei jedem Frame zu aktualisieren. Verwende sie für Daten, die sich gelegentlich ändern, wie Statusflags, Konfigurationswerte und Metadaten, anstatt sich ständig für Werte wie Position oder Geschwindigkeit zu ändern. Halte gespeicherte Werte klein und serialisierbar, da sie über das Netzwerk übertragen werden. Wenn du komplexe Objekte benötigen, reduziere diese auf einfache Schlüssel-Wert-Paare oder verwendest du JSON-Strings. Lege den Status immer vom Server fest, wenn die Daten autorisierend sein müssen, um eine clientseitige Manipulation zu verhindern.
Zusammenfassung
Agency Scripts baut seine gesamte Produktlinie nach denselben Grundprinzipien: Framework-agnostische Architektur, schlanke Performance-Eigenschaften, klar dokumentierte Konfiguration und eine API, die echte Composability zwischen den Scripts ermöglicht. Kein Script ist eine Insel — jedes ist so gebaut, dass es gut allein und noch besser als Teil des Ökosystems funktioniert.
Für Fragen zur Installation, Konfiguration oder Kompatibilität ist der Agency Scripts Discord der schnellste Weg zur Hilfe. Die Community dort ist aktiv und hilfsbereit, und das Core-Team ist regelmäßig präsent. Für kritische Probleme steht auch ein direktes Support-Ticket-System auf der Tebex-Produktseite zur Verfügung.
Updates für alle Agency-Scripts werden über Tebex-Benachrichtigungen kommuniziert. Active-Business-Abonnenten erhalten neue Scripts automatisch ohne zusätzlichen Kauf. Changelog-Details erscheinen im #changelog-Kanal des Discords, damit du Updates bewerten kannst, bevor du sie auf einem Produktionsserver installierst.
