Skip to main content
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.
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.
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. 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.

Features

Slots and weight

Slot and weight limits with configurable overweight tiers, from a light movement penalty up to a full sprint block.

Purchasable slot expansions

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.

Item instances

Every physical item is its own database row, so serials, ammo counts, durability, and quest state all survive being moved, split, or traded.

Modular rarities

A fully modular rarity system, editable live from the console or an export, no restart required.

Three currencies

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.

Secondary panel API

DD Bank, DD Vendor, DD Mail, and DD Marketplace all render inside the same panel through it.

Audit trail

Every add, remove, move, swap, trade, and use is logged with a correlation id, actor, and detail payload.

Export surface

Over 50 server exports covering inventory, currency, weight, rarity, and move or use validation hooks, documented in the developer reference.

Admin commands

Give, remove, transfer, and inspect items and inventories. Ace-gated and usable from RCON.

Drop-in compatibility

On VORP and RSG, existing stores, banking, crafting, and weapon resources keep running unmodified against their original export names.

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.
  • 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.
The full list, per compatibility layer, is on the Compatibility page.

Next steps

Setup

Installation, configuration, admin commands, and troubleshooting.

Developer reference

Server and client exports, events, use handlers, and move validators.

Compatibility

The optional vorp_inventory and rsg-inventory layers in detail.

Docs home

Installation basics and links to every script.