Show / Hide Table of Contents

Class GameNetworkManager

Handles game-specific networking management (cheat detection, bandwidth management, etc.).

Inheritance
System.Object
UObject
Actor
Info
GameNetworkManager
Inherited Members
Info.SpriteComponent
Actor.K2_OnBecomeViewTarget
Actor.K2_OnEndViewTarget
Actor.K2_OnReset
Actor.ReceiveActorBeginCursorOver
Actor.ReceiveActorBeginOverlap
Actor.ReceiveActorEndCursorOver
Actor.ReceiveActorEndOverlap
Actor.ReceiveActorOnClicked
Actor.ReceiveActorOnInputTouchBegin
Actor.ReceiveActorOnInputTouchEnd
Actor.ReceiveActorOnInputTouchEnter
Actor.ReceiveActorOnInputTouchLeave
Actor.ReceiveActorOnReleased
Actor.ReceiveAnyDamage
Actor.ReceiveBeginPlay
Actor.ReceiveDestroyed
Actor.ReceiveEndPlay
Actor.ReceiveHit
Actor.ReceivePointDamage
Actor.ReceiveRadialDamage
Actor.ReceiveTick
Actor.UserConstructionScript
Actor.ActorHasTag(Name)
Actor.AddComponent(Name, Boolean, Transform, UObject)
Actor.AddTickPrerequisiteActor(Actor)
Actor.AddTickPrerequisiteComponent(ActorComponent)
Actor.DetachRootComponentFromParent(Boolean)
Actor.DisableInput(PlayerController)
Actor.EnableInput(PlayerController)
Actor.FlushNetDormancy()
Actor.ForceNetUpdate()
Actor.GetActorBounds(Boolean)
Actor.GetActorEnableCollision()
Actor.GetActorEyesViewPoint()
Actor.GetActorForwardVector()
Actor.GetActorLabel()
Actor.GetActorRelativeScale3D()
Actor.GetActorRightVector()
Actor.GetActorScale3D()
Actor.GetActorTickInterval()
Actor.GetActorTimeDilation()
Actor.GetActorUpVector()
Actor.GetAllChildActors(Boolean)
Actor.GetAttachedActors()
Actor.GetAttachParentActor()
Actor.GetAttachParentSocketName()
Actor.GetComponentByClass(SubclassOf<ActorComponent>)
Actor.GetComponentsByClass(SubclassOf<ActorComponent>)
Actor.GetComponentsByTag(SubclassOf<ActorComponent>, Name)
Actor.GetDistanceTo(Actor)
Actor.GetDotProductTo(Actor)
Actor.GetFolderPath(Name)
Actor.GetGameTimeSinceCreation()
Actor.GetHorizontalDistanceTo(Actor)
Actor.GetHorizontalDotProductTo(Actor)
Actor.GetInputAxisKeyValue(Key)
Actor.GetInputAxisValue(Name)
Actor.GetInputVectorAxisValue(Key)
Actor.GetInstigator()
Actor.GetInstigatorController()
Actor.GetLifeSpan()
Actor.GetLocalRole()
Actor.GetOverlappingActors(SubclassOf<Actor>)
Actor.GetOverlappingComponents()
Actor.GetOwner()
Actor.GetParentActor()
Actor.GetParentComponent()
Actor.GetRemoteRole()
Actor.GetSquaredDistanceTo(Actor)
Actor.GetTickableWhenPaused()
Actor.GetTransform()
Actor.GetVelocity()
Actor.GetVerticalDistanceTo(Actor)
Actor.HasAuthority()
Actor.IsActorBeingDestroyed()
Actor.IsActorTickEnabled()
Actor.IsChildActor()
Actor.IsEditable()
Actor.IsHiddenEd()
Actor.IsHiddenEdAtStartup()
Actor.IsOverlappingActor(Actor)
Actor.IsSelectable()
Actor.IsTemporarilyHiddenInEditor(Boolean)
Actor.K2_AddActorLocalOffset(Vector, Boolean, Boolean)
Actor.K2_AddActorLocalRotation(Rotator, Boolean, Boolean)
Actor.K2_AddActorLocalTransform(Transform, Boolean, Boolean)
Actor.K2_AddActorWorldOffset(Vector, Boolean, Boolean)
Actor.K2_AddActorWorldRotation(Rotator, Boolean, Boolean)
Actor.K2_AddActorWorldTransform(Transform, Boolean, Boolean)
Actor.K2_AttachRootComponentTo(SceneComponent, Name, Byte, Boolean)
Actor.K2_AttachRootComponentToActor(Actor, Name, Byte, Boolean)
Actor.K2_AttachToActor(Actor, Name, EAttachmentRule, EAttachmentRule, EAttachmentRule, Boolean)
Actor.K2_AttachToComponent(SceneComponent, Name, EAttachmentRule, EAttachmentRule, EAttachmentRule, Boolean)
Actor.K2_DestroyActor()
Actor.K2_DestroyComponent(ActorComponent)
Actor.K2_DetachFromActor(EDetachmentRule, EDetachmentRule, EDetachmentRule)
Actor.K2_GetActorLocation()
Actor.K2_GetActorRotation()
Actor.K2_GetRootComponent()
Actor.K2_SetActorLocation(Vector, Boolean, Boolean)
Actor.K2_SetActorLocationAndRotation(Vector, Rotator, Boolean, Boolean)
Actor.K2_SetActorRelativeLocation(Vector, Boolean, Boolean)
Actor.K2_SetActorRelativeRotation(Rotator, Boolean, Boolean)
Actor.K2_SetActorRelativeTransform(Transform, Boolean, Boolean)
Actor.K2_SetActorRotation(Rotator, Boolean)
Actor.K2_SetActorTransform(Transform, Boolean, Boolean)
Actor.K2_TeleportTo(Vector, Rotator)
Actor.MakeMIDForMaterial(MaterialInterface)
Actor.MakeNoise(Single, Pawn, Vector, Single, Name)
Actor.PrestreamTextures(Single, Boolean, Int32)
Actor.RemoveTickPrerequisiteActor(Actor)
Actor.RemoveTickPrerequisiteComponent(ActorComponent)
Actor.SetActorEnableCollision(Boolean)
Actor.SetActorHiddenInGame(Boolean)
Actor.SetActorLabel(String, Boolean)
Actor.SetActorRelativeScale3D(Vector)
Actor.SetActorScale3D(Vector)
Actor.SetActorTickEnabled(Boolean)
Actor.SetActorTickInterval(Single)
Actor.SetFolderPath(Name)
Actor.SetIsTemporarilyHiddenInEditor(Boolean)
Actor.SetLifeSpan(Single)
Actor.SetNetDormancy(Byte)
Actor.SetOwner(Actor)
Actor.SetReplicateMovement(Boolean)
Actor.SetReplicates(Boolean)
Actor.SetTickableWhenPaused(Boolean)
Actor.SetTickGroup(Byte)
Actor.SnapRootComponentTo(Actor, Name)
Actor.TearOff()
Actor.WasRecentlyRendered(Single)
Actor.PrimaryActorTick
Actor.bHidden
Actor.bNetTemporary
Actor.bNetStartup
Actor.bOnlyRelevantToOwner
Actor.bAlwaysRelevant
Actor.bReplicateMovement
Actor.bTearOff
Actor.bExchangedRoles
Actor.bNetLoadOnClient
Actor.bNetUseOwnerRelevancy
Actor.bRelevantForNetworkReplays
Actor.bReplayRewindable
Actor.bAllowTickBeforeBeginPlay
Actor.bAutoDestroyWhenFinished
Actor.bBlockInput
Actor.bCanBeDamaged
Actor.bCollideWhenPlacing
Actor.bFindCameraComponentWhenViewTarget
Actor.bGenerateOverlapEventsDuringLevelStreaming
Actor.bIgnoresOriginShifting
Actor.bEnableAutoLODGeneration
Actor.bIsEditorOnlyActor
Actor.bActorSeamlessTraveled
Actor.bReplicates
Actor.bCanBeInCluster
Actor.bAllowReceiveTickEventOnDedicatedServer
Actor.bActorEnableCollision
Actor.bActorIsBeingDestroyed
Actor.RemoteRole
Actor.ReplicatedMovement
Actor.InitialLifeSpan
Actor.CustomTimeDilation
Actor.AttachmentReplication
Actor.Owner
Actor.NetDriverName
Actor.Role
Actor.NetDormancy
Actor.AutoReceiveInput
Actor.InputPriority
Actor.InputComponent
Actor.NetCullDistanceSquared
Actor.NetTag
Actor.NetUpdateFrequency
Actor.MinNetUpdateFrequency
Actor.NetPriority
Actor.Instigator
Actor.Children
Actor.RootComponent
Actor.PivotOffset
Actor.ControllingMatineeActors
Actor.GroupActor
Actor.SpriteScale
Actor.FolderPath
Actor.bHiddenEd
Actor.bIsEditorPreviewActor
Actor.bHiddenEdLayer
Actor.bHiddenEdLevel
Actor.bLockLocation
Actor.bActorLabelEditable
Actor.bEditable
Actor.bListedInSceneOutliner
Actor.bHiddenEdTemporary
Actor.InstanceComponents
Actor.BlueprintCreatedComponents
UObject.TransientPackage
UObject.CastTo<T>(UObject)
UObject.CastTo(UObject, Type)
UObject.RemoveObject(UObject)
UObject.MakeObjectArrayField<T>(NativeArray*)
UObject.NotImplemented<T>()
UObject.Construct()
UObject.GetHashCode()
UObject.GetName()
UObject.ToString()
UObject.Name
UObject._None
UObject.None
UObject.ObjPointer
UObject.LoadObjectFromClass(Class, UObject, String, String, LoadFlags, PackageMap, Boolean)
UObject.LoadClass(Class, UObject, String, String, LoadFlags, PackageMap)
UObject.GetPropertyFor<T>(Name)
UObject.ExecuteUbergraph
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
Namespace: UE4.Engine
Assembly: UE4DotNet.dll
Syntax
public class GameNetworkManager : Info

