A complete GAS layer — extended ASC, ready-made ability shapes, pluggable costs, data-driven contracts, a slot-based augment system, runtime modifiers, game phases, and an optional graph-authored combo system.
Gameplay · GAS · Unreal Engine 5
Epic gives you GAS. This gives you a combat system.
A GAS foundation layer for combat: an extended ability system component, four ready-made ability shapes, pluggable costs and cooldowns, contract-driven properties, a data-asset augment system that mutates one ability spec at a time, gameplay effect components, server-authoritative game phases, and an optional graph-authored combo system. Designers work in data assets and Blueprint, and the replication and plumbing are already handled — attributes are declared in C++, as stock GAS requires.
Why CrimsonAbilitySystem
A production-grade GAS foundation — plus the systems action RPGs actually ship: augments, combos, and phases.
An ASC that does the busywork
UCrimsonAbilitySystemComponent extends the engine ASC with tag-driven input handling, activation groups, tag relationship rules, cooldown management, effect-stack utilities, and the augment runtime. It lives on the Player State, so replicated state survives pawn respawns — ACrimsonAbilityCharacter and ACrimsonAbilityPlayerState wire it up for you.
Four ability patterns, ready to use
UCrimsonGameplayAbility adds activation policies and commit timing, and four subclasses cover the action-RPG staples — cast time, charges, channeling, and toggle. Subclass in Blueprint, drop in your montage and effects, ship.
Contracts: abilities publish their schema
A UCrimsonAbilityContract data asset declares every property, event, asset slot, and augment slot an ability exposes. Editors populate dropdowns from the contract instead of free-text tag pickers, and abilities read values through a cached GetConfigurableValue family — data-driven tuning without string typos.
Augments change one ability instance
A UCrimsonAbilityAugment attaches to a single ability spec, so two characters with the same granted ability can carry entirely different ones and the ability asset never changes. Three parts cover the cases: a mutation transforms a property on read, an action fires once on an event tag, and a stateful listener accumulates across events. Custom actions are one Blueprint subclass away.
Combos as graphs, not montage scripts
Optional and off by default — flip one switch and each combo step becomes its own gameplay ability, with a UCrimsonComboGraphAsset describing how steps chain into branching sequences: light-light-heavy, charge attacks, directional finishers. The owning client predicts transitions and the server validates them inside a ping-tolerant window, and dev tools let you watch the graph advance live.
Modifiers, global effects & game phases
Tag-based and ability-specific modifiers adjust ability properties at runtime — a shrine that halves every fire cooldown for 30 seconds — and dynamic tag rules re-shape block/cancel relationships without editing the mapping asset. UCrimsonGlobalAbilitySystem applies an ability or effect to every ASC in the world at once, and UCrimsonGamePhaseSubsystem drives server-authoritative phase flow using abilities as phase tokens.
A closer look
One working ability, end to end, in a sitting
Register the globals class, write one C++ attribute set (GAS gives you no choice there), then reparent to ACrimsonAbilityCharacter and ACrimsonAbilityPlayerState, grant a CrimsonAbilitySet, bind input by tag, and activate. Cooldowns, costs, activation groups and replication are already handled — the Quick Start goes from empty project to a firing, cooling-down ability without you writing any of that plumbing.
Make this fireball different, not every fireball
Author an augment against an ability's contract: pick the slot, set the mutation, add optional event-driven actions. Equipping it through the ASC mutates that character's live ability spec — more projectiles, a different damage type, a changed cooldown — and unequipping restores it. Slots are typed by tag and split into a fixed pool and a temp pool for transient grants, and lifetimes cover the rest: until a combo step ends, for N uses, for a number of seconds, or permanent. A socketed rune or gem system is one thing you can build on that; so is a talent that upgrades a single skill. Your ability Blueprint never knows augments exist.
Author combos like a designer, debug them like an engineer
Chain whole abilities in a combo graph asset — branch on input, direction, or hold time. Because every step is a real UCrimsonGameplayAbility, each one keeps its own costs, cooldowns, and effects. The combo dev-tools window shows the active graph, the current step, and why a transition did or didn't fire.
Technical details
- Engine
- UE 5.8
- Platforms
- Windows, Mac, Linux
- Blueprint-ready
- Yes
- C++ required
- Yes
- Network replicated
- Yes
- Dependencies
- CrimsonCommon, GameplayAbilities, GameplayTasks, GameplayTags, EnhancedInput, DeveloperSettings, NetCore
- Last updated
- August 2026
Frequently asked questions
Do I need to know GAS already?
Do I need C++ to use it?
FGameplayAttributeData, which is a GAS constraint rather than a plugin one — so defining health, stamina or mana means one C++ class, and the Quick Start walks through the complete file. Two smaller things are also native-only: assigning a tag relationship mapping, and the combo system's Set Move Input Provider (it takes a TFunction, which has no Blueprint representation — direction-agnostic combos work without it). Everything downstream is Blueprint: abilities, augments, contracts, combo graphs, phase abilities, costs, clamping via effects, and binding UI to attribute changes.Can a Blueprint-only project use it?
Does it work in multiplayer?
Is there any required setup beyond enabling the plugin?
Config/DefaultGame.ini (AbilitySystemGlobalsClassName=/Script/CrimsonAbilitySystem.CrimsonAbilitySystemGlobals). Without it MakeEffectContext returns the engine context instead of FCrimsonGameplayEffectContext and every feature that reads Crimson context data breaks. It's step 1 of the Quick Start.Is the combo system mandatory?
bEnableComboSystem switch in Project Settings. The ASC, ability shapes, costs, augments, contracts, effect components and game phases all work without ever turning it on.Does it depend on other Crimson plugins?
CrimsonAbilitySet) live there, so other plugins can grant abilities without depending on this one. Pair it with CrimsonInput for tag-driven ability input binding, but nothing requires it.How does it relate to the free CrimsonCommon foundation?
Ship GAS features, not GAS plumbing
Reparent two classes, grant an ability set, and you're activating abilities with cooldowns and replication handled. Then layer in augments, combos, and phases as your game grows.
Pricing
CrimsonAbilitySystem is sold on Fab under Epic’s two standard licenses — both include the full plugin, source, and updates.
Completes your setup
Built on the free CrimsonCommon foundation, so it pairs cleanly with the rest of the suite:
Replicated, GAS-native skill trees with a two-graph editor.
- Two-Graph Editor
- Material Splines
- Server-Authoritative
- Atomic Respec & Loadouts
Equipment slots that grant abilities and spawn gear.
- Slot-Based Equipping
- Grants Ability Sets
- Spawns Visual Actors
- Interface-Decoupled
Tag-driven Enhanced Input with GAS ability binding.
- Ability Input Binding
- Per-Player Rebinding
- Settings Modifiers
- CommonUI Actions