Teams999
A Minecraft plugin that lets players create, manage, and join teams with roles, invites, and team homes.
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