Zum Inhalt springen
Alle Dokumentationen

Faction

Fraktionen, die du komplett im Spiel anlegst: Jede Fraktion ist ein echter Job mit Bossmenü, Garagen, Lagern, Kleiderschrank, Aufzug, Level, Aktionsmenü und Gangwar-System. Die Tabellen legt das Script selbst an.

Voraussetzungen
  • ESX Legacy (es_extended, getestet mit 1.14)
  • oxmysql
  • OneSync
  • Für den Kleiderschrank: skinchanger und esx_skin (oder eigene Funktionen in config/functions.lua)
  • Für das F6-Menü und das Gangwar-Fahrzeugmenü: esxmenudefault (oder eigene Menüs über ClientActionMenu und ClientGangwarVehicleMenu)

Funktionen

  • Creator (/fraktionen): Fraktionen mit Rängen, Gehalt, Fahrzeugen, Orten (Marker oder NPC), Blips und Zugriff ab Rang im Spiel anlegen.
  • Bossmenü: Mitglieder verwalten, Kasse mit Verlauf, Fahrzeuge kaufen, Rechte pro Rang, Bewerbungen und Logs.
  • Bewerbungen: Spieler bewerben sich an Bewerbungspunkten (NPC oder Marker aus dem Creator) bei Fraktionen, die Leitung nimmt im Bossmenü an oder lehnt ab.
  • GPS: Mitglieder sehen sich auf der Karte, mit eigenem Symbol zu Fuß, im Auto, auf dem Motorrad oder Fahrrad, im Boot, Helikopter oder Flugzeug, beim Schwimmen und im Tod (pro Fraktion an/aus).
  • Fraktionsfahrzeuge mit Stil: eigenes Kennzeichen-Präfix, Lack und Xenon in Fraktionsfarbe, maximales Tuning und getönte Scheiben. Mit Schlüssel zum Auf- und Abschließen.
  • Garagen und Lager: je bis zu 10 pro Fraktion, Zugriff ab einem Rang.
  • Kleiderschrank, Aufzug (bis 10 Etagen) und Level mit XP (pro Fraktion an/aus).
  • Aktionsmenü (F6): Fesseln, Durchsuchen, Identifizieren, Führen und Fahrzeug-Aktionen, pro Fraktion wählbar.
  • Gangwar: Zonen im Spiel anlegen, Modi Zeitlimit und First Contact, eigene Dimension, Shop und Rangliste.
  • Discord-Logs für alle Bereiche.

Installation

  1. Ordner off_faction in resources legen.
  2. In die server.cfg nach oxmysql und ESX:
cfg
ensure oxmysql
ensure es_extended
ensure off_faction
  1. /fraktionen öffnen, Fraktion anlegen und die Leitung per /setjob <ID> <name> <rang> setzen (höchster Rang = Anzahl Ränge − 1).
Job-Namen

Der Fraktionsname ist zugleich der Job-Name (2–20 Zeichen, a–z, 0–9, _) und danach fest. Gibt es den Job schon, lässt sich die Fraktion nicht anlegen.

Konfiguration

config/settings/config.lua

