I’ve always felt the TSoftObjectPtr isn’t meant to be the normal reference to the object, more a helper. You have to ground it somewhere to avoid GC. There are some hack’y ways around this but you’re better off storing a hard reference to the object.