Teams999
A Minecraft plugin that lets players create, manage, and join teams with roles, invites, and team homes.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
Teams999
Features
Team Management
- Create and disband teams - Invite players to your team, with configurable expiry and optional economy cost - Kick players, promote/demote members, and transfer leadership - Rename your team with optional cost and cooldown - Set a team message of the day (MOTD) - View team info in a GUI (level, members, homes, warps, MOTD) - List all teams and see online team members - Check team level progress with `/team level`
Team Levels and Limits
- Team level is based on member-count thresholds - Level-based limits for homes, alliances, and vault size - Role daily withdrawal limits can scale by team level
Team Homes
- Set, teleport to, and delete named team homes - `/team home` lists homes when no name is provided - Base max homes with optional level-based overrides - Per-world toggles for homes - Per-player teleport cooldown (shared with warps)
Team Warps
- Shared warps that are separate from homes - `/team warp` lists warps when no name is provided - Uses the same world toggle and teleport cooldown as homes - By default, only the team owner can set or delete warps, while members can use and list them
Team Vault
- Shared storage with size based on config and team level - Permission-based access for open, deposit, and withdraw - Role daily withdrawal limits with team-level multipliers - Per-world vault toggle - Auto-saves vault contents
Team Chat
- Toggle team-only chat and ally chat - Mute or unmute members in team chat - Optional role prefix display in player name tags and tab list (`/team showrole`) - Per-world chat toggles
Alliance System
- Invite, accept, decline, break, and list alliances - Ally chat for cross-team communication - Friendly-fire protection when enabled - Configurable max alliances with level-based overrides - Configurable cooldown after breaking an alliance
Role System
- Default roles with configurable permissions and priorities - Custom roles per team - Starting role for new members is configurable - Role priority enforces promotion, demotion, and management rules - Internal permissions are not server permissions
Team Colors
- 15 available team colors - Random color on creation or default green - Team colors show in chat, player list, and name tags - `/team color` to change color and `/team colors` to list options
Trust System
- Toggle a trusted flag for members - Stored with team data (no extra permissions by default)
Economy Integration
- Invite cost and rename cost use Vault economy if enabled
---
Commands
Team Commands
| Command | Description | |---------|-------------| | `/team create <name>` | Create a new team | | `/team disband` | Disband your team | | `/team invite <player>` | Invite a player to your team | | `/team accept` | Accept a team invitation | | `/team leave` | Leave your current team | | `/team kick <player>` | Kick a player from the team | | `/team promote <player>` | Promote a player to a higher role | | `/team demote <player>` | Demote a player to a lower role | | `/team transfer <player>` | Transfer leadership to another member | | `/team info` | View team information in a GUI | | `/team level` | Show team level and progress to next level | | `/team list` | List all teams on the server | | `/team online` | List online team members | | `/team sethome <name>` | Set a named team home | | `/team home [name]` | Teleport to a team home or list homes | | `/team delhome <name>` | Delete a team home | | `/team setwarp <name>` | Set a named team warp | | `/team warp [name]` | Teleport to a team warp or list warps | | `/team delwarp <name>` | Delete a team warp | | `/team warplist` | List all team warps | | `/team rename <name>` | Rename your team | | `/team motd <message>` | Set the team message of the day | | `/team chat` | Toggle team-only chat | | `/team vault` | Open the team vault | | `/team trust <player>` | Toggle trusted status for a player | | `/team mute <player>` | Mute or unmute a player in team chat | | `/team showrole` | Toggle role prefix display in name tags and tab list | | `/team role` | Role management subcommands | | `/team color <color>` | Change your team's display color | | `/team colors` | List available team colors | | `/team reload` | Reload config and save data (requires `teams999.reload`) |
Role Commands
| Command | Description | |---------|-------------| | `/team role create <name>` | Create a custom role | | `/team role delete <name>` | Delete a custom role | | `/team role list` | List all roles in your team | | `/team role info <name>` | View details about a role | | `/team role assign <player> <role>` | Assign a role to a player | | `/team role perm add <role> <perm>` | Add a permission to a custom role | | `/team role perm remove <role> <perm>` | Remove a permission from a custom role |
Alliance Commands
| Command | Description | |---------|-------------| | `/ally invite <team>` | Invite a team to form an alliance | | `/ally accept` | Accept an alliance invitation | | `/ally decline` | Decline an alliance invitation | | `/ally break <team>` | Break an alliance with a team | | `/ally chat` | Toggle alliance-only chat | | `/ally list` | List your team's alliances |
Command Aliases
- `/team` can also be used as `/t` - `/ally` can also be used as `/a`
---
Internal Permissions
These permissions control what team members can do based on their role. They are NOT server permissions and do not work with permission plugins like LuckPerms.
Member Management
| Permission | Description | |------------|-------------| | `team.invite` | Invite players to the team | | `team.kick` | Kick players from the team | | `team.promote` | Promote players to higher roles | | `team.demote` | Demote players to lower roles | | `team.role.assign` | Assign roles to players | | `team.role.create` | Create custom roles | | `team.role.delete` | Delete custom roles |
Team Settings
| Permission | Description | |------------|-------------| | `team.motd.set` | Set the message of the day | | `team.name.change` | Rename the team | | `team.color.change` | Change the team's display color | | `team.disband` | Disband the team | | `team.transfer` | Transfer leadership to another player |
Vault
| Permission | Description | |------------|-------------| | `team.vault.open` | Open the team vault | | `team.vault.deposit` | Put items into the vault | | `team.vault.withdraw` | Take items from the vault |
Chat
| Permission | Description | |------------|-------------| | `team.chat.toggle` | Toggle between chat modes | | `team.chat.team` | Send messages in team chat | | `team.chat.ally` | Send messages in ally chat | | `team.chat.moderate` | Mute and unmute team members |
Alliances
| Permission | Description | |------------|-------------| | `team.ally.invite` | Send alliance invitations | | `team.ally.accept` | Accept alliance invitations | | `team.ally.break` | Break alliances |
Homes
| Permission | Description | |------------|-------------| | `team.home.set` | Set team home locations | | `team.home.delete` | Delete team home locations | | `team.home.use` | Teleport to team homes |
Warps
| Permission | Description | |------------|-------------| | `team.warp.set` | Set team warp locations | | `team.warp.delete` | Delete team warp locations | | `team.warp.use` | Teleport to team warps and list them |
Other
| Permission | Description | |------------|-------------| | `team.info.view` | View team information | | `team.trust` | Toggle trusted status for members |
Reserved (No Effect Yet)
| Permission | Description | |------------|-------------| | `team.vault.lockedSlots` | Reserved for future vault slot locking | | `team.claim` | Reserved for future land claim features | | `team.unclaim` | Reserved for future land claim features | | `team.war.start` | Reserved for future war features | | `team.war.accept` | Reserved for future war features |
---
Role Permission Matrix
This table reflects the default role permissions from `config.yml`. The Leader has all internal permissions.
| Permission | Leader | Co-Leader | Officer | Member | Recruit | |------------|--------|-----------|---------|--------|---------| | `team.invite` | Yes | Yes | Yes | No | No | | `team.kick` | Yes | Yes | Yes | No | No | | `team.promote` | Yes | Yes | No | No | No | | `team.demote` | Yes | Yes | No | No | No | | `team.role.assign` | Yes | Yes | No | No | No | | `team.role.create` | Yes | Yes | No | No | No | | `team.role.delete` | Yes | Yes | No | No | No | | `team.motd.set` | Yes | Yes | No | No | No | | `team.name.change` | Yes | No | No | No | No | | `team.color.change` | Yes | No | No | No | No | | `team.disband` | Yes | No | No | No | No | | `team.transfer` | Yes | No | No | No | No | | `team.vault.open` | Yes | Yes | Yes | Yes | No | | `team.vault.deposit` | Yes | Yes | Yes | Yes | No | | `team.vault.withdraw` | Yes | Yes | Yes | No | No | | `team.chat.toggle` | Yes | Yes | Yes | Yes | No | | `team.chat.team` | Yes | Yes | Yes | Yes | Yes | | `team.chat.ally` | Yes | Yes | Yes | Yes | No | | `team.chat.moderate` | Yes | Yes | Yes | No | No | | `team.ally.invite` | Yes | Yes | No | No | No | | `team.ally.accept` | Yes | Yes | No | No | No | | `team.ally.break` | Yes | Yes | No | No | No | | `team.home.set` | Yes | Yes | Yes | No | No | | `team.home.delete` | Yes | Yes | Yes | No | No | | `team.home.use` | Yes | Yes | Yes | Yes | No | | `team.warp.set` | Yes | No | No | No | No | | `team.warp.delete` | Yes | No | No | No | No | | `team.warp.use` | Yes | Yes | Yes | Yes | No | | `team.info.view` | Yes | Yes | Yes | Yes | Yes | | `team.trust` | Yes | Yes | No | No | No |
---
Configuration
Team Settings
| Setting | Default | Description | |---------|---------|-------------| | `team.max-size` | 10 | Maximum players allowed in a team (minimum 2 enforced) | | `team.invite-expiry` | 5 | Minutes before an invitation expires | | `team.invite-cost` | 0 | Economy cost to send a team invitation (Vault required) | | `team.max-homes` | 3 | Base maximum team homes if no level override applies | | `team.rename-cost` | 1000 | Economy cost to rename a team (Vault required) | | `team.rename-cooldown` | 60 | Minutes between team renames | | `team.home-teleport-cooldown-seconds` | 0 | Per-player cooldown for home and warp teleports | | `team.name-format` | `^[a-zA-Z0-9_]{3,16}$` | Regex for valid team names | | `team.random-colors` | true | Assign random colors to new teams |
Alliance Settings
| Setting | Default | Description | |---------|---------|-------------| | `alliances.friendly-fire` | false | If false, allies cannot damage each other where PvP protection is enabled | | `alliances.max-alliances` | 3 | Base maximum alliances if no level override applies | | `alliances.break-cooldown-minutes` | 0 | Minutes before a team can break another alliance |
Vault Settings
| Setting | Default | Description | |---------|---------|-------------| | `vault.base-size` | 54 | Base vault size (multiple of 9, min 9, max 54) |
Role Defaults
| Setting | Description | |---------|-------------| | `roles.starting-role` | Role assigned to new members when they accept an invite | | `roles.defaults.<role>.display-name` | Display name shown in GUI and chat | | `roles.defaults.<role>.color` | ChatColor name for the role prefix | | `roles.defaults.<role>.priority` | Role priority (higher can manage lower) | | `roles.defaults.<role>.can-be-kicked` | Whether members with this role can be kicked | | `roles.defaults.<role>.can-be-modified` | Whether this role can be modified | | `roles.defaults.<role>.daily-withdraw-limit` | Base daily vault withdrawal limit (-1 for unlimited) | | `roles.defaults.<role>.permissions` | Internal permissions list, `*` grants all |
Team Levels
| Setting | Default | Description | |---------|---------|-------------| | `team-levels.member-thresholds` | map | Member count thresholds for each team level |
Level-Based Limits
| Setting | Default | Description | |---------|---------|-------------| | `limits.homes.by-level` | map | Max homes by team level | | `limits.alliances.by-level` | map | Max alliances by team level | | `limits.vault-size.by-level` | map | Vault size by team level | | `limits.daily-withdrawals.team-level-multiplier` | map | Multiplier applied to role daily withdrawal limits |
World Toggles
| Setting | Default | Description | |---------|---------|-------------| | `world-toggles.team-chat-disabled-worlds` | [] | Worlds where team and ally chat are disabled | | `world-toggles.homes-disabled-worlds` | [] | Worlds where homes and warps are disabled | | `world-toggles.vault-disabled-worlds` | [] | Worlds where team vault is disabled | | `world-toggles.pvp-protection-disabled-worlds` | [] | Worlds where allied PvP protection is disabled |
---
Available Team Colors
- RED - BLUE - GREEN - YELLOW - GOLD - AQUA - LIGHT_PURPLE - WHITE - DARK_RED - DARK_BLUE - DARK_GREEN - DARK_AQUA - DARK_PURPLE - DARK_GRAY - GRAY
---
Custom Roles
You can create custom roles for your team with specific permissions.
Creating a Custom Role
1. Create the role: `/team role create Builder` 2. Add permissions: `/team role perm add Builder team.home.set` 3. Add more permissions: `/team role perm add Builder team.warp.use` 4. Assign to a player: `/team role assign PlayerName Builder`
Managing Custom Roles
- View all roles: `/team role list` - View role details: `/team role info Builder` - Remove a permission: `/team role perm remove Builder team.home.set` - Delete a role: `/team role delete Builder`
Custom Role Notes
- Custom roles have priority 40 by default - Custom roles can be modified, default roles cannot - When a custom role is deleted, members with that role become Members - You can only assign roles with lower priority than your own
---
How Role Hierarchy Works
- Each role has a priority number - Higher priority roles can manage lower priority roles - You cannot kick, promote, demote, or assign roles to someone with equal or higher priority - Leader and Co-Leader cannot be kicked from the team - Only the Leader can transfer leadership or disband the team
---
Data Storage
- Team data (members, roles, homes, warps, MOTD, trust list) is saved to `data.yml` - Vault contents are saved to `teamvaults.yml` - Data auto-saves periodically - Data saves when the server stops