Plugin development and hot reload not working

Ok, so this is somewhat annoyingly painful: I’m developing a plugin with Blueprint functionality. The hot reload simply does not seem to work with plugins, when I add a new UFUNCTION to my UBlueprintFunctionLibrary it does not appear in the Blueprint editor after hot reload. As this is my first ever plugin it took me hours to figure out what I was doing wrong (that is, nothing!) - you have to restart the editor in order to see any plugin changes. This is a really painful workflow, restarting the editor to test changes, I really hope this gets fixed.

Hot reload does not work with plugins, this is true. However, you can recompile plugins in-editor. Go to Window->Developer tools->Modules and find your module. Click Recompile and it should hot reload your plugin.

You may not have this window in a content-only project. Some things can not be hot-recompiled, such as some Slate functionality.

3 Likes

Hi ,

Thank you for your report, I have entered a feature request for Hot Reload to be usable with plugins.

[= ;204497]
Hi ,

Thank you for your report, I have entered a feature request for Hot Reload to be usable with plugins.
[/]

Thank you, much appreciated! :slight_smile:

Are there any news on implementing hot reload for plugins? I heard in the latest stream, that there will be some updates for the plugins system in 4.8. Could it be, that hot reaload will be out with it?

It would be very appriciate to have possibility for hot reloading plugins just from VS. I do test on Actor in UE 4.10.1 and it seems that it is not working.

Usually Recompile in Modules development window should hot reload plugin.

It seems I cannot find this “Modules development window” under Window -> Developer Tools. Is there a reason why?

Even cold reload doesn’t always work. Sometimes if you add or remove parameters to a blueprint function defined in a plugin, the node in a blueprint will not update. :stuck_out_tongue:
Then you have to delete Saved and Intermediate folders and do a full rebuild.

Hello guys, maybe it’s late, but i made a tutorial for developing plugins using the hot reload feature. I’m using a workaround for that (creating game modules first and converting them to a plugin later).

https://www…com/watch?v=jvkFrETmCoA&list=PL7Se41ZzAKZmvCeW9iBpEuh_hxD7bMqMF&index=1

[=“JaredTherriault, post:2, topic:18675”]

Go to Window->Developer tools->Modules and find your module. Click Recompile and it should hot reload your plugin.
[/]

You are the best person in the world right now. Why on earth could I not find this data so much sooner. Worked like a charm!

1 Like

Necro but this is important - I learned recently that plugins are supported by Live Coding!

Live Coding is the successor to hot reload and works a LOT better, though still has some limitations.

Structs can’t be easily reloaded when changing members and any slate widgets will need to be instantiated on the fly (so if you have a tab spawner that takes in a widget argument, it won’t respect live coding changes after it’s created the widget for the first time, but you can work around this by having the tab spawner spawn a widget that spawns widgets on focus or something).

That said, it’s so nice to be able to make a change to a plugin, hit ctrl+alt+f11 and in less than 60 seconds, boom. Plugin updated :slight_smile:

1 Like

Except in 4.27.2. There it doesn’t even work in a blank project.

5.1. Works again.

A real pleasure to work with this

Works in 4.27.2 for me (plugin development).

Interesting! I’ve even tried with a blank project.

  1. Create blank 4.27.2 C++ project
  2. In the editor go to Edit->Plugins->New Plugin
  3. Restart editor
  4. Change something in the [PluginName].cpp file, e.g. in OnSpawnPluginTab
  5. In the editor, hit ctrl + alt + f11 to invoke live coding
  6. no changes detected

The steps above work in a blank 5.1 project, or even when I upgrade an existing 4.27.2 project. But so far not in 4.27.2.

Did you make any config changes or similar?

I got it to work in 4.27.

I went to [ProjectFolder]\Plugins\[Plugin Name]\Intermediate\Build\Win64\UE4Editor\DebugGame\WFCEditor\Module.[Plugin Name].cpp and edited the file. I just added // at the bottom. This made livecoding start picking up changes in my plugin source files.