Skip to content
Back to wiki

Movement Definition/Set

This doc will focus on introducing you the most importance concepts of Generic Movement System, The MovementDefinition and MovementSet.

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

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 multiple**Movement 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:

  1. Movement Control: Configures how the character moves and rotates.
  2. Animation Settings: Configures animation general settings, different animation layer implementations, required animation assets, and related settings.

Shared and per-overlay settings

A Movement Set has a default Control Setting. Enable Control Setting Per Overlay Mode to assign a different setting to a particular Overlay Mode. The default is used when no setting is found for that overlay.

States and Overlay animation layer settings can be stored in the Movement Set or referenced as shared Data Assets. To share one setting across multiple sets, turn off UseInstancedStatesSetting or UseInstancedOverlaySetting and select the shared asset.

Use UserSettings for project-specific data. Movement backend parameters belong in the Control Setting's BackendSettings.

Movement Set Setting Example

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

  1. Weapon Switching: Activate GMS.MovementSet.ADS when switching to a pistol.
  2. Pose Changes: Switch to GMS.MovementSet.Guard when pressing the defense key.
  3. Environmental Adaptation: Automatically switch to GMS.MovementSet.Crouch in narrow areas.

Read More

  • Learn more about Movement Control Settings.
  • Learn more about Animation Settings.