Thanks for the answer! I was refactoring most of my code to work with Smart Pointers, but then realized that most of my Structs only need to store value types anyways, and the ones that wanted references/pointers to other structs would just have to be removed.
The reason behind this is becuase FSpriterSCON is stored as a UProperty inside of a UObject that gets created by a File Factory.
So everytime that UObject was serialized and then reloaded the pointers/references would be NULL because they cant be UPropertys. Also dont ever try and create a Shared Pointer of a value type that wasnt created on the heap/ or if its a UProperty, cause i guess Smart Pointers and UPropertys dont know about eachother’s reference counts.