# Configuration
Lead uses a single `config.yml` file for all server-side settings. The configuration controls team behavior, command permissions, display options, and integration settings.
---
## General Settings
| Key | Type | Default | Description |
|---|---|---|---|
| `version` | Integer | `15` | Internal config version. Do not modify manually; Lead auto-migrates older configs on startup. |
| `should_update` | Boolean | `true` | If `false`, Lead will not update TAB or nametags with team prefixes. Useful when storing teams in the backend only. |
| `verbose` | Boolean | `false` | Enables detailed debug output to the console and players with the `lead.debug` permission. |
| `automatic_updates` | Boolean | `true` | If `true`, Lead automatically refreshes TAB and nametag entries after every team change (create, join, leave, modify, etc.). Set to `false` if you want to control when updates happen by calling `api.update()` manually or using `/lead reload`. |
---
## Team Behavior
| Key | Type | Default | Description |
|---|---|---|---|
| `max_team_size` | Integer | `5` | Maximum number of players allowed in a single team. |
| `max_teams` | Integer | `1000` | Maximum number of teams that can exist at once. |
| `nameable_teams` | Boolean | `true` | If `true`, players choose their own team name with `/team create [name]`. If `false`, names are auto-generated based on the generator type in `random.yml`. |
| `minimum_team_name_length` | Integer | `3` | Minimum character length for player-chosen team names. Only applies when `nameable_teams` is `true`. |
| `maximum_team_name_length` | Integer | `16` | Maximum character length for player-chosen team names. Only applies when `nameable_teams` is `true`. |
| `friendly_fire` | Boolean | `true` | Global default for whether teammates can damage each other. Can be overridden per team with `/team modify friendly_fire`. |
| `auto_assign` | Boolean | `false` | If `true`, players are automatically assigned to a team when they join the server. Toggle at runtime with `/lead auto_assign`. |
| `is_public` | Boolean | `true` | If `true`, all team commands are publicly accessible. If `false`, players require the `lodestone.lead.manage` permission to use team commands. |
| `should_increment` | Boolean | `false` | Only applies when the generator type is `NUMBER`. If `true`, team numbers increment sequentially (1, 2, 3...). If `false`, numbers are assigned randomly from the available pool. |
---
## Display Settings
### Team Alignment
The `team_alignment` key controls whether the team label appears before or after the player's name.
| Value | Behavior |
|---|---|
| `PREFIX` | Team label displays before the player name (default). |
| `SUFFIX` | Team label displays after the player name. |
```yaml
team_alignment: PREFIX
```
### Color Names
| Key | Type | Default | Description |
|---|---|---|---|
| `color_names` | Boolean | `false` | If `true`, player chat names are colored to match their team color. |
| `font` | String | `null` | Custom font namespace for team display names. Set to `null` to use the default Minecraft font. |
---
## Collision Rules
The `collidable` key controls player collision behavior for all teams. Individual teams can be overridden with `/team modify collidable`.
| Value | Behavior |
|---|---|
| `ALWAYS` | Players always collide with each other (default). |
| `NEVER` | Players never collide with each other. |
| `FOR_OTHER_TEAMS` | Players collide with members of other teams but not their own. |
| `FOR_OWN_TEAM` | Players collide with their own teammates but not other teams. |
```yaml
collidable: ALWAYS
```
**Note:** If TAB is installed, this value is redundant. TAB manages collision behavior independently.
---
## Nametag Visibility
The `name_tag_visibility` key controls nametag visibility for all teams. Individual teams can be overridden with `/team modify nametag`.
| Value | Behavior |
|---|---|
| `ALWAYS` | Nametags are always visible (default). |
| `NEVER` | Nametags are never visible. |
| `FOR_OTHER_TEAMS` | Nametags are visible to members of other teams but hidden from teammates. |
| `FOR_OWN_TEAM` | Nametags are visible to teammates but hidden from other teams. |
```yaml
name_tag_visibility: ALWAYS
```
**Note:** If TAB is installed, this value is redundant. TAB manages nametag visibility independently.
---
## Permissions Configuration
The `permissions` block controls access to the top-level commands. Setting a value to `null` makes the command publicly accessible.
```yaml
permissions:
team: null
teammsg: null
```
The `commands` block controls access to individual subcommands. Each key maps to a permission string. Setting a value to `null` removes the permission requirement.
```yaml
commands:
help: null
list: null
edit: null
kick: null
invite: null
create: null
join: null
leave: null
disband: null
chat: null
shuffle: "lodestone.lead.manage"
spawn: "lodestone.lead.manage"
teleport: "lodestone.lead.manage"
friendly_fire: "lodestone.lead.manage"
nametag: "lodestone.lead.manage"
collidable: "lodestone.lead.manage"
merge: "lodestone.lead.manage"
place: "lodestone.lead.manage"
remove: "lodestone.lead.manage"
delete: "lodestone.lead.manage"
id: "lodestone.lead.manage"
display_name: "lodestone.lead.manage"
color: "lodestone.lead.manage"
```
Commands without an explicit permission default to unrestricted access. Admin commands default to `lodestone.lead.manage`.
---
## Full Default Config
```yaml
version: 15
should_update: true
verbose: false
automatic_updates: true
team_alignment: PREFIX
max_team_size: 5
nameable_teams: true
minimum_team_name_length: 3
maximum_team_name_length: 16
friendly_fire: true
auto_assign: false
collidable: ALWAYS
name_tag_visibility: ALWAYS
is_public: true
font: null
color_names: false
max_teams: 1000
should_increment: false
permissions:
team: null
teammsg: null
commands:
help: null
list: null
edit: null
kick: null
invite: null
create: null
join: null
leave: null
disband: null
chat: null
shuffle: "lodestone.lead.manage"
spawn: "lodestone.lead.manage"
teleport: "lodestone.lead.manage"
friendly_fire: "lodestone.lead.manage"
nametag: "lodestone.lead.manage"
collidable: "lodestone.lead.manage"
merge: "lodestone.lead.manage"
place: "lodestone.lead.manage"
remove: "lodestone.lead.manage"
delete: "lodestone.lead.manage"
id: "lodestone.lead.manage"
display_name: "lodestone.lead.manage"
color: "lodestone.lead.manage"
```
---
## Related Pages
- [[Lead/Server Owners/Overview]] — Feature summary and dependency information.
- [[Lead/Server Owners/Commands]] — Complete command and permission reference.