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:
UnrealEditor-Cmd.exe MyGame.uproject -run=RSNetAudit -FailOn=ErrorReports 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.
| Option | Default | Meaning |
|---|---|---|
-FailOn=Error|Warning|None | Error | Which findings make the exit code 1 |
-IncludeEngine | off | Also scan engine and marketplace classes |
-Out=<dir> | Saved/RSNetAudit | Report folder |
-MinPSRate=<n> | 30 | PlayerState update rate below which PS-01 warns |
Checks
| Id | Severity | What it finds | Guide |
|---|---|---|---|
| GA-01 | Warning / Info | Abilities that are ServerInitiated, or ServerOnly / LocalOnly without triggers | Ability fires twice |
| GA-02 | Warning | Replicate Input Directly turned on | Ability fires twice |
| GA-03 | Error | Cooldown effect that is Instant, or grants no tags, so it never blocks | Cost and cooldown |
| GA-04 | Warning | Cost effect with a duration, or with no modifiers | Cost and cooldown |
| GA-05 | Warning | Blueprint ability that commits after a latent node (Delay, PlayMontageAndWait, WaitTargetData...) | Cost and cooldown |
| PS-01 | Warning | PlayerState with an ASC and a low net update frequency | ASC on PlayerState |
| PS-02 | Error | ASC on a PlayerState that does not replicate | ASC on PlayerState |
| PS-03 | Error / Warning | Player ASC in Minimal (breaks prediction) or Full (bandwidth) replication mode | ASC on PlayerState |
| AS-01 | Info | Attribute that does not replicate | Cost and cooldown |
| AS-02 | Warning | Replicated attribute without an OnRep, or an OnRep without GAMEPLAYATTRIBUTE_REPNOTIFY | Cost and cooldown |
| AS-03 | Warning | Attribute registered without REPNOTIFY_Always | Cost 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
FindOrAddSectiononly 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.Runconsole command, or the-run=RSNetAuditcommandlet with a CI exit code. - Markdown and HTML reports in
Saved/RSNetAudit/, each finding linked to a guide.