Permission System
MCHockey uses a comprehensive permission system to control player access to features and commands. This guide helps you configure permissions correctly for different user roles on your server.
🔐 Permission Levels
MCHockey uses three permission levels:
- 👤 User Level: All players who should be able to play MCHockey
- 🟡 Admin/User Level: Trusted players or staff members. Review carefully before granting to regular players
- 🔴 Admin Level: Permissions that should only be given to trusted staff
🚀 Quick Setup (Recommended Permissions)
For most servers, these permissions provide the best balance of functionality and security:
Essential Player Permissions
# Basic MCHockey access (required for all players)
- mchockey.command
- mchockey.join.*
# Display permissions (recommended for all players)
- mchockey.shyscoreboard.scoreboard.*
- mchockey.shybossbar.bossbar.*
- mchockey.shyparticles.effect.visible.*
# Club system (if clubs are enabled on your server)
- mchockey.shyguild.command
- mchockey.shyguild.cmd.create
- mchockey.shyguild.cmd.delete
- mchockey.shyguild.cmd.guild.list
- mchockey.shyguild.cmd.role.add
- mchockey.shyguild.cmd.role.remove
- mchockey.shyguild.cmd.role.list
- mchockey.shyguild.cmd.member.invite
- mchockey.shyguild.cmd.member.accept
- mchockey.shyguild.cmd.member.leave
- mchockey.shyguild.cmd.member.remove
- mchockey.shyguild.cmd.member.list
- mchockey.shyguild.template.mchockey_club
Admin Permissions
# Arena management (staff only)
- mchockey.edit
- mchockey.referee.join
# Club administration (staff only)
- mchockey.shyguild.cmd.member.add
- mchockey.shyguild.cmd.template.list
- mchockey.shyguild.cmd.reload
# System administration (staff only)
- mchockey.shyscoreboard.command
- mchockey.shyscoreboard.reload
- mchockey.shybossbar.command
- mchockey.shybossbar.reload
- mchockey.shycommandsigns.command
- mchockey.shycommandsigns.add
- mchockey.shycommandsigns.reload
- mchockey.shyparticles.command
- mchockey.shyparticles.reload
- mchockey.shyparticles.list
- mchockey.shyparticles.play
- mchockey.shyparticles.stop
- mchockey.shyparticles.follow
- mchockey.shyparticles.followother
- mchockey.shyparticles.stopfollow
- mchockey.shyparticles.stopfollowother
- mchockey.cloud
📋 Complete Permission Reference
Core Gameplay Permissions
| Permission | Level | Description |
|---|---|---|
mchockey.command |
User | Access to /mchockey command base |
mchockey.join.* |
User | Join any arena (requires mchockey.command) |
mchockey.join.[arena_name] |
User | Join specific arena only |
Example Arena-Specific Permissions:
# Allow joining only "stadium1" arena
- mchockey.join.stadium1
# Allow joining multiple specific arenas
- mchockey.join.stadium1
- mchockey.join.arena2
- mchockey.join.tournament
Administrative Permissions
| Permission | Level | Description |
|---|---|---|
mchockey.edit |
Admin | Create, modify, and delete arenas |
mchockey.referee.join |
Admin | Access referee mode and commands |
Enhanced Player Permissions
| Permission | Level | Description |
|---|---|---|
mchockey.command.staff |
Admin/User | Execute commands while in-game |
mchockey.game.inventory |
Admin/User | Open/use inventories during games |
Legacy Permissions
mchockey.command.staff and mchockey.game.inventory are legacy permissions that will be replaced in future versions. Use with caution.
🎨 Scoreboard Permissions
MCHockey includes an integrated scoreboard system with granular permissions:
Player Scoreboard Access
| Permission | Level | Description |
|---|---|---|
mchockey.shyscoreboard.scoreboard.* |
User | See all scoreboards |
mchockey.shyscoreboard.scoreboard.[name] |
User | See specific scoreboard only |
Scoreboard Administration
| Permission | Level | Description |
|---|---|---|
mchockey.shyscoreboard.command |
Admin | Access /mchockeyscoreboard command |
mchockey.shyscoreboard.reload |
Admin | Reload scoreboard configurations |
mchockey.shyscoreboard.add |
Admin | Add scoreboards to players |
mchockey.shyscoreboard.set |
Admin | Set player scoreboards |
mchockey.shyscoreboard.remove |
Admin | Remove scoreboards from players |
mchockey.shyscoreboard.update |
Admin | Refresh scoreboards manually |
Usage Examples:
# Show specific scoreboard to player
/mchockeyscoreboard add Steve game_stats
# Remove all scoreboards from player
/mchockeyscoreboard remove Alex
# Refresh all scoreboards
/mchockeyscoreboard update
🎯 Boss Bar Permissions
Control access to MCHockey's boss bar displays:
Player Boss Bar Access
| Permission | Level | Description |
|---|---|---|
mchockey.shybossbar.bossbar.* |
User | See all boss bars |
mchockey.shybossbar.bossbar.[name] |
User | See specific boss bar only |
Boss Bar Administration
| Permission | Level | Description |
|---|---|---|
mchockey.shybossbar.command |
Admin | Access /mchockeybossbar command |
mchockey.shybossbar.reload |
Admin | Reload boss bar configurations |
mchockey.shybossbar.add |
Admin | Add boss bars to players |
mchockey.shybossbar.set |
Admin | Set player boss bars |
mchockey.shybossbar.remove |
Admin | Remove boss bars from players |
mchockey.shybossbar.update |
Admin | Refresh boss bars manually |
🏷️ Sign System Permissions
Manage interactive MCHockey signs:
| Permission | Level | Description |
|---|---|---|
mchockey.shycommandsigns.command |
Admin | Access /mchockeysign command |
mchockey.shycommandsigns.add |
Admin | Create join/leave signs |
mchockey.shycommandsigns.reload |
Admin | Reload sign configurations |
mchockey.shycommandsigns.server |
Admin | Server teleport commands |
mchockey.shycommandsigns.manipulateother |
Admin | Modify other players via signs |
Sign Creation Example:
# Create join sign for stadium1
/mchockeysign add mchockey_join_sign arena stadium1
# Create team-specific join signs
/mchockeysign add mchockey_join_red_sign arena stadium1
/mchockeysign add mchockey_join_blue_sign arena stadium1
✨ Particle System Permissions
Control access to MCHockey's particle effects:
Player Particle Access
| Permission | Level | Description |
|---|---|---|
mchockey.shyparticles.effect.visible.* |
User | See all particle effects |
mchockey.shyparticles.effect.visible.[name] |
User | See specific particle effect only |
Particle Administration
| Permission | Level | Description |
|---|---|---|
mchockey.shyparticles.command |
Admin | Access /mchockeyparticle command |
mchockey.shyparticles.reload |
Admin | Reload particle configurations |
mchockey.shyparticles.list |
Admin | List available particle effects |
mchockey.shyparticles.play |
Admin | Play particle effects |
mchockey.shyparticles.stop |
Admin | Stop particle effects |
mchockey.shyparticles.follow |
Admin | Make particles follow yourself |
mchockey.shyparticles.followother |
Admin | Make particles follow other players |
mchockey.shyparticles.stopfollow |
Admin | Stop particles following yourself |
mchockey.shyparticles.stopfollowother |
Admin | Stop particles following other players |
mchockey.shyparticles.effect.start.[name] |
Admin | Start specific particle effect by name |
⚽ Club Permissions
MCHockey includes an integrated club system (powered by ShyGuild internally). Club permissions are split into two layers — see the Clubs guide for full setup instructions.
LuckPerms Required
Club-specific guild permissions (e.g. mchockey.shyguild.guild.<club>.delete) are managed automatically by LuckPerms through role templates. You only need to assign the command-level permissions manually.
Club Command Permissions
These control which commands a player can execute. Assign them to your player/staff groups.
| Permission | Level | Description |
|---|---|---|
mchockey.shyguild.command |
User | Access the /mchockeyclub command base |
mchockey.shyguild.cmd.create |
User | Create a new club |
mchockey.shyguild.cmd.delete |
User | Delete a club |
mchockey.shyguild.cmd.guild.list |
User | List all clubs the player has joined |
mchockey.shyguild.cmd.role.add |
User | Assign a role to a club member |
mchockey.shyguild.cmd.role.remove |
User | Remove a role from a club member |
mchockey.shyguild.cmd.role.list |
User | List roles in a club or a player's roles |
mchockey.shyguild.cmd.member.invite |
User | Invite a player to a club |
mchockey.shyguild.cmd.member.accept |
User | Accept a pending club invite |
mchockey.shyguild.cmd.member.leave |
User | Leave a club |
mchockey.shyguild.cmd.member.remove |
User | Remove a member from a club |
mchockey.shyguild.cmd.member.list |
User | List all members of a club |
mchockey.shyguild.template.mchockey_club |
User | Use the mchockey_club template when creating a club |
mchockey.shyguild.cmd.member.add |
Admin | Add a player directly to a club (bypasses invite) |
mchockey.shyguild.cmd.template.list |
Admin | List all loaded club templates |
mchockey.shyguild.cmd.reload |
Admin | Reload club configurations |
Club-Specific Guild Permissions
These permissions are per-club and are automatically granted and revoked by LuckPerms when a player's role changes within that club. Do not assign these manually.
| Permission | Granted To | Description |
|---|---|---|
mchockey.shyguild.guild.<club>.delete |
owner |
Delete the club |
mchockey.shyguild.guild.<club>.role.add.<role> |
owner, coach |
Assign a specific role in the club |
mchockey.shyguild.guild.<club>.role.remove.<role> |
owner, coach |
Remove a specific role in the club |
mchockey.shyguild.guild.<club>.role.list |
owner, coach, captain, player |
List roles in the club |
mchockey.shyguild.guild.<club>.member.add |
— (admin only) | Add members directly to the club |
mchockey.shyguild.guild.<club>.member.remove |
owner, coach |
Remove a member from the club |
mchockey.shyguild.guild.<club>.member.list |
owner, coach, captain, player |
View the club roster |
mchockey.shyguild.guild.<club>.member.invite |
owner, coach, captain |
Invite players to the club |
mchockey.shyguild.guild.<club>.member.leave |
owner, coach, captain, player |
Leave the club |
How the two layers work together
A player needs both a command permission and the matching club-specific permission for most actions. For example, to delete the club red-falcons a player needs mchockey.shyguild.cmd.delete (assigned to their group) and mchockey.shyguild.guild.red-falcons.delete (assigned automatically by LuckPerms when they hold the owner role in that club).
Club Permission Scenarios
Scenario: Server with player-created clubs
default:
- mchockey.shyguild.command
- mchockey.shyguild.cmd.create
- mchockey.shyguild.cmd.delete
- mchockey.shyguild.cmd.guild.list
- mchockey.shyguild.cmd.role.add
- mchockey.shyguild.cmd.role.remove
- mchockey.shyguild.cmd.role.list
- mchockey.shyguild.cmd.member.invite
- mchockey.shyguild.cmd.member.accept
- mchockey.shyguild.cmd.member.leave
- mchockey.shyguild.cmd.member.remove
- mchockey.shyguild.cmd.member.list
- mchockey.shyguild.template.mchockey_club
Scenario: Admin-managed clubs (staff sets up clubs, hands off ownership)
default:
# Players can only accept invites, view, and leave
- mchockey.shyguild.command
- mchockey.shyguild.cmd.guild.list
- mchockey.shyguild.cmd.member.accept
- mchockey.shyguild.cmd.member.leave
- mchockey.shyguild.cmd.member.list
- mchockey.shyguild.cmd.role.list
staff:
# Staff can create clubs and add members directly
- mchockey.shyguild.command
- mchockey.shyguild.cmd.create
- mchockey.shyguild.cmd.delete
- mchockey.shyguild.cmd.guild.list
- mchockey.shyguild.cmd.role.add
- mchockey.shyguild.cmd.role.remove
- mchockey.shyguild.cmd.role.list
- mchockey.shyguild.cmd.member.add
- mchockey.shyguild.cmd.member.remove
- mchockey.shyguild.cmd.member.list
- mchockey.shyguild.cmd.member.invite
- mchockey.shyguild.cmd.member.accept
- mchockey.shyguild.cmd.member.leave
- mchockey.shyguild.cmd.template.list
- mchockey.shyguild.cmd.reload
- mchockey.shyguild.template.mchockey_club
🎮 Game-Specific Permission Scenarios
Scenario 1: Public Server with Multiple Arenas
# All players can join any arena
default_group:
- mchockey.command
- mchockey.join.*
- mchockey.shyscoreboard.scoreboard.*
- mchockey.shyparticles.effect.visible.*
Scenario 2: Tournament Server with Restricted Access
# Players can only join assigned tournament arenas
tournament_red:
- mchockey.command
- mchockey.join.tournament_red_arena
- mchockey.shyscoreboard.scoreboard.*
- mchockey.shybossbar.bossbar.*
- mchockey.shyparticles.effect.visible.*
tournament_blue:
- mchockey.command
- mchockey.join.tournament_blue_arena
- mchockey.shyscoreboard.scoreboard.*
- mchockey.shybossbar.bossbar.*
- mchockey.shyparticles.effect.visible.*
# Referees get full control
referees:
- mchockey.command
- mchockey.referee.join
Scenario 3: Training Server for New Players
# Beginners get limited access
beginners:
- mchockey.command
- mchockey.join.training_arena
# Advanced players get more arenas
advanced:
- mchockey.command
- mchockey.join.training_arena
- mchockey.join.competitive_arena
🔍 Permission Troubleshooting
Common Issues
| Problem | Likely Cause | Solution |
|---|---|---|
| "No permission" error | Missing mchockey.command |
Add base command permission |
| Can't join arenas | Missing join permissions | Add mchockey.join.* or specific arena |
| Scoreboards not showing | Missing display permissions | Add scoreboard permissions |
| Admin commands not working | Missing admin permissions | Add mchockey.edit or specific admin perms |
Can't use /mchockeyclub |
Missing club base permission | Add mchockey.shyguild.command |
| Club role permissions not applied | LuckPerms not installed | Install LuckPerms and reload |
💡 Best Practices
Security Guidelines
Admin Permission Security
- Never give
mchockey.editto regular players - Be cautious with
mchockey.command.staffandmchockey.game.inventory - Review permissions regularly as your server grows
Performance Optimization
Efficient Permission Structure
- Use wildcard permissions (
mchockey.join.*) for simplicity - Create permission groups rather than individual assignments
- Test permission changes on a development server first
User Experience
Player-Friendly Setup
- Grant scoreboard and boss bar permissions to all players
- Use descriptive group names that make sense to your staff
- Document your permission structure for other administrators
This permission system gives you complete control over who can access MCHockey features while maintaining security and performance on your server!