Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
Standalone Minecraft plugin (Paper/Purpur 1.21.x, Java 21+) for custom items, blocks, furniture, and HUD elements. No dependencies on other plugins.
Smart Pack Engine: any pack in, a working pack out
Smart import. Drop any resource pack into imports/ or run /tessera pack import <url>. Tessera reads it like a person would: it detects the format and Minecraft version, follows every model reference, recognises retextures, custom items, furniture and mod assets, merges it with your pack instead of overwriting files, and creates the items for you. The build runs async, so even huge packs never freeze the server. Changed your mind? /tessera pack undo.
Pack Doctor. Purple and black textures? Run /tessera pack doctor. It finds every missing model, texture, font bitmap, broken JSON, bad file name and leftover mod file, then asks [YES] / [NO]. One click: Tessera backs up the pack, renames, rewrites and cleans what is broken, rebuilds and resends it to players.
It tells you when something is wrong. If the pack fails to load for a player, admins get a clickable /tessera pack doctor button in chat. No digging through logs.
> /tessera pack doctor
════ Pack Doctor ════
» Kind: MIXED, pack_format 84
» Models: 14935, textures: 5681, blockstates: 1468
✘ 203 problems (shown as missing textures in game):
! assets/minecraft/blockstates/polished_cut_diorite.json: there is no such block (+11 more)
! assets/minecraft/textures/block/wild_carrots_3D.png: file name the client does not accept
! assets/Actually3dBlocksAndItems: namespace the client does not accept
Fix these automatically? A backup of the pack is made first.
[YES] [NO]
Renamed 41, updated 96 and removed 188 files.
✔ No broken references found.
Requirements: Java 21+, Paper or Purpur 1.21.x

Tessera builds a resource pack on server boot from whatever you define in config: models, textures, sounds, fonts and glyphs. You don't hand-pack anything yourself.
- The pack is built on startup and on
/tessera reload, with 1.21.4+ item definitions written for you. - Every build is checked for missing models and textures.
/tessera pack doctorlists what would show as purple and black in game. - Drop any resource pack into
imports/: Tessera analyses it, merges it with your pack instead of overwriting files, and creates items and furniture for what it adds. /tessera migratemoves items, models and textures over from other item plugins.- MiniMessage everywhere, with non-italic item text and glyphs drawn without shadow.

Items:
modelplusitem_model(1.21.4+) orcustom_model_data. Tessera writes the item definition.- Mechanics on hit and on click: lifesteal, lightning, explosions, potion effects, sounds, particles, commands and cooldowns.
- MiniMessage names and lore, unbreakable, stack size, glyphs in text.
Blocks:
- Built on note blocks, each with its own block state, so your model shows in the world and in hand.
- Real break times from
hardness, tool tiers, light levels, drop tables and sounds. - WorldGuard, GriefPrevention and Towny are respected for furniture.
Furniture:
- Built from
ItemDisplayandInteractionentities — includes seating and hitboxes sized to the model. - State persists across restarts and chunk unloads.

- Custom icons registered as font glyphs, usable as
:id:in any Tessera text. - Actionbar HUD with health, ping, coordinates, PlaceholderAPI and several elements at once.
- A banner in place of the Escape menu title, and any pause menu label replaced from config.

- Drop
Tessera.jarintoplugins/. - Start the server (Java 21+, Paper/Purpur 1.21.x).
- Tessera creates its config folders on first run:
items/,blocks/,furniture/,glyphs/,hud/, and builds the pack atplugins/Tessera/pack/. - Send players the generated pack, or let the built-in sender handle it.

| Command | Permission | Description |
|---|---|---|
/tessera menu |
— | Opens the GUI dashboard |
/tessera give <player> <id> [amount] |
tessera.give |
Gives a custom item to a player |
/tessera pack |
tessera.admin |
Regenerates and hosts the resource pack |
/tessera reload |
tessera.admin |
Reloads configs, glyphs, and modules |
Full command list (30+)
| Command | Permission | Description |
|---|---|---|
/tessera help [1-3] |
— | Lists commands, paginated |
/tessera menu [category|query] |
— | Opens the main GUI hub |
/tessera browse |
— | Opens the item/block browser |
/tessera admin |
tessera.admin |
Opens the admin dashboard |
/tessera settings |
— | Opens player settings (HUD, pack) |
/tessera get <id> [amount] |
tessera.get |
Gives yourself a custom item or block |
/tessera give <player> <id> [amount] |
tessera.give |
Gives an item to another player |
/tessera giveall <id> [amount] |
tessera.giveall |
Gives an item to all online players |
/tessera drop <id> [amount] [world x y z] |
tessera.drop |
Drops a custom item at a location |
/tessera durability <get|set|add|repair> [amount] |
tessera.durability |
Checks or adjusts item durability |
/tessera cmd <get|set> [value] |
tessera.admin |
Reads or sets CustomModelData on the held item |
/tessera nbt |
— | Lists PersistentDataContainer keys on the held item |
/tessera killfurniture [radius] |
tessera.admin |
Removes furniture entities nearby |
/tessera cleartemp |
tessera.admin |
Cleans up orphaned seat entities |
/tessera sound <name> [vol] [pitch] |
— | Plays a sound at your location |
/tessera stats |
tessera.admin |
Shows memory, thread, and registry counts |
/tessera emote <name> |
— | Plays a cosmetic particle/sound effect |
/tessera export |
tessera.admin |
Exports a catalog manifest to JSON |
/tessera recipe <id> |
— | Opens the crafting recipe viewer |
/tessera inspect |
— | Shows PDC/data components on the held item |
/tessera search <query> |
— | Searches items, blocks, and furniture by id |
/tessera hat |
— | Wears the held item as a hat |
/tessera sit |
— | Sits on the targeted block |
/tessera repair [hand|all] |
tessera.repair |
Repairs item durability |
/tessera block <info|remove> |
remove: tessera.admin |
Inspects or removes a custom block |
/tessera furniture <list|remove> [radius] |
remove: tessera.admin |
Lists or removes nearby furniture |
/tessera debug [entities] |
tessera.admin |
Runs a benchmark or entity report |
/tessera hud |
— | Toggles the actionbar HUD |
/tessera pack [generate|apply|push|import|doctor] |
tessera.admin |
Regenerates, pushes, imports or checks the resource pack |
/tessera migrate [folder] |
tessera.admin |
Migrates items and assets from other item plugins |
/tessera welcome |
tessera.admin |
Replays the welcome sequence |
/tessera reload |
tessera.admin |
Hot-reloads configs and modules |
/tessera info |
— | Shows plugin version and registry counts |

Each content type has its own folder and YAML format. Example item config:
# plugins/Tessera/items/quantum_blade.yml
quantum_blade:
material: NETHERITE_SWORD
display_name: "<gradient:#00F0FF:#0077FF><bold>Quantum Blade</bold></gradient>"
item_model: shop:quantum_blade
model: shop:item/quantum_blade
lore:
- "<dark_gray>Artifact • Weapon"
- ""
- "<gray>Striking tears through the local spacetime continuum."
unbreakable: true



