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

# Overview

> Framework-agnostic slot and weight based inventory for RedM with item instances, rarities, trading, plus optional vorp_inventory and rsg-inventory compatibility layers

DD Inventory is a full inventory system for RedM: slot and weight limits, item instances with real metadata, a currency system, and a full audit trail, all rendered in the Leyline interface.

With DD Inventory, players carry, stack, move, and trade items that keep their own identity: a rifle holds its own durability, a letter holds its own metadata, a quest item stays soulbound until it should not be. Other Dietrich Development resources such as DD Bank, DD Vendor, DD Mail, and DD Marketplace render straight inside the same panel through DD Inventory's secondary panel API, so your server ends up with one inventory experience instead of several different NUIs bolted together.

## Framework support

The inventory core calls no framework API. Identity, money, notifications and the character lifecycle all go through `dd_lib`, which detects at runtime whether `vorp_core`, `rsg-core` or neither is running and routes accordingly. The same build runs on VORP, on RSG and on a bare FXServer with no framework at all.

<Info>
  On top of that framework-neutral core sit two **optional** compatibility layers, so DD Inventory can replace the inventory your framework shipped with rather than sitting next to it. On VORP it answers the full `vorp_inventory` export surface, on RSG the `rsg-inventory` surface, so existing stores, banking, crafting and weapon resources keep running unmodified. A standalone server needs neither layer. See [Compatibility](/scripts/inventory/compatibility).
</Info>

Every row below is a property of the code, not a marketing claim. Where a framework needs a specific setting to make a feature work, the setting is named.

