Zum Inhalt springen
GTA5OS
GTA5OS

Framework

Lokal starten

Repository bauen, Tests ausführen und einen eigenen FiveM-Server mit GTA5OS aufsetzen.

Auf dieser Seite
  1. Voraussetzungen
  2. Bauen und testen
  3. Einen lokalen Server aufsetzen
  4. Stimme im Spiel
  5. Datenbank
  6. Weiterlesen

Voraussetzungen

  • Node.js 22 oder neuer
  • Git
  • Für einen eigenen Spielserver zusätzlich: ein FXServer-Artifact, ein kostenloser Cfx.re-License-Key und optional eine PostgreSQL- oder MySQL/MariaDB-Datenbank

Bauen und testen

Im Repository-Root:

npm install
npm run build   # baut zuerst gta5os-core, dann alle übrigen Workspaces
npm test        # Smoke-Tests aller Workspaces

Wer nur Ergebnis und Fehlerzeilen sehen möchte, nutzt die gefilterten Varianten npm run build:q und npm run test:q.

Weitere nützliche Skripte:

Skript Zweck
npm run phase1:smoke Smoke-Tests aller Workspaces
npm run phase5:load Deterministische Lastsimulation des Cores
npm run phase5:backup Probe für Backup und Wiederherstellung
npm run phase6:compat-esxqb Smoke-Tests der ESX-/QBCore-Kompatibilität

Die Pakete liegen als npm-Workspaces unter packages/; die ausgelieferte Resource unter server/server-data/resources/[local]/gta5os_core.

Einen lokalen Server aufsetzen

Der Ordner server/ ist ein vollständiger FXServer-Workspace mit Startskripten.

  1. Lizenzschlüssel besorgen: bei Cfx.re (Keymaster) einen kostenlosen Server-License-Key erstellen.
  2. Vorlagen kopieren: secrets.example.cfg nach secrets.cfg und server.example.cfg nach server.cfg (beide im Ordner server/server-data/). Den Schlüssel trägst du nur in deiner lokalen secrets.cfg ein.
  3. Starten: unter Windows start-local.cmd, unter Git Bash ./start-local.sh, auf Linux start-linux.sh.

Die Startskripte bauen vor jedem Start Pakete und Resource. Schlägt der Build fehl, startet der Server bewusst nicht, denn ein Server mit altem Code würde einen falschen Testbefund liefern. Wer ohne Codeänderung schnell neu startet, kann den Build mit GTA5OS_SKIP_BUILD=1 überspringen.

Wichtig: secrets.cfg und die persönliche server.cfg gehören nie ins Repository. Beide sind per .gitignore ausgeschlossen.

Stimme im Spiel

Proximity-Voice läuft über YaCA und TeamSpeak 3. Spieler brauchen den TeamSpeak-3-Client mit dem YaCA-Plugin; der Server braucht einen TeamSpeak-Server mit Ingame-Channel. Die Zugangsdaten dafür liegen in einer lokalen, nicht versionierten Datei.

Datenbank

Ohne Datenbank läuft die Resource mit einem In-Memory-Speicher: alle Daten sind nach jedem Neustart weg. Für echte Persistenz verbindet man den SqlDataStore über Konvars:

set gta5os_db_dialect "postgres"   # oder "mysql" (Standard)
set gta5os_db_host "127.0.0.1"
set gta5os_db_port "5432"
set gta5os_db_user "gta5os"
set gta5os_db_database "gta5os"

Das Passwort gehört in die nicht versionierte secrets.cfg. Bleibt gta5os_db_host leer, fällt die Resource automatisch auf den In-Memory-Speicher zurück.

Der Standard-Speichermodus cached lädt die Tabelle einmal beim Start in den Speicher und schreibt Änderungen gebündelt zurück. Wichtig dabei: Die Tabelle darf nicht von außen verändert werden, während der Server läuft, weil der Server solche Änderungen nicht kennt. Der Rückfallmodus heißt legacy und wird mit set gta5os_db_mode "legacy" gewählt.

Weiterlesen

Tippe mindestens zwei Buchstaben.