Can I change BP actors' variables default values with a Editor Utiility?

An example:

I have to populate a level with dozens of BPs like these four:

On BeginPlay. each BP reads and updates its text content from a DataTable.

I Need to manually compose dozens of these BPs, but that composition (sizes, position, word wrapping, etc) dependos on content, and I can not see that content in the editor. I only see the real texts runtime. The only way i’ve found to see the final content in the editor is setting those values one by one on creation, manually copypasting from the datatable.

I’d like to automate that job. I’d need a BP, script or utility that reads the DataTable and updates those variables defaults, as they appear in editor. Those default values must be stored somewhere within the project, so this might be possible.

Does it exist?

why u use begin play instead of use contruction script? :face_in_clouds:

Both Construction Script and BeginPlay of BP actors are called BEFORE the DataTables are read. DataTables with final data are on the cloud. Depending on your internet connection it can take up to 3-4 secs to read them all.

In fact, I’m already using the Construction Script to make those text components match those variables, that’s why the say “default 1, 2, 3, 4” instead of the usual “Text” ( which is the default Tex tRender Component value).

thaks @Husky211

Really need this. Would make my next two or three weeks much easier.

So BUMP! (and sorry)

What you are showing here is not defaults but instance values.

Defaults are when you edit the blueprint itself, and afaik those cannot be changed in editor without some c++ help.

Here all you have to do is find (or spawn) the actor in the scene/world and update its variables values.

1 Like

" all you have to do is find (or spawn) the actor in the scene/world and update its variables values"

Yeah, that’s what I do on BeginPlay. but it only happens in runtime.

In fact, the array they take the final texts from is not present until it’s created from a DataTable in Event Init at Game Instance.

That’s why I was looking for a kind of Editor Utility, able to read the DtaTable, create that array in memory and dump the text values in the BP instances, without playing the game.

Anyway, I’m resigned to enter all those text by hand. That’s life!

Thak you @Chatouille

No you can do that from blueprint utility widget.
Create a button that fetches data table, then iterate world actors (get all actors of class…) and set their property values based on their ID (or spawn them).

1 Like

Working! I just had to copypaste all the content array creation procedure from my Game Setup into the Editor Utility, so it creates it’s own content source for the updates.

Thanks again @Chatouille

Hey, @Chatouille

Still struggling with these issues. I’ve just posted a new thread explaining where I am.

If you could take a look at it…

Haven’t looked in depth yet, but at quick glance it looks like a race condition between parent and child. Event construct might be slightly too early to run your update thing. Have you tried adding a simple delay? Construct → Delay 0.1 → Update contents

1 Like

Hey!

Sorry I missed your answer. Just seen the notification.

On that thread Jared suggested a workaround that is working, but I’ll test this anyway because, now you mention it, I’ve already had some timing issues in this development. Systems that did not work reliably until I set tasks in an order that leaves some “breath” to certain operations.

Thanks @Chatouille !