Skip to content
Back to wiki

System Components Overview

This doc brief introduction to required components within Generic Combat System for Unreal Engine5.

A

Author

Author

Created: Apr 15, 2025Updated: Oct 20, 2026

Table of contents

Introduction

The combat system is composed of multiple components, each serving different functions.

Some components require no modification, while others need to be extended based on project requirements.

Here is a brief introduction to these components.

Plugin and companion-project boundary. The C++ plugin provides the GenericCombatSystem Runtime module, including its combat components and interfaces. Its .uplugin sets CanContainContent to false. GGA_AbilitySystemComponent and GIPS_InputSystemComponent belong to their respective plugins. The BC_GCS_* and GCMS_* Blueprint classes below come from companion/reference content.

Core Component Introduction

Combat System Component

GCS_CombatSystemComponentThis is the core component of GCS. Simply add this component to your character and configure a "CombatFlow" class without any additional operations. All "combat results" are generated and processed by combat flow.

Ability System Component

GGA_AbilitySystemComponentGCS utilizes "Generic Gameplay Abilities" to manage all available combat abilities for the character.

Refer to Ability System User Guide to learn about built-in abilities.

Input System Component

GIPS_InputSystemComponentGCS employs "Generic Input System" for data-driven input management and processing.

Attribute System Component

The companion/reference project includes BC_GCS_AttributeSystemComponent, a Blueprint subclass of the Generic Gameplay Abilities Attribute System Component. It listens for changes to attributes used by the ability system and forwards them to the combat system for processing. This Blueprint is example content, not a runtime component in the GenericCombatSystem plugin.

This component is an extension of the Attribute System Component from Generic Gameplay Abilities, allowing blueprint users to utilize GAS without needing to write C++.

Collision Trace System Component

UGCS_TraceSystemComponent manages an Actor's melee and other general collision trace instances. Melee AbilityTasks and the bullet system use it to start/stop traces and receive hit results. Target lock-on and potential-target collection are handled by the UGCS_TargetingSystemComponent below.

Refer to Collision Trace System for more details.

Bullet System Component

UGCS_BulletSystemComponent is the current entry point for bullet spawning and runtime management. Submit spawn requests with UGCS_AttackRequest_Bullet. The component manages replicated bullet batches, per-instance state, and hit history, and settles hit effects through the server-authoritative path. UGCS_BulletSubsystem remains only as a compatibility layer; its public methods are deprecated. See Bullet System.

Targeting System Component

UGCS_TargetingSystemComponent manages target lock-on and refreshes potential targets through a configured UTargetingPreset. The current TargetedActor is replicated to the owning client; PotentialTargets is not replicated and is refreshed locally on Authority and AutonomousProxy. See Target Targeting System.

Combat Entity Component

GCS focuses on the combat system itself, and any dependencies on other systems are abstracted through the GCS_CombatEntityInterface.

The combat core component (BC_GCS_CombatEntity) is the default implementation for this interface.

It is the companion project's default Blueprint implementation of the interface. In the runtime plugin, IGCS_CombatEntityInterface is the contract; a project may implement it on its Actor or one of its components.

Please refer to Combat Entity Interface to learn how to modify/extend and integrate with third-party systems.

In the GCS demo project, there is an extended BC_GCS_DemoCombatEntity component that demonstrates how to integrate different systems with GCS. You can follow this example to integrate other systems (if you have independent movement systems, inventory systems, etc).

Combat Team/Faction Agent Component

GCS has built-in faction/team support, check Faction/Team System for more.

Additional Component Introduction

GCS_LockIndicator Component

This is a simple component that dynamically adds a lock indicator widget to the character based on whether they are locked on. It is associated with BC_GCS_TargetingSystemComponent (a subclass of GCS_TargetingSystemComponent).

If you do not need the LockIndicator, you can directly use the C++ version of GCS_TargetingSystemComponent.

GCMS_CameraSystem Component

This is the camera system component from Camera System. In the reference content provided by GCS, this system handles camera parameters for the character in different states and smooth transitions between multiple camera modes.

If you already have another camera system, you can refer to the usage in the demo to switch to another camera system.

GCS_ContextEffects Component

This component comes from Context Effects System. In the reference content provided by GCS, all footstep sounds, weapon swing sounds, and impact collision sfx/vfx are handled by this system.

GCS_DemoWeaponManager Component

This is a simple weapon management component used to manage and switch weapons in GCS.

You should refer to Weapon System to understand how weapons are used in GCS.