Skip to content

Configuration

Titles are cosmetic labels that appear on a player’s nametag, in chat, or both. They are earned by completing specific achievements and can be selected by the player through a UI.

Titles are defined inside achievement definitions. When a player completes an achievement that has a title field, that title is unlocked and becomes available for selection.

Achievement with a title reward
{
"id": "spider_hunter_4",
"category": "combat",
"difficulty": "hard",
"requires": "spider_hunter_3",
"title": {
"id": "exterminator",
"color": "#8B4513"
},
"trigger": {
"type": "kills",
"target": "Spider",
"count": 100
}
}
FieldRequiredDefaultDescription
idyesUnique title identifier. Used as the localization key (title.<id>).
colorno"#FFFFFF"Hex color code for the title in chat.

Not every achievement needs a title. Titles are optional rewards for milestone achievements. Many achievements only grant items or lootbags.

Title display is controlled through the main config.json in the achievement plugin’s data folder.

config.json (display section)
{
"display": {
"displayMode": "both",
"titlePosition": "prefix",
"nametagFormat": "{title}\n{name}",
"chatFormat": "[{title}] {name}: {message}",
"titleColor": "#FFD700",
"showRpgLevel": false,
"rpgLevelFormat": "Lv.{level}",
"rpgLevelColor": "#55FFFF",
"rpgLevelPosition": "after_name"
}
}
ValueDescription
"nametag"Title appears above the player’s head only.
"chat"Title appears as a chat prefix only. Colors work in this mode.
"both"Title appears in both nametag and chat.
ValueResult
"prefix"[Title] Username
"suffix"Username [Title]
"above"Uses nametagFormat for multi-line layout (e.g. {title}\n{name}).
"below"Same as suffix (multi-line below is not supported by the engine).

The nametagFormat field supports {title} and {name} placeholders, along with \n for line breaks.

"{title}\n{name}" --> Exterminator
PlayerName
"[{title}] {name}" --> [Exterminator] PlayerName

If the RPG Leveling plugin is installed, you can show player levels alongside titles.

FieldDefaultDescription
showRpgLevelfalseEnable level display.
rpgLevelFormat"Lv.{level}"Format string. {level} is replaced with the actual level.
rpgLevelColor"#55FFFF"Hex color for the level text (chat only).
rpgLevelPosition"after_name"Where to place the level: before_name, after_name, or after_title.

When LuckPerms is installed, player prefixes from LuckPerms are combined with achievement titles in chat:

[LuckPerms-Prefix] [Achievement-Title] Username: message

LuckPerms formatting codes (<rainbow>, <gradient>, &a, etc.) are fully supported in chat. Suffix formatting from LuckPerms is applied to the username color.

Opens the Title Selection UI where players can browse all their unlocked titles and choose which one to display.

Alias: /title

Access: All players (no permission required).

The UI shows all titles the player has unlocked, along with the achievement that granted each title. Selecting a title applies it immediately to the player’s nametag and/or chat display. Players can also deselect their current title to show just their username.

Title names are localized through the achievement plugin’s localization system. Add entries to your language files:

KeyPurpose
title.<id>Localized title display name

Example:

localization/en-US.json
{
"title.warrior": "Warrior",
"title.exterminator": "Exterminator",
"title.snake_charmer": "Snake Charmer",
"title.arachnophobe": "Arachnophobe"
}
Title IDColorAchievementRequirement
warrior#FF4444First BloodKill 1 mob
exterminator#8B4513Spider Hunter IVKill 100 spiders
arachnophobe#4B0082Spider Hunter VKill 500 spiders
snake_charmer#228B22Snake Slayer IIIKill 100 snakes
venom_master#006400Snake Slayer IVKill 500 snakes
CommandAliasesDescriptionAccess
/kstitles/titleOpen the Title Selection UIAll players