Full View config.installationparts.lua
Preview File Updated: v2.0.5 - 15.08.2024
---@field UseHelpUI: For advanced part installation which can prompt the player what they need to do now
Config.UseHelpUI = true
---@field AllowRunWithJacks: Allowing the player to run while carrying car jacks
Config.AllowRunWithJacks = true
---@field AllowJumpWithJacks: Allowing the player to jump while carrying car jacks
Config.AllowJumpWithJacks = true
---@field UseManualPartInstallation: Do you want the player to have to manually install each part separately to give the tuning process realism
Config.UseManualPartInstallation = true
---@field UseTargetForPartInstallation: Do you want to use target system for part installation
Config.UseTargetForPartInstallation = false
---@field TeleportToVehicleAfterInstallForMS: Is the player to be teleported to the vehicle for a millisecond, it will not be practically visible and the newly installed part in each player will synchronize
Config.TeleportToVehicleAfterInstallForMS = true
---@field TeleportToVehicleAfterFullInstallation: Is the mechanic to be transported to the vehicle after the installation of all parts is completed so that all Vehicle Properties are loaded
Config.TeleportToVehicleAfterFullInstallation = true
---@class InstallationPartsPoints Points for workshops to find purchased parts for the installation
Config.InstallationPartsPoints = {
['BennyS'] = {
['clean'] = vector3(-227.83, -1327.94, 29.89 + 1.0),
['repair'] = vector3(-227.83, -1327.94, 29.89 + 1.0),
['color1'] = vector3(-200.83, -1318.38, 30.09 + 1.0),
['color2'] = vector3(-200.83, -1318.38, 30.09 + 1.0),
['pearlescentColor'] = vector3(-200.83, -1318.38, 30.09 + 1.0),
['wheelColor'] = vector3(-200.83, -1318.38, 30.09 + 1.0),
['plateIndex'] = vector3(-200.83, -1318.38, 30.09 + 1.0),
['neonColor'] = vector3(-200.83, -1318.38, 30.09 + 1.0),
[0] = vector3(-195.9, -1315.47, 30.09 + 1.0), -- Spoilers
[1] = vector3(-195.9, -1315.47, 30.09 + 1.0), -- Front Bumper
[2] = vector3(-195.9, -1315.47, 30.09 + 1.0), -- Rear Bumper
[4] = vector3(-198.43, -1315.29, 30.09 + 1.0), -- Exhaust
[7] = vector3(-195.9, -1315.47, 30.09 + 1.0), -- Hood
[11] = vector3(-196.37, -1317.22, 30.09 + 1.0), -- Engine
[12] = vector3(-196.42, -1315.07, 30.09 + 1.0), -- Brakes
[13] = vector3(-196.42, -1315.07, 30.09 + 1.0), -- Transmission
[15] = vector3(-196.42, -1315.07, 30.09 + 1.0), -- Suspension
['engineSwap'] = vector3(-196.37, -1317.22, 30.09 + 1.0), -- Engine
[23] = vector3(-206.03, -1331.13, 29.91 + 1.0), -- Wheels
},
['BennyS-Paintshop'] = {
['color1'] = vector3(-200.83, -1318.38, 30.09 + 1.0),
['color2'] = vector3(-200.83, -1318.38, 30.09 + 1.0),
['pearlescentColor'] = vector3(-200.83, -1318.38, 30.09 + 1.0),
['clean'] = vector3(-227.83, -1327.94, 29.89 + 1.0),
},
...
}
---@field UseAdvancedEngineInstallation: Advanced engine installation with engine on stand
Config.UseAdvancedEngineInstallation = true
---@field UseAdvancedBrakesInstallation: Advanced brakes installation with jacks
Config.UseAdvancedBrakesInstallation = true
---@field UseAdvancedTransmissionInstallation: Advanced transmission installation with jacks
Config.UseAdvancedTransmissionInstallation = true
---@field UseAdvancedSuspensionInstallation: Advanced suspension installation with jacks
Config.UseAdvancedSuspensionInstallation = true
---@field UseAdvancedEngineSwapInstallation: Advanced engine swap installation with engine on stand
Config.UseAdvancedEngineSwapInstallation = true
---@field UseAdvancedWheelsInstallation: Advanced installation of each wheel separately
Config.UseAdvancedWheelsInstallation = true
---@field UseInstallationSoundEffects: Using sound effects when installing parts (CL.PlayInstallationSoundEffect)
Config.UseInstallationSoundEffects = true
---@class PartsInstallationSoundEffects You can configure every possible sound, file name and volume
Config.PartsInstallationSoundEffects = {
['carJacks'] = {use=true, fileName='vms_tuning-jacks', volume=0.10}, -- Car Jacks
['clean'] = {use=true, fileName='vms_tuning-cleaning', volume=0.08},
['repair'] = {use=true, fileName='vms_tuning-socket_wrench', volume=0.12},
[0] = {use=true, fileName='vms_tuning-socket_wrench', volume=0.12}, -- Spoilers
[1] = {use=true, fileName='vms_tuning-socket_wrench', volume=0.12}, -- Front Bumper
[2] = {use=true, fileName='vms_tuning-socket_wrench', volume=0.12}, -- Rear Bumper
[4] = {use=true, fileName='vms_tuning-socket_wrench', volume=0.12}, -- Exhaust
[7] = {use=true, fileName='vms_tuning-socket_wrench', volume=0.12}, -- Hood
[11] = {use=true, fileName='vms_tuning-engine_crane', volume=0.11}, -- Engine
['engineSwap'] = {use=true, fileName='vms_tuning-engine_crane', volume=0.11}, -- Engine Swap
[12] = {use=true, fileName='vms_tuning-ratchet_wrench', volume=0.07}, -- Brakes
[13] = {use=true, fileName='vms_tuning-ratchet_wrench', volume=0.07}, -- Transmission
[15] = {use=true, fileName='vms_tuning-ratchet_wrench', volume=0.07}, -- Suspension
[23] = {use=true, fileName='vms_tuning-air_wrench', volume=0.03}, -- Wheels
['color1'] = {use=true, fileName='vms_tuning-painting', volume=0.1}, -- Primary Color
['color2'] = {use=true, fileName='vms_tuning-painting', volume=0.1}, -- Secondary Color
['pearlescentColor'] = {use=true, fileName='vms_tuning-painting', volume=0.1}, -- Pearlescent Color
['wheelColor'] = {use=true, fileName='vms_tuning-painting', volume=0.1}, -- Wheel Color
}
Config.ClassesOfVehiclesWithAdvancedInstallations = {
[0] = true, -- Compacts
[1] = true, -- Sedans
[2] = true, -- SUVs
[3] = true, -- Coupes
[4] = true, -- Muscle
[5] = true, -- Sports Classics
[6] = true, -- Sports
[7] = true, -- Super
[8] = false, -- Motorcycles
[9] = true, -- Off-road
[10] = false, -- Industrial
[11] = false, -- Utility
[12] = true, -- Vans
[13] = false, -- Cycles
[14] = false, -- Boats
[15] = false, -- Helicopters
[16] = false, -- Planes
[17] = false, -- Service
[18] = true, -- Emergency
[19] = false, -- Military
[20] = true, -- Commercial
[21] = false, -- Trains
[22] = false, -- Open Wheel
}
Config.AdvancedInstallationsProps = {
[11] = {
helpUI = {
getStand = "Take the engine on a stand.",
installEngine = "Install the engine.",
},
standHash = joaat("prop_engine_hoist"),
standOffset = {-0.085, 0.24, -1.3, 10.0, 30.0, 100.0},
standBone = 57005,
standAnimation = {"missfinale_c2ig_11", "pushcar_offcliff_m"},
partHash = joaat("prop_car_engine_01"),
partOffsetToStand = {-0.1, -1.6, 1.4, 0.0, 0.0, 0.0},
installationPointDirection = 'front',
installationOffset = vec(0.0, 0.2, 0.2),
installationPointDirectionBackEngine = 'rear',
installationOffsetBackEngine = vec(0.0, -0.2, 0.2),
installationAnimation = {"mini@repair", "fixing_a_ped"},
installationTime = 4000,
openDoors = {4},
allowPlayerRun = false,
allowPlayerJump = false,
},
[12] = {
helpUI = {
getStand = "Take the jacks.",
installStand = "Place the jacks under vehicle.",
installPart = "Tune the brakes.",
},
standHash = joaat("xs_prop_x18_axel_stand_01a"),
standBone = 28422,
standOffset = {0.07, -0.44, -0.1, -80.0, 20.0, 0.0},
standBone2 = 60309,
standOffset2 = {0.0, -0.44, 0.275, -120.0, -20.0, 0.0},
standAnimation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
time = 3000,
standInstallationPointDirection = 'front-left',
standInstallationOffset = vec(0.1, -2.0, 0.2),
standInstallationAnimation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
installation = {
[1] = {
pointDirection = "rear",
offset = vec(0.4, 0.1, 0.2),
animation = {"amb@world_human_vehicle_mechanic@male@base", "base"},
time = 6000,
pedDirection = 'front',
},
[2] = {
pointDirection = "front",
offset = vec(0.0, -0.1, 0.2),
animation = {"amb@world_human_vehicle_mechanic@male@base", "base"},
time = 6000,
pedDirection = 'rear',
},
},
allowPlayerRun = true,
allowPlayerJump = true,
},
[13] = {
helpUI = {
getStand = "Take the jacks.",
installStand = "Place the jacks under vehicle.",
installPart = "Tune the transmission.",
},
standHash = joaat("xs_prop_x18_axel_stand_01a"),
standBone = 28422,
standOffset = {0.07, -0.44, -0.1, -80.0, 20.0, 0.0},
standBone2 = 60309,
standOffset2 = {0.0, -0.44, 0.275, -120.0, -20.0, 0.0},
standAnimation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
time = 3000,
standInstallationPointDirection = 'front-left',
standInstallationOffset = vec(0.1, -2.0, 0.2),
standInstallationAnimation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
installation = {
[1] = {
pointDirection = "front",
offset = vec(0.0, -0.1, 0.2),
animation = {"amb@world_human_vehicle_mechanic@male@base", "base"},
time = 6000,
pedDirection = 'rear',
},
},
allowPlayerRun = true,
allowPlayerJump = true,
},
[15] = {
helpUI = {
getStand = "Take the jacks.",
installStand = "Place the jacks under vehicle.",
installPart = "Tune the suspension.",
},
standHash = joaat("xs_prop_x18_axel_stand_01a"),
standBone = 28422,
standOffset = {0.07, -0.44, -0.1, -80.0, 20.0, 0.0},
standBone2 = 60309,
standOffset2 = {0.0, -0.44, 0.275, -120.0, -20.0, 0.0},
standAnimation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
time = 3000,
standInstallationPointDirection = 'front-left',
standInstallationOffset = vec(0.1, -2.0, 0.2),
standInstallationAnimation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
installation = {
[1] = {
pointDirection = "rear",
offset = vec(0.4, 0.1, 0.2),
animation = {"amb@world_human_vehicle_mechanic@male@base", "base"},
time = 6000,
pedDirection = 'front',
},
[2] = {
pointDirection = "front",
offset = vec(0.0, -0.1, 0.2),
animation = {"amb@world_human_vehicle_mechanic@male@base", "base"},
time = 6000,
pedDirection = 'rear',
},
},
allowPlayerRun = true,
allowPlayerJump = true,
},
['engineSwap'] = {
helpUI = {
getStand = "Take the engine on a stand.",
installEngine = "Install the engine.",
},
standHash = joaat("prop_engine_hoist"),
standOffset = {-0.085, 0.24, -1.3, 10.0, 30.0, 100.0},
standBone = 57005,
standAnimation = {"missfinale_c2ig_11", "pushcar_offcliff_m"},
partHash = joaat("prop_car_engine_01"),
partOffsetToStand = {-0.1, -1.6, 1.4, 0.0, 0.0, 0.0},
installationPointDirection = 'front',
installationOffset = vec(0.0, 0.2, 0.2),
installationPointDirectionBackEngine = 'rear',
installationOffsetBackEngine = vec(0.0, -0.2, 0.2),
installationAnimation = {"mini@repair", "fixing_a_ped"},
installationTime = 4000,
openDoors = {4},
allowPlayerRun = false,
allowPlayerJump = false,
},
[23] = {
helpUI = {
getStand = "Take the jacks.",
installStand = "Place the jacks under vehicle.",
getWheel = "Take the wheel.",
installWheel = "Install the wheel.",
},
standHash = joaat("xs_prop_x18_axel_stand_01a"),
standBone = 28422,
standOffset = {0.07, -0.44, -0.1, -80.0, 20.0, 0.0},
standBone2 = 60309,
standOffset2 = {0.0, -0.44, 0.275, -120.0, -20.0, 0.0},
standAnimation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
time = 3000,
standInstallationPointDirection = 'front-left',
standInstallationOffset = vec(0.1, -2.0, 0.2),
standInstallationAnimation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
hash = joaat('prop_wheel_rim_01'),
boneAttach = 57005,
propPlacement = {0.169, -0.018, -0.22, -90.0, -110.0, 282.0},
animation = {"anim@heists@box_carry@", "idle"},
installationTime = 4000,
installation = {
[1] = {
bone = "wheel_lf",
animation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
time = 6000,
},
[2] = {
bone = "wheel_lr",
animation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
time = 6000,
},
[3] = {
bone = "wheel_rf",
animation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
time = 6000,
},
[4] = {
bone = "wheel_rr",
animation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
time = 6000,
},
[5] = {
bone = "wheel_lm1",
animation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
time = 6000,
},
[6] = {
bone = "wheel_rm1",
animation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
time = 6000,
},
},
allowPlayerRun = true,
allowPlayerJump = false,
},
}
Config.InstallationPartsPropsList = {
---@param installationPointDirection: 'front', 'front-left', 'front-right', 'rear', 'rear-left', 'rear-right'
['clean'] = {
hash = joaat('prop_sponge_01'),
boneAttach = 28422,
propPlacement = {0.0, 0.0, -0.01, 90.0, 0.0, 0.0},
installationPointDirection = 'front-left',
installationOffset = vec(0.1, -0.75, 0.2),
installationAnimation = {"amb@world_human_maid_clean@", "base"},
installationTime = 4000,
allowPlayerRun = true,
allowPlayerJump = true,
},
['repair'] = {
hash = joaat("prop_tool_wrench"),
boneAttach = 57005,
propPlacement = {0.119, -0.072, -0.05, -90.0, 120.0, 12.0},
installationPointDirection = 'front',
installationOffset = vec(0.4, 0.1, 0.2),
installationPointDirectionBackEngine = 'rear',
installationOffsetBackEngine = vec(0.0, -0.1, 0.2),
installationAnimation = {"mini@repair", "fixing_a_ped"},
installationTime = 4000,
openDoors = {4},
allowPlayerRun = true,
allowPlayerJump = true,
},
['color1'] = {
hash = joaat('prop_cs_spray_can'),
boneAttach = 57005,
propPlacement = {0.119, -0.072, -0.05, -90.0, 120.0, 12.0},
installationPointDirection = 'front-left',
installationOffset = vec(-0.4, 0.15, 0.2),
installationAnimation = {"anim@amb@business@weed@weed_inspecting_lo_med_hi@", "weed_spraybottle_stand_spraying_01_inspector"},
installationTime = 4000,
allowPlayerRun = true,
allowPlayerJump = true,
},
['color2'] = {
hash = joaat('prop_cs_spray_can'),
boneAttach = 57005,
propPlacement = {0.119, -0.072, -0.05, -90.0, 120.0, 12.0},
installationPointDirection = 'front-right',
installationOffset = vec(-0.4, 0.15, 0.2),
installationAnimation = {"anim@amb@business@weed@weed_inspecting_lo_med_hi@", "weed_spraybottle_stand_spraying_01_inspector"},
installationTime = 4000,
allowPlayerRun = true,
allowPlayerJump = true,
},
['pearlescentColor'] = {
hash = joaat('prop_cs_spray_can'),
boneAttach = 57005,
propPlacement = {0.119, -0.072, -0.05, -90.0, 120.0, 12.0},
installationPointDirection = 'front-left',
installationOffset = vec(-0.4, 0.15, 0.2),
installationAnimation = {"anim@amb@business@weed@weed_inspecting_lo_med_hi@", "weed_spraybottle_stand_spraying_01_inspector"},
installationTime = 4000,
allowPlayerRun = true,
allowPlayerJump = true,
},
['wheelColor'] = {
hash = joaat('prop_cs_spray_can'),
boneAttach = 57005,
propPlacement = {0.119, -0.072, -0.05, -90.0, 120.0, 12.0},
installationPointDirection = 'front-left',
installationOffset = vec(-0.4, 0.15, 0.2),
installationAnimation = {"anim@amb@business@weed@weed_inspecting_lo_med_hi@", "weed_spraybottle_stand_spraying_01_inspector"},
installationTime = 4000,
allowPlayerRun = true,
allowPlayerJump = true,
},
['plateIndex'] = {
hash = joaat('p_num_plate_01'),
boneAttach = 57005,
propPlacement = {0.119, -0.072, -0.05, -90.0, 120.0, 12.0},
animation = {"anim@heists@box_carry@", "idle"},
installationPointDirection = 'rear',
installationOffset = vec(0.0, -0.15, 0.2),
installationAnimation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
installationTime = 4000,
allowPlayerRun = true,
allowPlayerJump = true,
},
['neonColor'] = {
hash = joaat('xs_prop_arena_lights_tube_l_a'),
boneAttach = 57005,
propPlacement = {0.169, -0.018, -0.22, 90.0, -110.0, 282.0},
animation = {"anim@heists@box_carry@", "idle"},
installationPointDirection = 'front-left',
installationOffset = vec(0.2, -2.25, 0.2),
installationAnimation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
installationTime = 4000,
allowPlayerRun = true,
allowPlayerJump = false,
},
[0] = { -- Spoiler
hash = joaat('imp_prop_impexp_spoiler_02a'),
boneAttach = 57005,
propPlacement = {0.36, 0.078, -0.195, -20.0, -110.0, 10.0},
animation = {"anim@heists@box_carry@", "idle"},
installationPointDirection = 'rear',
installationOffset = vec(0.0, -0.1, 0.2),
installationAnimation = {"mini@repair", "fixing_a_ped"},
installationTime = 4000,
allowPlayerRun = true,
allowPlayerJump = false,
},
[1] = { -- Front Bumper
hash = joaat('imp_prop_impexp_front_bumper_01a'),
boneAttach = 57005,
propPlacement = {0.36, 0.078, -0.195, -20.0, -110.0, 10.0},
animation = {"anim@heists@box_carry@", "idle"},
installationPointDirection = 'front',
installationOffset = vec(0.0, 0.1, 0.2),
installationAnimation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
installationTime = 4000,
allowPlayerRun = true,
allowPlayerJump = false,
},
[2] = { -- Rear Bumper
hash = joaat('imp_prop_impexp_rear_bumper_02a'),
boneAttach = 57005,
propPlacement = {0.36, 0.078, -0.195, -20.0, -110.0, 10.0},
animation = {"anim@heists@box_carry@", "idle"},
installationPointDirection = 'rear',
installationOffset = vec(0.0, -0.1, 0.2),
installationAnimation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
installationTime = 4000,
allowPlayerRun = true,
allowPlayerJump = false,
},
[4] = { -- Exhaust
hash = joaat('imp_prop_impexp_exhaust_06'),
boneAttach = 57005,
propPlacement = {-0.04, -0.03, 0.09, 200.0, 220.0, 12.0},
installationPointDirection = 'rear',
installationOffset = vec(0.0, -0.1, 0.2),
installationAnimation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
installationTime = 4000,
allowPlayerRun = true,
allowPlayerJump = true,
},
[7] = { -- Hood
hash = joaat('prop_car_bonnet_02'),
boneAttach = 60309,
propPlacement = {0.025, 0.08, 0.255, -145.0, 290.0, 0.0},
animation = {"anim@heists@box_carry@", "idle"},
installationPointDirection = 'front',
installationOffset = vec(0.0, 0.1, 0.2),
installationAnimation = {"mini@repair", "fixing_a_ped"},
installationTime = 4000,
allowPlayerRun = false,
allowPlayerJump = false,
},
[23] = { -- Wheels
hash = joaat('prop_wheel_rim_01'),
boneAttach = 57005,
propPlacement = {0.169, -0.018, -0.22, -90.0, -110.0, 282.0},
animation = {"anim@heists@box_carry@", "idle"},
installationPointDirection = 'front-left',
installationOffset = vec(0.15, -1.65, 0.2),
installationAnimation = {"anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer"},
installationTime = 4000,
allowPlayerRun = true,
allowPlayerJump = false,
},
}
Config.OnInstallationPart = {
['clean'] = function(vehicle, properties)
end,