Skip to content

Installation ​

Common requirements ​

Regardless of the framework, the following are required:

  • oxmysql — database access.
  • A working MySQL database.
  • vorp_menu — in-game menu engine (used on both frameworks).

The resource then adapts to the server's framework (VORP or RSG) via the Config.Framework option. Framework-specific dependencies are listed below.

Dependencies per framework ​

The resource detects or selects the framework, then automatically routes notifications, inventory, currencies and admin detection to the matching ecosystem.

VORP server ​

RoleResource
Corevorp_core
Menusvorp_menu
Inventory (default)vorp_inventory
Databaseoxmysql

Related configuration:

lua
Config.Framework = "vorp"
Config.Inventory = "auto"   -- resolves to vorp_inventory

Recommended order in server.cfg:

cfg
ensure oxmysql
ensure vorp_core
ensure vorp_menu
ensure vorp_inventory
ensure josk_arena

RSG server ​

RoleResource
Corersg-core
Notificationsox_lib
Inventory (default)ox_inventory
Menusvorp_menu
Databaseoxmysql

On an RSG server, ox_lib and ox_inventory are usually already present (shipped with rsg-core).

Related configuration:

lua
Config.Framework = "rsg"
Config.Inventory = "auto"   -- ox_inventory if running, otherwise rsg-inventory

"auto" picks ox_inventory when it is started, and falls back to the native rsg-inventory when it isn't — so an RSG server without ox_inventory works out of the box. Force either one with Config.Inventory = "ox" or "rsg".

Recommended order in server.cfg:

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

On RSG, access to the arena builder relies on an ace permission (groups are not exposed client-side). Example to add to server.cfg:

cfg
add_ace group.admin josk_arena.builder allow

Setup ​

  1. Place the josk_arena folder in the server's resources/ directory.
  2. Set Config.Framework (and, if needed, Config.Inventory) in config/arena_config.lua.
  3. Add the resource to server.cfg, after its dependencies (see the examples above).
  4. Start (or restart) the server.

Database: no manual import is needed. The required tables are set up automatically on first launch.

Inventory items (optional) ​

Depending on the configuration, two items may be used. They must exist in the framework's inventory (to be created on the database / inventory-configuration side):

  • boxing_tablet — opens the management tablet when item-opening is enabled (Config.Tablet.openMode = "item"). In command mode, this item is unused.
  • josk_item_contract — paper contract handed out when a stable contract is signed, when ServerConfig.Contracts.issueOnSign = true. If the item does not exist, signing continues without error and the contract stays purely digital.

VORP (vorp_inventory) ​

SQL query to run on the database:

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);

Then: restart vorp_inventory → restart josk_arena.

RSG / ox_inventory ​

Add to 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.',
},

Then: restart ox_inventory → restart josk_arena.

Drop the matching item icons (boxing_tablet.png, josk_item_contract.png) into the inventory's images folder (vorp_inventory/html/img/items/ for VORP, ox_inventory/web/images/ for ox).

Verification ​

  1. In-game, with an administrator account, open the builder via /arena_builder and create a first arena.
  2. Open the management tablet (/boxing or the boxing_tablet item, depending on the configuration).
  3. Check that the arena appears on the map and that the welcome NPC is correctly placed.

Troubleshooting ​

SymptomLead
The resource doesn't route to the right frameworkCheck Config.Framework (or use "auto") and the start order in server.cfg.
The tablet won't open from an itemMake sure the boxing_tablet item exists in the inventory and that Config.Tablet.openMode = "item".
/arena_builder has no effectOn VORP, the group must be in Config.Builder.adminGroups; on RSG, add the josk_arena.builder ace permission.
No notifications appear (RSG)Make sure ox_lib is started.
Paper contract not handed outThe josk_item_contract item must exist and issueOnSign must be true.
No Discord announcementsSet the webhook URL in ServerConfig.Discord.webhook (server/server_config.lua) and switch enabled = true.