Configuration Guide
This guide will walk you through installing and configuring ShyGuild. You'll learn how to use the built-in sample guild template and then create a fully custom guild template from scratch.
📋 Prerequisites
- A Bukkit or Folia based Minecraft server (1.8 – 1.21)
- LuckPerms (recommended) — for automatic role-based permission management
- PlaceholderAPI (optional) — for placeholder support in other plugins
🔧 Installation
- Download the ShyGuild
.jarfile - Place it in your server's
plugins/folder - Start (or restart) the server
- ShyGuild generates its default files:
plugins/ShyGuild/
├── config.yml # Main configuration
├── lang/
│ └── en_us.yml # Language file
└── guild/
└── sample_guild.yml # Sample guild template
📂 Understanding the config.yml
The main configuration file controls global settings:
# Language file to use
language: "en_us"
# Command aliases
commands:
shyguild:
aliases:
- "sguild"
# Database settings (sqlite or mysql)
database:
type: "sqlite"
# Global guild settings
global:
joinDelaySeconds: 3 # Delay before loading guilds on player join
synchronizeGuildsSeconds: 300 # Cross-server sync interval (MySQL only)
maxJoinGuildsPerPlayer: 3 # Max guilds a player can be in at once
maxCreateGuildsPerPlayer: 1 # Max guilds a player can create
guildNameMinLength: 3 # Min characters for guild names
guildNameMaxLength: 16 # Max characters for guild names
guildDisplayNameMinLength: 3 # Min characters for display names
guildDisplayNameMaxLength: 32 # Max characters for display names
guildMaxInvites: 5 # Max pending invites per player
blackList: # Blocked words for guild names
- "badword"
🏰 Using the Sample Guild Template
ShyGuild ships with a sample_guild.yml template in the plugins/ShyGuild/guild/ folder. This section walks through using it from both an admin and a player perspective.
Understanding the Sample Template
name: "sample_guild"
maxPlayers: 10
defaultRole: "member"
roles:
- name: "owner"
allowPermissions:
- "shyguild.guild.%shyguild_guild_name%.delete"
- "shyguild.guild.%shyguild_guild_name%.role.add.owner"
- "shyguild.guild.%shyguild_guild_name%.role.remove.owner"
- "shyguild.guild.%shyguild_guild_name%.role.add.member"
- "shyguild.guild.%shyguild_guild_name%.role.remove.member"
- "shyguild.guild.%shyguild_guild_name%.role.list"
- "shyguild.guild.%shyguild_guild_name%.member.remove"
- "shyguild.guild.%shyguild_guild_name%.member.list"
- "shyguild.guild.%shyguild_guild_name%.invite"
- "shyguild.guild.%shyguild_guild_name%.leave"
denyPermissions: []
- name: "member"
allowPermissions:
- "shyguild.guild.%shyguild_guild_name%.role.list"
- "shyguild.guild.%shyguild_guild_name%.member.list"
- "shyguild.guild.%shyguild_guild_name%.leave"
denyPermissions: []
Key points:
%shyguild_guild_name%is automatically replaced with the actual guild name when permissions are applied- The
ownerrole can manage roles, kick members, send invites, and delete the guild - The
memberrole can only view roles, view members, and leave - LuckPerms groups are automatically created and managed — do not edit them manually
🛡️ Admin Perspective
As an admin, you set up the server so that players can create and manage guilds on their own.
Step 1: Assign Base Permissions
Give your default player group the permissions they need to interact with guilds. See the permissions page.
Note:
shyguild.cmd.member.addis an admin-only command that bypasses the invite system. Do not give it to regular players.
Step 2: Verify the Template is Loaded
/shyguild template list
You should see sample_guild in the output. If not, check your plugins/ShyGuild/guild/ folder and run /shyguild reload.
👤 Player Perspective
Once an admin has set up the permissions, players can create and manage guilds entirely on their own.
Step 1: Create a Guild
/shyguild create sample_guild dragons The_Dragons
sample_guild— the template to usedragons— the internal guild name (lowercase, alphanumeric and hyphens only)The_Dragons— the display name (underscores become spaces: "The Dragons")
The player who creates the guild is automatically assigned the owner role.
Step 2: Invite Members
The guild owner invites other online players:
/shyguild member invite dragons Alex
/shyguild member invite dragons Steve
Invited players see a message in chat and can accept:
/shyguild member accept dragons
Once accepted, they join the guild and receive the default role specified in the template.
Step 3: Manage Roles
The owner can assign the member role to organize their guild:
/shyguild role add dragons member Alex
/shyguild role add dragons member Steve
Step 4: View Guild Info
Any member with the right permissions can view the roster and roles:
# List all members and their roles
/shyguild member list dragons
# List all available roles in the guild
/shyguild role list dragons
# List roles of a specific player
/shyguild role list dragons Alex
Step 5: Remove Members or Leave
The owner can kick a member:
/shyguild member remove dragons Steve
A member can leave voluntarily:
/shyguild member leave dragons
⚠️ Owner restriction: The last remaining owner cannot leave. Transfer ownership first by assigning the
ownerrole to another player.
Step 6: Delete the Guild
When the guild is no longer needed, the owner can delete it:
/shyguild delete dragons
⚽ Full Example: Soccer Club Template
This example shows how to create a custom guild template with four roles — owner, coach, captain, and player — to manage a soccer club on your server.
Step 1: Create the Template File
Create a new file at plugins/ShyGuild/guild/soccer_club.yml:
name: "soccer_club"
maxPlayers: 30
defaultRole: "player"
roles:
# The club owner has full control over the guild
- name: "owner"
allowPermissions:
- "shyguild.guild.%shyguild_guild_name%.delete"
- "shyguild.guild.%shyguild_guild_name%.role.add.owner"
- "shyguild.guild.%shyguild_guild_name%.role.remove.owner"
- "shyguild.guild.%shyguild_guild_name%.role.add.coach"
- "shyguild.guild.%shyguild_guild_name%.role.remove.coach"
- "shyguild.guild.%shyguild_guild_name%.role.add.captain"
- "shyguild.guild.%shyguild_guild_name%.role.remove.captain"
- "shyguild.guild.%shyguild_guild_name%.role.add.player"
- "shyguild.guild.%shyguild_guild_name%.role.remove.player"
- "shyguild.guild.%shyguild_guild_name%.role.list"
- "shyguild.guild.%shyguild_guild_name%.member.remove"
- "shyguild.guild.%shyguild_guild_name%.member.list"
- "shyguild.guild.%shyguild_guild_name%.invite"
- "shyguild.guild.%shyguild_guild_name%.leave"
denyPermissions: []
# Coaches can manage captains and players, but cannot delete the club or assign owners
- name: "coach"
allowPermissions:
- "shyguild.guild.%shyguild_guild_name%.role.add.captain"
- "shyguild.guild.%shyguild_guild_name%.role.remove.captain"
- "shyguild.guild.%shyguild_guild_name%.role.add.player"
- "shyguild.guild.%shyguild_guild_name%.role.remove.player"
- "shyguild.guild.%shyguild_guild_name%.role.list"
- "shyguild.guild.%shyguild_guild_name%.member.remove"
- "shyguild.guild.%shyguild_guild_name%.member.list"
- "shyguild.guild.%shyguild_guild_name%.invite"
- "shyguild.guild.%shyguild_guild_name%.leave"
denyPermissions: []
# Captains can invite new players and view the roster, but cannot manage roles
- name: "captain"
allowPermissions:
- "shyguild.guild.%shyguild_guild_name%.role.list"
- "shyguild.guild.%shyguild_guild_name%.member.list"
- "shyguild.guild.%shyguild_guild_name%.invite"
- "shyguild.guild.%shyguild_guild_name%.leave"
denyPermissions: []
# Regular players can only view the roster and leave
- name: "player"
allowPermissions:
- "shyguild.guild.%shyguild_guild_name%.role.list"
- "shyguild.guild.%shyguild_guild_name%.member.list"
- "shyguild.guild.%shyguild_guild_name%.leave"
denyPermissions: []
Step 2: Set Up Permissions
Grant your default player group access to the new template:
# Allow using the soccer_club template (in addition to existing permissions)
/lp group default permission set shyguild.template.soccer_club true
Step 3: Reload the Plugin
/shyguild reload
Verify the template is loaded:
/shyguild template list
You should see both sample_guild and soccer_club.
Step 4: Create a Soccer Club
A player creates their club:
/shyguild create soccer_club united-fc United_FC
The creator is automatically the owner.
Step 5: Build the Roster
The owner invites members and assigns roles:
# Invite players
/shyguild member invite united-fc Alex
/shyguild member invite united-fc Steve
/shyguild member invite united-fc Bob
/shyguild member invite united-fc Charlie
After they accept:
# Assign a coach
/shyguild role add united-fc coach Alex
# Assign a captain
/shyguild role add united-fc captain Steve
Step 6: Day-to-Day Management
The coach (Alex) can now independently manage the team:
# Coach promotes Bob to captain
/shyguild role add united-fc captain Bob
# Coach invites a new player
/shyguild member invite united-fc Dave
# Coach removes a role from a player
/shyguild role remove united-fc captain Bob
# Coach kicks a player from the club
/shyguild member remove united-fc Charlie
The captain (Steve) can recruit but not manage roles:
# Captain invites a new player
/shyguild member invite united-fc Eve
# Captain views the roster
/shyguild member list united-fc
A regular player (Bob) can only view and leave:
# Player views the roster
/shyguild member list united-fc
# Player views available roles
/shyguild role list united-fc
# Player leaves the club
/shyguild member leave united-fc
Role Hierarchy Summary
| Role | Invite | Kick | Manage Roles | Delete Club |
|---|---|---|---|---|
| 👑 Owner | ✅ | ✅ | All roles | ✅ |
| 🎓 Coach | ✅ | ✅ | Captain & Player | ❌ |
| ⚓ Captain | ✅ | ❌ | None | ❌ |
| ⚽ Player | ❌ | ❌ | None | ❌ |
❓ Common Issues
Q: My guild template isn't showing in /shyguild template list
- Ensure the
.ymlfile is inplugins/ShyGuild/guild/ - Check the YAML syntax is valid (indentation matters!)
- Run
/shyguild reloadafter adding new template files
Q: Role permissions aren't being applied
- Verify that LuckPerms is installed — role permissions require it
- Do not manually edit the LuckPerms groups created by ShyGuild
- Check that the
allowPermissionsin your template use the correct permission nodes
Q: A player can't create a guild
- Ensure they have
shyguild.command,shyguild.cmd.create, andshyguild.template.<template>permissions - Check
maxCreateGuildsPerPlayerinconfig.yml— they may have hit the limit
Q: A player can't accept an invite
- Ensure they have
shyguild.commandandshyguild.cmd.member.acceptpermissions - Check
maxJoinGuildsPerPlayerinconfig.yml— they may have hit the limit - Check
maxPlayersin the guild template — the guild may be full
Q: Cross-server guild data isn't syncing
- Set
database.typetomysqlinconfig.yml - Configure the JDBC connection settings with your MySQL server details
- Adjust
synchronizeGuildsSecondsto a lower value for faster sync