COWMODSКаталог модов

Reward Hologram

A hologram appears where the player is at regular intervals and with a certain probability

Автор: Minehostil1402обновлён 13 окт. 2026 г.
ПриключенияЭкономикаМеханики игры

Описание

RewardHologram 🎁

A Paper +1.21.11 plugin that displays per-player floating reward holograms with bobbing animation, skull rotation, individual reward chances, and cooldowns that persist across server restarts.

In-Game

✨ Features

  • Per-player — each player sees their own hologram, protected from other players
  • Dual renderer — ARMOR_STAND (max compatibility, Java + Bedrock via Geyser) or DISPLAY (TextDisplay/ItemDisplay), selectable globally or per hologram
  • Bobbing animation — smooth up/down movement with configurable amplitude and speed
  • Skull auto-rotation — the hologram's head can spin continuously
  • Advanced skull effects (DISPLAY) — cartoon squash & stretch and left/right tilt sway
  • Custom skull — Base64 texture with configurable height, scale and initial angle
  • Smooth POP animations (DISPLAY) — scale-in on appear and scale-out on despawn
  • Particles on appear/despawn — work with both renderers
  • Billboard modes (DISPLAY) — CENTER, VERTICAL, HORIZONTAL, FIXED
  • Global and per-line scale (DISPLAY) — display.scale plus the inline {line_scale:X} placeholder
  • Glow with color (DISPLAY) — configurable outline color
  • Text styling (DISPLAY) — shadow, see-through and background style
  • Reward list with chances — each reward has its own probability; use pick to control how many are given
  • Hex color support — use &#RRGGBB alongside classic & color codes
  • Configurable click type — RIGHT, LEFT, or BOTH per hologram
  • Click cooldown — prevents reward spam
  • Persistent cooldowns — intervals are respected across server restarts via cooldowns.yml
  • World change cleanup — holograms are removed immediately when a player changes worlds
  • No external dependencies — only requires Paper 1.21.11
  • Auto cleanup — removes orphaned armor stands on startup, shutdown, and when players disconnect
  • Admin commands — spawn/remove, active hologram list with coordinates, teleport to hologram, and more

📦 Dependencies

DependencyTypeLink
Paper +1.21.11Requiredpapermc.io

No additional plugins required.

VIDEO (+display entities)

⚙️ Full Configuration

# ============================================================
#                   RewardHologram Config
# ============================================================
# Per-player reward holograms with bobbing animation.
# Create as many holograms as you want with unique IDs under
# the "holograms" section.
# ============================================================

settings:
  # Debug mode — logs extra information to the console.
  debug: false

  # Cooldown in milliseconds between allowed clicks per player.
  # Prevents spam-clicking a hologram to trigger rewards repeatedly.
  # 500 = half a second, 1000 = 1 second.
  click-cooldown-ms: 500

  # Default rendering engine used by holograms that have "renderer: DEFAULT".
  #   ARMOR_STAND — classic armor stand holograms. Maximum compatibility
  #                 (works for Java and Bedrock players via Geyser).
  #                 Ignores display.* options, per-line scale and smooth
  #                 pop-in/pop-out animations.
  #   DISPLAY     — TextDisplay/ItemDisplay entities (Minecraft 1.19.4+).
  #                 Enables billboard modes, global and per-line scale,
  #                 glow with color, text styling options, advanced skull
  #                 animations (squash, tilt) and smooth POP appear/despawn.
  #                 Bedrock (Geyser) support depends on your Geyser version —
  #                 use ARMOR_STAND if Bedrock compatibility matters.
  renderer: DISPLAY