OptionStandardBeschreibung
serverInfo.name'OFF SCRIPTS'Servername, steht in der Oberfläche statt „OFF SCRIPTS“
serverInfo.locale'de'Sprache: de, en, pl, fr, es oder it
serverInfo.color{ 155, 89, 255 }Farbe der UI (RGB)
serverInfo.design3Design der Oberfläche: 1 = Klassisch, 2 = Kassenbon, 3 = Storefront
blurtrueHintergrund unscharf, solange ein Menü offen ist. Der Creator bleibt scharf (Vorschau)
creator.command'fraktionen'Befehl für den Creator
creator.groups{ 'projektleitung' }Gruppen für den Fraktions-Creator
creator.zoneGroups{ 'projektleitung' }Gruppen für den Gangwar-Zonen-Creator
inviteSeconds60Sekunden, bis eine Einladung verfällt
storeRange25.0Max. Entfernung beim Einparken (Meter)
plateFormat'LLL NNN'Kennzeichen: L = Buchstabe, N = Zahl, gilt nur ohne Präfix im Creator
applications.cooldown / maxOpen24 / 3Stunden Sperre nach einer Absage, max. offene Bewerbungen pro Spieler
gps.interval / scale2 / 0.8Sekunden zwischen GPS-Updates, Größe der Blips
gps.showSelftruetrue = du siehst auch deinen eigenen GPS-Blip
gps.typessiehe Dateisprite und color pro Zustand: foot, swim, car, bike, bicycle, boat, heli, plane, dead (Standard weiß, tot rot)
vehicleKeys.enabled / key / rangetrue / 'U' / 10.0Schlüsselsystem, Standardtaste, Reichweite in Metern
vehicleKeys.sharedfalsetrue = alle Mitglieder können ausgeparkte Fraktionsfahrzeuge auf- und abschließen
bossLogs.days30So viele Tage bleiben Logs im Bossmenü gespeichert
bossLogs.<bereich>true (Aktionen false)Welche Bereiche die Logs-Seite zeigt: members, money, garage, storage, wardrobe, gangwarShop, level, actions
levels.max / base / growth50 / 1000 / 1.15XP pro Level = base × growth ^ (Level − 1)
levels.tiers5 StufenMit Levelsystem: Outfit-Plätze und Lager-kg ab einem Level
outfitSlots10Outfit-Plätze ohne Levelsystem
weaponWeight2.0Gewicht einer Waffe im Lager
itemImagesoff_inventory-BilderBildpfad für Items im Lager, %s = Itemname
marker / blipssiehe DateiStandard für neue Orte, im Creator pro Ort anpassbar. blips.enabled = false schaltet alle Blips aus

config/settings/config.gangwar.lua

OptionStandardBeschreibung
times18:00 – 22:00Erlaubte Uhrzeiten (Serverzeit), leer = immer
joinSeconds60First Contact: Beitrittszeit in der Lobby. Zeitlimit startet sofort
respawnSeconds10Sekunden bis zum Respawn
lobbyRadius15.0Größe der Lobby um den Spawn (Meter)
players.min / max1 / 0Spieler pro Seite (min nur First Contact, max = 0 = unbegrenzt)
killPoints3Zeitlimit: Punkte pro Kill
modes.<modus>.duration25 / 15Dauer in Minuten
cooldowns1 / 0 / 1Minuten: attack (Pause der Fraktion), zone (Sperre der Zone), queue (bis die Queue verfällt), 0 = aus
rewardssiehe DateiGangwar-Punkte und XP für win, lose, draw und forfeit
weaponsausenabled = true: nur diese Waffen im Gangwar, eigene kommen danach zurück
vehicles / shopsiehe DateiFahrzeuge der Gangwar-Garagen und Shop-Artikel

config/settings/config.actions.lua

OptionStandardBeschreibung
command / key'fraktionsmenu' / 'F6'Befehl (/off_faction:fraktionsmenu) und Standardtaste für das Aktionsmenü
reach3.0Wie nah ein Spieler oder Fahrzeug vor dir sein muss (Meter)
search.requireCuffedtrueNur gefesselte Spieler durchsuchen
search.accounts{ 'money', 'black_money' }Konten, die beim Durchsuchen genommen werden können
cuffedAnimssiehe DateiAnimationen, an denen ClientIsCuffed Gefesselte erkennt
identifysiehe DateiAnzeigedauer und welche Felder bei Spieler und Fahrzeug erscheinen
animationssiehe DateiAnimation und Dauer pro Aktion

config/functions.lua

Hier bindest du eigene Scripts an. Fehler darin landen in der Konsole, das Script läuft weiter.

