Overview
GMS is completely data-driven, that means you can setup your whole locomotion by just configuring within Data Assets.
And, this doc will focus on introducing you the most importance concepts, The MovementDefinition and MovementSet.
Movement definition
A Movement Definition is a data asset of type GMS_MovementDefinition, which is a core part of GMS where most functionalities are concentrated.

You create this type of data asset in the editor to perform the main GMS configuration.
Each Movement Definition can contain multipleMovement Set Setting, identified by MovementSetTag.

Think of the Movement Definition as an animation database, with GMS.MovementSet.XXX serving as query keys.
Movement Set Setting
Each MovementSetSetting is uniquely identified by a GameplayTag and consists of two parts:
- Movement Control: Configures how the character moves and rotates.
- Animation Settings: Configures animation general settings, different animation layer implementations, required animation assets, and related settings.

Movement Set Setting Example
The diagram below shows an unarmed Movement Definition configured using Lyra's Unarmed animation pack, containing 4 Movement Set Settings:
- Default: Standing state
- ADS: Aiming state
- Crouch: Crouching state
- ADS_Crouched: Crouched aiming state
The diagrams below show specific Movement Set Settings for standing and crouching:

Movement Definition Planning
Multiple Character Animations
When your project contains multiple sets of character animations, then the following setup is recommended:
Single Movement Definition per Character Set:
- Purpose: One GMS_MovementDefinition DataAsset configures an entire set of animations for a specific character.
- Examples: Unarmed, pistol, rifle, sword, shield, and other weapon/state-specific animations.
- Set Variants: Use MovementSetSetting to subdivide variations within the same movement definition.
Animation Variants Examples:
A single movement definition can include the following movement set settings:
- Base Variants: Standing (Default), Crouching (Crouch)
- Aiming Variants: Aiming (ADS), Crouched Aiming (ADS_Crouched)
- Defensive Variants: Standing Guard (Guard), Crouched Guard (Guard_Crouched)
Limited Character Animations
When your project only contains one set of character animations (such as Unarmed animations), you can also use the animation overlay system to create more animation variations for the character, thereby saving the required number of animation assets.
Runtime Switching
Switch movement sets at runtime using the movement system component APIs, more on: Gameplay Guide
Practical Use Cases
- Weapon Switching: Activate GMS.MovementSet.ADS when switching to a pistol.
- Pose Changes: Switch to GMS.MovementSet.Guard when pressing the defense key.
- Environmental Adaptation: Automatically switch to GMS.MovementSet.Crouch in narrow areas.
Read More
- Learn more about Movement Control Settings.
- Learn more about Animation Settings.
