Appearance
Getting Started
Tessera is a PaperMC plugin that replaces the vanilla block-break animation with a lattice of player-head ItemDisplay entities. Each broken block is split into an N×N×N grid (default 4×4×4 = 64 chunks per block, 56 visible) that animate independently — chunks shrink or pop in a wave aligned to the breaker's view direction, in sync with live mining progress.
A curated set of common blocks ships pre-baked into heads.json, so a freshly installed plugin handles those blocks with zero network calls. Anything outside that list is baked on demand at runtime, which requires a free MineSkin API key.
Requirements
- Server: PaperMC, API version
1.21(tested against MC 1.21.4). - Java: 21 or later.
- Network: Outbound HTTPS to
mineskin.orgis required only when baking blocks at runtime (i.e. for blocks not in the bundledheads.json).
Folia is not supported.
Install
- Place the plugin jar (
tessera-<version>.jar) into your server'splugins/directory. - Start the server once. Tessera will create
plugins/Tessera/config.ymlwith sensible defaults. - (Optional but recommended) Open
plugins/Tessera/config.yml, setmineskin.apiKeyto a key from account.mineskin.org, and run/tessera reload(or restart the server). Without a key, Tessera only animates the blocks present inheads.jsonand falls back to the vanilla particle animation for everything else.
First test
Once the plugin is loaded:
- Join the server as an op (the
tessera.commandpermission defaults toop). - Look at a block.
- Run
/tessera test stone. Ifstoneis already baked you'll see a FakeBlock spawn instantly; otherwise Tessera will upload skins to MineSkin (a few seconds) and then spawn it. - Try
/tessera test stone static— that variant skips the shrink effect and lingers for five minutes so you can walk around and inspect.
If the test command works, breaking blocks normally will now play the chunked animation (subject to the configuration).
Next steps
- Tune
chunkGridSize, animation timing, and the materials allowlist in Configuration. - Browse the Commands reference for the available
/tesserasubcommands and the permission node.