Skip to content

Configuration

L'ensemble des réglages se trouve dans les fichiers config/. Les valeurs globales servent de valeurs par défaut : chaque arène peut les surcharger individuellement depuis le constructeur d'arènes.

Framework & inventaire

Le framework se choisit avec une unique option. La ressource adapte ensuite automatiquement les notifications, l'inventaire, les devises et la détection des administrateurs.

lua
Config.Framework = "vorp"   -- "vorp" | "rsg" | "auto"
Config.Inventory = "auto"   -- "vorp" | "ox" | "rsg" | "auto"
  • "vorp" — serveur VORP (vorp_core).
  • "rsg" — serveur RSG, de style QB-RedM (rsg-core).
  • "auto" — détecte le framework démarré au lancement (RSG est prioritaire s'il est présent, sinon VORP).

Comportements adaptés selon le framework

AspectVORPRSG
Corevorp_corersg-core
Notificationstips natifs VORPox_lib
Inventaire par défautvorp_inventoryox_inventory
Détection administrateurgroupe adminpermission admin / god, ou ace
Devises disponiblescash, or, rolcash, bank, crypto

Inventaire découplé

Config.Inventory est volontairement séparé du framework, pour couvrir les serveurs mixtes (par exemple un serveur VORP utilisant ox_inventory).

ValeurEffet
"vorp"vorp_inventory
"ox"ox_inventory
"rsg"inventaire natif rsg-inventory
"auto"VORP → vorp_inventory, RSG → ox_inventory

Devises : RSG ne dispose pas d'or natif. Si une devise « or » est configurée, elle est traitée comme du cash sur RSG. Voir Paris pour le réglage currency.

Accès & carte

OptionEffet
Config.requiredJobMétiers autorisés à utiliser l'arène. Vide = tout le monde.
Config.blipsNameNom du blip affiché sur la carte.
Config.blipsArenaSprite du blip.
lua
Config.requiredJob = {}                       -- ex. { "police", "boxeur" }
Config.blipsName   = "Arene de combat"
Config.blipsArena  = "blip_ambient_bounty_hunter"

Récompenses

Multiplicateur de gain appliqué selon la difficulté de l'adversaire vaincu (Joueur vs PNJ).

lua
Config.Rewards = {
    weak    = 0.25,
    average = 0.5,
    strong  = 1,
    legend  = 2,
}

Combattants

lua
-- Roster solo (Joueur vs PNJ) : nom affiché, modèle, points de vie, niveau
Config.adversaires = {
    { label = "Le champion", modele = "CS_WELSHFIGHTER", health = 1500, level = "legend" },
    { label = "Le chétif",   modele = "cs_sunworshipper", health = 100,  level = "weak"   },
    -- ...
}

-- Combattants utilisés en PNJ vs PNJ et Royal Rumble
Config.adversairesPNJ = {
    { label = "Le champion", modele = "CS_WELSHFIGHTER" },
    -- ...
}
  • Config.adversaires — roster des adversaires solo. Le champ level (weak/average/strong/legend) détermine le comportement de combat.
  • Config.adversairesPNJ — combattants des modes PNJ vs PNJ et Royal Rumble.
  • Config.levelCombat — comportement de l'IA par niveau (précision, agressivité, portée, capacité). Ajuster un niveau rend les adversaires plus ou moins coriaces.

Paris

lua
Config.Betting = {
    enabled              = true,
    allowManagerBet      = false,  -- un gestionnaire peut parier sur sa propre arène (test)
    currency             = 0,      -- 0 = cash | 1 = or | 2 = rol  (or -> cash sur RSG)
    minBet               = 1,
    maxBet               = 500,    -- mise max par joueur et par combat
    rakePercent          = 5,      -- commission de la maison (%)
    refundOnCancel       = true,   -- rembourse si le combat est annulé
    refundIfNoWinnerBets = false,  -- aucun pari sur le vainqueur : false = la maison garde, true = remboursement
    interactionDistance  = 2.5,    -- distance d'interaction avec le bookmaker
    bookmakerPedModel    = "cs_jeb",
    allowedModes = {
        player     = false,  -- Joueur vs PNJ
        npc        = true,   -- PNJ vs PNJ
        rumble     = true,   -- Royal Rumble
        pvp        = true,   -- Duel
        tournament = true,   -- Match de tournoi
    },
}

Chaque arène peut surcharger enabled, minBet, maxBet, rakePercent et allowedModes.

Tablette de gestion

lua
Config.Tablet = {
    enabled          = true,
    openMode         = "item",          -- "command" | "item"
    command          = "boxing",        -- commande chat (si openMode == "command")
    openItem         = "boxing_tablet", -- item d'inventaire (si openMode == "item")
    requiredJob      = {},               -- métiers autorisés (vide = Config.requiredJob, puis tout le monde)
    locale           = "fr",             -- langue de la tablette : "fr" | "en"
    useClipboardAnim = true,             -- joue l'animation d'écriture pendant l'ouverture
}

Constructeur d'arènes

lua
Config.Builder = {
    enabled     = true,
    command     = "arena_builder",
    adminGroups = { "admin" },   -- groupes autorisés (VORP)
    entryPedModels = {           -- modèles proposés pour le PNJ d'accueil
        { label = "Chasseur de primes", modele = "blip_ambient_bounty_hunter" },
        { label = "Bagarreur",          modele = "mp_u_m_m_saloonbrawler_01"  },
        -- ...
    },
}

Sur VORP, l'accès est accordé aux groupes listés dans adminGroups. Sur RSG, il repose sur la permission ace josk_arena.builder (voir Installation).

Émotes

lua
Config.kitEmote       = { "KIT_EMOTE_TAUNT_BEST_SHOT_1", "KIT_EMOTE_ACTION_FLEX_1" }  -- mise en scène / preview
Config.kitEmoteFinish = { "KIT_EMOTE_REACTION_APPLAUSE_1", "KIT_EMOTE_TAUNT_WAR_CRY_1" } -- victoire

Ajouter ou retirer des entrées librement.

Discord (optionnel)

lua
Config.Discord = {
    enabled = true,
    webhook = "https://discord.com/api/webhooks/...",
}

Annonces des événements RP (paris, contrats, tournois, écuries). Mettre enabled = false désactive l'ensemble.

Réglages serveur

Définis dans server/server_config.lua (jamais transmis aux clients) :

lua
ServerConfig.Announce = {
    tournamentChampions = true,   -- annonce enrichie à la fin d'un tournoi
    bigPayoutThreshold  = 1000,   -- annonce si la cagnotte payée dépasse ce seuil (0 = désactivé)
}

ServerConfig.Contracts = {
    itemName    = "josk_item_contract", -- item « contrat papier »
    issueOnSign = true,                 -- remet l'item à la signature
}

Voir Installation pour les items à créer.