Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
A lightweight Minecraft (Paper) plugin that displays the names of items placed on shelves (*_SHELF) as a hologram above the block when a player looks at it.
The plugin is designed with a focus on performance, no unnecessary allocations, and minimal impact on the server thread.

Polish version of the description on GitHub
Features
- Shows item names from a shelf as a hologram
- Supports every wooden shelf variant (
Tag.WOODEN_SHELVES) - Preserves item name colors and formatting
- Updates the hologram only when the contents actually change
- Automatically removes the hologram once the player looks away
- No flickering and no redundant updates
- Fully compatible with Adventure / MiniMessage
How it works
- Every configured number of ticks the plugin checks which block the player is looking at
- If it's a shelf:
- its position is compared with the previous one (cache)
- a snapshot of the contents is taken only when the looked-at shelf changes
- The hologram is updated only after the looked-at shelf changes
- Expensive operations (
BlockState) are performed only when actually needed
Commands & permissions
| Command | Permission | Description |
|---|---|---|
/shelfnames (or /shelfnames info) |
(none) | Plugin info: name, version, GitHub link |
/shelfnames clear |
shelfnames.admin |
Removes every hologram created by the plugin |
/shelfnames reload |
shelfnames.admin |
Full restart: destroys holograms, reloads config.yml, restarts components |
Players without shelfnames.admin can only run the bare /shelfnames (info) command. shelfnames.admin defaults to OP.
Requirements & dependencies
Requirements: Paper 1.21+, FancyHolograms 2.8.0+, Java 21.
Dependencies: (soft) FancyHolograms, Paper API, Adventure (bundled with Paper).
Unsupported integrations
DecentHolograms — DecentHolograms is not supported, as its public API exposes no hologram pinning (billboard FIXED), scaling, or background, so the integration cannot be done the way it is for FancyHolograms or the Bukkit API. Dependency-free replacement: the STANDALONE provider (Bukkit TextDisplay), which honors hologram.scale and hologram.position-fixed.
Notes
Configuration: a full example config.yml, with comments for every option, is available on GitHub: config.yml.
Planned features: optional transition smoothing (fade in / fade out).
Technical notes: the plugin does not use NMS, does not send its own packets, and does not interfere with the server tick loop. It was optimized using the Spark Profiler and tested under realistic load.


