Weight & Priority

Weight is a numerical value assigned to groups that determines their priority. Higher weight means higher priority for display purposes and conflict resolution.

What is Weight?

Every group has a weight value (a number). This weight is used to:

  • Determine prefix/suffix display - Highest weight group's prefix is shown
  • Resolve permission conflicts - When multiple groups have conflicting permissions
  • Sort groups - In lists and the web editor

Setting Weight

CommandDescription
/hp group setweight <group> <weight>Set group weight
text
/hp group setweight default 0
/hp group setweight vip 20
/hp group setweight mod 50
/hp group setweight admin 90
/hp group setweight owner 100

Recommended Weight Ranges

We recommend using a 0-100 scale for clarity, but any numbers work:

RangeSuggested Use
0-10Default/base groups
10-30Donor ranks (VIP, VIP+)
30-50Junior staff (Helper, Trainee)
50-70Moderators
70-90Senior staff, Admins
90-100Owner, Super Admin
Leave gaps between weights so you can add new ranks later without renumbering everything. For example, use 0, 20, 50, 90, 100 instead of 0, 1, 2, 3, 4.

Weight and Prefix/Suffix Display

When a player belongs to multiple groups, the prefix and suffix from the highest-weight group is displayed in chat.

text
# Steve belongs to:
# - mod (weight: 50, prefix: "&9[Mod] ")
# - vip (weight: 20, prefix: "&a[VIP] ")

# In chat, Steve's prefix will be: "[Mod] "
# Because mod has higher weight (50 > 20)

Prefix Priority Override

Groups also have a prefixPriority and suffixPriority that can override weight for display purposes:

text
# Example: Show VIP prefix even for mods who are also VIP
# (Maybe they want to show off their donation status)

# Set VIP's prefix priority higher than its weight
# prefixPriority is checked first; if equal, weight is used
For most servers, just using weight is sufficient. Prefix/suffix priority is for advanced use cases where you want different precedence for display vs permissions.

Weight and Permission Conflicts

When a player has the same permission from multiple groups with different values, weight helps determine which value is used:

text
# Steve belongs to:
# - admin (weight: 90)
# - builder (weight: 25)

# Both groups have fly.enable:
# - admin: fly.enable: true
# - builder: fly.enable: false

# Resolution: admin wins (higher weight)
# Steve has fly.enable: true
This only applies when both groups have the permission set directly. If one group has it directly and another inherits it, the direct permission has priority regardless of weight.

Weight vs Track Order

Weight and track order are independent:

  • Weight - Determines priority for display and conflicts
  • Track Order - Determines promotion/demotion sequence
text
# These are different things:

# Weight determines: "Which group is more important?"
# Track order determines: "What's the next rank when promoted?"

# Example where they might differ:
# Special "builder" group with high permissions (weight: 60)
# Not part of any track - given manually to trusted builders

# Staff track: helper(30) → mod(50) → admin(80)
# Builder has higher weight than mod, but isn't in the staff track

Weight and Inheritance

Weight affects how inherited permissions are resolved when there are conflicts from multiple parent groups:

text
# Group "mod" inherits from both:
# - vip (weight: 20)
# - helper (weight: 30)

# If vip has: chat.color: true
# And helper has: chat.color: false

# mod gets: chat.color: false
# Because helper has higher weight (30 > 20)

Direct permissions on the group itself always override inherited ones, regardless of the parent's weight.

Viewing Group Weight

CommandDescription
/hp group info <group>View group details including weight
/hp group listList groups (shown in weight order)
text
/hp group info admin

# Output:
# Group: admin
# Display Name: Administrator
# Weight: 90
# Prefix: &c[Admin]
# ...

Best Practices

Use Consistent Spacing

Leave room for future ranks:

text
# Good - leaves room to insert ranks
default: 0
vip: 20
mod: 50
admin: 80
owner: 100

# Later you can add:
vip+: 25 (between vip and mod)
senior-mod: 65 (between mod and admin)

Match Weight to Importance

Higher ranks should have higher weights:

text
# Correct - weight reflects hierarchy
owner: 100 (most important)
admin: 80
mod: 50
vip: 20
default: 0 (least important)

Consider Multiple Tracks

When players can be in groups from different tracks:

text
# Staff track weights
helper: 30
mod: 50
admin: 80

# Donor track weights
vip: 20
vip+: 25
mvp: 28

# Staff weights are higher, so staff prefix shows
# even if player is also in donor rank

Debugging Weight Issues

If the wrong prefix is showing or permissions seem off:

text
# Check the player's groups and their weights
/hp user info <player>

# Check each group's weight
/hp group info <group>

# Make sure higher ranks have higher weights
# Look for groups with unexpectedly high/low weights

Example: Complete Weight Setup

text
# Base groups
/hp group setweight default 0
/hp group setweight guest 5

# Donor ranks
/hp group setweight vip 20
/hp group setweight vip-plus 25
/hp group setweight mvp 28

# Junior staff
/hp group setweight helper 35
/hp group setweight trial-mod 40

# Staff
/hp group setweight mod 50
/hp group setweight senior-mod 60

# Administration
/hp group setweight admin 80
/hp group setweight head-admin 90
/hp group setweight owner 100

See Also