Sglunar Grazer
Based on game build 714014 | Last updated: 2026-03-08
Overview
SGlunar_grazer is the stategraph for the Lunar Grazer boss entity. It orchestrates the entity's behavior—including patrolling, attacking, taking damage, melting, splatting, and being captured—via a set of named states and event-driven transitions. It leverages several core components (combat, health, locomotor, gestaltcapturable) to respond to gameplay events and manage internal state transitions based on timers, animations, and external triggers.
Usage example
This stategraph is automatically applied to the Lunar Grazer prefab and is not directly instantiated by modders. However, modders can interact with it via events:
-- Trigger a forced despawn of the Lunar Grazer
inst:PushEvent("lunar_grazer_despawn", { force = true })
-- Force the entity to be captured and removed
inst:PushEvent("captured_despawn")
Dependencies & tags
Components used: combat, health, locomotor, gestaltcapturable
Tags: Uses state tags (idle, busy, queueattack, caninterrupt, debris, invisible, temp_invincible, noattack, hit, moving, canrotate, softstop) and entity tags (NOCLICK). Adds/removes tags dynamically during state transitions.
Properties
No public properties. All state memory is stored internally in inst.sg.statemem or inst.sg.mem.
Main functions
This file returns a StateGraph definition and defines no standalone public functions. State behavior is implemented via state callbacks (onenter, onupdate, ontimeout, onexit) and event handlers.
Events & listeners
- Listens to:
doattack— Initiates attack if not busy; queues attack ifqueueattacktag is active.attacked— Entershitstate unless resisting non-planar damage or busy withnointerrupt.minhealth— Enterssplatstate if not debris.lunar_grazer_despawn— Triggersmelt,captured_despawn, or immediate removal.captured— Entershitif not debris or invisible.captured_despawn— Marks for forced removal, enterscaptured_despawnstate.locomote— Triggers movement state changes (walk_start/walk/walk_stop) based onlocomotorinput.gestaltcapturable_targeted— Prevents rotation and halts forward movement.animover— Advances to next state after animation completes (used across many states).
- Pushes: None (does not emit events itself).