About Permission Manager + Timed Permission
xPermissionManager
A modern, intuitive, and powerful permission management tool for Rust servers.
xPermissionManager provides a complete visual interface for managing user and group permissions directly ingame. No more console commands, guesswork, or digging through permission lists. Everything is organized, accessible, and easy to control through an straight forward UI.
Whether you're adjusting a single permission, overseeing full group structures, or assigning temporary access, xPermissionManager gives server owners a fast and efficient possibility to do so.
Plugin Preview (Video)
Full Permission Control
- Grant or revoke any permission from groups or individual players.
Timed Permission System
- Assign temporary permissions that automatically expire (e.g., 30m, 1h, 1d, 1w, custom durations).
Timed Group Memberships
- Add players to groups for a limited time - Perfect for kits, VIP, special events or whatever.
Comprehensive UI
- A clean and intuitive interface for browsing permissions, switching groups, managing users, and applying timed access.
User & Group Browsing
- View all available groups, check individual player permissions, and toggle them instantly.
Clear Feedback
- Every change is acknowledged with clear messages to help admins avoid mistakes.
Permission
xpermissionmanager.use // Allows a player to open and use the xPermissionManager UI
Chat Commands
/xpm /xpmuser <name or steamID> /xpmtimed /xpmgroups
/xpm [Opens the Permission Manager UI] PERMISSION OR ADMIN REQUIRED
/xpmuser <name or steamID> [Opens the UI for managing a specific player’s permissions/groups] PERMISSION OR ADMIN REQUIRED
/xpmtimed [Shows all active timed permissions for a player. Includes remaining duration and whether they came from a group]
/xpmgroups [Shows all active timed group memberships for a player]
Console Commands
/* =============== DURATION FORMAT EXAMPLES ============== */ 30m | 2h | 3d | 4w | 1y | 60 (plain number = minutes) /* ==================== GRANTS ==================== */ /* Gives a permission to a user */ xpm.grantuser <steamId> <permission> /* Gives a permission to a group */ xpm.grantgroup <groupName> <permission> /* Adds a user to a group */ xpm.addusergroup <steamId> <groupName> /* Adds a user to a timed group */ xpm.addusergrouptimed <steamId> <groupName> <duration> /* Gives a timed permission to a user */ xpm.grantusertimed <steamId> <permission> <duration> /* Gives a timed permission to a group */ xpm.grantgrouptimed <groupName> <permission> <duration> /* ==================== REVOKES ==================== */ /* Revokes a permission from a user */ xpm.revokeuser <steamId> <permission> /* Revokes a permission from a group */ xpm.revokegroup <groupName> <permission> /* Removes a user from a group */ xpm.revokeusergroup <steamId> <groupName> /* Removes a user from a timed group */ xpm.revokeusergrouptimed <steamId> <groupName> /* Deletes a timed permission entry from a user (does not revoke normal permission) */ xpm.revokeusertimed <steamId> <permission> /* Deletes a timed permission entry from a group (does not revoke normal permission) */ xpm.revokegrouptimed <groupName> <permission> /* ==================== TIMED INFO ==================== */ /* Gets remaining time for one user timed permission */ xpm.getusertimed <steamId> <permission> /* Lists all active timed permissions for a user */ xpm.listusertimed <steamId> /* Gets remaining time for one timed group permission */ xpm.getgrouptimed <groupName> <permission> /* Lists all active timed permissions for a group */ xpm.listgrouptimed <groupName>
</> API
/* Gives a permission to a user */ bool API_GiveUserPermission(string userId, string perm) /* Revokes a permission from a user (also removes any timed entry) */ bool API_RevokeUserPermission(string userId, string perm) /* Checks if a user effectively has a permission */ bool API_UserHasPermission(string userId, string perm) /* Gives a permission to a group */ bool API_GiveGroupPermission(string group, string perm) /* Revokes a permission from a group (also removes any timed entry) */ bool API_RevokeGroupPermission(string group, string perm) /* Checks if a group effectively has a permission */ bool API_GroupHasPermission(string group, string perm) /* Adds a user to a group */ bool API_AddUserToGroup(string userId, string group) /* Removes a user from a group */ bool API_RemoveUserFromGroup(string userId, string group) /* Adds a user to a group for a limited duration (minutes) */ bool API_AddUserToTimedGroup(string userId, string group, double minutes) /* Removes a user from a timed group */ API_RemoveUserTimedGroup(string userId, string group) /* Checks if a user is in a group */ bool API_IsUserInGroup(string userId, string group) /* Gives a timed permission to a user */ bool API_GiveUserTimedPermission(string userId, string perm, double minutes) /* Gives a timed permission to a group */ bool API_GiveGroupTimedPermission(string group, string perm, double minutes) /* Returns remaining minutes for a timed user permission */ double API_GetUserTimedPermissionRemaining(string userId, string perm) /* Returns remaining minutes for a timed group permission */ double API_GetGroupTimedPermissionRemaining(string group, string perm) /* Returns all timed permissions of a user */ Dictionary<string, double> API_GetAllUserTimedPermissions(string userId) /* Returns all timed permissions of a group */ Dictionary<string, double> API_GetAllGroupTimedPermissions(string group) /* Removes timed permissions for a user (Does NOT revoke normal permission!) */ bool API_RemoveUserTimedPermission(string userId, string perm) /* Removes timed permissions for a group (Does NOT revoke normal permission!) */ bool API_RemoveGroupTimedPermission(string group, string perm)

