Soulslike Framework Docs
  • Welcome to Soulslike Framework!
  • Framework Overview
    • About the Framework
    • Features & Systems
    • Before Purchasing
    • Personal Assistance
  • Getting Started
    • Setting up Animations
      • Setup Locomotion Blendspaces
      • Setup Custom Montages
    • Using the Utility Tools
      • Easy Setup Tool
      • Asset Creators
      • Asset Browsers
    • Actor Tags
    • Finding References
  • Workflow
    • Using a Custom Character
    • Creating & Editing Actions
    • Creating & Editing Stats/Attributes
    • Creating & Editing Status Effects
    • Creating & Editing Buffs
    • Creating & Editing Items
      • Creating & Editing Weapons
    • Creating an Enemy
    • Creating Cinematics
  • Animation Notifies
    • Damaging & Combo's
      • Register Attack Notify
      • Weapon Trace Notify
        • AI Weapon Trace Notify
      • Fist Trace Notify
        • AI Fist Trace Notify
      • Area of Effect Damage Notify
      • Spawn Projectile Notify
        • AI Spawn Projectile Notify
    • Defensive
      • Try Guard Notify
      • Hyper Armor Notify
      • Invincibility Frame Notify
    • Feedback
      • Weapon Trail Notify
        • AI Weapon Trail Notify
      • Camera Shake Notify
        • World Camera Shake Notify
      • Launch Field Notify
      • Chaos Field Notify
      • Footstep Notify
    • Miscellaneous
      • Input Buffer Notify
      • Interrupt Montage Notify
      • Camera Sequence Notify
      • Set Movement Mode Notify
      • AI State Notify
      • AI Rotate Towards Target Notify
      • Adjust Stat Notify
  • Components / Managers
    • Player Specific Components
      • Input Buffer
      • Action Manager
      • Combat Manager
      • Interaction Manager
      • Inventory Manager
      • Equipment Manager
      • Ladder Manager
      • Progress Manager
      • Save/Load Manager
      • Radar & Radar Element Components
      • Central Debug Component
    • Shared Components
      • Stat/Attribute Manager
      • Status Effect Manager
      • Weapon Collision Manager
      • Buff Manager
      • Loot Drop Manager
    • AI-Only Components
      • AI Interaction Manager
      • AI Behavior Manager
      • AI Combat Manager
      • AI Boss Manager
  • Extending Functionality
    • Using Motion Warping
    • Custom Saving/Loading
    • Adding New Settings
    • Extending Weapon Animsets
    • Weapon Specific Impact Sounds
    • Resetting Enemies After Resting
Powered by GitBook
On this page
  • Creating the Character & Setting up the Components
  • Creating AI Abilities
  • Advanced: New/Custom Ability Rules

Was this helpful?

  1. Workflow

Creating an Enemy

PreviousCreating & Editing WeaponsNextCreating Cinematics

Last updated 3 months ago

Was this helpful?

Creating the Character & Setting up the Components

  1. Create a new blueprint derived from Soulslike Enemy (B_Soulslike_Enemy).

  1. Assign your character mesh & the relevant Animation Blueprint you'd like to use:

If your character is Epic skeleton compatible, you can use the Animation Blueprint & the Animation Blendspace provided by Soulslike Framework.

  1. (Optional) If your character will be using weapon(s), add a Child Actor Component to your Mesh. Select the world actor (derived from B_Item_Weapon_AI) for the weapon you'd like your enemy to use:

If your Enemy character will not be using a weapon, ensure that you fill in the Unarmed category correctly under AC_AI_CombatManager.

Creating AI Abilities

Soulslike Framework uses a data-asset based, scored ability system for every enemy's abilities. To create new abilities, click on the Soulslike Framework dropdown and select the AI Ability Creator:

After creating the ability, do not forget to assign it to your enemy's AC_AI_CombatManager!

Advanced: New/Custom Ability Rules

The framework provides two rules - Distance (FAiRuleDistance) & Stat (FAiRuleStat). These rules are structures that contain relevant data. They are located in /SoulslikeFramework/Structures/AI/Rules.

With the use of Instanced Structures, you can create your own rules by creating a new structure with the relevant data and adjusting the EvaluateAbilityRule() function inside AC_AI_CombatManager.

Example #1 - Target (player) Stat Rule

For this example, we'll create a rule which is capable of checking any Stat of the player. Start by duplicating the FAiRuleStat rule and rename it appropriately (or just create a new struct):

Next, adjust the EvaluateAbilityRule() function to take into consideration this new rule we created:

Finally, utilize the rule in any AI Ability you have:

Example #2 - Input Reading Rule

For this example, we'll create a rule that is capable of reading player input. Start by creating a new structure and name it appropriately - lets say FAiRulePlayerInput:

Add the new rule to the AI ability you want to use:

For more information about creating AI Weapons, check out our guide on .

(Optional) Setup your loot table for the enemy under the AC_LootDropManager component. For more information, .

Setup movement speed & stats/attributes for your enemy under the AC_StatManager component. Additionally, you can override any stat/attribute you want and adjust their values from this component. For more information, .

Setup AI behavior for your enemy under the AC_AI_BehaviorManager component. For more information, .

Finally, setup combat related data for your enemy under the AC_AI_CombatManager component. For more information, .

For each ability, you can define the corresponding montage, its score (weight based), its cooldown and custom rules. For more information on creating montages & utilizing notifies, page.

For this rule, we want to keep track of the actions the player is executing. We can retrieve this from the component of the player. We will bind to the OnInputBufferConsumed delegate in the Input Buffer Component to detect when an action has been performed. You can do this anywhere you like, but for this example, we'll do it inside 's SetTarget() method:

Now that we're keeping track of the recently triggered actions of the player, we can utilize this new property we created (MostRecentPlayerActionInput) on the 's EvaluateAbilityRule() method:

read about the Loot Drop Manager component here
read about the Stat Manager component here
read about the AI Behavior Manager component here
read about the AI Combat Manager component here
check out our Setup Custom Montages
AC_InputBuffer
AC_AI_BehaviorManager
AC_AI_CombatManager
Creating & Editing Weapons for AI
After the player's health drops below 95%, enemy can no longer execute the ability - thus strafing randomly.
Enemy will now dodge when player attacks!