# ============================================================
# Reward holograms
# ============================================================
holograms:

  daily_reward:
    # Renderer for THIS hologram only.
    #   DEFAULT     — uses settings.renderer from above
    #   ARMOR_STAND — forces armor stands for this hologram
    #   DISPLAY     — forces display entities for this hologram
    renderer: DEFAULT

    # Spawn probability (0.0 - 100.0). Evaluated once per second after
    # the interval has elapsed. 30.0 = 30% chance per second.
    chance: 30.0

    # Seconds between each spawn evaluation per player.
    # The hologram cannot spawn again until this interval has passed,
    # even after being claimed.
    interval: 600

    # Seconds until the hologram disappears if not claimed.
    despawn-after: 20

    # Position offset relative to the player.
    # z is "in front of the player" based on where they are looking.
    offset:
      # Horizontal shift left(-)/right(+) relative to player's facing.
      x: 0.0
      # Vertical shift up(+)/down(-).
      y: 1.5
      # Distance in front of the player.
      z: 2.5

    # Bobbing animation (up and down floating movement).
    bobbing:
      # Enable/disable the vertical movement.
      enabled: true
      # Amplitude in blocks — how high/low it moves from its base position.
      amplitude: 0.15
      # Oscillation speed — higher = faster bobbing.
      speed: 0.05

    # Spacing between hologram lines in blocks.
    line-spacing: 0.28

    # Click type required to claim the reward:
    #   RIGHT — right-click only
    #   LEFT  — left-click (attack) only
    #   BOTH  — either click works
    click-type: RIGHT

    # Hologram lines — supports & color codes and hex colors &#RRGGBB.
    #
    # Optional inline placeholder for per-line text scale
    # (DISPLAY renderer only — ignored on ARMOR_STAND):
    #   "{line_scale:1.2}your text here"
    # Lines without the placeholder use scale 1.0.
    #
    # WARNING: always put the line in quotes when using the placeholder —
    # YAML treats a leading { as a mapping and would break the config.
    lines:
      - "{line_scale:1.2}&#FFD700&l✦ DAILY REWARD ✦"
      - "&eClick to &aclaim"
      - "{line_scale:0.9}�BFFF&7Double XP for 10 minutes"
      - "&bJust for you!"

    # Reward list with individual chances.
    rewards:
      # How many rewards to pick from the list when claimed:
      #   -1 = evaluate ALL rewards, each one rolls its own chance
      #    1 = pick 1 at random and roll its chance
      #    2 = pick 2 at random and roll their chances
      #    N = pick N at random (capped at list size)
      pick: -1
      list:
        # %player% is replaced with the claiming player's name.
        - command: "give %player% diamond 3"
          chance: 100.0   # Always given
        - command: "effect give %player% speed 600 1"
          chance: 50.0    # 50% probability
        - command: "give %player% emerald 1"
          chance: 25.0    # 25% probability

    # Chat message when the hologram appears (%player% available).
    # Set to "" to disable.
    appear-message: "&6&l[Reward] &eYou have a reward available! Look in front of you."

    # Chat message when the player claims the reward.
    # Set to "" to disable.
    claim-message: "&a&l[Reward] &fYou claimed your daily reward! &7Come back in 10 minutes."

    # Title shown on screen when the hologram appears.
    title:
      # Enable/disable the title.
      enabled: true
      # Main title text (large, center of screen).
      title: "&6&l✦ REWARD ✦"
      # Subtitle text (smaller, below the title).
      subtitle: "&eA reward appeared in front of you"
      # All times in ticks (20 ticks = 1 second).
      fade-in: 10
      stay: 60
      fade-out: 20

    # Sound played when the hologram appears.
    # Sound list: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
    sound:
      # Enable/disable the sound.
      enabled: true
      # Sound name (without the minecraft: prefix).
      name: "ENTITY_EXPERIENCE_ORB_PICKUP"
      # Volume (0.0 - 1.0+).
      volume: 1.0
      # Pitch (0.5 = low, 1.0 = normal, 2.0 = high).
      pitch: 1.2

    # ── DISPLAY-only options (ignored with ARMOR_STAND renderer) ─────────
    display:
      # Billboard mode — how the entities rotate to face viewers:
      #   CENTER     — rotates both horizontally and vertically (always faces the player)
      #   VERTICAL   — rotates only around the vertical axis (turns left/right)
      #   HORIZONTAL — rotates only around the horizontal axis (pitches up/down)
      #   FIXED      — no auto-rotation, stays in a fixed orientation
      billboard: CENTER

      # Global scale — multiplies every line and the skull.
      # 1.0 = normal size, 1.5 = 50% bigger, 0.5 = half size.
      scale: 1.0

      # Glowing outline around all hologram entities.
      glow:
        # Enable/disable the glow effect.
        enabled: false
        # Glow color: WHITE, RED, GOLD, YELLOW, GREEN, AQUA, BLUE,
        # LIGHT_PURPLE, DARK_* variants, BLACK, GRAY...
        color: YELLOW

      # Text styling for the hologram lines.
    text:
      shadowed: true
      see-through: false
      # Text background — accepts 3 formats:
      #   TRANSPARENT     — fully invisible (classic hologram look)
      #   DEFAULT         — vanilla dark panel (black at 25%)
      #   "#AARRGGBB"     — custom ARGB color (alpha + hex)
      #   "#RRGGBB"       — custom RGB color (fully opaque)
      # WARNING: hex values MUST be quoted, otherwise '#' starts a YAML comment
      background: "#40000000"
      # Examples:
      #   background: TRANSPARENT        # invisible (as it was until now)
      #   background: DEFAULT            # vanilla panel
      #   background: "#80000000"        # black at 50%
      #   background: "#80FF0000"        # red at 50%
      #   background: "FFD700"           # opaque gold (6 digits)

    # Effects when the hologram APPEARS.
    appear:
      # Animation on spawn (DISPLAY renderer only):
      #   NONE — entities appear instantly at full size
      #   POP  — entities scale up from ~0 to full size, smoothly interpolated
      animation: POP
      # Duration of the POP animation in ticks (higher = slower/bigger feel).
      duration-ticks: 6
      # Particles spawned at the hologram's center on appear.
      # These work with BOTH renderers (armor stand and display).
      particles:
        # Enable/disable appear particles.
        enabled: true
        # Particle type. Use types that don't require extra data —
        # avoid DUST, ITEM, BLOCK, FALLING_* etc. (they are skipped with a warning).
        type: TOTEM_OF_UNDYING
        # Number of particles spawned.
        count: 25
        # Spread radius on each axis (how far particles scatter).
        spread: 0.5
        # Particle motion speed.
        speed: 0.1

    # Effects when the hologram DESPAWNS (timeout or claim).
    despawn:
      # Animation on removal (DISPLAY renderer only):
      #   NONE — entities vanish instantly
      #   POP  — entities shrink down to ~0 before being removed
      # While animating out, the hologram can no longer be claimed.
      animation: POP
      # Duration of the POP-out animation in ticks.
      duration-ticks: 6
      # Particles spawned at the hologram's center on despawn.
      # These work with BOTH renderers (armor stand and display).
      particles:
        # Enable/disable despawn particles.
        enabled: true
        # Particle type (same restrictions as appear particles).
        type: CLOUD
        count: 15
        spread: 0.4
        speed: 0.05

    # Custom skull displayed at the top of the hologram.
    skull:
      # Enable/disable the skull.
      enabled: true
      # Base64 texture (get it from minecraft-heads.com — copy the "Value" field).
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjhkYzNjODQ0OTFjNGZmMTAzZGU2ZWEwMTg4MGUyZDgzNDMyY2Q0ODc4Yjg0ZDZiNDMyNTNjYzUxZmQ5NzhlNyJ9fX0="
      # Initial head angle (0 = north, 90 = east, 180 = south, 270 = west).
      head-yaw: 0.0
      # Extra height above the last line.
      # Increase if the skull overlaps the lines, decrease if there's a gap.
      # Note: with DISPLAY the skull is centered on its position, so it may
      # need a different value than with ARMOR_STAND.
      height-offset: 0.7
      # Skull size with the DISPLAY renderer (1.0 = item size).
      # Try 1.5 - 2.0 for a bigger, more visible head.
      # Ignored with ARMOR_STAND.
      scale: 1.5
      # Automatic continuous Y rotation of the skull.
      rotation:
        # Enable/disable the spinning.
        enabled: true
        # Degrees per tick — at 2.0 a full 360° rotation takes ~9 seconds.
        speed: 2.0
      # Advanced skull animations — DISPLAY renderer only.
      effects:
        # Squash & stretch — the head squashes and stretches like a cartoon
        # (compresses on one axis while expanding on the others).
        squash:
          # Enable/disable the squash effect.
          enabled: true
          # Deformation intensity (0.1 = subtle, 0.3 = very cartoonish).
          amplitude: 0.10
          # Oscillation speed — higher = faster squash cycle.
          speed: 0.15
        # Sway — subtle left/right leaning of the head.
        tilt:
          # Enable/disable the tilt effect.
          enabled: true
          # Maximum lean in degrees each side (8 = subtle, 20 = dramatic).
          amplitude: 8.0
          # Oscillation speed — higher = faster swaying.
          speed: 0.06

    # Sound played when the reward is claimed.
    claim-sound:
      # Enable/disable the sound.
      enabled: true
      # Sound name (without the minecraft: prefix).
      name: "ENTITY_PLAYER_LEVELUP"
      # Volume (0.0 - 1.0+).
      volume: 1.0
      # Pitch (0.5 = low, 1.0 = normal, 2.0 = high).
      pitch: 1.5

  bonus_reward:
    renderer: DEFAULT

    chance: 10.0
    interval: 1800
    despawn-after: 15

    offset:
      x: 0.0
      y: 1.8
      z: 2.5

    bobbing:
      enabled: true
      amplitude: 0.20
      speed: 0.08

    line-spacing: 0.28

    # BOTH allows claiming with either right or left click.
    click-type: BOTH

    lines:
      - "{line_scale:1.3}&#FF00FF&l★ SPECIAL BONUS ★"
      - "&fClick to claim"
      - "�FF7F&a+500 Coins"

    rewards:
      # Pick 1 reward at random from the list and roll its chance.
      pick: 1
      list:
        - command: "eco give %player% 500"
          chance: 100.0
        - command: "eco give %player% 250"
          chance: 40.0
        - command: "broadcast &a%player% &fgot a special bonus!"
          chance: 100.0

    appear-message: "&d&l[Bonus] &fYou have a special bonus available!"
    claim-message: "&a&l[Bonus] &fYou claimed &a500 coins&f! Thanks for playing."

    title:
      enabled: true
      title: "&d&l★ SPECIAL BONUS ★"
      subtitle: "&fClick to claim 500 coins!"
      fade-in: 10
      stay: 60
      fade-out: 20

    sound:
      enabled: true
      name: "UI_TOAST_CHALLENGE_COMPLETE"
      volume: 1.0
      pitch: 1.0

    display:
      billboard: CENTER
      scale: 1.0
      glow:
        enabled: true
        color: LIGHT_PURPLE
      text:
        shadowed: false
        see-through: false
        background: TRANSPARENT

    appear:
      animation: POP
      duration-ticks: 8
      particles:
        enabled: true
        type: PORTAL
        count: 40
        spread: 0.7
        speed: 0.3

    despawn:
      animation: POP
      duration-ticks: 6
      particles:
        enabled: false
        type: CLOUD
        count: 15
        spread: 0.4
        speed: 0.05

    skull:
      enabled: true
      texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWI4NWUyOWYyOWVjOWE5MGU0ODJlYTViODM5MWJjYjQ1NjBiYmFlMGRjZDE1ZDdjZTFkODYwMTZiNDM1NmU5OCJ9fX0="
      head-yaw: 45.0
      height-offset: 0.7
      scale: 1.2
      rotation:
        enabled: false
        speed: 3.0
      effects:
        squash:
          enabled: false
          amplitude: 0.12
          speed: 0.15
        tilt:
          enabled: false
          amplitude: 8.0
          speed: 0.06

    claim-sound:
      enabled: true
      name: "ENTITY_PLAYER_LEVELUP"
      volume: 1.0
      pitch: 1.0

