I have to complain about the structure

After using ‘struct’ in the project, an error occurs during packaging, stating ‘unknown struct’ when trying to modify the content of the struct. All objects that reference the modified ‘struct’ need to be manually refreshed, which is very cumbersome and becomes increasingly frustrating in the later stages of the project.

I wonder if this is an individual issue or a common one. I tend to think it is a common issue because this problem has existed since I used version 5.2 to 5.6 of the UE engine. I hope it is caused by my incorrect operations. Is there anyone who understands this issue or has a solution? Thank you.

I’ve had my fair share of Structure issues too, so you’re not alone on that.

From what I have understood, the only good workaround is by creating them in C++, and then implementing them in your project.

You do not have to turn your Blueprint project (I’m assuming it is) into a full C++ to have C++ classes in it. You can use Plugins for that and you can even make your own (plugins). It’s fairly simple and highly effective. I recommend you doing that whenever needed.

I personally haven’t used any native C++ Structure yet, but I might do so in the future from day 0, just to keep things running smoothly and to avoid potential drawbacks, like the ones you have mentioned, and like the ones that I had that broke my Data Tables, for example.

I also believe that this issue has been plaguing U.E. for a long time actually… I have no idea when it’s gonna be fixed, if it ever will.

Agreed that working in C++ is the only way to get around the problems. What’s worse, (I and community) tested the Core Redirector on structs (BP to C++) and that doesn’t work. So you do end up recreating the whole thing. Many people stick with Blueprints for too long thinking C++ is a new step too big or too time consuming, while in the end BP is the time consumer.

So I don’t understand why node refreshes aren’t automatically run when the structure is modified, since refreshing can solve the issue. Moreover, if we have solutions, why has this basic error been retained for such a long time?

In my opinion, this is a workaround that avoids the problem, but the issue still exists. Currently, it seems there is no more convenient way, and I hope it can be fixed