Browse docs
Inventory items
Items used by DOJ
| Default item | Purpose | Requirement |
|---|---|---|
doj_document | A physical printed DOJ document with its own copy metadata | Required for printed document delivery and reading |
job_document | A printed register certificate or shared job document | Required for registry certificate printing; supplied by Sky Jobs Base |
doj_law_book | A readable law-book item with an archived edition | Required when using inventory law books |
sky_briefcase | An inventory-backed briefcase for carrying case material | Optional; supplied by Sky Jobs Base |
sky_case_folder | An inventory-backed folder for case files and loose documents | Optional; supplied by Sky Jobs Base |
printer_paper | Paper refill item | Required only when the configured printer consumes paper |
printer_ink | Ink refill item | Required only when the configured shared printer settings consume ink |
The two DOJ-specific items are doj_document and doj_law_book. The remaining items belong to Jobs Base inventory items and use its definitions.
Prepare your inventory
Choose the active inventory
Use the tab for the inventory your server actually runs, regardless of the framework. An ESX or Qbox server running ox_inventory needs the ox_inventory definitions.
Add or correct the item definitions
Merge the DOJ definitions into the existing item table. Keep your other items and customized labels or weights. Both DOJ items must remain non-stackable and reusable, and the inventory must preserve each item's metadata.
Install the images and shared items
Download the DOJ icons below and copy them to your inventory's image directory. Add the shared items needed for register certificates, printer supplies and portable case containers.
Reload and test
Reload the inventory through its supported process before starting the Sky resources; restart the server if your inventory requires it. Test an issued document and a law book as a regular player using the steps under Metadata matters.
The resource registers usable actions through the Sky inventory adapter and preserves existing item definitions. Inventories such as ox_inventory and CodeM V2 require the catalog entries to exist before the Sky resources start. Automatic registration does not correct a pre-existing item's stack or metadata settings.
items table alone does not enable these workflows. Use an inventory with the required metadata support; an ESX server can still use the ox_inventory or other supported provider tab.Ready-to-copy item definitions
Each tab contains both DOJ-specific items. Add them inside your existing item table, keeping the commas between entries.
| Tab | Where to add the definitions | Image destination |
|---|---|---|
| ox_inventory | ox_inventory/data/items.lua, inside return { ... } | ox_inventory/web/images/ |
| codem-inventoryv2 | codem-inventoryv2/data/items.lua, inside the existing item table | codem-inventory-images/images/ |
| qs-inventory | qs-inventory/shared/items.lua on ESX, or qb-core/shared/items.lua on QBCore | The image directory configured by QS |
| qb-core | qb-core/shared/items.lua, inside QBShared.Items | qb-inventory/html/images/, or the image directory of your QB-compatible inventory |
| tgiann-inventory | tgiann-inventory/items/items.lua, inside the existing item table | The image directory configured by Tgiann |
| jaksam_inventory | jaksam_inventory/_data/items.lua, inside the existing item table | The image directory configured by Jaksam |
| codem-inventory | codem-inventory/config/itemlist.lua, inside Config.Itemlist | The image directory configured by CodeM |
The qb-core definitions also cover inventories such as ps-inventory and jpr-inventory that read QBShared.Items. For another inventory, use its own item format with the same names, labels and images, and enable per-item metadata and non-stackable items.
The starting weights are 10 grams for doj_document and 500 grams for doj_law_book. Jaksam uses kilograms in these definitions, so its values are 0.01 and 0.5.
Sky registers the Use actions. Do not add a second reader action or automatic consumption. Keep consume = 0 in the ox_inventory, CodeM V2 and Tgiann entries. CodeM V2 resolves icons by item name and does not need a client block; see CodeM V2 setup and limits.
["doj_document"] = {
label = "Printed document",
weight = 10,
stack = false,
close = true,
consume = 0,
description = "A printed DOJ document. Use it to read the issued copy.",
client = { image = "doj_document.png" },
},
["doj_law_book"] = {
label = "Law book",
weight = 500,
stack = false,
close = true,
consume = 0,
description = "A law book with an archived edition. Use it to read.",
client = { image = "doj_law_book.png" },
},
["doj_document"] = {
label = "Printed document",
weight = 10,
stack = false,
close = true,
consume = 0,
description = "A printed DOJ document. Use it to read the issued copy.",
},
["doj_law_book"] = {
label = "Law book",
weight = 500,
stack = false,
close = true,
consume = 0,
description = "A law book with an archived edition. Use it to read.",
},
["doj_document"] = {
name = "doj_document", label = "Printed document", weight = 10,
type = "item", image = "doj_document.png", unique = true,
useable = true, shouldClose = true,
description = "A printed DOJ document. Use it to read the issued copy.",
},
["doj_law_book"] = {
name = "doj_law_book", label = "Law book", weight = 500,
type = "item", image = "doj_law_book.png", unique = true,
useable = true, shouldClose = true,
description = "A law book with an archived edition. Use it to read.",
},
["doj_document"] = {
name = "doj_document", label = "Printed document", weight = 10,
type = "item", image = "doj_document.png", unique = true,
useable = true, shouldClose = true,
description = "A printed DOJ document. Use it to read the issued copy.",
},
["doj_law_book"] = {
name = "doj_law_book", label = "Law book", weight = 500,
type = "item", image = "doj_law_book.png", unique = true,
useable = true, shouldClose = true,
description = "A law book with an archived edition. Use it to read.",
},
["doj_document"] = {
label = "Printed document", weight = 10, type = "item",
image = "doj_document.png", hasMetadata = true,
unique = true, maxStack = 1, consume = 0,
useable = true, shouldClose = true,
description = "A printed DOJ document. Use it to read the issued copy.",
},
["doj_law_book"] = {
label = "Law book", weight = 500, type = "item",
image = "doj_law_book.png", hasMetadata = true,
unique = true, maxStack = 1, consume = 0,
useable = true, shouldClose = true,
description = "A law book with an archived edition. Use it to read.",
},
["doj_document"] = {
label = "Printed document", weight = 0.01, type = "item",
image = "doj_document.png", stackable = false, maxStack = 1,
close = true, rarity = "common",
description = "A printed DOJ document. Use it to read the issued copy.",
},
["doj_law_book"] = {
label = "Law book", weight = 0.5, type = "item",
image = "doj_law_book.png", stackable = false, maxStack = 1,
close = true, rarity = "common",
description = "A law book with an archived edition. Use it to read.",
},
["doj_document"] = {
name = "doj_document", label = "Printed document", weight = 10,
type = "item", image = "doj_document.png", unique = true,
useable = true, shouldClose = true,
description = "A printed DOJ document. Use it to read the issued copy.",
},
["doj_law_book"] = {
name = "doj_law_book", label = "Law book", weight = 500,
type = "item", image = "doj_law_book.png", unique = true,
useable = true, shouldClose = true,
description = "A law book with an archived edition. Use it to read.",
},
Item images
Both icons are included in sky_dojjob/config/inventory/. Copy them to the image directory in the table above, keeping their filenames. You can also download them here:
| Image download | Destination filename |
|---|---|
| Printed document PNG | doj_document.png |
| Law book PNG | doj_law_book.png |
For example, ox_inventory needs ox_inventory/web/images/doj_document.png and ox_inventory/web/images/doj_law_book.png. Item definitions and image installation are separate steps. The same resource directory includes items_ox.lua as an ox_inventory merge template and a README.md with setup instructions. For an older package without this directory, use the definitions and downloads on this page.
Shared printer and case items
Printer supplies belong to the Jobs Base package. On ox_inventory, merge the definitions from sky_jobs_base/config/inventory/items_ox.lua and copy printer_paper.png and printer_ink.png from that directory into the inventory image folder. For other inventories, use the matching provider format described on Jobs Base inventory items. Both supplies are stackable; Sky consumes one only after the refill minigame succeeds. Custom supply names must match the job's printer settings.
For register certificates, also merge job_document from that Jobs Base file and copy job_document.png into ox_inventory/web/images/. It is a separate item from doj_document; keep the printer-issued metadata on both.
Portable case containers also belong to Jobs Base. Merge the sky_briefcase and sky_case_folder
definitions from that same file and copy sky_briefcase.png and sky_case_folder.png into the
inventory image folder. Both are non-stackable and keep their own contents through transfers. The
briefcase can be shown or hidden on the player's right hand through the Jobs Base custom actions;
the case folder is an inventory-only container. See the shared Jobs Base inventory items
reference for capacities, provider bridges and the rename/show/hide exports.
Renaming items
Config.PrintedDocuments.item selects the printed-document item and Config.PrintedDocuments.weight supplies its registration weight. Config.LegalCodes.item selects the law-book item. Printer refill names are configured separately in the job's printer settings and shared Jobs Base printer configuration. Use /jobconfig for the managed job settings; saved overrides take precedence.
Changing a name does not automatically migrate items already held by players. Coordinate any rename with inventory definitions, images and stored copies, and test the resulting usable item before distributing it. The Jobs Base briefcase's default allowlist includes doj_document and doj_law_book; update that allowlist too if you rename either item.
Metadata matters
A printed document refers to an issued copy. Keep its copy metadata when moving, transferring or storing the item.
An uninitialized law book records its archived edition on first use. It must occupy its own slot: an existing stack needs to be split into individual books first. Later edits to the legal codes do not change that book's saved edition. The inventory must preserve and update the edition metadata in the exact item slot.
Before opening these workflows to players:
- Print a saved DOJ document, collect it from the configured printer, and use the resulting
doj_documentto read that copy. A plain administrator-createddoj_documenthas no issued copy to open. - Obtain a single
doj_law_book, use it, and check the edition date shown by the reader. - Transfer or store each item, retrieve it, and confirm that the same copy or law-book edition opens again.
- If you enable register certificate printing or portable case containers, test those flows with the shared items too. Printer placement and access are configured through
/jobconfig; see Sharing and printing.
An item added to a shop or inventory does not grant tablet access, access to the original case file or permission to sign documents.