# Jota Dev Container Robbery

<figure><img src="/files/v7SkMjndYzLotke0OqP3" alt=""><figcaption></figcaption></figure>

How to start the script for its correct operation:

**Download and install mhacking**

**Put in your server.cfg**

```markdown
# JotaDev Container Robbery
ensure mhacking
ensure jc_container_robbery
```

**Script Config:**

{% tabs %}
{% tab title="ESX" %}

```lua
Config = {}
Config.Framework = 'esx' -- Ingrese esx para ESX o qb para QB-Core

Config.NPC = {
    coords = vector3(376.4657, 798.7540, 187.582), -- Pones la coordenada que quieras
    heading = 91.0,
    model = "s_m_m_dockwork_01"
}


Config.Entries = {
    vector3(992.9461, -3020.96, 5.9007),
    vector3(1020.791, -3021.02, 5.9010),
    vector3(1021.189, -3082.76, 5.9010),
    vector3(1121.881, -2978.67, 5.9011),
    vector3(1148.755, -2970.80, 5.9011),
    vector3(850.8587, -2890.82, 11.265),
    vector3(817.0198, -3077.27, 5.9008),
    vector3(896.5025, -3082.66, 5.9007),
    vector3(924.3923, -3085.35, 5.9007),
    vector3(924.7832, -3098.69, 5.9007),
    vector3(1019.984, -3096.18, 5.9010)

}

Config.Marker = {
    drawDistance = 20.0
}

Config.OpenTime = 8000 -- Tiempo de robar container en ms

Config.ContainerPropLocation = vector3(1019.214, -3081.79, 448.78) -- Unica posicion real del prop container 

Config.ContainerRewards = {
    {
        model = "prop_large_gold",
        coords = vector3(1019.274, -3077.25, 447.97),
        heading = 180.64,
        reward = { type = "money", amount = 5000 },
        anim = { dict = "anim@heists@ornate_bank@grab_cash", name = "grab" }
    },
    {
        model = "prop_ld_int_safe_01", -- Caja fuerte
        coords = vector3(1018.347, -3081.42, 447.97),
        heading = 449.0,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@grab_cash", name = "grab" }
    },
    {
        model = "prop_gold_trolly_full",
        coords = vector3(1020.105, -3079.97, 447.97),
        heading = 86.0,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@grab_cash", name = "grab" }
    },
    {
        model = "hei_prop_hei_cash_trolly_01",
        coords = vector3(1018.341, -3083.87, 447.97),
        heading = 267.0,
        reward = { type = "money", amount = 5000 },
        anim = { dict = "anim@heists@ornate_bank@grab_cash", name = "grab" }
    },
    {
        model = "hei_prop_hei_cash_trolly_01",
        coords = vector3(1019.931, -3086.59, 447.97),
        heading = 90.36,
        reward = { type = "money", amount = 5000 },
        anim = { dict = "anim@heists@ornate_bank@grab_cash", name = "grab" }
    },
    {
        model = "prop_weed_pallet",
        coords = vector3(1019.702, -3088.88, 447.97),
        heading = 90.36,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@narcotics@trash", name = "pickup" }
    },
    {
        model = "hei_prop_heist_weed_pallet_02",
        coords = vector3(1019.733, -3091.01, 447.97),
        heading = 90.36,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@grab_cash", name = "grab" }
    },
    {
        model = "ch_prop_vault_painting_01e",
        coords = vector3(1020.456, -3092.89, 448.57),
        heading = 270.36,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@thermal_charge", name = "thermal_charge" }
    },
    {
        model = "ch_prop_vault_painting_01i",
        coords = vector3(1020.446, -3095.87, 448.57),
        heading = 270.36,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@thermal_charge", name = "thermal_charge" }
    },
    {
        model = "ch_prop_vault_painting_01h",
        coords = vector3(1020.446, -3083.39, 448.57),
        heading = 270.36,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@thermal_charge", name = "thermal_charge" }
    },
    {
        model = "ch_prop_vault_painting_01g",
        coords = vector3(1017.995, -3094.88, 448.57),
        heading = 90.8,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@thermal_charge", name = "thermal_charge" }
    },    
    {
        model = "p_cs_locker_01_s",
        coords = vector3(1018.311, -3096.66, 447.97),
        heading = 448.54,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@grab_cash", name = "grab" }
    }
}

Config.HackingBlocks = 4 -- Cantidad de bloques que tienes que hacer coincidir
Config.HackingSeconds = 40	-- Segundos para hackear

Config.PoliceAlert = true -- Activar o desactivar aviso a policia
Config.PoliceJobs = {"police", "sheriff"} -- Trabajos que recibirán el aviso
Config.AlertMessage = "Robo de container en curso, zona del puerto."
Config.RequiredPolice = 0 -- o el número que desees
Config.CommandEntorno = 'entorno'

Config.MoneyAccount = "black_money" -- Puede ser: money, bank, black_money

if Config.Framework == 'qb' then
    QBCore = exports['qb-core']:GetCoreObject()
elseif Config.Framework == 'esx' then
    ESX = exports["es_extended"]:getSharedObject()
else
    print '^1[^6jc_container_robbery^1] ^2Framework No encontrada, ingrese esx o qb^0'
    return
end


```

{% endtab %}

{% tab title="QB-Core" %}

