acstrip.lua
The complete default acstrip.lua for Petty Crime (sd-pettycrime). Use this as a reference or a starting point for your own configuration.
TIP
This is the full, unedited config file. For a detailed explanation of each option, see the Configuration page.
lua
return {
-- Skill-check minigame run after the strip. Enable = false to skip it. Swap
-- `lockpick` for any other minigame.* (see client/minigame.lua) or your own
-- function returning true/false.
Minigame = {
Enable = true,
Start = function()
return require('client.minigame').lockpick({
nodeCount = 5, -- target nodes around the ring
hitWindowDeg = 32, -- angular tolerance per node (deg)
rotationSpeedDegSec = 150, -- orb orbit speed (deg/sec)
speedUpMultiplier = 1.12, -- speed-up applied after each node opens
timeLimitSec = 0, -- seconds before caught; 0 = no limit
}).success
end,
},
Cooldown = 25, -- Per-unit cooldown in minutes (keyed by world coords).
Items = { 'powersaw', 'anglegrinder', 'bolt_cutter', 'WEAPON_HATCHET' }, -- Cutting tools (any one is enough).
StripTime = 18, -- Seconds to strip a unit (progress bar duration).
BaseXP = 22,
GiveXPForItems = true,
Logging = true,
-- All HVAC / AC unit prop hashes scattered around the GTA V map. ox_target's
-- `addModel` attaches our strip option to every existing world prop matching
-- one of these — no spawning needed, the props are already part of the map.
-- Players have to find them: rooftops, alley walls, the back of stores.
--
-- Two size groups:
-- l_* — large floor-mount commercial condensers (rooftops, parking lots)
-- m_* — medium wall-mount residential condensers (alleys, side walls)
--
-- The reward tables don't differentiate by size right now; you can split
-- them in the admin panel if you want larger units to drop more copper.
Models = {
'prop_aircon_l_01',
'prop_aircon_l_02',
'prop_aircon_l_03',
'prop_aircon_l_03_dam',
'prop_aircon_l_04',
'prop_aircon_m_01',
'prop_aircon_m_02',
'prop_aircon_m_03',
'prop_aircon_m_04',
'prop_aircon_m_05',
'prop_aircon_m_06',
},
PoliceAlert = {
Enable = true,
Chance = 30,
Send = function()
local alertMessage = 'Rooftop AC unit theft reported'
print('Police Alert: ' .. alertMessage)
-- Example: cd_dispatch integration (uncomment to use)
--[[
local data = exports['cd_dispatch']:GetPlayerInfo()
TriggerServerEvent('cd_dispatch:AddNotification', {
job_table = {'police'},
coords = data.coords,
title = '10-21R - Rooftop Theft',
message = ('A %s stripping AC units off a rooftop at %s'):format(data.sex, data.street),
flash = 0,
unique_id = data.unique_id,
sound = 1,
blip = {
sprite = 380,
scale = 1.1,
colour = 1,
flashes = false,
text = '911 - Rooftop Theft',
time = 5,
radius = 0,
}
})
--]]
end,
},
-- Loot table per player level. Heavy on copper/aluminum/scrap since that's
-- the real-world appeal of stripping HVAC units. Modelled on the example
-- reward shape: most rolls return 2-3 different scrap items per success.
Rewards = {
[1] = {
{ item = 'metalscrap', chance = 50, min = 2, max = 4, xp = 1 },
{ item = 'plastic', chance = 35, min = 1, max = 3, xp = 1 },
{ item = 'copper', chance = 35, min = 1, max = 3, xp = 2 },
{ item = 'aluminum', chance = 25, min = 1, max = 2, xp = 3 },
{ item = 'rubber', chance = 25, min = 1, max = 2, xp = 1 },
{ item = 'iron', chance = 25, min = 1, max = 2, xp = 2 },
{ item = 'glass', chance = 20, min = 1, max = 2, xp = 1 },
},
[2] = {
{ item = 'metalscrap', chance = 45, min = 3, max = 5, xp = 1 },
{ item = 'copper', chance = 35, min = 2, max = 4, xp = 2 },
{ item = 'aluminum', chance = 30, min = 2, max = 3, xp = 3 },
{ item = 'plastic', chance = 30, min = 1, max = 4, xp = 1 },
{ item = 'iron', chance = 25, min = 1, max = 3, xp = 2 },
{ item = 'steel', chance = 18, min = 1, max = 2, xp = 5 },
{ item = 'rubber', chance = 22, min = 1, max = 2, xp = 1 },
{ item = 'glass', chance = 20, min = 1, max = 2, xp = 1 },
},
[3] = {
{ item = 'copper', chance = 40, min = 3, max = 6, xp = 2 },
{ item = 'metalscrap', chance = 35, min = 4, max = 6, xp = 1 },
{ item = 'aluminum', chance = 30, min = 2, max = 4, xp = 3 },
{ item = 'steel', chance = 22, min = 2, max = 3, xp = 5 },
{ item = 'iron', chance = 22, min = 2, max = 3, xp = 2 },
{ item = 'plastic', chance = 25, min = 1, max = 4, xp = 1 },
{ item = 'rubber', chance = 20, min = 1, max = 2, xp = 1 },
{ item = 'glass', chance = 18, min = 1, max = 2, xp = 1 },
{ item = 'platinum_chunk', chance = 8, min = 1, max = 1, xp = 20 },
},
},
}