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("Ignore="), Options.IgnoreFile);
22 FParse::Value(*Params, TEXT("MinPSRate="), Options.MinPlayerStateNetUpdateFrequency);
23 FParse::Value(*Params, TEXT("MinClientRate="), Options.MinClientRate);
24
25 FString FailOn = TEXT("Error");
26 FParse::Value(*Params, TEXT("FailOn="), FailOn);
27 if (FailOn.Equals(TEXT("None"), ESearchCase::IgnoreCase))
28 {
29 Options.FailOn = ERSAuditFailOn::None;
30 }
31 else if (FailOn.Equals(TEXT("Warning"), ESearchCase::IgnoreCase))
32 {
33 Options.FailOn = ERSAuditFailOn::Warning;
34 }
35
36 const FRSAuditResult Result = FRSNetAuditRunner::Run(Options);
37 return Result.FailingCount(Options.FailOn) > 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.