Shulker Bullet
Registry name
etfuturum.shulkerBullet
Basic info
- Health: Not applicable (projectile)
- Armor: None
- Size:
0.3125 × 0.3125(width × height) - Spawn conditions: Spawned by
EntityShulkerwhen attacking a target within range - Drops: None (no death drops)
- Behaviour: Homing projectile fired by shulkers. Travels in the direction the shulker is facing, accelerating toward the target. Applies Levitation on hit.
Homing mechanics
- Initial direction: toward the shulker’s attached face direction
- After initial travel: recalculates direction toward target
targetDeltaadjusts 2.5% per tick (clamped to ±1.0), creating a homing curve- Speed:
0.15units per tick in each axis - Changes direction at step boundaries (every 10–50 ticks randomly)
Movement phases
- Initial (
steps > 0): travels in straight line from shulker face - Homing (
steps == 0, target exists): curves toward target withtargetDeltaadjustment - Dormant (target dead/null): falls with gravity (
motionY -= 0.04)
Collision and hit detection
- Raycasts each tick using
Utils.forwardsRaycast bulletHit()on collision:- If hits block: spawns
largeexplodeparticle, plays hit sound - If hits entity: deals 4.0 indirect mob damage + applies Levitation (10 seconds)
- If hits block: spawns
Levitation effect
Applied via ModPotions.levitation: 10 × 20 = 200 ticks of Levitation I
Destruction
- Dies on any collision (block or entity)
- Dies immediately in Peaceful difficulty
- Attacked by player: spawns 12 crit particles, plays hurt sound, dies
Notes
noClip = true— phases through blocksisBurning() = false— never renders as burning- Brightness: always 1.0 (full bright, no lighting falloff)
getBrightnessForRenderreturns 15728880 (max)canBeCollidedWithreturns true — can be attacked/hit by player- Owner UUID tracked for multiplayer sync; recreated on first tick if null