Elite Holograms
Elite Holograms is a lightweight Minecraft mod for creating, managing, and customizing floating text (holograms) right from in-game commands. Perfect for server info, leaderboards, waypoints, shops, live stats, rules, and decorative text.
Works in single-player worlds, modpacks, and on multiplayer servers. It runs server-side, so on a server your players join with a vanilla client and still see everything. No external placeholder API, no fuss. Just drop it in and start building.
Inspired by Advanced Holograms. Supports Forge (1.19.2, 1.20.1), Fabric (1.20.1) and NeoForge (1.21.1, 26.1, 26.2). The Fabric edition requires Fabric API.
For full setup and command details, see the Wiki.

Why Elite Holograms?
- Plays everywhere: single-player worlds, modpacks, and multiplayer servers all supported.
- Server-side only: on a server, players join with a vanilla client and still see everything.
- Modpack-friendly: drop it into any Forge, Fabric, or NeoForge pack with no client-side setup.
- Almost no dependencies: the placeholder system is built in, no PlaceholderAPI needed. Only the Fabric edition needs anything alongside it, and that is just Fabric API.
- Persistent: holograms survive restarts with safe, synchronous saves on shutdown.
- Beautiful out of the box: MiniMessage gradients, hex colors, and rainbows on every line.
- Built for servers: runs on its own manager thread with graceful shutdown and minimal overhead.
What's New in 1.3.0
- Clickable holograms:
/eh click <id> set <command...>makes a hologram run a command when a player right-clicks it, andconsole <command...>runs it elevated for warps and kits players cannot run themselves.%player%is replaced with the clicker's name. Anything that used to be a sign and a pressure plate can now be a hologram. It works on fixed and player-facing holograms and needs no client mod, andconsoleis gated on the admin permission so it cannot be used to hand out operator commands. Not available on Forge 1.19.2. /eh display <id> scale <0.1-10>: resize a fixed hologram's text. Line spacing grows with the scale, so a scaled-up hologram never overlaps its own lines./eh display <id> brightness <0-15|auto>: light the text regardless of the surrounding light level.15makes a hologram readable at night without placing a single block in the world, which for most people is what backlights were for./eh display <id> billboard <fixed|vertical|horizontal|center>: control how a fixed hologram turns.verticalis the one to know: the text follows the player horizontally but never tilts, so it stays readable from any direction without lying on its back when someone flies overhead.- Fixed: scoreboard holograms lost their styling on restart: leaderboards are stored in their own file, and the Forge 1.20.1 and Fabric editions never wrote background settings there, so a restyled board reverted to the default on restart. Boards now keep their background, scale, brightness, billboard and click command like any other hologram.
- Crash-safe saves: every save writes a complete file and swaps it in atomically, keeping the previous version as a backup. A crash or power cut can no longer leave a missing or half-written hologram file, and a damaged one is restored from its backup automatically
- Nothing is deleted behind your back: a hologram or scoreboard in a dimension that isn't loaded (say, after removing the mod that adds it) is kept in the file untouched and comes back when the dimension does. It used to be erased by the next save
/eh reloadloads your hand edits: it used to save what was in memory first, overwriting the very edit it was meant to load- Deleting your last scoreboard now sticks: it used to come back on the next restart
- Console and command blocks:
/eh addline,setline,insertline,removeline,deleteandinfonow work from the console and command blocks on Forge and Fabric, as documented
What's New in 1.2.1
/eh background <id> ...: restyle the panel behind a fixed hologram's text. Vanilla draws it as 25% opaque black; nowcolour <name or #RRGGBB>recolours it,opacity <0-100>sets how solid it is,noneremoves it entirely for floating text with no box, andresetrestores the vanilla look.- Forge 1.19.2 command parity:
/eh backlight,/eh settheme,/eh listand/eh moveverticalwere being registered twice on that edition, and whichever registration ran last won, so several commands reported "Unknown command" despite shipping. All 23 subcommands now resolve against a single registry. - Fixed:
fixedandfacingwere swallowed into hologram text:/eh create shop fixed Welcomeproduced a hologram reading "fixed Welcome". Both keywords are now recognised on every create command.
What's New in 1.2.0
- New Fabric 1.20.1 edition: Elite Holograms now runs on Fabric with the same feature set as the Forge 1.20.1 edition: holograms, fixed holograms, item holograms, animated lines, scoreboard leaderboards, themes, backlights, placeholders, and every command. It requires Fabric API, is server-side only, and reads the same hologram config format, so a world can move between the Forge and Fabric editions without converting anything. Permissions work through LuckPerms or FTB Ranks, falling back to OP level 2.
- New NeoForge 26.2 edition: full feature parity on Minecraft 26.2, built against NeoForge 26.2.0.57 and Java 25.
- Fixed Holograms: holograms can now be anchored to a rotation instead of always turning to face the viewer. A fixed hologram reads like a sign hung on a wall and looks the same to everyone, which is what you want for anything mounted flat against a build. Add
fixedto any create command (/eh create fixed <id> <text>), aim it with/eh setrotation <id> <yaw> [pitch], or switch an existing hologram over with/eh convert <id> fixed. Player-facing stays the default and nothing you already built changes. Requires Minecraft 1.20.1 or newer, so it is not available on the Forge 1.19.2 edition. - Centred backlights: a hologram sitting near a block edge used to be lit noticeably off to one side, because light blocks can only occupy whole block cells. The light column now widens onto the neighbouring cell when needed, keeping the glow centred on the text.
- Fixed: hologram lines could show each other's text: different hologram entity types were handing out overlapping network IDs, which made the client apply one line's text to another.
What's New in 1.1.0
- Backlights:
/eh backlight <id> <on|off|toggle> [height 1-10]raises a column of full-brightminecraft:lightblocks behind a hologram so it stays readable at night. Backlights follow the hologram when it moves, persist across restarts, and never overwrite player builds (only air and water cells are lit). - Scoreboard Themes: restyle leaderboards with named themes. Ships with
default,ocean,blood,mono,gold, andrainbow, all editable inconfig/eliteholograms/scoreboard_themes.json. Add your own to match your server brand. /eh settheme <id> <theme>: re-skin an existing scoreboard instantly, no need to recreate it. Both arguments tab-complete.- Smarter tab completion: the
<objective>argument now suggests every objective registered on the server, and[theme]suggests available theme names. - Live reload:
/eh reloadrefreshes scoreboard themes from disk without a server restart. - NeoForge 26.1 edition: full feature parity on Minecraft 26.1, built on Java 25.
Key Features
- MiniMessage & Gradients: full Kyori MiniMessage support for gradients, hex colors, rainbows, and rich formatting on every line (legacy
&codes work too). - Persistent Holograms: survive restarts with synchronous saves on shutdown.
- Multi-Line Management: add, insert, set, and remove individual lines.
- Item Holograms:
/eh createitemspawns a floating item above the caption, ideal for shops and showcases. - Scoreboard Leaderboards: display the top players from any objective with custom row counts, refresh intervals, and themes. Online and offline players included; time and number objectives are auto-formatted.
- Animated Lines: rotate text on a timer for countdowns, tips, and announcements.
- Backlights: light up holograms at night without touching the surrounding build.
- Fixed Holograms: anchor a hologram to a rotation so it reads like a wall sign (1.20.1+).
- Clickable Holograms: run a command when a player right-clicks a hologram, as the player or elevated as the console (1.20.1+).
- Display Control: scale a fixed hologram's text, light it to any brightness with no blocks placed, recolour the panel behind it, and choose how it turns towards the viewer.
- Position Control: create at your location, teleport to any hologram, and nudge vertically with
/eh movevertical. - Built-in Placeholders: real-time server and player stats with no external API.
- Advanced Permissions: integrates with LuckPerms and FTB Ranks, with OP level 2 fallback and granular nodes.
- Tab Completion Everywhere: Brigadier suggestions for IDs, objectives, themes, and more.
- Nearby Discovery:
/eh nearlists holograms around you. - Cross-Platform: Forge 1.19.2, Forge 1.20.1, Fabric 1.20.1 (needs Fabric API), NeoForge 1.21.1, NeoForge 26.1, and NeoForge 26.2, in single-player, modpacks, or servers.
Command Reference
Every create command takes an optional fixed or facing keyword immediately after the subcommand. Leave it out and you get a player-facing hologram, which is the default.
Creating
/eh create <id> <text...>: create a hologram at your location/eh createat <id> <x> <y> <z> [text...]: create one at explicit coordinates/eh createitem <id> <item> <text|line|line>: create one with a floating item on top/eh createscoreboard <id> <objective> [topCount] [interval] [theme]: create a leaderboard from a scoreboard objective
Lines
/eh addline,/eh setline,/eh insertline,/eh removeline: manage individual lines/eh animateline <id> <line#> <interval> <frame1|frame2|...>: animate a line on a timer
Appearance
/eh settheme <id> <theme>: restyle an existing scoreboard hologram/eh backlight <id> <on|off|toggle> [height 1-10]: toggle a light column behind a hologram/eh convert <id> fixed|face: switch a hologram between fixed and player-facing/eh setrotation <id> <yaw> [pitch]: aim a fixed hologram (yaw 0 south, 90 west, 180 north, 270 east)/eh background <id> <colour|opacity|none|reset>: restyle the panel behind a fixed hologram's text/eh display <id> <scale|brightness|billboard|reset>: resize, light, or change how a fixed hologram turns
Interaction
/eh click <id> set <command...>: run a command as the clicking player/eh click <id> console <command...>: run it elevated (needs the admin permission)/eh click <id> none: stop the hologram being clickable
Position
/eh movehere <id>: move a hologram to you/eh movevertical <id> <up|down> <amount>: nudge it up or down, e.g.up 1.5/eh teleport <id>: teleport to a hologram
Browsing and admin
/eh list,/eh near [page],/eh info <id>: browse and inspect holograms/eh delete <id>: remove a hologram/eh reload: reload holograms and themes from storage
Placeholders
No external API needed. Placeholders update in real time, including per-viewer player values.
Server-wide: %players%, %maxplayers%, %tps%, %uptime%, %memory%, %server_time%
Player-specific: %player%, %player_rank%, %player_health%, %player_level%, %player_world%, %player_coords%, %player_gamemode%
Example:
/eh create welcome <gradient:#00FFA3:#00B7FF>Welcome %player%!</gradient>
/eh addline welcome &7Your rank: &e%player_rank%
/eh addline welcome &7Online: &a%players%&7/&a%maxplayers% TPS: &a%tps%
Permissions
Elite Holograms auto-detects LuckPerms and FTB Ranks, and falls back to OP level 2 when neither is present. Console and command blocks always have full access.
Granular nodes let you hand out exactly what you want without making anyone an operator:
eliteholograms.create, eliteholograms.delete, eliteholograms.edit, eliteholograms.list, eliteholograms.info, eliteholograms.near, eliteholograms.teleport, eliteholograms.backlight, eliteholograms.admin
See the Permissions Guide for group setups and examples.
Installation
- Download the build matching your loader and Minecraft version (Forge 1.19.2 / 1.20.1, Fabric 1.20.1, NeoForge 1.21.1 / 26.1 / 26.2).
- Drop the JAR into your
modsfolder. Your single-player instance, modpack, or server all work the same way. - Fabric only: also install Fabric API. The Fabric edition will not load without it. The Forge and NeoForge editions need nothing extra.
- (Optional) Install LuckPerms or FTB Ranks for granular permissions on a server.
- Launch the game or restart the server, then run
/eh createto get started.

