Tags
Creators
Details
Licensed MIT
Published 5 months ago
Updated 16 hours ago
All versions
0.3.0-Beta
Beta
0.3.0-Beta16 hours ago 6
Uploaded by
Compatibility
Minecraft: Java Edition
26.3
26.2
26.1.x
1.21.6–1.21.11
Platforms
Folia
Paper
Purpur
Changes
0.3.0-Beta
New Features & Major Changes
- Team Module: Create and manage player teams, fully config-driven (
modules/team.yml):/team list|info|accept|deny|leave|request|invite|add|kick|setrole|deny-request— plus/team requestsand/team invitesfor pending join requests and invites.- Roles: MEMBER / ADMIN per team. Members can only leave; everything else needs a team admin. The first member automatically becomes admin, and the last admin can never be removed or demoted (server admins via
plainbase.team.admincan always step in). - Teams are defined in the config (no create command) — membership, roles, invites and join requests are managed at runtime and stored per player (by UUID), surviving reloads and restarts.
- Vanilla scoreboard mirror: every team is mirrored to a real scoreboard team (
pb_<id>), so any command with a target selector works — e.g./tp @a[team=pb_red] 0 100 0. Not available on Folia (scoreboard API unsupported there); everything else works on Folia. - Fine-grained permissions: one node per subcommand under
plainbase.team.*, usable by every player by default (the team role itself decides who may do what).
- PlaceholderAPI Support:
- Added
%plainbase_team_names%,%plainbase_teams_count%,%plainbase_team_primary%,%plainbase_team_pending_invites%,%plainbase_team_role_<team>%and%plainbase_team_members_<team>%.
- Added
Fixes & Hardening
- FirstSpawn (
/setfirstspawn) never took effect due to a config-key mismatch — fixed and live-verified. - Moderation: ban checks no longer fail open on corrupt database rows, IP addresses are normalized before comparing, self-bans are blocked, and the IP-ban screen now shows the remaining time correctly.
- Teleport: TPA/RTP state is now Folia-safe (no more cross-region access or thread-unsafe collections), RTP no longer blocks server threads while searching, and spamming
/rtpduring a search or warmup is no longer possible. - JoinItems: items no longer duplicate on death and no longer silently overwrite occupied slots;
/clearre-give only triggers for real clears. - Vanish: deaths, advancements, joins and quits of vanished players stay hidden, including across rejoins.
- Commands survive
/plainbase reload|togglecorrectly, and pure usage permissions (/spawn,/tpa,/rtp, …) no longer require OP.
Config Changes
- config.yml updated to Version 1.7 (Added configuration entry for the
teammodule). - team.yml added, Version 1.2 (New configuration file: team definitions, messages and per-command toggles).
Tested Environments
- Paper 26.1.2 (full end-to-end test with real bots: every module, every command)
- Folia 26.2 (team membership/roles/commands live-tested, scoreboard mirror skipped there by design)
It should work on Paper, Purpur and Folia Servers for 1.21.6 to 26.2! Spigot is not supported.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:yfx0z1Sw:b1B7eoWJ"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:yfx0z1Sw:b1B7eoWJ"
}

