> 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/physical.md).

# Physical Crates

Placed crates in the world, their idle animation and holograms.

A placed crate is a scaled head (item display), an invisible click box and a hologram. No blocks, no armor stands. Entities are non-persistent and tagged, so a crash never leaves any behind; they are respawned when their chunk loads.

`/edcrates item <crate>` gives the placeable item; right-click a block to place it (permission `edcrates.place`). Placed crates spend the player's virtual keys; there are no key items. `/edcrates place <crate>` places one where you stand; `/edcrates remove` removes the nearest. Sneak + left-click removes a crate and hands the item back.

```yaml
placeable:
  enabled: true
  item: { material: PLAYER_HEAD, texture: '...', name: '...', lore: [ ... ] }
  display:
    texture: '...'          # head texture (or material: for any item)
    scale: 2.5
    y-offset: 0.75
    yaw-offset: 180.0
    animation:
      enabled: true
      spin-degrees-per-second: 45.0
      bob-amplitude: 0.1
      bob-period-seconds: 4.0
  interaction: { width: 1.4, height: 2.6, y-offset: 0.0 }
  hologram:
    per-player: true        # each viewer gets their own text (own key count)
    y-offset: 1.75
    scale: 1.25
    rotating:
      interval: 60          # ticks between reward swaps
      format: '{reward}'    # {reward}, {reward_plain}, {rarity}
      mode: sequential      # sequential | random
      rarities: ''          # e.g. 'legendary,mythical'
    lines:
      - '&6&lRusty &r&e&lKey &r&7[Tier I]'
      - '&fYou have &e{keys} &fkeys'
      - '{rotating}'
```

## Idle animation

The spin and bob are **keyframed**: every `physical.animation-step` ticks (default 10) one transformation is sent and the client interpolates towards it. A spinning, bobbing crate costs two packets a second per viewer. Placement plays a pop-in (`physical.place-animation`).

## Holograms

With `per-player: true` every player within `physical.hologram-range` gets a private text display, so `{keys}` is their own balance. `{rotating}` cycles through the crate's rewards on the crate's own interval; every hologram of that crate (and `%edcrates_rotating_<crate>%`) shows the same reward at the same time. PlaceholderAPI placeholders work in the lines.

## Clicks

`physical.left-click`, `right-click`, `sneak-left-click`, `sneak-right-click` in config.yml: `preview`, `selector`, `open-one`, `open-all`, `remove`, `none`.
