Download

Blueprints (especially extended components) reset all variable values every compile?

Seasoned Unity dev, making the jump over to Unreal.
I’ve come across something that MUST either be a bug or user error - I feel like i’m attempting to use the functionality in the correct manner (like a prefab in Unity) but the changes in my blueprint are not staying.

I’ve extended multiple components (e.g., UActorComponent to a Grabber.cpp/h), and have EditAnywhere on them. I can change the BP, and then everything works as intended. However, once i compile the PROJECT, ALL my blueprints and each of the components goes back to normal. This even takes place not only for MY variables, but also for variables under physics, collision, etc

I’ve created a stack overflow question about this too, which has code and more details…

Can ANYONE help a new Unrealer? I love it - this is just REALLY hindering my progress here…

Are you compiling project while the editor is running?

No.
I’m wondering if its tied to not “Save Current” after the changes? Is that necessary so that things wont revert?

If you don’t save changes and your assets/level have a (*) on labels it means changes haven’t been applied to it.
When recompiling or closing editor those unsaved things will obviously reset to default value.

I would SAVE the indidvudal assets/blueprints, but not the high level umap i guess (in the main scene). Using this button seems to be persisting the changes.
Interesting. I thought the compile would do all that.

Just smash the “Save All” button :stuck_out_tongue:

This is unfortunately still happening despite mashing the save button.
Here is another example.


UPROPERTY(EditAnywhere, Category = "Grab Setup")
USoundBase* pickupSound = nullptr;
UPROPERTY(EditAnywhere, Category = "Grab Setup")
USoundBase* dropSound = nullptr;


I set them within a BP that utilizes this ACtorComponent, SAve, save all, all that. and when i hit COMPILE, the references are gone.

And now this is broken for other

– The project was originally a BP project, but i’m adding in CPP code - does that matter?

Thoughts?