<script>
	import Callout from '$lib/components/Callout.svelte';
</script>

Nothing here requires editing files inside dd-cards. Every step is either a server file you already
own or a config option.

## 1. Dependencies

dd-cards needs the standard set covered in [Requirements](/docs/general/requirements) — `ox_lib`,
`oxmysql`, one framework (`qbx_core` or `qb-core`) and one inventory (`ox_inventory` or
`qb-inventory`). If your server already runs other resources of mine, you have all of it.

**Optional.** dd-cards detects these and uses them if they are running, and works without any of
them:

- `ox_target`, `qb-target` — third-eye interaction with the fabric ped. With neither installed, a
  walk-up prompt is used instead.
- `qb-menu` — menu style, if you would rather not use ox_lib's context menu.
- `lb-phone`, `npwd`, `qb-phone` — delivers "your order is ready" as a phone mail instead of an
  on-screen notification.

## 2. The resource

Drop the `dd-cards` folder into your resources directory and start it **after** ox_lib, oxmysql,
your framework and your inventory:

```cfg
ensure ox_lib
ensure oxmysql
ensure qbx_core        # or qb-core
ensure ox_inventory    # or qb-inventory
ensure dd-cards
```

<Callout type="warning">
Start order matters. dd-cards resolves its framework and inventory bridges at boot by checking
which resources are already started. If it starts first it will error out with
`no supported framework found` even though the framework is in your server.cfg.
</Callout>

## 3. Database

**Nothing to do by default.** `Config.AutoInsertSql` is `true`, so dd-cards creates its two tables
on first start.

To import by hand instead, run `install/sql/dd-cards.sql` against your database and set
`AutoInsertSql = false` in `config/server.lua`.

Either way it is safe to repeat — the file contains only `CREATE TABLE IF NOT EXISTS`, so it never
touches, resets or migrates data that is already there. See [Database](/docs/dd-cards/database) for the schema.

## 4. Items and images

dd-cards does not register items itself; they belong to your inventory. Open the file for the
inventory you run and follow it:

- `install/inventory/ox_inventory.txt`
- `install/inventory/qb-inventory.txt`

Both also need the six images from `install/inventory/images` copied into your inventory's image
folder, or the items show as broken icons.

The full item definitions are reproduced on the [Items & images](/docs/dd-cards/items) page.

## 5. Configuration

Every option is commented in place inside the resource, and documented here:

| File                                                  | Covers                                                                        |
| ----------------------------------------------------- | ------------------------------------------------------------------------------ |
| [`config/client.lua`](/docs/dd-cards/configuration/client) | Fabric locations, peds, blips, interaction method, menu style, walk-up prompt |
| [`config/shared.lua`](/docs/dd-cards/configuration/shared) | Materials, prices, job fees, rush, printing time, box sizes, item names       |
| [`config/server.lua`](/docs/dd-cards/configuration/server) | Database, freehand drawing, payment, notifications                            |

## Locales

Player-visible text lives in `locales/en.json`. dd-cards follows ox_lib's locale convar, so set it if
you are not running English:

```cfg
setr ox_locale "en"
```

Adding a language is covered on the [Localization](/docs/dd-cards/configuration/localization) page.
