Skip to content

Blueprint Nodes

Can TATAR edited this page Jun 9, 2026 · 3 revisions

Blueprint Nodes Reference - New Sections

This page documents the new Blueprint-accessible nodes and events added for per-weapon targeting and production enemy logic.


Weapon System - Per-Weapon Targeting

Per-weapon targeting allows each weapon Data Asset to define its own targeting filters.

Common use cases:

  • Boss-only weapons
  • Door-only weapons
  • Weapons that ignore normal enemies
  • Weapons that only fire when a valid target exists

Important Data Asset settings:

  • Override Targeting Settings - Use this weapon's own targeting rules
  • Targetable Classes - Only target specific actor classes
  • Targetable Tags - Only target actors with specific tags
  • Target Unspecified Actors - If false, unmatched actors are ignored
  • Only Fire When Target Available - If true, the weapon does not fire without a valid target
  • Targeting Range Override - Optional custom range for this weapon

Boss-Only Weapon Example

Use these settings in the weapon Data Asset:

Override Targeting Settings -> true
Targetable Tags -> Boss
Target Unspecified Actors -> false
Only Fire When Target Available -> true

The weapon will only target actors with the Boss tag.

Door-Only Weapon Example

Use these settings in the weapon Data Asset:

Override Targeting Settings -> true
Targetable Tags -> Door
Target Unspecified Actors -> false
Only Fire When Target Available -> true

The weapon will only target actors with the Door tag.


Enemy Logic Component

Component: URFEnemyLogicComponent

URFEnemyLogicComponent is a reusable enemy behavior component for production ACharacter or APawn enemies.

Use this component when you do not want to inherit from AURFTestEnemy.

Recommended production enemy setup:

BP_ProductionEnemy
+-- CapsuleComponent
+-- SkeletalMesh
+-- URFHealthComponent
+-- URFEnemyLogicComponent

Enemy Logic Component - BlueprintCallable Functions

SetContactDamageComponent

Sets which collision component applies contact damage.

SetContactDamageComponent(UPrimitiveComponent* NewComponent)

Use this if you want to explicitly choose a collision component instead of relying on Contact Damage Component Name.

Example:

BeginPlay
-> URFEnemyLogicComponent
-> SetContactDamageComponent(CapsuleComponent)

SetTarget

Manually sets the current target.

SetTarget(AActor* NewTarget)

GetTarget

Returns the current target.

GetTarget() -> AActor*

GetDistanceToTarget

Returns the distance between the owner and the current target.

GetDistanceToTarget() -> float

Returns -1 if there is no valid target.

HandleXPReward

Processes XP and loot rewards without triggering death or destruction side effects.

HandleXPReward(AActor* Killer)

This function is safe to call manually if you only want to process rewards.

It does not:

  • Mark the enemy as dying
  • Unregister from Game Director
  • Destroy the actor

AwardXPToPlayer

Awards this enemy's XP reward directly to a player actor.

AwardXPToPlayer(AActor* Player)

The target actor must have URFExperienceComponent.

SpawnGuaranteedPickup

Spawns the configured guaranteed pickup.

SpawnGuaranteedPickup()

SpawnXPPickup

Spawns an XP pickup with a specific XP amount.

SpawnXPPickup(int32 InXPAmount)

SpawnRandomLoot

Rolls and spawns random loot from the configured loot tables.

SpawnRandomLoot()

RegisterWithDirector

Registers the owner with URFGameDirector.

RegisterWithDirector()

Usually this is handled automatically when Auto Register With Director is enabled.

UnregisterFromDirector

Unregisters the owner from URFGameDirector.

UnregisterFromDirector()

Usually this is handled automatically when the enemy dies or is removed.

GetHealthComponent

Returns the cached URFHealthComponent.

GetHealthComponent() -> URFHealthComponent

IsAlive

Returns whether the enemy is alive.

IsAlive() -> bool

Enemy Logic Component - BlueprintAssignable Events

OnTargetAcquired

Called when a target is acquired.

OnTargetAcquired(AActor* Target)

OnTargetLost

Called when the current target is lost.

OnTargetLost(AActor* Target)

OnTargetChanged

Called when the target changes.

OnTargetChanged(AActor* OldTarget, AActor* NewTarget)

OnContactDamageDealt

Called when contact damage is dealt.

OnContactDamageDealt(AActor* Target, float DamageDealt)

OnRewardsProcessed

Called when XP or loot rewards are processed.

OnRewardsProcessed(AActor* Killer, int32 XPAwarded, bool bPickupSpawned)

Enemy Logic Component - Important Properties

Targeting

  • Auto Find Player - Automatically finds the player pawn as target
  • Target Search Radius - Maximum search distance
  • Target Update Interval - How often target search updates
  • Continuous Player Search - Keeps searching after BeginPlay

Contact Damage

  • Enable Contact Damage - Enables touch damage
  • Contact Damage Component Name - Collision component name to bind, such as CapsuleComponent
  • Contact Damage - Damage amount
  • Damage Interval - Delay between repeated contact damage

Example for ACharacter enemies:

Enable Contact Damage -> true
Contact Damage Component Name -> CapsuleComponent
Contact Damage -> 10
Damage Interval -> 1.0

Movement

  • Enable Simple Follow Movement - Enables built-in simple follow movement
  • Follow Movement Mode - Movement mode used by simple follow
  • Follow Speed - Speed used by DirectActorMovement

Movement modes:

  • MovementInput - Uses Unreal AddMovementInput; speed is controlled by the owner's MovementComponent
  • DirectActorMovement - Moves actor directly; FollowSpeed controls units per second

Prototype movement example:

Enable Simple Follow Movement -> true
Follow Movement Mode -> DirectActorMovement
Follow Speed -> 100

Production movement recommendation:

Enable Simple Follow Movement -> false
Use AIController, Behavior Tree, or your own movement logic

Rewards

  • XP Reward - XP amount
  • Reward Method - DirectOnKill, PickupOnly, or Hybrid
  • Guaranteed Pickup Class - Pickup class for XP pickup reward
  • Enable Random Loot - Enables loot table rolls
  • Random Loot Tables - Loot data assets to roll from

Direct XP example:

XP Reward -> 10
Reward Method -> Direct On Kill

XP pickup example:

XP Reward -> 10
Reward Method -> Pickup Only
Guaranteed Pickup Class -> BP_XPPickup

Director

  • Auto Register With Director - Automatically registers the enemy with URFGameDirector

Tag

  • Auto Add Enemy Tag - Automatically adds a tag on BeginPlay
  • Auto Enemy Tag - Tag to add, usually Enemy

Default enemy setup:

Auto Add Enemy Tag -> true
Auto Enemy Tag -> Enemy

Boss setup example:

Auto Add Enemy Tag -> false
Actor Tags -> Boss

Death

  • Handle Actor Destruction - If true, URFEnemyLogicComponent destroys the actor after death
  • Destruction Delay - Delay before destruction

Recommended production setup:

URFHealthComponent -> Destroy On Death -> true
URFEnemyLogicComponent -> Handle Actor Destruction -> false

This keeps destruction handled by URFHealthComponent, while URFEnemyLogicComponent handles rewards and Game Director unregistering.


Test Enemy Note

AURFTestEnemy is still supported for quick prototyping and backward compatibility.

For production enemies, prefer creating your own ACharacter or APawn and adding:

  • URFHealthComponent
  • URFEnemyLogicComponent

Blueprint Node Count Update

Updated total:

Total Blueprint Node Count: 265+

Additional distribution entry:

Enemy Logic Component: 13+ functions + 5 events

Clone this wiki locally