So I’ve been using UE4 since 4.0 and like hot-reload a lot. However, when it comes to components, there is one bug, that just totally sucks the value out of it. Basically, whenever you hot reload changes to a component, the component name gets mangled into something like “HOTRELOADED_<YourComponentName>_X”, where X is the number of times you have hot reloaded. If you have any references to this component in a BP, these automatically get changed to be this new component type. Unfortunately, the nodes they are connected to, still expect the old name. Your BP will now fail to compile because it is seeing as a different type by the BP compiler. This was reported as far back as the start of Feb or earlier, but still isn’t fixed.
Not stressing too much about this, but it is an annoying issue. Especially for something of a tent-pole feature of the engine and workflow of the editor. To get around this, you have to basically quit the editor and force a rebuild of the code.
.
PS: Directly related bugs:
UE-13070
UE-11427
UE-10151
Related issues:
PPS:
This also stops affected BPs from being able to be saved. As the BPs will reference an “private external reference”.
This has been a very annoying issue for me the past month. Sometimes to the point where I’ve lost work because I can’t save a file due to the error. =\
[=TommyBear;270477]
So I’ve been using UE4 since 4.0 and like hot-reload a lot. However, when it comes to components, there is one bug, that just totally sucks the value out of it. Basically, whenever you hot reload changes to a component, the component name gets mangled into something like “HOTRELOADED_<YourComponentName>_X”, where X is the number of times you have hot reloaded. If you have any references to this component in a BP, these automatically get changed to be this new component type. Unfortunately, the nodes they are connected to, still expect the old name. Your BP will now fail to compile because it is seeing as a different type by the BP compiler. This was reported as far back as the start of Feb or earlier, but still isn’t fixed.
Not stressing too much about this, but it is an annoying issue. Especially for something of a tent-pole feature of the engine and workflow of the editor. To get around this, you have to basically quit the editor and force a rebuild of the code.
.
PS: Directly related bugs:
UE-13070
UE-11427
UE-10151
Related issues:
PPS:
This also stops affected BPs from being able to be saved. As the BPs will reference an “private external reference”.
[/]
Hi Tommybear,
It looks like all three of the bugs you listed are marked as fixed and are potentially slated for 4.8. Keep an eye out for the engine release notes!
It looks like all three of the bugs you listed are marked as fixed and are potentially slated for 4.8. Keep an eye out for the engine release notes!
[/]
Hi ,
Well that is great news. Fingers crossed! Like I said, this totally nixes the benefit of hot reloads in general. That is especially true for component development, which is extremely useful for workflow. I have been moving more of my development from Actor based implementations to more modular component based dev. So this is very important to me as shutting down and starting up breaks that awesome clean flow.
It looks like all three of the bugs you listed are marked as fixed and are potentially slated for 4.8. Keep an eye out for the engine release notes!
[/]
Okay so I just tested the latest 4.8 promoted label. Looks like this issue is history in that build. Found one little bug though… I’ll file a bug report. Basically, if you have a component with a function (that’s blueprint callable), let’s say “void TestFunction(float value)”. You do all your hookup, call this function from a BP script, save your BP, then go and add another parameter so it is now “void TestFunction(float value, float value2)”, when the hot reload happens, the BP node placed in the BP script is still missing the “value2” pin. So when you try to compile the BP you get “Missing value2 pin. Fatal compile error has occurred”. You have to manually delete the call function node, and re add it before it will correctly add the pin.
Same issue with 4.26.1 .
My (not ideal) solution is to right click on nodes with “ERROR” and then “refresh nodes”. This will fix the error, but also break some links. The links are easy to fix. It is still annoying, but at least it is a way to fix the errors.
My (not ideal) solution is to close the Blueprint editor window (of the Blueprint that was using C++ code) before compiling, then compile and reopen it. Somehow object references were then not converted into the “HOTRELOADED” version.
Ok, sometimes this workaround works a dozen times and then it does not. I do not see a pattern.