A shared material list for community builds: live HUD, chat checklists, claims, stock tracking and a self-updating Discord board. One jar.
English | Español
A shared material list for big community builds, so everyone can see what is missing, who is farming what and how far along you are.
- Import the list straight from a
.litematicon the server with/ml import. - Anyone can check off a finished material, and the server announces it.
- Claims:
/ml claim obsidiantells everyone you are on it. - Stocking areas: mark the chest room and stored items count as progress (shulkers included).
- Manke's nudge (opt-in with
/ml follow): a private clickable message when your inventory covers a pending material. Works for players without the mod. - A Discord board that the mod keeps editing in place, from a webhook. No bot needed.
- Optional client HUD with live counts against your own inventory.
- Minecraft 1.21 / 1.21.1 or 26.3, with Fabric API. Java 21 for 1.21; Java 25 and Fabric Loader 0.19.5+ for 26.3.
- Server (required): put the jar in the server's
mods/. Everything works with vanilla clients. - Client (optional): the same jar adds the HUD. Vanilla clients are never sent anything.
When updating, keep config/mankelist/ and the mankelist-*.json files; lists, checks, claims,
followers and stocking areas are kept.
/ml import my_build.litematic builds and activates the list from the schematic
/ml follow opt into Manke's inventory nudges
/ml stockarea add 100 60 100 120 70 120 the chest room where materials get dropped
/ml check <material> check a material off
On the client, J toggles the HUD and Shift+J opens its settings.
Everyone:
| Command | What it does |
|---|---|
/ml or /ml status |
List(s) with progress, stock and claims |
/ml check <material> |
Check a material off (announced server-wide) |
/ml uncheck <material> |
Oops button |
/ml claim <material> |
Tell everyone you are farming it |
/ml have <amount> <material> |
Report partial progress ("I have 5,000 of the azaleas so far"): claims it for you and counts toward the progress bars |
/ml unclaim <material> |
Release your claim (OPs can release anyone's) |
/ml follow / /ml unfollow |
Opt in/out of Manke's inventory nudges |
/ml stock |
Compact report of what is already in the stocking areas |
/ml lists |
Active lists, saved lists and available list files |
OPs (permission level 2):
| Command | What it does |
|---|---|
/ml import <file.litematic> |
Parse a schematic into a list and activate it |
/ml load <list> |
(Re)read a list file and activate it (resets checks) |
/ml switch <list> |
Re-activate a saved list keeping its progress |
/ml unload <list> |
Deactivate (progress kept for later /ml switch) |
/ml reset [list] |
Uncheck everything |
/ml stockarea add <x1 y1 z1> <x2 y2 z2> |
Add a stocking area (your current dimension) |
/ml stockarea list / clear |
Inspect / remove stocking areas |
Materials match by short id (emerald_block), full id or display name, with
real tab-completion. Several lists can be active at once; when a material
exists in more than one, disambiguate as list/material (e.g.
/ml check xpfarm/hopper): the autocomplete and Manke's buttons do this for
you.
| Key | Action |
|---|---|
J |
Toggle the HUD |
Shift+J |
Open the config screen (also via Mod Menu or a rebindable key) |
K |
Cycle the focused list (when several are active) |
All keys are rebindable in Options → Controls → Key Binds under the
MankeList category, in case J/K clash with your other mods.
Pending rows show carrying + stocked / needed against your own inventory
(shulker and bundle contents included) with red/yellow/green coloring; checked
rows collapse to a ✓ and claims render as @Name. Sort by amount or arrange a
fully custom order (grab & drop, searchable). Corner, scale, icons, background
and line count are all configurable in-game.
- In your Discord channel: Edit channel → Integrations → Webhooks → New webhook, copy its URL.
- Put it in
config/mankelist-server.json→"discordWebhookUrl". - Restart. The mod posts the board and from then on edits it in place whenever the list changes (at most once every 10 s).
The server reads config/mankelist-server.json:
| Field | Default | Meaning |
|---|---|---|
statePath |
config/mankelist/state.json |
Where the shared state lives (auto-created). If a legacy schemlist/MCDR layout (../config/schemlist/state.json) already exists, it is reused |
importDir |
schematics |
Folder scanned for .litematic files by /ml import (auto-created; syncmatics is used if that folder already exists) |
discordWebhookUrl |
"" |
Discord webhook for the built-in board (empty = off) |
pollSeconds |
5 |
How often the state file's mtime is checked |
promptsEnabled |
true |
Master switch for Manke's nudges |
scanSeconds |
30 |
Inventory scan interval for the nudges |
promptCooldownSeconds |
600 |
Per player+material nudge cooldown |
stockScanSeconds |
60 |
Stocking-area container scan interval |
Lists are plain JSON next to the state file:
{
"name": "xpfarm",
"source": "xpfarm.litematic",
"blocks": [
{ "id": "minecraft:obsidian", "display": "Obsidian", "count": 189746, "done": false }
]
}The state file adds claim (who) and stocked (how many delivered) per
entry, and an active array. External tools can read or write these files;
the server picks changes up within pollSeconds.
- Minecraft 1.21 / 1.21.1 and 26.3, with the matching Fabric API.
Build all supported jars with
python3 tools/multiversion.py(JDK 21 and 25). - Old clients keep working against newer servers (versioned network channels).
- The state format is compatible with the schemlist MCDR plugin, if you come from that ecosystem.
MIT. HUD layout inspired by Litematica's material list; written from scratch, no code copied.






