Getting Started with Unreal Master Kit
Introduction to the Plugin Ecosystem
This guide provides in-depth instructions for integrating the Limb Health System (LHS), Armor System (AS), Projectile System (PDS), and the Damage System (DS) into your Unreal Engine 5.5 project. The Damage System (DS) now also hosts all core shared data types—ensuring a single source of truth for your combat framework.
Plugin Ecosystem Overview
Plugin | Responsibility & Dependencies |
---|---|
DS (Damage System – Core Utilities & Types) | Provides: • FDamageContext & UDamageRouterComponent • Shared Types: – ItemSystemTypes.h (e.g., EItemInstanceQuality , FStatModifier , FQualityModifierSet )– DamageSystemTypes.h (e.g., ERoundType , EProjectileType , FDamageContext )– MyGameGameplayEffectContext.h (extends FGameplayEffectContext with damage context)Note: Other plugins depend on DS for all core types. |
LHS (Limb Health System) | Per-limb & global health, stamina, status effects, and medical consumables integrated with GAS. Depends on DS for ItemSystemTypes.h & MyGameGameplayEffectContext.h . |
AS (Armor System) | Equippable armor with durability, quality tiers, and material-based mitigation (penetration, ricochet, spall). Depends on DS for ItemSystemTypes.h & FDamageContext . |
PDS (Projectile System) | Hitscan and physical projectiles (bullets, rockets, grenades), advanced ballistics simulation (fragmentation, spall, environmental penetration). Depends on DS for ERoundType , EProjectileType , ItemSystemTypes.h , FDamageContext . |
The diagram above visualizes the relationships described in the table.
Prerequisites
- Unreal Engine: Version 5.5 or newer.
- C++ & GAS Familiarity: Working knowledge of:
UAbilitySystemComponent
UAttributeSet
UGameplayEffect
UGameplayAbility
FGameplayTag
- Plugin Management:
- Editing
.uplugin
and.Build.cs
files. - Adding and managing modules and plugin dependencies.
- Editing
Plugin Setup
1. Adding Plugins to Your Project
- Copy Plugin Folders
Into
YourUnrealProject/Plugins/
place:YourUnrealProject/ └── Plugins/ ├── LimbHealthSystem/ ├── ArmorSystem/ ├── ProjectileSystem/ └── DamageSystem/
- Clean Build (Recommended)
Delete
Binaries/
,Intermediate/
, andSaved/
from your project root. - Regenerate Project Files
Right-click your
.uproject
→ Generate Visual Studio project files. - Build Solution Open in your IDE (Visual Studio, Rider) and compile.
2. Enabling Plugins in the Editor
- Launch Editor → Edit > Plugins.
- Search & Enable:
- Limb Health System
- Armor System
- Projectile System
- Damage System
- Restart if prompted.
3. Original Installation Steps (from previous Getting Started)
These were the original steps, now integrated into the broader setup guide above:
- Download the Plugin: Download the latest release from our GitHub repository or the Unreal Engine Marketplace.
- Install the Plugin: Place the plugin folder into your project's
Plugins
directory. If this directory doesn't exist, create it. Alternatively, install it to your engine's plugins directory to make it available for all projects.TEXTYourProject/ |-- Content/ |-- Source/ |-- Plugins/ <-- Create this folder if it doesn't exist |-- UnrealMasterKit/ <-- Place the plugin here (Note: individual plugin folders are preferred as per new guide)
- Enable the Plugin: Open your project in Unreal Engine. Go to
Edit > Plugins
, search for "Unreal Master Kit" (or individual plugin names), and ensure it's enabled. You may need to restart the editor. - Verify Installation: Once enabled, you should be able to access Unreal Master Kit assets and C++ classes within the editor. Check the Output Log for any messages from the plugin during startup.
Core Concepts & Dependencies
API Macros
Each module exports via its own macro:
DAMAGESYSTEM_API
LHS_API
ARMORSYSTEM_API
PROJECTILESYSTEM_API
Shared Data Types (Now in DS)
ItemSystemTypes.h
- Defines
EItemInstanceQuality
,FStatModifier
,FQualityModifierSet
,FItemQualityModifierMapping
.
- Defines
DamageSystemTypes.h
- Defines
ERoundType
,EProjectileType
, and theFDamageContext
struct.
- Defines
MyGameGameplayEffectContext.h
- Custom context that extends
FGameplayEffectContext
with aFDamageContext*
pointer andHitLimbTag
.
- Custom context that extends
Plugin Dependency Configuration
- In each plugin’s
.uplugin
– under"Plugins"
, list"DamageSystem"
as a dependency. - In each module’s
*.Build.cs
– add"DamageSystem"
toPublicDependencyModuleNames
(orPrivateDependencyModuleNames
) so that headers resolve.
DS Module Internals
DamageSystem.uplugin
should not reference LHS, AS, or PDS as dependencies merely to expose types—DS owns them.- If
UDamageRouterComponent.cpp
calls into LHS or AS components directly, declare those modules (e.g.,"LimbHealthSystem"
,"ArmorSystem"
) inPrivateDependencyModuleNames
.- For stricter decoupling, consider using interfaces or events rather than direct includes.
(Further sections from the Developer Integration Guide, like specific system integrations, will be detailed in their respective plugin pages or advanced guides.)