Cant save blueprint after hotreload, have repro

We have a class that inherits from PlayerState, if I change some code in it, some of our blueprints can no longer compile. The error message is:

Can’t save E:/Workspaces/****/Content/ThirdPerson/Blueprints/Nameplate.uasset: Graph is linked to private object(s) in an external package.
External Object(s):
HOTRELOADED_****PlayerState_0
/Engine/Transient

I am able to reproduce 100%, i can send our project its not that big yet.

Cheers
Jonas

Hi Amimoller,

What code did you change in the PlayerState? Can you post your code here so I can take a look?

It doesn’t matter what I add, even adding a simple float value will cause the error.
But in case it is something i wrote that is already there can I somehow send it to you privately?

I also noticed this weirdness in the blueprint that is no longer compiling. There is a reference to our playerstate, but the type seems to be prefixed with HOTREALO* somthing.

59641-cant+save+blueprint+after+hotreload,+have+repro.+-+ue4+answerhub+–+google+chrome.jpg

Does this occur in a clean, blank project with no additional content or is it limited to one project? Did this start occurring immediately in the project or did you change something specific before this error started to occur?

That happened in each and every of my projects so far. Happens whenever I change the content of a class/. Only happens when at least 1 variable in a blueprint is a ref to that class type.

What are the specific steps taken that reproduce this error on your end? What changes are made?

  • Open empty project.
  • Create c++ class.
  • Start editor.
  • Open any blueprint.
  • Create reference variable to the c++ class (actually to an instance, blue in the editor)…
  • Save.
  • Change header file in any way (not checked with .cpp, can test if that helps).
  • Compile.
  • Go back to editor.
  • Change something in the blueprint (moving a node counts, you don’t even have to recompile there).
  • Hit Save.

=> external objects error (like op stated)

This isn’t the first time I installed UE4 and this always happened for me. I assumed it was normal?!? This does not cause any problems if you do not change any blueprint that contains a reference to your c++ class.

Using:

  • windows 10 (7 before, had the same problem)
  • launcher version (not git) of the editor
  • Intel Core i5-3550 3.3 ~ 3.7 GHz
  • 16 gb RAM (1600 mhz)
  • nvidia geforce gtx 970 (650 ti before)

Let me know if you need more information.

Can you send your project? I’ll be happy to take a look. With the project, please let me know what specific class and blueprints I should be looking at so I can quickly reproduce this on my end. I attempted the steps above however I did not receive any errors.

I do not get far enough to reach that problem in my main project anymore. I could however replicate the problem breaking my main project on every hotreload atm: example project

  • open editor
  • open visual
  • add a new UPROPERTY(VisibleAnywhere, Category = “stuff”) (didn’t seem to matter what; int32, AActor *, Fstufftest)
  • compile
  • stuffstruct (variable in stufftester) goes missing after you try to compile and throws an error

Since my project uses a lot of pre-processing and absuses templates I am unable to not get this error on hot-reloading and am unable to demonstrate OPs error.

edit: There is no problem after restarting the editor. I normally don’t hot-reload because it always causes problems, so I’m not exactly sure when the problem changed to this one. Could have been 4.8->4.9.

Hi ,

Unfortunately due to our firewall I am unable to download your example project. If you could, please upload it to a trusted FTP service such as dropbox or google drive and I’d be happy to pull it from there to take a look.

Hi everyone,

I was able to reproduce this and have entered a bug report, UE-21554, to be assessed by the development staff. It seems as though this is limited to making changes within the declared struct within the header file as opposed to any change in the header file.

The same thing happens when you add the property to that class.

I also get this issue when I change something in any C++ class or Struct and then hotreload, then I always get this issue with saving one of my Blueprints. Refresh all nodes does fix this though, but only until I hotreload again.

Adding a new function or parameter to a function also causes this, it’s not limited to structs.