Comment Comment by vkka Lua gives you means to build your object system anyway you want. A trivial example to protect a table below: local p = { x = 1, y = 2 } print( p.x, p.y ) setmetatable( p, { __newindex = function() assert( false ) end, __index = function() assert( false ) end } ) print( p.z ) -- you get assertion failure p.k = 12 -- you get assertion failure too parent vkka 5 years ago