HytaleDocs
NPCDecisionMaking

Conditions

Asset path: Server/NPC/DecisionMaking/Conditions/*.json

This object has different properties depending on the value of the Type property.

All possible options are listed below:

FlockSize

FlockSizeCondition with the following properties:

KeyTypeDescription
TypeConstant value: FlockSize

This field controls the type, it must be set to the constant value "FlockSize" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another FlockSizeCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

CurveEither
ScaledXResponseCurve

ScaledXResponseCurve with the following properties:

KeyTypeDescription
Type(Nullable) String

This field controls the type, it must be set to the constant value "Default" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledXResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

ResponseCurveString

Reference to a ResponseCurve asset

The response curve to scale

XRange(Nullable) Array of Number

The range to map the x axis to. e.g. [ 0, 10 ]

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

or
ScaledSwitchResponseCurve

ScaledSwitchResponseCurve with the following properties:

KeyTypeDescription
TypeConstant value: Switch

This field controls the type, it must be set to the constant value "Switch" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledSwitchResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

InitialStateNumber defaults to: 0.0

The y value to return before the switch point.

FinalStateNumber defaults to: 1.0

The y value to return at and beyond the switch point.

SwitchPointNumber defaults to: 0.0

The value at which to switch from the initial state to the final state.

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

The scaled response curve used to evaluate the condition.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

HasTarget

A simple boolean condition that returns whether the NPC has a target locked in the given slot.

HasTargetCondition with the following properties:

KeyTypeDescription
TypeConstant value: HasTarget

This field controls the type, it must be set to the constant value "HasTarget" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another HasTargetCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

FalseValueNumber defaults to: 0.0

The utility value to use when the condition evaluates false.

TrueValueNumber defaults to: 1.0

The utility value to use when the condition evaluates true.

TargetSlotString that matches the pattern: [^\s] and is at least 1 characters long

The target slot to check.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

IsInState

A simple boolean condition that returns whether the NPC is in a given state.

IsInStateCondition with the following properties:

KeyTypeDescription
TypeConstant value: IsInState

This field controls the type, it must be set to the constant value "IsInState" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another IsInStateCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

FalseValueNumber defaults to: 0.0

The utility value to use when the condition evaluates false.

TrueValueNumber defaults to: 1.0

The utility value to use when the condition evaluates true.

StateString that matches the pattern: [^\s] and is at least 1 characters long

The main state to evaluate.

SubState(Nullable) String

The optional substate to evaluate.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

KnownTargetCount

A scaled curve condition that returns a utility value based on the number of known targets in the memory.

TargetMemoryCountCondition with the following properties:

KeyTypeDescription
TypeConstant value: KnownTargetCount

This field controls the type, it must be set to the constant value "KnownTargetCount" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another TargetMemoryCountCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

CurveEither
ScaledXResponseCurve

ScaledXResponseCurve with the following properties:

KeyTypeDescription
Type(Nullable) String

This field controls the type, it must be set to the constant value "Default" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledXResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

ResponseCurveString

Reference to a ResponseCurve asset

The response curve to scale

XRange(Nullable) Array of Number

The range to map the x axis to. e.g. [ 0, 10 ]

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

or
ScaledSwitchResponseCurve

ScaledSwitchResponseCurve with the following properties:

KeyTypeDescription
TypeConstant value: Switch

This field controls the type, it must be set to the constant value "Switch" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledSwitchResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

InitialStateNumber defaults to: 0.0

The y value to return before the switch point.

FinalStateNumber defaults to: 1.0

The y value to return at and beyond the switch point.

SwitchPointNumber defaults to: 0.0

The value at which to switch from the initial state to the final state.

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

The scaled response curve used to evaluate the condition.

TargetType(Nullable) Any one of the following String (defaults to Hostile):
TargetType
NameDescription
"Hostile"

Known hostile targets.

"Friendly"

Known friendly targets.

"All"

All known targets.

The type of targets to count.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

LineOfSight

A simple boolean condition that returns whether or not there is a line of sight to the target.

LineOfSightCondition with the following properties:

KeyTypeDescription
TypeConstant value: LineOfSight

This field controls the type, it must be set to the constant value "LineOfSight" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another LineOfSightCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

FalseValueNumber defaults to: 0.0

The utility value to use when the condition evaluates false.

TrueValueNumber defaults to: 1.0

The utility value to use when the condition evaluates true.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

NearbyCount

A scaled curve condition that returns a utility value based on the number of NPCs nearby belonging to a specific NPCGroup.

NearbyCountCondition with the following properties:

KeyTypeDescription
TypeConstant value: NearbyCount

This field controls the type, it must be set to the constant value "NearbyCount" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another NearbyCountCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

CurveEither
ScaledXResponseCurve

ScaledXResponseCurve with the following properties:

KeyTypeDescription
Type(Nullable) String

This field controls the type, it must be set to the constant value "Default" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledXResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

ResponseCurveString

Reference to a ResponseCurve asset

The response curve to scale

XRange(Nullable) Array of Number

The range to map the x axis to. e.g. [ 0, 10 ]

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

or
ScaledSwitchResponseCurve

ScaledSwitchResponseCurve with the following properties:

KeyTypeDescription
TypeConstant value: Switch

This field controls the type, it must be set to the constant value "Switch" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledSwitchResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

InitialStateNumber defaults to: 0.0

The y value to return before the switch point.

FinalStateNumber defaults to: 1.0

The y value to return at and beyond the switch point.

SwitchPointNumber defaults to: 0.0

The value at which to switch from the initial state to the final state.

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

The scaled response curve used to evaluate the condition.

RangeNumber defaults to: 0.0

The range within which to count NPCs.

NPCGroupString

Reference to a NPCGroup asset

The NPCGroup to count NPCs from.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

OwnStatAbsolute

A scaled curve condition that returns a utility value based on the absolute value of one of this NPC's stats.

SelfStatAbsoluteCondition with the following properties:

KeyTypeDescription
TypeConstant value: OwnStatAbsolute

This field controls the type, it must be set to the constant value "OwnStatAbsolute" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another SelfStatAbsoluteCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

CurveEither
ScaledXResponseCurve

ScaledXResponseCurve with the following properties:

KeyTypeDescription
Type(Nullable) String

This field controls the type, it must be set to the constant value "Default" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledXResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

ResponseCurveString

Reference to a ResponseCurve asset

The response curve to scale

XRange(Nullable) Array of Number

The range to map the x axis to. e.g. [ 0, 10 ]

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

or
ScaledSwitchResponseCurve

ScaledSwitchResponseCurve with the following properties:

KeyTypeDescription
TypeConstant value: Switch

This field controls the type, it must be set to the constant value "Switch" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledSwitchResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

InitialStateNumber defaults to: 0.0

The y value to return before the switch point.

FinalStateNumber defaults to: 1.0

The y value to return at and beyond the switch point.

SwitchPointNumber defaults to: 0.0

The value at which to switch from the initial state to the final state.

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

The scaled response curve used to evaluate the condition.

StatString

Reference to a EntityStatType asset

The stat to check.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

OwnStatPercent

A curve condition that returns a utility value based on the percentage value of one of this NPC's stats.

SelfStatPercentageCondition with the following properties:

KeyTypeDescription
TypeConstant value: OwnStatPercent

This field controls the type, it must be set to the constant value "OwnStatPercent" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another SelfStatPercentageCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

CurveString

Reference to a ResponseCurve asset

The response curve used to evaluate the condition.

StatString

Reference to a EntityStatType asset

The stat to check.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

Randomiser

A condition that jitters between two defined values to add a small amount of randomness to the final utility value.

RandomiserCondition with the following properties:

KeyTypeDescription
TypeConstant value: Randomiser

This field controls the type, it must be set to the constant value "Randomiser" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another RandomiserCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

MinValueNumber defaults to: 0.0

The minimum bound of the jitter.

MaxValueNumber defaults to: 0.0

The maximum bound of the jitter.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

RecentSustainedDamage

A scaled curve condition that returns a utility value based on damage taken since the combat action evaluator was last run.

RecentSustainedDamageCondition with the following properties:

KeyTypeDescription
TypeConstant value: RecentSustainedDamage

This field controls the type, it must be set to the constant value "RecentSustainedDamage" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another RecentSustainedDamageCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

CurveEither
ScaledXResponseCurve

ScaledXResponseCurve with the following properties:

KeyTypeDescription
Type(Nullable) String

This field controls the type, it must be set to the constant value "Default" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledXResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

ResponseCurveString

Reference to a ResponseCurve asset

The response curve to scale

XRange(Nullable) Array of Number

The range to map the x axis to. e.g. [ 0, 10 ]

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

or
ScaledSwitchResponseCurve

ScaledSwitchResponseCurve with the following properties:

KeyTypeDescription
TypeConstant value: Switch

This field controls the type, it must be set to the constant value "Switch" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledSwitchResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

InitialStateNumber defaults to: 0.0

The y value to return before the switch point.

FinalStateNumber defaults to: 1.0

The y value to return at and beyond the switch point.

SwitchPointNumber defaults to: 0.0

The value at which to switch from the initial state to the final state.

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

The scaled response curve used to evaluate the condition.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

SelfHasEffect

A simple boolean condition that returns whether the NPC has a specific active entity effect.

SelfHasEffectCondition with the following properties:

KeyTypeDescription
TypeConstant value: SelfHasEffect

This field controls the type, it must be set to the constant value "SelfHasEffect" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another SelfHasEffectCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

FalseValueNumber defaults to: 0.0

The utility value to use when the condition evaluates false.

TrueValueNumber defaults to: 1.0

The utility value to use when the condition evaluates true.

EffectId(Nullable) String

Reference to a EntityEffect asset

The entity effect to check for.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

TargetDistance

A scaled curve condition that returns a utility value based on the distance between the NPC and the target.

TargetDistanceCondition with the following properties:

KeyTypeDescription
TypeConstant value: TargetDistance

This field controls the type, it must be set to the constant value "TargetDistance" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another TargetDistanceCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

CurveEither
ScaledXResponseCurve

ScaledXResponseCurve with the following properties:

KeyTypeDescription
Type(Nullable) String

This field controls the type, it must be set to the constant value "Default" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledXResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

ResponseCurveString

Reference to a ResponseCurve asset

The response curve to scale

XRange(Nullable) Array of Number

The range to map the x axis to. e.g. [ 0, 10 ]

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

or
ScaledSwitchResponseCurve

ScaledSwitchResponseCurve with the following properties:

KeyTypeDescription
TypeConstant value: Switch

This field controls the type, it must be set to the constant value "Switch" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledSwitchResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

InitialStateNumber defaults to: 0.0

The y value to return before the switch point.

FinalStateNumber defaults to: 1.0

The y value to return at and beyond the switch point.

SwitchPointNumber defaults to: 0.0

The value at which to switch from the initial state to the final state.

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

The scaled response curve used to evaluate the condition.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

TargetHasEffect

A simple boolean condition that returns whether the target entity has a specific active entity effect.

TargetHasEffectCondition with the following properties:

KeyTypeDescription
TypeConstant value: TargetHasEffect

This field controls the type, it must be set to the constant value "TargetHasEffect" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another TargetHasEffectCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

FalseValueNumber defaults to: 0.0

The utility value to use when the condition evaluates false.

TrueValueNumber defaults to: 1.0

The utility value to use when the condition evaluates true.

EffectId(Nullable) String

Reference to a EntityEffect asset

The entity effect to check for.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

TargetMovementState

A simple boolean condition that returns whether the target is in a given movement state.

TargetMovementStateCondition with the following properties:

KeyTypeDescription
TypeConstant value: TargetMovementState

This field controls the type, it must be set to the constant value "TargetMovementState" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another TargetMovementStateCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

FalseValueNumber defaults to: 0.0

The utility value to use when the condition evaluates false.

TrueValueNumber defaults to: 1.0

The utility value to use when the condition evaluates true.

StateAny one of the following String:
MovementState
NameDescription
"Jumping"
"Flying"
"Crouching"
"Running"
"Sprinting"
"Falling"
"Climbing"
"Walking"
"Idle"
"Any"

The movement state to check for.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

TargetStatAbsolute

A scaled curve condition that returns a utility value based on the absolute value of one of the target's stats.

TargetStatAbsoluteCondition with the following properties:

KeyTypeDescription
TypeConstant value: TargetStatAbsolute

This field controls the type, it must be set to the constant value "TargetStatAbsolute" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another TargetStatAbsoluteCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

CurveEither
ScaledXResponseCurve

ScaledXResponseCurve with the following properties:

KeyTypeDescription
Type(Nullable) String

This field controls the type, it must be set to the constant value "Default" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledXResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

ResponseCurveString

Reference to a ResponseCurve asset

The response curve to scale

XRange(Nullable) Array of Number

The range to map the x axis to. e.g. [ 0, 10 ]

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

or
ScaledSwitchResponseCurve

ScaledSwitchResponseCurve with the following properties:

KeyTypeDescription
TypeConstant value: Switch

This field controls the type, it must be set to the constant value "Switch" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledSwitchResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

InitialStateNumber defaults to: 0.0

The y value to return before the switch point.

FinalStateNumber defaults to: 1.0

The y value to return at and beyond the switch point.

SwitchPointNumber defaults to: 0.0

The value at which to switch from the initial state to the final state.

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

The scaled response curve used to evaluate the condition.

StatString

Reference to a EntityStatType asset

The stat to check.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

TargetStatPercent

A curve condition that returns a utility value based on the percentage value of one of the target's stats.

TargetStatPercentageCondition with the following properties:

KeyTypeDescription
TypeConstant value: TargetStatPercent

This field controls the type, it must be set to the constant value "TargetStatPercent" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another TargetStatPercentageCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

CurveString

Reference to a ResponseCurve asset

The response curve used to evaluate the condition.

StatString

Reference to a EntityStatType asset

The stat to check.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

TimeOfDay

A scaled curve condition that returns a utility value based on the current in-game time of day.

TimeOfDayCondition with the following properties:

KeyTypeDescription
TypeConstant value: TimeOfDay

This field controls the type, it must be set to the constant value "TimeOfDay" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another TimeOfDayCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

CurveEither
ScaledXResponseCurve

ScaledXResponseCurve with the following properties:

KeyTypeDescription
Type(Nullable) String

This field controls the type, it must be set to the constant value "Default" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledXResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

ResponseCurveString

Reference to a ResponseCurve asset

The response curve to scale

XRange(Nullable) Array of Number

The range to map the x axis to. e.g. [ 0, 10 ]

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

or
ScaledSwitchResponseCurve

ScaledSwitchResponseCurve with the following properties:

KeyTypeDescription
TypeConstant value: Switch

This field controls the type, it must be set to the constant value "Switch" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledSwitchResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

InitialStateNumber defaults to: 0.0

The y value to return before the switch point.

FinalStateNumber defaults to: 1.0

The y value to return at and beyond the switch point.

SwitchPointNumber defaults to: 0.0

The value at which to switch from the initial state to the final state.

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

The scaled response curve used to evaluate the condition.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

TimeSinceLastUsed

A scaled curve condition that returns a utility value based on how long it has been since the Option was last used.

TimeSinceLastUsedCondition with the following properties:

KeyTypeDescription
TypeConstant value: TimeSinceLastUsed

This field controls the type, it must be set to the constant value "TimeSinceLastUsed" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another TimeSinceLastUsedCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

CurveEither
ScaledXResponseCurve

ScaledXResponseCurve with the following properties:

KeyTypeDescription
Type(Nullable) String

This field controls the type, it must be set to the constant value "Default" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledXResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

ResponseCurveString

Reference to a ResponseCurve asset

The response curve to scale

XRange(Nullable) Array of Number

The range to map the x axis to. e.g. [ 0, 10 ]

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

or
ScaledSwitchResponseCurve

ScaledSwitchResponseCurve with the following properties:

KeyTypeDescription
TypeConstant value: Switch

This field controls the type, it must be set to the constant value "Switch" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledSwitchResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

InitialStateNumber defaults to: 0.0

The y value to return before the switch point.

FinalStateNumber defaults to: 1.0

The y value to return at and beyond the switch point.

SwitchPointNumber defaults to: 0.0

The value at which to switch from the initial state to the final state.

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

The scaled response curve used to evaluate the condition.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

TotalSustainedDamage

A scaled curve condition that returns a utility value based on total damage taken during this bout of combat.

TotalSustainedDamageCondition with the following properties:

KeyTypeDescription
TypeConstant value: TotalSustainedDamage

This field controls the type, it must be set to the constant value "TotalSustainedDamage" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another TotalSustainedDamageCondition most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

CurveEither
ScaledXResponseCurve

ScaledXResponseCurve with the following properties:

KeyTypeDescription
Type(Nullable) String

This field controls the type, it must be set to the constant value "Default" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledXResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

ResponseCurveString

Reference to a ResponseCurve asset

The response curve to scale

XRange(Nullable) Array of Number

The range to map the x axis to. e.g. [ 0, 10 ]

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

or
ScaledSwitchResponseCurve

ScaledSwitchResponseCurve with the following properties:

KeyTypeDescription
TypeConstant value: Switch

This field controls the type, it must be set to the constant value "Switch" to function as this type.

ParentString

When set this asset will inherit properties from the named asset.

When inheriting from another ScaledSwitchResponseCurve most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

InitialStateNumber defaults to: 0.0

The y value to return before the switch point.

FinalStateNumber defaults to: 1.0

The y value to return at and beyond the switch point.

SwitchPointNumber defaults to: 0.0

The value at which to switch from the initial state to the final state.

Tags(Nullable) Map

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

The scaled response curve used to evaluate the condition.

Tags(Nullable) Map of the following:
Map
KeyType
any StringArray of String

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

Notes:

Types referenced by this type

Map

(Nullable) Map of the following:

KeyType
any StringArray of String

On this page