Shulker
Registry name
etfuturum.shulker
Basic info
- Health: 30 HP
- Armor: 0 (open) / 20 (closed) —
isClosed()returns true whenpeekTick == 0 - Size:
1 × 1(base, but collision box dynamic based on attachment face and peek amount) - Spawn conditions: End dimension; spawns on end gateway portals and on blocks in the End (attached to surfaces)
- Drops: Shulker shell (50%+ chance, affected by loot table; only if
ModItems.SHULKER_SHELLenabled) - Behaviour: Stationary golem that attaches to block faces. Opens to reveal head and shoots projectiles at players.
Attachment and movement
- Attaches to any solid block face on spawn
- Teleports to a new nearby position (up to 8 blocks away) if block below attachment becomes air, or if below 50% health and random check passes
- Teleport targets require: air block at target, solid face on one of the 6 adjacent sides
- Does not move on its own otherwise
Combat mechanics
- Closed state (
peekTick == 0): immune to arrows, armor value = 20 - Open/attacking state: armor value = normal (0), can be damaged
- When health drops below 50%: 25% chance per tick to teleport
- If hit by another shulker’s bullet and teleported: may spawn a new shulker at the original position (chance based on nearby shulker count)
Shooting
- Range: 16 blocks (shoots if target within 400 blocks²)
- Fires
EntityShulkerBulletwith levitation effect (10s on impact) - Attack cooldown: 20–40 ticks (random)
- Shoots in the direction of the attached face
Colour / dyeing
Colordata watcher: values 0–15 for dye colours, 16 = default purple (undyed)- Right-click with dye: changes colour
- Right-click with water bucket on water-immersed shulker: resets to colour 16 (undyed)
- Colour is preserved on teleport/spawn
Sound events
- Ambient:
minecraft:entity.shulker.ambient - Hurt (open):
minecraft:entity.shulker.hurt - Hurt (closed):
minecraft:entity.shulker.hurt_closed - Death:
minecraft:entity.shulker.death - Open:
minecraft:entity.shulker.open - Close:
minecraft:entity.shulker.close - Shoot:
minecraft:entity.shulker.shoot - Teleport:
minecraft:entity.shulker.teleport
Notes
EntityGolembase (same as iron golem)IMobinterface — counts as monster for spawning/difficulty rules- Collision box is
null(cannot be collided with for block movement) canDespawn: false ifpersistenceRequired = true- Eye height: 0.5 (relative to bottom of shulker body)
- Vertical/horizontal face speed: 180 (instant rotation)
applyEntityCollision: no-op (no entity push)