code/__DEFINES/ai/ai.dm 
| UNLOCK_DO_ONCE | Clears the blackboard latch used by a /datum/bt_node/decorator/do_once. |
|---|---|
| TARGETING_FACTION_CHECK | Returns TRUE if the target should be rejected based on factions. Inlined faction check for targeting strategies but with less proc overhead. Strategies with fully custom faction logic set custom_faction_check and override faction_check() instead. |
| TARGET_REVALIDATE | If a target is already set, validate it via is_valid_target before searching. Replace if invalid. |
| TARGET_KEEP_IF_SET | If a target is already set, return SUCCESS immediately without re-checking. |
| TARGET_ALWAYS_SEARCH | Always run the full candidate search, ignoring any existing target. |
| TARGET_RESELECT_WITH_SELECTION | Revalidate an existing target, and only search for a replacement while it remains valid if a target priority strategy is configured. |
| AI_STATUS_ON | The AI is currently active, and is planned by the high priority subsystem. |
| AI_STATUS_ON_LOW | The AI is currently active, but is planned by the low priority (background) subsystem. |
| AI_STATUS_OFF | The AI is not running. Cancels any active plans if set. |
| AI_UNABLE_TO_RUN | pauses AI processing |
| AI_PREVENT_CANCEL_ACTIONS | bypass canceling our actions on set_ai_status() |
| AI_MAX_PATH_LENGTH | For JPS pathing, the maximum length of a path we'll try to generate. Should be modularized depending on what we're doing later on |
| AI_FAILED_PLANNING_COOLDOWN | Cooldown on planning if planning failed last time |
| AI_CONTROLLER_INCOMPATIBLE | Flags for ai_behavior new() |
| AI_BEHAVIOR_DELAY | Update this behavior's cooldown |
| AI_BEHAVIOR_SUCCEEDED | Finish the behavior successfully |
| AI_BEHAVIOR_FAILED | Finish the behavior unsuccessfully |
| STOP_MOVING_WHEN_PULLED | AI flags Don't move if being pulled |
| CAN_ACT_WHILE_DEAD | Continue processing even if dead |
| PAUSE_DURING_DO_AFTER | Stop processing while in a progress bar |
| CAN_ACT_IN_STASIS | Continue processing while in stasis |
| CAN_ACT_WHILE_GRABBED | Continue processing while aggressively grabbed |
| RUN_WHILE_UNWATCHED | Keeps planning on low prio when unwatched |
| ALWAYS_HIGH_PRIORITY | Always plans at high priority. Only works with RUN_WHILE_UNWATCHED |
| DEFAULT_AI_FLAGS | Flags we expect for most AI controllers |
| PASSIVE_AI_FLAGS | Flags for passive mobs that are easy to push around |
| SEARCH_TACTIC_DEFAULT_RANGE | default search range (tiles, passed to oview) when using find_and_set |
| RESIST_SUBTREE_PROB | probability that the pawn should try resisting out of restraints |
| SHOULD_RESIST | macro for whether it's appropriate to resist right now, used by resist subtree |
| ABSTRACT_AI_CLASS | Use this if you dont want a controller to show up in the sidebar (e.g. when its a class that just sets BB keys) |
Define Details
ABSTRACT_AI_CLASS 
Use this if you dont want a controller to show up in the sidebar (e.g. when its a class that just sets BB keys)
AI_BEHAVIOR_DELAY 
Update this behavior's cooldown
AI_BEHAVIOR_FAILED 
Finish the behavior unsuccessfully
AI_BEHAVIOR_SUCCEEDED 
Finish the behavior successfully
AI_CONTROLLER_INCOMPATIBLE 
Flags for ai_behavior new()
AI_FAILED_PLANNING_COOLDOWN 
Cooldown on planning if planning failed last time
AI_MAX_PATH_LENGTH 
For JPS pathing, the maximum length of a path we'll try to generate. Should be modularized depending on what we're doing later on
AI_PREVENT_CANCEL_ACTIONS 
bypass canceling our actions on set_ai_status()
AI_STATUS_OFF 
The AI is not running. Cancels any active plans if set.
AI_STATUS_ON 
The AI is currently active, and is planned by the high priority subsystem.
AI_STATUS_ON_LOW 
The AI is currently active, but is planned by the low priority (background) subsystem.
AI_UNABLE_TO_RUN 
pauses AI processing
ALWAYS_HIGH_PRIORITY 
Always plans at high priority. Only works with RUN_WHILE_UNWATCHED
CAN_ACT_IN_STASIS 
Continue processing while in stasis
CAN_ACT_WHILE_DEAD 
Continue processing even if dead
CAN_ACT_WHILE_GRABBED 
Continue processing while aggressively grabbed
DEFAULT_AI_FLAGS 
Flags we expect for most AI controllers
PASSIVE_AI_FLAGS 
Flags for passive mobs that are easy to push around
PAUSE_DURING_DO_AFTER 
Stop processing while in a progress bar
RESIST_SUBTREE_PROB 
probability that the pawn should try resisting out of restraints
RUN_WHILE_UNWATCHED 
Keeps planning on low prio when unwatched
SEARCH_TACTIC_DEFAULT_RANGE 
default search range (tiles, passed to oview) when using find_and_set
SHOULD_RESIST 
macro for whether it's appropriate to resist right now, used by resist subtree
STOP_MOVING_WHEN_PULLED 
AI flags Don't move if being pulled
TARGETING_FACTION_CHECK 
Returns TRUE if the target should be rejected based on factions. Inlined faction check for targeting strategies but with less proc overhead. Strategies with fully custom faction logic set custom_faction_check and override faction_check() instead.
TARGET_ALWAYS_SEARCH 
Always run the full candidate search, ignoring any existing target.
TARGET_KEEP_IF_SET 
If a target is already set, return SUCCESS immediately without re-checking.
TARGET_RESELECT_WITH_SELECTION 
Revalidate an existing target, and only search for a replacement while it remains valid if a target priority strategy is configured.
TARGET_REVALIDATE 
If a target is already set, validate it via is_valid_target before searching. Replace if invalid.
UNLOCK_DO_ONCE 
Clears the blackboard latch used by a /datum/bt_node/decorator/do_once.