Aller au contenu
Toute la documentation

Faction

Des factions que tu crées entièrement en jeu : chaque faction est un vrai job avec menu boss, garages, coffres, vestiaire, ascenseur, niveaux, menu d'actions et système de gangwar. Le script crée lui-même les tables.

Prérequis
  • ESX Legacy (es_extended, testé avec 1.14)
  • oxmysql
  • OneSync
  • Pour le vestiaire : skinchanger et esx_skin (ou tes propres fonctions dans config/functions.lua)
  • Pour le menu F6 et le menu des véhicules de gangwar : esxmenudefault (ou tes propres menus via ClientActionMenu et ClientGangwarVehicleMenu)

Fonctionnalités

  • Créateur (/fraktionen) : crée en jeu des factions avec rangs, salaire, véhicules, lieux (marker ou PNJ), blips et accès à partir d'un rang.
  • Menu boss : gérer les membres, caisse avec historique, acheter des véhicules, permissions par rang, candidatures et logs.
  • Candidatures : les joueurs postulent auprès des factions aux points de candidature (PNJ ou marker du créateur), la direction accepte ou refuse dans le menu boss.
  • GPS : les membres se voient sur la carte, avec une icône propre à pied, en voiture, à moto ou à vélo, en bateau, en hélicoptère ou en avion, en nageant et une fois mort (activable par faction).
  • Véhicules de faction avec style : préfixe de plaque propre, peinture et xénon à la couleur de la faction, tuning maximal et vitres teintées. Avec une clé pour verrouiller et déverrouiller.
  • Garages et coffres : jusqu'à 10 de chaque par faction, accès à partir d'un rang.
  • Vestiaire, ascenseur (jusqu'à 10 étages) et niveaux avec XP (activables par faction).
  • Menu d'actions (F6) : menotter, fouiller, identifier, escorter et actions sur les véhicules, au choix pour chaque faction.
  • Gangwar : créer des zones en jeu, modes Temps limité et First Contact, dimension propre, boutique et classement.
  • Logs Discord pour tous les domaines.

Installation

  1. Place le dossier off_faction dans resources.
  2. Ajoute dans le server.cfg, après oxmysql et ESX :
cfg
ensure oxmysql
ensure es_extended
ensure off_faction
  1. Ouvre /fraktionen, crée une faction et définis la direction avec /setjob <ID> <name> <grade> (rang le plus haut = nombre de rangs − 1).
Noms de job

Le nom de la faction est aussi le nom du job (2–20 caractères, a–z, 0–9, _) et ne peut plus changer ensuite. Si le job existe déjà, tu ne peux pas créer la faction.

Configuration

config/settings/config.lua

OptionPar défautDescription
serverInfo.name'OFF SCRIPTS'Nom du serveur, affiché dans l'interface à la place de « OFF SCRIPTS »
serverInfo.locale'de'Langue : de, en, pl, fr, es ou it
serverInfo.color{ 155, 89, 255 }Couleur de l'UI (RGB)
serverInfo.design3Design de l'interface : 1 = Classique, 2 = Ticket, 3 = Storefront
blurtrueFond flou tant qu'un menu est ouvert. Le créateur reste net (aperçu)
creator.command'fraktionen'Commande du créateur
creator.groups{ 'projektleitung' }Groupes ayant accès au créateur de factions
creator.zoneGroups{ 'projektleitung' }Groupes ayant accès au créateur de zones de gangwar
inviteSeconds60Secondes avant qu'une invitation expire
storeRange25.0Distance max. pour ranger un véhicule (mètres)
plateFormat'LLL NNN'Plaque : L = lettre, N = chiffre, s'applique seulement sans préfixe dans le créateur
applications.cooldown / maxOpen24 / 3Heures de blocage après un refus, candidatures ouvertes max. par joueur
gps.interval / scale2 / 0.8Secondes entre les mises à jour GPS, taille des blips
gps.showSelftruetrue = tu vois aussi ton propre blip GPS
gps.typesvoir fichiersprite et color par état : foot, swim, car, bike, bicycle, boat, heli, plane, dead (blanc par défaut, rouge si mort)
vehicleKeys.enabled / key / rangetrue / 'U' / 10.0Système de clés, touche par défaut, portée en mètres
vehicleKeys.sharedfalsetrue = tous les membres peuvent verrouiller et déverrouiller les véhicules de faction sortis
bossLogs.days30Nombre de jours pendant lesquels les logs restent enregistrés dans le menu boss
bossLogs.<domaine>true (actions false)Domaines affichés sur la page des logs : members, money, garage, storage, wardrobe, gangwarShop, level, actions
levels.max / base / growth50 / 1000 / 1.15XP par niveau = base × growth ^ (Level − 1)
levels.tiers5 paliersAvec le système de niveaux : emplacements de tenues et kg de coffre à partir d'un niveau
outfitSlots10Emplacements de tenues sans système de niveaux
weaponWeight2.0Poids d'une arme dans le coffre
itemImagesimages off_inventoryChemin des images des items dans le coffre, %s = nom de l'item
marker / blipsvoir fichierValeurs par défaut des nouveaux lieux, modifiables par lieu dans le créateur. blips.enabled = false désactive tous les blips

config/settings/config.gangwar.lua

OptionPar défautDescription
times18:00 – 22:00Heures autorisées (heure du serveur), vide = toujours
joinSeconds60First Contact : temps pour rejoindre dans le lobby. Temps limité démarre tout de suite
respawnSeconds10Secondes avant le respawn
lobbyRadius15.0Taille du lobby autour du spawn (mètres)
players.min / max1 / 0Joueurs par camp (min seulement First Contact, max = 0 = illimité)
killPoints3Temps limité : points par kill
modes.<mode>.duration25 / 15Durée en minutes
cooldowns1 / 0 / 1Minutes : attack (pause de la faction), zone (blocage de la zone), queue (jusqu'à expiration de la file), 0 = désactivé
rewardsvoir fichierPoints de gangwar et XP pour win, lose, draw et forfeit
weaponsdésactivéenabled = true : seulement ces armes en gangwar, les tiennes reviennent ensuite
vehicles / shopvoir fichierVéhicules des garages de gangwar et articles de la boutique

config/settings/config.actions.lua

OptionPar défautDescription
command / key'fraktionsmenu' / 'F6'Commande (/off_faction:fraktionsmenu) et touche par défaut du menu d'actions
reach3.0À quelle distance devant toi un joueur ou un véhicule doit se trouver (mètres)
search.requireCuffedtrueFouiller seulement les joueurs menottés
search.accounts{ 'money', 'black_money' }Comptes qui peuvent être pris lors d'une fouille
cuffedAnimsvoir fichierAnimations avec lesquelles ClientIsCuffed reconnaît les joueurs menottés
identifyvoir fichierDurée d'affichage et champs affichés pour le joueur et le véhicule
animationsvoir fichierAnimation et durée par action

config/functions.lua

C'est ici que tu branches tes propres scripts. Les erreurs qu'elles contiennent arrivent dans la console, le script continue de tourner.

FonctionUtilité
Notify(message, type) / HelpNotify(text)Notification et texte d'aide · Serveur : Notify(source, message, type)
ClientGetFuel(vehicle) / ClientSetFuel(vehicle, fuel)Script d'essence
ClientVehicleRetrieved(vehicle, plate)Après la sortie d'un véhicule, p. ex. donner les clés
ClientVehicleStored(plate)Après avoir rangé un véhicule, p. ex. retirer les clés
ClientGetSkin() / ClientApplyOutfit(clothes) / ClientRestoreOutfit()Script de vêtements pour le vestiaire
ClientActionMenu(title, actions, onSelect)Menu F6 (par défaut : menu ESX Default)
ClientIsCuffed()Vérification des menottes lors d'une fouille (tes propres menottes et animations)
ClientCuffChanged(kind)Tes propres menottes mises ou retirées, p. ex. bloquer le téléphone
ClientGangwarDeath() / ClientGangwarRespawn()Mort et respawn en gangwar, p. ex. masquer le script ambulance
ClientRestoreLoadout(loadout)Donner et rendre les armes en gangwar
ClientGangwarVehicleMenu(vehicles, onSelect)Menu des véhicules du garage de gangwar
ClientGangwarVehicleSpawned(vehicle, plate)Véhicule de gangwar apparu, p. ex. donner les clés
ServerLevelUp(faction, level)La faction monte de niveau
ServerVehicleBought(faction, model, plate)Véhicule acheté
ServerGangwarStarted(zone, attacker, defender)Le gangwar démarre
ServerGangwarEnded(zone, attacker, defender, outcome)Gangwar terminé (outcome du point de vue de l'attaquant)
ServerVehicleImpounded(source, plate)Véhicule mis en fourrière, p. ex. brancher un autre script de garage
ServerCuffedDisconnect(source, xPlayer, kind, reason)Un joueur menotté quitte le serveur, p. ex. prison

config/settings/config.server.lua et langues

Webhooks Discord par domaine (creator, members, money, garage, storage, wardrobe, level, gangwar, actions), url = '' désactive un log. Tous les textes se trouvent dans config/locales/ (un fichier par langue).

En jeu

  • Créateur (/fraktionen) : crée une faction, place les lieux avec Prendre ma position, règle markers, PNJ et blips via Personnaliser, et sous Paramètres active le système de niveaux, le garage, le coffre, le gangwar et les actions du menu F6. Seul Enregistrer applique tout. En haut, tu passes à Candidatures et Zones Gangwar.
  • Personnaliser le PNJ : choisis un modèle dans une liste d'images de tous les peds de GTA (recherche et catégories), plus scénario et orientation, le tout avec aperçu en direct en jeu. Pour un ped addon, tape le nom exact du modèle dans la recherche.
  • Style des véhicules (Créateur → Véhicules) : préfixe de plaque jusqu'à 5 caractères, p. ex. BALLA donne BALLA 48. Si le préfixe change, tous les véhicules de la faction reçoivent une nouvelle plaque à l'enregistrement et les véhicules sortis sont supprimés. En plus : peinture à la couleur de la faction, tuning maximal, vitres teintées et xénon à la couleur de la faction.
  • GPS (Créateur → Paramètres) : les membres se voient mutuellement sur la carte. L'icône change selon l'état, les couleurs et icônes sont dans gps.types. Le blip n'indique l'orientation qu'à pied et en nageant, les icônes de véhicules restent toujours droites.
  • Clés : celui qui sort un véhicule de faction peut le verrouiller et le déverrouiller avec U (modifiable dans les raccourcis clavier de FiveM). Avec vehicleKeys.shared = true, tous les membres le peuvent.
  • Candidatures : tu crées les points de candidature dans le créateur sous Candidatures (jusqu'à 20), en PNJ ou marker et, si tu veux, avec un blip pour tous les joueurs. Ils valent pour toutes les factions. Au point, E ouvre la liste de toutes les factions qui acceptent des candidatures, là tu envoies un texte. Ta propre faction n'apparaît pas dans la liste. Les membres avec la permission Inviter des membres reçoivent un message et voient la candidature dans le menu boss sous Membres → Candidatures. On peut aussi y fermer les candidatures. Accepter fonctionne même si le joueur est hors ligne.
  • Logs (menu boss, bouton du bas) : tout ce qui se passe dans la faction, p. ex. dépôts et retraits, véhicules sortis, rangés ou achetés, coffre, vestiaire, membres, candidatures, boutique de gangwar et niveau. Les attaques de gangwar n'y figurent pas. Visible pour la direction et les rangs avec la permission Voir les logs.
  • Lieux : au menu boss, au garage, au coffre, au vestiaire et à l'ascenseur, E ouvre le menu.
  • Menu d'actions (F6) : agit sur le joueur ou le véhicule juste devant toi.
  • Menottes rigides : seulement regarder autour. Menottes souples : marcher, mais pas courir, sauter ou attaquer. Les sélectionner à nouveau les retire.
  • Fouiller : seulement les joueurs menottés, tu peux seulement prendre.
  • Escorter : mener un joueur menotté devant toi. Mettre dans le véhicule / Sortir du véhicule pour les joueurs menottés.
  • Véhicule : laver, réparer, mettre en fourrière (les véhicules privés atterrissent à la fourrière de off_garage) et identifier. X annule.
  • Gangwar : au point de gangwar, E ouvre le menu. Une faction met une zone en jeu, une autre accepte. Rejoindre avec E au point de gangwar.
  • Temps limité : démarre tout de suite, points par kill, respawn, on peut rejoindre jusqu'à la fin.
  • First Contact : temps pour rejoindre dans le lobby, puis une seule vie par joueur.

Pour les développeurs

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, 'Récompense')
exports.off_faction:RemoveBalance('vagos', 5000, 'Strafe')
  • Tous les exports sont côté serveur.
  • Event serveur off_faction:levelUp avec (faction, level) lors d'une montée de niveau.
  • Statebags : offGangwar (ID de la zone en gangwar), offCuffed ('hard', 'soft' ou false), offEscorted (ID serveur de celui qui escorte).

Problèmes fréquents

Au démarrage, le script signale les erreurs et les remarques dans la console du serveur.

ProblèmeSolution
« Un job ESX avec ce nom existe déjà »Choisis un autre nom, les jobs existants ne sont pas repris.
Personne ne voit le marker ou le PNJSeuls les membres voient les lieux. Place la position et enregistre, vérifie le rang minimum.
Le vestiaire n'habille pasDémarre skinchanger/esx_skin ou adapte les fonctions de vêtements.
F6 n'ouvre aucun menuActive une action sous Paramètres, démarre esxmenudefault.
Un véhicule manque dans le garageDans le créateur, sous Garages, attribue-le au garage. Les véhicules sans garage sont dans tous les garages. S'il a un prix, la direction doit d'abord acheter le véhicule dans le menu boss.
Le GPS n'affiche personneDans le créateur, sous Paramètres, active GPS. Il n'affiche que les membres en ligne.
U ne verrouille pasSeulement celui qui a sorti le véhicule, ou tout le monde avec vehicleKeys.shared = true. Vérifie la touche dans les raccourcis clavier de FiveM.
La candidature manque dans le menu bossElle apparaît seulement dans le menu boss de la faction à laquelle on a postulé, et seulement pour les rangs avec la permission Inviter des membres.
La page des logs est videMets le domaine sur true dans bossLogs. Les entrées ne sont créées qu'à partir de maintenant, les actions plus anciennes n'existent pas.
« Les Gangwars ne sont pas autorisés pour le moment »Heure en dehors de times. Pour toujours : times = {}.
En gangwar, le script ambulance réanimeDésactive l'écran de mort dans ClientGangwarDeath.

Pas encore acheté ?

Voir Faction dans la boutique