How to fix multiplayer not working for macOS packaged builds

Hi everyone! I need help with my multiplayer FPS game on macOS. I’ve fixed up the first person template with the arena shooter variant by watching this series of videos: https://www.youtube.com/watch?v=m4bGGqiknzk, plus done some changes to things he didn’t fix like death handling. Except I have a little bit different setup than what he does:

  • I have the regular Lvl_FirstPerson level as the startup map
  • It automatically joins/creates a session based on weather there’s an actual session inside the Lvl_FirstPerson level blueprint (shown below)
  • Create session then opens up the shooter level
  • Errors from On Fail nodes from the Create Session/Join Session go to my error UI

And everything works great inside the editor when multiplayer playtesting, but when I package my project for Mac (development), and I open it, I get my error screen, meaning that the On Fail nodes are being run from Create Session/Join Session. I have no idea why this shouldn’t work! I’ve been trying some stuff in DefaultEngine.ini (I’ve provided it in full below), but that didn’t solve the issue for me. Any help would be much appreciated!

Level blueprint:
The cut off section is just for setting UI

DefaultEngine.ini

[/Script/Engine.CollisionProfile]
+Profiles=(Name="Projectile",CollisionEnabled=QueryOnly,ObjectTypeName="Projectile",CustomResponses=,HelpMessage="Preset for projectiles",bCanModify=True)
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,Name="Projectile",DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False)
+EditProfiles=(Name="Trigger",CustomResponses=((Channel=Projectile, Response=ECR_Ignore)))

[/Script/EngineSettings.GameMapsSettings]
EditorStartupMap=/Game/FirstPerson/Lvl_FirstPerson.Lvl_FirstPerson
LocalMapOptions=
TransitionMap=
bUseSplitscreen=True
TwoPlayerSplitscreenLayout=Horizontal
ThreePlayerSplitscreenLayout=FavorTop
GameInstanceClass=/Script/Engine.GameInstance
GameDefaultMap=/Game/FirstPerson/Lvl_FirstPerson.Lvl_FirstPerson
ServerDefaultMap=/Engine/Maps/Entry
GlobalDefaultGameMode=/Game/FirstPerson/Blueprints/BP_FirstPersonGameMode.BP_FirstPersonGameMode_C
GlobalDefaultServerGameMode=None

[/Script/Engine.RendererSettings]
r.ReflectionMethod=1
r.GenerateMeshDistanceFields=True
r.DynamicGlobalIlluminationMethod=1
r.Mobile.EnableNoPrecomputedLightingCSMShader=1
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=true

r.Shadow.Virtual.Enable=1

r.DefaultFeature.LocalExposure.HighlightContrastScale=0.8
r.DefaultFeature.LocalExposure.HighlightContrastScale=0.8

r.DefaultFeature.LocalExposure.ShadowContrastScale=0.8
r.DefaultFeature.LocalExposure.ShadowContrastScale=0.8
r.DefaultFeature.LightUnits=2
r.AllowStaticLighting=False
RedChromaticityCoordinate=(X=0.640000,Y=0.330000)
GreenChromaticityCoordinate=(X=0.300000,Y=0.600000)
BlueChromaticityCoordinate=(X=0.150000,Y=0.060000)
WhiteChromaticityCoordinate=(X=0.312700,Y=0.329000)
WorkingColorSpaceChoice=sRGB
r.LegacyLuminanceFactors=False
r.Lumen.ScreenTracingSource=0
r.FirstPerson.SelfShadow=1

r.SkinCache.CompileShaders=True

r.RayTracing=True

r.RayTracing.RayTracingProxies.ProjectEnabled=True

[/Script/WindowsTargetPlatform.WindowsTargetSettings]
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
-D3D12TargetedShaderFormats=PCD3D_SM5
+D3D12TargetedShaderFormats=PCD3D_SM6
-D3D11TargetedShaderFormats=PCD3D_SM5
+D3D11TargetedShaderFormats=PCD3D_SM5

[/Script/HardwareTargeting.HardwareTargetingSettings]
TargetedHardwareClass=EHardwareClass::Desktop
AppliedTargetedHardwareClass=Desktop
DefaultGraphicsPerformance=EGraphicsPreset::Maximum
AppliedDefaultGraphicsPerformance=Maximum

[/Script/Engine.Engine]
NearClipPlane=5.000000

+ActiveGameNameRedirects=(OldGameName="TP_FirstPersonBP",NewGameName="/Script/MilesFPS")
+ActiveGameNameRedirects=(OldGameName="/Script/TP_FirstPersonBP",NewGameName="/Script/MilesFPS")

[/Script/AIModule.AISystem]
bForgetStaleActors=True

[/Script/Engine.UserInterfaceSettings]
UIScaleRule=ShortestSide

[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings]
bEnablePlugin=True
bAllowNetworkConnection=True
SecurityToken=DCC8BD0C554A1CC63F9CAC99313EC9B1
bIncludeInShipping=False
bAllowExternalStartInShipping=False
bCompileAFSProject=False
bUseCompression=False
bLogFiles=False
bReportStats=False
ConnectionType=USBOnly
bUseManualIPAddress=False
ManualIPAddress=

[/Script/MacTargetPlatform.MacTargetSettings]
DefaultArchitecture=MacTargetArchitectureHost

[/Script/OnlineSubsystemUtils.IpNetDriver]
AllowPlayerPortUnreach=False
NetServerMaxTickRate=30
LanSpeed=10000000

[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Null

[OnlineSubsystemNull]
bEnabled=true
1 Like