GameInstance function from C++ code error

Maybe try calling it on beginplay, there might be stuff uninitiated on construction script

I want to call GameInstance function from C++ code.

My GameInstance .h:

UCLASS()
class THETALEOFTHREE_API UTTOTGameInstance : public UGameInstance
{
	GENERATED_UCLASS_BODY()

	/* Current Minute */
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Time of Day")
	float CurrentMinute;

	/* Get Current Hour */
	UFUNCTION(BlueprintCallable, Category = "Time of Day")
	float GetCurrentHour();
};

My GameInstance .cpp:

UTTOTGameInstance::UTTOTGameInstance(const class FPostConstructInitializeProperties& PCIP)
	: Super(PCIP)
{
	/* Current Minute */
	CurrentMinute = 0;
}

float UTTOTGameInstance::GetCurrentHour() {
	return CurrentMinute / 60;
}

I want to call GetCurrentHour() from another class:

UTTOTGameInstance* GameInstance = (UTTOTGameInstance*)(()->GetGameInstance());
	GameInstance->GetCurrentHour();

and it doesn’t work I get error which I attached on the bottom of this post.

but if I call CurrentMinute variable it works:

 UTTOTGameInstance* GameInstance = (UTTOTGameInstance*)(()->GetGameInstance());
    GameInstance->CurrentMinute;

Moreover when I try call GetCurrentHour() from Blueprints it works!

What am I doing wrong? Anyone could help me?

Thanks,

Fatal error!

