Concept: Global System and Phases

Global ability system

UCrimsonGlobalAbilitySystem applies an ability or effect to every ASC in the world at once, and removes it just as broadly. Use it for world-wide states - a gravity change, a global buff during an event.

FunctionDoes
ApplyAbilityToAll / RemoveAbilityFromAllGrant or revoke an ability across every registered ASC.
ApplyEffectToAll / RemoveEffectFromAllApply or remove an effect across every registered ASC.

Game phases

A phase is an ability, which means it gets GAS lifetime, tags and replication for free. Phases are mutually exclusive within a tag branch: starting GamePhase.Playing.SuddenDeath ends GamePhase.Playing.Normal, but does not end the parent GamePhase.Playing.

Phases are authority-only
Every mutating call on UCrimsonGamePhaseSubsystem is BlueprintAuthorityOnly and does nothing on a client. Drive phases from the GameMode or GameState.

See also

  • How-To: Run Game Phases