# Installation (/docs/orbit-studios-resources/orbit-craftingsystem)



# Installation [#installation]

`orbit-craftingsystem` is Orbit Studios' configurable crafting resource for stations, benches, blueprints, crafting levels, XP, and optional crafting minigame odds.

<Callout type="warn" title="Required order">
  Start `orbit-lib`, `ox_lib`, `oxmysql`, your target resource, and your inventory before `orbit-craftingsystem`.
</Callout>

This page gets the resource running. Use the configuration page when you are ready to add your own craftable items, benches, stations, blueprint requirements, webhook logging, and image paths.

<Cards>
  <Card title="Dependencies" description="Required resources, supported inventories, target resources, and start order." href="/docs/orbit-studios-resources/orbit-craftingsystem/dependencies" />

  <Card title="Configuration" description="Stations, benches, blueprints, levels, crafting odds, images, and webhooks." href="/docs/orbit-studios-resources/orbit-craftingsystem/configuration" />

  <Card title="Exports" description="Server and client exports for blueprints, player levels, item data, and bench helpers." href="/docs/orbit-studios-resources/orbit-craftingsystem/exports" />

  <Card title="Commands" description="Developer command for creating blueprint items." href="/docs/orbit-studios-resources/orbit-craftingsystem/commands" />

  <Card title="Language Support" description="Available locale files and ox_lib locale setup." href="/docs/orbit-studios-resources/orbit-craftingsystem/language-support" />

  <Card title="Troubleshooting" description="Fix UI, images, stations, benches, and developer command issues." href="/docs/orbit-studios-resources/orbit-craftingsystem/troubleshooting" />
</Cards>

## File Structure [#file-structure]

<Files>
  <Folder name="resources">
    <Folder name="[orbit]">
      <Folder name="orbit-lib" />

      <Folder name="orbit-craftingsystem">
        <File name="fxmanifest.lua" />

        <Folder name="shared">
          <File name="config.lua" />
        </Folder>

        <Folder name="server">
          <File name="config.lua" />

          <File name="server.lua" />
        </Folder>

        <Folder name="client">
          <File name="client.lua" />

          <File name="nui.lua" />
        </Folder>

        <Folder name="locales">
          <File name="en.json" />

          <File name="sv.json" />
        </Folder>
      </Folder>
    </Folder>
  </Folder>
</Files>

## What You Edit [#what-you-edit]

Most server owners only need the two config files:

<Files>
  <Folder name="orbit-craftingsystem">
    <Folder name="shared">
      <File name="config.lua" />
    </Folder>

    <Folder name="server">
      <File name="config.lua" />
    </Folder>
  </Folder>
</Files>

Use `shared/config.lua` for gameplay rules such as craftable items, benches, stations, blueprint requirements, levels, and XP. Use `server/config.lua` for image URLs, webhooks, and server-side hooks after crafting attempts.

## Installation [#installation-1]

<Steps>
  <Step>
    ### Configure orbit-lib [#configure-orbit-lib]

    Set your framework, target, inventory, notifications, and progress provider in [`orbit-lib`](../orbit-lib).
  </Step>

  <Step>
    ### Configure crafting [#configure-crafting]

    Edit `shared/config.lua` for stations, benches, blueprints, XP, and access rules. Edit `server/config.lua` for image URLs and webhook logging. Keep item names exactly the same as your inventory item names.
  </Step>

  <Step>
    ### Ensure resources [#ensure-resources]

    ```properties title="server.cfg"
    ensure oxmysql
    ensure ox_lib
    ensure [framework-resources]
    ensure [inventory]
    ensure [target]
    ensure orbit-lib
    ensure orbit-craftingsystem
    ```
  </Step>

  <Step>
    ### Test one station or bench [#test-one-station-or-bench]

    Join the server, walk to one configured station, and confirm the target opens. If it does not, check the target resource, station coords, job/gang access, and the server console before adding more recipes.
  </Step>
</Steps>

## Framework Notes [#framework-notes]

<Tabs groupId="framework" items="['ESX', 'QB', 'QBX', 'Standalone']">
  <Tab value="ESX">
    Use `Config.Framework = 'esx'` in `orbit-lib`. Jobs in crafting access rules should match ESX job names and minimum grades.
  </Tab>

  <Tab value="QB">
    Use `Config.Framework = 'qb'` in `orbit-lib`. Jobs and gangs should match QBCore names and minimum grades.
  </Tab>

  <Tab value="QBX">
    Use `Config.Framework = 'qbx'` in `orbit-lib`. QBX gang and job access works through normalized data from `orbit-lib`.
  </Tab>

  <Tab value="Standalone">
    Use `Config.Framework = 'standalone'` in `orbit-lib`. Crafting can still run, but any job, gang, player name, money, or usable-item behavior depends on the standalone adapters you configured in `orbit-lib`.
  </Tab>
</Tabs>
