
Faction
Fazioni che crei interamente in gioco: ogni fazione è un vero job con menu boss, garage, magazzini, guardaroba, ascensore, livelli, menu azioni e sistema gangwar. Le tabelle le crea lo script da solo.
- ESX Legacy (
es_extended, testato con 1.14) - oxmysql
- OneSync
- Per il guardaroba: skinchanger e esx_skin (o funzioni tue in
config/functions.lua) - Per il menu F6 e il menu veicoli del gangwar: esxmenudefault (o menu tuoi tramite
ClientActionMenueClientGangwarVehicleMenu)
Funzionalità
- Creator (
/fraktionen): crei in gioco fazioni con gradi, stipendio, veicoli, luoghi (marker o NPC), blip e accesso da un certo grado. - Menu boss: gestire i membri, cassa con cronologia, comprare veicoli, permessi per grado, candidature e log.
- Candidature: i giocatori si candidano alle fazioni nei punti candidatura (NPC o marker dal creator), la direzione accetta o rifiuta nel menu boss.
- GPS: i membri si vedono sulla mappa, con un'icona propria a piedi, in auto, in moto o in bici, in barca, in elicottero o in aereo, mentre nuotano e da morti (attivabile per fazione).
- Veicoli di fazione con stile: prefisso targa proprio, vernice e xeno nel colore della fazione, tuning massimo e vetri oscurati. Con chiave per chiudere e aprire.
- Garage e magazzini: fino a 10 ciascuno per fazione, accesso da un certo grado.
- Guardaroba, ascensore (fino a 10 piani) e livelli con XP (attivabili per fazione).
- Menu azioni (F6): ammanettare, perquisire, identificare, scortare e azioni sui veicoli, selezionabili per fazione.
- Gangwar: crei zone in gioco, modalità Limite di tempo e First Contact, dimensione propria, shop e classifica.
- Log su Discord per tutte le aree.
Installazione
- Metti la cartella
off_factioninresources. - Aggiungi nel
server.cfg, dopo oxmysql ed ESX:
ensure oxmysql
ensure es_extended
ensure off_faction- Apri
/fraktionen, crea una fazione e imposta la direzione con/setjob <ID> <name> <grado>(grado più alto = numero di gradi − 1).
Il nome della fazione è anche il nome del job (2–20 caratteri, a–z, 0–9, _) e poi non si può più cambiare. Se il job esiste già, non puoi creare la fazione.
Configurazione
config/settings/config.lua
| Opzione | Predefinito | Descrizione |
|---|---|---|
serverInfo.name | 'OFF SCRIPTS' | Nome del server, mostrato nell'interfaccia al posto di «OFF SCRIPTS» |
serverInfo.locale | 'de' | Lingua: de, en, pl, fr, es o it |
serverInfo.color | { 155, 89, 255 } | Colore della UI (RGB) |
serverInfo.design | 3 | Design dell'interfaccia: 1 = Classico, 2 = Scontrino, 3 = Storefront |
blur | true | Sfondo sfocato finché un menu è aperto. Il creator resta nitido (anteprima) |
creator.command | 'fraktionen' | Comando del creator |
creator.groups | { 'projektleitung' } | Gruppi con accesso al creator delle fazioni |
creator.zoneGroups | { 'projektleitung' } | Gruppi con accesso al creator delle zone gangwar |
inviteSeconds | 60 | Secondi prima che un invito scada |
storeRange | 25.0 | Distanza max. per parcheggiare un veicolo (metri) |
plateFormat | 'LLL NNN' | Targa: L = lettera, N = numero, vale solo senza prefisso nel creator |
applications.cooldown / maxOpen | 24 / 3 | Ore di blocco dopo un rifiuto, max. candidature aperte per giocatore |
gps.interval / scale | 2 / 0.8 | Secondi tra gli aggiornamenti GPS, dimensione dei blip |
gps.showSelf | true | true = vedi anche il tuo blip GPS |
gps.types | vedi file | sprite e color per stato: foot, swim, car, bike, bicycle, boat, heli, plane, dead (predefinito bianco, morto rosso) |
vehicleKeys.enabled / key / range | true / 'U' / 10.0 | Sistema chiavi, tasto predefinito, portata in metri |
vehicleKeys.shared | false | true = tutti i membri possono chiudere e aprire i veicoli di fazione tirati fuori |
bossLogs.days | 30 | Per quanti giorni i log restano salvati nel menu boss |
bossLogs.<area> | true (azioni false) | Quali aree mostra la pagina dei log: members, money, garage, storage, wardrobe, gangwarShop, level, actions |
levels.max / base / growth | 50 / 1000 / 1.15 | XP per livello = base × growth ^ (Level − 1) |
levels.tiers | 5 fasce | Con sistema livelli: slot outfit e kg di magazzino da un certo livello |
outfitSlots | 10 | Slot outfit senza sistema livelli |
weaponWeight | 2.0 | Peso di un'arma nel magazzino |
itemImages | immagini di off_inventory | Percorso immagini per gli item nel magazzino, %s = nome dell'item |
marker / blips | vedi file | Predefiniti per nuovi luoghi, modificabili per luogo nel creator. blips.enabled = false disattiva tutti i blip |
config/settings/config.gangwar.lua
| Opzione | Predefinito | Descrizione |
|---|---|---|
times | 18:00 – 22:00 | Orari consentiti (ora del server), vuoto = sempre |
joinSeconds | 60 | First Contact: tempo per entrare nella lobby. Limite di tempo parte subito |
respawnSeconds | 10 | Secondi fino al respawn |
lobbyRadius | 15.0 | Dimensione della lobby attorno allo spawn (metri) |
players.min / max | 1 / 0 | Giocatori per lato (min solo First Contact, max = 0 = illimitati) |
killPoints | 3 | Limite di tempo: punti per kill |
modes.<modalità>.duration | 25 / 15 | Durata in minuti |
cooldowns | 1 / 0 / 1 | Minuti: attack (pausa della fazione), zone (blocco della zona), queue (finché la coda scade), 0 = disattivato |
rewards | vedi file | Punti gangwar e XP per win, lose, draw e forfeit |
weapons | disattivato | enabled = true: solo queste armi nel gangwar, le tue tornano dopo |
vehicles / shop | vedi file | Veicoli dei garage gangwar e articoli dello shop |
config/settings/config.actions.lua
| Opzione | Predefinito | Descrizione |
|---|---|---|
command / key | 'fraktionsmenu' / 'F6' | Comando (/off_faction:fraktionsmenu) e tasto predefinito per il menu azioni |
reach | 3.0 | Quanto vicino davanti a te deve essere un giocatore o un veicolo (metri) |
search.requireCuffed | true | Perquisire solo giocatori ammanettati |
search.accounts | { 'money', 'black_money' } | Conti che si possono prendere durante la perquisizione |
cuffedAnims | vedi file | Animazioni da cui ClientIsCuffed riconosce gli ammanettati |
identify | vedi file | Durata di visualizzazione e quali campi compaiono per giocatore e veicolo |
animations | vedi file | Animazione e durata per azione |
config/functions.lua
Qui colleghi i tuoi script. Gli errori al loro interno finiscono in console, lo script continua a funzionare.
| Funzione | A cosa serve |
|---|---|
Notify(message, type) / HelpNotify(text) | Notifica e testo di aiuto · Server: Notify(source, message, type) |
ClientGetFuel(vehicle) / ClientSetFuel(vehicle, fuel) | Script carburante |
ClientVehicleRetrieved(vehicle, plate) | Dopo aver tirato fuori un veicolo, es. dare le chiavi |
ClientVehicleStored(plate) | Dopo aver parcheggiato un veicolo, es. togliere le chiavi |
ClientGetSkin() / ClientApplyOutfit(clothes) / ClientRestoreOutfit() | Script vestiti per il guardaroba |
ClientActionMenu(title, actions, onSelect) | Menu F6 (predefinito: menu ESX Default) |
ClientIsCuffed() | Controllo manette durante la perquisizione (manette e animazioni tue) |
ClientCuffChanged(kind) | Manette proprie messe o tolte, es. bloccare il telefono |
ClientGangwarDeath() / ClientGangwarRespawn() | Morte e respawn nel gangwar, es. nascondere lo script ambulance |
ClientRestoreLoadout(loadout) | Dare e restituire le armi nel gangwar |
ClientGangwarVehicleMenu(vehicles, onSelect) | Menu veicoli del garage gangwar |
ClientGangwarVehicleSpawned(vehicle, plate) | Veicolo gangwar spawnato, es. dare le chiavi |
ServerLevelUp(faction, level) | La fazione sale di livello |
ServerVehicleBought(faction, model, plate) | Veicolo comprato |
ServerGangwarStarted(zone, attacker, defender) | Il gangwar inizia |
ServerGangwarEnded(zone, attacker, defender, outcome) | Gangwar terminato (outcome dal punto di vista dell'attaccante) |
ServerVehicleImpounded(source, plate) | Veicolo sequestrato, es. collegare un altro script garage |
ServerCuffedDisconnect(source, xPlayer, kind, reason) | Un giocatore ammanettato lascia il server, es. prigione |
config/settings/config.server.lua e lingue
Webhook Discord per area (creator, members, money, garage, storage, wardrobe, level, gangwar, actions), url = '' disattiva un log. Tutti i testi sono in config/locales/ (un file per lingua).
In gioco
- Creator (
/fraktionen): crea una fazione, imposta i luoghi con Usa la mia posizione, marker, NPC e blip con Personalizza, e in Impostazioni attiva sistema livelli, garage, magazzino, gangwar e le azioni del menu F6. Solo Salva applica tutto. In alto passi a Candidature e Zone Gangwar. - Personalizza NPC: scegli un modello da una lista di immagini di tutti i ped di GTA (ricerca e categorie), più scenario e direzione dello sguardo, tutto con anteprima live in gioco. Un ped addon lo scegli scrivendo il nome esatto del modello nella ricerca.
- Stile veicolo (Creator → Veicoli): prefisso targa fino a 5 caratteri, es.
BALLAdiventaBALLA 48. Se il prefisso cambia, al salvataggio tutti i veicoli della fazione ricevono una nuova targa e i veicoli tirati fuori vengono rimossi. In più vernice nel colore della fazione, tuning massimo, vetri oscurati e xeno nel colore della fazione. - GPS (Creator → Impostazioni): i membri si vedono a vicenda sulla mappa. L'icona cambia in base allo stato, colori e icone sono in
gps.types. Il blip mostra la direzione solo a piedi e mentre nuoti, le icone dei veicoli restano sempre dritte. - Chiavi: chi tira fuori un veicolo di fazione può chiuderlo e aprirlo con U (modificabile nelle impostazioni dei tasti di FiveM). Con
vehicleKeys.shared = truepossono farlo tutti i membri. - Candidature: i punti candidatura li crei nel creator in Candidature (fino a 20), come NPC o marker e, se vuoi, con blip per tutti i giocatori. Valgono per tutte le fazioni. Al punto, E apre la lista di tutte le fazioni che accettano candidature, lì invii un testo. La tua fazione non è nella lista. I membri con il permesso Invitare membri ricevono un messaggio e vedono la candidatura nel menu boss in Membri → Candidature. Lì si possono anche chiudere le candidature. Accettare funziona anche se il giocatore è offline.
- Registri (menu boss, pulsante in basso): tutto ciò che succede nella fazione, es. depositi e prelievi, veicoli tirati fuori, parcheggiati o comprati, magazzino, guardaroba, membri, candidature, shop gangwar e livello. Gli attacchi gangwar non ci sono. Visibile alla direzione e ai gradi con il permesso Vedere registri.
- Luoghi: al menu boss, garage, magazzino, guardaroba e ascensore, E apre il menu.
- Menu azioni (F6): agisce sul giocatore o sul veicolo proprio davanti a te.
- Manette rigide: solo guardarsi intorno. Manette morbide: camminare, ma non correre, saltare o attaccare. Selezionarle di nuovo le toglie.
- Perquisire: solo giocatori ammanettati, puoi solo prendere.
- Scortare: porti un giocatore ammanettato davanti a te. Mettere nel veicolo / Far scendere dal veicolo per gli ammanettati.
- Veicolo: lavare, riparare, sequestrare (i veicoli privati finiscono nel deposito di off_garage) e identificare. X annulla.
- Gangwar: al punto gangwar, E apre il menu. Una fazione mette in coda una zona, un'altra accetta. Entri con E al punto gangwar.
- Limite di tempo: parte subito, punti per kill, respawn, si può entrare fino alla fine.
- First Contact: tempo per entrare nella lobby, poi una vita per giocatore.
Per sviluppatori
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, 'Ricompensa')
exports.off_faction:RemoveBalance('vagos', 5000, 'Strafe')- Tutti gli export sono lato server.
- Evento server
off_faction:levelUpcon(faction, level)alla salita di livello. - Statebag:
offGangwar(ID della zona nel gangwar),offCuffed('hard','soft'ofalse),offEscorted(ID server di chi scorta).
Problemi comuni
All'avvio lo script segnala errori e avvisi nella console del server.
| Problema | Soluzione |
|---|---|
| «Esiste già un job ESX con questo nome» | Scegli un altro nome, i job esistenti non vengono ripresi. |
| Nessuno vede il marker o l'NPC | Solo i membri vedono i luoghi. Imposta la posizione e salva, controlla il grado minimo. |
| Il guardaroba non veste | Avvia skinchanger/esx_skin o adatta le funzioni dei vestiti. |
| F6 non apre nessun menu | In Impostazioni attiva un'azione, avvia esxmenudefault. |
| Un veicolo manca nel garage | Nel creator, in Garage, assegnalo al garage. I veicoli senza garage sono in tutti i garage. Se ha un prezzo, la direzione deve prima comprare il veicolo nel menu boss. |
| Il GPS non mostra nessuno | Nel creator, in Impostazioni, attiva GPS. Mostra solo i membri online. |
| U non chiude | Solo chi ha tirato fuori il veicolo, oppure tutti con vehicleKeys.shared = true. Controlla il tasto nelle impostazioni dei tasti di FiveM. |
| La candidatura manca nel menu boss | Compare solo nel menu boss della fazione a cui ci si è candidati, e solo per i gradi con il permesso Invitare membri. |
| La pagina dei log è vuota | Imposta l'area su true in bossLogs. Le voci vengono create solo da adesso, le azioni precedenti non ci sono. |
| «Al momento i Gangwar non sono consentiti» | Orario fuori da times. Per sempre: times = {}. |
| Nel gangwar lo script ambulance rianima | Disattiva la schermata di morte in ClientGangwarDeath. |
Non l’hai ancora acquistato?
Vedi Faction nel negozio