🎨 Color Support

lines:
  - "&6Orange text"                           # Classic color code
  - "&#FF5733Hex red text"                    # Hex color
  - "&l�FFFFCyan bold text"                # Combined
  - "{line_scale:1.3}&#FF00FF&lBig magenta"   # Per-line scale (DISPLAY renderer only)

🏆 Reward System

rewards:
  pick: 1       # Pick 1 reward at random from the list
  list:
    - command: "give %player% diamond 5"
      chance: 30.0
    - command: "give %player% gold_ingot 10"
      chance: 60.0
    - command: "give %player% iron_ingot 20"
      chance: 100.0

With pick: 1, one reward is chosen at random and its chance is evaluated. With pick: -1, all rewards are evaluated independently. With pick: N, N rewards are chosen at random (capped at the list size) and each one is evaluated by its chance.

📁 Generated Files

plugins/RewardHologram/
├── config.yml       # Hologram configuration
└── cooldowns.yml    # Per-player persistent cooldowns (auto-generated)

📣 Important:

This plugin was created using AI, but I've conducted extensive testing to ensure that it is 100% functional, both in terms of its features and its performance. You can also view the plugin's code in the GitHub repository.

Галерея

Example display entities update

Последние версии

Все версии →
release

Reward Hologram 1.0.5

