<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Pawn :: Catur Documentation</title>
    <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/index.html</link>
    <description>A Pawn is a moving, animated, AI-driven entity with health. It extends the actor with a skeletal mesh, AI, lifecycle and floating movement. Added with addPawn(tag, skills, lambda).&#xA;Setters Setter Effect actorClass(class) The ACPawn subclass spawned for this pawn. basic(...) Identity block → FCBP_ACPBasic. skeletal(...) Mesh and animation → FCBP_CPSkeletal. behavior(...) Attack behavior → FCBP_CPBehavior. ai(...) AI, team, behavior tree → FCBP_CPAI. lifecycle(...) Health and damage → FCBP_CPLifecycle. fogOfWar(...) Fog reveal → FCBP_FogOfWarRevealer. movement(...) Floating movement → FCBP_PMovement. interaction(...) Interaction rules → FCBP_PawnInteraction. Example FCBP_Pawn pawn = FCBP_Pawn() .actorClass(ACPawn::StaticClass()) .basic(FCBP_ACPBasic() .mainTag(&#34;ENEMY&#34;) .minScale(0.9f) .maxScale(1.1f)) .skeletal(FCBP_CPSkeletal() .skeletalMesh(retrieveAsset&lt;USkeletalMesh&gt;(&#34;ENEMY_MESH&#34;)) .physicsAsset(retrieveAsset&lt;UPhysicsAsset&gt;(&#34;ENEMY_PHYSICS&#34;)) .animClass(retrieveClass&lt;UCAnimInstance&gt;(&#34;ENEMY_ANIM_CLASS&#34;))) .behavior(FCBP_CPBehavior() .meleeAttackBehavior(FCBP_CPMeleeAttackBehavior() .allowComboLoop(true))) .ai(FCBP_CPAI() .team(1) .aiClass(ACAIController::StaticClass()) .behaviorTree(retrieveAsset&lt;UBehaviorTree&gt;(&#34;ENEMY_BT&#34;))) .lifecycle(FCBP_CPLifecycle() .maxLife(100.0f) .damage(5.0f) .blockArmor(3.0f) .damageOn({ETeamAttitude::Hostile})) .fogOfWar(FCBP_FogOfWarRevealer() .lineOfSightSizeMeter(4.5f) .revealedAreaSizeMeter(6.5f)) .movement(FCBP_PMovement() .maxWalkSpeed(6.0f)) .interaction(FCBP_PawnInteraction() .interactWithPlayerOnly(true));</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 20 Jul 2024 21:09:28 +0200</lastBuildDate>
    <atom:link href="https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>FCBP_CPLifecycle</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/cplifecycle/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/cplifecycle/index.html</guid>
      <description>Health, damage and team-based damage rules. Passed with .lifecycle(...).&#xA;Setters Setter Effect maxLife(float) Starting and maximum health (health points, no unit conversion). Default 100. damage(float) Damage dealt by a melee hit (health points). Default 5. blockArmor(float) Damage subtracted from an incoming hit, but only while the entity is actively blocking (block state machine in BLOCKING). Otherwise armor is 0. Default 3. damageOn(TArray&lt;ETeamAttitude::Type&gt;) The team attitudes this entity is allowed to attack: a melee hit only lands on an actor whose team attitude is in this list. Default {Neutral, Hostile}. An empty list = can hit no one. turnByTurnAttack(bool) Routes the entity to turn-by-turn combat instead of live combat (used for the player). Default false. The hooks onDeathSkill, onCauseDamageSkill, onReceiveDamageSkill are skills, documented in the Skills section.</description>
    </item>
    <item>
      <title>FCBP_PawnInteraction</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/pawninteraction/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/pawninteraction/index.html</guid>
      <description>Interaction rules of a pawn. Extends FCBP_ActorInteraction, adding a hit hook. Passed with .interaction(...) on a pawn.&#xA;Setters Setter Effect interactWithPlayerOnly(bool) When true, overlap/interaction only validates against the player (no NPC↔NPC). Default true. interactOnceOnly(bool) When true, the entity is consumed once (broadcasts onConsumed, then stops). Default false. Adds the skill hook onHitSkill (plus the ones inherited from the actor interaction), documented in the Skills section.</description>
    </item>
    <item>
      <title>FCBP_CPSkeletal</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/cpskeletal/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/cpskeletal/index.html</guid>
      <description>Skeletal mesh, physics and animation assets of an entity. Passed with .skeletal(...).&#xA;Setters Setter Effect skeletalMesh(USkeletalMesh*) Main skeletal mesh. Also used to auto-size the entity’s capsule. skeletalMeshChilds(TArray&lt;USkeletalMesh*&gt;) Extra meshes added as leader-pose children (modular characters following the main skeleton). physicsAsset(UPhysicsAsset*) Physics asset; used at death for the ragdoll. animClass(TSubclassOf&lt;UCAnimInstance&gt;) Animation Blueprint class. If null, falls back to CdryxTemplateAnimBP. Set after the mesh. animSequences(TMap&lt;FName, UAnimSequence*&gt;) Idle/walk/run/jump sequences. Keys must be the enumToName of ECAnimeTemplateSequenceName (that is how the template AnimBP looks them up). Exposed on the AnimInstance as cdryxAnimSequenceMap. blendspaces(TMap&lt;FName, UBlendSpace*&gt;) Blendspaces, keyed by ECAnimeTemplateBlendspaceName names. Exposed as cdryxBlendSpaceMap. animMontageBases(TArray&lt;FCBP_MontageWithName&gt;) Montages per slot → FCBP_MontageWithName. The maker dispatches each key: ATTACK_0..9 build the combo array, DAMAGED/KILLED/BLOCK_START/BLOCK_END/RANGE_START/RANGE_END/TURN_LEFT/TURN_RIGHT each fill their dedicated montage (first found wins). Example FCBP_CPSkeletal skeletal = FCBP_CPSkeletal() .skeletalMesh(retrieveAsset&lt;USkeletalMesh&gt;(&#34;ENEMY_MESH&#34;)) .skeletalMeshChilds({ retrieveAsset&lt;USkeletalMesh&gt;(&#34;ENEMY_ARMOR&#34;) }) .physicsAsset(retrieveAsset&lt;UPhysicsAsset&gt;(&#34;ENEMY_PHYSICS&#34;)) .animClass(retrieveClass&lt;UCAnimInstance&gt;(&#34;ENEMY_ANIM_CLASS&#34;)) .animSequences({ {&#34;IDLE_ANIM_SEQUENCE&#34;, retrieveAsset&lt;UAnimSequence&gt;(&#34;ENEMY_IDLE&#34;)}, {&#34;WALK_ANIM_SEQUENCE&#34;, retrieveAsset&lt;UAnimSequence&gt;(&#34;ENEMY_WALK&#34;)}, }) .blendspaces({ {&#34;WALK w/LEAN+SLOPE_BLENDSPACE_2D&#34;, retrieveAsset&lt;UBlendSpace&gt;(&#34;ENEMY_WALK_BS&#34;)}, }) .animMontageBases({ FCBP_MontageWithName().animMontageBaseMap({ {ECSkeletalMontageName::ATTACK_0_ANIM, retrieveAsset&lt;UAnimMontage&gt;(&#34;ENEMY_ATTACK&#34;)}, }), });</description>
    </item>
    <item>
      <title>FCBP_MontageWithName</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/montagewithname/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/montagewithname/index.html</guid>
      <description>Montages for one animation slot, keyed by ECSkeletalMontageName. FCBP_CPSkeletal.animMontageBases is an array of these: one FCBP_MontageWithName per slot (so the same attack can play in the upper-body slot or the final slot).&#xA;In practice you do not fill this map by hand. You use the UCGameBPLibrary helpers, which build the per-slot montages (and insert the combat notifies) from plain anim sequences:&#xA;createMontageForEachSlot(upperBodySequences, finalSequences, ...) → builds the whole array. conv_SequenceMapAndSlotToMontageWithNameArray(sequences, slotName) → one slot’s array. Setters Setter Effect animMontageBaseMap(TMap&lt;ECSkeletalMontageName, UAnimMontage*&gt;) Low-level: directly sets the montage for each slot name in this one slot. Prefer the helpers above. Example (recommended: via helper) createMontageForEachSlot takes five maps, in this order:</description>
    </item>
    <item>
      <title>FCBP_CPAI</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/cpai/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/cpai/index.html</guid>
      <description>AI configuration of a pawn / character. Passed with .ai(...).&#xA;Setters Setter Effect team(uint8) Team id. Same team → Friendly, different team → Hostile. 0 is a real team, not neutral (only team id 255 / no-team is neutral toward everyone). The AI only targets actors it sees as Hostile. aiClass(TSubclassOf&lt;ACAIController&gt;) AI controller class. If left null, defaults to ACAIController. behaviorTree(UBehaviorTree*) Behavior tree run on possession. If null, the AI runs no tree (warning logged). automations(TArray&lt;FCBP_Automation&gt;) Scripted AI command loop → FCBP_Automation. sightPerception(FCBP_SightPerception) Sight tuning → FCBP_SightPerception. Example FCBP_CPAI ai = FCBP_CPAI() .team(1) .aiClass(ACAIController::StaticClass()) .behaviorTree(retrieveAsset&lt;UBehaviorTree&gt;(&#34;ENEMY_BT&#34;)) .automations({ // runs in a loop; see FCBP_Automation FCBP_Automation() .command(ECAutomationCommandName::LOCATION) .value(&#34;AM&#34;), // go to room corner A, then center M FCBP_Automation() .command(ECAutomationCommandName::WAIT) .value(&#34;3.0&#34;), // wait 3 seconds FCBP_Automation() .command(ECAutomationCommandName::LOCATION) .value(&#34;C&#34;), // go to far corner C }) .sightPerception(FCBP_SightPerception() .enableSight(true) .sightDistanceMeter(30.0f) .viewingAngleDegree(66.0f));</description>
    </item>
    <item>
      <title>FCBP_SightPerception</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/sightperception/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/sightperception/index.html</guid>
      <description>AI sight tuning. Passed with .sightPerception(...) inside FCBP_CPAI.&#xA;Setters Setter Effect enableSight(bool) Master switch: if false, no perception component is created at all (the AI is blind). Default false — you must set it true for sight to work. Also sizes the navmesh agent radius to the sight radius. sightDistanceMeter(float) Sight radius, in meters. Only Hostile actors are detected. lossSightDistanceMeter(float) Distance (meters) beyond which a seen target is lost. viewingAngleDegree(float) Peripheral vision half-angle, in degrees. forgetAfterSecond(float) Seconds before a lost target is forgotten (stimulus max age). Example FCBP_SightPerception sight = FCBP_SightPerception() .enableSight(true) .sightDistanceMeter(30.0f) .lossSightDistanceMeter(50.0f) .viewingAngleDegree(66.0f) .forgetAfterSecond(5.0f);</description>
    </item>
    <item>
      <title>FCBP_Automation</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/automation/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/automation/index.html</guid>
      <description>One scripted AI command fed to the behavior tree (task node CTNAutomation). The commands of an entity run in a loop: after the last one the sequence wraps back to the first.&#xA;Setters Setter Effect command(ECAutomationCommandName) The command type: LOCATION (move to a point of the current room) or WAIT (pause). UNSET is the unset default and does nothing. value(FString) Argument of the command. See below — its meaning depends on the command. The value argument, per command WAIT — value is a number of seconds (parsed as a float). Example: &#34;3.0&#34;.</description>
    </item>
    <item>
      <title>FCBP_CPBehavior</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/cpbehavior/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/cpbehavior/index.html</guid>
      <description>Attack behavior of a pawn / character. Passed with .behavior(...).&#xA;Setters Setter Effect meleeAttackBehavior(FCBP_CPMeleeAttackBehavior) Melee combo behavior → FCBP_CPMeleeAttackBehavior. rangeAttackBehavior(FCBP_CPRangeAttackBehavior) Range attack behavior (reserved, no fluent setter yet). Example FCBP_CPBehavior behavior = FCBP_CPBehavior() .meleeAttackBehavior(FCBP_CPMeleeAttackBehavior() .noComboButRandom(false) .allowComboLoop(true)) .rangeAttackBehavior(FCBP_CPRangeAttackBehavior());</description>
    </item>
    <item>
      <title>FCBP_CPMeleeAttackBehavior</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/meleeattackbehavior/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/meleeattackbehavior/index.html</guid>
      <description>Melee combo flags. Passed with .meleeAttackBehavior(...) inside FCBP_CPBehavior.&#xA;Setters Setter Effect noComboButRandom(bool) When true, attacks pick a random montage instead of following the combo order. allowComboLoop(bool) When true, the combo loops back to the first attack after the last one. Example FCBP_CPMeleeAttackBehavior melee = FCBP_CPMeleeAttackBehavior() .noComboButRandom(false) .allowComboLoop(true);</description>
    </item>
    <item>
      <title>FCBP_FogOfWarRevealer</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/fogofwarrevealer/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/fogofwarrevealer/index.html</guid>
      <description>Per-entity fog-of-war reveal settings (how this entity uncovers the fog). Passed with .fogOfWar(...).&#xA;⚠️ In practice only the player’s fogOfWar is wired to the fog system; the block exists on pawns/characters but is not consumed there.&#xA;Setters Setter Effect complexTrace(bool) When true, reveals with a fan of rays (line of sight) instead of a simple disc. tickIntervalInSecond(float) Seconds between two reveal recomputations (becomes the component tick interval). numberOfRayIfComplexTrace(int32) Number of points on the reveal circle when complexTrace is on. lineOfSightSizeMeter(float) Size of the clear line-of-sight brush, in meters. revealedAreaSizeMeter(float) Size of the dimmed “already explored” area, in meters; also the radius of the complex-trace circle. Example FCBP_FogOfWarRevealer reveal = FCBP_FogOfWarRevealer() .lineOfSightSizeMeter(4.5f) .revealedAreaSizeMeter(6.5f);</description>
    </item>
    <item>
      <title>FCBP_PMovement</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/pmovement/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/pmovement/index.html</guid>
      <description>Floating pawn movement (for a pawn using the floating movement component). Passed with .movement(...) on a Pawn.&#xA;Setters Setter Effect maxWalkSpeed(float) Walk speed in m/s (converted to cm/s internally). Default 6. This is for a floating pawn (fly-style). Unlike FCBP_CMovement, it exposes only the walk speed: step height and jump velocity are forced to 0.&#xA;Example FCBP_PMovement movement = FCBP_PMovement() .maxWalkSpeed(6.0f);</description>
    </item>
  </channel>
</rss>