> ## Documentation Index
> Fetch the complete documentation index at: https://velas.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Configure and Manage Teams in VelaBoard

> Use VelaBoard's Team API to group players and entities with shared colors, prefixes, suffixes, and gameplay rules like friendly fire and collision.

VelaBoard teams group players and entities with shared visual and gameplay properties. By assigning members to a team, you control how their names appear, whether they can damage each other, and how collision and name tag rules apply between them.

## Creating a team

Call `scoreboard.team(String name)` to create a team or retrieve an existing one by the same name. It is safe to call repeatedly — if a team with that name already exists, it is returned rather than duplicated.

```java theme={null}
Team blueTeam = scoreboard.team("blue");
```

<Warning>
  Calling `scoreboard.team("name")` on an existing team name returns that team without creating a new one. To check existence first, use `scoreboard.hasTeam("name")` or `scoreboard.getTeam("name")` (which returns `null` if not found).
</Warning>

## Setting visual properties

Use `setColor`, `setPrefix`, and `setSuffix` to control how team members appear in chat and above their heads. All setter methods return the `Team` instance, so you can chain them.

```java theme={null}
scoreboard.team("blue")
    .setColor(TeamColor.BLUE)
    .setPrefix("§9[Blue] ")
    .setSuffix(" §9★");
```

**Available `TeamColor` values:** `BLACK`, `DARK_BLUE`, `DARK_GREEN`, `DARK_AQUA`, `DARK_RED`, `DARK_PURPLE`, `GOLD`, `GRAY`, `DARK_GRAY`, `BLUE`, `GREEN`, `AQUA`, `RED`, `LIGHT_PURPLE`, `YELLOW`, `WHITE`

## Gameplay rules

VelaBoard exposes several gameplay rules that control how team members interact with each other and other players.

| Rule                    | Method                                        | Description                                                                 |
| ----------------------- | --------------------------------------------- | --------------------------------------------------------------------------- |
| Friendly fire           | `setFriendlyFire(boolean)`                    | Whether teammates can damage each other.                                    |
| Entity friendly fire    | `setEntitiesFriendlyFire(boolean)`            | Whether entity members of the team can take damage from other team members. |
| Friendly invisibilities | `setCanSeeFriendlyInvisibilities(boolean)`    | Whether invisible teammates appear visible to other team members.           |
| Collision rule          | `setTeamCollisionRule(TeamCollisionRule)`     | Controls entity collision between members and others.                       |
| Name tag visibility     | `setNameTagVisibility(TeamNameTagVisibility)` | Controls who can see member name tags.                                      |

**`TeamCollisionRule` values:**

* `ALWAYS` — all entities collide with team members
* `FOR_OWN_TEAM` — only teammates collide with each other
* `FOR_OTHER_TEAMS` — only non-teammates cause collisions
* `NEVER` — no collision with team members

**`TeamNameTagVisibility` values:**

* `ALWAYS` — all players can see team member name tags
* `FOR_OWN_TEAM` — only teammates see name tags
* `FOR_OTHER_TEAMS` — only non-teammates see name tags
* `NEVER` — name tags are hidden from everyone

```java theme={null}
scoreboard.team("blue")
    .setColor(TeamColor.BLUE)
    .setPrefix("§9[Blue] ")
    .setSuffix(" §9★")
    .setFriendlyFire(false)
    .setCanSeeFriendlyInvisibilities(true)
    .setTeamCollisionRule(TeamCollisionRule.FOR_OWN_TEAM)
    .setNameTagVisibility(TeamNameTagVisibility.ALWAYS);
```

## Managing members

Add or remove players and entities using the methods below.

| Method                 | Description                                   |
| ---------------------- | --------------------------------------------- |
| `addPlayer(Player)`    | Adds a player to the team.                    |
| `removePlayer(Player)` | Removes a player from the team.               |
| `addEntity(Entity)`    | Adds a non-player entity to the team.         |
| `removeEntity(Entity)` | Removes an entity from the team.              |
| `hasPlayer(Player)`    | Returns `true` if the player is on this team. |
| `hasEntity(Entity)`    | Returns `true` if the entity is on this team. |

```java theme={null}
team.addPlayer(player);
team.addEntity(wolf);

if (team.hasPlayer(player)) {
    team.removePlayer(player);
}
```

To find which team a player is currently on, use `scoreboard.getTeamOf`:

```java theme={null}
Team current = scoreboard.getTeamOf(player); // null if not on any team
```

To remove a player from their current team without knowing which team it is:

```java theme={null}
scoreboard.removePlayerFromTeam(player);
```

## Removing teams

Remove a single team by name or clear all teams from the scoreboard at once.

```java theme={null}
scoreboard.removeTeam("blue");
scoreboard.clearTeams();
```
