Framework support
The inventory core calls no framework API. Identity, money, notifications and the character lifecycle all go throughdd_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.
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
HoldAlt, 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_liboverride 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.
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.
- 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,
used2dual-wield semantics, weapon component visuals and world pickups - is not reproduced.
- 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.
- Currencies must be set to
native. With no framework present the money bridge has nothing to read, so the defaultcurrencyMode = 'framework'reports every balance as zero and every credit or debit fails. Switch tocurrencyMode = '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_libhas no standalone branch for the character lifecycle, and the item catalogue import has no source table to read. Both are covered in Setup.
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.