Skip to content

Instantly share code, notes, and snippets.

View Natix1's full-sized avatar

Natix Natix1

  • 03:53 (UTC +02:00)
View GitHub Profile

A metatable in Lua defines various extraneous behaviors for a table when indexed, modified, interacted with, etc. They are Lua's core metaprogramming feature; most well known for being useful to emulate classes much like an OOP language.

Any table (and userdata) may be assigned a metatable. You can define a metatable for a table as such:

-- Our sample table
local tab = {}
-- Our metatable
local metatable = {
 -- This table is then what holds the metamethods or metafields