Installation
Requirements
| Requirement | Details |
|---|---|
| Framework | QBCore, QBox Core, or ESX (auto-detected) |
| FiveM Server | Build 6116+ recommended |
| Game Build | 2189+ |
| Lua | 5.4 (enabled automatically via lua54 'yes') |
| Database | MySQL 8.0+ or MariaDB 10.6+ |
| Database Resource | oxmysql (recommended), mysql-async or ghmattimysql |
| Target (optional) | qb-target, ox_target (auto-detected) |
| Inventory | ox_inventory, qb-inventory, qs-inventory, tgiann-inventory, codem-inventory, ps-inventory, ESX native — all supported |
F5 Board automatically detects your framework, target system, and inventory at startup — no manual configuration needed. The detection priority is: QBox → ox_core → QBCore → ESX.
Step by Step
1. Download
Purchase F5 Board from the F5 Studio store. Claim the asset on Cfx.re Keymaster and download the latest version.
2. Folder Structure
Place the resource in your server's resources directory:
resources/
[f5]/
f5_board/
bridge/
client/
config/
items/
locales/
nui/
server/
fxmanifest.lua
shared.lua
3. Server Config
Add the resource to your server.cfg — make sure it starts after your framework, database resource, and (if used) your target/inventory resource:
- QBCore
- QBox Core
- ESX
ensure oxmysql
ensure qb-core
ensure qb-target
ensure qb-inventory
ensure f5_board
ensure oxmysql
ensure ox_lib
ensure ox_inventory
ensure ox_target
ensure qbx_core
ensure f5_board
ensure oxmysql
ensure es_extended
ensure ox_target # or qb-target
ensure ox_inventory # optional, ESX native inventory works too
ensure f5_board
F5 Board must start after your framework, MySQL resource, target system and inventory. Incorrect boot order is the most common installation issue.
4. Database
No manual SQL import is required. On first start the script auto-creates all required tables and indexes:
| Table | Purpose |
|---|---|
f5_board_placements | Board positions, models, owners, blip color, name |
f5_board_notes | Sticky notes (text + images), positions, styling |
f5_board_strings | Connecting strings between notes |
f5_board_strokes | Free-hand drawings |
f5_board_editors | Per-board editor whitelist |
If you later update the script and a column is added, it is applied as an ALTER TABLE migration on startup — no manual SQL needed.
5. Register Items
The script ships with nine board items (cork, chalk, whiteboard, planning boards, etc.). Open the file matching your framework and follow the inline instructions:
| Framework | File |
|---|---|
| QBCore | f5_board/items/QbCore.txt |
| QBox Core | f5_board/items/QbxCore.txt |
| ESX | f5_board/items/esx.sql |
Then copy item icons:
| Inventory | Icons folder |
|---|---|
qb-inventory | qb-inventory/html/images/ |
ox_inventory | ox_inventory/web/images/ |
qs-inventory | qs-inventory/html/images/ |
tgiann-inventory | tgiann-inventory/html/items/ |
codem-inventory | codem-inventory/html/itemimages/ |
ps-inventory | ps-inventory/html/images/ |
Icons are in f5_board/items/icons/.
See Items for the full procedure and per-framework templates.
6. Configure Locale
Open config/config.lua and set your language code:
Config.Locale = 'en' -- pl, en, de, es, fr, nl, cs, tr, ar, th, zh, pt
The script ships with 12 languages. See Localization.
7. Configure Permissions
By default the /board catalog and /badmin panel both require the admin permission. Adjust the ACE in your server.cfg:
add_ace group.admin admin allow
The recognized admin checks per framework:
| Framework | Default check |
|---|---|
| QBCore | QBCore.Functions.HasPermission(src, 'admin') |
| QBox | IsPlayerAceAllowed(src, 'admin') |
| ESX | xPlayer.getGroup() ∈ { 'admin', 'superadmin' } |
| ox_core | IsPlayerAceAllowed(src, 'admin') |
See Permissions for full configuration including ACE-only mode, fallback chains, and custom logical permission names.
8. Verify
Restart your server. With Config.Debug.enabled = true and Config.Debug.categories.INIT = true you should see the readiness line:
[SERVER][INIT] server ready: loaded 0 boards / 0 editor grants from DB (collision=false)
If you also enable Config.Bridge.debug = true in framework_config.lua, the bridge prints what it detected:
[f5_board] bridge: framework=qb
[f5_board] bridge: inventory=qb
In-game, run /badmin (as admin) to verify the admin panel opens, or /board to test the catalog.
Next Steps
- Configuration — every option in every config file
- Items — register items in QB/QBX/ESX inventories
- Features — placer, editor, preview, blips, public edit
- Commands —
/board,/badmin, access modes, item gating - Webhooks — Discord audit logging with embedded screenshots
- Permissions — ACE vs framework-native, fallback rules
- Localization — supported languages, adding your own
- Troubleshooting — fixes for the most common issues