Integrate GMS/GIS

This doc explained how to integrate Generic Movement System into Generic Combat System.

Cover.GCS
A

Author

Author

Created: Apr 08, 2025Updated: Apr 14, 2026

Table of contents

Preparation Work

This article is only applicable to users who have purchased multiple products from me, such as GCS, GMS, or GIS.

Due to the complexity of the combat system itself, which involves more game mechanics, the recommended process is to integrate GIS or GMS into GCS.

Prerequisite Knowledge

Before integration, you should at least understand the basic usage of each system, as well as the BC_DemoCombatEntity implementation.

Background

First, GCS, GMS, and GIS all belong to GGF (General Game Framework Plugin, my All-In-One solution, but it has not been released yet).

I hope my products can maintain independence and modularity among each other. Therefore, GCS, GMS, and GIS all have their corresponding supporting projects, which are subsets separated from my current All-In-One.

For more information, please see here.

Merge Projects

You can manually merge the latest supporting projects of the corresponding versions of each plugin, or migrate the project content to your own project at the same time.

Note

The supporting projects are all split from my own projects, so you can freely merge them back together by copying and pasting. The supporting projects will share some content, so you can directly overwrite duplicate files during the merging process.

At the same time, be aware that the contents of DefaultGame.ini and DefaultEngine.ini in the supporting projects (if they exist) should also be merged.

Required Plugins for Installation

All supporting projects share General Game System(GGS), the plugins do not need to be merged, you just need to install the corresponding version of the plugin from Fab.

Integrating GMS into GCS

The Demo part of the supporting project in GCS contains a simple movement system that demonstrates how to introduce a movement system into GCS, and includes:

  1. BC_Demo_MovementManager : Located at /GenericDemo/GCS/Blueprints/MovementManager, it is a simple movement management component.
  2. Several Animation Blueprints : Located under /GenericDemo/GCS/Animations/, these are several lightweight animation blueprints, which can be considered an extremely simplified version of GMS.

You can replace it with other implementations, such as using ALS/GASP or my GMS to replace the movement system in GCS.

This section will explain how to integrate GMS into GCS.

Complete the basic setup of the movement system

Replace the movement system

Before integrating GMS into GCS, you should at least be familiar with and understand the usage of GMS itself. You can refer to the movement system's configuration, and complete the basic component setup of the movement system in GCS.

Key points are as follows:

  1. Replace BC_Demo_MovementManager in the GCS character with the GMS movement system component, which provides an API/event similar to BC_Demo_MovementManager.
  2. Replace the animation blueprint of the SkeletalMesh component in the GCS character from ABP_CombatCharacter to the ABPT_GMS_Main provided by GMS.
  3. Refer to the usage of ABP_Mannequin_Ext in GMS, and in the Beginplay of the GCS character, link it to the main animation instance of the SkeletalMesh component. ABP_Mannequin_Ext is the animation layer that sets up the character's Montage layout, providing the same functionality as ABP_CombatCharacter_Ext provided by the GCS Demo.

For Step 3:

Loading Blueprint

Initializing BlueprintUE renderer...

Replace Movement API

In the combat entity interface of GCS, there are several movement-related APIs that are compatible with GMS APIs, so you can inherit from BC_GCS_CombatEntity or modify BC_GCS_DemoCombatEntity, and replace the API calls as instructed.

GCS集成GMS.API案例

Example code in DemoCombatEntity.

GCS集成GMS.运动api

SetMovementSet/SetMovementState/SetRotationMode implemented by GMS.


集成指南.GMSAPI.Getter

GetRotationMode/GetMovementState/GetMovementSet implemented by GMS.

Integration of Weapons and Movement Definitions

In GCS_Demo, DemoWeapon is configured with different animation layers through WeaponAnimLayerSelections and calls RefreshWeaponAnimLayer and UnlinkWeaponAnimLayer to implement state changes for the character, switching different animation layers (different animation poses) based on the current weapon.

If using GMS, you no longer need to manually call the refresh of the animation layers on the weapon, but instead, add movement definition variables in your weapon class, and when the weapon is activated/deactivated, change the current movement definitions for the GMS movement system component.

When the movement API is called, the GMS movement system component will automatically refresh the corresponding control/animation layer logic.

GCS集成GMS.切换武器定义

Depending on your game design, you may need more complex logic to determine what kind of movement definitions to set for each weapon when activated (for example, using different movement definitions based on the character's gender).

Summary

Ideally, when you switch weapons in GCS, the movement definitions on the GMS component will switch. When you call movement-related APIs through the CombatEntityInterface, the specific movement control/animation replacement will be executed through the GMS component.

GCS集成GMS.004

Integrating GIS into GCS

The supporting project in GCS includes a simple weapon management component that demonstrates how to introduce an equipment management system into GCS.

You can use other inventory/equipment systems to replace the weapon management functionality in GCS.

This section will explain how to use GIS to manage weapons in GCS.

TODO...