Hi! You're probably here because you've used Hot Reload in UE4.

So… don't use Hot Reload in Unreal Engine 4 because:

  • Data corruption in Blueprints: it can reset and mangle any variable at whim. The only way to fix it is to roll back to a previous file version from a backup or from source control (perforce, git, svn, etc.)
  • It can't deal with header changes (.h files) or constructor changes
  • It's deprecated, not maintained by Epic anymore

Use Live Coding instead!

  • Live Coding is relatively new and still in development
  • Live Coding does not cause data corruption in Blueprints like Hot Reload does!
  • Like Hot Reload, it still isn't reliable for compiling header changes (changes to .h files) or for compiling changes to class constructor functions. Use it only for making changes to class functions in .cpp files.
  • Live Coding even usually works great during gameplay (in PIE)! You can change running functions while your game is playing

If you're getting weird errors when compiling the project in the Editor, just close the damn thing and run a proper Build -> Build <YourProject> in Visual Studio.

To enable Live Coding:



As an added bonus, add this to your .uproject file to have all the Live Coding-related temp files deleted on build (you don't ever need them).
Goes on the same level “Modules” is at:

    "Win64": [
        "if not exist $(ProjectDir)\\Binaries\\Win64 mkdir $(ProjectDir)\\Binaries\\Win64",
        "type NUL > $(ProjectDir)\\Binaries\\Win64\\dummy.patch & del $(ProjectDir)\\Binaries\\Win64\\*.patch*",
        "xcopy $(ProjectDir)\\LibsToCopy $(ProjectDir)\\Binaries\\Win64\\ /D /Y /S > nul"

For more details, see the UE4 community wiki

P.S. also, never look at the Error List or squiggles (red underlines). Always look for errors in the Output Log!

hotreloadsucks.com domain name courtesy of HoJo!