Hi there. We got a bunch of UMG widgets that are created and added to the viewport through blueprints. Everything works fine except when we are launching a server with the UE4Editor.exe -server parameter. In this case, the linker wants to resolve dependencies to the UMGEditor module from the UMG asset. The UMG asset is linked from the blueprint class that is creating it. We are creating the UMG in our pawn blueprint for now.
Also, everything works in cooked server configuration without changes, because the UMGEditor references then are removed during cooking?
I have made a workaround by changing a couple of lines in LaunchEngineLoop.exe, causing the modules to be loaded even if the game is running with -server.
4.7.2 Release:
if (!IsRunningDedicatedServer())
{
FModuleManager::Get().LoadModule("Slate");
// UMG must be loaded for runtime and cooking.
FModuleManager::Get().LoadModule("UMG");
#if WITH_UNREAL_DEVELOPER_TOOLS
FModuleManager::Get().LoadModule("MessageLog");
FModuleManager::Get().LoadModule("CollisionAnalyzer");
#endif//WITH_UNREAL_DEVELOPER_TOOLS
}
Changed into:
#if WITH_EDITOR
FModuleManager::Get().LoadModule("Slate");
FModuleManager::Get().LoadModule("UMG");
#else
if ( !IsRunningDedicatedServer() )
{
FModuleManager::Get().LoadModule("Slate");
FModuleManager::Get().LoadModule("UMG");
}
#endif //WITH_EDITOR
if (!IsRunningDedicatedServer())
{
#if WITH_UNREAL_DEVELOPER_TOOLS
FModuleManager::Get().LoadModule("MessageLog");
FModuleManager::Get().LoadModule("CollisionAnalyzer");
#endif //WITH_UNREAL_DEVELOPER_TOOLS
}