Let's talk

GAS Net Audit v0.1.0

Free Unreal Engine 5 editor plugin that scans your Gameplay Ability System setup for multiplayer mistakes: ability net policies, commit after latent nodes, cooldown and cost effects, triggers, PlayerState ASC replication, attribute OnReps and clamping, and bandwidth settings. Writes HTML, Markdown, JSON and JUnit reports with a fix for each finding and an inventory of the setup.

The problem
GAS multiplayer mistakes (wrong net policy, commit after a latent node, ASC replication mode, unreplicated or unclamped attributes, low bandwidth caps) look fine in PIE and show up under real latency, often as Steam reviews.
What it replaces
A manual review of every ability, effect and AttributeSet, or a QA pass at 150 ms. The nearest paid tool is a generic replication analyser at $30+; it does not know GAS.
What it saves
Our estimate: a day or more of review per project, and each bug it catches before launch instead of after. Runs in CI, so the same mistake cannot come back.
Who it is for
Teams shipping a multiplayer UE5 game on GAS, especially before a playtest, Early Access or a co-dev handover.

A free editor plugin that scans your Unreal Engine 5 Gameplay Ability System setup for the mistakes that break multiplayer, and writes a report with a fix for each one. MIT licensed, no sign-up, nothing leaves your machine.

Written for Unreal Engine 5.0 to 5.8. Compiled clean on 5.3 to 5.8 and run on a 5.7 project; 5.0 to 5.2 have their own code path but are not compiled yet. This is a preview release: compile it in your project first, and send problems to contact@reignancestudios.com.

Run it

  • Editor: Tools menu > Multiplayer > Run GAS Net Audit. A notification links to the report.
  • Console: RSNetAudit.Run
  • Headless / CI:
PowerShell
UnrealEditor-Cmd.exe MyGame.uproject -run=RSNetAudit -FailOn=Error

Reports go to Saved/RSNetAudit/ as Markdown and HTML (GASNetAudit-latest.html is always the newest). The commandlet exits with 1 when a finding at or above -FailOn exists, so a build can fail on new errors.

OptionDefaultMeaning
-FailOn=Error|Warning|NoneErrorWhich findings make the exit code 1
-IncludeEngineoffAlso scan engine and marketplace classes
-Out=<dir>Saved/RSNetAuditReport folder
-MinPSRate=<n>30PlayerState update rate below which PS-01 warns

Checks

IdSeverityWhat it findsGuide
GA-01Warning / InfoAbilities that are ServerInitiated, or ServerOnly / LocalOnly without triggersAbility fires twice
GA-02WarningReplicate Input Directly turned onAbility fires twice
GA-03ErrorCooldown effect that is Instant, or grants no tags, so it never blocksCost and cooldown
GA-04WarningCost effect with a duration, or with no modifiersCost and cooldown
GA-05WarningBlueprint ability that commits after a latent node (Delay, PlayMontageAndWait, WaitTargetData...)Cost and cooldown
PS-01WarningPlayerState with an ASC and a low net update frequencyASC on PlayerState
PS-02ErrorASC on a PlayerState that does not replicateASC on PlayerState
PS-03Error / WarningPlayer ASC in Minimal (breaks prediction) or Full (bandwidth) replication modeASC on PlayerState
AS-01InfoAttribute that does not replicateCost and cooldown
AS-02WarningReplicated attribute without an OnRep, or an OnRep without GAMEPLAYATTRIBUTE_REPNOTIFYCost and cooldown
AS-03WarningAttribute registered without REPNOTIFY_AlwaysCost and cooldown

AttributeSet checks read your C++ source (Source/ and project Plugins/), so they need the source on disk.

What it cannot see

Static checks miss runtime problems: an ability activated by both input and a trigger, C++ abilities that commit after a latent task, projectiles spawned on both client and server, InitAbilityActorInfo missing on the client, abilities granted twice on respawn. Test those at real latency with the free UE Latency Kit.

Help

The report tells you where the setup is wrong. If abilities still desync in packaged builds after you fix it, the cause is usually spread across the project. A Diagnostic finds it in two days.

Changelog

v0.1.0 (2026-10-30)

  • Tools menu entry compiles on UE 5.3: the two-argument FindOrAddSection only exists from 5.4.
  • First preview release: 11 checks (GA-01 to GA-05, PS-01 to PS-03, AS-01 to AS-03).
  • Runs from the Tools menu, the RSNetAudit.Run console command, or the -run=RSNetAudit commandlet with a CI exit code.
  • Markdown and HTML reports in Saved/RSNetAudit/, each finding linked to a guide.

Tutorials that use it

Still desyncing in packaged builds?

Free code fixes one symptom. A Diagnostic finds the cause across your project in two days.