Durability Repair Items

Durability Repair Items

Internal repair consumables and the public durability API.

Applies to: Nord Inventory v2.0.0

Durability repair items

Nord Inventory can create internal usable items that restore durability on a specific target item without relying on another script.

Admin Studio

In Behavior → Use behavior, keep the handler on Internal (Nord) and set:

Nord only consumes the repair item when durability was actually restored.

Lua definition

['weapon_cleaning_kit'] = {
    label = 'Weapon Cleaning Kit',
    weight = 250,
    stack = true,
    close = true,
    use = {
        duration = 3500,
        actionText = 'Repairing with {item}',
        remove = 1,
        repair = {
            item = 'weapon_pistol',
            amount = 25
        }
    }
}

Server-authoritative behavior

When the repair item is used successfully, Nord Inventory:

  1. validates that the configured target definition exists and uses durability;
  2. searches the player's inventory for matching target instances;
  3. selects the most damaged matching instance;
  4. restores the configured amount without exceeding the target maximum;
  5. consumes the repair item only after a real repair is applied;
  6. updates inventory watchers immediately.

The same effect works with weapons and normal items because both use the standard metadata.durability state.

Safe failure cases

The use is rejected without consuming the repair item when:

If several copies of the target exist, the most damaged copy is repaired first.

Runtime registration example

External resources can register repair items through the normal runtime API:

exports.nord_inventory:RegisterItem('pistol_cleaning_kit', {
    label = 'Pistol Cleaning Kit',
    weight = 200,
    stack = true,
    close = true,
    use = {
        duration = 3000,
        remove = 1,
        repair = {
            item = 'weapon_pistol',
            amount = 30
        }
    }
})

The repair itself remains server-authoritative inside Nord Inventory.


Revision #1
Created 2026-09-30 01:04:35 UTC by Riguita
Updated 2026-09-30 01:04:35 UTC by Riguita