1.0.5
13 окт. 2026 г.24Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11paper, purpur
Скачать
Что нового
## DISPLAY ENTITIES UPDATE The "Display Entities" system has been added. You can select the type of hologram you want to use. The **DISPLAY** mode includes spawn/respawn animations, skull movement effects (tilt and squash), as well as options to edit the billboard, adjust text scaling on specific lines (like {line_scale:1.7} &#aaaaaaBig Text), and much more. Everything is documented in config.yml. Video showing the animations using the new Display Entities system <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/STDwG3m1LsQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
release

Reward Hologram 1.0.4

1.0.4
13 авг. 2026 г.39Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11paper, purpur
Скачать
Что нового
**New**: Admin command /rh active - this detects all active holograms ## **New**: Admin command /rh tpto <player> <id> - Teleport to a specific active hologram ## Additional verification in case a hologram is not removed during a world change, server restart, or logout
release

Reward Hologram 1.0.3

1.0.3
5 авг. 2026 г.18Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11paper, purpur
Скачать
Что нового
**Update required if you're using it with active players** **FIX**: On some occasions, when a player switched worlds while a hologram was active, the hologram would not be removed during chunk loading, and upon returning to that location, the hologram would still be there, allowing the player to claim it an infinite number of times. Now, the hologram is removed when the player switches worlds. ## **NEW**: Command autocomplete has been added. ## **NEW**: A new admin command has been added to remove holograms within a radius you can define. Use /rh removenear 10.
release

