<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Overview :: Catur Documentation</title>
    <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/index.html</link>
    <description>The Fluent Game API describes a full game board in C++ by chaining builder structs (FCBP_*), as an alternative to wiring it in Blueprints. You write one class per board (deriving from UCAbstractLevel), override buildLevel(), and call addPlayer1ST / addPawn / addActor / addCharacter / addSide2D, each configured with chained setters. The reference implementation is UCLevel1 (board BOARD_1).&#xA;How to read this section Entities — what you add to a board: Actor, Pawn, Character, Player. Side2D — a 2D grid board. World — a procedural 3D terrain board (rooms, clusters, tiles, fog). Common / non-fluent — structs filled by fields (metadata, game common, biome…). Reusable sub-structs (skeletal, AI, lifecycle, movement…) live under the entity that owns them (mostly under Pawn) and are reached from the entity’s setter table.</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/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Actor</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/actor/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/actor/index.html</guid>
      <description>An Actor is the simplest entity on a board: a placed object with an interaction volume, no skeletal mesh, no AI, no health. Added with addActor(tag, skills, lambda).&#xA;Setters Setter Effect actorClass(class) The ACActor subclass spawned for this entity. Mandatory: an entity whose class is unset is skipped at spawn time with a warning. basic(...) Sets the identity block → FCBP_ACPBasic. interaction(...) Sets the interaction block → FCBP_ActorInteraction. Example FCBP_Actor actor = FCBP_Actor() .actorClass(retrieveClass&lt;ACActor&gt;(&#34;MY_ACTOR_CLASS&#34;)) .basic(FCBP_ACPBasic() .mainTag(&#34;BLOCK&#34;) .minScale(1.0f) .maxScale(1.0f)) .interaction(FCBP_ActorInteraction() .interactWithPlayerOnly(true) .interactOnceOnly(true));</description>
    </item>
    <item>
      <title>Pawn</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/pawn/index.html</guid>
      <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>
    </item>
    <item>
      <title>Character</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/character/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/character/index.html</guid>
      <description>A Character is a pawn that uses the character movement component (walk, step, jump). It adds a landed hook on top of the pawn. Added with addCharacter(tag, skills, lambda).&#xA;Setters Setter Effect actorClass(class) The ACCharacter subclass spawned for this character. 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(...) Character movement → FCBP_CMovement. interaction(...) Interaction rules → FCBP_CharacterInteraction. Example FCBP_Character character = FCBP_Character() .actorClass(ACCharacter::StaticClass()) .basic(FCBP_ACPBasic() .mainTag(&#34;GUARD&#34;) .minScale(0.9f) .maxScale(1.1f)) .skeletal(FCBP_CPSkeletal() .skeletalMesh(retrieveAsset&lt;USkeletalMesh&gt;(&#34;GUARD_MESH&#34;)) .physicsAsset(retrieveAsset&lt;UPhysicsAsset&gt;(&#34;GUARD_PHYSICS&#34;)) .animClass(retrieveClass&lt;UCAnimInstance&gt;(&#34;GUARD_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(200.0f) .damage(10.0f) .blockArmor(3.0f) .damageOn({ETeamAttitude::Hostile})) .fogOfWar(FCBP_FogOfWarRevealer() .lineOfSightSizeMeter(4.5f) .revealedAreaSizeMeter(6.5f)) .movement(FCBP_CMovement() .maxWalkSpeed(6.0f) .maxStepHeight(45.0f) .jumpZVelocity(6.3f)) .interaction(FCBP_CharacterInteraction() .interactWithPlayerOnly(true));</description>
    </item>
    <item>
      <title>Player</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/player/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/player/index.html</guid>
      <description>The Player is the entity the user controls. Added with addPlayer1ST(skills, lambda) (first-person) or the fly variant. Note: its AI and “specific” blocks exist internally but are not exposed as fluent setters.&#xA;Setters Setter Effect actorClass(class) The pawn subclass spawned for the player (must implement CCommonPlayer). basic(...) Identity block → FCBP_ACPBasic. skeletal(...) Mesh and animation → FCBP_CPSkeletal. behavior(...) Attack behavior → FCBP_CPBehavior. interaction(...) Interaction rules → FCBP_PlayerInteraction. lifecycle(...) Health and damage → FCBP_CPLifecycle. movement(...) Character movement → FCBP_CMovement. fogOfWar(...) Fog reveal → FCBP_FogOfWarRevealer. Example FCBP_Player player = FCBP_Player() .actorClass(ACPlayer1STCharacter::StaticClass()) .basic(FCBP_ACPBasic() .mainTag(&#34;PLAYER&#34;) .minScale(1.0f) .maxScale(1.0f)) .skeletal(FCBP_CPSkeletal() .skeletalMesh(retrieveAsset&lt;USkeletalMesh&gt;(&#34;PLAYER_MESH&#34;)) .physicsAsset(retrieveAsset&lt;UPhysicsAsset&gt;(&#34;PLAYER_PHYSICS&#34;)) .animClass(retrieveClass&lt;UCAnimInstance&gt;(&#34;PLAYER_ANIM_CLASS&#34;))) .behavior(FCBP_CPBehavior() .meleeAttackBehavior(FCBP_CPMeleeAttackBehavior() .allowComboLoop(true))) .interaction(FCBP_PlayerInteraction() .interactWithPlayerOnly(false)) .lifecycle(FCBP_CPLifecycle() .maxLife(100.0f) .damage(5.0f) .blockArmor(3.0f) .damageOn({ETeamAttitude::Hostile})) .movement(FCBP_CMovement() .maxWalkSpeed(6.0f) .maxStepHeight(45.0f) .jumpZVelocity(6.3f)) .fogOfWar(FCBP_FogOfWarRevealer() .lineOfSightSizeMeter(4.5f) .revealedAreaSizeMeter(6.5f));</description>
    </item>
    <item>
      <title>Side2D</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/side2d/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/side2d/index.html</guid>
      <description>A Side2D board is a 2D grid level driven by a level asset, where grid character keys spawn NPCs. Added with addSide2D(skills, lambda).&#xA;Setters Setter Effect sideAsset(UCSide2DLevelAsset*) The level asset holding the grid and block definitions. npcs(TArray&lt;FCBP_ACPSide2DRule&gt;) Maps grid keys to NPC tags → FCBP_ACPSide2DRule. The hook onPlayerOverlapBlockSkill is a skill, documented in the Skills section.&#xA;Example FCBP_Side2D side2D = FCBP_Side2D() .sideAsset(retrieveAsset&lt;UCSide2DLevelAsset&gt;(&#34;MY_SIDE2D&#34;)) .npcs({ {&#34;C&#34;, &#34;LIMACE&#34;}, {&#34;I&#34;, &#34;MUSHROOM&#34;}, }); (FCBP_Side2D has only these two setters; both are shown.)</description>
    </item>
    <item>
      <title>World</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/world/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/world/index.html</guid>
      <description>The World describes a procedural 3D terrain (height from noise), its edges, fog of war, minimap and generation parameters. Passed to the board as the world block.&#xA;Setters Setter Effect edgeType(ECEdgeType) How the world border is shaped. material(UMaterialInterface*) Material applied to the terrain mesh. worldTopography(UCNoiseDataAsset*) Mandatory base noise defining terrain height. clusterTopography(UCNoiseDataAsset*) Optional noise for room-cluster areas. clusterShiftTopography(UCNoiseDataAsset*) Optional shift noise for non-room cluster areas. roomAndCorridorTopography(UCNoiseDataAsset*) Optional shift noise for rooms and corridors. fogOfWar(FCBP_FogOfWar) Fog of war settings → FCBP_FogOfWar. worldEffector(FCBP_WorldEffector) Generation parameters → FCBP_WorldEffector. shadowEffector(FCBP_ShadowEffector) Shadow settings → FCBP_ShadowEffector. roomAndCorridorSoftener(EAlphaBlendOption) Blend curve smoothing room/corridor edges into the terrain. The map (minimap) block exists but has no fluent setter yet.</description>
    </item>
    <item>
      <title>Common / non-fluent</title>
      <link>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/common/index.html</link>
      <pubDate>Sat, 20 Jul 2024 21:09:28 +0200</pubDate>
      <guid>https://doc.cdryx.net/CdryxAIOUPlugin/fluent/common/index.html</guid>
      <description>These structs are part of the game board definition but have no fluent setters. They are filled directly by their fields (or by a constructor). They are listed here for completeness of the grammar.&#xA;Structs without fluent setters Struct How it is filled Role FCBP_GameCommon fields Shared board settings: HUD widget classes (debug, compass, interaction, dialog, skill, resource, life, llm dialog, minimap) + metadata maps. FCBP_CommonMetadata fields label, icon Base of all metadata structs. FCBP_SkillMetadata fields cooldown, baseColor (+ base) Display metadata for a skill. FCBP_ResourceMetadata base fields only Display metadata for a resource. FCBP_CharMetadata base fields only Display metadata for a character. FCBP_RoomMetadata base fields only Display metadata for a room. FCBP_ACPNPC fields characters, pawns, actors Container grouping the NPCs of a board (filled by the addXxx calls). FCBP_Inventory fields name, inventoryClass One inventory item definition. FCBP_Skill fields name + lambda/delegate A skill definition (see the Skills section). FCBP_Map fields Minimap meshes and tangent force. FCBP_Biome fields biomeTopography, boundaries Biome definition driven by a noise asset. FCBP_BiomeBound fields name, noiseLowerValue, noiseUpperValue One named noise range inside a biome. FCBP_Misc constructor Display/quality settings (resolution, frame rate, AA, quality levels). FCBP_GameStruct internal Runtime DataTable wiring, created by storeNewGameBoard (not authored by hand). Example (field-based, no fluent) FCBP_GameCommon gameCommon; gameCommon.lifeWidgetClass = myLifeWidget; gameCommon.skillMetadata.Add(&#34;FIREBALL&#34;, FCBP_SkillMetadata());</description>
    </item>
  </channel>
</rss>