← All guides
// fivem security guide

How to Secure a QBCore or ESX Server

QBCore and ESX power most FiveM roleplay servers, which means their event names are public and heavily targeted. The good news: securing them comes down to a few repeatable habits.

Why frameworks get exploited

The core frameworks are reasonable. The risk is that everyone knows their default event names, and many community resources built on top of them trust the client or skip server-side checks. Most of the danger lives in the resources you add, not the framework itself.

1. Re-check permissions on the server

For every privileged action (admin commands, job actions, garages, money), confirm on the server that the player calling it actually has that permission. A client-side check, or trusting a job the client claims to have, is not protection.

2. Validate your callbacks

ESX and ox_lib/QBCore callbacks receive arguments from the client. Validate every one: correct type, sane range, and that the player is allowed to ask for it. Never build a query or a payout directly from raw callback input.

3. Never trust client-supplied values

Amounts, prices, item names, coordinates, target player IDs: if the client sent it, treat it as hostile. Decide these values from server-side data instead.

4. Rename and obfuscate default triggers

Renaming the standard ESX/QBCore trigger names makes them harder to find and target. Treat this as a layer on top of validation, not a replacement for it.

5. Keep the framework and resources updated

Run current server artifacts, update your framework and resources, and follow the developers for security fixes. A lot of public exploits target outdated versions of popular resources.

DistortionUK audits QBCore and ESX servers, finds the resources that can be exploited, and gives you the fix. The first scoping look is free.

Get your server tested on Discord
DistortionUK · Home · Guides · Privacy