Skip to main content

Architecture at a Glance

Architecture at a Glance

How the resource is separated into editable configuration, public integration surfaces and protected inventory authority.

Applies to: Nord Inventory v2.0.0

Layers

Layer Purpose Typical files
Configuration Owner-editable policy and defaults config/*.lua
Shared definitions Categories, items, weapons and common utilities shared/*.lua
Bridges Framework/notify/TextUI/target/lock compatibility client/bridge/*, server/bridge/*
Runtime core Inventory authority, persistence, sessions server/core/*, client/core/*
Modules Admin, commands, vehicles, public SDK server/modules/*, client/modules/*
NUI Player inventory and Admin Studio web/*
Locales PT/EN visible strings locales/*.json
Database Persistent registry/state/history sql/nord_inventory.sql

Authority boundaries

  • The server owns item state, slot state, money bridge operations, metadata, durability and storage sessions.
  • The client owns presentation, input and a read-only local inventory snapshot used by client exports.
  • The NUI never grants itself permissions; administrative mutations are revalidated by the server.
  • Runtime providers register through explicit exports and are tracked by resource ownership.

Open vs protected release surface

The production package is designed for Tebex/Cfx Asset Escrow. Configuration, public bridge points, shared registries, locale files, SQL/reference files and item art stay owner-editable where appropriate. Core server authority remains protected.

Compatibility strategy

Integrations should prefer capability detection:

local caps = exports.nord_inventory:GetCapabilities()
if caps and caps.runtime_items then
    -- Register items dynamically.
end

This avoids assuming that every server uses the same optional features.