debug.setmetatable Synchronous

Set an object’s raw metatable through the debug namespace. It follows the same behavior as setrawmetatable and returns the object you supplied.

Syntax
Luau
debug.setmetatable(
    value: Table | userdata | string,
    metatable: Table?
) -> Table | userdata | string

Parameters

Function parameters
ParameterTypeDescription
valueTable | userdata | stringTable, userdata, or string to update.
metatableTable?New metatable table, or nil to remove it.

Returns

Table | userdata | string

The original value.

Usage notes

A Roblox Instance is returned unchanged.

Example

Example
Luau
local object = {}
debug.setmetatable(object, { __index = function() return "missing" end })
print(object.unset) -- missing
Kawaii documentation