Main Configuration (configuration.yml)
General Settings
license-key: "YOUR_LICENSE_KEY"
date-format: "dd.MM.yyyy HH:mm:ss"
invite-duration: 4
confirm-disband: true
pending-disband-confirm-time: 10
friendly-fire: false
| Option | Type | Default | Description |
|---|
license-key | String | "YOUR_LICENSE_KEY" | Plugin license key |
date-format | String | "dd.MM.yyyy HH:mm:ss" | Date format used in timed messages |
invite-duration | Integer | 4 | Invite expiration time in minutes |
confirm-disband | Boolean | true | Require a second confirm to disband |
pending-disband-confirm-time | Integer | 10 | Seconds to confirm disband |
friendly-fire | Boolean | false | Default friendly-fire state for new teams |
Team Chat
team-chat:
enable-chat-by-prefix: true
preserve-chat-toggle-after-logout: false
team-chat-character: "!"
team-chat-format: "&8[&b{tag}&8] &7{player}&7: &f{message}"
| Option | Type | Default | Description |
|---|
enable-chat-by-prefix | Boolean | true | Allow prefix character to send team messages |
preserve-chat-toggle-after-logout | Boolean | false | Keep /team chat mode after reconnect |
team-chat-character | String | "!" | Prefix for team messages in public chat |
team-chat-format | String | see above | Format with {tag}, {player}, {message} |
Redis
redis:
enable: false
host: "127.0.0.1:6379"
password: "strongPass"
server-id: "server-1"
| Option | Type | Default | Description |
|---|
enable | Boolean | false | Enable multi-server Redis sync |
host | String | "127.0.0.1:6379" | Redis host and port |
password | String | "strongPass" | Redis password |
server-id | String | "server-1" | Unique id of this game server |
See Database & Redis.
Tag & Name Restrictions
tag-restrictions:
minimum-tag-length: 3
maximum-tag-length: 5
tag-regex: "[a-zA-Z0-9]+"
name-restrictions:
minimum-name-length: 3
maximum-name-length: 16
name-regex: "[a-zA-Z0-9]+"
| Option | Default | Description |
|---|
minimum-tag-length / maximum-tag-length | 3 / 5 | Allowed tag length |
tag-regex | [a-zA-Z0-9]+ | Regex for valid tags |
minimum-name-length / maximum-name-length | 3 / 16 | Allowed name length |
name-regex | [a-zA-Z0-9]+ | Regex for valid names |
Ranking
ranking:
enable: true
custom-death-messages: true
disabled-death-message-worlds:
- "world_nether"
- "world_the_end"
default-ranking: 500
single-player-ranking-delay: 30
disabled-worlds:
- "your_very_peaceful_world"
ranking-type: ELO
multi-accounts-abuse: true
elo-ranking:
elo-constants:
- minimum-ranking: 0
maximum-ranking: 500
elo-correction-factory: 32
- minimum-ranking: 500
maximum-ranking: 1000
elo-correction-factory: 24
- minimum-ranking: 1000
maximum-ranking: 99999
elo-correction-factory: 16
elo-divider: 400.0
elo-exponent: 10.0
percentage-ranking:
percentage-ranking-change: 2.0
static-ranking:
static-winner-ranking-change: 15
static-loser-ranking-change: 5
| Option | Default | Description |
|---|
enable | true | Enable ranking on player death |
custom-death-messages | true | Custom kill/death announcements |
disabled-death-message-worlds | list | Worlds without death messages |
default-ranking | 500 | Starting points for new profiles |
single-player-ranking-delay | 30 | Minutes before the same victim grants points again |
disabled-worlds | list | Worlds where ranking does not apply |
ranking-type | ELO | ELO, STATIC, or PERCENTAGE |
multi-accounts-abuse | true | Multi-account abuse protection |
Full ranking details: Ranking.
Economy
economy:
enable: true
economy-type: ITEMS
economy-item: # ItemStack (material, name, lore)
cost-for-create-team: 100.0
cost-for-one-expiration-day: 100.0
default-members-slots: 10
maximum-members-slots: 20
cost-for-one-slot-of-members: 100.0
| Option | Default | Description |
|---|
enable | true | Enable economy costs |
economy-type | ITEMS | VAULT or ITEMS |
economy-item | Emerald | Currency item for ITEMS mode |
cost-for-create-team | 100.0 | Cost to create a team |
cost-for-one-expiration-day | 100.0 | Cost per day of renewal |
default-members-slots | 10 | Starting member slots |
maximum-members-slots | 20 | Max slots via upgrades |
cost-for-one-slot-of-members | 100.0 | Cost per extra slot |
See Economy & Expiration.
Expiration
expiration:
enable: true
default-expiration-hours: 7
maximum-expiration-hours: 125
| Option | Default | Description |
|---|
enable | true | Enable team expiration |
default-expiration-hours | 7 | Lifespan of a new team (hours) |
maximum-expiration-hours | 125 | Cap on total expiration extension |
Reminders
reminders:
remind-on-join: true
remind-periodically: true
send-reminders-to-all-members: false
reminders-period: 60
minimum-time-to-remind: 1
minimum-time-unit: DAYS
| Option | Default | Description |
|---|
remind-on-join | true | Remind when joining the server |
remind-periodically | true | Periodic reminder task |
send-reminders-to-all-members | false | If false, only the leader is reminded |
reminders-period | 60 | Period in minutes |
minimum-time-to-remind | 1 | Threshold before expiry to start reminding |
minimum-time-unit | DAYS | DAYS, HOURS, MINUTES, or SECONDS |
Database
database:
database-type: H2
hostname: "localhost"
base: "mineTeams"
port: 3306
username: "root"
password: "securepass"
| Option | Default | Description |
|---|
database-type | H2 | H2, MYSQL, MONGODB, or FLAT |
hostname | "localhost" | Host for MySQL/MongoDB |
base | "mineTeams" | Database / schema name |
port | 3306 | Port |
username / password | — | Credentials |
See Database & Redis.
Announcement
announcement:
limit-announcement-count: false
maximum-announcement-count-per-entity: 2
announcement-persistence-period: 2m
title-announcement-for-death-and-kill: true
| Option | Default | Description |
|---|
limit-announcement-count | false | Rate-limit kill/death announcements |
maximum-announcement-count-per-entity | 2 | Max announcements per entity in the period |
announcement-persistence-period | 2m | Window for the limit |
title-announcement-for-death-and-kill | true | Show title on kill/death |
Commands (commands.yml)
Every player and admin subcommand can be customized:
player-commands:
team-command:
enabled: true
name: "team"
aliases:
- "zespol"
description: "Main command for teams."
permission: "team.command"
usage: "/team"
create-command:
enabled: true
name: "create"
# ...
| Field | Description |
|---|
enabled | Register the command when true |
name | Primary command/subcommand name |
aliases | Alternative names |
permission | Required permission node |
usage | Usage string shown on errors |
description | Optional description |
GUIs (guis.yml)
Dashboard inventory for /team panel:
| Function | Behavior |
|---|
NONE | Decorative item |
UPGRADE_MEMBERS | Purchase an extra member slot |
EXPIRATION_UPDATE | Extend team expiration by one day |
GUI placeholders include {tag}, {name}, {leader}, {deputies}, {members}, {maximumMembers}, {upgradeSlotsPrice}, {expireAt}, {expirationCost}.
Inventory types: CHEST, WORKBENCH, HOPPER, DISPENSER, BREWING.
Messages (messages.yml)
All player-facing messages live in messages.yml. The plugin supports legacy color codes (&) processed into MiniMessage/Adventure components. Customize help lines, death messages, ranking formats, and PlaceholderAPI fallbacks there.