Beardbunnymanbrain
Based on game build 714014 | Last updated: 2026-03-03
Overview
beardbunnymanbrain.lua defines an unused and unmaintained brain class named WerePigBrain intended for an AI-controlled entity (likely a variant of Werepig). The comment at the top explicitly warns: "Unused, not maintained, don't copy from this file." It implements basic behavior via a behavior tree, including panic handling, food seeking (when safe), chasing/attacking, and wandering back toward a remembered home location. The brain depends on shared behavior helpers and components for movement, combat, eating, homing, and location tracking.
Usage example
This brain is not intended for use in production code. As a reference, here is how one might attach it to an entity (though discouraged per source comments):
local WerePigBrain = require("brains/beardbunnymanbrain")
inst:AddBrain(WerePigBrain(inst))
Dependencies & tags
Components used:
combat(to checkdefaultdamage,target, and target status)eater(to determine edible targets viaCanEat)follower(to verify lack of leader)homeseeker(to access and verify home location)knownlocations(to remember and retrieve"home"position)
Tags: None identified.
Properties
No public properties are defined in this file.
Main functions
FindFoodAction(inst)
- Description: Searches for an edible entity within
SEE_FOOD_DIST(10 units) that is edible (eater:CanEat) and on a passable point. Returns a bufferedEATaction on success, ornil. - Parameters:
inst(entity instance) — the actor seeking food. - Returns:
BufferedActionornil. - Error states: Returns
nilif no valid food target is found or if theeatercomponent is missing.
GoHomeAction(inst)
- Description: Returns a
GOHOMEbuffered action toward the entity’s home if no leader exists and the home location is valid and known. Note: This function is defined but never used in the brain. - Parameters:
inst(entity instance). - Returns:
BufferedActionornil. - Error states: Returns
nilif the entity has a leader, lacks thehomeseekercomponent, or the home location is invalid/unset.
TargetIsAggressive(inst)
- Description: Checks whether the current combat target is actively attacking the entity (
target.combat.target == inst) and deals damage (defaultdamage > 0). Used to toggle between eating and combat states. - Parameters:
inst(entity instance). - Returns:
boolean. - Error states: Returns
falseif no combat target exists, target lacks combat component, or target is not targetinginst.
WerePigBrain:OnStart()
- Description: Initializes the brain's behavior tree with a priority-based root node. Highest-priority behaviors are panic triggers (via
BrainCommon), followed by safe eating, combat/chase, and finally wandering toward remembered home. - Parameters: None (instance method).
- Returns: Nothing.
- Error states: Behavior tree setup may fail if required components (
combat,eater,knownlocations, etc.) are missing, but no explicit error handling is present.
WerePigBrain:OnInitializationComplete()
- Description: Records the entity’s current world position as
"home"inknownlocationsonce initialization completes. - Parameters: None (instance method).
- Returns: Nothing.
Events & listeners
This file does not define any event listeners or events pushed. It relies on external systems (e.g., ChaseAndAttack, Wander, DoAction) to handle events internally.