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

# Commands & exports

> Commands & exports — NEX Crafting.

## Chat commands

| Command                        | Who    | What it does             |
| ------------------------------ | ------ | ------------------------ |
| `/craftpanel` *(alias `/crp`)* | Admins | Opens the creator panel. |

The command names come from `settings.commands` in `settings/general.lua` — rename them there.

## Server exports

```lua theme={null}
exports.nex_crafting:GetBenches()
-- returns: array of bench tables (id, name, type, coords, access, etc.)

exports.nex_crafting:GetBench(benchId)
-- returns: a single bench table, or nil

exports.nex_crafting:GetRecipeGroups()
-- returns: array of recipe groups, each with its recipes and ingredients

exports.nex_crafting:HasBenchAccess(source, benchId)
-- returns: boolean. Runs the same access check the player sees.

exports.nex_crafting:CraftForPlayer(source, benchId, recipeIndex, skillPassed?)
-- triggers a craft as if the player ran it themselves.
-- `recipeIndex` is the position of the recipe inside its group.
-- `skillPassed` is optional; pass true to skip the skill check.
```

## Hooking your own scripts in

Use the exports to build your own UIs around the same data. A common pattern is a script that adds a "Quick craft" button to your phone — it calls `GetBenches()`, checks `HasBenchAccess()`, then `CraftForPlayer()` when the player picks a recipe.
