Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for castledking

Brings Cinch's Missing Blocks to Paper servers using CraftEngine, also adds horizontal stairs and vertical slabs!

Report CinchsMissingBlocksPaperized?

R

1.0.0

Cinch's Missing Blocks — Paperized v1.0.0

Highlights

  • No client mod — A CraftEngine pack plus the cmb companion plugin. Players join with a vanilla client and are sent the pack from the server. The jar is the whole install: it bundles the generated pack and writes it into CraftEngine on every start.
  • 996 placeable pieces — 347 blocks and 649 furniture, covering every family the mod has. All 381 of the mod's blocks ship.
  • Zero vanilla collateral — Every block state CMB uses is one CraftEngine has already freed. No barrel, crafter or chiseled bookshelf changes appearance, and nothing ships as a datapack.
  • Walls, fences and panes — the families the earlier plan deferred. Every vanilla wall and fence blockstate is multipart, and overwriting one strips the multipart rules from thousands of real wall states. So they are furniture instead, with real posts and connection behaviour rather than a borrowed state.
  • Vertical slabs and horizontal stairs — a slab stood on edge and a stair on its side, for CMB and vanilla materials, with ground, wall and ceiling placement and real collision.
  • Warped nether wart — this port's own addition, a four-age crop with real growth and drops.
  • Native drops, recipes, mining tags and creative categories — translated from the mod's own data into CraftEngine config.

Technical Details

Most of it is furniture, on purpose

A CraftEngine block is drawn on a vanilla block state, which is where its collision comes from — and borrowing one is only safe when a real block in that state is pixel-identical. That is a short list, so most of this pack is furniture: a display entity for the model, and CraftEngine's built-in scaled shulker hitbox for collision. Walls, fences, panes, horizontal stairs and vertical slabs are all served this way, which is what makes them usable rather than merely visible.

The trade is real and deliberate: furniture is an entity, so it does not emit neighbour updates and carries no redstone. For building blocks that is the right trade. Those families are therefore opt-in — features.vertical-slabs, features.horizontal-stairs and features.furniture-fallback in plugins/CMB/config.yml. The plain blocks, stairs and slabs are always on.

What is a real block

347 pieces are real CraftEngine blocks with vanilla collision: 174 vertical-slab doubles (two stacked vertical slabs make the full block), 94 slab doubles, 61 full cubes, the five nether brick fences — drawn over vanilla's own, so they connect like the real thing — and 13 pillars rotating on all three axes. Each takes auto_state: solid, a state CraftEngine allocates at load time on whatever server runs it, so the pack never competes with real blocks for one and no vanilla block ever changes appearance.

A doubled slab is one piece, not two, and it is a real block: place two in a cell and it becomes a block on the solid pool with its own hardness, mining tags, sounds and loot. A furniture representation of the same doubled slab ships alongside it, and the difference is not cosmetic — the block form mines like a block and takes pistons, the furniture form breaks in one hit like the slab. features.vertical-slabs.doubles chooses between them, and ships both by default, so a server can pick.

That is two representations of one piece, which is why the totals do not count the doubles twice: 268 of the ids in the furniture tree are also in the block tree.

Verification

Every release build re-derives these and fails on any that does not hold. CI runs them on every push, so a green run is evidence rather than a claim:

gate what it proves
carrier_eligibility no borrowed state is a multipart one, or collision-unsafe
carrier_invariant claimed states are released, lendable and distinct
block_schema every declared variant resolves
model_references every model named by a blockstate exists
l10n_references every translation key referenced is declared
native_functionality drops, recipes and mining tags survive the port
deferred_references nothing emitted names a deferred block
yaml_sizes no generated file is over CraftEngine's limit

On 26.3 the release build enables 381 of 381 mod blocks, 1,822 items, 1,383 recipes and 368 CraftEngine internal states.

Placement

Pieces replace what vanilla placement replaces — short grass, dead bushes, leaf litter, snow layers, seagrass — and leave the water where the plant was underwater. A vertical slab is double-clickable into a full block, and horizontal stairs are the corner piece for vertical slab walls.

Installing

Drop cmb into plugins/ and start the server. CraftEngine is the only dependency, and CMB disables itself with a clear message if CraftEngine is absent, because every CMB block is a CraftEngine block.

/cmb reload all re-reads the config, reinstalls the pack and has CraftEngine rebuild. The first time an admin joins, CMB sends a short setup summary; /cmb setupmsg brings it back.

Resource pack delivery defaults to CraftEngine. If ResourcePackManager is installed, set resource-pack.delivery: rspm and CMB switches CraftEngine's own sending off so the packs merge instead of competing.

Requirements

  • Paper 1.21.1 – 26.3
  • Java 21 or newer (Paper 26.x itself needs Java 25)
  • CraftEngine 26.9 or newer

These apply from the build that follows this release: the 1.0.0 jar first published was built for Paper 26.3 and Java 25 only, and refuses to load on Java 21. The current build is one Java 21 jar for the whole range, booted in CI on 1.21.1, 1.21.11 and 26.3. On a server older than 26.x, vertical slabs and horizontal stairs of vanilla materials it doesn't have (cinnabar, sulfur and poplar; before 1.21.4 also pale oak and resin bricks) are left out automatically.

1.20.x and older, 1.8 included, are not supported, and can't be: CraftEngine's oldest supported version is 1.20.1, and CraftEngine applies the shulker hitbox scale every CMB furniture piece collides through only from 1.20.5 (ShulkerFurnitureHitbox, behind VersionHelper.isOrAbove1_20_5), so below that every piece would collide as a full block.

Known limitations

  • Furniture does not emit neighbour updates and carries no redstone.
  • Cinch stairs do not form corners with vanilla stairs, in either direction.
  • Tinted glass panes are served as furniture, so they take several hits to break and carry no crack animation, like the other furniture families.
  • Pieces need CraftEngine's shulker hitbox, so the pack is CraftEngine-specific by design.
  • Jade, WorldEdit and similar overlays report the vanilla carrier block, not the CMB piece — Jade saying "Red Mushroom Block" over polished end stone bricks is the design working, not a defect. CMB borrows no real blockstate, so a tool asking the client which vanilla block is at this position gets the carrier. Jade has no CraftEngine integration, and its lookup only accepts a vanilla Block, so there is nothing to configure. In-world models, collision and breaking are CMB's own.

Full detail on the wiki: Known limitations.

Information

Published
October 8, 2026
4Downloads

Platforms

Paper
Paper
1.21.1–26.3

Dependencies

PaperPaper

Dependencies: Paper

Plugins and libraries a server needs for this version to run.

No dependencies

Add anything a server has to install alongside this version.