-
Notifications
You must be signed in to change notification settings - Fork 0
Blueprint Nodes
Can TATAR edited this page Jun 9, 2026
·
3 revisions
Use these blocks to update the existing Blueprint Nodes Reference wiki page.
Add this line after:
- [Game Director](#game-director)- [Enemy Logic Component](#enemy-logic-component)Add this section under ## Weapon System, after the ### Firing System list.
### 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, weapon does not fire without a valid target
- `Targeting Range Override` - Optional custom range for this weapon
Example: Boss-only weapon
```text
Override Targeting Settings -> true
Targetable Tags -> Boss
Target Unspecified Actors -> false
Only Fire When Target Available -> trueExample: Door-only weapon
Override Targeting Settings -> true
Targetable Tags -> Door
Target Unspecified Actors -> false
Only Fire When Target Available -> true
---
## 3. Add New Enemy Logic Component Section
Add this section after `## Game Director` and before `## Player Library (Easy UI)`.
````md
---
## Enemy Logic Component
**Component:** URFEnemyLogicComponent
Reusable enemy behavior component for production `ACharacter` or `APawn` enemies.
Use this when you do not want to inherit from `AURFTestEnemy`.
### BlueprintCallable Functions
- `SetContactDamageComponent(UPrimitiveComponent* NewComponent)` - Set which collision component applies contact damage
- `SetTarget(AActor* NewTarget)` - Manually set the current target
- `GetTarget()` - Get the current target
- `GetDistanceToTarget()` - Get distance to the current target
- `HandleXPReward(AActor* Killer)` - Process XP/loot rewards without death/destruction side effects
- `AwardXPToPlayer(AActor* Player)` - Award this enemy's XP reward directly to a player actor
- `SpawnGuaranteedPickup()` - Spawn configured guaranteed pickup
- `SpawnXPPickup(int32 InXPAmount)` - Spawn XP pickup with a specific amount
- `SpawnRandomLoot()` - Roll and spawn random loot from configured loot tables
- `RegisterWithDirector()` - Register owner with `URFGameDirector`
- `UnregisterFromDirector()` - Unregister owner from `URFGameDirector`
- `GetHealthComponent()` - Get cached `URFHealthComponent`
- `IsAlive()` - Check whether the enemy is alive
### BlueprintAssignable Events
- `OnTargetAcquired(AActor* Target)` - Called when a target is acquired
- `OnTargetLost(AActor* Target)` - Called when the current target is lost
- `OnTargetChanged(AActor* OldTarget, AActor* NewTarget)` - Called when target changes
- `OnContactDamageDealt(AActor* Target, float DamageDealt)` - Called when contact damage is dealt
- `OnRewardsProcessed(AActor* Killer, int32 XPAwarded, bool bPickupSpawned)` - Called when XP/loot rewards are processed
### Important Properties
#### Targeting
- `Auto Find Player` - Automatically find player pawn as target
- `Target Search Radius` - Maximum search distance
- `Target Update Interval` - How often target search updates
- `Continuous Player Search` - Keep 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
#### 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
#### 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
#### Director
- `Auto Register With Director` - Automatically register enemy with `URFGameDirector`
#### Tag
- `Auto Add Enemy Tag` - Automatically add a tag on BeginPlay
- `Auto Enemy Tag` - Tag to add, usually `Enemy`
#### Death
- `Handle Actor Destruction` - If true, EnemyLogicComponent destroys the actor after death
- `Destruction Delay` - Delay before destruction
Recommended production setup:
```text
URFHealthComponent -> Destroy On Death -> true
URFEnemyLogicComponent -> Handle Actor Destruction -> false
BP_ProductionEnemy
+-- CapsuleComponent
+-- SkeletalMesh
+-- URFHealthComponent
+-- URFEnemyLogicComponent
Basic settings:
URFHealthComponent:
Max Health -> 50
Destroy On Death -> true
Destroy Delay -> 0.1
URFEnemyLogicComponent:
Auto Add Enemy Tag -> true
Auto Enemy Tag -> Enemy
Auto Find Player -> true
Auto Register With Director -> true
XP Reward -> 10
Reward Method -> Direct On Kill
Contact damage example:
Enable Contact Damage -> true
Contact Damage Component Name -> CapsuleComponent
Contact Damage -> 10
Damage Interval -> 1.0
---
## 4. Update Test Enemy Section
Add this note at the top of the existing `## Test Enemy` section.
```md
`AURFTestEnemy` is still supported for quick prototyping and backward compatibility.
For production enemies, prefer creating your own `ACharacter` or `APawn` and adding:
- `URFHealthComponent`
- `URFEnemyLogicComponent`
```
Keep the existing Test Enemy functions and events after this note.
---
## 5. Update Total Statistics
Change:
```md
**Total Blueprint Node Count: 250+**
```
to:
```md
**Total Blueprint Node Count: 265+**
```
Add this line to the distribution list:
```md
- Enemy Logic Component: 13+ functions + 5 events
```