No idea how packaging works

I read through the documentation on Packaging but it still seems very vague and hand-wavy.

I just want to understand what gets packaged and how to make things become packaged so that it runs the same way as it does in the editor simulation.
I believe that everything in my content folder and in the world gets packaged?

For my specific example, I have a custom data asset with some UPROPERTYs that are set with some default values inside the constructor of my data asset. Some of my UPROPERTYs are custom Structures that in turn have UPROPERTYs in them.

Do these UPROPERTY values get serialized when I package the game? Ideally I’d just like to create an instance of my custom data asset with its default values and save it into the content browser. Then I add it to one of my components in the world. Now when the world gets packaged, I’d like the custom data asset to show up there with its saved data in the component. Currently when I do this, all my UPROPERTYs are not set from the editor. It seems to me like the serialization process doesn’t work the way that I expected it to. Can what I expect be achieved? If so, how?

So you created a C++ class that inherits from UObject with some UPROPERTY’s, then created a blueprint child class based on it and edited the default values? So you want the settings in the blueprint class to be globally identical and readable from components? In that case, have a “UPROPERTY() TSubclassOf<UMyDataClass> DataClass” in C++ or blueprint equivalent, and reference the BLUEPRINT CLASS rather than the original C++ class. Then you can acess the default settings of the blueprint class, which will be serialized. And to your other question no by default only specified levels and assets referenced within them get packaged, you can choose to package everything in the content folder however.