Assign TSubclassOf in C++ with existing object

I guess I just didn’t try enough things…

// "provided"
SpawnableItem = inItem->StaticClass();

// "change to"
SpawnableItem = inItem->GetClass();

it is probably because the inT->StaticClass() will return the UClass of the type as it was last known, and because it hasn’t been cast at that point it is still of type ( in this case AMyItemPickup instead of BPMyItemPickup)
while inT->GetClass() is returning the Class id that the item is regardless of what type the pointer was received as, so technically the signature could have been

// "not great for so many reasons"
bool RegisterSpawnable(UObject* inItem)

though that might have created a debug nightmare in a different way.