> ## Documentation Index
> Fetch the complete documentation index at: https://docs.projectreal.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# getupvalue

> Returns one upvalue from a Lua function or stack level by one-based index. Invalid stack levels raise "Level out of range", non-Lua functions raise "Lua Function expected", indexes below 1 raise "Upvalue index starts at 1", and indexes past the available upvalues raise "Upvalue index out of range". debug.getupvalue is an alias.

Returns one upvalue from a Lua function or stack level by one-based index. Invalid stack levels raise "Level out of range", non-Lua functions raise "Lua Function expected", indexes below 1 raise "Upvalue index starts at 1", and indexes past the available upvalues raise "Upvalue index out of range". debug.getupvalue is an alias.

## Syntax

```lua theme={null}
getupvalue(target: function | number, index: number): any
```

## Aliases

* `debug.getupvalue`

## Arguments

| Name     | Type                 | Required | Description                                        |
| -------- | -------------------- | -------- | -------------------------------------------------- |
| `target` | `function \| number` | Yes      | Lua function or stack level whose upvalue is read. |
| `index`  | `number`             | Yes      | One-based upvalue index.                           |

## Returns

| Name      | Type  | Description                                 |
| --------- | ----- | ------------------------------------------- |
| `upvalue` | `any` | Value stored in the requested upvalue slot. |

## Example

Read one upvalue from a Lua closure or stack level.

```lua theme={null}
local captured = "ready"

local function target()
    return captured
end

print(getupvalue(target, 1))
print(debug.getupvalue(target, 1))
```
