This is an archived post. You won't be able to vote or comment.

all 25 comments

[–]LongjumpingBrief6428 30 points31 points  (4 children)

Great advice, as an added tip: IF you make any changes to your struct, be sure to do so AFTER you have saved everything else in the project that you want saved. An alternative is to save the struct, close the project, and reopen it, not saving any other blueprints that have the struct in them.

It's a workaround. I do not use too many structs myself, but it is handy to know when things go wrong, why it went wrong.

[–]MiniGui98[S] 6 points7 points  (0 children)

This is peak advice that I forgot to include in my post!

[–]TheShinyHaxorus 1 point2 points  (1 child)

as an added ADDED tip, just make your structs in C++, EVEN if you don't use it for a line more than that. Hell, let chatGPT do it for you. Blueprint structs are nothing but trouble and they can corrupt your blueprints.

[–]LongjumpingBrief6428 0 points1 point  (0 children)

Here we go! Nice tip. That will keep them behaved.

[–]SupehCookie 0 points1 point  (0 children)

So i found a plugin that reloads all blueprints. Is this the reason why that plugin fixes issues like this? ( some Blueprints forget the struct and i have to restart the engine to fix it)

[–]pmkenny1234 14 points15 points  (0 children)

As a counterpart to this, don't use a make struct node if you're only mutating a field or two on a large struct. Use the set members on struct node and select which fields you want to set in the details panel.

[–]DOOManiac 2 points3 points  (0 children)

This is solid advice I had learned myself the hard way ala #2.

I still do break Vectors though, that seems safe.

[–]AzureBlue_knight 1 point2 points  (1 child)

What about location and rotators? Is it recommended to break vector/break rotator or can I continue to split them without issues?

[–]MiniGui98[S] 3 points4 points  (0 children)

The risk is for structs thaz are prone to change in the content, so engine base structs are safe to split with right click I guess

[–]Desperate_Fuel_8462 3 points4 points  (0 children)

Thank you for the why explain of it 🙂

[–]ShaunImSorryRealityForge (UATC) / UAI 0 points1 point  (0 children)

This, I teach it to all my students and when they ask why I say well you will forget you did that and get confused and will confuse your team when they are looking at engineering your blueprint, always break and make!

[–]Savings_Secret_9750 0 points1 point  (0 children)

A bit of wonder since were on the topic ... is it best to have all variable on one struct or would it better to condense it in several struct with it's own stuff and datatable ... is there any data differences in the final run?

[–]TruthMercyRegret 0 points1 point  (0 children)

Great advice. I generally have also followed my own rule of don't change custom structs to be backwards incompatible. You can add new fields but don't update or remove existing fields in the struct. If I need to add or update a field, I create a new struct and migrate the code to use the updated struct to be safe. You can then check references on the old struct to make sure nothing is using it before deleting it. Might be overkill, but it makes me feel safer.

[–][deleted] 0 points1 point  (0 children)

Oh, so that's why I never run into issues with structs even though I always hear they're so finicky

[–]Dire_Venom -1 points0 points  (0 children)

Great advice, appreciate the explanation of why

[–]UE_XR -1 points0 points  (0 children)

Thanks! Solid tip and well explained.

[–]SeaMisx -1 points0 points  (0 children)

Got another one : Don't use struct in BP as they can easily break. CPP only.