# 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.