Garry's Mod Wiki

getmetatable

  any getmetatable( any object )

Description

Returns the metatable of an object. This function obeys the metatable's __metatable field, and will return that field if the metatable has it set.

Use debug.getmetatable if you want the true metatable of the object.

If you want to modify the metatable, check out FindMetaTable

Arguments

1 any object
The value to return the metatable of.

Returns

1 any
The metatable of the value. This is not always a table.

Example

Use a table's metatable and alter it.

print(getmetatable(Pupil).__index.GetName(Pupil)) -- getmetatable(Pupil) will return Pupil_meta. -- Same as print(Pupil:GetName()) -- This is what the Lua interpreter basically does. (When __index is a table.) getmetatable(Pupil).SetName = function(self, newName) self.name = newName end -- We're adding a new method to Pupil's metatable print(getmetatable(Pupil).GetName(Pupil)) -- Still the same, because Pupil_meta.__index is Pupil_meta.
Output: "John Doe"