Properties

| Improve this Doc View Source

AdjustedNetSpeed

Current adjusted net speed - Used for dynamically managing netspeed for listen servers

Declaration
public int AdjustedNetSpeed { get; set; }
Property Value
Type Description
System.Int32
| Improve this Doc View Source

BadPingThreshold

The point we determine the server is either delaying packets or has bad upstream

Declaration
public int BadPingThreshold { get; set; }
Property Value
Type Description
System.Int32
| Improve this Doc View Source

bHasStandbyCheatTriggered

Declaration
public bool bHasStandbyCheatTriggered { get; set; }
Property Value
Type Description
System.Boolean
| Improve this Doc View Source

bIsStandbyCheckingEnabled

Declaration
public bool bIsStandbyCheckingEnabled { get; set; }
Property Value
Type Description
System.Boolean
| Improve this Doc View Source

bMovementTimeDiscrepancyDetection

Declaration
public bool bMovementTimeDiscrepancyDetection { get; set; }
Property Value
Type Description
System.Boolean
| Improve this Doc View Source

bMovementTimeDiscrepancyForceCorrectionsDuringResolution

Declaration
public bool bMovementTimeDiscrepancyForceCorrectionsDuringResolution { get; set; }
Property Value
Type Description
System.Boolean
| Improve this Doc View Source

