// Copyright (c) 2026 Reignance Studios. MIT License, see LICENSE. #include "RSNetAuditCommandlet.h" #include "Misc/Parse.h" #include "RSNetAuditRunner.h" URSNetAuditCommandlet::URSNetAuditCommandlet() { IsClient = false; IsEditor = true; IsServer = false; LogToConsole = true; } int32 URSNetAuditCommandlet::Main(const FString& Params) { FRSAuditOptions Options; Options.bIncludeEngineClasses = FParse::Param(*Params, TEXT("IncludeEngine")); FParse::Value(*Params, TEXT("Out="), Options.OutputDir); FParse::Value(*Params, TEXT("Ignore="), Options.IgnoreFile); FParse::Value(*Params, TEXT("MinPSRate="), Options.MinPlayerStateNetUpdateFrequency); FParse::Value(*Params, TEXT("MinClientRate="), Options.MinClientRate); FString FailOn = TEXT("Error"); FParse::Value(*Params, TEXT("FailOn="), FailOn); if (FailOn.Equals(TEXT("None"), ESearchCase::IgnoreCase)) { Options.FailOn = ERSAuditFailOn::None; } else if (FailOn.Equals(TEXT("Warning"), ESearchCase::IgnoreCase)) { Options.FailOn = ERSAuditFailOn::Warning; } const FRSAuditResult Result = FRSNetAuditRunner::Run(Options); return Result.FailingCount(Options.FailOn) > 0 ? 1 : 0; }