Tags
Creators
Details
1.1.0
Compatibility
Changes
FULL POLISH:
EventTeams
Team management plugin for Minecraft events. Built for Paper 26.2. Companion to EventBorders (region containment).
Features
- Teams — create, delete, list, info, with player membership
- Hex colors — full RGB team colors (e.g.
#FF00AA), in addition to legacy ChatColor - Cinematic countdown — five-phase countdown with rising pitch, layered sounds, action bar timer, particle burst at start
- Team-scoped chat — chat prefix shows team color + name automatically
- Scoreboard integration — nametag color above players' heads matches team
- Tab list integration — tab entries get team prefix + color
- PlaceholderAPI — exposes
%eventteams_team%,%eventteams_hexcolor%, etc. - TeamChangeEvent — Bukkit event fired on every membership change (so other plugins like EventBorders can react without polling)
Requirements
- Minecraft: 26.2 (Paper API)
- Java: 25
- Server: Paper (uses Adventure components for messages)
- Optional: PlaceholderAPI, LuckPerms
Install
- Drop
EventTeams-x.y.z.jarintoplugins/ - Start server once to generate
plugins/EventTeams/teams.yml+players.yml - Configure teams via commands (or edit YAML directly +
/event reload)
Quick start
/event team create Blue
/event team hexcolor Blue #0099FF
/event team add <yourIGN> Blue
/event team spawn Blue # set spawn at your current location
/event countdown 30 # cinematic 30-second countdown
/event start Blue # teleport Blue team to spawn
Commands
All commands require eventteams.admin (defaults to op). Run /event for full reference.
| Command | Description |
|---|---|
/event team create <name> |
Create a new team |
/event team delete <team> |
Delete a team |
/event team list |
List all teams |
/event team info <team> |
Show team details |
/event team spawn <team> |
Set team spawn at your location |
/event team color <team> <ChatColor> |
Set legacy 16-color (RED, BLUE, ...) |
/event team hexcolor <team> <#hex|clear> |
Set full RGB hex color |
/event team prefix <team> <prefix> |
Set chat prefix |
/event team add <player> <team> |
Add player to team |
/event team remove <player> |
Remove player from their team |
/event team start <team|all> |
Teleport team to spawn |
/event countdown <seconds> |
Cinematic countdown |
/event start <team|all> |
Top-level teleport alias |
/event player <player> |
Show player's team |
/event reload |
Reload config |
TeamChangeEvent
Every successful add/remove fires TeamChangeEvent. Other plugins can listen:
@EventHandler
public void onTeamChange(TeamChangeEvent event) {
UUID uuid = event.playerUuid();
String oldTeam = event.oldTeam(); // null if no previous team
String newTeam = event.newTeam(); // null if removed entirely
event.joinedTeam(); // true if newTeam != null
event.leftTeam(); // true if oldTeam != null && newTeam == null
event.switchedTeam(); // true if both non-null and different
}
This replaces the need to poll getPlayerTeam(uuid) for cached lookups — subscribe to the event for instant updates.
Performance
getPlayerTeamCached(uuid)is O(1) HashMap lookup against an in-memory reverse indexgetPlayerTeam(uuid)is the legacy YAML read path (kept for back-compat) — prefer the cached version- All mutations synchronized on the TeamManager
PlaceholderAPI
| Placeholder | Description |
|---|---|
%eventteams_team% |
Player's team name, or "None" |
%eventteams_prefix% |
Color-coded prefix |
%eventteams_color% |
Legacy ChatColor code (e.g. §c) |
%eventteams_color_name% |
ChatColor name (e.g. RED) |
%eventteams_hexcolor% |
Hex string (e.g. #ff00aa) or empty |
%eventteams_size% |
Player count on the team |
%eventteams_tabcolor% |
Alias for color (TAB plugin compat) |
Cinematic countdown phases
| Time | Phase | What happens |
|---|---|---|
| >60s | Calm | Action bar countdown. Chat reminder every 60s. Low bass note. |
| 10-60s | Building | Action bar. Chat reminder at 30/20/15/11s. Medium bell. |
| 5-10s | Dramatic | Big title with number. Pling + bass layered. Pitch rises as time decreases. |
| 1-5s | Final | Big red bold title. Pling + bell + bass. High pitch. Action bar flashes "START IN N". |
| 0s | Start | Green "EVENT STARTED" title. Triumphant sound + level-up. End-rod particle burst at every player. Team teleport fires. |
Storage
Two YAML files in plugins/EventTeams/:
teams.yml— team definitions (name, prefix, color, hexcolor, players, spawn)players.yml— player→team reverse lookup (legacy; new code uses the in-memory index)
Building from source
git clone https://github.com/Glooshy/EventTeams.git
cd EventTeams
./gradlew build
Output: build/libs/EventTeams-<version>.jar
Requires Java 25 JDK (Gradle toolchain auto-downloads via Foojay resolver).
License
MIT — see LICENSE.
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:LIE02GIP:LKKIx08a"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:LIE02GIP:LKKIx08a"
}

