Skip to main content

Graveguard Ghostbrain

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

Overview

GraveGuardBrain implements the behavior tree for a ghost entity, determining how it moves, searches for targets, and interacts. It extends Brain and constructs a behavior tree (BT) in OnStart() that orchestrates three primary behaviors: following a valid living target, engaging in playful interactions with nearby ghosts, and eventually despawning after a full day cycle. It relies heavily on knownlocations (for home position), health (to verify target vitality), and timer (to prevent overly frequent play behavior).

Usage example

local inst = CreateEntity()
inst:AddTag("ghost")
inst:AddComponent("brain")
inst.brain = inst:AddBrain("graveguard_ghostbrain")
inst.components.knownlocations:SetLocation("home", Vector3(0,0,0))
inst:ListenForEvent("beattacked", function() inst.sg:GoToState("panic") end)

Dependencies & tags

Components used: knownlocations, health, timer, transform Tags: Checks and prevents targeting INLIMBO, noauradamage, abigail, busy; seeks targets with one of character, hostile, monster, smallcreature; seeks playmates with one of ghost.

Properties

PropertyTypeDefault ValueDescription
playfultargetEntity or nilnilThe currently selected ghost to play with, or nil.
followtargetEntity or nilnilThe current living entity this ghost is pursuing.

Main functions

OnStart()

  • Description: Initializes and assigns the behavior tree root node. This is called once when the brain becomes active and constructs a priority-based behavior tree with the following nodes: (1) follow a living target, (2) despawn if queued, (3) play with a nearby ghost, (4) wander and despawn after a full day.
  • Parameters: None.
  • Returns: Nothing.
  • Error states: None identified.

Events & listeners

  • Listens to: None.
  • Pushes: "start_playwithghost" with {target=<Entity>} when initiating play with a playmate; internal events from behavior tree nodes (e.g., SequenceNode, Follow) trigger state transitions in the owner's stategraph.