-
Notifications
You must be signed in to change notification settings - Fork 0
Home
3DEH replaces armor-stand holograms with Minecraft's native display entities: TextDisplay,
BlockDisplay and ItemDisplay.
An armor-stand hologram is a real entity. It ticks, it is saved to the region file, it takes part in entity collision checks, and a few hundred of them show up in a timings report. A display entity does none of that — it exists to be drawn by the client and nothing else. There is no AI, no physics, no collision box, and no per-tick server cost worth measuring.
3DEH spawns them non-persistently, so the server never writes them into a region file. The
definitions live in data.yml, and the entities are rebuilt from that whenever a chunk loads. Two
consequences worth knowing:
- A crash, a
/stop -9, or a world rollback cannot leave orphaned holograms in the world. - Editing
data.ymlby hand and running/3deh reloadis a supported workflow.
- Paper 1.20.6 or newer, or Folia. Spigot is not supported.
- Java 21 or newer.
Paper 1.20.6 is the floor because it is the first release exposing the Brigadier command API. The Folia regional schedulers arrived slightly earlier, in 1.20.1, so 1.20.6 satisfies both.
3DEH runs unmodified on Folia. There is no separate build and no compatibility mode.
Every scheduled task goes through the regional scheduler API — RegionScheduler for work anchored to
a position, EntityScheduler for work touching a live entity, AsyncScheduler for disk I/O. Paper
implements those interfaces on top of its own main thread, so the same code path is correct on both
platforms and BukkitScheduler appears nowhere in the plugin.
A hologram is a named group of parts sharing one anchor location:
shop <- name, anchored at one x/y/z in one world
├── part #0 text "Market" <- offset 0, 0, 0
└── part #1 item DIAMOND <- offset 0, 0.6, 0
Each part is one display entity with its own offset, scale, rotation and billboard mode. The anchor
is what /3deh move changes; part offsets are relative to it, so moving a hologram keeps its layout
intact.
Every part is centred on its position — block parts included, even though a raw block display hangs
off its position by a corner — and holds still until you ask it to face the player with
/3deh edit <name> billboard center.
A hologram always has at least one part. Removing the last one is refused — delete the hologram with
/3deh remove instead.
/3deh create text welcome <gradient:#4facfe:#00f2fe><bold>Welcome</bold></gradient>
/3deh edit welcome scale 1.5
/3deh edit welcome billboard center
/3deh create selects the new hologram automatically, so the follow-up commands can drop the name:
/3deh edit scale 1.5
Look at an existing hologram and run /3deh select to target it the same way.
- Commands and Permissions — every command, every attribute
-
Configuration —
config.ymland thedata.ymlformat - Developer API — using 3DEH from another plugin