Download

Assert GIsHotReload after following Plugin creation tutorial

With engine 4.6.1 (binary, not source):

  • created a blank C++ project, no starter content.
  • Copied the UObjectPlugin folder from the 4.6.1 source distribution into a new Plugins directory in my game folder.
  • Renamed all instances of UObjectPlugin to my plugin’s name, both in filenames and file content
  • Regenerated project files from within UE
  • Opened code in VS
  • Rebuilt

(The automatic hot reload here does not show my plugin, so I closed UE, then…)

  • Launch Debugger from VS
  • Breakpoint hit “Assertion failed: GIsHotReload [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.6\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectBase.cpp] [Line: 632]”

NOTE: I am not hot-reloading
NOTE: This also happens if I have never built the binaries for the plugin in the hot-reload scenario.
NOTE: This also happens if I manually delete the binaries from the Build folder (as in search I found one other instance of this due to someone having rogue copies of their module running around.)

AFAIK I have followed the tutorial precisely, and I can find no other instance of this error on the web. I assume I am doing something wrong - thoughts on what might cause this?

Rama’s Victory AI plugin (https://wiki.unrealengine.com/Plugin,_Functional_Code_Template_For_You) does not seem to have the same issue mine does (I simply copied it directly into my plugins folder, rebuilt and it worked.) Investigating what the difference is now…

Ok, so the problem appears to be with the MyPluginObject code in the UObjectPlugin sample plugin. While I haven’t determined exactly what it is, deleting the class and header file from the plugin seems to allow the plugin to load - maybe it has something to do with having the class be based on UObject and not something else (Rama’s derives from UBlueprintFunctionLibrary for example.)

Experienced same problem here - this thread helped me figure out what was going wrong. Thanks

I had this problem as well, but the cause was slightly different. My traceback was always mentioning a particular interface subclass I had created, along with the error message. I had created a subclass of UInterface, but I had not marked it as MinimalAPI in the UINTERFACE macro. I haven’t dug into the details of why that fixed the hotreload error, but all other usages of UINTERFACE in the engine also use MinimalAPI, and it fixed it.