Access to a global default object is required in order to patch vtables Normally this can be provided by a default-constructed object. For objects without default constructors, a default object must be provided through the global function GetDefault()THasCustomDefaultObject::Value must be specialized to true for these types. This is done by default for any UObject-derived types, which already provide GetDefault()