Getting Started with SoulslikeCombat

Documentation Unreal Engine AI Tutorial

Installation guide, quick start, and your first enemy in 10 minutes.


Overview

SoulslikeCombat is a production-ready AI combat plugin for Unreal Engine 5.7. It provides intelligent, tactical enemy behavior for souls-like and action RPG games through a modular component system.


Installation

Step 1: Install from Fab Marketplace

  1. Purchase SoulslikeCombat on Fab Marketplace
  2. In the Epic Games Launcher or Fab, click Add to Project
  3. Select your Unreal Engine project
  4. The plugin will be automatically installed with all binaries

Step 2: Enable the Plugin

  1. Open your project in Unreal Editor
  2. Go to Edit → Plugins
  3. Search for "SoulslikeCombat" and ensure it's enabled
  4. Restart the editor if prompted

Step 3: Enable Required Plugins

In Edit → Plugins, ensure these are also enabled, the plugin has dependencies for these and will enable them by default:

  • GameplayAbilities
  • StateTree
  • GameplayStateTree
  • MotionWarping
  • AnimationLocomotionLibrary
  • AnimationWarping

Note: Animation plugin dependencies are required only if you want to use the template enemy that comes with the system. If you want to use your own animation system and do not require these, you do not have to keep them enabled.

Step 4: Verify Installation

  1. Navigate to Content > SoulslikeEnemyCombat > Maps
  2. Open SEC_DemoLevel
  3. Click Play - you should see a working enemy

Note: This plugin requires Unreal Engine 5.7 exactly. Other versions have incompatible StateTree APIs.


Quick Start Guide

Your First Enemy in 10 Minutes

This quick start gets you from zero to a functional AI enemy as fast as possible.

1. Open Demo Level

Navigate to Content/SoulslikeEnemyCombat/Maps/SEC_DemoLevel and open it. Study the working enemy to understand the system.

2. Create Enemy Blueprint

Right-click in Content Browser → Blueprint Class → Search for EnemyCharacterBase

Name it: BP_MyEnemy

In the Blueprint:

  • Add your skeletal mesh
  • Configure capsule collision
  • Set movement speed (recommended: 400)

3. Create AI Controller

Right-click → Blueprint Class → Search for EnemyControllerBase

Name it: BP_MyEnemyController

AI Config

Right-click → Miscellaneous → Data Asset →

BP_EnemyAIConfigBase for a preset or AI Config for a fresh start

Name it: DA_MyAIConfig

Go to BP_MyEnemy, set AIConfig property to DA_MyAIConfig

Note: AIConfig will be acquired by the controller OnPossess. Alternatively, you can leave it empty on the pawn and set it on the Controller. This means all AI units that are controlled by this controller will use that AIConfig.

Add your first action:

Controller->ActionEvaluationComponent Settings:

CurrentActionSet: (create in next step)
bDebugLog: true           // See decisions in Output Log

4. Create ActionSet Data Asset

Right-click → Miscellaneous → Data Asset → ActionSet

Name it: DA_MyEnemyActions

Add your first action:

FieldValue
IdLightAttack
AbilityTagSEC.Action.LightAttack
AbilityEndTagSEC.Action.End
ExecutionModeGameplayAbility
Distance → OptimalMin100
Distance → OptimalMax250
Distance → MaxValue400
Angle → OptimalMax30
Cooldown → Duration2.0
BaseWeight1.0

5. Create Gameplay Ability

Right-click → Blueprint Class → GameplayAbilityBase

This is a SEC Gameplay Ability, if you want your ability begin/end to be detected by the action system automatically, you have to use this base class. Alternatively, you can inspect the content of the class in C++, and call the necessary events yourself.

Name it: GA_LightAttack

Setup:

  1. Class Defaults → Ability Tags → Add Action.LightAttack
  2. Class Defaults → Ability End Tag → Add Action.LightAttack.End

Event Graph:

ActivateAbility
  ↓
PlayMontageAndWait (YourAttackMontage)
  ↓
EndAbility

ActionEvaluationComponent listens for ability end tag to know the action completed. Without it, the AI gets stuck until the timeout is over.

6. Assign StateTree and ActionSet to AIConfig

In DA_MyAIConfigStateTree → Set to StateTree_SEC_Core

In DA_MyAIConfigDefault Action Set → Set to DA_MyEnemyActions

7. Configure Character

In BP_MyEnemy → Class Defaults → AI Controller Class → Set to BP_MyEnemyController

8. Place and Test

  1. Drag BP_MyEnemy into your level
  2. Set player as focus target (or use demo BP_DummyTarget, which registers itself as target automatically)
  3. Click Play
  4. Watch Output Log for action selection debug messages

Expected behavior:

  • Enemy approaches to ideal distance (150-300cm)
  • Executes light attack when in range
  • Waits for cooldown, positions itself by the movement behavior configuration
  • Repeats