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. Learn ACE once and the four frameworks stop looking like four problems and start looking like one foundation with four thin layers on top. By the end you will be able to hand any player admin on a vanilla server, then do the same the framework way on ESX, QBCore, and Qbox without guessing.
The mental model: principals and aces
Before any commands, lock in two words, because every framework reuses them.
- A principal is who. A player identifier like
identifier.license:xxxx, or a group likegroup.admin. Principals can inherit from each other: put a player intogroup.adminand they get everythinggroup.admincan do. - An ace is what they can do. An Access Control Entry maps a principal to an object (almost always a command) with
allowordeny.
So granting admin is always two moves. First you say what a group is allowed to do (add_ace). Then you put a real player into that group (add_principal). That pair is the whole system. ESX, QBCore, and Qbox each just pick the group names and wire their menus to check them.
Keep reading the full lesson
Sign in to start, then unlock every step of this lesson and the full FiveM School with a membership.
- 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.