bMovementTimeDiscrepancyResolution

Declaration
public bool bMovementTimeDiscrepancyResolution { get; set; }
Property Value
Type Description
System.Boolean
| Improve this Doc View Source

bUseDistanceBasedRelevancy

Declaration
public bool bUseDistanceBasedRelevancy { get; set; }
Property Value
Type Description
System.Boolean
| Improve this Doc View Source

CLIENTADJUSTUPDATECOST

CLIENTADJUSTUPDATECOST is the bandwidth cost in bytes of sending a client adjustment update.

Declaration
public float CLIENTADJUSTUPDATECOST { get; set; }
Property Value
Type Description
System.Single
Remarks

180 is greater than the actual cost, but represents a tweaked value reserving enough bandwidth for other updates sent to the client. Increase this value to reduce client adjustment update frequency, or if the amount of data sent in the clientadjustment() call increases

| Improve this Doc View Source

ClientAuthorativePosition

Declaration
public bool ClientAuthorativePosition { get; set; }
Property Value
Type Description
System.Boolean
| Improve this Doc View Source

ClientErrorUpdateRateLimit

Minimum delay between the server sending error corrections to a client, in seconds.

Declaration
public float ClientErrorUpdateRateLimit { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

ClientNetSendMoveDeltaTime

Declaration
public float ClientNetSendMoveDeltaTime { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

ClientNetSendMoveDeltaTimeStationary

ClientNetSendMoveDeltaTimeStationary is used when players are determined to not be moving or changing their view. See ClientNetSendMoveDeltaTime for more info.

Declaration
public float ClientNetSendMoveDeltaTimeStationary { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

ClientNetSendMoveDeltaTimeThrottled

ClientNetSendMoveDeltaTimeThrottled is used in place of ClientNetSendMoveDeltaTime when player count is high or net speed is low. See ClientNetSendMoveDeltaTime for more info.

Declaration
public float ClientNetSendMoveDeltaTimeThrottled { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

ClientNetSendMoveThrottleAtNetSpeed

When player net speed (CurrentNetSpeed, based on ConfiguredInternetSpeed or ConfiguredLanSpeed) is less than or equal to this amount, ClientNetSendMoveDeltaTimeThrottled is used instead of ClientNetSendMoveDeltaTime.

Declaration
public int ClientNetSendMoveThrottleAtNetSpeed { get; set; }
Property Value
Type Description
System.Int32
| Improve this Doc View Source

ClientNetSendMoveThrottleOverPlayerCount

When player count is greater than this amount, ClientNetSendMoveDeltaTimeThrottled is used instead of ClientNetSendMoveDeltaTime.

Declaration
public int ClientNetSendMoveThrottleOverPlayerCount { get; set; }
Property Value
Type Description
System.Int32
| Improve this Doc View Source

DefaultObject

Get UE4 Default Object for this Class

Declaration
public static GameNetworkManager DefaultObject { get; }
Property Value
Type Description
GameNetworkManager
| Improve this Doc View Source

JoinInProgressStandbyWaitTime

The amount of time to wait before checking a connection for standby issues

Declaration
public float JoinInProgressStandbyWaitTime { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

LastNetSpeedUpdateTime

Last time netspeed was updated for server (by client entering or leaving)

Declaration
public float LastNetSpeedUpdateTime { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

MaxClientForcedUpdateDuration

MaxClientForcedUpdateDuration is the maximum time duration over which the server will force updates, after MAXCLIENTUPDATEINTERVAL is initially exceeded.

Declaration
public float MaxClientForcedUpdateDuration { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

MAXCLIENTUPDATEINTERVAL

MAXCLIENTUPDATEINTERVAL is the maximum time between movement updates from the client before the server forces an update.

Declaration
public float MAXCLIENTUPDATEINTERVAL { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

MaxDynamicBandwidth

Maximum bandwidth dynamically set per connection

Declaration
public int MaxDynamicBandwidth { get; set; }
Property Value
Type Description
System.Int32
| Improve this Doc View Source

MaxMoveDeltaTime

MaxMoveDeltaTime is the default maximum time delta of CharacterMovement ServerMoves. Should be less than or equal to MAXCLIENTUPDATEINTERVAL, otherwise server will interfere by forcing position updates.

Declaration
public float MaxMoveDeltaTime { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

MAXNEARZEROVELOCITYSQUARED

MAXNEARZEROVELOCITYSQUARED is the square of the max velocity that is considered zero (not corrected) in net play

Declaration
public float MAXNEARZEROVELOCITYSQUARED { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

MAXPOSITIONERRORSQUARED

MAXPOSITIONERRORSQUARED is the square of the max position error that is accepted (not corrected) in net play

Declaration
public float MAXPOSITIONERRORSQUARED { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

MinDynamicBandwidth

Minimum bandwidth dynamically set per connection

Declaration
public int MinDynamicBandwidth { get; set; }
Property Value
Type Description
System.Int32
| Improve this Doc View Source

MovementTimeDiscrepancyDriftAllowance

Accepted drift in clocks between client and server as a percent per second allowed.

Declaration
public float MovementTimeDiscrepancyDriftAllowance { get; set; }
Property Value
Type Description
System.Single
Remarks

0.0 is "no forgiveness" and all logic would run on raw values, no tampering on the server side. 0.02 would be a 2% per second difference "forgiven" - if the time discrepancy in a given second was less than 2%, the error handling/detection code effectively ignores it.

Increasing this value above 0% lessens the chance of false positives on time discrepancy (burst packet loss, performance hitches), but also means anyone tampering with their client time below that percent will not be detected and no resolution action will be taken, and anyone above that threshold will still gain the advantage of this % of time boost (if running at 10% speed-up and this value is 0.05 or 5% allowance, they would only be resolved down to a 5% speed boost).

Time discrepancy detection code DOES keep track of LifetimeRawTimeDiscrepancy, which is unaffected by this drift allowance, so cheating below DriftAllowance percent could be tracked and acted on outside of an individual game. For example, if DriftAllowance was 0.05 (meaning we're not going to actively prevent any cheating below 5% boosts to ensure less false positives for normal players), we could still post-process analytics of the game showing that Player X regularly runs at 4% speed boost and take action.

| Improve this Doc View Source

MovementTimeDiscrepancyMaxTimeMargin

Maximum time client can be ahead before triggering movement time discrepancy detection/resolution (if enabled).

Declaration
public float MovementTimeDiscrepancyMaxTimeMargin { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

MovementTimeDiscrepancyMinTimeMargin

Maximum time client can be behind.

Declaration
public float MovementTimeDiscrepancyMinTimeMargin { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

MovementTimeDiscrepancyResolutionRate

During time discrepancy resolution, we "pay back" the time discrepancy at this rate for future moves until total error is zero.

Declaration
public float MovementTimeDiscrepancyResolutionRate { get; set; }
Property Value
Type Description
System.Single
Remarks

1.0 = 100% resolution rate, meaning the next X ServerMoves from the client are fully paying back the time, 0.5 = 50% resolution rate, meaning future ServerMoves will spend 50% of tick continuing to move the character and 50% paying back. Lowering from 100% could be used to produce less severe/noticeable corrections, although typically we would want to correct the client as quickly as possible.

| Improve this Doc View Source

MoveRepSize

Average size of replicated move packet (ServerMove() packet size) from player

Declaration
public float MoveRepSize { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

PercentForBadPing

The percentage of clients with bad ping before triggering the standby code

Declaration
public float PercentForBadPing { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

PercentMissingForRxStandby

The percentage of clients missing RX data before triggering the standby code

Declaration
public float PercentMissingForRxStandby { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

PercentMissingForTxStandby

The percentage of clients missing TX data before triggering the standby code

Declaration
public float PercentMissingForTxStandby { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

StandbyRxCheatTime

The amount of time without packets before triggering the cheat code

Declaration
public float StandbyRxCheatTime { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

StandbyTxCheatTime

The amount of time without packets before triggering the cheat code

Declaration
public float StandbyTxCheatTime { get; set; }
Property Value
Type Description
System.Single
| Improve this Doc View Source

StaticClass

Get UE4 Class

Declaration
public static Class StaticClass { get; }
Property Value
Type Description
Class
| Improve this Doc View Source

TotalNetBandwidth

Total available bandwidth for listen server, split dynamically across net connections

Declaration
public int TotalNetBandwidth { get; set; }
Property Value
Type Description
System.Int32

Methods

| Improve this Doc View Source

New(UObject, Name)

Spawn an object of this class

Declaration
public static GameNetworkManager New(UObject obj = null, Name name = default(Name))
Parameters
Type Name Description
UObject obj
Name name
Returns
Type Description
GameNetworkManager

Operators

| Improve this Doc View Source

Implicit(IntPtr to GameNetworkManager)

Convert from IntPtr to UObject

Declaration
public static implicit operator GameNetworkManager(IntPtr p)
Parameters
Type Name Description
System.IntPtr p
Returns
Type Description
GameNetworkManager
  • Improve this Doc
  • View Source
Back to top Generated by DocFX