> For the complete documentation index, see [llms.txt](https://tweak5m.gitbook.io/tweak5m-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tweak5m.gitbook.io/tweak5m-docs/noir-collection/items-and-icons.md).

# Items & inventory icons

**NOIR Collection · Version 1.0.1 · 28 item definitions**

[1 · Install](/tweak5m-docs/noir-collection/installation.md) → [2 · Database](/tweak5m-docs/noir-collection/sql-setup.md) → [3 · Items & icons](/tweak5m-docs/noir-collection/items-and-icons.md) → start and test

## 1. Back up the inventory file

Open `ox_inventory/data/items.lua` and save a backup outside your active resource folder.

{% hint style="warning" %}
The block below is a **table fragment**, not a complete items.lua file. Paste the entries **inside the existing returned items table**, before its final closing brace. Do not add a second `return` or replace the whole file. Replace an existing matching item entry rather than creating a duplicate.
{% endhint %}

## 2. Copy the complete item block

This is the supplied `install/items/ox_inventory_item.lua` from NOIR Collection 1.0. Use the code block's copy button. Keep item names, commas and exports unchanged.

{% code title="Paste inside the existing items table" collapsedlinecount="18" %}

```lua
-- Add this section inside ox_inventory/data/items.lua, keeping all NOIR items together.

-- BACKPACKS
	["noir_black_label"] = {
		label = "TWEAK NOIR | Black Label",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Original luxury backpack. Wear it, hold the straps, carry by hand, or place it to access its storage.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_black_label.png",
		},
	},

	["noir_cocoa"] = {
		label = "TWEAK NOIR | Cocoa",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Original luxury backpack. Wear it, hold the straps, carry by hand, or place it to access its storage.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_cocoa.png",
		},
	},

	["noir_cream"] = {
		label = "TWEAK NOIR | Cream",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Original luxury backpack. Wear it, hold the straps, carry by hand, or place it to access its storage.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_cream.png",
		},
	},

	["noir_burgundy"] = {
		label = "TWEAK NOIR | Burgundy",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Original luxury backpack. Wear it, hold the straps, carry by hand, or place it to access its storage.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_burgundy.png",
		},
	},

	["noir_forest"] = {
		label = "TWEAK NOIR | Forest",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Original luxury backpack. Wear it, hold the straps, carry by hand, or place it to access its storage.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_forest.png",
		},
	},

	["noir_rainbow_black"] = {
		label = "TWEAK NOIR Backpack | Rainbow Black",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Original NOIR bag with persistent storage and configurable carry modes.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_rainbow_black.png",
		},
	},

	["noir_rainbow_white"] = {
		label = "TWEAK NOIR Backpack | Rainbow White",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Original NOIR bag with persistent storage and configurable carry modes.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_rainbow_white.png",
		},
	},


-- PURSES
	["noir_purse_black_label"] = {
		label = "TWEAK NOIR Purse | Black Label",
		weight = 1500,
		stack = false,
		close = true,
		consume = 0,
		description = "Wear over your shoulder, carry by the short handles, or place to access storage.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_purse_black_label.png",
		},
	},

	["noir_purse_cocoa"] = {
		label = "TWEAK NOIR Purse | Cocoa",
		weight = 1500,
		stack = false,
		close = true,
		consume = 0,
		description = "Wear over your shoulder, carry by the short handles, or place to access storage.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_purse_cocoa.png",
		},
	},

	["noir_purse_cream"] = {
		label = "TWEAK NOIR Purse | Cream",
		weight = 1500,
		stack = false,
		close = true,
		consume = 0,
		description = "Wear over your shoulder, carry by the short handles, or place to access storage.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_purse_cream.png",
		},
	},

	["noir_purse_burgundy"] = {
		label = "TWEAK NOIR Purse | Burgundy",
		weight = 1500,
		stack = false,
		close = true,
		consume = 0,
		description = "Wear over your shoulder, carry by the short handles, or place to access storage.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_purse_burgundy.png",
		},
	},

	["noir_purse_forest"] = {
		label = "TWEAK NOIR Purse | Forest",
		weight = 1500,
		stack = false,
		close = true,
		consume = 0,
		description = "Wear over your shoulder, carry by the short handles, or place to access storage.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_purse_forest.png",
		},
	},

	["noir_purse_rainbow_black"] = {
		label = "TWEAK NOIR Purse | Rainbow Black",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Original NOIR bag with persistent storage and configurable carry modes.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_purse_rainbow_black.png",
		},
	},

	["noir_purse_rainbow_white"] = {
		label = "TWEAK NOIR Purse | Rainbow White",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Original NOIR bag with persistent storage and configurable carry modes.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_purse_rainbow_white.png",
		},
	},


-- POUCHS
	["noir_pouch_black_label"] = {
		label = "TWEAK NOIR Pouch | Black Label",
		weight = 500,
		stack = false,
		close = true,
		consume = 0,
		description = "Two independent pockets. Hold in either hand or place on the ground.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_pouch_black_label.png",
		},
	},

	["noir_pouch_cocoa"] = {
		label = "TWEAK NOIR Pouch | Cocoa",
		weight = 500,
		stack = false,
		close = true,
		consume = 0,
		description = "Two independent pockets. Hold in either hand or place on the ground.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_pouch_cocoa.png",
		},
	},

	["noir_pouch_cream"] = {
		label = "TWEAK NOIR Pouch | Cream",
		weight = 500,
		stack = false,
		close = true,
		consume = 0,
		description = "Two independent pockets. Hold in either hand or place on the ground.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_pouch_cream.png",
		},
	},

	["noir_pouch_burgundy"] = {
		label = "TWEAK NOIR Pouch | Burgundy",
		weight = 500,
		stack = false,
		close = true,
		consume = 0,
		description = "Two independent pockets. Hold in either hand or place on the ground.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_pouch_burgundy.png",
		},
	},

	["noir_pouch_forest"] = {
		label = "TWEAK NOIR Pouch | Forest",
		weight = 500,
		stack = false,
		close = true,
		consume = 0,
		description = "Two independent pockets. Hold in either hand or place on the ground.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_pouch_forest.png",
		},
	},

	["noir_pouch_rainbow_black"] = {
		label = "TWEAK NOIR Pouch | Rainbow Black",
		weight = 500,
		stack = false,
		close = true,
		consume = 0,
		description = "Two independent pockets. Hold in either hand or place on the ground.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_pouch_rainbow_black.png",
		},
	},

	["noir_pouch_rainbow_white"] = {
		label = "TWEAK NOIR Pouch | Rainbow White",
		weight = 500,
		stack = false,
		close = true,
		consume = 0,
		description = "Two independent pockets. Hold in either hand or place on the ground.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_pouch_rainbow_white.png",
		},
	},


-- CHEST BAGS
	["noir_harness_black_label"] = {
		label = "TWEAK NOIR Harness | Black Label",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Wearable NOIR harness with separate small and large pouches.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_harness_black_label.png",
		},
	},

	["noir_harness_cocoa"] = {
		label = "TWEAK NOIR Harness | Cocoa",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Wearable NOIR harness with separate small and large pouches.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_harness_cocoa.png",
		},
	},

	["noir_harness_cream"] = {
		label = "TWEAK NOIR Harness | Cream",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Wearable NOIR harness with separate small and large pouches.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_harness_cream.png",
		},
	},

	["noir_harness_burgundy"] = {
		label = "TWEAK NOIR Harness | Burgundy",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Wearable NOIR harness with separate small and large pouches.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_harness_burgundy.png",
		},
	},

	["noir_harness_forest"] = {
		label = "TWEAK NOIR Harness | Forest",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Wearable NOIR harness with separate small and large pouches.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_harness_forest.png",
		},
	},

	["noir_harness_rainbow_black"] = {
		label = "TWEAK NOIR Harness | Rainbow Black",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Wearable NOIR harness with separate small and large pouches.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_harness_rainbow_black.png",
		},
	},

	["noir_harness_rainbow_white"] = {
		label = "TWEAK NOIR Harness | Rainbow White",
		weight = 2000,
		stack = false,
		close = true,
		consume = 0,
		description = "Wearable NOIR harness with separate small and large pouches.",
		client = {
			export = "cfx-tweak-noir-collection.useBag",
			image = "noir_harness_rainbow_white.png",
		},
	},
```

{% endcode %}

The exact export for this pack is `cfx-tweak-noir-collection.useBag`. Do not use an individual pack's export for the Collection or vice versa. Keep all NOIR definitions together; do not register duplicate keys across installed packs.

## 3. Copy the icons from your download

Copy **all PNG files** from this resource's `install/images/` into `ox_inventory/web/images/`. Keep every filename unchanged. The Lua above does not install the images for you. Models and animations stay in the resource's stream folders.

## 4. Save, restart and check

Apply inventory changes during a planned restart using your normal framework startup order, then reconnect before checking streamed models. Use your existing authorized inventory/admin tools to obtain a test item; these resources do not add an unrestricted give-item command.

* Check all 28 supplied item definitions appear once and their icons load.
* Use an item and confirm the correct product menu opens.
* If an icon is missing, compare the `client.image` name with the PNG filename.
* If Lua reports a syntax error, inspect the first reported line and its preceding entry for a missing comma or brace.
* If an export is missing, check the exact resource folder name, startup order and first resource error.

**Next:** [Return to installation for the startup block and final checks](/tweak5m-docs/noir-collection/installation.md).
