HologramLib / API | Paginated Leaderboards & Custom Hologram
1.8.3Packet-based text display library / api with animations, leaderboards, emojis, and more!
ᴛʜɪs ɪs ᴀ ʟɪʙʀᴀʀʏ.
There are no pre-made commands. It's a library for your own plugins.
FOLIA ✅ PAPER ✅ PURPUR ✅ 1.19.4 - 1.21.5 ✅

FEATURES
- Text, Block & Item Holograms
- Text animations with MiniMessage & ItemsAdder emoji support
- Packet-based implementation for optimal performance
- Per-player hologram visibility
- Automated leaderboard generation
- Advanced customization options
- Entity attachment support
DISCLAIMER
This api only works on 1.19.4+
The holograms do not work for Bedrock players
There can be some issues when using spigot on older versions (Preferably use Paper or a fork of it)
Its just a Java API. This plugin does not work standalone.
SETUP
- Download the plugin .jar
- Download Packet Events
- Upload the .jar files onto your server (yourserver/plugins folder)
- Add the plugin as a dependency to your plugin and use it
PROJECT SETUP
View documentation on GitHub
Steps
Gradle
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
compileOnly 'com.github.HologramLib:HologramLib:1.8.3.2'
}Maven
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>com.github.HologramLib</groupId>
<artifactId>HologramLib</artifactId>
<version>1.8.3.2</version>
<scope>provided</scope>
</dependency>You need to add this line to your plugin.yml:
depend:
- HologramLibCODE EXAMPLES
Getting the instance
private HologramManager hologramManager;
@Override
public void onLoad() {
HologramLib.onLoad(this); /*Only needed if you shade HologramLib*/
}
@Override
public void onEnable() {
HologramLib.getManager().ifPresentOrElse(
manager -> hologramManager = manager,
() -> getLogger().severe("Failed to initialize HologramLib manager.")
);
}
Text Hologram
TextHologram hologram = new TextHologram("unique_id")
.setMiniMessageText("<aqua>Hello world!")
.setSeeThroughBlocks(false)
.setBillboard(Display.Billboard.VERTICAL)
.setShadow(true)
.setScale(1.5F, 1.5F, 1.5F)
.setTextOpacity((byte) 200)
.setBackgroundColor(Color.fromARGB(60, 255, 236, 222).asARGB())
.setAlignment(TextDisplay.TextAlignment.CENTER)
.setViewRange(1.0)
.setMaxLineWidth(200);
Spawing a hologram
hologramManager.spawn(hologram, <location>);
hologramManager.remove(hologram);
Leaderboard creation
Leaderboard Code
Map<UUID, LeaderboardHologram.PlayerScore> scores = new HashMap<>();
LeaderboardHologram.LeaderboardOptions pvpOptions = LeaderboardHologram.LeaderboardOptions.builder()
.title("PvP Champions")
.suffix("Kills")
.showEmptyPlaces(false)
.maxDisplayEntries(10)
.sortOrder(LeaderboardHologram.SortOrder.DESCENDING)
.headMode(LeaderboardHologram.HeadMode.RESOURCEPACK)
.leaderboardType(LeaderboardHologram.LeaderboardType.ALL_PLAYER_HEADS)
.build();
LeaderboardHologram pvpLeaderboard = new LeaderboardHologram(pvpOptions, "pvp_lb");
pvpLeaderboard.setAllScores(scores);
/* You can combine the leaderboard with others in a paginated leaderboard
but you can also just spawn the pvpLeaderboard for example
directly using hologramManager.spawn(pvpLeaderboard, location)
*/
PagedLeaderboard pagedLeaderboard = new PagedLeaderboard("paged_holo")
.addPage(pvpLeaderboard)
.addPage(<... another page>)
.setArrowBackgrounds(pvpLeaderboard.getBackgroundHologram().getBackgroundColor())
.setLeftArrowText("<red><<")
.setRightArrowText("<red>>>")
.setArrowOffset(3.5)
.setClickSounds(Sound.BLOCK_AMETHYST_CLUSTER_FALL, Sound.BLOCK_AMETHYST_CLUSTER_FALL)
.addPage(economyLeaderboard)
.rotate(0);
hologramManager.spawn(pagedLeaderboard, location); You can find more information on the wiki page
And here https://maximjsx.com/projects/hologramlib
Problems with the library?
Before you write a bad review ask for support on the discord server or open an issue on github
Do not use the review section below for suggestions/feature requests or support.
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta