# Object The base class of all `class` types. ``` class Object { bool bDestroyed; class GetClass(); string GetClassName(); class GetParentClass(); virtualscope void Destroy(); virtual virtualscope void OnDestroy(); } ``` ### `bDestroyed` This object wants to be destroyed but has not yet been garbage collected. ### `GetClass` Returns the class type of this object. ### `GetClassName` Returns a string representation of the class type of this object. ### `GetParentClass` Returns the class type of this object's parent class. ### `Destroy` Destroys this object. Do not use the object after calling this. References to it will be invalidated. ### `OnDestroy` Called just before the object is collected by the garbage collector. **Not deterministic** unless the object is linked into the thinker list, in which case it is destroyed earlier in a deterministic setting. Not all `Thinker`s are linked into this list, so be careful when overriding this. Any `Actor` will generally be safe.