How to Set Up ACE Permissions on Your FiveM Server
Configure FiveM's native ACE/ACL permission system — groups, principals, identifiers, and permission inheritance.
FiveM uses an ACE (Access Control Entry) system for permissions. You define groups (like admin, moderator), grant them permissions (aces), and assign players (principals) to groups using their identifiers.
Core Concepts
| Term | Description |
|---|---|
| ACE | A permission entry — grants or denies access to a command or resource |
| Principal | An identity — a player identifier or a group |
| Group | A named collection of permissions (e.g., group.admin) |
| Inheritance | Groups can inherit permissions from other groups |
Set Up Permissions
Create a permissions file
In the XGamingServer Panel, click Files in the sidebar. Create a file called permissions.cfg in the server root.
Define groups and permissions
# Moderator permissions
add_ace group.moderator command.kick allow
add_ace group.moderator command.ban allow
# Admin inherits moderator + gets all commands
add_principal group.admin group.moderator
add_ace group.admin command allow
add_ace group.admin txadmin.menu allow
# Deny quit command even for admins
add_ace group.admin command.quit denyAssign players to groups
Use their identifier (Steam, Discord, license, or FiveM):
# By Steam ID
add_principal identifier.steam:110000112345678 group.admin
# By Discord ID
add_principal identifier.discord:394446211341 group.moderator
# By FiveM license
add_principal identifier.license:abc123def456 group.moderatorRestart
Restart from Console. Permissions take effect on player connect.
How Inheritance Works
group.admin
└── inherits from group.moderator
└── inherits from builtin.everyoneWhen you run add_principal group.admin group.moderator, admins get all moderator permissions plus their own. builtin.everyone is the implicit parent of all principals.
Common Permission Examples
# Allow a group to use a specific resource
add_ace group.admin myresource allow
# Allow a resource to run specific commands
add_ace resource.es_extended command.add_ace allow
add_ace resource.es_extended command.add_principal allow
# Check permissions in a script
add_ace group.vip myscript.vipfeature allowResources check permissions with IsPlayerAceAllowed(source, 'myscript.vipfeature').
Identifier Types
| Format | Example |
|---|---|
identifier.steam: | identifier.steam:110000112345678 |
identifier.discord: | identifier.discord:394446211341 |
identifier.license: | identifier.license:abc123def456 |
identifier.fivem: | identifier.fivem:123456 |
Related Guides
How is this guide?
