I am making a multiplayer game in UE 5.4.4 (built from source code). I have a menu for the clients, in which the basic idea is that upon hitting “Quick Play”, a matchmaking system similar to Apex Legends starts. The client joins a queue, and if the server finds 6 clients in the queue, it will start a game (it’s a 3v3 team death match).
Coming from little experience with multiplayer programming, I found that one way to implement this, and it seems like it’s very common, is to use the Beacons: OnlineBeaconHost, HostObject and Client. If I understand correctly, the Host manages a series of HostObjects. These HostObjects are what the Client beacons are going to be connecting to and interacting with. I find the architecture to be good and easy to understand, so I gave it a shot, and implemented my matchmaking lobby. I will provide the relevant .cpp functions for my problem:
ONLINE BEACON HOST:
ACodeBreakerOnlineBeaconHost::ACodeBreakerOnlineBeaconHost()
{
MatchmakingHostObject = nullptr;
BeaconState = EBeaconState::AllowRequests;
}
bool ACodeBreakerOnlineBeaconHost::InitHost()
{
// Initialize the beacon host
if (Super::InitHost())
{
// Create our host object - this is what clients will communicate with
MatchmakingHostObject = GetWorld()->SpawnActor<ACodeBreakerBeaconHostObject>();
if (MatchmakingHostObject)
{
RegisterHost(MatchmakingHostObject);
UE_LOG(LogTemp, Log, TEXT("CodeBreaker beacon host initialized successfully"));
UE_LOG(LogTemp, Log, TEXT("Server beacon host listening on port: %d"), ListenPort);
if (MatchmakingHostObject->GetBeaconState() == EBeaconState::AllowRequests) {
UE_LOG(LogTemp, Log, TEXT("Host object is accepting requests"));
}
return true;
}
else
{
UE_LOG(LogTemp, Error, TEXT("Failed to register CodeBreaker beacon host object"));
}
}
UE_LOG(LogTemp, Error, TEXT("Failed to initialize CodeBreaker beacon host"));
return false;
}
ONLINE BEACON HOST OBJECT:
ACodeBreakerBeaconHostObject::ACodeBreakerBeaconHostObject()
{
// Set the beacon client class to use for connections
//ClientBeaconActorClass = ACodeBreakerOnlineBeaconClient::StaticClass();
ClientBeaconActorClass = FindObject<UClass>(ANY_PACKAGE, TEXT("/Script/CodeBreaker.CodeBreakerOnlineBeaconClient"));
if (!ClientBeaconActorClass)
{
UE_LOG(LogTemp, Error, TEXT("ClientBeaconActorClass is null! This will cause spawning failures!"));
}
else
{
UE_LOG(LogTemp, Log, TEXT("ClientBeaconActorClass successfully set to: %s"), *ClientBeaconActorClass->GetName());
}
BeaconTypeName = TEXT("Matchmaking Beacon");
}
void ACodeBreakerBeaconHostObject::OnClientConnected(AOnlineBeaconClient* NewClientActor, UNetConnection* ClientConnection) {
Super::OnClientConnected(NewClientActor, ClientConnection);
UE_LOG(LogTemp, Log, TEXT("Client connected to beacon: %s"), *GetNameSafe(NewClientActor));
}
ONLINE BEACON CLIENT:
ACodeBreakerOnlineBeaconClient::ACodeBreakerOnlineBeaconClient()
{
bIsInMatchmakingQueue = false;
bReplicates = true;
bOnlyRelevantToOwner = false;
NetDriverName = FName(TEXT("BeaconNetDriver"));
}
void ACodeBreakerOnlineBeaconClient::OnConnected()
{
Super::OnConnected();
UE_LOG(LogTemp, Log, TEXT("Client connected to matchmaking beacon host"));
}
void ACodeBreakerOnlineBeaconClient::OnFailure()
{
Super::OnFailure();
UE_LOG(LogTemp, Warning, TEXT("Client failed to connect to matchmaking beacon host"));
// Reset matchmaking status
bIsInMatchmakingQueue = false;
}
bool ACodeBreakerOnlineBeaconClient::RequestJoinMatchmaking()
{
if (ConnectionState == EBeaconConnectionState::Open)
{
// If already connected, send the RPC request
ServerRequestJoinMatchmaking();
return true;
}
else
{
UE_LOG(LogTemp, Warning, TEXT("Can't join matchmaking: Not connected to server"));
return false;
}
}
bool ACodeBreakerOnlineBeaconClient::ServerRequestJoinMatchmaking_Validate()
{
// Simple validation - could add more checks here
return true;
}
void ACodeBreakerOnlineBeaconClient::ServerRequestJoinMatchmaking_Implementation()
{
// Get the host object from the connection we are on
ACodeBreakerBeaconHostObject* HostObject = Cast<ACodeBreakerBeaconHostObject>(GetNetDriver()->ServerConnection->OwningActor);
if (HostObject)
{
// Add this client to the queue
HostObject->AddPlayerToQueue(this);
}
else
{
UE_LOG(LogTemp, Error, TEXT("Failed to find CodeBreaker beacon host object"));
}
}
DEFAULT ENGINE.INI:
[/Script/Engine.NetworkSettings]
bEnablePushModelReplicatedProperties=True
n.VerifyPeer=False
p.EnableMultiplayerWorldOriginRebasing=False
[/Script/Engine.Engine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
+NetDriverDefinitions=(DefName="BeaconNetDriver",DriverClassName="OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
+NetDriverDefinitions=(DefName="DemoNetDriver",DriverClassName="OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
[/Script/OnlineSubsystemUtils.IpNetDriver]
MaxClientRate=100000
MaxInternetClientRate=100000
[OnlineSubsystem]
DefaultPlatformService=NULL
[/Script/OnlineSubsystemUtils.OnlineBeaconHost]
ListenPort=7787
BUILD.CS FILE:
public class CodeBreaker : ModuleRules
{
public CodeBreaker(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "UMG", "NetCore", "OnlineSubsystem", "OnlineSubsystemUtils"});
}
}
GAME INSTANCE CLASS:
UCodeBreakerGameInstance::UCodeBreakerGameInstance()
{
MatchmakingBeaconHost = nullptr;
MatchmakingBeaconClient = nullptr;
}
void UCodeBreakerGameInstance::Init()
{
Super::Init();
// For a dedicated server, automatically start the matchmaking service
UWorld* World = GetWorld();
if (World && (World->GetNetMode() == NM_DedicatedServer || World->GetNetMode() == NM_ListenServer))
{
StartMatchmakingService();
}
}
//
// SERVER FUNCTIONS
//
bool UCodeBreakerGameInstance::StartMatchmakingService()
{
UWorld* World = GetWorld();
if (!World)
{
UE_LOG(LogTemp, Error, TEXT("Failed to get World context when starting matchmaking service"));
return false;
}
// Only create if we don't already have one
if (!MatchmakingBeaconHost)
{
// Spawn the beacon host
MatchmakingBeaconHost = World->SpawnActor<ACodeBreakerOnlineBeaconHost>();
if (MatchmakingBeaconHost && MatchmakingBeaconHost->InitHost())
{
UE_LOG(LogTemp, Log, TEXT("Matchmaking service started successfully"));
return true;
}
else
{
UE_LOG(LogTemp, Error, TEXT("Failed to start matchmaking service"));
// Cleanup if initialization failed
if (MatchmakingBeaconHost)
{
MatchmakingBeaconHost->Destroy();
MatchmakingBeaconHost = nullptr;
}
return false;
}
}
return MatchmakingBeaconHost != nullptr;
}
//
// CLIENT FUNCTIONS
//
bool UCodeBreakerGameInstance::ConnectToMatchmakingServer(const FString& ServerAddress)
{
UWorld* World = GetWorld();
if (!World)
{
UE_LOG(LogTemp, Error, TEXT("Failed to get World context when connecting to matchmaking server"));
return false;
}
// Disconnect any existing connection first
DisconnectFromMatchmakingServer();
MatchmakingBeaconClient = World->SpawnActor<ACodeBreakerOnlineBeaconClient>();
if (MatchmakingBeaconClient)
{
// Initialize the connection to the server
FString BeaconAddress = ServerAddress.IsEmpty() ? TEXT("127.0.0.1") : ServerAddress;
FURL FinalAddress = FURL(nullptr, *BeaconAddress, ETravelType::TRAVEL_Absolute);
FinalAddress.Port = 7787;
// The InitClient function is from the parent AOnlineBeaconClient class
// It requires the FURL created above to initialize
if (MatchmakingBeaconClient->InitClient(FinalAddress))
{
UE_LOG(LogTemp, Log, TEXT("Connection attempted to matchmaking server at %s"), *BeaconAddress);
return true;
}
else
{
UE_LOG(LogTemp, Error, TEXT("Failed to attempt to connect to matchmaking server at %s"), *BeaconAddress);
DisconnectFromMatchmakingServer();
return false;
}
}
UE_LOG(LogTemp, Error, TEXT("Failed to create matchmaking client"));
return false;
}
Given all of this code, in my widget I do the following operations in order for the client to join the matchmaking system and then potentially join the queue:
I then test the game. I run it as a Listen Server with 2 windows open: the one in the editor is the server and the other one is the client. I do not touch the server at all, since I play on making it a dedicated server anyway, but cooking the game takes a while and I can’t do it all the time in a reasonable amount of time.
When testing, and if I filter for the logs that I specifically print in the code, I obtain the following results:
That warning log is executed on the client, it is the OnFailure function. Digging deeper into the logs, we can find the following piece of information:
Which I think means that the client beacon object cannot be created at runtime. I will also leave the full logs here:
LogDebuggerCommands: Repeating last play command: Selected Viewport
LogPlayLevel: PlayLevel: No blueprints needed recompiling
LogPlayLevel: Creating play world package: /Game/Polar/Maps/UEDPIE_0_PolarFacility_Example_Map_Sunset
LogPlayLevel: PIE: StaticDuplicateObject took: (0.040736s)
LogPlayLevel: PIE: Created PIE world by copying editor world from /Game/Polar/Maps/PolarFacility_Example_Map_Sunset.PolarFacility_Example_Map_Sunset to /Game/Polar/Maps/UEDPIE_0_PolarFacility_Example_Map_Sunset.PolarFacility_Example_Map_Sunset (0.040802s)
LogUObjectHash: Compacting FUObjectHashTables data took 2.62ms
LogNet: ReplicationDriverClass is null! Not using ReplicationDriver.
LogNetCore: DDoS detection status: detection enabled: 0 analytics enabled: 0
LogNet: InitBase IpNetDriver_16 (NetDriverDefinition BeaconNetDriver) using replication model Generic
LogInit: WinSock: Socket queue. Rx: 131072 (config 131072) Tx: 131072 (config 131072)
LogNet: Created socket for bind address: 0.0.0.0:7787
PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent)
LogNet: Name:IpNetDriver_16 Def:BeaconNetDriver IpNetDriver_16 IpNetDriver listening on port 7787
LogTemp: ClientBeaconActorClass successfully set to: CodeBreakerOnlineBeaconClient
LogTemp: CodeBreaker beacon host initialized successfully
LogTemp: Server beacon host listening on port: 7787
LogTemp: Host object is accepting requests
LogTemp: Matchmaking service started successfully
LogWorldMetrics: [UWorldMetricsSubsystem::Initialize]
LogRenderer: SceneCulling instance hierarchy is disabled as UseNanite(PCD3D_SM6) returned false, for scene: 'World /Game/Polar/Maps/UEDPIE_0_PolarFacility_Example_Map_Sunset.PolarFacility_Example_Map_Sunset'.
LogPlayLevel: PIE: World Init took: (0.001456s)
LogAudio: Display: Creating Audio Device: Id: 10, Scope: Unique, Realtime: True
LogAudioMixer: Display: Audio Mixer Platform Settings:
LogAudioMixer: Display: Sample Rate: 48000
LogAudioMixer: Display: Callback Buffer Frame Size Requested: 1024
LogAudioMixer: Display: Callback Buffer Frame Size To Use: 1024
LogAudioMixer: Display: Number of buffers to queue: 1
LogAudioMixer: Display: Max Channels (voices): 32
LogAudioMixer: Display: Number of Async Source Workers: 4
LogAudio: Display: AudioDevice MaxSources: 32
LogAudio: Display: Audio Spatialization Plugin: None (built-in).
LogAudio: Display: Audio Reverb Plugin: None (built-in).
LogAudio: Display: Audio Occlusion Plugin: None (built-in).
LogAudioMixer: Display: Initializing audio mixer using platform API: 'XAudio2'
LogAudioMixer: Display: Using Audio Hardware Device Auriculares (3- High Definition Audio Device)
LogAudioMixer: Display: Initializing Sound Submixes...
LogAudioMixer: Display: Creating Master Submix 'MasterSubmixDefault'
LogAudioMixer: Display: Creating Master Submix 'MasterReverbSubmixDefault'
LogAudioMixer: FMixerPlatformXAudio2::StartAudioStream() called. InstanceID=10
LogAudioMixer: Display: Output buffers initialized: Frames=1024, Channels=2, Samples=2048, InstanceID=10
LogAudioMixer: Display: Starting AudioMixerPlatformInterface::RunInternal(), InstanceID=10
LogAudioMixer: Display: FMixerPlatformXAudio2::SubmitBuffer() called for the first time. InstanceID=10
LogInit: FAudioDevice initialized with ID 10.
LogAudio: Display: Audio Device (ID: 10) registered with world 'PolarFacility_Example_Map_Sunset'.
LogAudioMixer: Initializing Audio Bus Subsystem for audio device with ID 10
LogLoad: Game class is 'CodeBreakerGameMode'
LogWorld: Bringing World /Game/Polar/Maps/UEDPIE_0_PolarFacility_Example_Map_Sunset.PolarFacility_Example_Map_Sunset up for play (max tick rate 60) at 2025.03.08-21.34.16
LogOnline: OSS: Created online subsystem instance for: :Context_11
LogWorld: Bringing up level for play took: 0.029833
LogNet: ReplicationDriverClass is null! Not using ReplicationDriver.
LogNetCore: DDoS detection status: detection enabled: 0 analytics enabled: 0
LogPushModel: PushModel HandleCreation is now enabled
LogNet: InitBase GameNetDriver (NetDriverDefinition GameNetDriver) using replication model Generic
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumConnections
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric Connections
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric GatherPrioritizeTimeMS
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric InPacketsClientAvg
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric InPacketsClientMax
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumberOfActiveActors
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumberOfFullyDormantActors
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumClientUpdateLevelVisibility
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumOpenChannels
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumReplicateActorCallsPerConAvg
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumSkippedObjectEmptyUpdates
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumTickingChannels
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric OutKBytes
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric OutNetGUIDKBytesSec
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric OutPacketsClientAvg
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric OutPacketsClientMax
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric ReplicateActorTimeMS
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric SatConnections
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric ServerReplicateActorTimeMS
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric SharedSerializationPropertyHit
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric SharedSerializationPropertyMiss
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric SharedSerializationRPCHit
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric SharedSerializationRPCMiss
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric OutgoingReliableMessageQueueMaxSize
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric IncomingReliableMessageQueueMaxSize
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric NumConnections
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric AvgPing
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InBunches
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InPackets
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InPacketsClientPerSecondAvg
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InPacketsClientPerSecondMax
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InPacketsClientPerSecondMin
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InPacketsLost
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InRate
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InRateClientAvg
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InRateClientMax
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InRateClientMin
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric MaxPacketOverhead
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric MaxPing
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric MinPing
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric NumClients
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric Connections
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutBunches
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutPackets
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutPacketsClientPerSecondAvg
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutPacketsClientPerSecondMax
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutPacketsClientPerSecondMin
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutPacketsLost
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutRate
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutRateClientAvg
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutRateClientMax
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutRateClientMin
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt0
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt1
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt2
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt3
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt4
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt5
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt6
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt7
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric ClosedConnectionsDueToReliableBufferOverflow
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric AddedConnections
LogInit: WinSock: Socket queue. Rx: 131072 (config 131072) Tx: 131072 (config 131072)
LogNet: Created socket for bind address: 0.0.0.0:17777
PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent)
LogNet: Name:GameNetDriver Def:GameNetDriver IpNetDriver_17 IpNetDriver listening on port 17777
LogViewport: Display: Viewport MouseLockMode Changed, LockOnCapture -> DoNotLock
LogViewport: Display: Viewport MouseCaptureMode Changed, CapturePermanently_IncludingInitialMouseDown -> NoCapture
PIE: Server logged in
PIE: Play in editor total start time 0,191 seconds.
LogWorldMetrics: [UWorldMetricsSubsystem::Initialize]
LogRenderer: SceneCulling instance hierarchy is disabled as UseNanite(PCD3D_SM6) returned false, for scene: 'World /Temp/Untitled_5.Untitled'.
LogPlayLevel: PIE: World Init took: (0.001177s)
LogAudio: Display: Creating Audio Device: Id: 11, Scope: Unique, Realtime: True
LogAudioMixer: Display: Audio Mixer Platform Settings:
LogAudioMixer: Display: Sample Rate: 48000
LogAudioMixer: Display: Callback Buffer Frame Size Requested: 1024
LogAudioMixer: Display: Callback Buffer Frame Size To Use: 1024
LogAudioMixer: Display: Number of buffers to queue: 1
LogAudioMixer: Display: Max Channels (voices): 32
LogAudioMixer: Display: Number of Async Source Workers: 4
LogAudio: Display: AudioDevice MaxSources: 32
LogAudio: Display: Audio Spatialization Plugin: None (built-in).
LogAudio: Display: Audio Reverb Plugin: None (built-in).
LogAudio: Display: Audio Occlusion Plugin: None (built-in).
LogAudioMixer: Display: Initializing audio mixer using platform API: 'XAudio2'
LogAudioMixer: Display: Using Audio Hardware Device Auriculares (3- High Definition Audio Device)
LogAudioMixer: Display: Initializing Sound Submixes...
LogAudioMixer: Display: Creating Master Submix 'MasterSubmixDefault'
LogAudioMixer: Display: Creating Master Submix 'MasterReverbSubmixDefault'
LogAudioMixer: FMixerPlatformXAudio2::StartAudioStream() called. InstanceID=11
LogAudioMixer: Display: Output buffers initialized: Frames=1024, Channels=2, Samples=2048, InstanceID=11
LogAudioMixer: Display: Starting AudioMixerPlatformInterface::RunInternal(), InstanceID=11
LogAudioMixer: Display: FMixerPlatformXAudio2::SubmitBuffer() called for the first time. InstanceID=11
LogInit: FAudioDevice initialized with ID 11.
LogAudio: Display: Audio Device (ID: 11) registered with world 'Untitled'.
LogAudioMixer: Initializing Audio Bus Subsystem for audio device with ID 11
LogSlate: Updating window title bar state: overlay mode, drag disabled, window buttons hidden, title bar hidden
LogGlobalStatus: UEngine::Browse Started Browse: "127.0.0.1:17777/Game/Polar/Maps/PolarFacility_Example_Map_Sunset"
LogNet: Browse: 127.0.0.1:17777/Game/Polar/Maps/PolarFacility_Example_Map_Sunset
LogPushModel: PushModel HandleCreation is now enabled
LogNet: InitBase PendingNetDriver (NetDriverDefinition GameNetDriver) using replication model Generic
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumConnections
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric Connections
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric GatherPrioritizeTimeMS
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric InPacketsClientAvg
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric InPacketsClientMax
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumberOfActiveActors
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumberOfFullyDormantActors
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumClientUpdateLevelVisibility
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumOpenChannels
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumReplicateActorCallsPerConAvg
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumSkippedObjectEmptyUpdates
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric NumTickingChannels
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric OutKBytes
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric OutNetGUIDKBytesSec
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric OutPacketsClientAvg
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric OutPacketsClientMax
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric ReplicateActorTimeMS
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric SatConnections
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric ServerReplicateActorTimeMS
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric SharedSerializationPropertyHit
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric SharedSerializationPropertyMiss
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric SharedSerializationRPCHit
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric SharedSerializationRPCMiss
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric OutgoingReliableMessageQueueMaxSize
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsCSV_Replication for metric IncomingReliableMessageQueueMaxSize
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric NumConnections
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric AvgPing
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InBunches
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InPackets
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InPacketsClientPerSecondAvg
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InPacketsClientPerSecondMax
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InPacketsClientPerSecondMin
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InPacketsLost
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InRate
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InRateClientAvg
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InRateClientMax
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric InRateClientMin
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric MaxPacketOverhead
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric MaxPing
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric MinPing
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric NumClients
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric Connections
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutBunches
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutPackets
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutPacketsClientPerSecondAvg
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutPacketsClientPerSecondMax
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutPacketsClientPerSecondMin
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutPacketsLost
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutRate
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutRateClientAvg
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutRateClientMax
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric OutRateClientMin
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt0
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt1
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt2
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt3
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt4
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt5
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt6
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric PingBucketInt7
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric ClosedConnectionsDueToReliableBufferOverflow
LogNet: Registering network metrics listener /Script/Engine.NetworkMetricsPerfCounters for metric AddedConnections
LogInit: WinSock: Socket queue. Rx: 32768 (config 32768) Tx: 32768 (config 32768)
LogNet: Created socket for bind address: 0.0.0.0:0
LogNet: IpConnection_16 setting maximum channels to: 32767
PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent)
LogHandshake: Stateless Handshake: NetDriverDefinition 'GameNetDriver' CachedClientID: 4
LogNet: Game client on port 17777, rate 100000
PIE: Client logged in
PIE: Play in editor total start time 0,311 seconds.
LogNet: NotifyAcceptingConnection accepted from: 127.0.0.1:57763
LogHandshake: SendConnectChallenge. Timestamp: 1.368264, Cookie: 255002055120100052021135125199077088056252147205100168189146
LogHandshake: Cached server SessionID: 0
LogHandshake: SendChallengeResponse. Timestamp: 1.368264, Cookie: 255002055120100052021135125199077088056252147205100168189146
LogNet: NotifyAcceptingConnection accepted from: 127.0.0.1:57763
LogHandshake: SendChallengeAck. InCookie: 255002055120100052021135125199077088056252147205100168189146
LogNet: Server accepting post-challenge connection from: 127.0.0.1:57763
LogNet: IpConnection_17 setting maximum channels to: 32767
PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent)
LogNet: NotifyAcceptedConnection: Name: PolarFacility_Example_Map_Sunset, TimeStamp: 03/08/25 21:34:17, [UNetConnection] RemoteAddr: 127.0.0.1:57763, Name: IpConnection_17, Driver: Name:GameNetDriver Def:GameNetDriver IpNetDriver_17, IsServer: YES, PC: NULL, Owner: NULL, UniqueId: INVALID
LogNet: AddClientConnection: Added client connection: [UNetConnection] RemoteAddr: 127.0.0.1:57763, Name: IpConnection_17, Driver: Name:GameNetDriver Def:GameNetDriver IpNetDriver_17, IsServer: YES, PC: NULL, Owner: NULL, UniqueId: INVALID
LogNet: UPendingNetGame::SendInitialJoin: Sending hello. [UNetConnection] RemoteAddr: 127.0.0.1:17777, Name: IpConnection_16, Driver: Name:PendingNetDriver Def:GameNetDriver IpNetDriver_18, IsServer: NO, PC: NULL, Owner: NULL, UniqueId: INVALID
LogNet: NotifyAcceptingChannel Control 0 server World /Game/Polar/Maps/UEDPIE_0_PolarFacility_Example_Map_Sunset.PolarFacility_Example_Map_Sunset: Accepted
LogNet: Remote platform little endian=1
LogNet: This platform little endian=1
LogOnline: OSS: Created online subsystem instance for: :Context_12
LogNet: Login request: ?Name=DESKTOP-1744OFS-0C37B9984BC8E42A3C753EA8D0D4E078 userId: NULL:DESKTOP-1744OFS-0C37B9984BC8E42A3C753EA8D0D4E078 platform: NULL
LogNet: Welcomed by server (Level: /Game/Polar/Maps/UEDPIE_0_PolarFacility_Example_Map_Sunset, Game: /Script/CodeBreaker.CodeBreakerGameMode)
LogLoad: LoadMap: 127.0.0.1:17777/Game/Polar/Maps/PolarFacility_Example_Map_Sunset?game=/Script/CodeBreaker.CodeBreakerGameMode
LogWorld: BeginTearingDown for /Temp/Untitled_5
LogWorld: UWorld::CleanupWorld for Untitled, bSessionEnded=true, bCleanupResources=true
LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated
LogWorldMetrics: [UWorldMetricsSubsystem::Deinitialize]
LogWorldMetrics: [UWorldMetricsSubsystem::Clear]
LogAudio: Display: Audio Device unregistered from world 'None'.
LogUObjectHash: Compacting FUObjectHashTables data took 2.04ms
LogAudio: Display: Audio Device (ID: 11) registered with world 'PolarFacility_Example_Map_Sunset'.
LogWorldMetrics: [UWorldMetricsSubsystem::Initialize]
LogRenderer: SceneCulling instance hierarchy is disabled as UseNanite(PCD3D_SM6) returned false, for scene: 'World /Game/Polar/Maps/UEDPIE_1_PolarFacility_Example_Map_Sunset.PolarFacility_Example_Map_Sunset'.
LogPlayLevel: PIE: World Init took: (0.001789s)
LogWorld: Bringing World /Game/Polar/Maps/UEDPIE_1_PolarFacility_Example_Map_Sunset.PolarFacility_Example_Map_Sunset up for play (max tick rate 60) at 2025.03.08-21.34.18
LogWorld: Bringing up level for play took: 0.023719
LogLoad: Took 0.101373 seconds to LoadMap(/Game/Polar/Maps/PolarFacility_Example_Map_Sunset)
LogGlobalStatus: UEngine::LoadMap Load map complete /Game/Polar/Maps/PolarFacility_Example_Map_Sunset
LogGlobalStatus: UPendingNetGame::TravelCompleted Pending net game travel completed
LogNet: Client netspeed is 100000
LogNet: Join request: /Game/Polar/Maps/PolarFacility_Example_Map_Sunset?Name=DESKTOP-1744OFS-0C37B9984BC8E42A3C753EA8D0D4E078?SplitscreenCount=1
LogNet: Join succeeded: DESKTOP-1744OFS-0C37
LogViewport: Display: Viewport MouseLockMode Changed, LockOnCapture -> DoNotLock
LogViewport: Display: Viewport MouseCaptureMode Changed, CapturePermanently_IncludingInitialMouseDown -> NoCapture
LogNet: InitBase IpNetDriver_19 (NetDriverDefinition BeaconNetDriver) using replication model Generic
LogInit: WinSock: Socket queue. Rx: 32768 (config 32768) Tx: 32768 (config 32768)
LogNet: Created socket for bind address: 0.0.0.0:0
LogNet: IpConnection_18 setting maximum channels to: 32767
PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent)
LogHandshake: Stateless Handshake: NetDriverDefinition 'BeaconNetDriver' CachedClientID: 5
LogNet: Game client on port 7787, rate 100000
LogTemp: Connection attempted to matchmaking server at 127.0.0.1
LogBlueprintUserMessages: [WB_Main_Menu_C_0] Client 0: CodeBreakerOnlineBeaconClient0
LogNet: NotifyAcceptingConnection: Server CodeBreakerOnlineBeaconHost_0 accept
LogNet: NotifyAcceptingConnection accepted from: 127.0.0.1:57764
LogHandshake: SendConnectChallenge. Timestamp: 4.548738, Cookie: 155125064112233126227231242022152038155061220215140173176087
LogHandshake: Cached server SessionID: 0
LogHandshake: SendChallengeResponse. Timestamp: 4.548738, Cookie: 155125064112233126227231242022152038155061220215140173176087
LogNet: NotifyAcceptingConnection: Server CodeBreakerOnlineBeaconHost_0 accept
LogNet: NotifyAcceptingConnection accepted from: 127.0.0.1:57764
LogHandshake: SendChallengeAck. InCookie: 155125064112233126227231242022152038155061220215140173176087
LogNet: Server accepting post-challenge connection from: 127.0.0.1:57764
LogNet: IpConnection_19 setting maximum channels to: 32767
PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent)
LogNet: NotifyAcceptedConnection: Name: CodeBreakerOnlineBeaconHost_0, TimeStamp: 03/08/25 21:34:21, [UNetConnection] RemoteAddr: 127.0.0.1:57764, Name: IpConnection_19, Driver: Name:IpNetDriver_16 Def:BeaconNetDriver IpNetDriver_16, IsServer: YES, PC: NULL, Owner: NULL, UniqueId: INVALID
LogNet: AddClientConnection: Added client connection: [UNetConnection] RemoteAddr: 127.0.0.1:57764, Name: IpConnection_19, Driver: Name:IpNetDriver_16 Def:BeaconNetDriver IpNetDriver_16, IsServer: YES, PC: NULL, Owner: NULL, UniqueId: INVALID
LogNet: NotifyAcceptingChannel Control 0 server CodeBreakerOnlineBeaconHost /Game/Polar/Maps/UEDPIE_0_PolarFacility_Example_Map_Sunset.PolarFacility_Example_Map_Sunset:PersistentLevel.CodeBreakerOnlineBeaconHost_0: Accepted
LogNet: Remote platform little endian=1
LogNet: This platform little endian=1
LogBeacon: CodeBreakerOnlineBeaconHost_0[IpConnection_19]: Beacon Hello
LogBeacon: CodeBreakerOnlineBeaconClient_0[IpConnection_18] Client received:
LogBeacon: CodeBreakerOnlineBeaconHost_0[IpConnection_19]: Client netspeed is 100000
LogBeacon: CodeBreakerOnlineBeaconHost_0[IpConnection_19]: Beacon Join CodeBreakerOnlineBeaconClient NULL:DESKTOP-1744OFS-0C37B9984BC8E42A3C753EA8D0D4E078 (unauthenticated)
LogBeacon: CodeBreakerOnlineBeaconHost_0[IpConnection_19]: Send failure: Join failure, Couldn't spawn client beacon actor.
LogNet: UNetConnection::SendCloseReason:
LogNet: - Result=BeaconSpawnFailureError, ErrorContext="BeaconSpawnFailureError"
LogNet: UNetConnection::Close: [UNetConnection] RemoteAddr: 127.0.0.1:57764, Name: IpConnection_19, Driver: Name:IpNetDriver_16 Def:BeaconNetDriver IpNetDriver_16, IsServer: YES, PC: NULL, Owner: CodeBreakerOnlineBeaconHost_0, UniqueId: INVALID, Channels: 3, Time: 2025.03.08-20.34.21
LogNet: UNetConnection::SendCloseReason:
LogNet: - Result=BeaconSpawnFailureError, ErrorContext="BeaconSpawnFailureError"
LogNet: UChannel::Close: Sending CloseBunch. ChIndex == 0. Name: [UChannel] ChIndex: 0, Closing: 0 [UNetConnection] RemoteAddr: 127.0.0.1:57764, Name: IpConnection_19, Driver: Name:IpNetDriver_16 Def:BeaconNetDriver IpNetDriver_16, IsServer: YES, PC: NULL, Owner: CodeBreakerOnlineBeaconHost_0, UniqueId: INVALID
LogNet: NMT_CloseReason: (Server Disconnect Reasons) 127.0.0.1:7787
LogNet: - BeaconSpawnFailureError
LogBeacon: CodeBreakerOnlineBeaconClient_0[IpConnection_18] Client received:
LogBeacon: Beacon close from NMT_Failure Join failure, Couldn't spawn client beacon actor.
LogTemp: Warning: Client failed to connect to matchmaking beacon host
LogNet: UChannel::ReceivedSequencedBunch: Bunch.bClose == true. ChIndex == 0. Calling ConditionalCleanUp.
LogNet: UChannel::CleanUp: ChIndex == 0. Closing connection. [UChannel] ChIndex: 0, Closing: 0 [UNetConnection] RemoteAddr: 127.0.0.1:7787, Name: IpConnection_18, Driver: Name:IpNetDriver_19 Def:BeaconNetDriver IpNetDriver_19, IsServer: NO, PC: NULL, Owner: NULL, UniqueId: NULL:DESKTOP-1744OFS-0C37B9984BC8E42A3C753EA8D0D4E078
LogNet: UNetConnection::Close: [UNetConnection] RemoteAddr: 127.0.0.1:7787, Name: IpConnection_18, Driver: Name:IpNetDriver_19 Def:BeaconNetDriver IpNetDriver_19, IsServer: NO, PC: NULL, Owner: NULL, UniqueId: NULL:DESKTOP-1744OFS-0C37B9984BC8E42A3C753EA8D0D4E078, Channels: 3, Time: 2025.03.08-20.34.21
LogNet: UNetConnection::SendCloseReason:
LogNet: - Result=ControlChannelClose, ErrorContext="ControlChannelClose"
LogNet: UChannel::Close: Sending CloseBunch. ChIndex == 0. Name: [UChannel] ChIndex: 0, Closing: 0 [UNetConnection] RemoteAddr: 127.0.0.1:7787, Name: IpConnection_18, Driver: Name:IpNetDriver_19 Def:BeaconNetDriver IpNetDriver_19, IsServer: NO, PC: NULL, Owner: NULL, UniqueId: NULL:DESKTOP-1744OFS-0C37B9984BC8E42A3C753EA8D0D4E078
LogNet: DestroyNamedNetDriver IpNetDriver_19 [IpNetDriver_19]
LogExit: Name:IpNetDriver_19 Def:BeaconNetDriver IpNetDriver_19 shut down
LogBeacon: CodeBreakerOnlineBeaconHost_0[IpConnection_19]: Cleaning up in-progress connection due to closure.
LogNet: NotifyAcceptingConnection: Server CodeBreakerOnlineBeaconHost_0 accept
LogNet: NotifyAcceptingConnection accepted from: 127.0.0.1:57764
LogNet: NotifyAcceptingConnection: Server CodeBreakerOnlineBeaconHost_0 accept
LogNet: NotifyAcceptingConnection accepted from: 127.0.0.1:57764
LogSlate: Updating window title bar state: overlay mode, drag disabled, window buttons hidden, title bar hidden
LogWorld: BeginTearingDown for /Game/Polar/Maps/UEDPIE_1_PolarFacility_Example_Map_Sunset
LogSlate: Window 'CodeBreaker Preview [NetMode: Client 1] (64-bit/PC D3D SM6)' being destroyed
LogTemp: Disconnected from matchmaking server
LogWorld: UWorld::CleanupWorld for PolarFacility_Example_Map_Sunset, bSessionEnded=true, bCleanupResources=true
LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated
LogWorldMetrics: [UWorldMetricsSubsystem::Deinitialize]
LogWorldMetrics: [UWorldMetricsSubsystem::Clear]
LogNet: World NetDriver shutdown IpNetDriver_18 [GameNetDriver]
LogNet: DestroyNamedNetDriver IpNetDriver_18 [GameNetDriver]
LogNet: UNetConnection::Close: [UNetConnection] RemoteAddr: 127.0.0.1:17777, Name: IpConnection_16, Driver: Name:GameNetDriver Def:GameNetDriver IpNetDriver_18, IsServer: NO, PC: PlayerController_1, Owner: PlayerController_1, UniqueId: NULL:DESKTOP-1744OFS-0C37B9984BC8E42A3C753EA8D0D4E078, Channels: 12, Time: 2025.03.08-20.34.43
LogNet: UChannel::Close: Sending CloseBunch. ChIndex == 0. Name: [UChannel] ChIndex: 0, Closing: 0 [UNetConnection] RemoteAddr: 127.0.0.1:17777, Name: IpConnection_16, Driver: Name:GameNetDriver Def:GameNetDriver IpNetDriver_18, IsServer: NO, PC: PlayerController_1, Owner: PlayerController_1, UniqueId: NULL:DESKTOP-1744OFS-0C37B9984BC8E42A3C753EA8D0D4E078
LogExit: Name:GameNetDriver Def:GameNetDriver IpNetDriver_18 shut down
LogWorld: BeginTearingDown for /Game/Polar/Maps/UEDPIE_0_PolarFacility_Example_Map_Sunset
LogSlate: Updating window title bar state: overlay mode, drag disabled, window buttons hidden, title bar hidden
LogNet: DestroyNamedNetDriver IpNetDriver_16 [IpNetDriver_16]
LogExit: Name:IpNetDriver_16 Def:BeaconNetDriver IpNetDriver_16 shut down
LogTemp: Matchmaking service stopped
LogWorld: UWorld::CleanupWorld for PolarFacility_Example_Map_Sunset, bSessionEnded=true, bCleanupResources=true
LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated
LogWorldMetrics: [UWorldMetricsSubsystem::Deinitialize]
LogWorldMetrics: [UWorldMetricsSubsystem::Clear]
LogNet: World NetDriver shutdown IpNetDriver_17 [GameNetDriver]
LogNet: DestroyNamedNetDriver IpNetDriver_17 [GameNetDriver]
LogNet: UNetConnection::SendCloseReason:
LogNet: - Result=HostClosedConnection, ErrorContext="HostClosedConnection"
LogNet: UNetConnection::Cleanup: Closing open connection. [UNetConnection] RemoteAddr: 127.0.0.1:57763, Name: IpConnection_17, Driver: Name:GameNetDriver Def:GameNetDriver IpNetDriver_17, IsServer: YES, PC: PlayerController_1, Owner: PlayerController_1, UniqueId: NULL:DESKTOP-1744OFS-0C37B9984BC8E42A3C753EA8D0D4E078
LogNet: UNetConnection::Close: [UNetConnection] RemoteAddr: 127.0.0.1:57763, Name: IpConnection_17, Driver: Name:GameNetDriver Def:GameNetDriver IpNetDriver_17, IsServer: YES, PC: PlayerController_1, Owner: PlayerController_1, UniqueId: NULL:DESKTOP-1744OFS-0C37B9984BC8E42A3C753EA8D0D4E078, Channels: 12, Time: 2025.03.08-20.34.43
LogNet: UNetConnection::SendCloseReason:
LogNet: - Result=Cleanup, ErrorContext="Cleanup"
LogNet: UChannel::Close: Sending CloseBunch. ChIndex == 0. Name: [UChannel] ChIndex: 0, Closing: 0 [UNetConnection] RemoteAddr: 127.0.0.1:57763, Name: IpConnection_17, Driver: Name:GameNetDriver Def:GameNetDriver IpNetDriver_17, IsServer: YES, PC: PlayerController_1, Owner: PlayerController_1, UniqueId: NULL:DESKTOP-1744OFS-0C37B9984BC8E42A3C753EA8D0D4E078
LogExit: Name:GameNetDriver Def:GameNetDriver IpNetDriver_17 shut down
LogPlayLevel: Display: Shutting down PIE online subsystems
LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated
LogSlate: Updating window title bar state: overlay mode, drag disabled, window buttons hidden, title bar hidden
LogAudioMixer: Deinitializing Audio Bus Subsystem for audio device with ID 11
LogAudioMixer: FMixerPlatformXAudio2::StopAudioStream() called. InstanceID=11
LogAudioMixer: FMixerPlatformXAudio2::StopAudioStream() called. InstanceID=11
LogAudioMixer: Deinitializing Audio Bus Subsystem for audio device with ID 10
LogAudioMixer: FMixerPlatformXAudio2::StopAudioStream() called. InstanceID=10
LogAudioMixer: FMixerPlatformXAudio2::StopAudioStream() called. InstanceID=10
LogNet: UNetConnection::PendingConnectionLost. [UNetConnection] RemoteAddr: 127.0.0.1:7787, Name: None, Driver: Name:IpNetDriver_19 Def:BeaconNetDriver None, IsServer: YES, PC: NULL, Owner: NULL, UniqueId: NULL:DESKTOP-1744OFS-0C37B9984BC8E42A3C753EA8D0D4E078 bPendingDestroy=0
LogUObjectHash: Compacting FUObjectHashTables data took 3.43ms
LogPlayLevel: Display: Destroying online subsystem :Context_12
LogPlayLevel: Display: Destroying online subsystem :Context_11
But as we can see, a connection actually exists, since InitClient does return positively and the handshake goes through, the HostObject does listen for the appropriate class, and at the appropriate port, the Host spawns the HostObject well, and the function in the Game Instance does run. I think the setup for connections works well. The issue might be in the client, but I am not sure what exactly it is.
I have tried:
- Switching networks
- Disabling firewall
- Explicitly setting the client beacon to replicate
- Changing ports
- Changing the way I access the client beacon class in the Host Object
- Explicitly allowing requests in the host since it was disabled by default
I stil can’t get past this issue. I have used AI tools to try to pinpoint the problem, but I have been going in circles for a few hours now. The only thing that crosses my mind that may be worth trying is to change the connecting to matchmaking functions inside a GameMode class instead of a GameInstance, in case the function might be absorbed by the client or something, but I am not sure of this myself.
I would greatly appreciate any suggestions and feedback regarding this issue.
If you reached this point and read everything, hope you’re blessed in life, cause this is one hell of a post.