Jota Dev Container Robbery
Here you can see the documentation to learn how to install the container theft system.

How to start the script for its correct operation:
Download and install mhacking
Put in your server.cfg
# JotaDev Container Robbery
ensure mhacking
ensure jc_container_robbery
Script Config:
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
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
If you want to add more props you can add them as follows:
{
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" }
},
{
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" }
},
Last updated