cfg = cfg or {} cfg.pickups = {} cfg.pickups.timeouts = { pickup = 2000, -- 2000 Miliseconds before picking up object (used in upgrades to lower this number) drop = 2000, -- 2000 Miliseconds before dropping an object (used in upgrades to lower this number) } cfg.pickups.affects = { { id = "cut_hand", enabled = true, chance = 10, -- 10% damage = 3, screen_affect = "", -- Empty String means no screen affect duration = 0, }, { id = "needle_poke", enabled = true, chance = 10, -- 10% damage = 1, screen_affect = "MP_Celeb_Lose", duration = 10000, }, } -- Animations cfg.pickups.animations = { {-- cfg.pickups.animations[1] pickup = { dict = "anim@mp_snowball", base = "pickup_snowball", time = 1000 }, carry = { dict = "missfbi4prepp1", base = "_bag_walk_garbage_man" }, drop = { dict = "missfbi4prepp1", base = "_bag_throw_garbage_man", time = 1000 }, }, {-- cfg.pickups.animations[2] pickup = { dict = "anim@mp_snowball", base = "pickup_snowball", time = 1000 }, carry = { dict = "anim@heists@box_carry@", base = "idle" }, drop = { dict = "anim@mp_snowball", base = "pickup_snowball", time = 750 }, }, {-- cfg.pickups.animations[3] pickup = { dict = "anim@heists@load_box", base = "lift_box", time = 2000 }, carry = { dict = "anim@heists@box_carry@", base = "idle" }, drop = { dict = "anim@mp_snowball", base = "pickup_snowball", time = 750 }, }, } -- Note: Each garbage object can reward different items electronics might give elctronic parts, where as mechanical parts might give salvage metal or copper cfg.pickups.rewards = { garbage = { label = "General Waste", discovery_chance = 60, -- 60% chance to find something items = { -- If disovery chance then it uses probability weight and selects one item based off weight { item = "copper", probability_weight = 35, min = 1, max = 3 }, { item = "rubber", probability_weight = 25, min = 1, max = 3 }, { item = "iron", probability_weight = 15, min = 1, max = 3 }, { item = "weapon_knife", probability_weight = 1, min = 1, max = 1 }, } }, electronics = { label = "Electronic Waste", discovery_chance = 50, items = { { item = "copper", probability_weight = 40, min = 1, max = 2 }, } }, metal = { label = "Scrap Metal", discovery_chance = 50, items = { { item = "metalscrap", probability_weight = 50, min = 1, max = 4 }, } }, rubber = { label = "Rubber Waste", discovery_chance = 60, items = { { item = "rubber", probability_weight = 50, min = 2, max = 5 }, } }, plastic = { label = "Plastic", discovery_chance = 60, items = { { item = "plastic", probability_weight = 50, min = 2, max = 6 }, } }, glass = { label = "Glass", discovery_chance = 50, items = { { item = "glass", probability_weight = 50, min = 2, max = 4 }, } }, } -- Note: used to set Props : Animations : Offsets -- Dynamic Garbage Types for random rewards. cfg.pickups.props = { -- Garbage ['prop_cs_rub_binbag_01'] = { reward = cfg.pickups.rewards.garbage, prop = "prop_cs_rub_binbag_01", attach_offsets = {bone = 91, x = 0.12, y = 0.0, z = -0.05, xr = 220.0, xy = 120.0, xz = 0.0}, animations = cfg.pickups.animations[1], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, ['prop_rub_binbag_05'] = { reward = cfg.pickups.rewards.garbage, prop = "prop_rub_binbag_05", attach_offsets = {bone = 91, x = 0.4158, y = -0.4662, z = -0.3744, xr = -45.5, xy = -25.8, xz = 23.9}, animations = cfg.pickups.animations[1], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, ['prop_rub_matress_04'] = { reward = cfg.pickups.rewards.garbage, prop = "prop_rub_matress_04", attach_offsets = {bone = 91, x = 0.0559, y = 0.0630, z = -0.2859, xr = -60.65, xy = 66.86, xz = -9.60}, animations = cfg.pickups.animations[3], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, ['prop_skid_box_05'] = { -- BREAKS ON IMPACT DO NOT USE FOR TYPE 1 MISSIONS reward = cfg.pickups.rewards.garbage, prop = "prop_skid_box_05", attach_offsets = {bone = 91, x = 0.3984, y = 0.1001, z = -0.1278, xr = -110.6, xy = 68.9, xz = -0.7}, animations = cfg.pickups.animations[2], debuffs = {walk_speed = 1.0, can_jump = false, can_sprint = false}, }, ['prop_homeless_matress_01'] = { reward = cfg.pickups.rewards.garbage, prop = "prop_homeless_matress_01", attach_offsets = {bone = 91, x = 0.1824, y = -0.1411, z = -0.0429, xr = -81.9, xy = 66.3, xz = -20.5}, animations = cfg.pickups.animations[3], debuffs = {walk_speed = 1.0, can_jump = false, can_sprint = false}, }, ['prop_luggage_09a'] = { reward = cfg.pickups.rewards.garbage, prop = "prop_luggage_09a", attach_offsets = {bone = 91, x = 0.1626, y = 0.1906, z = -0.1427, xr = -71.6, xy = 27.3, xz = 18.2}, animations = cfg.pickups.animations[2], debuffs = {walk_speed = 1.0, can_jump = false, can_sprint = false}, }, ['prop_rub_cardpile_06'] = { -- BREAKS ON IMPACT DO NOT USE FOR TYPE 1 MISSIONS reward = cfg.pickups.rewards.garbage, prop = "prop_rub_cardpile_06", attach_offsets = {bone = 91, x = 0.0419, y = 0.0225, z = -0.1048, xr = 88.2, xy = -5.5, xz = 142.7}, animations = cfg.pickups.animations[2], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, ['prop_rub_cardpile_03'] = { reward = cfg.pickups.rewards.garbage, prop = "prop_rub_cardpile_03", attach_offsets = {bone = 91, x = 0.1311, y = 0.0818, z = -0.1007, xr = -105.3, xy = 51.1, xz = -9.0}, animations = cfg.pickups.animations[2], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, ['prop_rub_cardpile_01'] = { -- BREAKS ON IMPACT DO NOT USE FOR TYPE 1 MISSIONS reward = cfg.pickups.rewards.garbage, prop = "prop_rub_cardpile_01", attach_offsets = {bone = 91, x = 0.0, y = 0.0, z = -0.1764, xr = 39.4, xy = -34.6, xz = -32.1}, animations = cfg.pickups.animations[2], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, ['prop_rub_boxpile_09'] = { -- BREAKS ON IMPACT DO NOT USE FOR TYPE 1 MISSIONS reward = cfg.pickups.rewards.garbage, prop = "prop_rub_boxpile_09", attach_offsets = {bone = 91, x = 0.1699, y = 0.0158, z = -0.2528, xr = 73.1, xy = -83.1, xz = -151.5}, animations = cfg.pickups.animations[2], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, -- Electronics ['prop_rub_monitor'] = { reward = cfg.pickups.rewards.electronics, prop = "prop_rub_monitor", attach_offsets = {bone = 91, x = 0.1476, y = 0.0554, z = -0.1722, xr = 0.0, xy = 0.0, xz = 125.6}, animations = cfg.pickups.animations[2], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, ['prop_ld_monitor_01'] = { reward = cfg.pickups.rewards.electronics, prop = "prop_ld_monitor_01", attach_offsets = {bone = 91, x = 0.1340, y = 0.1012, z = -0.2947, xr = 42.1, xy = 44.1, xz = -20.8}, animations = cfg.pickups.animations[1], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, ['v_ret_gc_shred'] = { reward = cfg.pickups.rewards.electronics, prop = "v_ret_gc_shred", attach_offsets = {bone = 91, x = 0.0898, y = 0.0000, z = -0.3405, xr = -143.2, xy = -32.5, xz = 36.0}, animations = cfg.pickups.animations[2], debuffs = {walk_speed = 1.0, can_jump = false, can_sprint = false}, }, ['prop_satdish_3_c'] = { reward = cfg.pickups.rewards.electronics, prop = "prop_satdish_3_c", attach_offsets = {bone = 91, x = 0.1666, y = 0.0883, z = -0.3020, xr = -112.5, xy = 56.9, xz = 99.9}, animations = cfg.pickups.animations[1], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, ['h4_prop_h4_lever_box_01a'] = { reward = cfg.pickups.rewards.electronics, prop = "h4_prop_h4_lever_box_01a", attach_offsets = {bone = 91, x = 0.1152, y = 0.0951, z = 0.0000, xr = 0.0, xy = 0.0, xz = 0.0}, animations = cfg.pickups.animations[1], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, -- Metal ['prop_rub_scrap_06'] = { reward = cfg.pickups.rewards.metal, prop = "prop_rub_scrap_06", attach_offsets = {bone = 91, x = -0.0456, y = -0.1269, z = -0.1575, xr = 0.0, xy = 16.2, xz = 0.0}, animations = cfg.pickups.animations[1], debuffs = {walk_speed = 1.0, can_jump = false, can_sprint = true}, }, ['prop_rub_washer_01'] = { reward = cfg.pickups.rewards.metal, prop = "prop_rub_washer_01", attach_offsets = {bone = 91, x = 0.3662, y = 0.2738, z = 0.0348, xr = -156.3, xy = 27.3, xz = 21.3}, animations = cfg.pickups.animations[3], debuffs = {walk_speed = 0.65, can_jump = false, can_sprint = false}, }, ['prop_rub_carpart_03'] = { reward = cfg.pickups.rewards.metal, prop = "prop_rub_carpart_03", attach_offsets = {bone = 91, x = 0.6273, y = -0.1772, z = -0.3969, xr = 76.3, xy = 19.0, xz = -65.8}, animations = cfg.pickups.animations[1], debuffs = {walk_speed = 1.0, can_jump = false, can_sprint = true}, }, ['prop_car_engine_01'] = { reward = cfg.pickups.rewards.metal, prop = "prop_car_engine_01", attach_offsets = {bone = 91, x = 0.1370, y = 0.2808, z = -0.4376, xr = 24.7, xy = -17.6, xz = 4.0}, animations = cfg.pickups.animations[3], debuffs = {walk_speed = 0.65, can_jump = false, can_sprint = false}, }, ['prop_barrel_01a'] = { reward = cfg.pickups.rewards.metal, prop = "prop_barrel_01a", attach_offsets = {bone = 91, x = 0.2503, y = 0.0632, z = -0.1734, xr = -116.2, xy = 17.4, xz = 14.2}, animations = cfg.pickups.animations[2], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, -- Rubber ['prop_wheel_tyre'] = { reward = cfg.pickups.rewards.rubber, prop = "prop_wheel_tyre", attach_offsets = {bone = 91, x = 0.1866, y = -0.1361, z = -0.1338, xr = 44.0, xy = 64.7, xz = -26.4}, animations = cfg.pickups.animations[1], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, ['prop_dock_ropetyre3'] = { reward = cfg.pickups.rewards.rubber, prop = "prop_dock_ropetyre3", attach_offsets = {bone = 91, x = 0.1391, y = -0.0470, z = 0.3233, xr = -0.3, xy = -4.7, xz = -60.3}, animations = cfg.pickups.animations[2], debuffs = {walk_speed = 0.8, can_jump = false, can_sprint = false}, }, ['prop_rub_wheel_01'] = { reward = cfg.pickups.rewards.rubber, prop = "prop_rub_wheel_01", attach_offsets = {bone = 91, x = 0.1853, y = 0.1657, z = -0.2828, xr = 26.1, xy = 0.0, xz = 51.3}, animations = cfg.pickups.animations[3], debuffs = {walk_speed = 0.8, can_jump = false, can_sprint = false}, }, ['prop_rub_tyre_dam3'] = { reward = cfg.pickups.rewards.rubber, prop = "prop_rub_tyre_dam3", attach_offsets = {bone = 91, x = 0.2561, y = -0.2034, z = -0.2696, xr = -20.2, xy = 72.2, xz = 0.0}, animations = cfg.pickups.animations[1], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, -- Plastic ['prop_crate_02a'] = { reward = cfg.pickups.rewards.plastic, prop = "prop_crate_02a", attach_offsets = {bone = 91, x = 0.0845, y = 0.2040, z = -0.1478, xr = -126.1, xy = 63.5, xz = -10.6}, animations = cfg.pickups.animations[2], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, ['prop_crate_11c'] = { reward = cfg.pickups.rewards.plastic, prop = "prop_crate_11c", attach_offsets = {bone = 91, x = 0.4698, y = -0.0344, z = 0.1373, xr = 119.0, xy = 83.7, xz = 104.0}, animations = cfg.pickups.animations[1], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, ['prop_crate_11d'] = { reward = cfg.pickups.rewards.plastic, prop = "prop_crate_11d", attach_offsets = {bone = 91, x = 0.2116, y = 0.0890, z = -0.0627, xr = -105.0, xy = -17.7, xz = 29.5}, animations = cfg.pickups.animations[2], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, ['prop_barrel_02a'] = { reward = cfg.pickups.rewards.plastic, prop = "prop_barrel_02a", attach_offsets = {bone = 91, x = 0.2491, y = 0.0216, z = -0.1883, xr = -104.4, xy = -9.3, xz = 28.4}, animations = cfg.pickups.animations[2], debuffs = {walk_speed = 1.0, can_jump = true, can_sprint = true}, }, -- Glass ['prop_ld_toilet_01'] = { reward = cfg.pickups.rewards.glass, prop = "prop_ld_toilet_01", attach_offsets = {bone = 91, x = 0.1470, y = 0.0746, z = -0.2971, xr = -106.4, xy = -26.0, xz = -4.7}, animations = cfg.pickups.animations[3], debuffs = {walk_speed = 0.8, can_jump = false, can_sprint = false}, }, ['prop_toilet_02'] = { reward = cfg.pickups.rewards.glass, prop = "prop_toilet_02", attach_offsets = {bone = 91, x = 0.0277, y = -0.1218, z = -0.1119, xr = -141.6, xy = 0.0, xz = 0.0}, animations = cfg.pickups.animations[3], debuffs = {walk_speed = 0.8, can_jump = false, can_sprint = false}, }, } -- CODE BELOW IS GENERATING TRASH BINS + MULTI TRASH BAG PROPS -- Trash Bins local trash_bins = { 'prop_dumpster_01a', 'prop_dumpster_02a', 'prop_dumpster_02b', 'prop_dumpster_3a', 'prop_dumpster_4a', 'prop_dumpster_4b', 'prop_gas_smallbin01', 'prop_bin_01a', 'prop_bin_02a', 'prop_bin_03a', 'prop_bin_04a', 'prop_bin_05a', 'prop_bin_06a', 'prop_bin_07a', 'prop_bin_07b', 'prop_bin_07c', 'prop_bin_07d', 'prop_bin_08a', 'prop_bin_08open', 'prop_bin_09a', 'prop_bin_10a', 'prop_bin_10b', 'prop_bin_11a', 'prop_bin_11b', 'prop_bin_12a', 'prop_bin_13a', 'prop_bin_14a', 'prop_bin_14b', 'prop_bin_delpiero', 'prop_bin_delpiero_b', 'prop_bin_beach_01a', } -- Multi Trash Bags local trash_props = { 'prop_rub_binbag_01b', 'prop_rub_binbag_03', 'prop_rub_binbag_03b', 'prop_rub_binbag_04', 'prop_rub_binbag_06', 'prop_rub_binbag_08' } -- Generate To Avoid Useless Data for k,v in pairs(trash_bins) do local template = { bin = { trash_props = {"prop_cs_rub_binbag_01", "prop_rub_binbag_05"}, }, reward = cfg.pickups.rewards.garbage, prop = v, } if not cfg.pickups.props[v] then cfg.pickups.props[v] = template end end for k,v in pairs(trash_props) do local template = { should_delete = true, bin = { trash_props = {"prop_cs_rub_binbag_01"}, }, reward = cfg.pickups.rewards.garbage, prop = v, } if not cfg.pickups.props[v] then cfg.pickups.props[v] = template end end