# Exports (/docs/orbit-studios-resources/orbit-craftingsystem/exports)



# Exports [#exports]

Use server exports from another server script and client exports from another client script. Calling a client export from server code, or a server export from client code, will not work.

<TypeTable
  type="{
  CreateBlueprint: {
    type: 'server export',
    description: 'Creates a blueprint item for a player. Signature: CreateBlueprint(targetPlayer, blueprintName, amount). Returns true or false.',
  },
  getPlayerLevel: {
    type: 'server export',
    description: 'Returns the player crafting level and XP. Signature: getPlayerLevel(source).',
  },
  getItemData: {
    type: 'server export',
    description: 'Returns station, bench, or blueprint item data. Signature: getItemData(isStation, id, itemName, nonBlueprint).',
  },
  previewProp: {
    type: 'client export',
    description: 'Starts the client bench prop placement preview. Signature: previewProp(benchName, propName, metadata, slot).',
  },
  checkNearbyBenches: {
    type: 'client export',
    description: 'Checks nearby benches for a blueprint or bench item. Signature: checkNearbyBenches(blueprintName, metadata, slot).',
  },
}"
/>

## Server Examples [#server-examples]

```lua title="resources/[custom]/server/main.lua"
local source = source
local created = exports['orbit-craftingsystem']:CreateBlueprint(source, 'weapon_pistol', 1)

if not created then
    print('[my-resource] Blueprint could not be created')
end
```

```lua title="resources/[custom]/server/main.lua"
local level, xp = exports['orbit-craftingsystem']:getPlayerLevel(source)
print(('Player level: %s, XP: %s'):format(level, xp))
```

```lua title="resources/[custom]/server/main.lua"
local itemData = exports['orbit-craftingsystem']:getItemData(true, 'weapon_station', 'weapon_pistol', false)

if itemData then
    print(('Base odds: %s'):format(itemData.baseOdds))
end
```

## Client Examples [#client-examples]

```lua title="resources/[custom]/client/main.lua"
exports['orbit-craftingsystem']:previewProp('weapon-crafting_bench', 'prop_tool_bench02', nil, nil)
```

```lua title="resources/[custom]/client/main.lua"
exports['orbit-craftingsystem']:checkNearbyBenches('weapon_pistol', nil, nil)
```

The client helpers are mainly useful for advanced integrations. For normal setup, let the included bench item and blueprint item handlers call them automatically.