FunktionWofür
Notify(message, type) / HelpNotify(text)Notify und Hinweistext · Server: Notify(source, message, type)
ClientGetFuel(vehicle) / ClientSetFuel(vehicle, fuel)Tank-Script
ClientVehicleRetrieved(vehicle, plate)Nach dem Ausparken, z. B. Schlüssel geben
ClientVehicleStored(plate)Nach dem Einparken, z. B. Schlüssel entfernen
ClientGetSkin() / ClientApplyOutfit(clothes) / ClientRestoreOutfit()Kleidungs-Script für den Kleiderschrank
ClientActionMenu(title, actions, onSelect)F6-Menü (Standard: ESX-Default-Menü)
ClientIsCuffed()Gefesselt-Prüfung beim Durchsuchen (eigene Fesseln und Animationen)
ClientCuffChanged(kind)Eigene Fesseln an oder ab, z. B. Handy sperren
ClientGangwarDeath() / ClientGangwarRespawn()Tod und Respawn im Gangwar, z. B. Ambulance-Script ausblenden
ClientRestoreLoadout(loadout)Waffen im Gangwar geben und zurückgeben
ClientGangwarVehicleMenu(vehicles, onSelect)Fahrzeugmenü der Gangwar-Garage
ClientGangwarVehicleSpawned(vehicle, plate)Gangwar-Fahrzeug gespawnt, z. B. Schlüssel geben
ServerLevelUp(faction, level)Fraktion steigt auf
ServerVehicleBought(faction, model, plate)Fahrzeug gekauft
ServerGangwarStarted(zone, attacker, defender)Gangwar startet
ServerGangwarEnded(zone, attacker, defender, outcome)Gangwar beendet (outcome aus Sicht des Angreifers)
ServerVehicleImpounded(source, plate)Fahrzeug abgeschleppt, z. B. anderes Garagen-Script anbinden
ServerCuffedDisconnect(source, xPlayer, kind, reason)Gefesselter Spieler verlässt den Server, z. B. Jail

config/settings/config.server.lua und Sprachen

Discord-Webhooks pro Bereich (creator, members, money, garage, storage, wardrobe, level, gangwar, actions), url = '' schaltet einen Log aus. Alle Texte stehen in config/locales/ (eine Datei pro Sprache).

Im Spiel

  • Creator (/fraktionen): Fraktion anlegen, Orte mit Position übernehmen setzen, Marker, NPCs und Blips über Anpassen, unter Settings Levelsystem, Garage, Lager, Gangwar und die Aktionen des F6-Menüs einschalten. Erst Speichern übernimmt alles. Oben wechselst du zu Bewerbungen und Gangwar-Zonen.
  • NPC anpassen: Modell aus einer Bilderliste aller GTA-Peds wählen (Suche und Kategorien), dazu Szenario und Blickrichtung, alles mit Live-Vorschau im Spiel. Ein Addon-Ped wählst du über den genauen Modellnamen in der Suche.
  • Fahrzeug-Stil (Creator → Fahrzeuge): Kennzeichen-Präfix mit bis zu 5 Zeichen, z. B. BALLA ergibt BALLA 48. Ändert sich das Präfix, bekommen beim Speichern alle Fahrzeuge der Fraktion ein neues Kennzeichen und ausgeparkte Fahrzeuge werden entfernt. Dazu Lack in Fraktionsfarbe, maximales Tuning, getönte Scheiben und Xenon in Fraktionsfarbe.
  • GPS (Creator → Settings): Mitglieder sehen sich gegenseitig auf der Karte. Das Symbol wechselt je nach Zustand, Farben und Symbole stehen in gps.types. Die Blickrichtung zeigt der Blip nur zu Fuß und beim Schwimmen, Fahrzeug-Symbole stehen immer gerade.
  • Schlüssel: Wer ein Fraktionsfahrzeug ausparkt, kann es mit U auf- und abschließen (in den FiveM-Tastenbelegungen änderbar). Mit vehicleKeys.shared = true können das alle Mitglieder.
  • Bewerbungen: Bewerbungspunkte legst du im Creator unter Bewerbungen an (bis zu 20), als NPC oder Marker und auf Wunsch mit Blip für alle Spieler. Sie gelten für alle Fraktionen. Am Punkt öffnet E die Liste aller Fraktionen, die Bewerbungen annehmen, dort schickst du einen Text. Die eigene Fraktion steht nicht in der Liste. Mitglieder mit dem Recht Mitglieder einladen bekommen eine Nachricht und sehen die Bewerbung im Bossmenü unter Mitglieder → Bewerbungen. Dort lassen sich Bewerbungen auch schließen. Annehmen klappt auch, wenn der Spieler offline ist.
  • Logs (Bossmenü, unterer Button): alles, was in der Fraktion passiert, z. B. Ein- und Auszahlungen, Fahrzeuge aus- und eingeparkt oder gekauft, Lager, Kleiderschrank, Mitglieder, Bewerbungen, Gangwar-Shop und Level. Gangwar-Angriffe stehen dort nicht. Sichtbar für die Leitung und Ränge mit dem Recht Logs ansehen.
  • Orte: An Bossmenü, Garage, Lager, Kleiderschrank und Aufzug öffnet E das Menü.
  • Aktionsmenü (F6): Wirkt auf den Spieler oder das Fahrzeug direkt vor dir.
  • Harte Fesseln: nur umschauen. Weiche Fesseln: laufen, aber nicht rennen, springen oder angreifen. Nochmal auswählen löst sie.
  • Durchsuchen: nur gefesselte Spieler, du kannst nur wegnehmen.
  • Führen: gefesselten Spieler vor dir herführen. Ins Fahrzeug setzen / Aus Fahrzeug holen für Gefesselte.
  • Fahrzeug: waschen, reparieren, abschleppen (private Fahrzeuge landen im Abschlepphof von off_garage) und identifizieren. X bricht ab.
  • Gangwar: Am Gangwar-Punkt E öffnet das Menü. Eine Fraktion stellt eine Zone ein, eine andere nimmt an. Beitreten per E am Gangwar-Punkt.
  • Zeitlimit: startet sofort, Punkte pro Kill, Respawn, Beitreten bis zum Ende.
  • First Contact: Beitrittszeit in der Lobby, dann ein Leben pro Spieler.

Für Entwickler

lua
exports.off_faction:AddXP('vagos', 250)
exports.off_faction:SetLevel('vagos', 5, 0)
local level, xp, needXp = exports.off_faction:GetLevel('vagos')
local faction = exports.off_faction:GetFaction('vagos')
local list = exports.off_faction:GetFactions()
local isFaction = exports.off_faction:IsFaction('vagos')
local name, grade = exports.off_faction:GetPlayerFaction(source)
local allowed = exports.off_faction:HasPermission(source, 'withdraw')
exports.off_faction:AddBalance('vagos', 5000, 'Belohnung')
exports.off_faction:RemoveBalance('vagos', 5000, 'Strafe')
  • Alle Exports sind serverseitig.
  • Server-Event off_faction:levelUp mit (faction, level) beim Aufstieg.
  • Statebags: offGangwar (Zonen-ID im Gangwar), offCuffed ('hard', 'soft' oder false), offEscorted (Server-ID des Führenden).

Häufige Fehler

Beim Start meldet das Script Fehler und Hinweise in der Server-Konsole.

ProblemLösung
„Es gibt schon einen ESX-Job mit diesem Namen“Anderen Namen wählen, bestehende Jobs werden nicht übernommen.
Niemand sieht Marker oder NPCNur Mitglieder sehen die Orte. Position setzen und speichern, Mindestrang prüfen.
Kleiderschrank zieht nichts anskinchanger/esx_skin starten oder die Kleidungs-Funktionen anpassen.
F6 öffnet kein MenüUnter Settings eine Aktion einschalten, esxmenudefault starten.
Fahrzeug fehlt in der GarageIm Creator unter Garagen der Garage zuweisen. Fahrzeuge ohne Garage stehen in allen Garagen. Mit Preis lässt die Leitung das Fahrzeug erst im Bossmenü kaufen.
GPS zeigt niemandenIm Creator unter Settings GPS einschalten. Es zeigt nur Mitglieder, die online sind.
U schließt nicht abNur wer das Fahrzeug ausgeparkt hat, oder alle mit vehicleKeys.shared = true. Taste in den FiveM-Tastenbelegungen prüfen.
Bewerbung fehlt im BossmenüSie steht nur im Bossmenü der Fraktion, bei der man sich beworben hat, und nur für Ränge mit dem Recht Mitglieder einladen.
Logs-Seite ist leerBereich in bossLogs auf true setzen. Einträge entstehen erst ab jetzt, ältere Aktionen gibt es nicht.
„Gangwars sind gerade nicht erlaubt“Uhrzeit außerhalb von times. Für immer: times = {}.
Im Gangwar belebt das Ambulance-Script wiederTodesbildschirm in ClientGangwarDeath ausschalten.

Noch nicht gekauft?

Faction im Shop ansehen