# Holograms

Floating text and item displays with MiniMessage formatting, PlaceholderAPI placeholders (computed per player), Nexo items, view radius and optional permission visibility. Everything is stored permanently and restored on server start; holograms load automatically with their chunk.

## Commands

| Subcommand | Syntax | Permission | Default | Description |
|---|---|---|---|---|
| (GUI) | `/holo` (alias `/hologram`) | `holo.edit` | `false` | Opens the hologram manager |
| `create` | `/holo create <name> [feet\|head]` | `holo.create` | `false` | Creates a hologram (feet or eye height) |
| `delete` | `/holo delete <name>` | `holo.delete` | `false` | Deletes a hologram |
| `list` | `/holo list` | `holo.list` | `false` | All holograms |
| `near` | `/holo near [radius]` | `holo.list` | `false` | Nearby holograms (default 50) |
| `info` | `/holo info <name>` | `holo.list` | `false` | Details of a hologram |
| `teleport` | `/holo teleport <name>` | `holo.teleport` | `false` | Teleports to the hologram |
| `movehere` | `/holo movehere <name> [feet\|head]` | `holo.edit` | `false` | Moves it to your position |
| `addline` | `/holo addline <name> <text\|ITEM:material\|{empty}>` | `holo.edit` | `false` | Appends a line (text, item or empty) |
| `removeline` | `/holo removeline <name> <line>` | `holo.edit` | `false` | Removes a line (1-based) |
| `setline` | `/holo setline <name> <line> <text>` | `holo.edit` | `false` | Edits a line |
| `insertline` | `/holo insertline <name> <line> <text>` | `holo.edit` | `false` | Inserts a line at a position |
| `reload` | `/holo reload` | `holo.admin` | `false` | Reloads config and all holograms |

**Rules:** name max 32 characters (alphanumeric, `-`, `_`), max 64 lines per hologram, view radius 1 to 200 blocks.

> **Tip:** The GUI (`/holo`) can do everything the subcommands can, plus a material picker for item lines, duplicating/moving lines and all display settings (billboard, scale, background, rotation, line spacing, permission). Text input runs through chat (`cancel` aborts, `{empty}` = blank line, 3 minute timeout).

> **Note:** If a line contains a `%`, it is treated as a PlaceholderAPI placeholder and refreshed per player regularly (e.g. `%player_name%`). With a permission set, only players holding it see the hologram. Failed placeholders/formatting render as plain text instead of breaking the hologram; Nexo items without Nexo show a barrier icon.

## Configuration (modules/holograms.yml)

```yaml
# Enables or disables the hologram module.
enabled: true

holograms:
  # Default view radius in blocks for new holograms (1 to 200).
  default-visibility-radius: 48.0
  # Vertical distance between lines in meters.
  line-spacing: 0.4
  # Ticks between placeholder refreshes (20 = 1 second).
  placeholder-update-interval: 20
  # Text shadow for better readability.
  text-shadow: true
  # Black vanilla background box for new lines.
  default-background: false
```

## Complete example config

```yaml
enabled: true

holograms:
  default-visibility-radius: 64.0
  line-spacing: 0.3
  placeholder-update-interval: 40
  text-shadow: true
  default-background: true
```
