Diegesis
A library for interfaces that live on the block itself.
Using a block flies the camera to it. The player then works with real 3D objects on that block: moves items, pulls levers, turns knobs, pours liquids. Everyone standing nearby sees it happen.
Diegesis adds nothing to the game on its own. Install it when a mod asks for it, such as Hands-On Delight.

The cooking pot of Hands-On Delight, built with Diegesis.
🎮 For players
Put it in the mods folder next to the mod that needs it. Minecraft 1.20.1, on Forge or Fabric (with Fabric API).
🛠️ For modders
An interface is two things. A station in Java says which blocks it opens on, what state it keeps and what the rules are. A scene in JSON says what is drawn where and what can be touched. Models come straight from Blockbench, and scenes reload with F3+T while the game runs.
- 🎥 Camera and scenes: a camera rig per scene, nodes that nest, move, turn, scale, fade and glow.
- 📦 Items on the block: clicks work as in a vanilla menu, including shift-click, splitting and dragging a stack across slots. The inventory can be a drawer or laid out in the world.
- ✋ Carried objects: held by a grip point, with weight and lean, a shadow of their own shape and triggers on touch.
- 💧 Liquids and pouring: tanks hold real volumes and mixtures that rock and ripple. The server paces and checks every pour.
- 🎛️ Ready controls: lever, rocker switch, push button, knob and slider, one line of JSON each.
- ✨ Particles, light and sound: emitters, boiling surfaces, glowing nodes that light what is near.
- 🪑 Seats and multiblocks: a station can span several blocks and seat several players, each with their own view.
- 🌐 Client-only or server: client stations work on any server. Server stations check every action, so items cannot be duplicated, and share one state between players.
📚 Guides, a cookbook and a JSON schema for scene files are on GitHub.
Compatibility
✅ Embeddium and
✅ Oculus: scenes, liquids and particles draw as usual, with or without a shader pack
More mods by Pocky
Made by Pocky. Source on GitHub under the MIT license.