|                                                                         | VORP                      | RSG                                | Standalone                                                                                          |
| ----------------------------------------------------------------------- | ------------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------- |
| Slots, weight, stacking, splitting, sorting, search                     | yes                       | yes                                | yes                                                                                                 |
| Item instances and per-instance metadata                                | yes                       | yes                                | yes                                                                                                 |
| Rarities, live rarity editing                                           | yes                       | yes                                | yes                                                                                                 |
| Bind types, audit trail, secondary panel API                            | yes                       | yes                                | yes                                                                                                 |
| Player-to-player trading                                                | yes                       | yes                                | yes, item side only unless currencies are on `native`                                               |
| `currencyMode = 'framework'` (cash and gold are the framework's wallet) | yes, VORP money and gold  | yes, rsg-core `cash` and `gold`    | **not available**, set `currencyMode = 'native'`                                                    |
| `currencyMode = 'native'` (DD Inventory owns the balances)              | yes                       | yes                                | yes                                                                                                 |
| Account-wide premium balance (sigils)                                   | yes                       | yes                                | yes                                                                                                 |
| Slot purchases                                                          | yes                       | yes                                | yes with the default `slotPurchaseCurrency = 'sigils'`; cash or gold follow the currency row above  |
| Item catalogue import at boot                                           | from VORP's `items` table | from `RSGCore.Shared.Items`        | none, you register definitions yourself                                                             |
| `rarity` column written back into the framework's item table            | yes                       | no                                 | no                                                                                                  |
| Multiple characters per account                                         | yes, `charIdentifier`     | yes, `citizenid`                   | no, the account license is the identity                                                             |
| Notifications                                                           | `vorp:Tip`                | `RSGCore:Notify`                   | `chat:addMessage`, override recommended                                                             |
| Character-selection signal                                              | yes                       | yes                                | none, see limitations                                                                               |
| Compatibility layer                                                     | `vorp_inventory`          | `rsg-inventory`                    | not needed                                                                                          |
| Verification status                                                     | run in production         | not exercised on a live RSG server | detection, identity and logging paths verified; not run as a production deployment, see limitations |

Any of the bridge calls can be re-pointed at your own core, economy or notification resource through `@dd_lib/config/overrides.lua` without touching DD Inventory, which is also how you would drive it from a framework that is neither VORP nor RSG. See [Framework overrides](/scripts/inventory/setup#framework-overrides).

## Features

<Columns cols={2}>
  <Card title="Slots and weight" icon="weight-hanging">
    Slot and weight limits with configurable overweight tiers, from a light movement penalty up to a full sprint block.
  </Card>

  <Card title="Purchasable slot expansions" icon="square-plus">
    Default 40 slots, expandable to 160 through configurable purchase tiers. A temporary slot buff that expires never deletes an item, it just locks the slot visible until it is earned back.
  </Card>

  <Card title="Item instances" icon="boxes-stacked">
    Every physical item is its own database row, so serials, ammo counts, durability, and quest state all survive being moved, split, or traded.
  </Card>

  <Card title="Modular rarities" icon="gem">
    A fully modular rarity system, editable live from the console or an export, no restart required.
  </Card>

  <Card title="Three currencies" icon="coins">
    Cash, gold, and an account-wide premium currency, each with its own configurable label and icon, and a choice between running currency through the host framework's own money or keeping it fully self-contained in DD Inventory's own table.
  </Card>

  <Card title="Secondary panel API" icon="window-restore">
    DD Bank, DD Vendor, DD Mail, and DD Marketplace all render inside the same panel through it.
  </Card>

  <Card title="Audit trail" icon="clipboard-list">
    Every add, remove, move, swap, trade, and use is logged with a correlation id, actor, and detail payload.
  </Card>

  <Card title="Export surface" icon="code">
    Over 50 server exports covering inventory, currency, weight, rarity, and move or use validation hooks, documented in the [developer reference](/scripts/inventory/developers).
  </Card>

  <Card title="Admin commands" icon="terminal">
    Give, remove, transfer, and inspect items and inventories. Ace-gated and usable from RCON.
  </Card>

  <Card title="Drop-in compatibility" icon="plug">
    On VORP and RSG, existing stores, banking, crafting, and weapon resources keep running unmodified against their original export names.
  </Card>
</Columns>

## Player-to-player trading

Hold `Alt`, right-click another player, choose **Trade**. Both sides get a two-column offer view with item slots plus currency fields. Changing an offer resets both acceptances, so nobody can swap an item out at the last moment. The server verifies distance, free slots and balances before it settles. Settlement runs as a sequence of moves rather than a single transaction, so a failure partway through is reported but not rolled back. Soulbound, family-bound and already-bound items cannot be offered.

## Customization

* Configure currencies, slot tiers, weight tiers, sort order, trade limits, and bind-type restrictions in `config/config.lua`, the single place you configure the resource.
* Add or edit rarities live, in-game, without touching the database by hand.
* Point notifications, money, identity and logging at your own resources through the `dd_lib` override file, whichever framework you run or none at all.
* Every player-facing string lives in `config/language.lua`. English and German ship out of the box.

Both config files stay fully readable and editable after purchase - they are excluded from escrow, as are the framework compat shim and the NUI host indirection.

## Limitations

These are deliberate boundaries of v1, not bugs.

**All frameworks**

* **No degradation.** DD Inventory has no item-decay concept; every item reports 100% condition, so decay-priced stores treat everything as pristine.
* **Slot-based, not weight-based capacity.** `canCarryItems(src, n)` answers "are there at least *n* free slots". Scripts that passed a *weight* there will get a stricter answer.
* **No world drops.** There is no ground item system, so an item taken out of an inventory is not dropped into the world.

**VORP**

* **Weapons.** Weapons are modelled as items with their VORP fields in metadata, and using one equips it correctly. The original's deep client-side weapon subsystem - holster state, `used2` dual-wield semantics, weapon component visuals and world pickups - is not reproduced.

**RSG**

* **Unverified in production.** The RSG layer is built against the documented rsg-inventory API and its source, and has not yet been exercised on a live RSG server. Test on a staging server first.

**Standalone**

* **Currencies must be set to `native`.** With no framework present the money bridge has nothing to read, so the default `currencyMode = 'framework'` reports every balance as zero and every credit or debit fails. Switch to `currencyMode = 'native'`, which is covered in [Setup](/scripts/inventory/setup#currency-mode).
* **One identity per account.** With no framework there is no character record, so the account's license is used as the character id. A standalone server therefore has exactly one inventory per account and no multiple characters.
* **No character-selection signal, so no empty catalogue starter.** `dd_lib` has no standalone branch for the character lifecycle, and the item catalogue import has no source table to read. Both are covered in [Setup](/scripts/inventory/setup#running-without-a-framework).

The full list, per compatibility layer, is on the [Compatibility](/scripts/inventory/compatibility) page.

## Next steps

<Columns cols={2}>
  <Card title="Setup" icon="screwdriver-wrench" href="/scripts/inventory/setup">
    Installation, configuration, admin commands, and troubleshooting.
  </Card>

  <Card title="Developer reference" icon="code" href="/scripts/inventory/developers">
    Server and client exports, events, use handlers, and move validators.
  </Card>

  <Card title="Compatibility" icon="plug" href="/scripts/inventory/compatibility">
    The optional vorp\_inventory and rsg-inventory layers in detail.
  </Card>

  <Card title="Docs home" icon="book-open" href="/">
    Installation basics and links to every script.
  </Card>
</Columns>
