Epic Boss System
Complete boss battle framework for Unreal Engine 5.6 — 5.7
Create multi-phase boss fights with 11 combat systems in minutes.
Features
Multi-Phase Combat
1–3 phases with independent HP, per-phase attack config, cutscene transitions, and healing/invulnerability windows.
5 Attack Types
Ranged projectiles, melee with knockback, explosive barrels, AOE ground attacks, and dash/charge — plus Mixed and Custom modes.
Shield & Vulnerability
Health/Phase/Timed shields with regeneration, invulnerable boss with stagger-to-break system, damage multiplier windows.
Enrage Timer
MMO-style berserk timer with gradual damage/speed scaling, configurable instant-kill wipe mechanic.
Boss Intro Sequence
4 styles (NamePlate, CameraFocus, FullCutscene), name+title display, disable player input, invulnerability during intro.
Attack Patterns
Sequence-based combos (3x ranged → dash → melee), weighted random selection, distance/cooldown requirements.
Loot Table
Weighted drops with rarity system, guaranteed items, phase-specific loot, physics scatter on spawn.
Aggro / Threat
Multiplayer tank/DPS mechanics: threat decay, damage-to-threat conversion, taunt ability, auto-target switching with hysteresis.
Arena System
Configurable boundaries (Box/Sphere/Cylinder), push-back force, boundary damage, auto close/open on fight start/defeat.
Boss HUD Widget
Full C++ UUserWidget: health bar, shield bar, phase indicators, enrage timer, vulnerability indicator, smooth interpolation, 11 BP customization events.
Minion Spawning
Per-phase minion config, initial + continuous spawning, max alive limit, custom spawn points, kill-on-phase-end option.
External Health
Integrate with YOUR health system — report health changes from GAS, damage components, or any custom system.
Installation
- Copy
EpicBossSystemfolder toYourProject/Plugins/ - Restart Unreal Editor
- Go to Edit → Plugins
- Search "Epic Boss" and enable it
- Restart editor when prompted
🎮 Beginner's Guide — Your First Boss Fight in 5 Minutes
Step 1 — Create Boss Blueprint
- Content Browser → Right Click → Blueprint Class
- Search for
BossCharacteras parent class - Name it
BP_MyBoss, open it - Add a Skeletal Mesh (any character mesh — even the UE mannequin works for testing)
- That's it —
BossComponentis already attached automatically
Step 2 — Set 5 Essential Properties
Select the Boss Component in your BP. In Details Panel, you only need these:
| Category | Property | What to Set | Why |
|---|---|---|---|
| Boss|Info | Boss Name | "My First Boss" | Shows on HUD health bar |
| Boss|Phases | Number of Phases | 1 (start simple!) | More phases = harder to debug at first |
| Boss|Phases | Phase Configs → [0] → Health Points | 500 | Boss HP for phase 1 |
| Boss|Combat | Projectile Class | Leave empty for now | Boss works without attacks — add later |
| Boss|Arena | Arena Radius | 2000 | Fight area size (0 = no arena) |
Everything else uses good defaults. Don't touch the other 200 settings yet.
Step 3 — Place in Level and Test
- Drag
BP_MyBossinto your level - Press Play
- Walk near the boss — the fight starts automatically (boss has trigger by default)
- Boss HP bar appears on screen
Step 4 — Deal Damage to Boss
The boss needs to receive damage from your weapon. Two options:
If your weapon uses UE's damage system (Apply Damage node), the boss receives it automatically.
If you use a custom system, in your weapon hit logic call:
// Get BossComponent from hit actor BossComponent->TakeBossDamage(50.0f);
Step 5 — Done! Now Expand
You have a working boss. Now add features one at a time:
🔥 "I want the boss to attack"
- Create Blueprint → parent:
ExplosiveBarrelProjectile→ name:BP_BossProjectile - Add a mesh to it (sphere, barrel, any projectile shape)
- Back in Boss Component → Projectile Class =
BP_BossProjectile - Boss now shoots at you automatically
⚔️ "I want melee attacks"
In Boss Component → Phase Configs → [0] → Attack Type = Melee. Configure Melee Damage (50), Melee Range (200), Melee Cooldown (2s). Boss will punch you when close.
🔄 "I want multiple phases"
Set Number of Phases = 3. Expand Phase Configs → each phase has its own HP, attack type, speed, and damage multiplier. Phase 1 could be ranged (easy), Phase 2 mixed (medium), Phase 3 melee (intense).
🎬 "I want a cinematic intro"
In Boss Component → Boss|Intro category:
Intro Style=CameraFocus(camera zooms to boss)Boss Title= "Lord of Darkness" (shows under boss name)Name Plate Duration= 3 secondsDisable Player Input= true (player can't move during intro — this is why your character freezes when boss spawns! Set to false if you don't want that)
🛡️ "I want the boss to have shields"
In Boss|Shield: enable shield, set HP, set which attacks break it.
😡 "I want an enrage timer"
In Boss|Enrage: set Enrage Time (e.g., 120 seconds). Boss goes berserk if not killed in time.
👾 "I want minions"
In Boss|Minions: enable minions, set minion class, spawn count, interval.
🏟️ "I want an arena barrier"
In Boss|Arena: set Arena Radius. Players can't leave the fight area. Arena auto-opens when boss dies.
Show Debug Logs in Boss|Debug to see everything the boss does in the Output Log. Extremely helpful for understanding what's happening.
Previous Quick Start (for reference)
Click to expand Option A / Option B setup
Option A: Use BossCharacter (Recommended)
- Content Browser → Right Click → Blueprint Class
- Search for
BossCharacter, create BP namedBP_MyBoss - Add Skeletal Mesh → BossComponent is already included
- Configure phases, attacks, HP in the Details panel
- Place in level → trigger
StartBossFight()
Option B: Add Component to Existing Character
- Open your Character Blueprint
- Add Component → Boss Component
- Configure settings in Details panel
// In Details Panel: Boss Name: "Dragon Lord" Number Of Phases: 3 Phase Configs: [0] HealthPoints: 500, AttackType: Ranged [1] HealthPoints: 750, AttackType: Mixed, SpeedMultiplier: 1.5 [2] HealthPoints: 1000, AttackType: Melee, DamageMultiplier: 2.0 Projectile Class: BP_BossProjectile
Multi-Phase Combat
Bosses support 1–3 phases, each with independent configuration via FBossPhaseConfig array. When HP drops to 0 in a phase, the boss transitions to the next phase with optional cutscene, healing, and invulnerability.
Per-Phase Config
| Property | Type | Description |
|---|---|---|
HealthPoints | float | HP for this phase |
AttackType | EBossAttackType | Ranged, Melee, Mixed, BarrelThrow, Custom |
FireRateMultiplier | float | Attack speed multiplier (1.0 = base) |
SpeedMultiplier | float | Movement speed multiplier |
DamageMultiplier | float | Outgoing damage multiplier |
ProjectileCount | int32 | Number of simultaneous projectiles |
MeleeConfig | FBossMeleeConfig | Melee damage, range, knockback, cooldown |
MinionConfig | FBossMinionConfig | Minion class, spawn rate, max alive |
PhaseCutscene | ULevelSequence* | Optional cutscene on phase start |
PhaseTransitionMontage | UAnimMontage* | Animation during phase transition |
Combat System
The boss supports 5 base attack types configured per-phase:
| Type | Description |
|---|---|
Ranged | Fires projectiles at player (configurable class, speed, spread) |
Melee | Close-range attack with configurable damage, range, knockback force |
BarrelThrow | Throws explosive barrels with physics-based trajectory and AOE explosion |
Mixed | Auto-switches between Ranged and Melee based on MeleeSwitchDistance |
Custom | No built-in behavior — handle in Blueprint via BP_OnMeleeAttackStarted |
External Health System
Set HealthMode = External to integrate with your own health system (GAS, custom damage component, etc.).
// In your damage handler: BossComponent->ReportHealthChanged(CurrentHP, MaxHP); // When boss dies: BossComponent->ReportBossDefeated();
Cutscene Transitions
Each phase can have an optional ULevelSequence cutscene that plays during phase transitions. Player/boss invulnerability is automatic during cutscenes. Players can skip via SkipCurrentCutscene().
Minion Spawning
Per-phase minion configuration via FBossMinionConfig:
| Property | Description |
|---|---|
MinionClass | Actor class to spawn |
InitialSpawnCount | How many to spawn when phase starts |
bContinuousSpawn | Keep spawning at interval |
SpawnInterval | Seconds between continuous spawns |
MaxAliveMinions | Cap on simultaneous alive minions |
bKillMinionsOnPhaseEnd | Auto-kill surviving minions on phase transition |
Movement & AI
5 movement patterns via EBossMovementType:
| Type | Description |
|---|---|
Stationary | Boss stays at spawn location |
Circular | Orbits around start position |
PatrolPoints | Follows patrol waypoints |
RandomTeleport | Teleports to random positions |
KeepDistance | Maintains configured distance from player |
🏟️ Arena System v3.0
Configurable arena boundaries that lock players in during the boss fight. Arena auto-closes on fight start and auto-opens on defeat.
| Property | Description |
|---|---|
ArenaShape | Box, Sphere, or Cylinder |
ArenaRadius | Radius / half-extent X |
PushForce | Force pushing players back inside |
BoundaryDamagePerSecond | DPS for players outside arena |
bCloseOnFightStart | Auto-close when fight begins |
bOpenOnDefeat | Auto-open when boss dies |
// Manual control: BossComponent->SetArenaClosed(true); bool bInside = BossComponent->IsInsideArena(PlayerLocation);
💥 AOE / Ground Attacks v3.0
5 AOE shapes with warning indicators, delayed damage, and knockback:
| Shape | Description |
|---|---|
Circle | Standard circular AOE around a point |
Line | Straight-line beam (boss forward direction) |
Cone | Frontal cone with configurable angle |
Rectangle | Rectangular zone (width × length) |
Cross | X-shaped cross pattern |
// Trigger AOE at boss location: BossComponent->PerformAOEAttack(); // Trigger at specific location: BossComponent->PerformAOEAttackAtLocation(TargetLocation);
WarningDelay — visual indicator appears first, damage happens after delay. Bind to OnBossAOEWarning to show custom indicators.
💨 Dash / Charge Attack v3.0
Boss wind-up → charge → impact → recovery vulnerability cycle:
| Property | Description |
|---|---|
DashSpeed | Units per second during charge |
WindUpTime | Delay before charge starts (animation time) |
MaxDashDistance | Maximum distance boss will travel |
DashDamage | Damage on direct contact |
ImpactDamage / ImpactRadius | AOE explosion at end of dash |
RecoveryTime | Vulnerability window after dash ends |
BossComponent->PerformDashAttack(); // Dash toward player BossComponent->PerformDashToLocation(Target); // Dash to specific point
🛡️ Shield / Armor System v3.0
3 shield types configured per-phase via PhaseShieldConfigs array:
| Type | Description |
|---|---|
HealthShield | Shield has HP. Absorbs damage until broken. Regenerates after cooldown. |
PhaseShield | Blocks all damage until manually broken (e.g. destroy shield generators). |
TimedShield | Active for X seconds, then breaks automatically. |
BossComponent->ActivateShield(); float overflow = BossComponent->DamageShield(100.0f); BossComponent->BreakShield();
TakeDamage() — you don't need to call DamageShield manually unless building custom damage pipeline.🎯 Vulnerability Windows v3.0
Boss is invulnerable by default. Players must deal enough hits to stagger the boss, opening a damage window.
| Property | Description |
|---|---|
bInvulnerableByDefault | Boss takes no damage until vulnerable |
StaggerThreshold | Hits needed to stagger boss |
StaggerDuration | Seconds boss remains vulnerable after stagger |
VulnerabilityDamageMultiplier | Damage multiplier during vulnerable state (e.g. 2.0x) |
// Manual control: BossComponent->MakeBossVulnerable(5.0f); // 5 second window BossComponent->MakeBossInvulnerable();
⏱️ Enrage / Berserk Timer v3.0
MMO-style berserk timer. When time runs out, boss enrages with massive stat boost or instant-kill wipe mechanic.
| Property | Description |
|---|---|
EnrageTime | Seconds until enrage |
EnrageDamageMultiplier | Damage multiplier after enrage (e.g. 5.0x) |
EnrageSpeedMultiplier | Movement speed multiplier |
bInstantKillOnEnrage | Kill all players after delay |
bGradualScaling | Stats scale gradually as timer runs down |
🎬 Boss Intro Sequence v3.0
4 intro styles:
| Style | Description |
|---|---|
None | Fight starts immediately |
NamePlate | HUD shows boss name + title (e.g. "DRAGON LORD — The Eternal Flame") |
CameraFocus | Camera zooms on boss + name plate |
FullCutscene | Plays ULevelSequence cutscene before fight starts |
Player input is optionally disabled during intro. Boss is invulnerable until intro finishes. Skippable via SkipBossIntro().
🔄 Attack Patterns / Combos v3.0
Define sequence-based attack patterns with weighted random selection.
// Example: "Heavy Combo" pattern Pattern: "HeavyCombo" Sequence: [0] Ranged ×3, Delay: 0.5s [1] Wait, Delay: 1.0s [2] Dash ×1 [3] AOE ×1 [4] Melee ×2, Delay: 0.3s Weight: 10 MinDistance: 300 Cooldown: 8.0s
Each step supports: Ranged, Melee, AOE, Dash, Summon, Shield, Custom, Wait
💎 Loot Table v3.0
Configure drops with rarity system, drop chances, and physics scatter:
| Property | Description |
|---|---|
ItemClass | Actor class to spawn as loot |
DropChance | Probability (0.0–1.0) |
MinQuantity / MaxQuantity | Random quantity range |
bGuaranteed | Always drops (ignores chance) |
Rarity | Common, Uncommon, Rare, Epic, Legendary |
PhaseRequirement | Only drops if boss defeated in specific phase |
👥 Aggro / Threat System v3.0
Multiplayer threat management. Boss targets the player with highest threat.
// Add threat when player deals damage: BossComponent->AddThreat(PlayerActor, DamageDealt); // Tank taunts boss for 10 seconds: BossComponent->Taunt(TankActor, 10.0f); // Get current target: AActor* Target = BossComponent->GetCurrentAggroTarget();
Threat decays over time. Boss only switches targets when threat difference exceeds ThreatSwitchThreshold (hysteresis).
📊 Boss HUD Widget v3.0
Auto-creating C++ UUserWidget with full layout built in code. Override with Blueprint subclass for visual customization.
Built-in elements: Boss name, title text, health progress bar (smooth interpolation), shield progress bar, phase indicator pips (diamond shapes), enrage countdown timer, vulnerability flash indicator.
// Auto-create (enabled by default): bAutoCreateHUD = true; // Use custom Widget BP subclass: HUDWidgetClass = BP_MyBossHUD; // Manual control: BossComponent->CreateHUD(); BossComponent->DestroyHUD();
BP_On* events in your Widget Blueprint to customize appearance: BP_OnHealthChanged, BP_OnPhaseChanged, BP_OnShieldChanged, BP_OnVulnerabilityChanged, BP_OnEnrageTimerUpdated, BP_OnBossDefeated, BP_OnShowIntroNamePlate, BP_OnHUDInitialized, BP_OnHealthBarTick
API — Enums
Core Enums (BossComponent.h)
| Enum | Values |
|---|---|
EBossProjectileType | Boulder, ExplosiveBarrel, AcidSpit, FireBall, IceSpike, Custom |
EBossMovementType | Stationary, Circular, PatrolPoints, RandomTeleport, KeepDistance |
EBossAttackType | Ranged, Melee, BarrelThrow, Mixed, Custom |
EBossHealthMode | Standalone, External |
V3.0 Enums (BossAbilityTypes.h)
| Enum | Values |
|---|---|
EBossAOEShape | Circle, Line, Cone, Cross, Rectangle |
EBossShieldType | HealthShield, PhaseShield, TimedShield |
EBossIntroStyle | None, NamePlate, CameraFocus, FullCutscene |
EBossSequenceAction | Ranged, Melee, AOE, Dash, Summon, Shield, Custom, Wait |
EBossLootRarity | Common, Uncommon, Rare, Epic, Legendary |
EBossArenaShape | Box, Sphere, Cylinder |
API — Structs
| Struct | Used In | Description |
|---|---|---|
FBossPhaseConfig | Core | Per-phase: HP, attack type, multipliers, minions, cutscene |
FBossMeleeConfig | Core | Melee: damage, range, radius, cooldown, knockback, montage, sound |
FBossMinionConfig | Core | Minions: class, count, interval, max alive, spawn points |
FBossAOEConfig | v3.0 | AOE: shape, radius, damage, warning delay, knockback, VFX |
FBossDashConfig | v3.0 | Dash: speed, distance, damage, wind-up, recovery, impact AOE |
FBossShieldConfig | v3.0 | Shield: type, HP, duration, regen, damage reduction, VFX |
FBossVulnerabilityConfig | v3.0 | Vulnerability: invulnerable default, stagger threshold/duration |
FBossEnrageConfig | v3.0 | Enrage: timer, multipliers, instant kill, gradual scaling |
FBossIntroConfig | v3.0 | Intro: style, title, duration, disable input, cutscene ref |
FBossAttackPattern | v3.0 | Pattern: sequence entries, weight, distance, cooldown |
FBossSequenceEntry | v3.0 | Single step: action type, delay, repeat count |
FBossLootConfig | v3.0 | Loot master config: table, spawn radius, launch, VFX |
FBossLootEntry | v3.0 | Single loot: item class, chance, quantity, rarity, phase req |
FBossAggroConfig | v3.0 | Aggro: decay rate, threat multiplier, switch threshold |
FBossAggroEntry | v3.0 | Runtime: player ref, threat level, total damage |
FBossArenaConfig | v3.0 | Arena: shape, radius, push force, boundary damage, VFX |
API — Functions
Core Combat
External Health
Cutscenes & Minions
V3.0 — Arena
V3.0 — AOE & Dash
V3.0 — Shield
V3.0 — Vulnerability & Enrage
V3.0 — Intro, Patterns, Loot, Aggro
V3.0 — HUD
Events & Delegates
All delegates are DYNAMIC_MULTICAST — bindable from both C++ and Blueprint.
Core Events (v2.0)
| Delegate | Parameters |
|---|---|
OnBossHealthChanged | float HealthPercent, float CurrentHealth, float MaxHealth |
OnBossPhaseChanged | int32 NewPhase, int32 MaxPhases |
OnBossFightStarted | FText BossName |
OnBossDefeated | FText BossName |
OnBossMeleeAttack | (none) |
OnBossMeleeHit | AActor* HitActor, float Damage |
OnBossRequestDamage | AActor* DamagedActor, float DamageAmount |
OnBossCutsceneStarted | int32 Phase |
OnBossCutsceneFinished | int32 Phase |
OnMinionSpawned | AActor* Minion |
OnMinionDied | AActor* Minion |
OnAllMinionsDead | (none) |
OnMinionWaveSpawned | int32 Count |
V3.0 Events
| Delegate | Parameters |
|---|---|
OnBossAOEWarning | FVector Location |
OnBossAOEDamage | FVector Location, int32 PlayersHit |
OnBossDashStarted | (none) |
OnBossDashHit | AActor* HitActor |
OnBossDashEnded | (none) |
OnBossShieldActivated | (none) |
OnBossShieldBroken | (none) |
OnBossShieldChanged | float CurrentShield, float MaxShield |
OnBossVulnerabilityChanged | bool bIsVulnerable |
OnBossStaggered | (none) |
OnBossEnraged | (none) |
OnBossEnrageWarning | float SecondsRemaining |
OnBossIntroStarted | (none) |
OnBossIntroFinished | (none) |
OnBossPatternStarted | FName PatternName |
OnBossSequenceAction | EBossSequenceAction Action, int32 StepIndex |
OnBossAggroTargetChanged | AActor* NewTarget, AActor* PreviousTarget |
OnBossLootSpawned | TArray<AActor*> SpawnedLoot |
OnBossArenaStateChanged | bool bIsClosed |
Blueprint Implementable Events
Override these in Blueprint to add custom behavior:
| Event | When |
|---|---|
BP_OnBossFightStarted | Fight begins (after intro) |
BP_OnBossDefeated | Boss HP reaches 0 in final phase |
BP_OnPhaseChanged | Phase transition completes |
BP_OnMeleeAttackStarted | Melee attack initiated |
BP_OnMeleeHit | Melee attack connects with player |
BP_OnCutsceneStarted / Finished | Phase cutscene start/end |
BP_OnMinionSpawned / Died | Individual minion spawn/death |
BP_OnAllMinionsDead | All tracked minions are dead |
BP_DealDamageToActor | Boss requests damage on actor (override for custom damage) |
BP_OnAOEWarning / Damage | AOE warning/damage phase |
BP_OnDashStarted / Ended | Dash charge cycle |
BP_OnShieldActivated / Broken | Shield state change |
BP_OnBossVulnerable | Vulnerability window opens |
BP_OnBossStaggered | Boss staggered from hits |
BP_OnBossEnraged | Enrage timer expires |
BP_OnIntroStarted / Finished | Intro sequence lifecycle |
BP_OnSequenceActionCustom | Custom action in attack pattern |
BossCharacter AI
ABossCharacter is an optional pre-built Character with BossComponent + AI navigation. It provides:
- 5 AI states: Idle, Attacking, Repositioning, Retreating, Circling
- NavMesh integration: walks to patrol points, avoids walls
- Arena awareness: stays within arena boundaries
- Auto-start fight: optional auto-trigger with configurable delay
- Debug visualization: draw ranges, states, arena bounds
Changelog
v3.0.0 — February 2026 — "The Grand Update"
11 new systems, 2 new source files, 8000+ lines of C++
- Arena System — Configurable boundaries (Box/Sphere/Cylinder), push-back, boundary DPS
- AOE/Ground Attacks — 5 shapes, warning delay, decal indicators, knockback
- Dash/Charge Attack — Wind-up → charge → impact → recovery vulnerability
- Shield/Armor System — 3 types (Health/Phase/Timed), regeneration, damage reduction
- Vulnerability Windows — Invulnerable by default, stagger system, damage multiplier
- Enrage/Berserk Timer — Gradual scaling, instant-kill wipe mechanic
- Boss Intro Sequence — 4 styles, name plate, camera focus, full cutscene
- Attack Patterns/Combos — Sequence-based, weighted random, cooldowns
- Loot Table — Rarity system, drop chances, phase-specific, physics scatter
- Aggro/Threat System — Threat decay, hysteresis, taunt, multiplayer support
- Boss HUD Widget — C++ UUserWidget with 11 BP customization events
- Bug fixes: GetWorld() null safety (16 fixes), static variable isolation, bracket balancing, montage cleanup
- New files: BossAbilityTypes.h, BossHUDWidget.h/.cpp
- Dependencies: +Niagara, +UMG
v2.0.0 — January 2026
- FBossPhaseConfig system replacing legacy arrays
- 5 attack types: Ranged, Melee, BarrelThrow, Mixed, Custom
- External Health System (GAS integration)
- Melee combat with knockback
- Minion spawning system
- ULevelSequence cutscene support
- BossCharacter AI with 5 movement patterns
- 14 delegates, 20+ Blueprint functions
v1.0.0 — December 2025
- Initial release
- Multi-phase boss system
- Projectile attacks
- Basic movement patterns
- 4 events, 4 Blueprint functions
FAQ
Can I use this without BossCharacter?
Yes! UBossComponent is an ActorComponent — attach it to any Character or Pawn. BossCharacter is an optional convenience class.
Does External Health mode work with GAS?
Yes. Set HealthMode = External, then call ReportHealthChanged() from your GAS attribute callbacks. Phase transitions fire automatically.
Can I mix v3.0 systems selectively?
Absolutely. Every v3.0 system has an enable flag. Arena: bEnableArena, Enrage: bEnableEnrage, Aggro: bEnableAggro, Loot: bEnableLoot, etc. Disabled systems have zero performance cost.
Is multiplayer supported?
The Aggro/Threat system is designed for multiplayer. Arena boundary enforcement works for all player controllers. However, boss state replication (health sync, phase sync) requires your own networking layer.
How do I customize the HUD?
Create a Blueprint subclass of UBossHUDWidget, set it as HUDWidgetClass on BossComponent, then override any of the 11 BP_On* events for custom visuals.
Support
| Documentation | adrenalinegames.pl/epicbosssystem |
| Marketplace | Fab Store |
| Engine | Unreal Engine 5.6, 5.7 |
| Platform | Win64 |
| Dependencies | Niagara (built-in), LevelSequence (built-in) |
| Language | C++ with full Blueprint exposure |
Built for Unreal Engine 5.6 — 5.7 · 8000+ lines of production C++