Server Modules

Owned Storage Usage Guide

Owned storage covers the owned:locker and owned:garage extension command groups. These modules store unlock lists rather than physical item or vehicle instances.

Owned Storage Usage Guide

Owned storage covers the owned:locker and owned:garage extension command groups. These modules store unlock lists rather than physical item or vehicle instances.

Use these modules for virtual arsenal and virtual garage unlocks. Use Locker Usage Guide and Garage Usage Guide for physical inventory and stored vehicle instances.

Owned Locker Model

{
  "items": ["FirstAidKit"],
  "weapons": ["arifle_MX_F"],
  "magazines": ["30Rnd_65x39_caseless_black_mag"],
  "backpacks": ["B_AssaultPack_rgr"]
}

Supported owned locker categories:

  • items
  • weapons
  • magazines
  • backpacks

New owned lockers are created with default unlocks from the Rust model.

Owned Garage Model

{
  "cars": ["B_Quadbike_01_F"],
  "armor": [],
  "helis": [],
  "planes": [],
  "naval": [],
  "other": []
}

Supported owned garage categories:

  • cars
  • armor
  • helis
  • planes
  • naval
  • other

The durable owned:garage:remove command currently accepts heli for the helicopter category. Add, get, and hot remove accept helis.

New owned garages are created with default unlocks from the Rust model.

Owned Locker Commands

CommandArgumentsReturns
owned:locker:createuidFull owned locker JSON.
owned:locker:fetchuidFull owned locker JSON.
owned:locker:getuid, categoryCategory classname array JSON.
owned:locker:adduid, category, classnames_jsonUpdated category array JSON.
owned:locker:removeuid, category, classnameUpdated category array JSON.
owned:locker:deleteuidOK.
owned:locker:existsuidtrue or false.

Owned Garage Commands

CommandArgumentsReturns
owned:garage:createuidFull owned garage JSON.
owned:garage:fetchuidFull owned garage JSON.
owned:garage:getuid, categoryCategory classname array JSON.
owned:garage:adduid, category, classnames_jsonUpdated category array JSON.
owned:garage:removeuid, category, classnameUpdated category array JSON.
owned:garage:deleteuidOK.
owned:garage:existsuidtrue or false.

Add Virtual Arsenal Unlocks

private _classes = ["arifle_MX_F", "hgun_P07_F"];

private _result = "forge_server" callExtension ["owned:locker:add", [
    getPlayerUID player,
    "weapons",
    toJSON _classes
]];

Add Virtual Garage Unlocks

private _classes = ["B_Quadbike_01_F", "B_MRAP_01_F"];

private _result = "forge_server" callExtension ["owned:garage:add", [
    getPlayerUID player,
    "cars",
    toJSON _classes
]];

Remove an Unlock

"forge_server" callExtension ["owned:locker:remove", [
    getPlayerUID player,
    "weapons",
    "arifle_MX_F"
]];

"forge_server" callExtension ["owned:garage:remove", [
    getPlayerUID player,
    "cars",
    "B_Quadbike_01_F"
]];

Hot-State Commands

Both owned storage modules support hot state.

Owned locker:

CommandArgumentsReturns
owned:locker:hot:inituidFull owned locker JSON.
owned:locker:hot:fetchuidFull owned locker JSON.
owned:locker:hot:getuid, categoryCategory array JSON.
owned:locker:hot:overrideuid, locker_jsonFull owned locker JSON.
owned:locker:hot:saveuidCurrent hot owned locker JSON and async durable save.
owned:locker:hot:removeuidOK.

Owned garage:

CommandArgumentsReturns
owned:garage:hot:inituidFull owned garage JSON.
owned:garage:hot:fetchuidFull owned garage JSON.
owned:garage:hot:getuid, categoryCategory array JSON.
owned:garage:hot:overrideuid, garage_jsonFull owned garage JSON.
owned:garage:hot:adduid, category, classnames_jsonUpdated category array JSON.
owned:garage:hot:remove_itemuid, category, classnameUpdated category array JSON.
owned:garage:hot:saveuidCurrent hot owned garage JSON and async durable save.
owned:garage:hot:removeuidOK.

Error Handling

private _payload = _result select 0;
if (_payload find "Error:" == 0) exitWith {
    systemChat format ["Owned storage error: %1", _payload];
};
Copyright © 2026