> For the complete documentation index, see [llms.txt](https://edseries-plugins.gitbook.io/p/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://edseries-plugins.gitbook.io/p/edcrates/features/animations.md).

# Animations

Opening animations, the presets in animations.yml and how to make your own.

A crate picks a preset with `animation: <id>` (`none` for instant rewards). Players can toggle animations off in the selector. Animations are cosmetic: the result is rolled before they start and granted when they end, or the moment the player closes the menu or leaves.

## GUI reels

```yaml
roulette:
  type: GUI
  mode: scroll          # scroll: rewards slide through and decelerate; random: every slot flickers
  reel-slots: '9-17'
  landing-slot: 13
  steps: 26
  interval: 2
  slow-down: true
  highlight: most       # most | rarest: which reward stops under the marker
  reveal-slots: '19,20,21,23,24,25'   # the other rewards of a multi-roll or bulk open
  close-after: 40
  return-to-selector: true
```

## World lootbox

```yaml
lootbox:
  type: WORLD
  only-opener-sees: true      # false = everyone nearby sees it
  item: { source: crate }     # crate | selector | custom
  scale: 1.1
  spawn: { distance: 1.7, height: 0.25 }
  rise:  { height: 1.5, ticks: 22 }
  spin:  { ticks: 44, step: 4, degrees-per-second: 420, wobble: 0.12 }
  burst:
    ticks: 55
    radius: 1.3
    reward-scale: 0.6
    max-rewards: 6            # bulk opens show the most rolled rewards; the rarest is always kept
    hologram: true
    hologram-format: '&f{count}x &r{reward}'
  grant: burst                # burst | end
  sounds: { spawn: ..., rise: ..., spin: ..., end: ... }
  particles: { rise: END_ROD, spin: WAX_OFF, burst: TOTEM_OF_UNDYING, burst-trail: FIREWORK }
```

The crate pops in front of the player, floats up (one keyframe), spins faster and faster (one keyframe every `spin.step` ticks), collapses and bursts into its rewards, which fly out in an arc with name tags and fade. Everything is display-entity interpolation, so a whole animation is a couple of dozen packets.

`lootbox-public` is the same preset visible to everyone, for showpiece crates.

## Chests (pick a chest)

`type: CHESTS`. Chests rise out of the ground in a ring around the player, each with a "Click to open!" hologram. Every chest the player clicks pops open and a rolled reward floats out of it with its name. There is one chest per roll, so a 5-roll lootbox gives 5 chests to click even when several rolls hit the same reward. `picks: all` lets the player open every rolled reward; `picks: 1` (with `chests: 5`) is the classic choose-one, where the other chests then open to show the decoys. After `auto-open-seconds` (shown as `{seconds}` in `hologram-text`) the remaining picks open by themselves, so nothing stays in the world forever. Keys: `chests`, `picks`, `radius`, `chest-material` / `chest-item`, `hologram-text`, `decoys`, `decoy-format`, `decoy-delay`, `reveal-ticks`, `end-delay`, `auto-open-seconds`, `max-distance`.

## Fountain

`type: FOUNTAIN`. The box opens and fires its rewards up one after another (`interval`); each arcs to `peak-height` and lands in a row `land-distance` back towards the player, where its name pops up. The row holds for `hold-ticks` and fades.

## Orbit

`type: ORBIT`. The rewards circle the player at `radius` / `height`, accelerating over `orbit-ticks` (`turns` full circles), then snap into a line in front of the player with name tags, hold and fade.

All world types share `only-opener-sees`, `spawn.distance` / `spawn.height`, `max-distance`, `hologram-format`, `max-rewards`, `sounds.*` and `particles.*`.

## Bulk opens

With `animate-bulk: true` on the crate, opening many keys plays the animation once and shows the top rewards with their counts (`{count}x`). Set it to `false` to skip animations for bulk opens.
