Let's talk

RSNetAuditCommandlet.cpp

Source/RSNetAudit/Private/RSNetAuditCommandlet.cpp Raw Download ZIP

Click a line number to link it. Shift-click to select a range.

1// Copyright (c) 2026 Reignance Studios. MIT License, see LICENSE.
2
3#include "RSNetAuditCommandlet.h"
4
5#include "Misc/Parse.h"
6#include "RSNetAuditRunner.h"
7
8URSNetAuditCommandlet::URSNetAuditCommandlet()
9{
10 IsClient = false;
11 IsEditor = true;
12 IsServer = false;
13 LogToConsole = true;
14}
15
16int32 URSNetAuditCommandlet::Main(const FString& Params)
17{
18 FRSAuditOptions Options;
19 Options.bIncludeEngineClasses = FParse::Param(*Params, TEXT("IncludeEngine"));
20 FParse::Value(*Params, TEXT("Out="), Options.OutputDir);
21 FParse::Value(*Params, TEXT("MinPSRate="), Options.MinPlayerStateNetUpdateFrequency);
22
23 FString FailOn = TEXT("Error");
24 FParse::Value(*Params, TEXT("FailOn="), FailOn);
25
26 const FRSAuditResult Result = FRSNetAuditRunner::Run(Options);
27
28 if (FailOn.Equals(TEXT("None"), ESearchCase::IgnoreCase))
29 {
30 return 0;
31 }
32 int32 Failing = Result.Count(ERSAuditSeverity::Error);
33 if (FailOn.Equals(TEXT("Warning"), ESearchCase::IgnoreCase))
34 {
35 Failing += Result.Count(ERSAuditSeverity::Warning);
36 }
37 return Failing > 0 ? 1 : 0;
38}

Still desyncing in packaged builds?

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