FIVEB guide
From hosting to your first connected player. Everything is on this page: search it with Ctrl+F.
Overview
FiveB is a website and admin panel for FiveM (GTA RP) servers, plus a FiveM resource that connects the game to the website.
fiveb folder in your game server. It sends players, stats and status, and runs admin commands.You received two zip files: fiveb-1.0.0.zip (the website) and fiveb-fivem-x.y.z.zip (the FiveM resource, versioned separately).
Requirements
| Item | Minimum |
|---|---|
| Hosting | Shared hosting or VPS with PHP 8.2+, MySQL 8 or MariaDB 10.6+, and HTTPS |
| PHP extensions | openssl, pdo_mysql, mbstring, curl, zip, intl, fileinfo, gd |
| Scheduled task | One cron job every minute (almost every host offers it) |
| Game server | ESX Legacy or QBCore for the full feature set. Any other server works in standalone mode (see frameworks) |
| Outgoing connections | Your hosting must reach brixa.be (license check). Discord, Tebex and vote sites are optional |
| License | Your FiveB key, emailed after your purchase |
Install
- Create a database
In your hosting panel, create an empty MySQL database and a user. Write down the database name, user and password. - Upload the files
Unzipfiveb-1.0.0.zipand upload the whole content of thefiveb-1.0.0folder to your hosting (FTP or file manager). Hidden files such as.htaccessmust be uploaded too. - Point your domain
Best: set the domain's document root to thepublic/folder.
Otherwise (shared hosting without that option): keep the root on the main folder; the provided.htaccessredirects topublic/. - Check permissions
storage/,bootstrap/cache/andpublic/uploads/must be writable (755 or 775). The installer tells you if one is not. - Open the installer
Go tohttps://your-domain.com/install.
The installer
The installer is a guided browser wizard in six screens: a requirements check, then five forms. It locks itself when finished.
| # | Screen | What to do |
|---|---|---|
| 1 | Requirements | Everything must be green. If a line is red, fix it in your hosting panel (PHP version, extension, folder permission) and reload. |
| 2 | Database | Host (usually localhost), port (3306), database name, user and password from the previous section. |
| 3 | Administrator account | Your name, email and a strong password. This is the owner account of the admin panel. |
| 4 | Game server | Server name and address (IP:port or the cfx.re join code). It feeds the live status on the home page. |
| 5 | Discord (optional) | Sign in with Discord, or click Skip this step. Everything can be set later in Settings → Discord. |
| 6 | License | Paste your FiveB key without spaces. It is checked with brixa.be. |
You then land in the admin panel at /admin. Example content (rules, FAQ, factions, lore) is installed in the language chosen during installation so the site is not empty: edit or delete it.
storage/ and bootstrap/cache/, then read storage/logs/laravel.log.Cron job REQUIRED
Without it, emails and Discord notifications are not sent, vote rewards and monthly awards are not given, the license is not re-checked, and no backup is made.
In your hosting panel (Cron jobs), add a task that runs every minute:
* * * * * php /path/to/fiveb/artisan schedule:run >> /dev/null 2>&1
- Replace
/path/to/fivebwith the folder that contains the fileartisan. - On some hosts
phpis calledphp8.2or/usr/local/bin/php. Your host's documentation tells you which. - Hosting panels with a "minute" dropdown: choose every minute (
*) for all fields.
What it runs: daily license check, daily database backup (the last 7 are kept in storage/app/backups), IP privacy clean-up, server status samples, monthly vote awards, and the queue for emails and Discord messages.
First settings
The admin sidebar has one entry per subject (Players, Server, Whitelist, Staff, Factions, Community, Votes, Shop, Content, Rules, Lore, Settings, Users & roles), grouped under a few headings that you can open and close. Inside a subject, its pages are tabs in a frame under the page title. Moving around never reloads the whole page. Menu names below read subject → tab.
| Menu | What for |
|---|---|
| Settings → Appearance | Name, logo, colour, home image, server address and Discord / social links, pages shown in the menu, security (2FA for staff) |
| Settings → Themes | Choose or install a theme and its options |
| Settings → Email | SMTP server. Without it, no email is sent (password reset, verification, notifications) |
| Settings → Discord | Discord login, bot, synced roles, notifications |
| Settings → Modules | Switch the Tebex store and the whitelist on or off |
| Rules and Lore | Your rules (an example is installed: edit it), sections, sanctions, revision history; server lore articles, sections and timeline |
| Factions → Factions | LSPD, EMS, gangs, businesses: recruitment and in-game job |
| Votes → Vote sites | top-serveurs.net and rewards (see Votes) |
| Shop → Tebex | Tebex store (see Tebex) |
| Users & roles → Roles | Permissions of your staff |
FiveM resource
The resource links your game server to the website: characters, playtime, live status, bans and whitelist at connection, and the commands of the admin panel.
- Create the server in the admin
Server → Servers → New server. Copy the API key: it is shown only once. - Install the resource
Unzipfiveb-fivem-x.y.z.zipinto your server'sresources/folder. You get a folder namedfiveb. - Edit
fiveb/config.lua
Set at least:Config.ApiUrl = 'https://your-domain.com/api/fivem' Config.ApiKey = 'the-key-you-copied' Config.Access.WebsiteUrl = 'https://your-domain.com' - Start it in
server.cfg
Afteres_extended/qb-core:ensure fiveb - Restart and check the console
You should see:[fiveb] framework: esx [fiveb] connected to https://your-domain.com/api/fivem (resource 1.6.1)
| Console message | Meaning |
|---|---|
API key refused (401) | Wrong API key in config.lua |
website unreachable | Wrong ApiUrl, or the game server has no Internet access |
Update available: x.y.z | A newer resource is provided with your FiveB version |
config.lua reference
| Option | Default | Role |
|---|---|---|
Config.ApiUrl | — | API address of your website, no trailing slash |
Config.ApiKey | CHANGE_ME | Server API key. Never share it |
Config.Framework | 'auto' | 'auto', 'esx' or 'qbcore' |
Config.Locale | 'en' | Language of in-game messages: 'fr' or 'en' |
Config.HeartbeatInterval | 60000 | Status and player count (ms) |
Config.StatsInterval | 300000 | Characters and stats (ms) |
Config.CommandInterval | 10000 | Admin commands from the website (ms) |
Config.BanSyncInterval | 300000 | Local copy of the ban list (ms) |
Config.Standalone | true | Sync players even without ESX / QBCore |
Config.LinkCommands | site, vote, discord, reglement | In-game commands that print your website links. Set one to false to disable it |
Config.Notifications | 'framework' | 'framework' (ESX / QBCore notification), 'chat', or false |
Config.Access.CheckBans | true | Refuse players banned from the website |
Config.Access.CheckWhitelist | true | Refuse players without an approved application (only if the whitelist is on) |
Config.Access.AllowWhenSiteDown | true | If the website does not answer: let players in (true) or refuse (false, whitelist only). Bans stay enforced from the local copy |
Config.Access.Timeout | 4000 | Maximum wait for the website (ms) |
Config.Debug | false | More details in the console (troubleshooting) |
Linking a player's account
On the website, a player opens Link FiveM and gets a code. In game they type /fivelink CODE. After that their characters, playtime and purchases appear in My space. /myid shows their identifiers.
ESX · QBCore · standalone
| Feature | ESX Legacy | QBCore | Standalone |
|---|---|---|---|
| Players, playtime, kills / deaths | ✔ | ✔ | ✔ (FiveM name = character) |
| Characters (name, job, money, inventory) | ✔ | ✔ | — |
| Bans, whitelist, kick, warn, messages, weather, time | ✔ | ✔ | ✔ |
| Spawn vehicle | ✔ | ✔ | ✔ (needs OneSync) |
| Give / remove money and items, set job | ✔ | ✔ | — (the admin warns, the command fails) |
| Faction job given in game, vote rewards (money / item) | ✔ | ✔ (gangs too) | — (points rewards still work) |
- ESX / QBCore: the resource detects them (
Config.Framework = 'auto'). Startfivebafteres_extendedorqb-core. ESX identifies characters byidentifier, QBCore bycitizenid. Force the framework only if detection fails. - Standalone (vMenu or any server without ESX / QBCore): leave
Config.Standalone = true. Each player appears with their FiveM name and playtime. Money, job and inventory stay empty (“—”). Money, item and job commands cannot work there: the admin warns you and the command shows as failed. - The framework detected by the resource is shown in Server → Servers.
[fiveb] lines appear; (2) the home page shows “Online” and the right player count within one minute; (3) a connected player appears in Players → Players without duplicates after reconnecting; (4) a 1-hour ban kicks the player and refuses the reconnection; (5) a warning or message shows in game and the command turns done in Server → Commands.Player actions & command history
In Players → Players each row has buttons. They queue a command that the resource runs in game within about 10 seconds.
| Button | Effect | Needs |
|---|---|---|
| View / Add note | Player sheet, staff note on the account | — |
| Warn | Message in the player's chat | Player online |
| Kick | Disconnect the player | Player online |
| Ban | Reason and duration (1 h to permanent); refuses reconnection, enforced even if the site is down | — |
| Economy → money, item, job | Give money, give or remove an item, change job and grade | ESX or QBCore, permission manage.economy |
| Economy → Spawn vehicle | Creates the vehicle next to the player (model name, e.g. adder) | OneSync, valid model |
Every command and its result (pending, done, failed with the reason) is listed in Server → Commands. A command for an offline player stays pending and runs when they connect (for rewards and jobs).
Discord
FiveB talks to Discord through its REST API and webhooks only: nothing runs permanently on your hosting. Everything is in Settings → Discord (administrators only). The cron job must be running.
1 · Player login (OAuth2)
- Open
discord.com/developers/applications→ New Application. - OAuth2 tab: copy the Client ID and Client Secret.
- In Redirects, add exactly the URL shown in the FiveB admin:
https://your-domain.com/auth/discord/callback. - Paste the Client ID and Secret in Player login.
2 · The bot
- Same application → Bot tab → Reset Token and copy it. It is stored encrypted and never shown again.
- No privileged intent is needed.
- OAuth2 → URL Generator: scope
bot, permissions Manage Roles, View Channels, Send Messages, Embed Links. Open the URL and invite the bot to your Discord server.
Once the bot token and the server ID are saved, the admin shows dropdowns of your roles and channels: no need to copy IDs by hand. To copy an ID, enable Developer mode in Discord (User settings → Advanced), then right-click the server, role or channel.
3 · Synced roles
| Rule | Discord role given |
|---|---|
| CMS role (admin, moderator…) | The one you chose for that role |
| Approved whitelist application | “Whitelisted players” role |
| Tebex purchase | The role linked to the product ID (removed on refund, chargeback or expiry) |
| Approved staff application | The role of the position |
| Active ban | All managed roles are removed |
FiveB never touches roles that are not listed in its settings. The player must have linked Discord (login with Discord) and be a member of your Discord server. Manual resync: Users & roles → Users → Resync Discord roles (one player) or Settings → Discord → Resync all roles.
4 · Notifications
Enable each event separately with its own channel: new and decided whitelist application, new and decided staff application, new support ticket, ban, store purchase, vote. With the bot, pick a channel per event. Without it, set a fallback webhook URL (Discord → channel settings → Integrations → Webhooks). Messages can never mention @everyone, @here, a role or a player. Use Send a test notification to check.
Tebex store
Cfx.re requires Tebex to sell anything linked to a FiveM server. FiveB integrates with it: products are created in Tebex and displayed on /store, payment is on Tebex's secure page, delivery in game is done by the official Tebex plugin, and FiveB receives signed webhooks to show each purchase in the player's history and in Shop → Tebex payments.
On the Tebex side
- Create a webstore on
creator.tebex.io(game: FiveM). - Create your packages and, for each, the command to run in game (Game server commands).
- Integrations → API Keys: copy the Public token (and the Private key if needed).
- Developers → Webhooks → Endpoints: add
https://your-domain.com/webhooks/tebex, tick at leastpayment.completed,payment.refunded,payment.declinedandpayment.dispute.*, then copy the Webhook secret.
On the FiveB side
- Shop → Tebex (administrators only).
- Paste the Public token and the Webhook secret (and the Private key if needed).
- Tick Store enabled and save.
- Back in Tebex, click Validate next to the webhook: FiveB answers automatically.
On the game server
In server.cfg, add the secret of your game server from the Tebex panel:
sv_tebexSecret "your-tebex-server-secret"
Secrets are stored encrypted and never sent back to the browser. A purchase is linked to the player through a signed cart value, or through the fivem: identifier of their linked account (/fivelink). Refunds and chargebacks are recorded and logged. The store can be switched off in Settings → Modules.
Optional: only accept webhooks from Tebex's IP addresses
Set TEBEX_WEBHOOK_CHECK_IP=true in .env. Only do it if FiveB sees the visitor's real IP (not behind a proxy or Cloudflare without trusted proxies). The signature remains the main protection.
Whitelist
Players apply on the website; staff review the application; the game server refuses anyone without an approved one.
- Turn the module on
Settings → Modules: tick Whitelist. - Open applications
Whitelist → Whitelist settings: tick Whitelist enabled (untick to close applications). Optional Discord webhook for new applications and decisions. - Write your questions
Whitelist → Whitelist questions: add, order and require the questions players answer. - Review applications
Whitelist → Whitelist applications: accept or refuse, with comments. Needs the permissionreview.whitelist. The player is notified (email, in game if online, Discord if enabled) and receives the Discord role. - Enforce it in game
KeepConfig.Access.CheckWhitelist = true. A player must have linked their account with/fivelinkto be recognised; otherwise they are told how to apply.
Config.Access.AllowWhenSiteDown decides whether players enter or are refused when the site does not answer.Votes
Players vote for your server on ranking sites and receive a reward. No reward is given without a check by the vote site's API, done by your web server (never by the player's browser), and a vote can only be rewarded once. Player page: /voter (enable the link in Settings → Appearance, Server pages).
top-serveurs.net
- On top-serveurs.net, open your server's management and copy the vote token and the vote page URL.
- Votes → Vote sites → New: provider top-serveurs.net, paste the URL (
{username}is replaced by the player's name where the site allows it) and the API token (stored encrypted). - Choose the verification method, the delay between two votes (120 minutes for top-serveurs) and the reward.
| Method | How it works |
|---|---|
| Username (recommended) | The player votes using exactly their website username (copy button on /voter). The vote is marked “claimed”: it can never be rewarded twice. |
| Steam | Uses the SteamID64 of the linked FiveM account. Vote also marked as claimed. |
| IP | Compares the player's IP. Less reliable (VPN, shared IP); FiveB's delay prevents double rewards. |
Other vote sites
Choose Other site and enter the verification URL given by that site, with the variables {token}, {ip}, {username}, {steam} (HTTPS only), plus the JSON key that is true when the player voted (for example success or data.voted).
Rewards and monthly ranking
| Reward | How it is given |
|---|---|
| Money | Bank or cash, through the FiveM resource (ESX / QBCore) |
| Item | Item name + quantity, through the FiveM resource (ESX / QBCore) |
| Points | Added to the website account (works on any server) |
- Money and items are given as soon as the player is connected; offline players receive them at their next login. The player must have linked their FiveM account.
/votershows the monthly top 10 (optionally on the home page). Votes → Vote settings also sets a reward for the top 3, given automatically on the 1st of the month at 00:15 (cron job required), never twice.
Pages & modules
Pages and content
| Menu | Use |
|---|---|
| Content → Pages | Custom pages shown at /page/your-slug. A page with the slug home customises the home page content |
| Content → Posts | News (/blog), with category and cover image |
| Content → FAQ | Questions on /faq |
| Content → Join page | The step-by-step “Join us” page |
| Community → Gallery | Screenshots (/galerie) |
| Rules & Lore | Interactive rules with search, sanctions and revision history; server lore |
| Community | Events with registrations, streamers, partners, factions, votes |
| Server → Systems | Presentation of your server's systems (/systemes) |
Which pages appear in the website menu is set in Settings → Appearance. The legal pages (privacy, cookies) are included; GDPR tools (cookie banner, data export and deletion, IP retention) are built in.
Modules
Optional features that you switch on or off in Settings → Modules:
A module that is off disappears from the public site and the admin menu; its data is kept.
Roles & permissions
Staff access is controlled by roles. Create and edit them in Users & roles → Roles, and assign them to a user in Users & roles → Users. The Administrator role has every permission.
| Permission | Allows |
|---|---|
access.admin | Open the admin panel |
moderate | Kick, ban, warn |
review.whitelist | Review whitelist applications |
review.staff | Review staff applications |
review.factions | Review faction applications (all factions) |
manage.factions | Create and edit factions |
manage.content | Rules, FAQ, team and content pages |
manage.community | Events, gallery, streamers |
manage.shop | Store management |
manage.economy | In-game money, items, jobs, vehicles |
manage.settings | Site settings |
view.logs | Server logs and command history |
A Moderator role is installed with access.admin, moderate and view.logs. Roles can also be shown on the public /equipe (team) page and linked to a Discord role.
manage.economy for a few trusted staff: it creates money and items in game.Two-factor authentication (2FA)
2FA adds a code from an authenticator app (Google Authenticator, Authy, 1Password…) to the password.
- Enable it on your account
Log in on the website, open My space → Security, scan the QR code and enter the 6-digit code. - Save your recovery codes
Keep them somewhere safe (password manager, paper). Each one works once if you lose your phone. - Require it for staff
Settings → Appearance → Security: Require two-factor authentication for the administration. Staff must then enable it before opening the admin panel. Enable it yourself first.
To disable it, the account's password is required. If an administrator loses both their device and their recovery codes, another administrator can no longer reset it from the panel: contact support (see Support).
Themes
FiveB separates the code from the look of the public site. The look is a theme. The built-in one is Los Santos Nights (default): it cannot be deleted.
- Install: Settings → Themes → upload a theme
.zip, then activate it. Themes live in thethemes/folder. - Customise: each theme exposes options (colours, switches, images) under Customise the active theme. Name, logo, accent colour and home image are in Settings → Appearance.
- Signed themes: a theme signed by a trusted publisher installs without a warning. An unsigned or unknown one asks you to confirm.
- Safe fallback: a theme only needs the pages it changes; anything missing comes from the default theme. If a theme breaks the site, run
php artisan fiveb:theme-resetto go back to the default theme. - Create your own: a theme is a folder with
theme.json,views/(Blade) andassets/. The developer guide isdocs/THEMES.mdin the zip.
License
- One license = one domain. The first domain that validates your key is bound to it.
localhostand.test/.localaddresses are always allowed for testing. - FiveB checks the license with brixa.be at install and once a day. Your key itself is never sent: only a signed hash.
- If brixa.be cannot be reached, the site keeps working for 72 hours (grace period). The admin panel always stays reachable so you can fix the license.
- Status, masked key and last check: Settings → License. Force recheck re-validates immediately; Change license key keeps your current license if the new key is refused.
- Moving to a new domain: contact support to reset the binding, then activate again.
The full terms are in LICENSE.md (English) and LICENCE.md (French).
Updates & backups
When a new version is published, the admin shows “update available” within 12 hours (read from brixa.be, no key sent).
- Back up
Your database (hosting panel or phpMyAdmin) and your files. FiveB also makes a daily database backup instorage/app/backups(the last 7). - Upload the new files over the old ones
Do not delete or overwrite:.env,storage/,public/uploads/and your own themes inthemes/. - Open the admin
FiveB applies the database updates by itself on the first request. - Update the FiveM resource
When a newfiveb-fivemzip is provided, replace thefivebfolder but keep yourconfig.lua(compare it with the new one for added options), then restart the resource. The admin flags an outdated resource in orange.
Release notes are in CHANGELOG.md.
FAQ & troubleshooting
Blank page or error 500
Make storage/ and bootstrap/cache/ writable, then read storage/logs/laravel.log (last lines). Check the PHP version is 8.2 or newer and that all required extensions are enabled.
/install not found (404)
The domain does not point to public/ and .htaccess is ignored. Ask your host to enable mod_rewrite and to allow .htaccess overrides, or point the document root to public/.
The installer or the site loses the session / “419 page expired”
Check that you use HTTPS consistently and that the domain in your browser matches the one set during install. Make sure storage/framework/sessions is writable.
License refused during install
Paste the key without spaces or line breaks. Your hosting must allow outgoing connections to brixa.be (some hosts block them). If the message says the license is already activated on another domain, ask support to reset it.
“License not valid” page on my site
Open /admin (always reachable) → Settings → License and read the reason shown, then Force recheck. If the cron job does not run for 72 hours the license check can lapse: fix the cron job first.
No emails or Discord notifications
The cron job is not running, or SMTP is not configured in Settings → Email. Send a test notification from the Discord page.
The FiveM server does not connect
Read the [fiveb] lines in the server console: API key refused (401) = wrong key; website unreachable = wrong ApiUrl or no Internet on the game server. Start fiveb after es_extended / qb-core. Set Config.Debug = true for more detail.
The site says “Server offline”
The status comes from the resource heartbeat (every 60 seconds) or from the cfx.re join code / IP:port in Settings → Appearance. If the resource is not connected the server shows offline even when it is up.
A player is not recognised in game (whitelist, rewards)
They have to link their account with /fivelink CODE (code shown on the website).
An admin command stays “pending” or turns “failed”
Open Server → Commands: the reason is shown. Typical causes: player offline (it waits), economy actions on a standalone server, unknown item or job name, vehicle model not found or OneSync disabled.
The money / item / job buttons are missing
The Economy menu needs the permission manage.economy. On a standalone server (no ESX / QBCore) money, item and job commands are accepted but cannot work: the admin shows a warning and Server → Commands shows the reason.
Discord roles do not change
The bot's role is lower than the role to give, or Manage Roles is missing. The player must be a member of your Discord server and have linked Discord. Errors are in storage/logs/laravel.log.
I forgot my admin password
Use Forgot password on the login page (needs SMTP). Without email, contact support.
I lost my 2FA device
Use one of your recovery codes. Without any, contact support (see below).
Can I use FiveB on several domains or servers?
One license covers one domain. Several game servers can connect to the same website (create one server entry per game server).
Is it GDPR compliant?
It includes a cookie banner, a privacy policy, data export and deletion, and automatic IP clean-up (default 90 days, FIVEB_IP_RETENTION_DAYS in .env). You remain responsible for your own legal texts.
Support
Ask for help through brixa.be. The more complete your request, the faster the answer (details in SUPPORT.md in the zip). Please send:
- Your license key and your FiveB version (bottom of the admin panel).
- A screenshot or the exact message you see.
- The last lines of
storage/logs/laravel.log(website problems) or the[fiveb]lines of the server console (game problems).