Skip to main content

Fused Shadeling Bomb

Based on game build 714014 | Last updated: 2026-03-05

Overview​

fused_shadeling_bomb is a monster entity that patrols and chases targets using the locomotor and entitytracker components. It slowly scales up over time and detonates after a configurable delay, dealing planar and direct damage within range while spawning additional fused_shadeling_quickfuse_bomb projectiles. The prefab uses a stategraph (SGfused_shadeling_bomb) and includes client-side ball-following effects and scorch mark particles. It interacts with combat, entitytracker, groundshadowhandler, locomotor, and timer components.

Usage example​

This prefab is created internally by the game when certain entities (e.g., parasitic_shadeling) spawn it. It is not typically instantiated manually by modders, but the core behavior can be replicated as follows:

local bomb = SpawnPrefab("fused_shadeling_bomb")
if bomb and TheWorld.ismastersim then
-- Set initial target (optional)
bomb:PushEvent("setexplosiontarget", { target = target_entity })
-- The rest of the behavior (growth, chase, explosion) is automated.
end

Dependencies & tags​

Components used: combat, entitytracker, groundshadowhandler, locomotor, timer, inspectable, transform, animstate, soundemitter, dynamicshadow, follower, network, groundshadowhandler

Tags added: hostile, monster, notraptrigger, shadow, shadow_aligned, explosive

Properties​

PropertyTypeDefault ValueDescription
_current_scalenumber1.0Current scale factor applied to the bomb's animation (grows toward FULL_SIZE).
_ballentity or nilnil(Client-side only) Child entity representing the growing bomb ball that follows the parent.
_start_ball_growingeventnet_event(...)Networked event used on client to trigger ball growth animation in sync with server.

Main functions​

do_explosion_effect(inst, ix, iy, iz)​

  • Description: Triggers visual and damage effects for the bomb’s detonation. Finds nearby valid targets within EXPLODE_RANGE and damages them, then spawns death FX and scorch mark.
  • Parameters: inst (entity) — the bomb instance; ix, iy, iz (optional numbers) — world position to use (defaults to bomb’s current position).
  • Returns: Nothing.

do_full_explode(inst)​

  • Description: Performs the full explosion: spawns EXTRA_QUICKFUSE_BOMBS projectiles at randomized angles over a short time, then removes the bomb and calls do_explosion_effect.
  • Parameters: inst (entity) — the bomb instance.
  • Returns: Nothing.

do_chase_tick(inst)​

  • Description: Attempts to locate a target (entitytracker:GetEntity("target")), and if not found or lost, searches for a new one using FindEntity. If a target is found and is outside INSIDE_CHASE_RANGESQ, moves toward a point near the target’s current position.
  • Parameters: inst (entity) — the bomb instance.
  • Returns: Nothing.

do_quickfuse_bomb_toss(inst, ix, iy, iz, angle)​

  • Description: Spawns and launches a fused_shadeling_quickfuse_bomb projectile with random velocity.
  • Parameters: inst (entity), ix, iy, iz (numbers) — spawn position, angle (optional number) — launch angle (defaults to random).
  • Returns: Nothing.

Events & listeners​

  • Listens to:
    setexplosiontarget — sets and tracks a new target via entitytracker:TrackEntity("target", target).
    timerdone — dispatches to handler functions (on_timer_done) for explosion, chase tick, spawn delays, and scaling timers.
    fused_shadeling_bomb._start_ball_growing — (client only) triggers do_ball_grow to sync ball animation.
    animover — (death FX only) removes the entity when animation finishes.
    fadedirty — (scorch only) updates fading opacity on client.

  • Pushes:
    fused_shadeling_bomb._start_ball_growing — (server only, networked) signals client to grow the ball.