OpenLevel C++ crashes Engine, while OpenLevel in blueprint does not

Hi,

I have been using the OpenLevel under the button, but I changed the overall desing and wanted to use OpenLevel function from C++ (both are on the same level and open the same level). After changing, each time I have editor crashing completly right after calling function.

Are there any differences between C++ function and blueprint one?
Or maybe there are some limitations that are not mentioned inside documentations?

Here is C++ code:

#include "SceneInitLoader.h"
#include "Kismet/GameplayStatics.h"

// Sets default values
ASceneInitLoader::ASceneInitLoader()
{
     
    PrimaryActorTick.bCanEverTick = true;

}

// Called when the game starts or when spawned
void ASceneInitLoader::BeginPlay()
{
    Super::BeginPlay();

}

// Called every frame
void ASceneInitLoader::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime);

}

void ASceneInitLoader::SceneLoader(FString season, FString timeOfDay, 
    int showGui, int fullScreenMode, FString screenResW, 
    FString screenResH, int refreshRate) {

    UE_LOG(LogTemp, Warning, TEXT("Calling Scene Loader function"));

    UGameplayStatics::OpenLevel(GetWorld(), TEXT("Level_1_LoadingScreen"));

}

Here is error code:

[2024.03.04-20.11.36:947][919]LogTemp: Warning: Calling Scene Loader function
[2024.03.04-20.11.39:401][919]LogWindows: Error: === Critical error: ===
[2024.03.04-20.11.39:401][919]LogWindows: Error: 
[2024.03.04-20.11.39:401][919]LogWindows: Error: Fatal error!
[2024.03.04-20.11.39:401][919]LogWindows: Error: 
[2024.03.04-20.11.39:401][919]LogWindows: Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000008
[2024.03.04-20.11.39:401][919]LogWindows: Error: 
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007fffb6ddcc26 UnrealEditor-Engine.dll!AActor::GetWorld() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Actor.cpp:586]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x0000015698eeae2b UnrealEditor-UnrealSeekerNew.patch_1.exe!ASceneInitLoader::SceneLoader() [B:\WZE Unreal\Git\unreal-seeker\Source\UnrealSeekerNew\Private\SceneInitLoader.cpp:35]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x0000015698ee8fe6 UnrealEditor-UnrealSeekerNew.patch_1.exe!ALvl0SceneControler::Tick() [B:\WZE Unreal\Git\unreal-seeker\Source\UnrealSeekerNew\Private\Lvl0SceneControler.cpp:94]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007fffb6dff7bd UnrealEditor-Engine.dll!AActor::TickActor() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Actor.cpp:1516]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007fffb6dc9e51 UnrealEditor-Engine.dll!FActorTickFunction::ExecuteTick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Actor.cpp:251]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007fffb8dc87eb UnrealEditor-Engine.dll!FTickFunctionTask::DoTask() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:278]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007fffb8dcfd32 UnrealEditor-Engine.dll!TGraphTask<FTickFunctionTask>::ExecuteTask() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Async\TaskGraphInterfaces.h:1265]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007fffe0891c9f UnrealEditor-Core.dll!FNamedTaskThread::ProcessTasksNamedThread() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:758]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007fffe08922ae UnrealEditor-Core.dll!FNamedTaskThread::ProcessTasksUntilQuit() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:649]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007fffe089eeb0 UnrealEditor-Core.dll!FTaskGraphCompatibilityImplementation::WaitUntilTasksComplete() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:2125]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007fffb8df75aa UnrealEditor-Engine.dll!FTickTaskSequencer::ReleaseTickGroup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:556]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007fffb8e00bfe UnrealEditor-Engine.dll!FTickTaskManager::RunTickGroup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:1583]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007fffb7eb9839 UnrealEditor-Engine.dll!UWorld::RunTickGroup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\LevelTick.cpp:771]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007fffb7ec67a2 UnrealEditor-Engine.dll!UWorld::Tick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\LevelTick.cpp:1515]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007fffdb8d58f8 UnrealEditor-UnrealEd.dll!UEditorEngine::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\EditorEngine.cpp:1924]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007fffdc52ea06 UnrealEditor-UnrealEd.dll!UUnrealEdEngine::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdEngine.cpp:531]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007ff75ffd8af2 UnrealEditor.exe!FEngineLoop::Tick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5825]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007ff75fffd28c UnrealEditor.exe!GuardedMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:188]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007ff75fffd37a UnrealEditor.exe!GuardedMainWrapper() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:118]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007ff760000854 UnrealEditor.exe!LaunchWindowsStartup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:258]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007ff760016984 UnrealEditor.exe!WinMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:298]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007ff760019d7a UnrealEditor.exe!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
[2024.03.04-20.11.39:401][919]LogWindows: Error: [Callstack] 0x00007ff84eed7344 KERNEL32.DLL!UnknownFunction []
[2024.03.04-20.11.39:401][919]LogWindows: Error:

Resolved by myself :smile:

Found out that I had null pointer to GetWorld() since the actor with the OpenLevel was not directly spawned inside the level. Had to change code of SceneLoader function with added variable for UWorld*.

void ASceneInitLoader::SceneLoader(UWorld* world, FString season, FString timeOfDay, 
    int showGui, int fullScreenMode, FString screenResW, 
    FString screenResH, int refreshRate) {

    UE_LOG(LogTemp, Warning, TEXT("Calling Scene Loader function"));

    UGameplayStatics::OpenLevel(world, TEXT("Level_1_LoadingScreen"));

}

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.