Skip to main content

Slingshotaoefx

Based on game build 7140014 | Last updated: 2026-03-07

Overview​

This file defines three prefabs used exclusively for visual feedback during slingshot usage: slingshot_aoe_fx, slingshot_powerup_fx, and slingshot_powerup_mounted_fx. These prefabs render dynamic visual effects such as expanding target rings, colorized aura indicators (for slingshot shot types like Ice, Shadow, Lunar), and power-up animations preceding a slingshot projectile launch. The AOE effect uses the updatelooper component for per-frame alpha/colour animation and is parented to the slingshot entity to follow its position. Effects are server-aware (not spawned on dedicated servers) and are non-persistent (persists = false).

Usage example​

This file is not intended for runtime component instantiation; it returns prefabs for use in Prefabs definitions. A typical usage inside a slingshot action or projectile launch would be:

local aoe = Prefab("slingshot_aoe_fx")()
aoe.Transform:SetPosition(x, y, z)
aoe:SetColorType("lunar") -- Set to any COLOR_NAMES entry

Dependencies & tags​

Components used: updatelooper (via inst.components.updatelooper:AddOnUpdateFn) Tags: Adds FX, NOCLICK to all effect entities. No per-component behavior beyond standard ECS and network tags.

Properties​

No public properties are defined on the returned prefab instances. All relevant state (color, alpha, delta, disc) is encapsulated in local closures and internal structures.

Main functions​

SetColorType(inst, colorname)​

  • Description: Updates the visual color, bloom, and light override of the AOE effect based on a named color (e.g., "ice", "lunar"). Also updates the nested disc effect if present.
  • Parameters:
    inst (entity) – the slingshot AOE FX instance.
    colorname (string) – one of "ice", "slow", "shadow", "horror", "lunar"; falls back to white if unknown.
  • Returns: Nothing.
  • Error states: None; invalid colorname results in default white coloring.

aoefn()​

  • Description: Constructor function for the slingshot_aoe_fx prefab. Creates a non-persistent FX entity with an animating target ring (target_fx_ring), sets up networked color replication, and instantiates the nested disc effect on non-dedicated clients.
  • Parameters: None (used as a Prefab factory function).
  • Returns: An initialized entity with colordirty network variable and a local disc child (non-dedicated only).
  • Error states: Dedicated servers skip disc creation and do not run client-side animation logic.

MakePowerup(name, mounted, assets)​

  • Description: Factory function that generates either the standard or mounted slingshot power-up FX prefab. Includes a back-layer animation child (created via powerup_CreateBack) to create a layered animation.
  • Parameters:
    name (string) – prefab name (e.g., "slingshot_powerup_fx").
    mounted (boolean) – controls animation bank ("wilsonbeefalo" if true).
    assets (table) – anim assets table to register with the Prefab.
  • Returns: A Prefab definition function that returns a non-persistent FX entity.

Events & listeners​

  • Listens to:
    • colordirty (on non-master simulations) – triggers OnColorDirty(inst) to refresh disc visuals.
    • animover (on master simulation) – calls inst.Remove() to destroy the effect after its animation completes.
  • Pushes: None.