Reward Hologram 1.0.0

1.0.0
6 июн. 2026 г.36Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11paper, purpur
Скачать
Что нового
fixed #rrggbb colors
release

Reward Hologram 1.0.0

1.0.0
3 июн. 2026 г.23Minecraft: 1.21.11, 26.1, 26.1.1, 26.1.2paper, purpur
Скачать
Что нового
# RewardHologram 🎁 A Paper +1.21.11 plugin that displays per-player floating reward holograms with bobbing animation, skull rotation, individual reward chances, and cooldowns that persist across server restarts. ## ✨ Features - **Per-player** — each player sees their own hologram, protected from other players - **Bobbing animation** — smooth up/down movement with configurable amplitude and speed - **Skull auto-rotation** — the hologram's head can spin continuously - **Custom skull** — Base64 texture with configurable height and initial angle - **Reward list with chances** — each reward has its own probability; use `pick` to control how many are given - **Hex color support** — use `&#RRGGBB` alongside classic `&` color codes - **Configurable click type** — `RIGHT`, `LEFT`, or `BOTH` per hologram - **Click cooldown** — prevents reward spam - **Persistent cooldowns** — intervals are respected across server restarts via `cooldowns.yml` - **No external dependencies** — only requires Paper +1.21.11 - **Auto cleanup** — removes orphaned armor stands on startup and when players disconnect - **Admin commands** — manual spawn/remove, live reload and list ## 📦 Dependencies | Dependency | Type | Link | |---|---|---| | Paper +1.21.11 | Required | [papermc.io](https://papermc.io) | No additional plugins required. ## ⚙️ Full Configuration ```yaml settings: debug: false # Milliseconds between allowed clicks per player (prevents spam) click-cooldown-ms: 500 holograms: my_reward: # Spawn probability (0.0 - 100.0) chance: 25.0 # Seconds between evaluations per player interval: 600 # Seconds until it disappears if not claimed despawn-after: 20 # Position offset relative to the player (in front of them) offset: x: 0.0 y: 1.5 z: 2.5 # Up/down bobbing animation bobbing: enabled: true amplitude: 0.15 # how much it moves in blocks speed: 0.05 # higher = faster # Spacing between hologram lines line-spacing: 0.28 # Click type to claim: RIGHT, LEFT, BOTH click-type: RIGHT # Lines — supports & codes and &#RRGGBB hex colors lines: - "&#FFD700&l✦ REWARD ✦" - "&eClick to claim" - "&#00BFFFHex blue text" # Reward list with individual chances rewards: # -1 = evaluate all | 1+ = pick N at random and evaluate them pick: -1 list: - command: "give %player% diamond 1" chance: 100.0 # always given - command: "give %player% emerald 1" chance: 50.0 # 50% probability - command: "give %player% gold_ingot 3" chance: 25.0 # 25% probability # Chat message on appear ("" to disable) appear-message: "&6You have a reward available!" # Chat message on claim claim-message: "&aYou claimed your reward!" # Title shown when the hologram appears title: enabled: true title: "&6&l✦ REWARD ✦" subtitle: "&eClick to claim" fade-in: 10 # ticks (20 ticks = 1 second) stay: 60 fade-out: 20 # Sound on appear sound: enabled: true name: "ENTITY_EXPERIENCE_ORB_PICKUP" volume: 1.0 pitch: 1.2 # Sound on claim claim-sound: enabled: true name: "ENTITY_PLAYER_LEVELUP" volume: 1.0 pitch: 1.5 # Custom skull at the top skull: enabled: true texture: "eyJ0ZXh0dXJlcy..." # Base64 from minecraft-heads.com head-yaw: 0.0 # initial angle (0-360) height-offset: 0.7 # extra height above the lines rotation: enabled: true speed: 2.0 # degrees per tick ``` ## 🔧 Commands | Command | Permission | Description | |---|---|---| | `/rh reload` | `rewardhologram.admin` | Live reload of config.yml | | `/rh list` | `rewardhologram.admin` | List holograms with chance and interval | | `/rh spawn <id> <player>` | `rewardhologram.admin` | Force-spawn a hologram for a player | | `/rh remove <id> <player>` | `rewardhologram.admin` | Remove a player's active hologram | ## 🎨 Color Support ```yaml lines: - "&6Orange text" # Classic color code - "&#FF5733Hex red text" # Hex color - "&l&#00FFFFCyan bold text" # Combined ``` ## 🏆 Reward System ```yaml rewards: pick: 1 # Pick 1 reward at random from the list list: - command: "give %player% diamond 5" chance: 30.0 - command: "give %player% gold_ingot 10" chance: 60.0 - command: "give %player% iron_ingot 20" chance: 100.0 ``` With `pick: 1`, one reward is chosen at random and its `chance` is evaluated. With `pick: -1`, all rewards are evaluated independently. ## 📁 Generated Files ``` plugins/RewardHologram/ ├── config.yml # Hologram configuration └── cooldowns.yml # Per-player persistent cooldowns (auto-generated) ```