Built for Forge 1.19.2 / 1.20.1, Fabric 1.20.1, and NeoForge 1.21.1 / 26.1 / 26.2.
How to Install Elite Holograms (Mod)
Elite Holograms by EliteScouter is verified for Fabric, Forge, Neoforge across Minecraft versions 1.19.2, 1.19.3, 1.19.4, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5 (latest release: 26.2-1.3.0, file size: 1.0 MB). Follow the steps below to install it safely from ModCraft.tv:
- Click the Download button above and select your Minecraft version (1.19.2, 1.19.3, 1.19.4, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5) and platform (Fabric, Forge, Neoforge).
- Make sure you have the compatible loader or environment installed for Fabric, Forge, Neoforge.
- Move the downloaded Elite Holograms file into your Minecraft
.minecraft/modsfolder and launch the game.
All Versions
+ Add Version### Added
- Clickable holograms.**
/eh click <id> set <command...>makes a hologram run a command when a player right-clicks it,console <command...>runs it elevated, andnoneturns it off.%player%in the command is replaced with the clicking player's name. Use it for warp signs, shop buttons, quest turn-ins, or anything that was previously a sign and a pressure plate. Clicking is backed by a real, invisibleminecraft:interactionhitbox placed over the text, which is why it works on every loader without a client mod /eh display <id> scale <0.1-10>** resizes a fixed hologram's text. Line spacing widens with the scale, so a scaled-up hologram does not overlap its own lines, and the top line stays anchored where the hologram is/eh display <id> brightness <0-15|auto>** lights the text regardless of the surrounding light level.15makes a hologram readable at night **without placing a single block in the world**, which for most people is what/eh backlightwas being used for.autorestores world lighting/eh display <id> billboard <fixed|vertical|horizontal|center>** controls how a fixed hologram turns towards the viewer.verticalis worth knowing about: the text turns to follow the player horizontally but never tilts, so it stays readable from any direction without lying on its back when someone flies overhead.fixedremains the default/eh display <id> reset** restores all three at once
### Changed
- The three display settings are grouped under one
/eh displaycommand rather than three top-level ones, to keep the/ehtab-completion list readable - Each save now keeps the previous version** of the file alongside it as
holograms.json.bak/scoreboard_holograms.json.bak, which is restored automatically if the main file is ever found damaged. An unreadable file is kept as.corrupt-<timestamp>rather than overwritten, so nothing in it is lost
### Fixed
- Scoreboard holograms did not keep their background settings.** Boards persist to their own
scoreboard_holograms.jsonrather than toholograms.json, and the Forge 1.20.1 and Fabric editions never wrote the background colour and opacity there, so a restyled board reverted to 25% black on restart. All editions now persist the full set (background, scale, brightness, billboard and click command) for scoreboard holograms as well as regular ones /eh moveverticalcould be run by any player on Forge 1.20.1 and Fabric.** Every other subcommand declares the permission node it needs when its brigadier literal is built, butmoveverticalwas registered and given arguments without ever being added to that chain, and its handler class carried no check of its own. The only gate left was the one on the base/ehliteral, which iseliteholograms.list. Every user of the mod needs that node, so anyone who could run/ehat all could move any hologram v
### Added
- Clickable holograms.**
/eh click <id> set <command...>makes a hologram run a command when a player right-clicks it,console <command...>runs it elevated, andnoneturns it off.%player%in the command is replaced with the clicking player's name. Use it for warp signs, shop buttons, quest turn-ins, or anything that was previously a sign and a pressure plate. Clicking is backed by a real, invisibleminecraft:interactionhitbox placed over the text, which is why it works on every loader without a client mod /eh display <id> scale <0.1-10>** resizes a fixed hologram's text. Line spacing widens with the scale, so a scaled-up hologram does not overlap its own lines, and the top line stays anchored where the hologram is/eh display <id> brightness <0-15|auto>** lights the text regardless of the surrounding light level.15makes a hologram readable at night **without placing a single block in the world**, which for most people is what/eh backlightwas being used for.autorestores world lighting/eh display <id> billboard <fixed|vertical|horizontal|center>** controls how a fixed hologram turns towards the viewer.verticalis worth knowing about: the text turns to follow the player horizontally but never tilts, so it stays readable from any direction without lying on its back when someone flies overhead.fixedremains the default/eh display <id> reset** restores all three at once
### Changed
- The three display settings are grouped under one
/eh displaycommand rather than three top-level ones, to keep the/ehtab-completion list readable - Each save now keeps the previous version** of the file alongside it as
holograms.json.bak/scoreboard_holograms.json.bak, which is restored automatically if the main file is ever found damaged. An unreadable file is kept as.corrupt-<timestamp>rather than overwritten, so nothing in it is lost
### Fixed
- Scoreboard holograms did not keep their background settings.** Boards persist to their own
scoreboard_holograms.jsonrather than toholograms.json, and the Forge 1.20.1 and Fabric editions never wrote the background colour and opacity there, so a restyled board reverted to 25% black on restart. All editions now persist the full set (background, scale, brightness, billboard and click command) for scoreboard holograms as well as regular ones /eh moveverticalcould be run by any player on Forge 1.20.1 and Fabric.** Every other subcommand declares the permission node it needs when its brigadier literal is built, butmoveverticalwas registered and given arguments without ever being added to that chain, and its handler class carried no check of its own. The only gate left was the one on the base/ehliteral, which iseliteholograms.list. Every user of the mod needs that node, so anyone who could run/ehat all could move any hologram v
### Added
- Clickable holograms.**
/eh click <id> set <command...>makes a hologram run a command when a player right-clicks it,console <command...>runs it elevated, andnoneturns it off.%player%in the command is replaced with the clicking player's name. Use it for warp signs, shop buttons, quest turn-ins, or anything that was previously a sign and a pressure plate. Clicking is backed by a real, invisibleminecraft:interactionhitbox placed over the text, which is why it works on every loader without a client mod /eh display <id> scale <0.1-10>** resizes a fixed hologram's text. Line spacing widens with the scale, so a scaled-up hologram does not overlap its own lines, and the top line stays anchored where the hologram is/eh display <id> brightness <0-15|auto>** lights the text regardless of the surrounding light level.15makes a hologram readable at night **without placing a single block in the world**, which for most people is what/eh backlightwas being used for.autorestores world lighting/eh display <id> billboard <fixed|vertical|horizontal|center>** controls how a fixed hologram turns towards the viewer.verticalis worth knowing about: the text turns to follow the player horizontally but never tilts, so it stays readable from any direction without lying on its back when someone flies overhead.fixedremains the default/eh display <id> reset** restores all three at once
### Changed
- The three display settings are grouped under one
/eh displaycommand rather than three top-level ones, to keep the/ehtab-completion list readable - Each save now keeps the previous version** of the file alongside it as
holograms.json.bak/scoreboard_holograms.json.bak, which is restored automatically if the main file is ever found damaged. An unreadable file is kept as.corrupt-<timestamp>rather than overwritten, so nothing in it is lost
### Fixed
- Scoreboard holograms did not keep their background settings.** Boards persist to their own
scoreboard_holograms.jsonrather than toholograms.json, and the Forge 1.20.1 and Fabric editions never wrote the background colour and opacity there, so a restyled board reverted to 25% black on restart. All editions now persist the full set (background, scale, brightness, billboard and click command) for scoreboard holograms as well as regular ones /eh moveverticalcould be run by any player on Forge 1.20.1 and Fabric.** Every other subcommand declares the permission node it needs when its brigadier literal is built, butmoveverticalwas registered and given arguments without ever being added to that chain, and its handler class carried no check of its own. The only gate left was the one on the base/ehliteral, which iseliteholograms.list. Every user of the mod needs that node, so anyone who could run/ehat all could move any hologram v
### Added
- Clickable holograms.**
/eh click <id> set <command...>makes a hologram run a command when a player right-clicks it,console <command...>runs it elevated, andnoneturns it off.%player%in the command is replaced with the clicking player's name. Use it for warp signs, shop buttons, quest turn-ins, or anything that was previously a sign and a pressure plate. Clicking is backed by a real, invisibleminecraft:interactionhitbox placed over the text, which is why it works on every loader without a client mod /eh display <id> scale <0.1-10>** resizes a fixed hologram's text. Line spacing widens with the scale, so a scaled-up hologram does not overlap its own lines, and the top line stays anchored where the hologram is/eh display <id> brightness <0-15|auto>** lights the text regardless of the surrounding light level.15makes a hologram readable at night **without placing a single block in the world**, which for most people is what/eh backlightwas being used for.autorestores world lighting/eh display <id> billboard <fixed|vertical|horizontal|center>** controls how a fixed hologram turns towards the viewer.verticalis worth knowing about: the text turns to follow the player horizontally but never tilts, so it stays readable from any direction without lying on its back when someone flies overhead.fixedremains the default/eh display <id> reset** restores all three at once
### Changed
- The three display settings are grouped under one
/eh displaycommand rather than three top-level ones, to keep the/ehtab-completion list readable - Each save now keeps the previous version** of the file alongside it as
holograms.json.bak/scoreboard_holograms.json.bak, which is restored automatically if the main file is ever found damaged. An unreadable file is kept as.corrupt-<timestamp>rather than overwritten, so nothing in it is lost
### Fixed
- Scoreboard holograms did not keep their background settings.** Boards persist to their own
scoreboard_holograms.jsonrather than toholograms.json, and the Forge 1.20.1 and Fabric editions never wrote the background colour and opacity there, so a restyled board reverted to 25% black on restart. All editions now persist the full set (background, scale, brightness, billboard and click command) for scoreboard holograms as well as regular ones /eh moveverticalcould be run by any player on Forge 1.20.1 and Fabric.** Every other subcommand declares the permission node it needs when its brigadier literal is built, butmoveverticalwas registered and given arguments without ever being added to that chain, and its handler class carried no check of its own. The only gate left was the one on the base/ehliteral, which iseliteholograms.list. Every user of the mod needs that node, so anyone who could run/ehat all could move any hologram v
### Added
- Clickable holograms.**
/eh click <id> set <command...>makes a hologram run a command when a player right-clicks it,console <command...>runs it elevated, andnoneturns it off.%player%in the command is replaced with the clicking player's name. Use it for warp signs, shop buttons, quest turn-ins, or anything that was previously a sign and a pressure plate. Clicking is backed by a real, invisibleminecraft:interactionhitbox placed over the text, which is why it works on every loader without a client mod /eh display <id> scale <0.1-10>** resizes a fixed hologram's text. Line spacing widens with the scale, so a scaled-up hologram does not overlap its own lines, and the top line stays anchored where the hologram is/eh display <id> brightness <0-15|auto>** lights the text regardless of the surrounding light level.15makes a hologram readable at night **without placing a single block in the world**, which for most people is what/eh backlightwas being used for.autorestores world lighting/eh display <id> billboard <fixed|vertical|horizontal|center>** controls how a fixed hologram turns towards the viewer.verticalis worth knowing about: the text turns to follow the player horizontally but never tilts, so it stays readable from any direction without lying on its back when someone flies overhead.fixedremains the default/eh display <id> reset** restores all three at once
### Changed
- The three display settings are grouped under one
/eh displaycommand rather than three top-level ones, to keep the/ehtab-completion list readable - Each save now keeps the previous version** of the file alongside it as
holograms.json.bak/scoreboard_holograms.json.bak, which is restored automatically if the main file is ever found damaged. An unreadable file is kept as.corrupt-<timestamp>rather than overwritten, so nothing in it is lost
### Fixed
- Scoreboard holograms did not keep their background settings.** Boards persist to their own
scoreboard_holograms.jsonrather than toholograms.json, and the Forge 1.20.1 and Fabric editions never wrote the background colour and opacity there, so a restyled board reverted to 25% black on restart. All editions now persist the full set (background, scale, brightness, billboard and click command) for scoreboard holograms as well as regular ones /eh moveverticalcould be run by any player on Forge 1.20.1 and Fabric.** Every other subcommand declares the permission node it needs when its brigadier literal is built, butmoveverticalwas registered and given arguments without ever being added to that chain, and its handler class carried no check of its own. The only gate left was the one on the base/ehliteral, which iseliteholograms.list. Every user of the mod needs that node, so anyone who could run/ehat all could move any hologram v
### Added
- Clickable holograms.**
/eh click <id> set <command...>makes a hologram run a command when a player right-clicks it,console <command...>runs it elevated, andnoneturns it off.%player%in the command is replaced with the clicking player's name. Use it for warp signs, shop buttons, quest turn-ins, or anything that was previously a sign and a pressure plate. Clicking is backed by a real, invisibleminecraft:interactionhitbox placed over the text, which is why it works on every loader without a client mod /eh display <id> scale <0.1-10>** resizes a fixed hologram's text. Line spacing widens with the scale, so a scaled-up hologram does not overlap its own lines, and the top line stays anchored where the hologram is/eh display <id> brightness <0-15|auto>** lights the text regardless of the surrounding light level.15makes a hologram readable at night **without placing a single block in the world**, which for most people is what/eh backlightwas being used for.autorestores world lighting/eh display <id> billboard <fixed|vertical|horizontal|center>** controls how a fixed hologram turns towards the viewer.verticalis worth knowing about: the text turns to follow the player horizontally but never tilts, so it stays readable from any direction without lying on its back when someone flies overhead.fixedremains the default/eh display <id> reset** restores all three at once
### Changed
- The three display settings are grouped under one
/eh displaycommand rather than three top-level ones, to keep the/ehtab-completion list readable - Each save now keeps the previous version** of the file alongside it as
holograms.json.bak/scoreboard_holograms.json.bak, which is restored automatically if the main file is ever found damaged. An unreadable file is kept as.corrupt-<timestamp>rather than overwritten, so nothing in it is lost
### Fixed
- Scoreboard holograms did not keep their background settings.** Boards persist to their own
scoreboard_holograms.jsonrather than toholograms.json, and the Forge 1.20.1 and Fabric editions never wrote the background colour and opacity there, so a restyled board reverted to 25% black on restart. All editions now persist the full set (background, scale, brightness, billboard and click command) for scoreboard holograms as well as regular ones /eh moveverticalcould be run by any player on Forge 1.20.1 and Fabric.** Every other subcommand declares the permission node it needs when its brigadier literal is built, butmoveverticalwas registered and given arguments without ever being added to that chain, and its handler class carried no check of its own. The only gate left was the one on the base/ehliteral, which iseliteholograms.list. Every user of the mod needs that node, so anyone who could run/ehat all could move any hologram v
### Added
- New Fabric 1.20.1 edition.** Elite Holograms now runs on Fabric, with the same feature set as the Forge 1.20.1 edition - holograms, fixed holograms, item holograms, animated lines, scoreboard leaderboards, themes, backlights, placeholders and every command. It requires Fabric API, is server-side only (players join with a vanilla client), and reads the same
config/elite-holograms/holograms.jsonformat, so a world can be moved between the Forge and Fabric editions without converting anything. Permissions work through LuckPerms, falling back to operator level 2
- Fixed holograms** - holograms can now be anchored to a rotation instead of always turning to face the viewer. A *facing* hologram is the classic armor stand nameplate that spins to follow each player; a *fixed* hologram is a
text_displayentity locked to a yaw and pitch, so it reads like a sign hung on a wall and looks the same to everyone. Facing remains the default, and every hologram created before this update stays facing fixed|facingon every create command** -/eh create fixed <id> <text>,/eh createat fixed <id> <x> <y> <z> [text],/eh createitem fixed <id> <item> [text]and/eh createscoreboard fixed <id> <objective> [top] [interval] [theme]. The keyword is optional and goes immediately after the subcommand; leaving it out creates a facing hologram exactly as before. A new fixed hologram is automatically oriented to face whoever created it/eh convert <id> fixed|face** - switches an existing hologram between the two display types in place, keeping its lines, animations, item, backlight and position. Converting to fixed points the hologram at whoever ran the command, unless a rotation was already set with/eh setrotation/eh setrotation <id> <yaw> [pitch]** - sets the orientation of a fixed hologram. Yaw follows the in-game convention (0 south, 90 west, 180 north, 270 east) and pitch tilts it between -90 and 90. The rotation is stored even on facing holograms, so it applies the moment you convert one to fixed/eh info <id>now reports the display type**, and the rotation when the hologram is fixed- Both new commands use the existing **
eliteholograms.edit** permission, and tab-complete hologram IDs and display types
### Changed
- Backlights now stay centred on the hologram.** Light blocks can only sit on whole block cells, so a hologram near a block edge used to be lit noticeably off to one side. The column is now widened onto the neighbouring cell on any axis where the hologram sits within a quarter block of an edge, which caps the offset at a quarter block instead of half. A backlight therefore places up to four columns instead of one, and each column finds its own ground level so widened backlights still sit correctly on uneven terrain
/eh create <id> <text>treats a first argument offixedorfacingas the display type keyword. If you have a hologram whose
### Added
- New Fabric 1.20.1 edition.** Elite Holograms now runs on Fabric, with the same feature set as the Forge 1.20.1 edition - holograms, fixed holograms, item holograms, animated lines, scoreboard leaderboards, themes, backlights, placeholders and every command. It requires Fabric API, is server-side only (players join with a vanilla client), and reads the same
config/elite-holograms/holograms.jsonformat, so a world can be moved between the Forge and Fabric editions without converting anything. Permissions work through LuckPerms, falling back to operator level 2
- Fixed holograms** - holograms can now be anchored to a rotation instead of always turning to face the viewer. A *facing* hologram is the classic armor stand nameplate that spins to follow each player; a *fixed* hologram is a
text_displayentity locked to a yaw and pitch, so it reads like a sign hung on a wall and looks the same to everyone. Facing remains the default, and every hologram created before this update stays facing fixed|facingon every create command** -/eh create fixed <id> <text>,/eh createat fixed <id> <x> <y> <z> [text],/eh createitem fixed <id> <item> [text]and/eh createscoreboard fixed <id> <objective> [top] [interval] [theme]. The keyword is optional and goes immediately after the subcommand; leaving it out creates a facing hologram exactly as before. A new fixed hologram is automatically oriented to face whoever created it/eh convert <id> fixed|face** - switches an existing hologram between the two display types in place, keeping its lines, animations, item, backlight and position. Converting to fixed points the hologram at whoever ran the command, unless a rotation was already set with/eh setrotation/eh setrotation <id> <yaw> [pitch]** - sets the orientation of a fixed hologram. Yaw follows the in-game convention (0 south, 90 west, 180 north, 270 east) and pitch tilts it between -90 and 90. The rotation is stored even on facing holograms, so it applies the moment you convert one to fixed/eh info <id>now reports the display type**, and the rotation when the hologram is fixed- Both new commands use the existing **
eliteholograms.edit** permission, and tab-complete hologram IDs and display types
### Changed
- Backlights now stay centred on the hologram.** Light blocks can only sit on whole block cells, so a hologram near a block edge used to be lit noticeably off to one side. The column is now widened onto the neighbouring cell on any axis where the hologram sits within a quarter block of an edge, which caps the offset at a quarter block instead of half. A backlight therefore places up to four columns instead of one, and each column finds its own ground level so widened backlights still sit correctly on uneven terrain
/eh create <id> <text>treats a first argument offixedorfacingas the display type keyword. If you have a hologram whose
### Added
- New Fabric 1.20.1 edition.** Elite Holograms now runs on Fabric, with the same feature set as the Forge 1.20.1 edition - holograms, fixed holograms, item holograms, animated lines, scoreboard leaderboards, themes, backlights, placeholders and every command. It requires Fabric API, is server-side only (players join with a vanilla client), and reads the same
config/elite-holograms/holograms.jsonformat, so a world can be moved between the Forge and Fabric editions without converting anything. Permissions work through LuckPerms, falling back to operator level 2
- Fixed holograms** - holograms can now be anchored to a rotation instead of always turning to face the viewer. A *facing* hologram is the classic armor stand nameplate that spins to follow each player; a *fixed* hologram is a
text_displayentity locked to a yaw and pitch, so it reads like a sign hung on a wall and looks the same to everyone. Facing remains the default, and every hologram created before this update stays facing fixed|facingon every create command** -/eh create fixed <id> <text>,/eh createat fixed <id> <x> <y> <z> [text],/eh createitem fixed <id> <item> [text]and/eh createscoreboard fixed <id> <objective> [top] [interval] [theme]. The keyword is optional and goes immediately after the subcommand; leaving it out creates a facing hologram exactly as before. A new fixed hologram is automatically oriented to face whoever created it/eh convert <id> fixed|face** - switches an existing hologram between the two display types in place, keeping its lines, animations, item, backlight and position. Converting to fixed points the hologram at whoever ran the command, unless a rotation was already set with/eh setrotation/eh setrotation <id> <yaw> [pitch]** - sets the orientation of a fixed hologram. Yaw follows the in-game convention (0 south, 90 west, 180 north, 270 east) and pitch tilts it between -90 and 90. The rotation is stored even on facing holograms, so it applies the moment you convert one to fixed/eh info <id>now reports the display type**, and the rotation when the hologram is fixed- Both new commands use the existing **
eliteholograms.edit** permission, and tab-complete hologram IDs and display types
### Changed
- Backlights now stay centred on the hologram.** Light blocks can only sit on whole block cells, so a hologram near a block edge used to be lit noticeably off to one side. The column is now widened onto the neighbouring cell on any axis where the hologram sits within a quarter block of an edge, which caps the offset at a quarter block instead of half. A backlight therefore places up to four columns instead of one, and each column finds its own ground level so widened backlights still sit correctly on uneven terrain
/eh create <id> <text>treats a first argument offixedorfacingas the display type keyword. If you have a hologram whose
### Added
- New Fabric 1.20.1 edition.** Elite Holograms now runs on Fabric, with the same feature set as the Forge 1.20.1 edition - holograms, fixed holograms, item holograms, animated lines, scoreboard leaderboards, themes, backlights, placeholders and every command. It requires Fabric API, is server-side only (players join with a vanilla client), and reads the same
config/elite-holograms/holograms.jsonformat, so a world can be moved between the Forge and Fabric editions without converting anything. Permissions work through LuckPerms, falling back to operator level 2
- Fixed holograms** - holograms can now be anchored to a rotation instead of always turning to face the viewer. A *facing* hologram is the classic armor stand nameplate that spins to follow each player; a *fixed* hologram is a
text_displayentity locked to a yaw and pitch, so it reads like a sign hung on a wall and looks the same to everyone. Facing remains the default, and every hologram created before this update stays facing fixed|facingon every create command** -/eh create fixed <id> <text>,/eh createat fixed <id> <x> <y> <z> [text],/eh createitem fixed <id> <item> [text]and/eh createscoreboard fixed <id> <objective> [top] [interval] [theme]. The keyword is optional and goes immediately after the subcommand; leaving it out creates a facing hologram exactly as before. A new fixed hologram is automatically oriented to face whoever created it/eh convert <id> fixed|face** - switches an existing hologram between the two display types in place, keeping its lines, animations, item, backlight and position. Converting to fixed points the hologram at whoever ran the command, unless a rotation was already set with/eh setrotation/eh setrotation <id> <yaw> [pitch]** - sets the orientation of a fixed hologram. Yaw follows the in-game convention (0 south, 90 west, 180 north, 270 east) and pitch tilts it between -90 and 90. The rotation is stored even on facing holograms, so it applies the moment you convert one to fixed/eh info <id>now reports the display type**, and the rotation when the hologram is fixed- Both new commands use the existing **
eliteholograms.edit** permission, and tab-complete hologram IDs and display types
### Changed
- Backlights now stay centred on the hologram.** Light blocks can only sit on whole block cells, so a hologram near a block edge used to be lit noticeably off to one side. The column is now widened onto the neighbouring cell on any axis where the hologram sits within a quarter block of an edge, which caps the offset at a quarter block instead of half. A backlight therefore places up to four columns instead of one, and each column finds its own ground level so widened backlights still sit correctly on uneven terrain
/eh create <id> <text>treats a first argument offixedorfacingas the display type keyword. If you have a hologram whose
### Added
- New Fabric 1.20.1 edition.** Elite Holograms now runs on Fabric, with the same feature set as the Forge 1.20.1 edition - holograms, fixed holograms, item holograms, animated lines, scoreboard leaderboards, themes, backlights, placeholders and every command. It requires Fabric API, is server-side only (players join with a vanilla client), and reads the same
config/elite-holograms/holograms.jsonformat, so a world can be moved between the Forge and Fabric editions without converting anything. Permissions work through LuckPerms, falling back to operator level 2
- Fixed holograms** - holograms can now be anchored to a rotation instead of always turning to face the viewer. A *facing* hologram is the classic armor stand nameplate that spins to follow each player; a *fixed* hologram is a
text_displayentity locked to a yaw and pitch, so it reads like a sign hung on a wall and looks the same to everyone. Facing remains the default, and every hologram created before this update stays facing fixed|facingon every create command** -/eh create fixed <id> <text>,/eh createat fixed <id> <x> <y> <z> [text],/eh createitem fixed <id> <item> [text]and/eh createscoreboard fixed <id> <objective> [top] [interval] [theme]. The keyword is optional and goes immediately after the subcommand; leaving it out creates a facing hologram exactly as before. A new fixed hologram is automatically oriented to face whoever created it/eh convert <id> fixed|face** - switches an existing hologram between the two display types in place, keeping its lines, animations, item, backlight and position. Converting to fixed points the hologram at whoever ran the command, unless a rotation was already set with/eh setrotation/eh setrotation <id> <yaw> [pitch]** - sets the orientation of a fixed hologram. Yaw follows the in-game convention (0 south, 90 west, 180 north, 270 east) and pitch tilts it between -90 and 90. The rotation is stored even on facing holograms, so it applies the moment you convert one to fixed/eh info <id>now reports the display type**, and the rotation when the hologram is fixed- Both new commands use the existing **
eliteholograms.edit** permission, and tab-complete hologram IDs and display types
### Changed
- Backlights now stay centred on the hologram.** Light blocks can only sit on whole block cells, so a hologram near a block edge used to be lit noticeably off to one side. The column is now widened onto the neighbouring cell on any axis where the hologram sits within a quarter block of an edge, which caps the offset at a quarter block instead of half. A backlight therefore places up to four columns instead of one, and each column finds its own ground level so widened backlights still sit correctly on uneven terrain
/eh create <id> <text>treats a first argument offixedorfacingas the display type keyword. If you have a hologram whose
### Added
- New Fabric 1.20.1 edition.** Elite Holograms now runs on Fabric, with the same feature set as the Forge 1.20.1 edition - holograms, fixed holograms, item holograms, animated lines, scoreboard leaderboards, themes, backlights, placeholders and every command. It requires Fabric API, is server-side only (players join with a vanilla client), and reads the same
config/elite-holograms/holograms.jsonformat, so a world can be moved between the Forge and Fabric editions without converting anything. Permissions work through LuckPerms, falling back to operator level 2
- Fixed holograms** - holograms can now be anchored to a rotation instead of always turning to face the viewer. A *facing* hologram is the classic armor stand nameplate that spins to follow each player; a *fixed* hologram is a
text_displayentity locked to a yaw and pitch, so it reads like a sign hung on a wall and looks the same to everyone. Facing remains the default, and every hologram created before this update stays facing fixed|facingon every create command** -/eh create fixed <id> <text>,/eh createat fixed <id> <x> <y> <z> [text],/eh createitem fixed <id> <item> [text]and/eh createscoreboard fixed <id> <objective> [top] [interval] [theme]. The keyword is optional and goes immediately after the subcommand; leaving it out creates a facing hologram exactly as before. A new fixed hologram is automatically oriented to face whoever created it/eh convert <id> fixed|face** - switches an existing hologram between the two display types in place, keeping its lines, animations, item, backlight and position. Converting to fixed points the hologram at whoever ran the command, unless a rotation was already set with/eh setrotation/eh setrotation <id> <yaw> [pitch]** - sets the orientation of a fixed hologram. Yaw follows the in-game convention (0 south, 90 west, 180 north, 270 east) and pitch tilts it between -90 and 90. The rotation is stored even on facing holograms, so it applies the moment you convert one to fixed/eh info <id>now reports the display type**, and the rotation when the hologram is fixed- Both new commands use the existing **
eliteholograms.edit** permission, and tab-complete hologram IDs and display types
### Changed
- Backlights now stay centred on the hologram.** Light blocks can only sit on whole block cells, so a hologram near a block edge used to be lit noticeably off to one side. The column is now widened onto the neighbouring cell on any axis where the hologram sits within a quarter block of an edge, which caps the offset at a quarter block instead of half. A backlight therefore places up to four columns instead of one, and each column finds its own ground level so widened backlights still sit correctly on uneven terrain
/eh create <id> <text>treats a first argument offixedorfacingas the display type keyword. If you have a hologram whose
### Added
/eh backlight <id> <on|off|toggle> [height 1-10]** - lights up a hologram with a vertical column of invisibleminecraft:lightblocks (the same block WorldEdit's//set lightuses) that rises from the ground directly below the hologram and goes straight up.1places a single light block on the ground behind the hologram;10places a ten-block-tall pillar. Every block in the column emits at full brightness (15). Defaults to a height of 3 when none is given. Backlights persist across restarts, follow the hologram when it moves or teleports, and are removed automatically when the hologram is deletedeliteholograms.backlightpermission** - controls who can toggle backlights (OPs always have it)- The backlight column will not overwrite existing solid world content - cells that are air or water receive a light block (water stays waterlogged), and any cell already holding a non-air, non-water block is skipped
- Scoreboard holograms now support named themes for styling.** Instead of the fixed orange/yellow/white/green look, server owners can pick a theme that restyles the header, player rows, and the "no data" line. Usage is now
/eh createscoreboard <id> <objective> [topCount] [interval] [theme]. When no theme is given, the configured default theme is applied so existing styling still works out of the box - A new editable config file
config/eliteholograms/scoreboard_themes.json** ships with starter themes (default,ocean,blood,mono,gold,rainbow) that owners can freely edit or extend with their own entries to match their server theme. The file is created on first run with inline help, is never overwritten once it exists (edits are preserved), and deleting it restores the starters. AdefaultThemekey controls which theme new boards use when none is specified - Theme format strings accept legacy
&colour codes (e.g.&a,&6,&l) as well as MiniMessage tags like<gradient:#FF0000:#00FF00>text</gradient>and<rainbow>text</rainbow>. Supported tokens are{objective}and{count}in headers and{rank},{player},{score}, and{time}in player rows. Themes can define a separatetimePlayerrow format for time-based objectives (playtime etc.); if omitted, the standardplayerformat is reused - New
/eh settheme <id> <theme>command** to restyle an existing scoreboard hologram without recreating it. Both arguments tab-complete:<id>suggests existing scoreboard holograms and<theme>suggests the available theme names. The board re-renders immediately with the new style - The
<objective>argument now tab-completes** every objective currently registered on the server scoreboard, and the[theme]argument tab-completes the available theme names, so owners no longer have to remember exact names
### Changed
/eh reloadnow refreshes scoreboard themes from disk without a ser
### Added
/eh backlight <id> <on|off|toggle> [height 1-10]** - lights up a hologram with a vertical column of invisibleminecraft:lightblocks (the same block WorldEdit's//set lightuses) that rises from the ground directly below the hologram and goes straight up.1places a single light block on the ground behind the hologram;10places a ten-block-tall pillar. Every block in the column emits at full brightness (15). Defaults to a height of 3 when none is given. Backlights persist across restarts, follow the hologram when it moves or teleports, and are removed automatically when the hologram is deletedeliteholograms.backlightpermission** - controls who can toggle backlights (OPs always have it)- The backlight column will not overwrite existing solid world content - cells that are air or water receive a light block (water stays waterlogged), and any cell already holding a non-air, non-water block is skipped
- Scoreboard holograms now support named themes for styling.** Instead of the fixed orange/yellow/white/green look, server owners can pick a theme that restyles the header, player rows, and the "no data" line. Usage is now
/eh createscoreboard <id> <objective> [topCount] [interval] [theme]. When no theme is given, the configured default theme is applied so existing styling still works out of the box - A new editable config file
config/eliteholograms/scoreboard_themes.json** ships with starter themes (default,ocean,blood,mono,gold,rainbow) that owners can freely edit or extend with their own entries to match their server theme. The file is created on first run with inline help, is never overwritten once it exists (edits are preserved), and deleting it restores the starters. AdefaultThemekey controls which theme new boards use when none is specified - Theme format strings accept legacy
&colour codes (e.g.&a,&6,&l) as well as MiniMessage tags like<gradient:#FF0000:#00FF00>text</gradient>and<rainbow>text</rainbow>. Supported tokens are{objective}and{count}in headers and{rank},{player},{score}, and{time}in player rows. Themes can define a separatetimePlayerrow format for time-based objectives (playtime etc.); if omitted, the standardplayerformat is reused - New
/eh settheme <id> <theme>command** to restyle an existing scoreboard hologram without recreating it. Both arguments tab-complete:<id>suggests existing scoreboard holograms and<theme>suggests the available theme names. The board re-renders immediately with the new style - The
<objective>argument now tab-completes** every objective currently registered on the server scoreboard, and the[theme]argument tab-completes the available theme names, so owners no longer have to remember exact names
### Changed
/eh reloadnow refreshes scoreboard themes from disk without a ser
### Added
/eh backlight <id> <on|off|toggle> [height 1-10]** - lights up a hologram with a vertical column of invisibleminecraft:lightblocks (the same block WorldEdit's//set lightuses) that rises from the ground directly below the hologram and goes straight up.1places a single light block on the ground behind the hologram;10places a ten-block-tall pillar. Every block in the column emits at full brightness (15). Defaults to a height of 3 when none is given. Backlights persist across restarts, follow the hologram when it moves or teleports, and are removed automatically when the hologram is deletedeliteholograms.backlightpermission** - controls who can toggle backlights (OPs always have it)- The backlight column will not overwrite existing solid world content - cells that are air or water receive a light block (water stays waterlogged), and any cell already holding a non-air, non-water block is skipped
- Scoreboard holograms now support named themes for styling.** Instead of the fixed orange/yellow/white/green look, server owners can pick a theme that restyles the header, player rows, and the "no data" line. Usage is now
/eh createscoreboard <id> <objective> [topCount] [interval] [theme]. When no theme is given, the configured default theme is applied so existing styling still works out of the box - A new editable config file
config/eliteholograms/scoreboard_themes.json** ships with starter themes (default,ocean,blood,mono,gold,rainbow) that owners can freely edit or extend with their own entries to match their server theme. The file is created on first run with inline help, is never overwritten once it exists (edits are preserved), and deleting it restores the starters. AdefaultThemekey controls which theme new boards use when none is specified - Theme format strings accept legacy
&colour codes (e.g.&a,&6,&l) as well as MiniMessage tags like<gradient:#FF0000:#00FF00>text</gradient>and<rainbow>text</rainbow>. Supported tokens are{objective}and{count}in headers and{rank},{player},{score}, and{time}in player rows. Themes can define a separatetimePlayerrow format for time-based objectives (playtime etc.); if omitted, the standardplayerformat is reused - New
/eh settheme <id> <theme>command** to restyle an existing scoreboard hologram without recreating it. Both arguments tab-complete:<id>suggests existing scoreboard holograms and<theme>suggests the available theme names. The board re-renders immediately with the new style - The
<objective>argument now tab-completes** every objective currently registered on the server scoreboard, and the[theme]argument tab-completes the available theme names, so owners no longer have to remember exact names
### Changed
/eh reloadnow refreshes scoreboard themes from disk without a ser