VitalCore
Data-driven pawn vitals in one component: any stats you name, regeneration, resistances and armor, shields, timed and stacking status effects, downed / death / revive,β¦
Highlights
All 18 features βVitalCore replaces the usual health float and its pile of timers with a complete vitals system. Add the Vitals component to any pawn or actor and define its stats - Health, Stamina, Shield, Mana, Hunger, anything - inline or in a shared Vital Core Profile data asset. Each stat has a current, maximum and minimum value, a regeneration rate and a delay that restarts whenever the stat is damaged, drained or spent.
Damage goes through a clear pipeline: multipliers per damage type class (including child types), a flat armor value, a minimum-damage floor, then a shield stat that absorbs part or all of the hit before health and recharges on its own delay, with a break event. The engine's own Apply Damage, Apply Point Damage and Apply Radial Damage are picked up automatically and counted once, so existing weapons work without changes. Every hit records its direction, location, bone, instigator and causer; the last hit angle drives hit indicators, and at death the kill credit and the assist list are computed from the damage dealt inside a configurable time window.
Vital Core Effect data assets cover timed and status effects: damage or heal over time, stat drain or boost, with tick interval and duration, plus stacks, maximum stacks, a Refresh / Extend / Keep policy and modifiers that add to or multiply a stat's maximum or regeneration, add armor or scale incoming damage while active. A quick Apply Timed Change node does the same without an asset.
Pawns can be downed first, with a bleed-out timer that damage shortens, then die, and be revived with a fraction of their health. An invulnerability window after hits and revives and a god-mode toggle are built in. Character owners take fall damage from their landing speed with a threshold and linear or curve scaling. Stamina spending refuses what it cannot afford and locks out after exhaustion until stamina recovers, and a sprint helper drains stamina and can switch the walk speed.
Everything is server-authoritative and replicated: stats, effects, life state, last hit, kill info and timers reach every client, and RepNotifies fire the same Blueprint events there as on the server. Save Vitals captures every stat and effect into one SaveGame-ready struct and Load Vitals restores it. The VitalCore.Debug console variable draws every pawn's vitals above it in development builds.
VitalCore is part of the Alpha XP collection for Unreal Engine 4.27 and 5.8. Every feature is exposed to Blueprints and C++, it ships with styled HTML documentation, and it is compiled and verified warning-free against clean UE 4.27 and UE 5.8 projects.
Key features
- Vitals component with any number of named stats from a data asset or an inline array
- Current, maximum and minimum value per stat, runtime add, set and base-max changes
- Regeneration per stat with rate and delay after damage or use (negative rates decay)
- Damage multipliers per damage type class, flat armor and a minimum-damage floor
- Shield stat that absorbs damage before health, own recharge delay, break event
- Timed effects: damage / heal over time, stat drain / boost, tick interval and duration
- Status effects with stacks, max stacks and Refresh / Extend / Keep policy
- Modifiers: add or multiply max and regeneration, add armor, scale damage taken
- Downed state with bleed-out timer, death, revive with a health fraction
- Invulnerability window after hits and revives, god-mode toggle
- Server-authoritative replication with client-side events through RepNotify
- Automatic hook into engine point, radial and generic damage
- Hit info: direction, angle, location, bone, instigator and causer
- Kill credit and assist list within a time window, with player states
- Fall damage from landing speed for characters, linear or curve scaling
- Save Vitals / Load Vitals into a SaveGame-ready struct
- Try Spend Stamina with exhaustion lockout and a sprint drain helper
- VitalCore.Debug on-screen stats and a Blueprint function library
Blueprint & C++ API
The API is organised into these entry points:
| Class | Type | Nodes | Use it for |
|---|---|---|---|
| VitalCoreComponent | Actor component | 55 | Data-driven vitals for any actor: named stats with regeneration, resistances and armor, shield, timed and stacking status effects, downed / death / revive, invu⦠|
| VitalCoreLibrary | Function library | 11 | One-node access to the vitals of any actor (or of the pawn of a controller). |
| VitalCoreEffect | Data asset | 1 | A timed or status effect: periodic stat changes (damage / heal over time, drain, boost), stat modifiers while active (max, regeneration, armor, damage taken), s⦠|
| VitalCoreProfile | Data asset | 1 | Reusable set of stat definitions, resistances and armor shared by many pawns. Create one with Add > Miscellaneous > Data Asset > Vital Core Profile. |
Callable runs when executed Β· Pure no exec pin, returns a value
Damage 4
| Node | Type | Available on | Description |
|---|---|---|---|
| Apply Vital Damage(Amount: Float, Damage Type: Damage Type, Instigated By: Controller, Damage Causer: Actor, Hit Location: Vector, β¦) β Float | Callable | Component | Applies damage through resistances, armor, shield and invulnerability. Returns the health lost. |
| Heal(Amount: Float, Stat: Name) β Float | Callable | Component | Adds Amount to a stat (None = health). No effect on the health of a downed or dead pawn. Returns the amount added. |
| Get Damage Multiplier(Damage Type: Damage Type) β Float | Pure | Component | Combined multiplier for a damage type: resistances of the component and profile, and damage-taken modifiers. |
| Get Effective Armor() β Float | Pure | Component | Armor of the component and profile plus Add Armor modifiers. |
Death 8
| Node | Type | Available on | Description |
|---|---|---|---|
| Kill(Killer: Actor) | Callable | Component | Kills the pawn immediately (ignores god mode and the downed state). Killer gets the credit when set. |
| Revive(Health Fraction: Float) β Boolean | Callable | Component | Revives a downed (or dead) pawn with Health Fraction of its health. Returns false when nothing happened. |
| Get Life State() β Vital Core Life State | Pure | Component | |
| Is Alive() β Boolean | Pure | Component | |
| Is Downed() β Boolean | Pure | Component | |
| Is Dead() β Boolean | Pure | Component | |
| Get Downed Time Remaining() β Float | Pure | Component | Seconds left before a downed pawn bleeds out (0 when not downed). |
| Get Kill Info() β Vital Core Kill Info | Pure | Component | Kill credit of the last death. |
Stats 17
| Node | Type | Available on | Description |
|---|---|---|---|
| Reset Vitals | Callable | Component | Rebuilds every stat from its definition, removes all effects and makes the pawn alive (respawn). |
| Modify Stat(Stat: Name, Delta: Float) β Float | Callable | Component | Adds Delta to a stat; a decrease starts its regeneration delay. Returns the change applied. |
| Set Stat Value(Stat: Name, Value: Float) | Callable | Component | |
| Set Stat Base Max(Stat: Name, New Base Max: Float, Keep Percent: Boolean) | Callable | Component | Changes the base maximum. Keep Percent scales the current value with it. |
| Set Stat Regen(Stat: Name, Rate Per Second: Float, Delay: Float) | Callable | Component | |
| Add Stat(Definition: Vital Core Stat Def) | Callable | Component | Adds a stat at runtime, or replaces the definition of an existing one. |
| Has Stat(Stat: Name) β Boolean | Pure | Component | |
| Get Stat(Stat: Name) β Boolean, Out Stat | Pure | Component | |
| Get Stat Value(Stat: Name) β Float | Pure | Component | |
| Get Stat Max(Stat: Name) β Float | Pure | Component | |
| Get Stat Percent(Stat: Name) β Float | Pure | Component | Current value as a fraction 0-1 of the stat's range. |
| Get Stats() β Array of Vital Core Stat | Pure | Component | |
| Get Health() β Float | Pure | Component | |
| Get Health Percent() β Float | Pure | Component | |
| Get Shield() β Float | Pure | Component | |
| Get Stamina() β Float | Pure | Component | |
| Get Regen Delay Remaining(Stat: Name) β Float | Pure | Component | Seconds until the stat regenerates again (0 = regenerating now). |
Effects 8
| Node | Type | Available on | Description |
|---|---|---|---|
| Apply Effect(Effect: Vital Core Effect, Stacks: Integer, Source: Actor) β Boolean | Callable | Component | Applies (or stacks) an effect. Returns false when it could not be applied. |
| Apply Timed Change(Effect Id: Name, Change: Vital Core Stat Change, Tick Interval: Float, Duration: Float, Source: Actor) β Boolean | Callable | Component | Applies a quick timed change without an asset (damage / heal over time, drain, boost). Applying the same id again refreshes it. |
| Remove Effect(Effect Id: Name, Stacks: Integer) β Integer | Callable | Component | Removes Stacks stacks of an effect (0 = all). Returns the stacks left. |
| Remove All Effects | Callable | Component | |
| Has Effect(Effect Id: Name) β Boolean | Pure | Component | |
| Get Effect Stacks(Effect Id: Name) β Integer | Pure | Component | |
| Get Effect Remaining Time(Effect Id: Name) β Float | Pure | Component | Seconds left (-1 = not active, 0 = no time limit). |
| Get Active Effects() β Array of Vital Core Active Effect | Pure | Component |
Invulnerability 5
| Node | Type | Available on | Description |
|---|---|---|---|
| Set God Mode(Enabled: Boolean) | Callable | Component | |
| Is God Mode() β Boolean | Pure | Component | |
| Set Invulnerable For(Seconds: Float) | Callable | Component | Makes the pawn invulnerable for Seconds (never shortens a running window). |
| Is Invulnerable() β Boolean | Pure | Component | God mode or an invulnerability window is active. |
| Get Invulnerable Time Remaining() β Float | Pure | Component |
Hits 3
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Last Hit() β Vital Core Hit Info | Pure | Component | |
| Get Last Hit Angle() β Float | Pure | Component | Where the last hit came from relative to the owner's facing: 0 front, 90 right, -90 left, 180 back. |
| Get Recent Damage Sources() β Array of Vital Core Damage Record | Pure | Component | Server only: damage per source within the assist window, most damage first. |
Stamina 6
| Node | Type | Available on | Description |
|---|---|---|---|
| Try Spend Stat(Stat: Name, Amount: Float) β Boolean | Callable | Component | Spends Amount of a stat if it has that much (and, for stamina, is not exhausted). |
| Try Spend Stamina(Amount: Float) β Boolean | Callable | Component | |
| Can Spend Stamina(Amount: Float) β Boolean | Pure | Component | |
| Is Exhausted() β Boolean | Pure | Component | |
| Set Sprinting(New Sprinting: Boolean) | Callable | Component | Starts or stops sprinting (drains stamina, optional sprint walk speed). Clients forward the request to the server. |
| Is Sprinting() β Boolean | Pure | Component |
Save 2
| Node | Type | Available on | Description |
|---|---|---|---|
| Save Vitals() β Vital Core Save Data | Pure | Component | Captures every stat and effect, the life state and god mode. |
| Load Vitals(Data: Vital Core Save Data, Restore Effects: Boolean) | Callable | Component | Restores a capture made with Save Vitals. Stats missing from the data keep their current state. |
VitalCore 15
| Node | Type | Available on | Description |
|---|---|---|---|
| Get Vital Time() β Float | Pure | Component | Server world time used by all Vitals timers (replicated end times use it too). |
| Get Debug Text() β String | Pure | Component | Multi-line summary of the state (what VitalCore.Debug shows above the pawn). |
| Get Effect Id() β Name | Pure | Data asset | The effect id: Effect Id, or the asset name when Effect Id is None. |
| Get Vitals(Actor: Actor) β Vital Core Component | Pure | Static | The Vitals component of Actor, or of its pawn when Actor is a controller. |
| Is Alive(Actor: Actor) β Boolean | Pure | Static | True when Actor has vitals and is alive. |
| Get Stat Value(Actor: Actor, Stat: Name) β Float | Pure | Static | |
| Get Health Percent(Actor: Actor) β Float | Pure | Static | |
| Apply Heal(Actor: Actor, Amount: Float, Stat: Name) β Float | Callable | Static | Heals a stat of Actor (None = health). Server only. Returns the amount added. |
| Apply Vital Damage(Actor: Actor, Amount: Float, Damage Type: Damage Type, Instigated By: Controller, Damage Causer: Actor) β Float | Callable | Static | Damages Actor through its resistances, armor and shield. Server only. Returns the health lost. |
| Kill(Actor: Actor, Killer: Actor) β Boolean | Callable | Static | Kills Actor immediately. Server only. |
| Revive(Actor: Actor, Health Fraction: Float) β Boolean | Callable | Static | Revives Actor with Health Fraction of its health. Server only. |
| Apply Effect(Actor: Actor, Effect: Vital Core Effect, Stacks: Integer, Source: Actor) β Boolean | Callable | Static | Applies an effect to Actor. Server only. |
| Remove Effect(Actor: Actor, Effect Id: Name, Stacks: Integer) β Integer | Callable | Static | Removes an effect from Actor (Stacks 0 = all). Server only. Returns the stacks left. |
| Get Percent Of Stat(Stat: Vital Core Stat) β Float | Pure | Static | Current value of a stat struct as a fraction 0-1. |
| Find Stat Definition(Stat Name: Name) β Boolean, Out Definition | Pure | Data asset | Finds a stat definition by name. |
Events & delegates
Bind these in Blueprint (drag off the object β Bind Event) or with AddDynamic in C++.
| Event | Parameters | When it fires |
|---|---|---|
| On Stat Changed | Vitals (Vital Core Component), Stat (Name), Old Value (Float), New Value (Float) | A stat value changed (also every frame while regenerating). |
| On Damaged | Vitals (Vital Core Component), Hit (Vital Core Hit Info) | Damage was taken (health and/or shield). |
| On Damage Blocked | Vitals (Vital Core Component), Hit (Vital Core Hit Info) | Server only: a hit was blocked by invulnerability or god mode. |
| On Shield Broken | Vitals (Vital Core Component) | The shield stat was emptied by damage. |
| On Downed | Vitals (Vital Core Component) | |
| On Death | Vitals (Vital Core Component), Kill Info (Vital Core Kill Info) | |
| On Revived | Vitals (Vital Core Component) | |
| On Effect Applied | Vitals (Vital Core Component), Effect Id (Name), Stacks (Integer) | |
| On Effect Stacks Changed | Vitals (Vital Core Component), Effect Id (Name), Stacks (Integer) | |
| On Effect Removed | Vitals (Vital Core Component), Effect Id (Name), Stacks (Integer) | |
| On Exhausted | Vitals (Vital Core Component) | Stamina ran out: spending is locked until it recovers. |
| On Exhaustion Recovered | Vitals (Vital Core Component) | |
| On Sprint Changed | Vitals (Vital Core Component), Is Sprinting (Boolean) | |
| On Fall Damage | Vitals (Vital Core Component), Impact Speed (Float), Damage (Float) | Server only: fall damage was applied on landing. |
Options & enums
| Enum | Values |
|---|---|
| Life State | Alive Downed Dead |
| Stack Policy | Refresh Extend Keep |
| Modifier Op | Add Max Multiply Max Add Regen Multiply Regen Add Armor Multiply Damage Taken |
| Fall Scaling | Linear Curve |
Compatibility
One ready-made build per engine version is included in the download β copy the one that matches your project.
| Platform | Supported in |
|---|---|
| Windows | Editor & packaged |
| macOS | Editor & packaged |
| Module | Type | Loading phase |
|---|---|---|
| VitalCore | Runtime | Default |
Technical details
| Code modules | VitalCore (Runtime) |
|---|---|
| Blueprints | 0 Β· C++ classes: 4 |
| Network replicated | Yes |
| Development platforms | Windows: Yes, Mac: Yes |
| Target build platforms | Win64, Mac |
| Third-party software | No |
| Engine versions | Unreal Engine 4.27 Β· 5.8 β a build for each is included |
| C++ classes | 4 + 12 structs |
| Blueprint nodes | 68 |
| Events | 14 |
| Documentation | Documentation.html (in the download) |
| Download | VitalCore.zip Β· 164 KB |
| Version | v1.0.0 |
What's in the download
| File | What it is |
|---|---|
| VitalCore 4.27.zip | Plugin build for Unreal Engine 4.27 |
| VitalCore 5.8.zip | Plugin build for Unreal Engine 5.8 |
| Documentation.html | Documentation (open in a browser) |
Quick start
- Unzip the download and pick the build that matches your engine (4.27 Β· 5.8).
- Copy the VitalCore folder into your project's Plugins/ folder (create it if needed).
- Open the project, enable VitalCore under Edit βΊ Plugins and restart the editor.
- Right-click in any Blueprint graph and search Damage β or include the public headers from C++.
- Package for your target platform (Windows, macOS).
Good to know
Built and verified warning-free for Unreal Engine 4.27 and 5.8. C++ classes: Vitals component, Vital Core Profile (data asset), Vital Core Effect (data asset) and VitalCore Library. All state changes run on the server and replicate to clients, which receive the same events through RepNotify. No content assets are included. The module is enabled for Win64 and Mac; the code is platform-independent engine C++ with no OS-specific calls. Developed and maintained by Alpha XP.
Everything included
- Vitals component with any number of named stats from a data asset or an inline array
- Current, maximum and minimum value per stat, runtime add, set and base-max changes
- Regeneration per stat with rate and delay after damage or use (negative rates decay)
- Damage multipliers per damage type class, flat armor and a minimum-damage floor
- Shield stat that absorbs damage before health, own recharge delay, break event
- Timed effects: damage / heal over time, stat drain / boost, tick interval and duration
- Status effects with stacks, max stacks and Refresh / Extend / Keep policy
- Modifiers: add or multiply max and regeneration, add armor, scale damage taken
- Downed state with bleed-out timer, death, revive with a health fraction
- Invulnerability window after hits and revives, god-mode toggle
- Server-authoritative replication with client-side events through RepNotify
- Automatic hook into engine point, radial and generic damage
- Hit info: direction, angle, location, bone, instigator and causer
- Kill credit and assist list within a time window, with player states
- Fall damage from landing speed for characters, linear or curve scaling
- Save Vitals / Load Vitals into a SaveGame-ready struct
- Try Spend Stamina with exhaustion lockout and a sprint drain helper
- VitalCore.Debug on-screen stats and a Blueprint function library
Platforms
Requirements
- Unreal Engine 4.27 and 5.8
- Develop on Windows (Win64)
- Blueprints and C++
In the download
Personal
One non-commercial project
- 1 activation seat
- 1 year of updates
- One end product
- Non-commercial use
- Community support
- 14-day refund window
Commercial
Ship paid products
- 5 activation seats
- 1 year of updates
- One paid end product
- Unlimited end users
- Priority support
- Source files
- 14-day refund window
Extended
Resell & white-label
- Unlimited activation seats
- Lifetime updates
- Unlimited end products
- White-label & resell
- 1-hour SLA
- Seat-free team use
- 14-day refund window
One purchase per product, no subscription. Each licence comes with a signed key β 1 seat on Personal, 5 seats on Commercial, unlimited seats on Extended. Paid licences can be refunded within 14 days from your order page.
- v1.0.0Latest
- Unreal Engine 4.27 and 5.8
- Blueprint and C++ API, HTML documentation
Be the first to review VitalCore β reviews come from customers who bought it, so every one is a verified purchase.
Frequently asked
How do I get the files after paying?
Straight after checkout you land on your order page with the download button and your licence key. A receipt is emailed to you, and every order stays in My library.
Which licence do I need?
Personal β One non-commercial project. Commercial β Ship paid products. Extended β Resell & white-label. The Licences tab compares them side by side.
On how many devices can I activate it?
1 seat on Personal, 5 seats on Commercial, unlimited seats on Extended.
How long do I get updates?
Personal: 1 year of updates, Commercial: 1 year of updates, Extended: lifetime updates, counted from your purchase.
Can I get a refund?
Yes β paid licences can be refunded within 14 days, straight from your order page.
Is the download safe?
The file was scanned with ClamAV when it was published. Its SHA-256 checksum is listed under Features β In the download, so you can verify the file you receive.
Do I need an account?
No. Checkout only needs your email. Signing in keeps all your purchases, keys and downloads together in My library.
More like this
AudioLens
Real-time audio analysis: FFT spectrum, onset and beat detection, and a full set of time- and frequency-domain descriptors..
β β β β β No reviews yetTTechHarbour$14.00BlueprintTCP
BlueprintTCP lets you connect to any TCP server and exchange data entirely from Blueprints β no C++ and no networking boilerplate.
β β β β β No reviews yetTTechHarbour$12.99BluetoothLink
Bluetooth Low Energy for Unreal - scan, connect, read, write and subscribe to BLE devices on Android and iOS.
β β β β β No reviews yetTTechHarbour$11.99ClusterLink
SocketCluster realtime client for Unreal - pub/sub channels, auth engine and JSON codec, usable from Blueprints.
β β β β β No reviews yetTTechHarbour$11.99