Skip to content

Main Config

config.yml with its default values. Notes are added only where a key is not self-explanatory.

Two rules apply to the whole file:

  • item: takes a Bukkit material (ARMOR_STAND) or an ItemsAdder/Nexo id (boxstand:pose). An id this server cannot make falls back to the material. Add modeldata beside an item for a custom-model-data number.
  • require-permission: turns on the permission written above it in the file. See Permissions.

gui

gui:
  require-permission: false
  background:
    item: boxstand:blank_slot     # fills empty and unusable slots
  titles:
    main: "..."
    pose: "..."
    mannequin: "Select Mannequin"
    model: "..."                  # the model-naming prompt
  buttons:
    visible:
      require-permission: false
      item:
        on-state: boxstand:visible_on
        off-state: boxstand:visible_off
    # gravity and base-plate: the same keys
    # arms: adds show-hands (show held items while arms are off)
    # lock: adds personal (only the locker may open the GUI)
    # pose: one item, no on/off states

backpack

backpack:
  require-permission: true
  scale: 0.625        # 1.0 = a full block
  offset:
    y: 3.5885         # height above the stand's feet

balloon

balloon:
  require-permission: true
  click-part: chestplate    # click this body part to fill the balloon
  item:
    scale: 0.625
    small-head: false       # hang it at a small stand's head size
  model:
    require-permission: true
    scale: 1.25             # 1.0 = the model's own size
    leash-bone: handle      # which l_ bone the lead ties to
    item: boxstand:balloon
    info-item: boxstand:info  # help item, must be an enchanted book
  mob:
    require-permission: true
    scale: 1.25
    baby:
      require-permission: true

offsets

From the stand's feet: x side, y up, z front and back.

  offsets:
    position:    { x: -1.25, y: 3.25, z: 0.0 }   # the balloon
    lead-end:    { x: -1.25, y: 3.25, z: 0.0 }   # far end of the lead
    lead-start:  { x: -0.25, y: 0.75, z: 0.0 }   # lead meets the stand
    rise-from:   { x: -0.25, y: 0.75, z: 0.0 }   # where a new one starts

motion

  motion:
    turn-speed: 0.12        # how fast it turns with the stand, 0-1
    follow-speed: 0.1       # how fast it follows the stand, 0-1
    drag-lean:
      strength: 2.0         # lean away when dragged; 0 = never
      max-degrees: 22.5
    rise:
      enabled: true         # a new balloon floats up from rise-from
      speed-share: 0.35     # part of follow-speed used while rising
    culling:
      enabled: true         # freeze while nobody watches
      radius-blocks: 32     # further than this, nobody is watching
      always-radius-blocks: 5   # this close, everyone counts
    sway:                   # side tilt; mobs never sway
      item: true
      model: true
      tilt-degrees: 5.0
    bob:
      item: true
      model: true
      mob: true
      distance-blocks: 0.25
      speed: 0.05           # also the sway clock

model

model:
  emissive-bone: emissive   # bones with this word in the name are lit

mannequin

mannequin:
  bones:                    # bone names a worn model copies the pose onto
    head: head
    body: body
    left-arm: left_arm
    right-arm: right_arm
    left-leg: left_leg
    right-leg: right_leg
    base-plate: baseplate

A name no bone answers to is skipped.

paste-slot

The first slot of each menu: setup in the stand GUI (switches, mannequin, items) and pose in the part selector.

paste-slot:
  setup: { require-permission: true,  item: boxstand:paste }
  pose:  { require-permission: false, item: boxstand:paste }

pose

The rest pose

Where a stand sits when nothing has been turned yet.

pose:
  # A mannequin stands in this animation's first frame.
  # Empty = every stand uses the numbers below.
  default-animation: idle
  default:                  # degrees, used when there is no such animation
    head:      { x: 0,   y: 0, z: 0 }
    body:      { x: 0,   y: 0, z: 0 }
    right-arm: { x: -15, y: 0, z: 10 }
    left-arm:  { x: -10, y: 0, z: -10 }
    right-leg: { x: 1,   y: 0, z: 1 }
    left-leg:  { x: -1,  y: 0, z: -1 }

It is also where shift-clicking a part in the selector puts it back to, and the pose a stand takes the moment a model goes on.

Stand Rest pose
No model the default: degrees
Wearing a mannequin the first frame of the clip it holds - a preset pose if one is chosen, default-animation otherwise
Wearing a mannequin with no such animation the default: degrees

Controls

  control: scroll           # scroll or wasd
  swap-view-axes: true      # front and side views turn the other axis
  sidebar: true             # the board shown beside the crosshair while posing
  outline-block: orange_stained_glass   # what the picked part is outlined with
  scroll:
    step-degrees: 5         # decimals allowed
    invert-direction: false
    hide-hotbar: true       # empty the hotbar and off hand while posing
  wasd:
    step-degrees: 5
    cooldown-ticks: 1       # ticks between turns while a key is held
    hide-hotbar: false

The sidebar borrows the screen's one sidebar slot while posing, then gives it back. With PacketEvents it holds other boards off meanwhile.

outline-block goes to the picking player alone, as a glowing display shaped to that limb - pick a see-through block. Bedrock and servers without PacketEvents get particles.

Part buttons

  buttons:
    back:  { item: boxstand:mannequin_back }
    parts:
      item:
        head: boxstand:part_head
        body: boxstand:part_body
        left-arm: boxstand:part_arm_left
        right-arm: boxstand:part_arm_right
        left-leg: boxstand:part_leg_left
        right-leg: boxstand:part_leg_right
        stand: boxstand:part_stand
      edited-item:            # shown once that part has been turned
        head: boxstand:part_head_edited
        body: boxstand:part_body_edited
        left-arm: boxstand:part_arm_left_edited
        right-arm: boxstand:part_arm_right_edited
        left-leg: boxstand:part_leg_left_edited
        right-leg: boxstand:part_leg_right_edited

A part with no edited-item keeps its plain icon and gets a glint instead.

sneak

Sneaking reveals hidden stands nearby.

sneak:
  require-permission: false
  radius-blocks: 20
  blacklisted-worlds: [spawn, hub, lobby, event, minigame]
  indicator:
    item: boxstand:visible_on
    billboard: VERTICAL     # VERTICAL, HORIZONTAL, CENTER or FIXED

packets

packets:
  enabled: true

What it changes, on by default and only where PacketEvents is installed:

With Without
Backpack, balloon, lead Drawn per viewer, no entity Real display entities
Entity count Unchanged Three or four per stand
Other plugins and mobs Cannot see or touch them Can hit, move or delete them
Clear-lag sweeps Nothing to find Can wipe them
Clicking a limb outside the hitbox Answered per viewer, no entity Needs a small Interaction entity
Bedrock players Body and mannequin pose held still, so armour stays on the model Armour drifts off a posed model
Pose sidebar Holds other scoreboards back while posing Loses the slot to a plugin that redraws

/boxstand reload switches it live, and redraws what is already out there.