---
title: "debug.getmetatable"
description: "Returns a raw metatable bypassing protection."
---

```lua
debug.getmetatable(value: any): table?
```

---

## Aliases

None.

---

## Arguments

<ParamField body="value" type="any" required>
  The value used by this operation.
</ParamField>

---

## Returns

<ResponseField name="metatable" type="table?">
  The raw metatable, or nil if there is none.
</ResponseField>

Returns nil if there is no metatable.

**Related types:** [Debug types & behavior](/reference/debug/types).

---

## Example

```lua
local t = setmetatable({}, {__metatable = "locked"})
print(type(debug.getmetatable(t)))
```
