

Donut Teams is a Folia-first team plugin for Paper SMPs. Players create a team, invite friends, talk in team chat, share one home, and toggle friendly fire from a GUI. It is a modular Nightbeam suite companion next to Donut Auction, Orders, RTP, and Shards. Optional DonutCore. Not an all-in-one Donut replica.
Features
| Feature |
Description |
| Team GUI |
/team (aliases /teams, /dt) opens the inventory GUI for create, members, invites, info, home, PvP, and settings |
| Team lifecycle |
Create, invite, join, leave, kick, transfer ownership, and disband with confirm |
| Team chat |
/team chat toggles team-only chat, or /team chat <message> sends one MiniMessage line |
| Shared team home |
One team home. /team sethome, /team home, /team delhome. Warmup teleport, cancel-on-move |
| Friendly fire |
/team pvp cancels teammate melee and projectile damage when friendly fire is off |
| Member permissions |
Owner grants invite, kick, home, sethome, speak, and pvp. Default member is speak only |
| Lite member cap |
8 members (donutteams.slots.8) |
| Storage |
SQLite by default at plugins/DonutTeams/teams.db. Optional MySQL with HikariCP |
| PlaceholderAPI |
%donutteams_name%, %donutteams_tag%, %donutteams_count%, %donutteams_home_world%, %donutteams_leader% |
| DonutCore |
Optional reflection hook for network display names. Soft-depend only |
| Paper and Folia |
folia-supported: true. No Bukkit scheduler. Entity and region-safe chat, homes, and friendly fire |
| Public API |
DonutTeamsApi plus TeamCreate, TeamJoin, and TeamLeave events |
Donut Teams Pro (Redis live sync, extra member slots, extra homes, and cosmetics) is coming later on BuiltByBit. Lite is the full single-server team layer.
Team GUI
/team with no arguments opens the team menu. Players do not need the full command tree to run a team.
The main GUI covers:
- Create a team
- Member list and per-member permission editor
- Pending invites
- Team info
- Home and friendly-fire controls
- Settings, including locked Pro stubs
Chat aliases still work for power users: /teams, /dt. Admin alias: /dteams.
Commands
| Command |
Who |
What |
/team |
member |
Open the team GUI |
/team create <name> [tag] |
create perm |
Create a team. Tag defaults to the name if omitted |
/team disband confirm |
owner |
Disband after confirm |
/team invite <player> |
invite perm |
Invite an online player |
/team join <team> |
invited |
Accept an invite by team name |
/team leave |
member |
Leave. Owners must transfer or disband first |
/team kick <player> |
kick perm |
Kick a member |
/team info [team] |
anyone |
Team overview |
/team chat [message] |
speak perm |
Toggle team chat, or send one line |
/team home |
home perm |
Teleport to the shared team home |
/team sethome / /team delhome |
sethome perm |
Set or clear the one lite home |
/team pvp |
pvp perm |
Toggle friendly fire |
/team transfer <player> |
owner |
Pass ownership |
/donutteams reload |
admin |
Reload config and messages |
Permissions
donutteams.use, donutteams.create, donutteams.chat, and donutteams.home default true. donutteams.admin defaults to op. donutteams.slots.8 is the lite member cap.
Placeholders
Identifier donutteams. No team returns none (or 0 for counts).
%donutteams_name% (aliases team, team_name)
%donutteams_tag%
%donutteams_count% (aliases size, members)
%donutteams_home_world% (aliases homeworld, home)
%donutteams_leader% (alias owner)
Team Home
Lite includes one shared team home. Teleport uses a warmup with cancel-on-move. Personal homes are a separate Nightbeam SKU and are not in this plugin.
Friendly Fire
When friendly fire is off, melee and projectile damage between teammates is cancelled on the victim's region thread.
Storage
SQLite
Default. Works out of the box at plugins/DonutTeams/teams.db.
MySQL
Optional for larger networks. HikariCP pooling. Tables: teams, members, invites, homes, settings. SQL runs off-thread. Teams are cached in memory.
Performance & Safety
- Asynchronous database operations
- Folia entity, region, and global schedulers (no
BukkitScheduler)
- Warmup teleports that cancel on move
- Friendly-fire checks that do not hop regions to mutate the attacker
Why Choose Donut Teams?
- Easy setup — Drop
DonutTeams-1.0.0.jar in plugins/. SQLite works immediately. No extra plugins required.
- Low overhead — Folia-first scheduling and async SQL keep chat, homes, and invites off the wrong threads.
- Player-friendly UI — Inventory GUI for create, invite, perms, home, and PvP.
- Safe defaults — Confirm-to-disband, warmup cancel-on-move, region-safe friendly fire.
- Optional hooks — PlaceholderAPI, DonutCore, LuckPerms, and MySQL. Works on a single Paper box or Folia.
- Suite companion — Modular Nightbeam plugin next to Donut Auction, Orders, RTP, and Shards. Not an all-in-one DonutSMP replica.
Compatibility
- Paper
- Folia
- Purpur
- Minecraft 1.20+
- SQLite
- MySQL
- PlaceholderAPI (optional)
- DonutCore (optional)
- LuckPerms (optional)
Requirements
Donut Teams requires a supported Paper or Folia server and Java 21.
DonutCore is optional. Vault is optional and is not required for lite.
Community & Support
If you encounter a bug or have a feature request, join Discord or report it on the project page.
License
Donut Teams is licensed under the Apache License 2.0.
You are free to use, modify, and redistribute Donut Teams in accordance with the terms of the Apache License 2.0.