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.
Core Component Introduction

Combat System Component
GCS_CombatSystemComponent
This 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_AbilitySystemComponent
GCS 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_InputSystemComponent
GCS employs "Generic Input System" for data-driven input management and processing.

Attribute System Component
GCS provides BC_GCS_AttributeSystemComponent
, which listens for changes to all attributes used by the ability system component and forwards them to the combat system component for processing.
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 System Component
GCS_CollisionSystemComponent
This component manages all collision trace instances for a character. Whether it’s melee weapon target scanning or bullet target acquisition, it relies on this component.

Refer to Collision Trace System for more details.
Combat Core Component
GCS focuses on the combat system itself, and any dependencies on other systems are abstracted through the GCS_CombatInterface
.
The combat core component (BC_GCS_CombatCore) is the default implementation for this interface.
This component is the only one designed to require customization.
Please refer to Combat Interface to learn how to modify/extend and integrate with third-party systems.
In the GCS demo project, there is an extended BC_GCS_DemoCombatCore 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 Agent Component
GCS has built-in faction/team support, check Faction/Team 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.