---
title: "Metatables"
description: "Raw metatables, mutability, and thread identity."
icon: "braces"
---

## Available functions

<div className="byte-function-directory">
<CardGroup cols={2}>
  <Card title="getidentity" href="/reference/metatables/getidentity">
    Reads the current thread's identity.
  </Card>
  <Card title="getnamecallmethod" href="/reference/metatables/getnamecallmethod">
    Reads the thread's current namecall atom.
  </Card>
  <Card title="getrawmetatable" href="/reference/metatables/getrawmetatable">
    Returns the actual metatable, ignoring __metatable protection.
  </Card>
  <Card title="hookmetamethod" href="/reference/metatables/hookmetamethod">
    Hooks an existing function-valued metamethod and returns the original callable.
  </Card>
  <Card title="isreadonly" href="/reference/metatables/isreadonly">
    Reads a table's native readonly flag.
  </Card>
  <Card title="isuntouched" href="/reference/metatables/isuntouched">
    Reads a table's native safeenv flag.
  </Card>
  <Card title="makereadonly" href="/reference/metatables/makereadonly">
    Sets a table's readonly flag.
  </Card>
  <Card title="makewriteable" href="/reference/metatables/makewriteable">
    Clears a table's readonly flag.
  </Card>
  <Card title="setidentity" href="/reference/metatables/setidentity">
    Updates the calling thread's identity and capabilities through the scheduler.
  </Card>
  <Card title="setnamecallmethod" href="/reference/metatables/setnamecallmethod">
    Changes the current thread's namecall atom.
  </Card>
  <Card title="setrawmetatable" href="/reference/metatables/setrawmetatable">
    Sets the raw metatable and returns the original value.
  </Card>
  <Card title="setreadonly" href="/reference/metatables/setreadonly">
    Sets a table's native readonly flag.
  </Card>
  <Card title="setuntouched" href="/reference/metatables/setuntouched">
    Updates the native safeenv flag on a table or the environment of a function/thread.
  </Card>
</CardGroup>
</div>
