Reward your players for play time with new permissions/usergroups

Supported Games

Have you ever wanted to give your loyal players additional permissions/usergroups? Then Loyalty is for you! Loyalty allows administrators to reward their players with new permissions and usergroups according to their playtime.

Maybe your server gets full fairly often and you allow players to donate to skip the queue. Sadly, not everyone has the money to spare to skip the queue. This leaves out some of your most loyal players that's been there from the start. That's when Loyalty comes in handy! Just make a reward for example 24 hours of gametime gives players the permission to skip queue.

You get to see familiar faces when the server is full and your Loyal players get to actually keep playing on your server. It's a win-win situation!

Loyalty Points

Loyalty points is the way Loyalty measures how long a player has spent on the server. Every minute(by default) the plugin checks which players are online. Everyone that is online recieves 1 loyalty point. When a player reaches a loyalty point requirement for a given permission/usergroup this player is granted that permission/usergroup. Simple stuff!

Note: Whenever a player is assigned a new usergroup by time or via /loyalty set the player will be removed from their previous group. It also will not impact any usergroups assigned via the console as long as they are not a reward in Loyalty too.


  • loyalty.loyalty - Allows the use of /loyalty
  • loyalty.add - /loyalty add
  • loyalty.remove - /loyalty remove
  • loyalty.set - /loyalty set
  • loyalty.reset - /loyalty reset
  • loyalty.top - /loyalty top
  • loyalty.lookup - /loyalty lookup
  • loyalty.help - /loyalty help
  • loyalty.addgroup - /loyalty addg
  • loyalty.removegroup - /loyalty removeg
  • loyalty.rewards - /loyalty rewards
  • loyalty.rewardsg - /loyalty rewardsg


This plugin provides universal chat and console commands. When using a command in the chat, prefix it with a forward slash / or the symbol you have configured in umod.config.json.

All commands support partial names. So /loyalty set b 1000 will find the first player with a name starting with b for example.

Also when adding a permission or usergroup as a reward, simply put a - in front of the permission/usergroup to have it removed at the set loyalty.

  • /loyalty - return your current loyalty points
  • /loyalty add {int: loyaltyrequirement} {string: (-)permission} {string: alias}- Add a new loyalty reward
  • /loyalty remove {string: permission} - Remove an existing loyalty reward
  • /loyalty set {string: playername} {int: newLoyalty} - Set a users loyalty points to a specific value
  • /loyalty reset {string: playername} - Set a users loyalty points to 0
  • /loyalty top - Display a list of the top 10 most loyal players on the server
  • /loyalty lookup {string: playername} - Lookup the loyalty points of a player
  • /loyalty help - Shows basic information about the plugin
  • /loyalty addg {int: loyaltyrequirement} {string: (-)groupname} - Adds a usergroup as a loyalty reward
  • /loyalty removeg {string: groupname} - Removes a usergroup loyalty reward
  • /loyalty rewards - Lists the senders next 5 upcoming permission rewards
  • /loyalty rewardsg - Lists the sender next 5 upcoming usergroup rewards


"serverIconID": "76561198314979344" - Change "76561198314979344" to the steam id of a steam user whose profile picture you want the plugin to use when sending messages. By default it displays one of my accounts using Loyalty's icon.
"serverName": "Default Server" - Change "DefaultServer" to whatever server name you want displayed when the server sends messages.
"allowAdmin": true - Set this to true to allow admins loyalty to be recorded.
"colorError": "red" - Sets the color of your error messages.
"colorHighlight": "yellow" - Sets the color of highlighted words and sentences
"colorText": "#FFFFFF" - Sets the color of pretty much all messages apart from errors/highlights
"debug": false - Puts information to the console
"rate": 60.0 - The rate of which players are given loyalty points in seconds



Q: I want feature X, why isn't it in yet?
A: Because you haven't suggested it or I'm working on it. If it's something I approve of it will be in soon(tm).

Q: Loyalty says I haven't earned any loyalty yet, why?
A: That's because you probably haven't! Loyalty points are earned once every 1 minute by default(adjust "rate" in the config file for faster/slower gain).

Q: Loyalty says it cannot find a player by my name, why?
A: That's because: You connected to the server before the plugin was installed. Do fix this either reconnect, because Loyalty adds players to the list when they initialize or wait until the next tick that happens once every 1 minute by default. (Can be adjusted in the config file under "rate").


  • Aeonian of Pork & Rocks for suggesting the plugin, play testing and the amazing icon!
  • Bamabo, for the original version of this plugin
    31 watchers