> For the complete documentation index, see [llms.txt](https://zat-scripts.gitbook.io/zat-scripts/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://zat-scripts.gitbook.io/zat-scripts/esx/art-heist/installation.md).

# Installation

## Dependencies :

<details>

<summary>ES EXTENDED</summary>

You will need the latest version of [esx\_core](https://github.com/esx-framework/esx_core).

* Extract the contents of the archive to your resources folder.
* Start the resource near the top of your resources in your server.cfg.

</details>

<details>

<summary>INTERACT OR TARGET</summary>

You will need the latest version of [Interact](https://github.com/darktrovx/interact) or [qb-target](https://github.com/qbcore-framework/qb-target)

* Extract the contents of the archive to your resources folder.
* Start the resource near the top of your resources in your server.cfg.

</details>

<details>

<summary>XSOUND</summary>

You will need the latest version of [xsound](https://github.com/Xogy/xsound)

* Extract the contents of the archive to your resources folder.
* Start the resource near the top of your resources in your server.cfg.

</details>

***

## Inventories :

<details>

<summary>QB INVENTORY</summary>

Add the items below to the qb-core/shared/items.lua:&#x20;

```lua
    -- Gallery heist
    rfid_cloner             = { name = 'rfid_cloner',                  label = 'RFID Cloner',                            weight = 100,       type = 'item',      image = 'rfid_cloner.png',                                          unique = true, useable = true,     shouldClose = true,    combinable = nil,   description = 'RFID Cloner' },    
    painting1               = { name = 'painting1',                    label = 'Mark Ashkenazi Painting',                weight = 100,       type = 'item',      image = 'painting1.png',                                          unique = true, useable = true,     shouldClose = true,    combinable = nil,   description = 'Mark Ashkenazi Painting' },    
    painting2               = { name = 'painting2',                    label = 'Jean Delvin Painting',                   weight = 100,       type = 'item',      image = 'painting2.png',                                          unique = true, useable = true,     shouldClose = true,    combinable = nil,   description = 'Jean Delvin Painting' },    
```

Add this into your qb-inventory js file:&#x20;

```javascript
        case "rfid_cloner":
            if (itemData.info.uses == undefined) {
                return `<p>Uses: 5</p>`;  
            }else{
                return `<p>Uses: ${itemData.info.uses}</p>`;  
            }
```

</details>

<details>

<summary>QS INVENTORY</summary>

Add the items below into your qs-inventory/shared/items.lua

```lua
   ['rfid_cloner']                  = {
        ['name'] = 'rfid_cloner',
        ['label'] = 'RFID cloner',
        ['weight'] = 0,
        ['type'] = 'item',
        ['image'] = 'rfid_cloner.png',
        ['unique'] = true,
        ['useable'] = true,
        ['shouldClose'] = true,
        ['combinable'] = nil,
        ['description'] = 'RFID cloner...'
    },
      ['painting1']                  = {
        ['name'] = 'painting1',
        ['label'] = 'Mark Ashkenazi Painting',
        ['weight'] = 0,
        ['type'] = 'item',
        ['image'] = 'painting1.png',
        ['unique'] = true,
        ['useable'] = true,
        ['shouldClose'] = true,
        ['combinable'] = nil,
        ['description'] = 'Mark Ashkenazi Painting'
    },
      ['painting2']                  = {
        ['name'] = 'painting2',
        ['label'] = 'Jean Delvin Painting',
        ['weight'] = 0,
        ['type'] = 'item',
        ['image'] = 'painting2.png',
        ['unique'] = true,
        ['useable'] = true,
        ['shouldClose'] = true,
        ['combinable'] = nil,
        ['description'] = 'Jean Delvin Painting'
    },
```

Add this into qs-inventory/config/metadata.js

```javascript
} else if (itemData.name == "rfid_cloner") {
            $(".item-info-title").html("<p>" + `${itemData.info.label || label}` + "</p>");
            $(".item-info-description").html("<p>Uses: " + itemData.info.uses + "</p>");
```

</details>

<details>

<summary>OX INVENTORY</summary>

Add the items below into your ox-inventory/data/items.lua

```lua
	["rfid_cloner"] = {
		label = "RFID Cloner",
		weight = 100,
		stack = false,
		close = true,
		description = "RFID Cloner",
		client = {
			image = "rfid_cloner.png",
		}
	},

	["painting2"] = {
		label = "Jean Delvin Painting",
		weight = 100,
		stack = false,
		close = true,
		description = "Jean Delvin Painting",
		client = {
			image = "painting2.png",
		}
	},

	["painting1"] = {
		label = "Mark Ashkenazi Painting",
		weight = 100,
		stack = false,
		close = true,
		description = "Mark Ashkenazi Painting",
		client = {
			image = "painting1.png",
		}
	},
```

</details>

***

## Dialog :

<details>

<summary>ZAT DIALOG</summary>

Add the code below to zat-dialog/shared/config.lua

```lua
 -- gallery
    {
        img         = 'https://i.ibb.co/qF0NQDbR/Capture-d-cran-2025-02-06-224715.png',
        ped         = 'u_m_m_jesus_01',
        anim        = 'CODE_HUMAN_MEDIC_TIME_OF_DEATH',
        coords      =  vector4(996.66, -1486.69, 30.43, 265.94),
        job         = "all", -- { ["police"] = 0, ["ambulance"] = 0}  if you are using target
        gang        = "all", -- { ["ballas"] = 2, ["thelostmc"] = 0}  if you are using target
        groups      = "all", -- { ["police"] = 2, ["ambulance"] = 0}  if you are using intearaction
        firstname   = 'ASTA',
        lastname    = 'CLEAN',
        rep         = 0,
        mission     = 'Galleryheist',
        text        = 'Thou art welcome, what can I do for you?',
        buttons     = {
            {
                text= 'Find the Perfect Picture',
                rep = 0,
                answer ='I am looking for something special, I need a piece or art that will make my followers go wild. In exchange I can have my followers help you out.',
                buttons={{
                        text = 'yes',
                        shop =false,
                        rep = 0,
                        action= {
                            isServer= false,
                            event= 'zat-galleryheist:client:StartWorking',
                            data= {}
                        },
                        canInteract = CanToggleSignIn(),
                    },
                    {
                        text = 'Leave Conversation',
                        shop =false,
                        rep = 0,
                        action= {
                            isServer= false,
                            event= 'zat-dialog:client:HideUi',
                            data= {}
                        },
                        canInteract = true
                    }
                },
                canInteract = true
            },
            {
                text = 'Abandon Mission',
                rep = 0,
                shop =false,
                action= {
                    isServer= false,
                    event= 'zat-galleryheist:client:StopWorking',
                    data= {}
                },
                canInteract = true
            },
            {
                text = 'Join/Create Group',
                rep = 0,
                shop =false,
                action= {
                    isServer= false,
                    event= 'zat-groups:client:OpenUi',
                    data= {}
                },
                canInteract = true
            },
            {
                text    = 'Open Shop',
                rep = 0,
                shop    = true,
                answer  = null,
                canInteract = true
            },
        },
        items={
            {
                name   = 'rfid_cloner',
                label  = 'RFID Cloner',
                image  = 'nui://'..Config.Img..'rfid_cloner.png',
                type   = 'Equipement',
                price  = 1000,
                rep    = 0,
                amount = 0, -- keep it 0
                info   = {},
                canInteract = true
            },        
        }
    }, 
```

</details>

## Doorlock:

<details>

<summary>QB DOORLOCK</summary>

copy <mark style="color:green;">gallery.lua</mark> doorlock file and paste it in qb-doorlock/configs

</details>

<details>

<summary>OX DOORLOCK</summary>

Just import the <mark style="color:green;">ox\_doorlock.sql</mark> into your Database.

</details>

## ENSURE RESOURCES

* [ ] ensure zat-ui
* [ ] ensure zat-groups
* [ ] ensure zat-minigames
* [ ] ensure zat-minigames\_2
* [ ] ensure zat-minigames\_3
* [ ] ensure xsound
* [ ] ensure zat-laundromat
