Totem

Totem pattern

north (-z) ↑ (-x) west ←┼→ east (+x) ↓ south (+z)

pattern:
  core: 4,2,2 # layer:4 line:2 index:2 -> DAYLIGHT_DETECTOR
  layer:
    1:
      - 'AIR        GOLD_BLOCK        AIR'
      - 'GOLD_BLOCK GOLD_BLOCK GOLD_BLOCK'
      - 'AIR        GOLD_BLOCK        AIR'
    2:
      - 'AIR    AIR     AIR'
      - 'AIR GOLD_BLOCK AIR'
      - 'AIR    AIR     AIR'
    3:
      - 'AIR      AIR      AIR'
      - 'AIR LIGHTNING_ROD AIR'
      - 'AIR      AIR      AIR'
    4:
      - 'AIR        AIR        AIR'
      - 'AIR DAYLIGHT_DETECTOR AIR'
      - 'AIR        AIR        AIR'
pattern:
  core: 3,1,2
  layer:
    4:
      - '*_STAIRS{face=east} OBSERVER{face=south} *_STAIRS{face=west}' 
    3:
      - 'AIR CRYING_OBSIDIAN AIR'
    2:
      - 'AIR *_LOG{axis=y}||*_PILLAR{axis=y} AIR'
    1:
      - 'AIR ANVIL AIR'

Core

Designate the core block within the pattern. The numbers correspond to layer, line, and index respectively. In this case, the core block is located in layer 3, line 1, and index 2. When referencing the layer portion below, this core points to the CRYING_OBSIDIAN block.

Layer

Describes the layer-by-layer build of the structure.

Block Type

*_XXX: any block id ends with XXX XXX_*: any block id starts with XXX XXX: Vanilla block id (Capital letters) xxx: custom block id (ItemsAdder/Oraxen)

Note: If you are using ItemsAdder, exclude the namespace namespace:block_id (X) block_id (√)

Block Data

Available data types: axis: x/y/z face: west/east/north/south/up/down half: bottom/up

To use more block data together, just follow the example: XXX{data_1=value_1;data_2=value_2;data_3=value_3}

||

Represents OR

Totem properties

totem_key:
  duration: 300  <- in seconds
  radius: 10     <- effective range
  particles:
    ...
  pattern:
    ...
  effects:
    ...
  requirements:
    ...
  events:
    activate:
      ...

Default totems

Particles

  • type: REDSTONE: This signifies the type of particle to be used. In this case, a REDSTONE particle type is chosen. https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html

  • polar-coordinates-formula: This section decides how the particle is positioned or how it moves in a polar coordinate system.

    • horizontal: '{radius}': The radial distance from the totem core in the horizontal direction.

    • vertical: '-1.5': The vertical position of the particle, relative to totem core.

  • theta: Theta is commonly used in polar coordinates to represent the angle of rotation.

    • draw-interval: 0.2: Specifies how frequently the angle changes or how fine-grained the particle's rotation is. A smaller value can lead to smoother transitions.

    • range: Specifies the range of theta.

      • 0~360: The particle will be drawn in a full circle from 0 to 360 degrees.

  • task: Describes the task or action related to the particle's rendering.

    • period: 4: Indicates how often the particle effect should update or re-render.

    • delay: 0: The delay before the particle effect starts. Here, it starts immediately with no delay.

  • options:

# REDSTONE
options:
    color: 186,85,211
    scale: 0.8  (0.1~4)
# DUST_COLOR_TRANSITION
options:
    from: 255,255,255
    to: 0,0,0
    scale: 0.8

Example:

particles:
  particle_0:
    type: REDSTONE
    options:
      color: 178,34,34
      scale: 1
    polar-coordinates-formula:
      horizontal: '{radius}'
      vertical: '-1.5'
    theta:
      draw-interval: 0.2
      range:
        - 0~360
    task:
      period: 4
      delay: 0
  particle_1:
    type: REDSTONE
    options:
      color: 178,34,34
      scale: 1
    polar-coordinates-formula:
      horizontal: '{radius}/(2*cos({theta}))'
      vertical: '-1.5'
    theta:
      draw-interval: 0.2
      range:
        - 0~60
        - 120~180
    task:
      period: 4
      delay: 0
  particle_2:
    type: REDSTONE
    options:
      color: 178,34,34
      scale: 1
    polar-coordinates-formula:
      horizontal: '-{radius}/(2*cos({theta}))'
      vertical: '-1.5'
    theta:
      draw-interval: 0.2
      range:
        - 0~60
        - 120~180
    task:
      period: 4
      delay: 0
  particle_3:
    type: REDSTONE
    options:
      color: 178,34,34
      scale: 1
    polar-coordinates-formula:
      horizontal: '({radius})/(cos({theta}) + sqrt(3) * sin({theta}))'
      vertical: '-1.5'
    theta:
      draw-interval: 0.2
      range:
        - 0~120
    task:
      period: 4
      delay: 0
  particle_4:
    type: REDSTONE
    options:
      color: 178,34,34
      scale: 1
    polar-coordinates-formula:
      horizontal: '-({radius})/(cos({theta}) + sqrt(3) * sin({theta}))'
      vertical: '-1.5'
    theta:
      draw-interval: 0.2
      range:
        - 0~120
    task:
      period: 4
      delay: 0
  particle_5:
    type: REDSTONE
    options:
      color: 178,34,34
      scale: 1
    polar-coordinates-formula:
      horizontal: '-({radius})/(cos({theta}) - sqrt(3) * sin({theta}))'
      vertical: '-1.5'
    theta:
      draw-interval: 0.2
      range:
        - 60~180
    task:
      period: 4
      delay: 0
  particle_6:
    type: REDSTONE
    options:
      color: 178,34,34
      scale: 1
    polar-coordinates-formula:
      horizontal: '({radius})/(cos({theta}) - sqrt(3) * sin({theta}))'
      vertical: '-1.5'
    theta:
      draw-interval: 0.2
      range:
        - 60~180
    task:
      period: 4
      delay: 0

Last updated