Performing a hot reload after modifying game code (plugin code is unmodified) does not also reload plugin modules. In the attached project, there are some log messages output when the plugin module is started and shut down. Neither of these messages are displayed in the Output Log when a hot reload is performed.

The plugin also contains a static variable that has a default value of 4. When the plugin module is started, the value is set to 2. This works fine when the project is first opened in the Editor, but when the project is hot reloaded the variable will return to its default value. Using the Modules window to reload or recompile the plugin module does not update the variable's value correctly even though the log messages showing that the plugin module was shut down and started again do appear correctly.


Steps to Reproduce
  1. Download the attached project.
  2. Associate the project with your version of the Engine.
    • Project was created in Main, CL 4166777.
  3. Build the project in Visual Studio.
  4. Open the project in the Editor.
  5. Make sure the Output Log window is open and visible.
  6. Start PIE.
    • The Output Log shows the following message: "Value inside game code is 2"
  7. Open the MyActor.cpp file in Visual Studio and add a comment anywhere in the file.
  8. Build the project in Visual Studio to trigger a hot reload in the Editor.
  9. When the hot reload completes, start PIE.

The plugin module is not reloaded, and its static variable is no longer referenced correctly which is seen by the Output Log now showing the following message: "Value inside game code is 4"

The plugin module is also reloaded, and its static variable is still correctly referenced.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-61259 in the post.

Login to Vote

Won't Fix
CreatedJun 28, 2018
ResolvedAug 18, 2021
UpdatedAug 18, 2021