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.
Lines starting with # in server.cfg are comments and are ignored by the parser.
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.
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:.
