config.yml
Storage, discovery sources, the completion broadcast, leaderboard lines and menu sounds.
Global settings. After editing, run /indexadmin reload (storage changes need a restart).
Categories, menus and messages each have their own file. This one covers how discovery works, the leaderboard format and the sounds.
Storage
Section titled “Storage”Settings: Storage: Type: SQLITE Host: "127.0.0.1" Port: 3306 Database: "minecraft" Username: "root" Password: ""| Key | Default | Description |
|---|---|---|
Type |
SQLITE |
SQLITE (stored in data/data.db) or MYSQL. Anything else fails the load. |
Host |
127.0.0.1 |
MySQL host. Ignored for SQLite. |
Port |
3306 |
MySQL port. |
Database |
minecraft |
MySQL database (schema). It must already exist; the tables are created in it. |
Username |
root |
MySQL user. |
Password |
"" |
MySQL password. |
Properties |
(none) | Optional section of extra MySQL connection properties, as key: value pairs. Not in the shipped file. |
Discovery
Section titled “Discovery”Settings: Discovery: Pickup: true Inventory-Scan: true Ignored-Game-Modes: - CREATIVE - SPECTATOR Disabled-Worlds: []
Broadcast-Index-Completion: true| Key | Default | Description |
|---|---|---|
Discovery.Pickup |
true |
Discover an item when the player picks it up off the ground. Cancelled pickups never count. |
Discovery.Inventory-Scan |
true |
Scan the player’s whole inventory every time they close an inventory window, and once right after their data loads on join. Catches crafted, traded and given items. |
Discovery.Ignored-Game-Modes |
[CREATIVE, SPECTATOR] |
Game modes that discover nothing. Values are SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR; an unknown name fails the load. |
Discovery.Disabled-Worlds |
[] |
World names (exact, case-sensitive) where nothing is discovered. |
Broadcast-Index-Completion |
true |
Send INDEX-COMPLETED-BROADCAST to the whole server when a player completes the index. The player’s own INDEX-COMPLETED message is sent either way. |
/indexadmin discover ignores the game mode and world checks.
Leaderboard
Section titled “Leaderboard”Leaderboard: Size: 5 Refresh-Interval: 60 Positions: "1": "&6 - &6#{position} &f<head:{name}> &f{name} &7- &f{discovered} &7items &8({percentage}%)" "2": "&6 - &7#{position} &f<head:{name}> &f{name} &7- &f{discovered} &7items &8({percentage}%)" "3": "&6 - &#CD7F32#{position} &f<head:{name}> &f{name} &7- &f{discovered} &7items &8({percentage}%)" Default: "&6 - &8#{position} &f<head:{name}> &f{name} &7- &f{discovered} &7items &8({percentage}%)" Self: "&6 - &e#{position} &f<head:{name}> &e{name} &7- &f{discovered} &7items &8({percentage}%)" Unranked: "?"| Key | Default | Description |
|---|---|---|
Size |
5 |
How many players the {leaderboard} list shows. Must be at least 1. |
Refresh-Interval |
60 |
Seconds between leaderboard refreshes. A refresh only runs when something changed since the last one. Must be at least 1. |
Positions.<number> |
1, 2, 3 | The line for that exact position. Add "4", "5" and so on for more custom lines. |
Positions.Default |
(see above) | Required. The line for every position without its own entry. |
Self |
(see above) | Required. The {self} line: the viewer’s own position, shown in the main menu. |
Unranked |
? |
Shown for {rank}, {position} in {self}, {found} and %optimalindex_rank% before the first leaderboard refresh after a start. |
Tokens in the leaderboard lines:
| Token | Value |
|---|---|
{position} |
The rank (1, 2, …). |
{name} |
The player’s name. |
{discovered} |
Their discovered entries. |
{percentage} |
Their index completion, rounded down. |
<head:{name}> draws the player’s head as a small sprite in the lore line. Remove it if you prefer
plain text.
The refresh also updates the {completed} count and the per-entry {found} counts in the category
menu, so a lower interval makes those fresher at the cost of more database reads. Ranking rules are
explained in Managing Players.
Inventories-Sounds
Section titled “Inventories-Sounds”Named sounds in "NAME;volume;pitch" form. Set a key to "" to silence it. A key missing from your
file plays its default.
Inventories-Sounds: "MAIN-MENU-OPEN": "ENTITY_BAT_TAKEOFF;1;0.5" "CATEGORY-MENU-OPEN": "ENTITY_CHICKEN_EGG;1;1" "PAGE-CHANGED": "ENTITY_CHICKEN_EGG;1;1" "NO-PAGE-FOUND": "BLOCK_NOTE_BLOCK_PLING;1;0.5" "FILTER-CHANGED": "UI_BUTTON_CLICK;1;1.5" "DISCOVERED": "ENTITY_EXPERIENCE_ORB_PICKUP;1;1.5" "CATEGORY-COMPLETED": "ENTITY_PLAYER_LEVELUP;1;1.5" "INDEX-COMPLETED": "UI_TOAST_CHALLENGE_COMPLETE;1;1"| Key | Played when |
|---|---|
MAIN-MENU-OPEN |
The main menu opens (/index, or the back button of a category). |
CATEGORY-MENU-OPEN |
A category menu opens. |
PAGE-CHANGED |
A page button turns the page. |
NO-PAGE-FOUND |
A page button is clicked on the first or last page. |
FILTER-CHANGED |
The filter button switches the filter. |
DISCOVERED |
One or more entries are discovered (once per batch). |
CATEGORY-COMPLETED |
A discovery completes a category. |
INDEX-COMPLETED |
A discovery completes the whole index. |
The icons flashed on a refused page turn live in category-menu.yml, not in this file.
