Download

UE4 Not Compiling Changes that I've Made To Code Without Restart

I am fairly new to two the UE4 side of c++ and made a two simple Actor components

  1. Outputs a warning log to the console with that actor’s position X,Y,Z.
  2. Rotates a door 90 degrees along the yaw (Z axis)

The issue is that the UE4 editor often doesn’t see the changes I’ve made to the code,.

Links to the two components in question: Imgur: The magic of the Internet (Both of these are in the BeginPlay()

However after saving the code in VS then pressing the compile button in the UE4 toolbar, the door fails to rotate, and a half finished output from the PositionReport component logs.

Image of old position report output: Imgur: The magic of the Internet

This output was from earlier when my script was missing the GetLocation() method before .ToString().

Things I have tried:
-Saving the Files in VS then compiling from the toolbar.
-Building the solution in VS, then pressing play in the editor

What Works:
Restarting the editor and VS, then relaunching both of them (I don’t believe I should need to do this)
Videos and online sources say restart should only be needed when a new function/ class is created.

Thank You to anyone taking time out of their day to help me out, appreciate it.

I have the same ■■■■ problem, man. Have you found out something?

I had this problem but it resolved for me after I:

Make a verifiable code change in visual studio.
Shutdown VS.
File-> Refresh VS Project in Unreal
File → Open Visual Studio in Unreal
Build → Rebuild Solution in Visual Studio
Play in Unreal to verify that worked.
Make a second verifiable code change in Visual Studio.
Compile button in Unreal.
Play in Unreal to verify that worked as well.

I’m on Unreal 4.26.0 if anyone comes across this from google like I did. I know the post is from 2017 haha

Looks like you have set the rotation in the constructor method. Which will set the default values for newly created actors of that class. These changes will not reset the values for your actors in most situations. You can try to reload the level or you have to put that code somewhere else.