Skip to content

AIData: Cooperation

Part of CombatState. Cooperation defines coordinated behavior between multiple NPCs — formation attacks, sequential/concurrent attack patterns, and order passing between leader and follower NPCs.


cooperation
├── Scalar properties
├── workList
│ └── CooperationWork [multiple]
├── tensionList
│ └── Tension [multiple]
│ └── Info [multiple]
└── receiveOrderList
└── ReceiveOrder [multiple]

PropertyTypeSinceDescription
concurrentAttackDurationstringv92Duration of concurrent attack window
escapeDurationstringv92Duration of escape behavior
sequentialAttackDelaystringv92Delay between sequential attacks

A superset of Work with additional cooperation-specific fields for formation and order management.

PropertyTypeSinceDescription
idintv92Unique work identifier
descstringv92Internal description
normalBehaviorIdintv92Behavior/skill ID for normal mode
normalBehaviorTypestringv92Behavior type for normal mode
angerBehaviorIdintv92Behavior/skill ID for anger mode
angerBehaviorTypestringv92Behavior type for anger mode
distanceRatedecimalv92Distance rate modifier
distanceTypeintv92Distance calculation type
activeMoveIdForSkillOnNormalModestringv92Active move for normal mode skill
activeMoveIdForSkillOnAngerModestringv92Active move for anger mode skill
isDirectionRevisionboolv92Enable direction correction
offFlockOnNormalModeboolv92Disable flocking in normal mode
offFlockOnAngerModeboolv92Disable flocking in anger mode
msgstringv92Message ID on execution
msgImmediatelystringv92Send message immediately
msgProbstringv92Message probability
msgIntervalstringv92Message interval
nextAttackIdstringv92Chained attack ID
nextAttackProbstringv92Chained attack probability
nextShorttermTargetIdstringv92Chained short-term target ID
nextShorttermTargetProbstringv92Chained short-term target probability
noCancelNextAttackByAggroChangedstringv92Prevent chain cancel on aggro change
preProcessstringv92Pre-processing action
coolTimestringv92Cooldown after execution
formationIdintv92Formation identifier for group positioning
orderTypestringv92Order type (e.g. sequential, concurrent)
sendOrderIdintv92Order ID to send to followers
sendOrderMaxCountintv92Maximum followers to receive order
sendOrderRangeintv92Range for sending orders
sendOrderRefTargetintv92Reference target for order sending

Reuses the same Tension → Info structure as Attack. Tension id values are referenced by PatternTension.cooperationTension in Patterns.

PropertyTypeSinceDescription
idintv92Tension identifier
PropertyTypeSinceDescription
workIdintv92Reference to a CooperationWork.id
probdecimalv92Selection probability weight
distanceRatedecimalv92Distance rate override

Defines how this NPC responds to orders received from a leader NPC.

PropertyTypeSinceDescription
orderIdintv92Order ID to listen for (matches leader’s sendOrderId)
attackIdintv92Attack work ID to execute on receiving order
probdecimalv92Probability of obeying the order
formationAttackIdstringv92Formation-specific attack ID
formationAttackProbstringv92Formation attack probability
formationCheckTimestringv92Time to check formation validity

ai:
create:
- huntingZoneId: 9001
id: 300
name: "boss_with_cooperation"
combatState:
enable: true
checkInterval: 1000
cooperation:
concurrentAttackDuration: "3000"
sequentialAttackDelay: "1000"
workList:
- id: 1
desc: "Formation charge"
normalBehaviorId: 3001
normalBehaviorType: "skill"
angerBehaviorId: 3002
angerBehaviorType: "skill"
orderType: "concurrent"
formationId: 1
sendOrderId: 10
sendOrderRange: 1000
sendOrderMaxCount: 3
tensionList:
- id: 1
infos:
- workId: 1
prob: 1.0
receiveOrderList:
- orderId: 10
attackId: 1
prob: 0.8