I’m describing how it functions on an engine level to handle the casting behavior when you use the Cast function. You wouldn’t cast to anything besides the class you want, and failing returns a nonsense pointer. On an engine level that function is comparing the presence of properties, that the properties present within an object match the properties in the definition of the class. isn’t a value comparison.