```lua
Config = {}
Config.Framework = 'qb' -- Ingrese esx para ESX o qb para QB-Core

Config.NPC = {
    coords = vector3(376.4657, 798.7540, 187.582), -- Pones la coordenada que quieras
    heading = 91.0,
    model = "s_m_m_dockwork_01"
}


Config.Entries = {
    vector3(992.9461, -3020.96, 5.9007),
    vector3(1020.791, -3021.02, 5.9010),
    vector3(1021.189, -3082.76, 5.9010),
    vector3(1121.881, -2978.67, 5.9011),
    vector3(1148.755, -2970.80, 5.9011),
    vector3(850.8587, -2890.82, 11.265),
    vector3(817.0198, -3077.27, 5.9008),
    vector3(896.5025, -3082.66, 5.9007),
    vector3(924.3923, -3085.35, 5.9007),
    vector3(924.7832, -3098.69, 5.9007),
    vector3(1019.984, -3096.18, 5.9010)

}

Config.Marker = {
    drawDistance = 20.0
}

Config.OpenTime = 8000 -- Tiempo de robar container en ms

Config.ContainerPropLocation = vector3(1019.214, -3081.79, 448.78) -- Unica posicion real del prop container 

Config.ContainerRewards = {
    {
        model = "prop_large_gold",
        coords = vector3(1019.274, -3077.25, 447.97),
        heading = 180.64,
        reward = { type = "money", amount = 5000 },
        anim = { dict = "anim@heists@ornate_bank@grab_cash", name = "grab" }
    },
    {
        model = "prop_ld_int_safe_01", -- Caja fuerte
        coords = vector3(1018.347, -3081.42, 447.97),
        heading = 449.0,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@grab_cash", name = "grab" }
    },
    {
        model = "prop_gold_trolly_full",
        coords = vector3(1020.105, -3079.97, 447.97),
        heading = 86.0,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@grab_cash", name = "grab" }
    },
    {
        model = "hei_prop_hei_cash_trolly_01",
        coords = vector3(1018.341, -3083.87, 447.97),
        heading = 267.0,
        reward = { type = "money", amount = 5000 },
        anim = { dict = "anim@heists@ornate_bank@grab_cash", name = "grab" }
    },
    {
        model = "hei_prop_hei_cash_trolly_01",
        coords = vector3(1019.931, -3086.59, 447.97),
        heading = 90.36,
        reward = { type = "money", amount = 5000 },
        anim = { dict = "anim@heists@ornate_bank@grab_cash", name = "grab" }
    },
    {
        model = "prop_weed_pallet",
        coords = vector3(1019.702, -3088.88, 447.97),
        heading = 90.36,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@narcotics@trash", name = "pickup" }
    },
    {
        model = "hei_prop_heist_weed_pallet_02",
        coords = vector3(1019.733, -3091.01, 447.97),
        heading = 90.36,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@grab_cash", name = "grab" }
    },
    {
        model = "ch_prop_vault_painting_01e",
        coords = vector3(1020.456, -3092.89, 448.57),
        heading = 270.36,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@thermal_charge", name = "thermal_charge" }
    },
    {
        model = "ch_prop_vault_painting_01i",
        coords = vector3(1020.446, -3095.87, 448.57),
        heading = 270.36,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@thermal_charge", name = "thermal_charge" }
    },
    {
        model = "ch_prop_vault_painting_01h",
        coords = vector3(1020.446, -3083.39, 448.57),
        heading = 270.36,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@thermal_charge", name = "thermal_charge" }
    },
    {
        model = "ch_prop_vault_painting_01g",
        coords = vector3(1017.995, -3094.88, 448.57),
        heading = 90.8,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@thermal_charge", name = "thermal_charge" }
    },    
    {
        model = "p_cs_locker_01_s",
        coords = vector3(1018.311, -3096.66, 447.97),
        heading = 448.54,
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "anim@heists@ornate_bank@grab_cash", name = "grab" }
    }
}

Config.HackingBlocks = 4 -- Cantidad de bloques que tienes que hacer coincidir
Config.HackingSeconds = 40	-- Segundos para hackear

Config.PoliceAlert = true -- Activar o desactivar aviso a policia
Config.PoliceJobs = {"police", "sheriff"} -- Trabajos que recibirán el aviso
Config.AlertMessage = "Robo de container en curso, zona del puerto."
Config.RequiredPolice = 0 -- o el número que desees
Config.CommandEntorno = 'entorno'

Config.MoneyAccount = "black_money" -- Puede ser: money, bank, black_money

if Config.Framework == 'qb' then
    QBCore = exports['qb-core']:GetCoreObject()
elseif Config.Framework == 'esx' then
    ESX = exports["es_extended"]:getSharedObject()
else
    print '^1[^6jc_container_robbery^1] ^2Framework No encontrada, ingrese esx o qb^0'
    return
end

```

{% endtab %}
{% endtabs %}

If you want to add more props you can add them as follows:

{% tabs %}
{% tab title="Config: Item" %}

```lua
    {
        model = "model_prop",
        coords = vector3(0, 0, 0), -- Location prop
        heading = 90.8, -- Heading Prop
        reward = { type = "item", name = "your_item", amount = 2 },
        anim = { dict = "your_anim", name = "thermal_charge" }
    },  
```

{% endtab %}

{% tab title="Config: Money" %}

```lua
    {
        model = "model_prop", -- Your Prop
        coords = vector3(0, 0, 0), -- Location prop
        heading = 90.8, -- Heading Prop
        reward = { type = "money", amount = 5000 },
        anim = { dict = "your_anim", name = "thermal_charge" }
    },
```

{% endtab %}
{% endtabs %}


---

# 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://jota-dev-documentation.gitbook.io/jota-dev/scripts/container.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.
