Groups and Tracks

Karma uses groups and tracks to manage ranking.

Groups

Karma is completely based off of groups, as that is what is manages for players. Any permission system that supports inheritance works for Karma. It requires no hooks into plugins, although it allows integration into some plugins for other features.

Groups in Karma are defined via an entry in the Karma configuration file, a permission added to groups in your permission manager, and players earning them in-game. Adding a group to Karma is trivial to accomplish. First, it is added as a section under a specified track in the file. Second, permission karma.%group% is added to that group via your permissions plugin. Third, players earn the rank in-game.

To Karma, all the group has is a name, a color, and a point value. When the player achieves this point value in the group's track, the plugin automatically promotes them in your permissions system with a command. When the player earns enough Karma for the next rank or is switched to another track, their rank will be changed again.

A player's group can be changed in multiple ways:

  • Earning the group with the equivalent Karma point value
  • Switching the player to a track where this group is the first one
  • Promoting the user with the administrative promote command
  • Adding or removing Karma from a player with commands
  • Being offline for long periods of time
  • Receiving or gifting points to other players

Tracks

Groups are placed in multiple (or just one) set of groups called a track. Players are promoted/demoted to different groups in this track with the aforementioned ways. The only way a player can be changed to a different track is with the administrative /karma track command.

Tracks can be used to separate different classes of players, such as server staff and regular people. The staff track can be used to allow your staff to gain ranks with Karma without worrying about players which you do not want as staff to achieve those ranks. Once a player has enough Karma for the base rank in a staff track, you could allow them to apply for a track switch.

The use of multiple tracks is optional, such as the use of multiple branches in git is optional. It is highly recommended for the various reasons listed above. If you do not wish to use multiple tracks, all you need to do is remove all tracks in the configuration except for one which has the default option set to true.


Comments

Posts Quoted:
Reply
Clear All Quotes