ACE Permissions
How to use FiveM's ACE permissions system to grant players and groups access to script commands.
FiveM's ACE system is how scripts decide who can run which commands. TIMMYG Studios scripts use it for admin-only features — for example, opening the tELS editor requires the tlib.admin permission.
Permission checks happen server-side, so changes require either an ensure of the resource or a server restart to take effect.
Principals
A principal is an identifier that holds permissions (which FiveM calls ACEs). Principals are either:
- Player identifiers — a specific player's Discord ID, Steam ID, License, etc.
- Groups — made-up identifiers prefixed with
group.(e.g.,group.admin,group.moderator). Groups don't need to be declared — they exist the moment you reference one.
Groups are the recommended approach since they let you assign the same permissions to many players at once.
Adding a player to a group
title="server.cfg" add_principal identifier.discord:394446211341615104 group.adminThis adds the player with Discord ID 394446211341615104 to group.admin. Any ACEs granted to group.admin now apply to that player.
Nesting groups
title="server.cfg" add_principal group.admin group.moderatorgroup.admin now inherits every permission that group.moderator has.
Granting permissions
Use add_ace to grant a permission node, remove_ace to revoke it. Permissions can be attached to a group or directly to a player identifier.
title="server.cfg" # Grant the tlib.admin permission to the admin group add_ace group.admin "tlib.admin" allow # Add the player to the group — they inherit all of its permissions add_principal identifier.discord:394446211341615104 group.adminAny player added to group.admin now has tlib.admin. Add or remove players from the group without touching the ACE itself.
title="server.cfg" # Grant the permission directly to one player add_ace identifier.discord:394446211341615104 "tlib.admin" allowFaster for a single player, but doesn't scale. Prefer groups if more than one person will ever need the permission.
Removing permissions
title="server.cfg" # Revoke from the group remove_ace group.admin "tlib.admin" allow # Revoke from a specific player remove_ace identifier.discord:394446211341615104 "tlib.admin" allowThe allow at the end must match the original grant.
Example: giving someone tELS editor access
The tELS editor is gated behind tlib.admin. To grant a player access:
Open server.cfg
Locate server.cfg in your server's root directory.
Grant the ACE to a group
title="server.cfg" add_ace group.admin "tlib.admin" allowAdd the player to the group
title="server.cfg" add_principal identifier.discord:394446211341615104 group.adminReplace the Discord ID with your admin's identifier. You can also use identifier.steam:..., identifier.license:..., or identifier.fivem:....
Restart the server
ACE changes are loaded at startup. Restart the server or run refresh + restart on the resources that check the permission.
Verify
The admin runs /telsedit in-game. If the permission is correct, the editor opens. If it still says permission denied, check the identifier matches exactly — Discord IDs must be numeric with no prefix beyond identifier.discord:.
Related
tELS Installation
Where tlib.admin is used — gates the editor and server-wide defaults.
tLib
Provides the admin ACE and permission helpers used across TIMMYG Studios scripts.
FiveM Escrow FAQ
If commands fail for reasons other than permissions, start here.
Was this page helpful?
TIMMYG Studios