TeamsPlugin | The Definitive Team Management Solution for Paper 1.21
TeamsPlugin is a lightweight yet powerful team management engine built specifically for Paper 1.21.x servers. Whether you're running a competitive survival world, a factions-lite experience, or a community-driven SMP, TeamsPlugin provides the essential structure your players need — delivering high-end features without the bloat of traditional land-claim systems. Every interaction is handled through clean, intuitive inventory GUIs, moving away from complex command strings and toward a fully immersive experience that any player can navigate on their first session.
Sophisticated Team Hierarchy
At the core of TeamsPlugin is a robust five-tier ranking system. Each rank carries precisely defined permissions, ensuring your team's assets, home, and settings are always in the right hands.
The five ranks are Owner, Co-Owner, Manager, Member, and Recruit. The Owner holds full control and is the only rank that can rename or disband the team. Co-Owners can manage settings, promote and demote members, and kick players. Managers can invite new players and set the team home. Members and Recruits have standard access — they can deposit into the team bank and participate in team activities, but cannot alter the team's structure or assets.
Every permission boundary is enforced automatically. There is no configuration required for the rank system — it works out of the box.
Owner Leave Protection
Accidentally disbanding an active team is one of the most frustrating experiences on any server. TeamsPlugin eliminates this entirely. When an owner attempts to leave their team using /team leave, they are not immediately removed. Instead, they are shown a dedicated confirmation GUI with three clear options.
The first option is to Disband the Team. This requires a second confirmation click on a separate screen before anything is deleted, making accidental disbands impossible. The second option is to Transfer Ownership. Clicking this opens a visual member picker that displays every current team member as a player skull with their rank shown. The owner simply clicks the player they wish to promote. The selected player instantly becomes the new Owner, the old owner is automatically demoted to Co-Owner and removed from the team, and all members are notified in chat. The third option is Cancel, which closes the GUI and returns the owner to their game with no changes made.
Team Bank with Vault Integration
TeamsPlugin includes a fully-featured shared team bank powered by Vault. Every team has a collective balance that members can contribute to and authorised ranks can withdraw from. The bank is managed entirely through a dedicated GUI with clearly labelled deposit and withdraw buttons, a live balance display, and quick-access denomination buttons for common amounts.
To deposit or withdraw, players can type any numeric value in chat. TeamsPlugin also supports shorthand notation, meaning players can type 1k for one thousand, 2.5m for two and a half million, or 1b for one billion. This makes large transactions fast and user-friendly. Only players ranked Manager or above are permitted to withdraw funds, protecting the team's treasury from unauthorised access. Any player, regardless of rank, can deposit into the bank.
Team Home System
Every team can designate a single home location that serves as their headquarters. The home is set using /team sethome or through the Team Hub GUI, and is restricted to Manager rank and above to prevent misuse. Once set, any team member of Manager rank or above can teleport to the home instantly through the GUI with a built-in warmup timer, giving time to cancel if needed. The home location is stored persistently in the database and survives server restarts.
Live Leaderboards
TeamsPlugin includes a competitive leaderboard system designed to keep players engaged and motivated. From the main Team Hub, players can open the Leaderboards screen, which offers two views.
The first is the Global Top Teams leaderboard, which ranks every team on the server by their total kill count. This leaderboard is paginated and supports any number of teams. The entries are displayed with the team name, owner, member count, total kills, total deaths, and bank balance. All of this is fully configurable in the YAML file. The second view is the Team Stats screen, which shows internal rankings within your own team. The left column shows the Top Killers inside the team, sorted by personal kill count. The right column shows the Top Money holders, sorted by each member's personal Vault balance. Both columns display player skulls with rank-coloured names, making it visually clear who the top contributors are.
Leaderboard data refreshes automatically every five minutes in the background. Additionally, an instant refresh is triggered every time a kill is recorded, meaning the standings are always accurate during active PvP sessions.
Fully Configurable GUI Engine
Every menu in TeamsPlugin is defined entirely by YAML configuration files located in the guis/ folder. There is no hardcoded layout anywhere in the plugin. Server administrators can change every item's display name, lore text, material, slot position, and glow effect without writing a single line of code.
The GUI files included are main_hub.yml for the Team Hub, members.yml for Member Management, invites.yml for the Invite Manager, bank.yml for the Team Bank, settings.yml for Team Settings, leaderboard.yml for the Leaderboard Portal, team_leaderboard.yml for the paginated Top Teams view, team_stats.yml for internal Team Stats, and their associated configuration entries.
After making changes to any GUI file, administrators can run /team reload to apply all changes instantly without restarting the server or reloading the entire plugin. Color codes and MiniMessage hex colors are fully supported in all item names and lore lines.
Member Management
The Member Management GUI displays every team member as a player skull, showing their current rank, online status, kill count, and total deposits. Members are sorted and displayed across a paginated grid.
Players with Co-Owner rank or above can promote and demote members directly from this GUI. A left-click on any member skull promotes that player by one rank, up to a maximum of Co-Owner. A right-click demotes that player by one rank, down to a minimum of Recruit. The change takes effect immediately and is saved to the database asynchronously.
Invite System
Inviting players to your team is handled through a dedicated Invite Manager GUI. Players ranked Manager or above can open this screen, click the Send Invite button, and then type a player name in chat. If the player is online and not already in a team, they receive an invite notification. The invite appears in the Invite Manager as a pending entry and can be revoked at any time by clicking it.
Invited players can accept the invite by running /team join followed by the team name. Once accepted, they are added to the team as a Recruit and the invite is cleared automatically.
Friendly Fire Toggle
Each team has its own friendly fire setting. When friendly fire is disabled, teammates cannot deal damage to one another regardless of the server's PvP settings. When enabled, full damage applies between teammates. This setting is controlled through the Team Settings GUI and can only be changed by Co-Owner rank or above. The current state is always visible in the hub GUI so players know their team's configuration at a glance.
Team Settings
The Team Settings GUI gives authorised members access to three team-level configurations from a single screen. The Friendly Fire toggle is controlled from here. The Rename button allows the Owner to change the team's name at any time by typing a new name in chat. Names must be between three and sixteen characters and may only contain letters, numbers, and underscores. The Icon button allows the Owner to change the team's icon material, which is the item displayed in the Team Hub to represent the team. This can be any valid Minecraft item material.
Technical Performance
TeamsPlugin is engineered for servers that run at scale. All database read and write operations are performed asynchronously on separate threads, meaning the main server thread is never blocked by disk operations. This ensures your TPS remains stable at 20.0 even during high-activity periods.
The plugin uses SQLite as its database backend. There is no external database server required. The database file is created automatically on first launch and is stored in the plugin's data folder. All team data, member ranks, kill counts, deposits, and home locations are persisted across restarts.
The leaderboard cache is held in memory and rebuilt on a timer, meaning leaderboard GUI access is instant with no database queries at runtime. Hot-reload support via /team reload means administrators can update GUI configurations and config values without any downtime.
Full Command Reference
/team — Opens the main Team Hub GUI for your current team. /team create (name) — Creates a new team with the specified name. Names must be three to sixteen characters. /team join (name) — Joins a team you have been invited to. /team leave — Leaves your current team. Owners are shown the leave confirmation GUI. /team invite (player) — Sends a team invite to an online player. Requires Manager rank or above. /team kick (player) — Removes a player from the team. Requires Co-Owner rank or above. /team promote (player) — Promotes a member by one rank. Requires Co-Owner rank or above. /team demote (player) — Demotes a member by one rank. Requires Co-Owner rank or above. /team rename (name) — Renames the team. Requires Owner rank. /team sethome — Sets the team home to your current location. Requires Manager rank or above. /team disband — Disbands the team permanently. Requires Owner rank. /team reload — Reloads all GUI YAML files and the config without restarting. Requires server operator.
TeamsPlugin is a lightweight yet powerful team management engine built specifically for Paper 1.21.x servers. Whether you're running a competitive survival world, a factions-lite experience, or a community-driven SMP, TeamsPlugin provides the essential structure your players need — delivering high-end features without the bloat of traditional land-claim systems. Every interaction is handled through clean, intuitive inventory GUIs, moving away from complex command strings and toward a fully immersive experience that any player can navigate on their first session.
At the core of TeamsPlugin is a robust five-tier ranking system. Each rank carries precisely defined permissions, ensuring your team's assets, home, and settings are always in the right hands.
The five ranks are Owner, Co-Owner, Manager, Member, and Recruit. The Owner holds full control and is the only rank that can rename or disband the team. Co-Owners can manage settings, promote and demote members, and kick players. Managers can invite new players and set the team home. Members and Recruits have standard access — they can deposit into the team bank and participate in team activities, but cannot alter the team's structure or assets.
Every permission boundary is enforced automatically. There is no configuration required for the rank system — it works out of the box.
Accidentally disbanding an active team is one of the most frustrating experiences on any server. TeamsPlugin eliminates this entirely. When an owner attempts to leave their team using /team leave, they are not immediately removed. Instead, they are shown a dedicated confirmation GUI with three clear options.
The first option is to Disband the Team. This requires a second confirmation click on a separate screen before anything is deleted, making accidental disbands impossible. The second option is to Transfer Ownership. Clicking this opens a visual member picker that displays every current team member as a player skull with their rank shown. The owner simply clicks the player they wish to promote. The selected player instantly becomes the new Owner, the old owner is automatically demoted to Co-Owner and removed from the team, and all members are notified in chat. The third option is Cancel, which closes the GUI and returns the owner to their game with no changes made.
TeamsPlugin includes a fully-featured shared team bank powered by Vault. Every team has a collective balance that members can contribute to and authorised ranks can withdraw from. The bank is managed entirely through a dedicated GUI with clearly labelled deposit and withdraw buttons, a live balance display, and quick-access denomination buttons for common amounts.
To deposit or withdraw, players can type any numeric value in chat. TeamsPlugin also supports shorthand notation, meaning players can type 1k for one thousand, 2.5m for two and a half million, or 1b for one billion. This makes large transactions fast and user-friendly. Only players ranked Manager or above are permitted to withdraw funds, protecting the team's treasury from unauthorised access. Any player, regardless of rank, can deposit into the bank.
Every team can designate a single home location that serves as their headquarters. The home is set using /team sethome or through the Team Hub GUI, and is restricted to Manager rank and above to prevent misuse. Once set, any team member of Manager rank or above can teleport to the home instantly through the GUI with a built-in warmup timer, giving time to cancel if needed. The home location is stored persistently in the database and survives server restarts.
TeamsPlugin includes a competitive leaderboard system designed to keep players engaged and motivated. From the main Team Hub, players can open the Leaderboards screen, which offers two views.
The first is the Global Top Teams leaderboard, which ranks every team on the server by their total kill count. This leaderboard is paginated and supports any number of teams. The entries are displayed with the team name, owner, member count, total kills, total deaths, and bank balance. All of this is fully configurable in the YAML file. The second view is the Team Stats screen, which shows internal rankings within your own team. The left column shows the Top Killers inside the team, sorted by personal kill count. The right column shows the Top Money holders, sorted by each member's personal Vault balance. Both columns display player skulls with rank-coloured names, making it visually clear who the top contributors are.
Leaderboard data refreshes automatically every five minutes in the background. Additionally, an instant refresh is triggered every time a kill is recorded, meaning the standings are always accurate during active PvP sessions.
Every menu in TeamsPlugin is defined entirely by YAML configuration files located in the guis/ folder. There is no hardcoded layout anywhere in the plugin. Server administrators can change every item's display name, lore text, material, slot position, and glow effect without writing a single line of code.
The GUI files included are main_hub.yml for the Team Hub, members.yml for Member Management, invites.yml for the Invite Manager, bank.yml for the Team Bank, settings.yml for Team Settings, leaderboard.yml for the Leaderboard Portal, team_leaderboard.yml for the paginated Top Teams view, team_stats.yml for internal Team Stats, and their associated configuration entries.
After making changes to any GUI file, administrators can run /team reload to apply all changes instantly without restarting the server or reloading the entire plugin. Color codes and MiniMessage hex colors are fully supported in all item names and lore lines.
The Member Management GUI displays every team member as a player skull, showing their current rank, online status, kill count, and total deposits. Members are sorted and displayed across a paginated grid.
Players with Co-Owner rank or above can promote and demote members directly from this GUI. A left-click on any member skull promotes that player by one rank, up to a maximum of Co-Owner. A right-click demotes that player by one rank, down to a minimum of Recruit. The change takes effect immediately and is saved to the database asynchronously.
Inviting players to your team is handled through a dedicated Invite Manager GUI. Players ranked Manager or above can open this screen, click the Send Invite button, and then type a player name in chat. If the player is online and not already in a team, they receive an invite notification. The invite appears in the Invite Manager as a pending entry and can be revoked at any time by clicking it.
Invited players can accept the invite by running /team join followed by the team name. Once accepted, they are added to the team as a Recruit and the invite is cleared automatically.
Each team has its own friendly fire setting. When friendly fire is disabled, teammates cannot deal damage to one another regardless of the server's PvP settings. When enabled, full damage applies between teammates. This setting is controlled through the Team Settings GUI and can only be changed by Co-Owner rank or above. The current state is always visible in the hub GUI so players know their team's configuration at a glance.
The Team Settings GUI gives authorised members access to three team-level configurations from a single screen. The Friendly Fire toggle is controlled from here. The Rename button allows the Owner to change the team's name at any time by typing a new name in chat. Names must be between three and sixteen characters and may only contain letters, numbers, and underscores. The Icon button allows the Owner to change the team's icon material, which is the item displayed in the Team Hub to represent the team. This can be any valid Minecraft item material.
TeamsPlugin is engineered for servers that run at scale. All database read and write operations are performed asynchronously on separate threads, meaning the main server thread is never blocked by disk operations. This ensures your TPS remains stable at 20.0 even during high-activity periods.
The plugin uses SQLite as its database backend. There is no external database server required. The database file is created automatically on first launch and is stored in the plugin's data folder. All team data, member ranks, kill counts, deposits, and home locations are persisted across restarts.
The leaderboard cache is held in memory and rebuilt on a timer, meaning leaderboard GUI access is instant with no database queries at runtime. Hot-reload support via /team reload means administrators can update GUI configurations and config values without any downtime.
/team — Opens the main Team Hub GUI for your current team. /team create (name) — Creates a new team with the specified name. Names must be three to sixteen characters. /team join (name) — Joins a team you have been invited to. /team leave — Leaves your current team. Owners are shown the leave confirmation GUI. /team invite (player) — Sends a team invite to an online player. Requires Manager rank or above. /team kick (player) — Removes a player from the team. Requires Co-Owner rank or above. /team promote (player) — Promotes a member by one rank. Requires Co-Owner rank or above. /team demote (player) — Demotes a member by one rank. Requires Co-Owner rank or above. /team rename (name) — Renames the team. Requires Owner rank. /team sethome — Sets the team home to your current location. Requires Manager rank or above. /team disband — Disbands the team permanently. Requires Owner rank. /team reload — Reloads all GUI YAML files and the config without restarting. Requires server operator.
