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 for combat: an extended ability system component, four ready-made ability shapes, pluggable costs, a data-asset augment system, server-authoritative game phases and an optional graph-authored combo system. Standalone, with only engine plugins. Designers work in data and Blueprint; attributes stay C++, as GAS requires.
Why CrimsonAbilitySystem
A GAS foundation layer, plus the systems action RPGs actually ship: augments, combos, phases, and the tooltip layer that explains them.
An ASC that does the busywork
UCrimsonAbilitySystemComponent extends the engine ASC with tag-driven input, 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 declares the property tags an ability reads, plus class slots, object slots, configuration structs and augment events it exposes. Editors populate dropdowns from the contract, not free-text pickers, and abilities read values with equipped augments folded in: data-driven tuning without string typos.
Augments change one ability instance
A UCrimsonAbilityAugment attaches to a single ability spec: two characters, same ability, different augments, and the asset never changes. A mutation transforms a property on read (+15% crit for this skill), an action fires on an event tag, a listener accumulates across events.
Combos as graphs, not montage scripts
Optional and off by default. Flip one switch and each combo step becomes its own gameplay ability, chained by a UCrimsonComboGraphAsset into branching sequences: light-light-heavy, charge attacks, directional finishers. The owning client predicts transitions; the server validates them inside a ping-tolerant window.
Modifiers, global effects, phases & travel
Tag-based modifiers adjust ability properties at runtime, like a shrine that halves every fire cooldown for 30 seconds. UCrimsonGlobalAbilitySystem applies an ability or effect to every ASC at once, UCrimsonGamePhaseSubsystem drives server-authoritative phase flow, and a state-carrier subsystem snapshots the ASC across a level transition.
A closer look
One working ability, end to end, in a sitting
A firing, cooling-down ability without writing the plumbing: register the globals class, write one C++ attribute set (GAS gives you no choice there), reparent your Player State to ACrimsonAbilityPlayerState, grant a CrimsonAbilitySet, bind input by tag, activate.
- Cooldowns, costs, activation groups and replication are already handled
- The Quick Start ends with the ability verified from a client
Make this fireball different, not every fireball
Author an augment against an ability's contract and equip it through the ASC. That character's live ability spec mutates (more projectiles, a different damage type, a changed cooldown), and unequipping restores it. Your ability Blueprint never knows augments exist.
- Lifetimes: until a combo step or combo ends, for N uses, for seconds, or permanent
- Grant an augment before its ability exists; the ASC equips it onto every compatible ability, now or later
- Authored in a dedicated Augment Editor with a palette, an ordered stack and live validation
- Build socketed runes and gems, or a talent that upgrades a single skill, on top
Author combos like a designer, debug them like an engineer
Chain whole abilities in a combo graph asset, branching on input, direction or hold time. Every step is a real UCrimsonGameplayAbility, so each keeps its own costs, cooldowns and effects.
- Windows are authored numbers scaled by play rate, not animation notifies
- A missed notify on a dedicated server cannot desync the chain
- Dev-tools window shows the active graph, the current step, and why a transition did or didn't fire
One place to author what the player actually sees
An ability's icon, display name, description and subtitle live on the ability itself as instanced Display Data, so every HUD slot, skill tree node and tooltip you build reads one source instead of three lookup tables that drift when something is renamed.
- Augments describe themselves: a generated description free,
{Token}values resolved live from the data BuildAbilityTooltipassembles an ability plus its equipped augments; a preview build diffs a candidate before the player commitsOnAbilityPropertiesChangedtells your UI when to refresh instead of polling- Gameplay events at six lifecycle moments: activated, ended, cost, cooldown, succeed, failed
Technical details
- Engine
- UE 5.8
- Tested platforms
- Windows
- Blueprint-ready
- Yes
- C++ required
- Yes
- Network replicated
- Yes
- Dependencies
- GameplayAbilities, GameplayTasks, GameplayTags, EnhancedInput, GameFeatures, ModularGameplay, DeveloperSettings, NetCore, IrisCore
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 (SetTagRelationshipMapping is not Blueprint-callable and the property is not editable in Class Defaults, so a Blueprint-only project needs one small C++ base class to call it once; the mapping asset is fully data-authored), and the combo system's optional input providers, Set Move Input Provider and Set Modifier State Provider (direction-agnostic combos work without either; key modifiers work standalone, and named tag modifiers come through a hook that CrimsonCore binds for you). A custom UCrimsonGameplayAbilityExtension (a HUD slot or pawn facing without CrimsonCore) is a C++ subclass too. Everything downstream is Blueprint: abilities, augments, contracts, combo graphs, phase abilities, costs, clamping via effects, tooltips, 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?
UCrimsonGameplayAbilityExtension or bind the plugin's hooks.Do I need CrimsonCommon?
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
Each Crimson plugin runs standalone, so add only what your game needs:
Replicated, GAS-native skill trees with a two-graph editor.
- Two-Graph Editor
- Material Splines
- Server-Authoritative
- Atomic Respec & Loadouts
Keybound, paged action bars over a replicated binding store.
- Automatic Stance Pages
- Pluggable Providers
- Server-Validated Edits
- Layout Editor
- UI-Agnostic Snapshots
Equipment slots that grant abilities and spawn gear.
- Slot-Based Equipping
- Grants Abilities & Effects
- Spawns Visual Actors
- Interface-Decoupled
Tag-driven Enhanced Input with GAS ability binding.
- Ability Input Binding
- Per-Player Rebinding
- Settings Modifiers
- Input Clash Analyzer