UTTOTGameInstance::GetCurrentHour() 0xea9e3f00 + 0 bytes [File=e:\biblioteka\dokumenty\unreal projects\gamednastudio\thetaleofthree\source\thetaleofthree\ttotgameinstance.cpp:14] [in E:\Biblioteka\Dokumenty\Unreal Projects\gameDNAstudio\TheTaleOfThree\Binaries\Win64\UE4Editor-TheTaleOfThree.dll]
UFunction::Invoke() 0x9525c84  + 15 bytes [File=c:\unreal engine\4.4\engine\source\runtime\coreuobject\private\uobject\class.cpp:3590] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-CoreUObject.dll]
UObject::CallFunction() 0x95e0d9b  + 17 bytes [File=c:\unreal engine\4.4\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:383] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-CoreUObject.dll]
UObject::ProcessInternal() 0x95fa54f  + 0 bytes [File=c:\unreal engine\4.4\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:577] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-CoreUObject.dll]
UFunction::Invoke() 0x9525c84  + 15 bytes [File=c:\unreal engine\4.4\engine\source\runtime\coreuobject\private\uobject\class.cpp:3590] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-CoreUObject.dll]
UObject::ProcessEvent() 0x95f9d80  + 0 bytes [File=c:\unreal engine\4.4\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:888] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-CoreUObject.dll]
AActor::ProcessEvent() 0xee8fbcb1 + 0 bytes [File=c:\unreal engine\4.4\engine\source\runtime\engine\private\actor.cpp:621] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Engine.dll]
AActor::ExecuteConstruction() 0xee8d333d + 22 bytes [File=c:\unreal engine\4.4\engine\source\runtime\engine\private\actorconstruction.cpp:360] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Engine.dll]
FBlueprintCompileReinstancer::ReplaceInstancesOfClass() 0xf30b8e4f + 0 bytes [File=c:\unreal engine\4.4\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:375] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-UnrealEd.dll]
FBlueprintCompileReinstancer::ReinstanceObjects() 0xf30b3509 + 0 bytes [File=c:\unreal engine\4.4\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:168] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-UnrealEd.dll]
FKismetEditorUtilities::CompileBlueprint() 0xf302dfc9 + 0 bytes [File=c:\unreal engine\4.4\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:408] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-UnrealEd.dll]
FBlueprintEditor::Compile() 0xee1a3316 + 0 bytes [File=c:\unreal engine\4.4\engine\source\editor\kismet\private\blueprinteditor.cpp:2331] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Kismet.dll]
TBaseSPMethodDelegateInstance_NoParams<FBlueprintEditor,void,0>::Execute() 0xee1dd2ed + 12 bytes [File=c:\unreal engine\4.4\engine\source\runtime\core\public\delegates\delegateinstancesimpl.inl:161] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Kismet.dll]
TBaseSPMethodDelegateInstance_NoParams<FBlueprintEditor,void,0>::ExecuteIfSafe() 0xee1e2237 + 9 bytes [File=c:\unreal engine\4.4\engine\source\runtime\core\public\delegates\delegateinstancesimpl.inl:171] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Kismet.dll]
FUICommandList::ExecuteAction() 0xf436cbb6 + 60 bytes [File=c:\unreal engine\4.4\engine\source\runtime\slate\private\framework\commands\uicommandlist.cpp:104] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Slate.dll]
SToolBarButtonBlock::OnClicked() 0xf44d056d + 0 bytes [File=c:\unreal engine\4.4\engine\source\runtime\slate\private\framework\multibox\stoolbarbuttonblock.cpp:293] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Slate.dll]
TBaseSPMethodDelegateInstance_RetVal_NoParams<SToolBarButtonBlock,FReply,0>::Execute() 0xf449471c + 17 bytes [File=c:\unreal engine\4.4\engine\source\runtime\core\public\delegates\delegateinstancesimpl.inl:161] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Slate.dll]
TBaseDelegate_RetVal_NoParams<FReply>::Execute() 0xf45a6f7a + 6 bytes [File=c:\unreal engine\4.4\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:1058] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Slate.dll]
SButton::OnMouseButtonUp() 0xf45e8f59 + 17 bytes [File=c:\unreal engine\4.4\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:188] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Slate.dll]
FSlateApplication::ProcessMouseButtonUpEvent() 0xf43b4cff + 20 bytes [File=c:\unreal engine\4.4\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:3421] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Slate.dll]
FSlateApplication::OnMouseUp() 0xf43a2219 + 17 bytes [File=c:\unreal engine\4.4\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:3388] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Slate.dll]
FWindowsApplication::ProcessDeferredMessage() 0xf7b56b95 + 12 bytes [File=c:\unreal engine\4.4\engine\source\runtime\core\private\windows\windowsapplication.cpp:1345] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Core.dll]
FWindowsApplication::DeferMessage() 0xf7b41451 + 74 bytes [File=c:\unreal engine\4.4\engine\source\runtime\core\private\windows\windowsapplication.cpp:1636] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Core.dll]
FWindowsApplication::ProcessMessage() 0xf7b57cde + 41 bytes [File=c:\unreal engine\4.4\engine\source\runtime\core\private\windows\windowsapplication.cpp:736] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Core.dll]
FWindowsApplication::AppWndProc() 0xf7b3d412 + 0 bytes [File=c:\unreal engine\4.4\engine\source\runtime\core\private\windows\windowsapplication.cpp:598] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Core.dll]
Address = 0xfb92434  (filename not found) [in C:\Windows\system32\USER32.dll]
Address = 0xfb92297  (filename not found) [in C:\Windows\system32\USER32.dll]
FWindowsPlatformMisc::PumpMessages() 0xf7b58186 + 48 bytes [File=c:\unreal engine\4.4\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:761] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Core.dll]
FEngineLoop::Tick() 0x68a573ad + 8 bytes [File=c:\unreal engine\4.4\engine\source\runtime\launch\private\launchengineloop.cpp:2080] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor.exe]
GuardedMain() 0x68a4cc7c + 0 bytes [File=c:\unreal engine\4.4\engine\source\runtime\launch\private\launch.cpp:133] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor.exe]
GuardedMainWrapper() 0x68a4ccea + 5 bytes [File=c:\unreal engine\4.4\engine\source\runtime\launch\private\windows\launchwindows.cpp:125] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor.exe]
WinMain() 0x68a58ad9 + 17 bytes [File=c:\unreal engine\4.4\engine\source\runtime\launch\private\windows\launchwindows.cpp:201] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor.exe]
__tmainCRTStartup() 0x68a59989 + 21 bytes [File=f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618] [in C:\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor.exe]
Address = 0xf5f16ad  (filename not found) [in C:\Windows\system32\KERNEL32.DLL]
Address = 0x11cc34a5 (filename not found) [in C:\Windows\SYSTEM32\ntdll.dll]
Address = 0x11cc34a5 (filename not found) [in C:\Windows\SYSTEM32\ntdll.dll]

I want to see effect in editor during designing level…
Moreover in construction script in blueprints it works! It only doesn’t work in construction in c++ code.

My guess is that it has to do with how you declare the method BlueprintCallable only, try lookup the documentation for your UFUNCTION macro