RoyaleWindRoyaleWind

Installation

Install RW Interact in place of your old target resource, and give your admins access.

Download it from your CFX portal

Extract the rw_interact folder into your server's resources directory. The interface ships already built — there's nothing to compile.

Install the dependencies

Libraryox_lib
FrameworkOptional. qbx_core, qb-core, ESX or ox_core are picked automatically for job, gang and citizen checks
InventoryOptional. ox_inventory answers item checks whenever it's running

The server needs OneSync and artifact 7290 or newer. There's no database: settings are kept by the server itself.

Replace your old target resource

RW Interact provides ox_target, qb-target, qtarget and bt-target, so anything that depends on them starts against RW Interact instead. Take the old one out of server.cfg and start RW Interact after ox_lib:

ensure ox_lib
# ensure ox_target   <- remove
ensure rw_interact

If the old resource is still running, RW Interact leaves its exports alone and prints a warning in the console. Only one of them can answer to exports.ox_target.

Give your admins access

/interactAdmin and /interactdemo are for admins. On start, RW Interact grants command.interactAdmin to every principal in Config.Admin.groups in config/config.lua — group.admin by default. Granting an ace needs this line in server.cfg:

add_ace resource.rw_interact command.add_ace allow

If you'd rather not let the resource add aces, grant the command yourself:

add_ace group.admin command.interactAdmin allow

The rw_interact.admin ace (Config.Admin.ace) also counts as admin, for groups you want to have it without the command ace. Every save from the panel is checked on the server again.

Start the server

On start the console prints the version, the framework it picked and how many settings are saved. If a newer version is out, it says so there too.

Go in game, run /interactdemo and look around: six stations appear in front of you, each with its own menu, plus options on every car and ped. Run it again to clear them.

Using it

InputIn the worldIn a menu
EOpens the menu on what you're looking atCloses it
Mouse wheel, arrow keysMoves the focus
Left click, EnterSelects. Hold options fill a ring while held
Right click, BackspaceBack out of a submenu
EscCloses

Players rebind E under Settings → Key Bindings → FiveM → Interact.

Configuration

Everything about how it looks and behaves is set in game with /interactAdmin and kept by the server. The config file only holds what the panel can't change:

FileOptionWhat it does
config/config.luaConfig.Admin.commandThe admin command's name. Default interactAdmin.
config/config.luaConfig.Admin.groupsPrincipals granted the admin command on start. Default { 'group.admin' }.
config/config.luaConfig.Admin.aceAn extra ace that counts as admin. Default rw_interact.admin.
config/config.luaConfig.Commands.settingsThe players' settings command. Default interactsettings, false removes it.
config/config.luaConfig.Commands.demoThe admin demo command. Default interactdemo, false removes it.
config/config.luaConfig.Bridge.framework'auto', 'qbx', 'qb', 'esx', 'ox' or 'standalone'. auto picks the highest-priority framework that's running.
config/config.luaConfig.LocaleWhich file in locales/ to use. Default en.

The values /interactAdmin starts from are in shared/defaults.lua.

The resource is escrowed. The files you can edit are config/*.lua, shared/defaults.lua, client/defaults.lua, client/bridge/framework/*.lua and locales/*.json — everything else is encrypted.

Languages

Every player-facing string — reasons like Requires item: %s, the door options, the empty menu — is in locales/. Copy en.json, translate it and set Config.Locale to its name. The locale files stay readable under escrow.

Other frameworks

Job, gang, citizen and item checks go through the adapters in client/bridge/framework/, which stay readable under escrow. Each one answers a handful of questions: the player's job and grade, their gang and grade, their character id, and whether they have an item. Edit the closest one for your framework, or use standalone — job, gang and citizen checks then never pass, and item checks still work through ox_inventory.

Updating

Replace the rw_interact folder and put your config/config.lua back. Everything set in /interactAdmin, and every player's own choices, carries over: they are saved with a version number and upgraded automatically when an update changes them.

On this page