DirkScripts
Getting Started
#🚀 Quick Start
Ensure dirk_lib is started after your framework, inventory, and targeting resources. There is no .cfg file to edit — dirk_lib auto-detects supported resources and exposes everything else through its in-game configurator.
properties# Example start order ensure qb-core ensure ox_inventory ensure ox_target ensure dirk_lib
That's it. No convars, no setup file — start the server and configure live in-game.
#⚙️ Configuring dirk_lib In-Game
dirk_lib is configured entirely through its in-game Live Script Configurator. Settings save to the dirk_scriptConfig database table and apply live — no resource restart, no SQL edits.
✅ Opening the configurator
You have two options, both registered by dirk_lib itself:
/dirk_lib— opens the configurator straight to the dirk_lib config./dirk_config— opens the chooser listing every dirk-powered script on the server (dirk_lib, dirk_fishing, etc.) and lets you pick which one to edit.
By default, only players with the admin ACE permission can access either command. The exact permission is controlled by a convar (see below).
#🔐 Access Control
Two layers control who can edit which scriptConfigs:
- Master ACE permission (convar): the floor — anyone matching this permission can edit any registered scriptConfig (including
dirk_libitself). - Per-resource access (Access tab): purely additive grants set on each resource's own Access tab. Each script — and
dirk_libitself — controls who, beyond the master admins, can open and edit its live config, granted by job / gang / ACE group or by individual player. (This replaces the old central override list.)
properties# server.cfg — defaults to "group.admin,admin,command" if unset setr dirk_lib_master_group "group.admin,admin,command"
The convar accepts a comma-separated list of values. Each is passed to IsPlayerAceAllowed in turn — if any one of them allows the player, they're treated as master. The default covers the three permissions most server.cfgs grant to admins, so it works out of the box on stock txAdmin / QB / QBX / ESX setups without configuration.
The convar is the escape hatch: even if a per-resource override save goes wrong, the master still works because it's read from server.cfg before scriptConfig loads. Editing the master from inside the panel would defeat that, so it's intentionally convar-only.
Common values you can put in the list:
group.admin— principal membership (works when the cfg hasadd_ace group.admin group.admin allow).admin— bare permission (works when the cfg hasadd_ace group.admin admin allow).command— built-in admin permission (default in most txAdmin and framework cfgs).mod,command.dirk_config, etc. — any custom permission your cfg grants.
If your server only allows mods (not admins) to edit, replace the default with your own list:
propertiessetr dirk_lib_master_group "group.mod"
For per-resource grants beyond the master, see the Access tab inside /dirk_lib (and each script's own Access tab).
#🧩 Basic
- Server Name — string shown across NUIs that surface a server name.
- Logo — URL or
nui://path to your server logo, displayed in dirk_lib menus. - Language — locale code (e.g.
en,es,fr,de,pt,nl). This is the global language for every dirk_lib-consuming resource — switching it here changes the locale used bydirk_fishing, your custom scripts, and anything else that callslib.locale(). - Currency — symbol prefixed to money values rendered by dirk_lib UIs.
- Debug — opt-in toggle. The SQL / hitch diagnostics layer only runs when this is on (off by default, zero-overhead otherwise).
ℹ️ Each resource ships its own locales/*.json files. Switching the language here picks the matching file from every consumer resource simultaneously — no per-resource configuration needed. A label with no translation in the active language falls back to English instead of showing its raw key.
#🎨 Theme
Global UI theme used by every dirk_lib-powered NUI. Pick a Mantine palette key (e.g. blue, grape, teal) or use the built-in dirk palette and customise the 10-stop colour palette directly. The shade index (0 lightest → 9 darkest) controls which colour is picked as the primary accent for buttons, borders and highlights. Individual scripts can override this per-resource on their own Theme tab.
#📝 Logger
Pick where dirk scripts that log send their entries. As well as a Discord channel webhook, you can route logs through an external logging service — Loki / Grafana, Datadog or Fivemanage — and any dirk script that logs (fishing included) then flows through it. Discord and an external service can run side by side.
Service credentials are server-only — they never leave the server and are never sent to clients.
#🔌 Bridging
This is where dirk_lib decides which third-party resources to talk to. Every resource bridge defaults to auto so you don't normally need to touch anything — install the resources and dirk_lib will detect them.
The Item Image Path override lives here too, next to the inventory picker — it defaults to auto (resolved from your detected inventory), or set a full nui:// / CDN URL to override.
| Bridge | Used For |
|---|---|
| Framework | Player data, identifiers, jobs/groups |
| Inventory | Item lookups, give/remove, image paths |
| Target | Entity interactions |
| Interact | Prompt-based interactions (alternative to target) |
| Time / Weather | Sky and clock sync |
| Keys | Vehicle keys / lockpicking |
| Fuel | Vehicle fuel |
| Phone | Messages, mail, etc. |
| Garage | Vehicle storage |
| Clothing | Character appearance |
| Ambulance | Death + revive |
| Prison | Jail system |
| Dispatch | Police alerts |
| Doorlock | Door systems |
| Skills | Progression systems |
| Housing | Player housing |
UI Providers
dirk_lib ships its own UI components but defaults every UI provider to ox_lib — servers running ox_lib get its native UIs out of the box without configuration. Switch any of these to dirk_lib to use the built-in NUI instead.
| Provider | Controls |
|---|---|
| notify | lib.notify toast notifications |
| progress | lib.progressBar / lib.progressCircle |
| showTextUI | lib.showTextUI / hideTextUI |
| contextMenu | lib.registerContext / showContext |
| alertDialog | lib.alertDialog confirm modals |
| inputDialog | lib.inputDialog form prompts |
#👥 Groups
Defaults for the dirk_groups system: max members, max invite distance, invite-valid time, log-off kick time.
#🛡️ Access
Per-resource access control for /dirk_config. Every script — and dirk_lib itself — has its own Access tab controlling who, beyond the master admins, can open and edit its live config. The master ACE permission (set via the dirk_lib_master_group convar) is shown read-only at the top — that's the floor, and master admins can never be locked out.
Below it, grant access for that resource by:
- Job / Gang — players holding a configured framework job or gang.
- ACE Groups — extra permission strings checked via
IsPlayerAceAllowed. Anything FiveM ACE recognises works (group.mod,dirkscripts.command.druglabs, custom permissions). Press Enter to add a tag. - Player Identifiers — specific players granted access regardless of group membership. The dropdown shows currently online players; you can also paste a known identifier directly (
license:,steam:,discord:, etc.) for offline grants.
Grants are additive — they only add edit access for that resource. They cannot remove access from the master, and dirk_lib itself stays master-only by design (so a non-master can never grant themselves master-tier access via the panel). This per-resource model replaces the old central override list.
#🔧 Advanced
Manual JSON edit, history / audit log, reset-to-defaults — same controls as every other dirk configurator.
#Developers
To use dirk_lib in your own resource, include the shared script in your fxmanifest.lua:
luashared_scripts { '@dirk_lib/init.lua' }
You can pre-load specific modules (modules also dynamically import on use):
luadirk_libs { 'math', 'objects' }
#Supported Resources
dirk_lib supports two kinds of integration:
- Bridge systems — resources with dedicated bridge implementations under
dirk_lib/bridge/* - Autodetected integrations — resources detected from
src/autodetect.lua. Both can be auto-selected or forced via the Bridging section in the configurator.
#Bridge Systems
| System | Supported Resources |
|---|---|
| Framework | es_extended, pork_core, qb-core, qbx_core |
| Inventory | codem-inventory, dirk_inventory, ox_inventory, qb-inventory, qs-inventory, tgiann_inventory |
| Target | ox_target, qb-target, qtarget |
| Interact | interact, sleepless_interact |
| Time / Weather | av_weather, cd_easytime, qb-weathersync, Renewed-Weathersync, vSync |
| Keys | cd_garage, MrNewbVehicleKeys, okokGarage, qb-vehiclekeys, qbx_vehiclekeys, qs-vehiclekeys, Renewed-Vehiclekeys, t1ger_keys, vehicles_keys, wasabi_carlock |
| Fuel | cdn-fuel, LegacyFuel, okokGasStation, ox_fuel, ps-fuel, Renewed-Fuel, ti_fuel, x-fuel |
| Clothing / Appearance | dirk_charCreator, esx_skin, illenium-appearance, qb-clothing, rcore_clothing, tgiann-clothing |
#Other Autodetected Integrations
| System | Autodetect Targets |
|---|---|
| Framework | es_extended, qbx_core, qb-core, nd-framework, pork_core |
| Inventory | dirk_inventory, ox_inventory, qb-inventory, qs-inventory, codem-inventory, tgiann_inventory, mf-inventory, core_inventory |
| Target | ox_target, qb-target, q-target, bt-target |
| Interact | redm-uiprompt, sleepless_interact, interact |
| Time / Weather | av_weather, cd_easytime, qb-weathersync, Renewed-Weathersync, vSync, wasabi_wheather |
| Keys | cd_garage, MrNewbVehicleKeys, t1ger_keys, okokGarage, qb-vehiclekeys, qbx_vehiclekeys, qs-vehiclekeys, Renewed-Vehiclekeys, vehicles_keys, wasabi_carlock, ludaro-keys |
| Fuel | cdn-fuel, LegacyFuel, ox_fuel, ps-fuel, Renewed-Fuel, ti_fuel, x-fuel, wasabi_fuel, okokGasStation |
| Phone | lb-phone, qb-phone, gksphone, high-phone, npwd |
| Garage | qb-garages, wasabi_garage, renewed-garage |
| Clothing / Appearance | esx_skin, qb-clothing, rcore_clothing, illenium-appearance, fivem-appearance, dirk_charCreator, tgiann_clothing |
| Ambulance | qb-ambulancejob, wasabi_ambulance, core_ambulance |
| Prison | qb-prison, rcore_prison, wasabi_jail |
| Dispatch | bub_mdt, cd_dispatch, linden_outlawalert, qs_dispatch, ps-dispatch, tk_dispatch |
| Skills | sd_skills, evolent_skills, core_skills, B1-skillz, skill_system_v1.5, skillsystem_v3, boii_skills, skillsystem_v2, ot_skill_system |
| Housing | qs-housing, bcs_housing |
⚠️ This list reflects the current dirk_lib source. If you're forcing an override, use a resource name that matches the current source for your version.
