config.yml
Storage, prompts, name rules, team limits, home timings, point sources, roles, team format and sounds.
Global settings. After editing, run /teamadmin reload (storage changes need a restart). The file has
five sections, in this order: Settings, Point-Sources, Roles, Team-Format,
Inventories-Sounds.
Keys missing from your file fall back to the default shipped with the plugin, so a server upgrading
from an older version keeps working. This also means deleting a key or list never empties it: to clear
a list such as Blacklisted-Names, set it to [].
Settings
Section titled “Settings”Settings: Storage: Type: SQLITE Host: "127.0.0.1" Port: 3306 Database: "minecraft" Username: "root" Password: ""
Prompt-Mode: CHAT Auto-Update-Ticks: 20
Name-Min-Length: 3 Name-Max-Length: 16 Name-Pattern: "[A-Za-z0-9_]+" Blacklisted-Names: - "admin*" - "*staff*" - "*owner*"
Max-Members: 8 Invite-Expiry: 300
Default-Friendly-Fire: false Default-Open: false
Home-Warmup: 3 Home-Cooldown: 30
Top-Update-Interval: 10
Broadcast-Creation: false Broadcast-Disband: false
Number-Format: Default: ABBREVIATED ...| Key | Default | Description |
|---|---|---|
Prompt-Mode |
CHAT |
How players type a team name or player name: CHAT, ANVIL, SIGN or DIALOG. A dialog falls back to a sign for clients that cannot show dialogs. |
Auto-Update-Ticks |
20 |
How often open menus refresh, in ticks (20 = one second). 0 turns live refresh off. |
Max-Members |
8 |
Seats per team, the same for every team. At least 2. |
Invite-Expiry |
300 |
Seconds an invite stays valid. At least 1. |
Default-Friendly-Fire |
false |
Friendly fire setting for newly created teams. |
Default-Open |
false |
Open joining setting for newly created teams. |
Home-Warmup |
3 |
Seconds to stand still before /team home teleports. 0 teleports instantly. |
Home-Cooldown |
30 |
Seconds between team home teleports, per player. Starts when the teleport happens. 0 disables it. |
Top-Update-Interval |
10 |
Seconds between leaderboard re-sorts (only when something changed). At least 1. |
Broadcast-Creation |
false |
Announce new teams to the whole server (TEAM-CREATED-BROADCAST). |
Broadcast-Disband |
false |
Announce disbanded teams to the whole server (TEAM-DISBANDED-BROADCAST), including admin disbands. |
| Key | Default | Description |
|---|---|---|
Name-Min-Length |
3 |
Shortest allowed team name. At least 1. |
Name-Max-Length |
16 |
Longest allowed team name. Must not be below Name-Min-Length. |
Name-Pattern |
[A-Za-z0-9_]+ |
A Java regular expression the whole name must match. An invalid expression fails the load. |
Blacklisted-Names |
admin*, *staff*, *owner* |
Names that are refused. Case-insensitive. * works at the start (ends with), end (starts with) or both (contains); without * the name must match exactly. |
The same rules apply to /team rename and /teamadmin rename.
Storage
Section titled “Storage”| Key | Default | Description |
|---|---|---|
Type |
SQLITE |
SQLITE (file at data/data.db) or MYSQL. |
Host |
127.0.0.1 |
MySQL host. |
Port |
3306 |
MySQL port. |
Database |
minecraft |
MySQL database (schema). |
Username |
root |
MySQL user. |
Password |
"" |
MySQL password. |
Properties |
none | Optional section of extra JDBC connection properties (key: value). |
The connection fields are ignored on SQLite. Storage is only read at startup, so restart after changing it.
Number-Format
Section titled “Number-Format”Controls how {points}, {earned} and %optimalteams_points% are printed.
Number-Format: Default: ABBREVIATED Separated: Grouping-Separator: "," Decimal-Separator: "." Decimals: 2 Abbreviated: Thousands: "K" Millions: "M" Billions: "B" Trillions: "T" Quadrillions: "Qa" ... Centillions: "CT"| Key | Default | Description |
|---|---|---|
Default |
ABBREVIATED |
ABBREVIATED (1.5K, 2.25M) or SEPARATED (1,500). |
Separated.Grouping-Separator |
, |
Thousands separator. Exactly one character. |
Separated.Decimal-Separator |
. |
Decimal separator, also used in abbreviated numbers. Exactly one character. |
Separated.Decimals |
2 |
Maximum decimals shown (0 to 8). Trailing zeros are dropped. |
Abbreviated.<Scale> |
K, M, B, T, Qa, … |
The suffix for each power of 1000, from Thousands up to Centillions. |
Change the suffixes freely. Deleting a scale does not remove it: the shipped default fills the gap.
Point-Sources
Section titled “Point-Sources”Point-Sources: Koth-Capture: Enabled: true Points: 25 Player-Kill: Enabled: true Points: 5 Cooldown: 600| Key | Default | Description |
|---|---|---|
Koth-Capture.Enabled |
true |
Award points to the capturer’s team on an OptimalKoth capture. Needs OptimalKoth. |
Koth-Capture.Points |
25 |
Points per capture. 0 awards nothing. |
Player-Kill.Enabled |
true |
Award points to the killer’s team when they kill a player outside their team. |
Player-Kill.Points |
5 |
Points per kill. 0 awards nothing. |
Player-Kill.Cooldown |
600 |
Seconds before the same killer earns points for the same victim again. 0 disables it. |
No value may be negative. How the sources work in detail is in Points & Team Top.
All four roles must be present, each with a Display-Name. Every role except Leader takes a
Permissions list; the Leader always holds every permission and cannot list any.
Roles: Leader: Display-Name: "&6Leader" Co-Leader: Display-Name: "&eCo-Leader" Permissions: ["Invite", "Kick", "Promote", "Demote", "Home", "Set-Home", "Rename", "Friendly-Fire", "Open"] Moderator: Display-Name: "&aModerator" Permissions: ["Invite", "Kick", "Home"] Member: Display-Name: "&7Member" Permissions: ["Home"]| Key | Description |
|---|---|
Display-Name |
What {role} and %optimalteams_role% show. |
Permissions |
Any of Invite, Kick, Promote, Demote, Home, Set-Home, Rename, Friendly-Fire, Open. Use Permissions: [] for a role that can do none of them. |
What each permission unlocks, and the ranking rules on top of them, are in Roles & Permissions.
Team-Format
Section titled “Team-Format”Small pieces of text used inside messages, menus and placeholders. Every key is required.
Team-Format: Member-Entry: "&5 - {role} &f{player} &8({status}&8)" Online: "&aOnline" Offline: "&cOffline" Enabled: "&aEnabled" Disabled: "&cDisabled" No-Home: "&cNot set" No-Team: "No Team" Prompts: Create: Title: "&8Name your team" Hint: "Team name..." Rename: Title: "&8Rename your team" Invite: Title: "&8Invite a player" Hint: "Player name..."| Key | Description |
|---|---|
Member-Entry |
One roster line in /team info (the {roster} line of TEAM-INFO). Tokens: {role}, {player}, {status}. |
Online / Offline |
What {status} and {leader-status} show. |
Enabled / Disabled |
What {friendly-fire} and {open} show, and {state} in the toggle messages. |
No-Home |
What {home} shows when the team has no home. |
No-Team |
What the per-player %optimalteams_...% placeholders return for a player without a team. |
Prompts.Create.Title / Hint |
Title and placeholder text of the create prompt (anvil, sign and dialog modes). |
Prompts.Rename.Title |
Title of the rename prompt. Its hint is always the current team name. |
Prompts.Invite.Title / Hint |
Title and placeholder text of the invite prompt. |
In CHAT mode the prompt titles and hints are not shown; the NAME-PROMPT, RENAME-PROMPT and
INVITE-PROMPT chat messages are sent instead (they are sent in every mode).
Inventories-Sounds
Section titled “Inventories-Sounds”Named sounds in "NAME;volume;pitch" form. Names are XSound names, which stay stable across
Minecraft versions. Set a key to "" to silence it.
Inventories-Sounds: "TEAM-MENU-OPEN": "ENTITY_BAT_TAKEOFF;1;0.5" "HUB-MENU-OPEN": "ENTITY_BAT_TAKEOFF;1;0.5" "INVITES-MENU-OPEN": "ENTITY_BAT_TAKEOFF;1;0.5" "MEMBERS-MENU-OPEN": "ENTITY_BAT_TAKEOFF;1;0.5" "SETTINGS-MENU-OPEN": "ENTITY_BAT_TAKEOFF;1;0.5" "TOP-MENU-OPEN": "ENTITY_BAT_TAKEOFF;1;0.5" "TEAM-INFO-OPEN": "ENTITY_BAT_TAKEOFF;1;0.5" "CONFIRM-MENU-OPEN": "ENTITY_BAT_TAKEOFF;1;0.5" "PAGE-CHANGED": "ENTITY_CHICKEN_EGG;1;1" "NO-PAGE-FOUND": "BLOCK_NOTE_BLOCK_PLING;1;0.5" "CREATED": "ENTITY_PLAYER_LEVELUP;1;1.5" "JOINED": "ENTITY_PLAYER_LEVELUP;1;1.5" "INVITED": "BLOCK_NOTE_BLOCK_BELL;1;1.5" "PROMOTED": "BLOCK_NOTE_BLOCK_BELL;1;1.5" "DEMOTED": "BLOCK_NOTE_BLOCK_BELL;1;0.5" "KICKED": "ENTITY_ITEM_BREAK;1;1" "TOGGLED": "UI_BUTTON_CLICK;1;1" "TELEPORTED": "ENTITY_ENDERMAN_TELEPORT;1;1" "DISBANDED": "ENTITY_WITHER_DEATH;0.5;1.5" "DENIED": "ENTITY_VILLAGER_NO;1;0.5"| Key | Played when |
|---|---|
TEAM-MENU-OPEN, HUB-MENU-OPEN, INVITES-MENU-OPEN, MEMBERS-MENU-OPEN, SETTINGS-MENU-OPEN, TOP-MENU-OPEN, TEAM-INFO-OPEN, CONFIRM-MENU-OPEN |
That menu opens. |
PAGE-CHANGED |
A paged menu turns the page. |
NO-PAGE-FOUND |
There is no previous or next page. |
CREATED |
You create a team. |
JOINED |
You join a team. |
INVITED |
You send an invite (and the invited player receives it). |
PROMOTED |
You promote a member or transfer leadership. |
DEMOTED |
You demote a member. |
KICKED |
You kick a member (and the kicked player, if online). |
TOGGLED |
Team chat, friendly fire or open joining is toggled, the home is set or deleted, or the team is renamed. |
TELEPORTED |
A team home teleport completes. |
DISBANDED |
You disband your team. |
DENIED |
A menu click is refused, or a home warmup is cancelled by moving. |
A sound key missing from your file still plays its shipped default.
