Considerations
There are 3 kinds of considerations:
- Boolean consideration: Returns a score of
0.0
or1.0
.- Use this when you need to consider a Yes-No question. If the answer is
yes
, it returns1.0
, and vice versa. - For example:
- IsTargetInAttackRange
- IsTargetInDamageArea
- IsInAttackCooldown
- Use this when you need to consider a Yes-No question. If the answer is
- Dynamic consideration: Returns a dynamic score from
0.0
to1.0
.- Use this when you need a consideration that returns a score which changes dynamically based on the input value.
- For example:
- TargetInSightRadius
- TargetInAttackRange
- MyHealthIsLow
- TargetHealthIsHigh
- Constant consideration: Returns a constant score in
[0.0, 1.0]
. Use this when:- You need a consideration that always returns a constant score, e.g.,
0.1
or0.2
, etc. - You need a fallback decision that will be selected if the agent doesn’t know which decision to make in the current situation.
- For example:
- Idle
- You need a consideration that always returns a constant score, e.g.,
Common Consideration Recipes¶
Distance¶
IsTarget(Not)InRange¶
- Returns
1.0
if the target is within the specified range or0.0
if it is outside the range. - Recipe
- Input:
DistanceToTargetInput
- InputNormalization:
IsInRangeNormalization
- ResponseCurve:
Basic Linear
(Inverse Linear
)
- Input:
TargetInRange¶
- Returns a score in the range
[0.0, 1.0]
. It maps the input value (DistanceToTargetInput
) from[Start, End]
to[0.0, 1.0]
.- If the input value is less than Start, returns
0.0
- If the input value is greater than End, returns
1.0
- If the input value is less than Start, returns
- Recipe
- Input:
DistanceToTargetInput
- InputNormalization:
InRangeNormalization
- ResponseCurve: Which ResponseCurve you should use
- Input:
Is(StateName)State¶
- Returns
1.0
if input state is the specified state; otherwise returns0.0
. - Recipe:
- Input: User-defined (often an
Enum
)- Returns a state of the agent or the target.
- InputNormalization: User-defined
- Returns
1.0
if input state is the specified state. - Returns
1.0
if input state is not the specified state.
- Returns
- ResponseCurve:
Basic Linear
(Inverse Linear
)
- Input: User-defined (often an
Is(Not)InCooldown¶
- Returns
1.0
if theCooldownElapsedTimeInput
is within the cooldown duration; otherwise returns0.0
- Recipe:
- Input:
CooldownElapsedTimeInput
- InputNormalization:
IsInCooldownNormalization
- ResponseCurve:
Basic Linear
(Inverse Linear
)
- Input:
Random¶
- Returns a random score in
[0.0, 1.0]
- Recipe:
- Input: User-defined
- Returns a random input value.
- InputNormalization:
BasicNormalization
- ResponseCurve:
Basic Linear
- Input: User-defined
Health¶
- The input value will be normalized by dividing by
100
- If the input is less than
0.0
, returns0.0
- If the input is greater than
100
, returns1.0
- If the input is less than
- Recipe
- Input: Health
- InputNormalization:
DivideByMaxValue
- ResponseCurve: Which ResponseCurve you should use
Idle¶
- Returns a constant score (often
0.1
) - Recipe:
- Input: None
- InputNormalization: None
- ResponseCurve:
Constant
Which ResponseCurve you should use¶
- Boolean considerations
Basic Linear
orInverse Linear
- Dynamic considerations
Suppose the input gradually increases from0.0
to1.0
:- The score is proportional to the input and increases gradually.
- Linear:
Basic Linear
- Slow at first, fast later:
Basic Quadric Lower Right
- Fast at first, slow later:
Basic Quadric Upper Left
- Slow at either end, fast in the middle:
Basic Logistic
- Fast at either end, slow in the middle:
Basic Logit
- Linear:
- The score is inversely proportional to the input and decreases gradually.
- Linear:
Inverse Linear
- Slow at first, fast later:
Basic Quadric Upper Right
- Fast at first, slow later:
Basic Quadric Lower Left
- Slow at either end, fast in the middle:
Inverse Logistic
- Fast at either end, slow in the middle:
Inverse Logit
- Linear:
- The score fluctuates
- Slow at either end, fast in the middle:
Basic Bell Curve
orInverse Bell Curve
- Fast at either end, slow in the middle:
Basic Logit
orInverse Logit
- More dynamic:
Basic Sine
orInverse Sine
- Slow at either end, fast in the middle:
- The score is proportional to the input and increases gradually.
- Constant considerations
Constant
If you haven’t already, please consider leaving a review on the Asset Store. Whether good or bad, your feedback helps shape the future of this framework, and lets others determine whether it’s a good fit for their games. Thank you so much!💘 I love you all!🥰

Last update :
October 11, 2025
Created : January 18, 2025
Created : January 18, 2025