Construction Script doesn't get properties that are overridden on a map instance of object

Create a print. Add a text render component. In construction script, add a PrintString node with Text Render’s text.
Add an instance to map. Edit text. Look at output log. It’s still using default value of text render, not value you’ve set it to on this instance.
I’ve seen this same problem with floats and Booleans as well. Pulling values off of a child component in parent’s construction script seems to just have gotten broken. I’m generating things based on values in my construction script, and they always use default rather than values set for instance on map. For example, I’ve got a component that has a float on it, I build a text render to display value in construction script. TR always has default value, even though in editor properties window and at run time float value is correct. I’m pretty sure this worked a build or two ago.

Hey RickSaada,

Thanks for report! I was able to reproduce this in 4.9.2 and our internal build, so I’ve entered a bug report for issue (UE-21838). I’ll post here if I see any update. As you mentioned, this did not occur in 4.8.3.

For now, a workaround is to create a variable for property you’d like to update and set variable to Editable. Then in Construction Script, set property value to value of variable:


This way you can update variable in instance’s Details panel and it will update, as bug appears to only affect components and not entire instance. Hope that helps!

That doesn’t really work around problem. Floats and bools on component exhibit same bug. I’ve got a custom component I’m using and map instance overrides aren’t working there either. TextRender was just simplest repro I could hand you. I’d have to put variables on parent object instead of on component, and since I’ve got 20+ components hanging off main object this would be really awkward in our situation. Hopefully this can be fixed fairly soon, since it really breaks using blueprints with any kind of customization.



It should work around problem if you set variable to be Editable so it can be accessed on Actor rather than Component in Details panel, and set whatever component property to its value in Construction Script; I tested this with Scale (float) on Mesh components and bools for Visibility on components, etc, not only on Text Render. I understand it would involve a number of extra variables in your Blueprint, and possibly some awkward Construction Script layouts, but it should work around issue.

If you have an example that breaks blueprints, please let me know what it is, specifically, or create a small test project that demonstrates it and get me a download link. I unfortunately can’t give any kind of timeline on a fix for bug, so I’d like to offer any alternate solutions as possible.

This same bug seems to affect us too. Nice to see it has adressed in formal issue already.

We have same issue, which extends to location of components that are changed on an instance. For example, if construction script does a GetRelativeLocation on a component, it always gets default location of that component and not current location for that instance.

Just tested with 4.11 preview and bug is still happening. Do you have any updates on this?

Apologies; we do not have any updates at this time.

Been waiting for a fix for this bug for quite a few versions now. Sad to see that it keeps getting overlooked :frowning:

Still happening in 4.12.5. Happens with both CPP and Blueprint exposed variables. It makes construction script kind of useless for a component based workflow. I now set everything in BeginPlay, which is annoying since there is no feedback during edit mode.

I quickly made this debug project with an array, bool and float in both c++ and blueprint. They print variables in construction script. So just move orange sphere around and watch log to see they all do not work.

4.12.5 project for debugging issue (UE-21838)

This issue is still being investigated by our developers; however, there is currently no timeline for when a fix will be released.

Have a great day

This remains a bug in 4.12.5.
behavior I’ve noticed through C++ is that component’s constructors are being called after PostEditChangedProperty function is called, essentially throwing out component you make a change on and replacing it with default component, at least for purposes of objects for display in editor.

Hey Lightheart,

Here’s a link to issue on public tracker so you can keep an eye on its status: Unreal Engine Issues and Bug Tracker (UE-21838)

I’ll point out, it’s still an issue in 4.17.0.

Still a problem in 4.18 too :frowning:

Thanks for updates, issue is still being tracked in our database. I will update ticket to reflect fact that it’s still occurring.

A little surprised a bug of this magnitude has been known and unresolved for over a year…

We’ll have to work around it I guess

Edit: silly me. TWO years.

Created Oct 6, 2015
Updated Nov 8, 2017

This is still not fixed?! How can something so vital not be working o.O?

This is still not fixed?! How can something so vital not be working o.O?
Can you please chase this up?