CMI holograms provides opportunity to show any custom text in holographic way.

You can even create clickable holograms to perform any type of command as player or as console.
Its packet based and items only exist client side which protect them from being removed by some 3rd party cleaning plugins.
Ingame editor where you can add new lines, remove old ones, relocate to your location or adjust precisely where you want, change activation range or even text spacing.
It’s supports PlaceholderAPI plugin to display any information you want and it can show different information for separate players.
Holograms can have different pages which can be shown separately when needed. Examples below how to setup them.
It can update on defined intervals.
It will hide if you move too far away to minimize load on client and will update only when players are near it.
Has floating icon feature and static ones for most customization.

To create new hologram use /cmi hologram new [name]
To check list of all holograms simply write /cmi hologram and you will get list sorted by distance, so closest ones will be on top of list, click on desired one and start editing.
Icons can be created with ICON:[itemName/id]:[data] line, in example ICON:Stone will create floating stone icon, while ICON:Stone:3 will show floating diorite. To show glowing icon, add %enchanted%
If you want to display in example currently help item in hand as icon, use line like this ICON:%iteminhand% this is only for holograms as of version. Floating icons only for 1.10 and above versions of the server.
You can set static icon in same way as floating one, difference is base variable SICON
You can use any place holder from CMI or PlaceHolderAPI to display information for player. Each player sees different information depending on placeholders.

Creating clickable holograms

By default holograms are not clickable, you will need to enable it in GUI for each hologram (Stick)
Then you can define commands you want to perform by clicking appropriate button (Bow icon)
You can enable or disable special particles which will be shown when successfully clicked on hologram. Enabled by default.
Last and not least, you can switch between big and small button. Keep in mind that enabling big button will make it simpler to click on hologram but at same time it will prevent player from moving throw it.

Creating pages

By default all the text goes into one page. To create another page simply insert new line which looks like !nextpage! and you are done. Now by default player will see only first page (until first !nextpage!) and if you (or player) performs /cmi hologrampages [holoName] (playerName) (next/prev/[pageNumber]) he will change hologram page to defined one. Keep in mind that this only changes for target player and each player sees his own hologram page.
You can have as many pages as you like, but in current settup it can be harder to manage all of them throw ingame editor as it has limited amount of lines it can show at once.
So basic example how to create “Next Page” virtual button for a hologram:
Lets create hologram with name “Rules” and add:
Line 1
Line 2
Line 3
Line 4
Line 5

Now lets create a button with name “nextrulepage”. This requires you to create New hologram with new name, name doesnt have any impact, so make it obvious, like “rulesNextButton”, Then add some text line like “Next page”, open gui by clicking on appropriate line in chat window and lets click on a Stick to enable intractable mode. After that lets click Bow and you will get + sign in a chat window, click it and enter exactly as cmi hologrampages Rules [playerName] next and you all set. You will need to relocate holograms to fit your setup, but this is basic example for setting intractable holograms.

Click Types

There are 5 types of clicks for you to play around when you have intractable hologram:
!leftclick! – when command starts with this, then only when player clicks with left mouse button and is not sneaking it will be performed.
!shiftleftclick! – when command starts with this, then only when player clicks with left mouse button and is sneaking it will be performed.
!rightclick! – when command starts with this, then only when player clicks with right mouse button and is not sneaking it will be performed.
!shiftrightclick! – when command starts with this, then only when player clicks with right mouse button and is sneaking it will be performed.
None of the above – any type of click will trigger command execution.
Some of the examples:
!leftclick!cmi heal [playerName]
!rightclick!cmi feed [playerName]

Update range defines how far player needs to be for it to start automatic update.
Show range defines how far player needs to be for lines to appear or disappear. This will not trigger self update.
Interval will define how often in second you want to update hologram. By default it will result into every second. But if text is static then it will result in no updates to save server resources. In case you have static text, set update interval to -1, tho this one is deprecated as of version.
Line spacing can be used to compact lines or spread them apart if needed. By default they will be as close as possible without overlapping.
Icon spacing will define space for icons, as they takes around 2 lines of text.

Use &u color code to have random color which will change on each update