
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.
- 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
ClientActionMenuundClientGangwarVehicleMenu)
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
- Ordner
off_factioninresourceslegen. - In die
server.cfgnach oxmysql und ESX:
ensure oxmysql
ensure es_extended
ensure off_faction/fraktionenöffnen, Fraktion anlegen und die Leitung per/setjob <ID> <name> <rang>setzen (höchster Rang = Anzahl Ränge − 1).
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
| Option | Standard | Beschreibung |
|---|---|---|
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.design | 3 | Design der Oberfläche: 1 = Klassisch, 2 = Kassenbon, 3 = Storefront |
blur | true | Hintergrund 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 |
inviteSeconds | 60 | Sekunden, bis eine Einladung verfällt |
storeRange | 25.0 | Max. Entfernung beim Einparken (Meter) |
plateFormat | 'LLL NNN' | Kennzeichen: L = Buchstabe, N = Zahl, gilt nur ohne Präfix im Creator |
applications.cooldown / maxOpen | 24 / 3 | Stunden Sperre nach einer Absage, max. offene Bewerbungen pro Spieler |
gps.interval / scale | 2 / 0.8 | Sekunden zwischen GPS-Updates, Größe der Blips |
gps.showSelf | true | true = du siehst auch deinen eigenen GPS-Blip |
gps.types | siehe Datei | sprite und color pro Zustand: foot, swim, car, bike, bicycle, boat, heli, plane, dead (Standard weiß, tot rot) |
vehicleKeys.enabled / key / range | true / 'U' / 10.0 | Schlüsselsystem, Standardtaste, Reichweite in Metern |
vehicleKeys.shared | false | true = alle Mitglieder können ausgeparkte Fraktionsfahrzeuge auf- und abschließen |
bossLogs.days | 30 | So 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 / growth | 50 / 1000 / 1.15 | XP pro Level = base × growth ^ (Level − 1) |
levels.tiers | 5 Stufen | Mit Levelsystem: Outfit-Plätze und Lager-kg ab einem Level |
outfitSlots | 10 | Outfit-Plätze ohne Levelsystem |
weaponWeight | 2.0 | Gewicht einer Waffe im Lager |
itemImages | off_inventory-Bilder | Bildpfad für Items im Lager, %s = Itemname |
marker / blips | siehe Datei | Standard für neue Orte, im Creator pro Ort anpassbar. blips.enabled = false schaltet alle Blips aus |
config/settings/config.gangwar.lua
| Option | Standard | Beschreibung |
|---|---|---|
times | 18:00 – 22:00 | Erlaubte Uhrzeiten (Serverzeit), leer = immer |
joinSeconds | 60 | First Contact: Beitrittszeit in der Lobby. Zeitlimit startet sofort |
respawnSeconds | 10 | Sekunden bis zum Respawn |
lobbyRadius | 15.0 | Größe der Lobby um den Spawn (Meter) |
players.min / max | 1 / 0 | Spieler pro Seite (min nur First Contact, max = 0 = unbegrenzt) |
killPoints | 3 | Zeitlimit: Punkte pro Kill |
modes.<modus>.duration | 25 / 15 | Dauer in Minuten |
cooldowns | 1 / 0 / 1 | Minuten: attack (Pause der Fraktion), zone (Sperre der Zone), queue (bis die Queue verfällt), 0 = aus |
rewards | siehe Datei | Gangwar-Punkte und XP für win, lose, draw und forfeit |
weapons | aus | enabled = true: nur diese Waffen im Gangwar, eigene kommen danach zurück |
vehicles / shop | siehe Datei | Fahrzeuge der Gangwar-Garagen und Shop-Artikel |
config/settings/config.actions.lua
| Option | Standard | Beschreibung |
|---|---|---|
command / key | 'fraktionsmenu' / 'F6' | Befehl (/off_faction:fraktionsmenu) und Standardtaste für das Aktionsmenü |
reach | 3.0 | Wie nah ein Spieler oder Fahrzeug vor dir sein muss (Meter) |
search.requireCuffed | true | Nur gefesselte Spieler durchsuchen |
search.accounts | { 'money', 'black_money' } | Konten, die beim Durchsuchen genommen werden können |
cuffedAnims | siehe Datei | Animationen, an denen ClientIsCuffed Gefesselte erkennt |
identify | siehe Datei | Anzeigedauer und welche Felder bei Spieler und Fahrzeug erscheinen |
animations | siehe Datei | Animation und Dauer pro Aktion |
config/functions.lua
Hier bindest du eigene Scripts an. Fehler darin landen in der Konsole, das Script läuft weiter.
| Funktion | Wofü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.
BALLAergibtBALLA 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 = truekö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
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:levelUpmit(faction, level)beim Aufstieg. - Statebags:
offGangwar(Zonen-ID im Gangwar),offCuffed('hard','soft'oderfalse),offEscorted(Server-ID des Führenden).
Häufige Fehler
Beim Start meldet das Script Fehler und Hinweise in der Server-Konsole.
| Problem | Lösung |
|---|---|
| „Es gibt schon einen ESX-Job mit diesem Namen“ | Anderen Namen wählen, bestehende Jobs werden nicht übernommen. |
| Niemand sieht Marker oder NPC | Nur Mitglieder sehen die Orte. Position setzen und speichern, Mindestrang prüfen. |
| Kleiderschrank zieht nichts an | skinchanger/esx_skin starten oder die Kleidungs-Funktionen anpassen. |
| F6 öffnet kein Menü | Unter Settings eine Aktion einschalten, esxmenudefault starten. |
| Fahrzeug fehlt in der Garage | Im 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 niemanden | Im Creator unter Settings GPS einschalten. Es zeigt nur Mitglieder, die online sind. |
| U schließt nicht ab | Nur 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 leer | Bereich 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 wieder | Todesbildschirm in ClientGangwarDeath ausschalten. |
Noch nicht gekauft?
Faction im Shop ansehen