“this” can be invalid when object is removed from memory during exec his code. To prevent object to be garbage collected hold it in variable with UPROPERTY() macro, so it will be visible in reflection system that it’s referenced somewhere and in use.
In case of that object is not refrenced anywhere and you want it to stay alive set RootSet flag to class ( Something->SetFlags(RF_RootSet); ), but keep in mind if you set that flag garbage collection won’t collect it, so you need to take care of removing it if needed (if you create only one for entire time, you don’t need to, when you close process whole it memory will be freed)
This character is a main character of players. So all player will play one copy of this and when disconnecting this object have to be deleted. If I add this flag when 1 player disconnecting, server will crash