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

PluginResponsibility & 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.

Plugin Setup

1. Adding Plugins to Your Project

  1. Copy Plugin Folders Into YourUnrealProject/Plugins/ place:
    YourUnrealProject/
    └── Plugins/
        ├── LimbHealthSystem/
        ├── ArmorSystem/
        ├── ProjectileSystem/
        └── DamageSystem/
    
  2. Clean Build (Recommended) Delete Binaries/, Intermediate/, and Saved/ from your project root.
  3. Regenerate Project Files Right-click your .uprojectGenerate Visual Studio project files.
  4. Build Solution Open in your IDE (Visual Studio, Rider) and compile.

2. Enabling Plugins in the Editor

  1. Launch EditorEdit > Plugins.
  2. Search & Enable:
    • Limb Health System
    • Armor System
    • Projectile System
    • Damage System
  3. 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.
    TEXT
    YourProject/
    |-- 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.
  • DamageSystemTypes.h
    • Defines ERoundType, EProjectileType, and the FDamageContext struct.
  • MyGameGameplayEffectContext.h
    • Custom context that extends FGameplayEffectContext with a FDamageContext* pointer and HitLimbTag.

Plugin Dependency Configuration

  • In each plugin’s .uplugin – under "Plugins", list "DamageSystem" as a dependency.
  • In each module’s *.Build.cs – add "DamageSystem" to PublicDependencyModuleNames (or PrivateDependencyModuleNames) 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") in PrivateDependencyModuleNames.
  • 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.)