Skip to content

Installation ​

Prérequis communs ​

Quel que soit le framework, les éléments suivants sont nécessaires :

  • oxmysql — accès à la base de données.
  • Une base de données MySQL fonctionnelle.
  • vorp_menu — moteur des menus en jeu (utilisé sur les deux frameworks).

La ressource s'adapte ensuite au framework du serveur (VORP ou RSG) via l'option Config.Framework. Les dépendances spécifiques sont listées ci-dessous.

Dépendances par framework ​

La ressource détecte ou sélectionne le framework, puis route automatiquement les notifications, l'inventaire, les devises et la détection des administrateurs vers l'écosystème correspondant.

Serveur VORP ​

RôleRessource
Corevorp_core
Menusvorp_menu
Inventaire (par défaut)vorp_inventory
Base de donnéesoxmysql

Configuration associée :

lua
Config.Framework = "vorp"
Config.Inventory = "auto"   -- résout vers vorp_inventory

Ordre conseillé dans server.cfg :

cfg
ensure oxmysql
ensure vorp_core
ensure vorp_menu
ensure vorp_inventory
ensure josk_arena

Serveur RSG ​

RôleRessource
Corersg-core
Notificationsox_lib
Inventaire (par défaut)ox_inventory
Menusvorp_menu
Base de donnéesoxmysql

Sur un serveur RSG, ox_lib et ox_inventory sont généralement déjà présents (fournis avec rsg-core).

Configuration associée :

lua
Config.Framework = "rsg"
Config.Inventory = "auto"   -- ox_inventory s'il tourne, sinon rsg-inventory

"auto" choisit ox_inventory s'il est démarré, et retombe sur le rsg-inventory natif sinon — un serveur RSG sans ox_inventory fonctionne donc directement. Pour forcer l'un ou l'autre : Config.Inventory = "ox" ou "rsg".

Ordre conseillé dans server.cfg :

cfg
ensure oxmysql
ensure ox_lib
ensure rsg-core
ensure ox_inventory
ensure vorp_menu
ensure josk_arena

Sur RSG, l'accès au constructeur d'arènes repose sur une permission ace (les groupes ne sont pas exposés côté client). Exemple à ajouter dans server.cfg :

cfg
add_ace group.admin josk_arena.builder allow

Mise en place ​

  1. Placer le dossier josk_arena dans le répertoire resources/ du serveur.
  2. Renseigner Config.Framework (et, si besoin, Config.Inventory) dans config/arena_config.lua.
  3. Ajouter la ressource au server.cfg, après ses dépendances (voir les exemples ci-dessus).
  4. Démarrer (ou redémarrer) le serveur.

Base de données : aucune importation manuelle n'est nécessaire. Les tables requises sont mises en place automatiquement au premier démarrage.

Items d'inventaire (optionnels) ​

Selon la configuration, deux items peuvent être utilisés. Ils doivent exister dans l'inventaire du framework (à créer côté base de données / configuration de l'inventaire) :

  • boxing_tablet — ouvre la tablette de gestion lorsque l'ouverture par item est activée (Config.Tablet.openMode = "item"). En mode commande, cet item est inutile.
  • josk_item_contract — contrat papier remis à la signature d'un contrat d'écurie, lorsque ServerConfig.Contracts.issueOnSign = true. Si l'item n'existe pas, la signature se poursuit sans erreur et le contrat reste purement numérique.

VORP (vorp_inventory) ​

Requête SQL à exécuter dans la base de données :

sql
INSERT INTO items
  (`item`, `label`, `limit`, `can_remove`, `type`, `usable`, `groupId`, `metadata`, `desc`, `weight`)
VALUES
  ('boxing_tablet',
   'Boxing manager tablet',
   5000, 1, 'item_standard', 1, 1, '{}',
   'Arena manager tablet. Opens the management interface for fights, bets, contracts and tournaments.',
   0.25),

  ('josk_item_contract',
   'Engagement contract',
   5000, 1, 'item_standard', 1, 1, '{}',
   'Engagement deed signed between a boxer and a stable. Read it to check clauses and duration.',
   0.25);

Puis : restart vorp_inventory → restart josk_arena.

RSG / ox_inventory ​

Ajouter dans ox_inventory/data/items.lua :

lua
['boxing_tablet'] = {
    label  = 'Boxing manager tablet',
    weight = 200,
    stack  = false,
    close  = true,
    description = 'Arena manager tablet. Opens the management interface for fights, bets, contracts and tournaments.',
},
['josk_item_contract'] = {
    label  = 'Engagement contract',
    weight = 50,
    stack  = false,   -- combined with the `serial` metadata, ensures each contract gets its own slot
    close  = true,
    description = 'Engagement deed signed between a boxer and a stable. Read it to check clauses and duration.',
},

Puis : restart ox_inventory → restart josk_arena.

Placer aussi les images correspondantes (boxing_tablet.png, josk_item_contract.png) dans le dossier images de l'inventaire utilisé (vorp_inventory/html/img/items/ pour VORP, ox_inventory/web/images/ pour ox).

Vérification ​

  1. En jeu, avec un compte administrateur, ouvrir le constructeur via /arena_builder et créer une première arène.
  2. Ouvrir la tablette de gestion (/boxing ou l'item boxing_tablet, selon la configuration).
  3. Vérifier que l'arène apparaît sur la carte et que le PNJ d'accueil est correctement placé.

Dépannage ​

SymptômePiste
La ressource ne route pas vers le bon frameworkVérifier Config.Framework (ou utiliser "auto") et l'ordre de démarrage dans server.cfg.
La tablette ne s'ouvre pas par itemVérifier que l'item boxing_tablet existe dans l'inventaire et que Config.Tablet.openMode = "item".
/arena_builder reste sans effetSur VORP, le groupe doit figurer dans Config.Builder.adminGroups ; sur RSG, ajouter la permission ace josk_arena.builder.
Aucune notification ne s'affiche (RSG)Vérifier que ox_lib est démarré.
Le contrat papier n'est pas remisL'item josk_item_contract doit exister et issueOnSign être à true.
Aucune annonce DiscordRenseigner l'URL du webhook dans ServerConfig.Discord.webhook (server/server_config.lua) et passer enabled = true.