UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FRPCDoSState Struct Reference

#include <RPCDoSDetection.h>

+ Inheritance diagram for FRPCDoSState:

Public Member Functions

virtual ~FRPCDoSState ()
 
virtual ENGINE_API void ApplyImpliedValues ()
 
bool HasHitQuota_Count (const FRPCDoSCounters(&PerPeriodHistory)[16], FRPCDoSCounters &InFrameCounter) const
 
bool HasHitQuota_Time (const FRPCDoSCounters(&PerPeriodHistory)[16], FRPCDoSCounters &InFrameCounter) const
 

Public Attributes

bool bLogEscalate = false
 
bool bSendEscalateAnalytics = false
 
bool bKickPlayer = false
 
bool bTrackRecentRPCs = false
 
int16 EscalateQuotaRPCsPerFrame = -1
 
int16 EscalateTimeQuotaMSPerFrame = -1
 
int16 EscalateQuotaRPCsPerPeriod = -1
 
int16 EscalateTimeQuotaMSPerPeriod = -1
 
int8 EscalateQuotaTimePeriod = -1
 
int8 EscalationCountTolerance = 1
 
int16 EscalationTimeToleranceMS = -1
 
int16 RPCRepeatLimitPerPeriod = -1
 
int16 RPCRepeatLimitMSPerPeriod = -1
 
int8 RPCRepeatLimitTimePeriod = -1
 
int16 CooloffTime = -1
 
int16 AutoEscalateTime = -1
 
double EscalateTimeQuotaSecsPerFrame = 0.0
 
double EscalateTimeQuotaSecsPerPeriod = 0.0
 
double RPCRepeatLimitSecsPerPeriod = 0.0
 
double EscalationTimeToleranceSeconds = 0.0
 

Detailed Description

Stores the RPC DoS detection state (either settings from the config file, or the active DDoS detection state)

Constructor & Destructor Documentation

◆ ~FRPCDoSState()

virtual FRPCDoSState::~FRPCDoSState ( )
inlinevirtual

Member Function Documentation

◆ ApplyImpliedValues()

void FRPCDoSState::ApplyImpliedValues ( )
virtual

Some configuration values are implicitly enabled by other configuration values - this function applies them

FRPCDoSState

Reimplemented in FRPCDoSStateConfig.

◆ HasHitQuota_Count()

bool FRPCDoSState::HasHitQuota_Count ( const FRPCDoSCounters(&)  PerPeriodHistory[16],
FRPCDoSCounters InFrameCounter 
) const

Whether or not the specified per-period counters have hit count escalation quota's specified by this state.

Parameters
PerPeriodHistoryThe per-period historical counters being compared against
InFrameCounterThe current frames counter for factoring-in to comparisons
Returns
Whether or not the count escalation quota has been hit

◆ HasHitQuota_Time()

bool FRPCDoSState::HasHitQuota_Time ( const FRPCDoSCounters(&)  PerPeriodHistory[16],
FRPCDoSCounters InFrameCounter 
) const

Whether or not the specified per-period counters have hit time escalation quota's specified by this state.

Parameters
PerPeriodHistoryThe per-period historical counters being compared against
InFrameCounterThe current frames counter for factoring-in to comparisons
Returns
Whether or not the time escalation quota has been hit

Member Data Documentation

◆ AutoEscalateTime

int16 FRPCDoSState::AutoEscalateTime = -1

The amount of time, in seconds, spent in the current DoS severity category before it automatically escalates to the next category

◆ bKickPlayer

bool FRPCDoSState::bKickPlayer = false

Whether or not to kick the player when they escalate to this state

◆ bLogEscalate

bool FRPCDoSState::bLogEscalate = false

Whether or not to log when escalating to this state

◆ bSendEscalateAnalytics

bool FRPCDoSState::bSendEscalateAnalytics = false

Whether or not to send analytics when escalating to this state

◆ bTrackRecentRPCs

bool FRPCDoSState::bTrackRecentRPCs = false

Whether or not to keep a temporary record of recent RPC's, for potential logging/analytics

◆ CooloffTime

int16 FRPCDoSState::CooloffTime = -1

The amount of time, in seconds, before the current DoS severity category cools off and de-escalates

◆ EscalateQuotaRPCsPerFrame

int16 FRPCDoSState::EscalateQuotaRPCsPerFrame = -1

Escalation limits - for escalating to a more strict FRPCDoSState The number of RPC's per frame before the next stage of DoS detection is triggered

◆ EscalateQuotaRPCsPerPeriod

int16 FRPCDoSState::EscalateQuotaRPCsPerPeriod = -1

The number of RPC's per EscalateQuotaPeriod before the next stage of DoS detection is triggered

◆ EscalateQuotaTimePeriod

int8 FRPCDoSState::EscalateQuotaTimePeriod = -1

The time period to use for determining RPC count and time escalation quotas (Max: 16)

◆ EscalateTimeQuotaMSPerFrame

int16 FRPCDoSState::EscalateTimeQuotaMSPerFrame = -1

The amount of time spent executing RPC's per frame, before the next stage of DoS detection is triggered

◆ EscalateTimeQuotaMSPerPeriod

int16 FRPCDoSState::EscalateTimeQuotaMSPerPeriod = -1

The amount of time spent executing RPC's per EscalateQuotaPeriod, before the next stage of DoS detection is triggered

◆ EscalateTimeQuotaSecsPerFrame

double FRPCDoSState::EscalateTimeQuotaSecsPerFrame = 0.0

Cached/converted values EscalateTimeQuotaMSPerFrame converted to seconds

◆ EscalateTimeQuotaSecsPerPeriod

double FRPCDoSState::EscalateTimeQuotaSecsPerPeriod = 0.0

EscalateTimeQuotaMSPerPeriod converted to seconds

◆ EscalationCountTolerance

int8 FRPCDoSState::EscalationCountTolerance = 1

Escalation monitoring - for setting thresholds for triggering analytics (does not affect escalation quota's and RPC limiting) The number of times this stage must be escalated to, before it is 'confirmed' as having been escalated to (for analytics)

◆ EscalationTimeToleranceMS

int16 FRPCDoSState::EscalationTimeToleranceMS = -1

The maximum time spent executing RPC's per frame, before this escalation stage is automatically 'confirmed' for analytics

◆ EscalationTimeToleranceSeconds

double FRPCDoSState::EscalationTimeToleranceSeconds = 0.0

EscalationTimeToleranceMS converted to seconds

◆ RPCRepeatLimitMSPerPeriod

int16 FRPCDoSState::RPCRepeatLimitMSPerPeriod = -1

The limit for the number of milliseconds a single RPC can spend executing, over the time period specified by RPCRepeatTimeLimitPeriod

◆ RPCRepeatLimitPerPeriod

int16 FRPCDoSState::RPCRepeatLimitPerPeriod = -1

RPC Execution limits - for preventing execution of specific RPC's, after they have reached a count/time limit The limit for the number of times a single RPC can be repeated, over the time period specified by RPCRepeatTimeLimitPeriod

◆ RPCRepeatLimitSecsPerPeriod

double FRPCDoSState::RPCRepeatLimitSecsPerPeriod = 0.0

RPCRepeatLimitMSPerPeriod converted to seconds

◆ RPCRepeatLimitTimePeriod

int8 FRPCDoSState::RPCRepeatLimitTimePeriod = -1

The time period to use for measuring excessive execution time for a single RPC (Max: 16)


The documentation for this struct was generated from the following files: