Skip to main content
TRACK A·FRAMEWORK CONFIG·Verified June 2026 · Lua 5.4 · ox_lib 3.x
Learning with an AI assistant?
Copies this lesson plus 2026 ground rules (no lua54 'yes', Cfx.re Portal, correct callback signatures) as a ready-to-paste mentor prompt.
Module A2 · Operate and ship

Give a player permissions, four ways

Every framework has its own admin menu, its own command names, and its own docs page. Underneath all of them is one system: Cfx ACE (Access Control Entries, the built-in FiveM permission system). Learn ACE once and the four frameworks stop looking like four problems. They become one foundation with four thin layers on top. By the end you will hand any player admin on a plain server, then do the same the framework way on ESX, QBCore, and Qbox.

You'll build
A permissions.cfg that promotes a real player to admin on Cfx ACE, then the exact lines to layer ESX, QBCore, or Qbox on top of it.
Time
~24 minutes
You need
A local FiveM server you can edit server.cfg on and restart, and one player identifier (a license) you can read from the console.
You'll learn
What an ACE principal is -> how add_ace and add_principal work together -> how ESX groups, QBCore permissions, and Qbox groups all sit on the same ACE foundation -> why a job is not an admin rank
BEFORE YOU START

The mental model: principals and aces

Before any commands, learn two words. Every framework reuses them.

  • A principal is who. It is a player identifier like identifier.license:xxxx, or a group like group.admin. Principals can inherit from each other. Put a player into group.admin and they get everything group.admin can do.
  • An ace is what they can do. An Access Control Entry maps a principal to an object (almost always a command) with allow or deny.

So granting admin is always two moves. First you say what a group is allowed to do, with add_ace. Then you put a real player into that group, with add_principal. That pair is the whole system. ESX, QBCore, and Qbox each pick the group names and wire their menus to check them.

Cfx ACE — how a grant resolves
code
add_ace group.admin command allow   <- the GROUP can run all commands
        |
        v
add_principal identifier.license:9a3f... group.admin
        |                                      ^
        v                                      |
   this PLAYER ----- inherits ----- this GROUP
        |
        v
   player can now run admin commands

Keep reading the full lesson

Sign in to start, then unlock every step of this lesson and the full FiveM School with a membership.

Still ahead in this lesson
  • Build it: the ACE foundation
  • How it works
  • The three framework layers
  • If something went wrong
  • What you can do now
  • Try it yourself

The remainder of Giving players permissions (ESX, QBCore, Qbox) is available to FiveM School members.