# Installation

## Dependencies :

<details>

<summary>ES EXTENDED</summary>

You will need the latest version of [es\_extended](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>

<details>

<summary>RPEMOTES, DPEMOTES OR ANY EMOTE MENU</summary>

You will need the latest version of [rpemotes](https://github.com/alberttheprince/rpemotes-reborn)

* 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

```lua
   screwdriver                  = { name = 'screwdriver',         label = 'Screwdriver',                           weight = 100,       type = 'item',      image = 'screwdriver.png',                   unique = false, useable = false,     shouldClose = true,    combinable = nil,   description = 'Screwdriver...' },
   hvaccompressor               = { name = 'hvaccompressor',      label = 'HVAC Compressor',                       weight = 100,       type = 'item',      image = 'hvaccompressor.png',                   unique = false, useable = false,     shouldClose = true,    combinable = nil,   description = 'HVAC Compressor...' },
   hvacblower                   = { name = 'hvacblower',          label = 'HVAC Blower',                           weight = 100,       type = 'item',      image = 'hvacblower.png',                   unique = false, useable = false,     shouldClose = true,    combinable = nil,   description = 'HVAC Blower...' },
   gturbinehead                 = { name = 'gturbinehead',        label = 'Galvanized Turbine Head',               weight = 100,       type = 'item',      image = 'gturbinehead.png',                   unique = false, useable = false,     shouldClose = true,    combinable = nil,   description = 'Galvanized Turbine Head...' },

```

</details>

<details>

<summary>QS INVENTORY</summary>

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

```lua
 ['screwdriver']                  = {
        ['name'] = 'screwdriver',
        ['label'] = 'Screwdriver',
        ['weight'] = 0,
        ['type'] = 'item',
        ['image'] = 'screwdriver.png',
        ['unique'] = true,
        ['useable'] = true,
        ['shouldClose'] = false,
        ['combinable'] = nil,
        ['description'] = '...'
    },
    ['hvaccompressor']                  = {
        ['name'] = 'hvaccompressor',
        ['label'] = 'HVAC Compressor',
        ['weight'] = 0,
        ['type'] = 'item',
        ['image'] = 'hvaccompressor.png',
        ['unique'] = true,
        ['useable'] = true,
        ['shouldClose'] = false,
        ['combinable'] = nil,
        ['description'] = '...'
    },
    ['hvacblower']                  = {
        ['name'] = 'hvacblower',
        ['label'] = 'HVAC Blower',
        ['weight'] = 0,
        ['type'] = 'item',
        ['image'] = 'hvacblower.png',
        ['unique'] = true,
        ['useable'] = true,
        ['shouldClose'] = false,
        ['combinable'] = nil,
        ['description'] = '...'
    },
    ['gturbinehead']                  = {
        ['name'] = 'gturbinehead',
        ['label'] = 'Galvanized Turbine Head',
        ['weight'] = 0,
        ['type'] = 'item',
        ['image'] = 'gturbinehead.png',
        ['unique'] = true,
        ['useable'] = true,
        ['shouldClose'] = false,
        ['combinable'] = nil,
        ['description'] = '...'
    },
```

</details>

<details>

<summary>OX INVENTORY</summary>

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

```lua

["gturbinehead"] = {
        label = "Galvanized Turbine Head",
        weight = 100,
        stack = true,
        close = true,
        description = "Galvanized Turbine Head...",
        client = {
            image = "gturbinehead.png",
        }
    },

    ["hvacblower"] = {
        label = "HVAC Blower",
        weight = 100,
        stack = true,
        close = true,
        description = "HVAC Blower...",
        client = {
            image = "hvacblower.png",
        }
    },

    ["screwdriver"] = {
        label = "Screwdriver",
        weight = 100,
        stack = true,
        close = true,
        description = "Screwdriver...",
        client = {
            image = "screwdriver.png",
        }
    },

    ["hvaccompressor"] = {
        label = "HVAC Compressor",
        weight = 100,
        stack = true,
        close = true,
        description = "HVAC Compressor...",
        client = {
            image = "hvaccompressor.png",
        }
    },
```

</details>

***

## Dialog :

<details>

<summary>ZAT DIALOG</summary>

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

```lua
    {
        img         = 'https://i.ibb.co/grX3Qxm/npc.png',
        ped         = 'a_m_m_hillbilly_02',
        anim        = 'CODE_HUMAN_MEDIC_TIME_OF_DEATH',
        coords      =  vector4(574.08, 133.01, 98.47, 249.26),
        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   = 'RUFIS',
        lastname    = 'MDRID',
        rep         = 0,
        mission     = 'Roof Running',
        text        = 'Hey there, always on the lookout for a side gig, huh? I have got this idea that is a bit out there, but trust me, it pays off. Imagine sneaking onto rooftops, nabbing those AC units, and turning them into a sweet wad of cash, quick and discreet. what do you say? Insterested in a profitable adventure ?',
        buttons     = {
            {
                text= 'I want to work',
                rep = 0,
                answer ='Ready for a day of hard work?',
                buttons={{
                        text = 'yes',
                        shop =false,
                        rep = 0,
                        action= {
                            isServer= false,
                            event= 'zat-roofrunning:client:StartWorking',
                            data= {}
                        },
                        canInteract = true
                    },
                    {
                        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-roofrunning: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   = 'screwdriver',
                label  = 'Screwdriver',
                image  = 'nui://'..Config.Img..'screwdriver.png',
                type   = 'Equipement',
                price  = 1000,
                rep    = 0,
                amount = 0, -- keep it 0
                info   = {}
            },        
        }
    }, 
```

</details>

### Emotes :

<details>

<summary>ANIMATIONS LIST</summary>

Add the code below to your dp-rp emotes/client/AnimationList.lua

```lua
    ["roofvent"] = {
        "anim@heists@box_carry@",
        "idle",
        "Roof Vent",
        AnimationOptions = {
            Prop = "prop_roofrunning_vent",
            PropBone = 28422,
            PropPlacement = {
                0.0050,
                -0.1170,
                -0.1400,
                14.000,
                0.0,
                0.0
            },
            EmoteLoop = true,
            EmoteMoving = true
        }
    },
    ["roofairc"] = {
        "anim@heists@box_carry@",
        "idle",
        "Roof Vent",
        AnimationOptions = {
            Prop = "prop_roofrunning_aircon",
            PropBone = 28422,
            PropPlacement = {
                -0.5050,
                -0.1170,
                -0.1400,
                0.000,
                75.0,
                0.0
            },
            EmoteLoop = true,
            EmoteMoving = true
        }
    },
    ["roofventh"] = {
        "anim@heists@box_carry@",
        "idle",
        "Roof Vent",
        AnimationOptions = {
            Prop = "prop_roofrunning_head",
            PropBone = 28422,
            PropPlacement = {
                0.0050,
                -0.1170,
                -0.1400,
                14.000,
                0.0,
                0.0
            },
            EmoteLoop = true,
            EmoteMoving = true
        }
    },
```

</details>

## ENSURE RESOURCES

* [ ] ensure zat-ui
* [ ] ensure zat-groups
* [ ] ensure zat-minigames
* [ ] ensure xsound
* [ ] ensure zat-roofrunning\_props
* [ ] ensure zat-roofrunning


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://zat-scripts.gitbook.io/zat-scripts/esx/roof-running/installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
