Hot reload crashes when using custom WorldSettings class

Hello,
I have discovered a 100% crash in 4.11 when using a custom world settings class. This doesn’t occur in 4.10.

Steps to repro:

  1. Create a new class that derives from WorldSettings, and call it MyWorldSettings

  2. Add the following to DefaultEngine.ini (replace [PROJECTNAME] with your project name):

    [/Script/Engine.Engine]
    WorldSettingsClassName=/Script/[PROJECTNAME].MyWorldSettings

  3. Build your project and start the editor

  4. Make a small change to your cpp code (like add a newline to the new worldsettings class)

  5. Press the hot “Compile” button in the editor to recompile your cpp code

  6. The editor crashes

Callstack:

>	UE4Editor-Engine.dll!UWorld::Tick(ELevelTick TickType, float DeltaSeconds) Line 1116	C++
 	UE4Editor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1149	C++
 	UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 370	C++
 	UE4Editor.exe!FEngineLoop::Tick() Line 2643	C++
 	UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 142	C++
 	UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 189	C++
 	[External Code]	

This appears to be due to the fact that the first Actor in the editor world’s Actor array is now null, and this is expected to be the worldsettings actor.

Note: it appears this crash was previously reported in preview 8:

https://udn.unrealengine.com/questions/277518/411p4-bug-100-repro-sub-classing-aworldsettings-ca.html

Hey eyesiah-

As you mentioned, this is a known issue that has been addressed internally and should be available in a future update to the engine.

Cheers

Hi ,
This is a real productivity killer for me. Can you point me to the internal fix so that I can look into integrating it into my local engine version?

If you are using the engine built from source code, you should be able to get the fix by merging the following commit into your local engine:

https://github.com/EpicGames/UnrealEngine/commit/4c41590c3d19013a848ae5a9ad7f2dcfbf741fb2

Thanks .

I notice that 4.11.1 has just been released, but this isn’t listed in the included bug fixes. Can we expect this will be included in a future 4.11 hotfix or will it not be fixed until 4.12?

It is unlikely this fix will go into 4.11.2 and will more likely be included in a later update to the engine though it is difficult to say exactly when that will be.

Hi , how can we make a request for this fix to be included on 4.11.3 hotfix update? It’s really a productivity killer for my team as we do not have the resources to work with a source built engine (we work remotely and cannot afford a dedicated server for continuous integration and automated builds)

Hear hear!

Hey Storngrir & eyesiah,

This issue is fixed for the upcoming 4.12 engine version. Currently there is no plan for a 4.11.3 hotfix, however I have indicated this as a possible inclusion if it does become necessary. If you are using a source version of the engine, you can merge the following commit to get the fix now. Be aware there are other fixes as we included in this commit.

https://github.com/EpicGames/UnrealEngine/commit/4c41590c3d19013a848ae5a9ad7f2dcfbf741fb2