adding tow script

This commit is contained in:
KingMcDonalds
2026-02-28 14:53:02 -08:00
parent 9ba492d405
commit 5cc91ca942
31 changed files with 4424 additions and 6 deletions
@@ -0,0 +1,20 @@
resource_manifest_version '77731fab-63ca-442c-a67b-abc70f28dfa5'
files {
'vehicles.meta',
'carvariations.meta',
'carcols.meta',
'handling.meta',
'vehiclelayouts.meta', -- Not Required
}
data_file 'HANDLING_FILE' 'handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'vehicles.meta'
data_file 'CARCOLS_FILE' 'carcols.meta'
data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta'
data_file 'VEHICLE_LAYOUTS_FILE' 'vehiclelayouts.meta' -- Not Required
client_script {
'vehicle_names.lua' -- Not Required
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<CVehicleModelInfoVariation>
<variationData>
<Item>
<modelName>Maxlasd18charger</modelName>
<colors>
<Item>
<indices content="char_array">
0
0
0
0
28
0
</indices>
<liveries>
<Item value="false" />
</liveries>
</Item>
</colors>
<kits>
<Item>0_default_modkit</Item>
</kits>
<windowsWithExposedEdges />
<plateProbabilities>
<Probabilities>
<Item>
<Name>Police guv plate</Name>
<Value value="100" />
</Item>
</Probabilities>
</plateProbabilities>
<lightSettings value="239" />
<sirenSettings value="352" />
</Item>
</variationData>
</CVehicleModelInfoVariation>
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<CHandlingDataMgr>
<HandlingData>
<Item type="CHandlingData">
<handlingName>18CHARGER</handlingName>
<fMass value="1850.000000" />
<fInitialDragCoeff value="6.000000" />
<fPercentSubmerged value="85.000000" />
<vecCentreOfMassOffset x="0.000000" y="0.000000" z="0.000000" />
<vecInertiaMultiplier x="1.000000" y="1.600000" z="1.600000" />
<fDriveBiasFront value="0.000000" />
<nInitialDriveGears value="8" />
<fInitialDriveForce value="0.500000" />
<fDriveInertia value="1.800000" />
<fClutchChangeRateScaleUpShift value="2.000000" />
<fClutchChangeRateScaleDownShift value="2.000000" />
<fInitialDriveMaxFlatVel value="355.000000" />
<fBrakeForce value="1.900000" />
<fBrakeBiasFront value="0.525000" />
<fHandBrakeForce value="0.600000" />
<fSteeringLock value="40.000000" />
<fTractionCurveMax value="2.750000" />
<fTractionCurveMin value="2.650000" />
<fTractionCurveLateral value="22.500000" />
<fTractionSpringDeltaMax value="0.020000" />
<fLowSpeedTractionLossMult value="1.000000" />
<fCamberStiffnesss value="0.000000" />
<fTractionBiasFront value="0.484000" />
<fTractionLossMult value="1.000000" />
<fSuspensionForce value="2.100000" />
<fSuspensionCompDamp value="1.400000" />
<fSuspensionReboundDamp value="2.200000" />
<fSuspensionUpperLimit value="0.090000" />
<fSuspensionLowerLimit value="-0.120000" />
<fSuspensionRaise value="0.000000" />
<fSuspensionBiasFront value="0.470000" />
<fAntiRollBarForce value="1.100000" />
<fAntiRollBarBiasFront value="0.580000" />
<fRollCentreHeightFront value="0.360000" />
<fRollCentreHeightRear value="0.360000" />
<fCollisionDamageMult value="1.000000" />
<fWeaponDamageMult value="1.000000" />
<fDeformationDamageMult value="0.800000" />
<fEngineDamageMult value="1.500000" />
<fPetrolTankVolume value="65.000000" />
<fOilVolume value="5.000000" />
<fSeatOffsetDistX value="0.000000" />
<fSeatOffsetDistY value="0.000000" />
<fSeatOffsetDistZ value="0.000000" />
<nMonetaryValue value="35000" />
<strModelFlags>440010</strModelFlags>
<strHandlingFlags>0</strHandlingFlags>
<strDamageFlags>0</strDamageFlags>
<AIHandling>AVERAGE</AIHandling>
<SubHandlingData>
<Item type="CCarHandlingData">
<fBackEndPopUpCarImpulseMult value="0.100000" />
<fBackEndPopUpBuildingImpulseMult value="0.030000" />
<fBackEndPopUpMaxDeltaSpeed value="0.600000" />
</Item>
<Item type="NULL" />
<Item type="NULL" />
</SubHandlingData>
</Item>
</HandlingData>
</CHandlingDataMgr>
@@ -0,0 +1,752 @@
--[[
Ultimate Lighting Controller Config
the ULC resource is required to use this configuration
get the resource here: https://github.com/Flohhhhh/ultimate-lighting-controller/releases/latest
To learn how to setup and use ULC visit here: https://docs.dwnstr.com/ulc/overview
]]
return
{names = {"lasd16asapc","lasd16asapd","lasd16fpiu","lasd16fpiub"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
disableExtras = {}
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {},
disableExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "Stage 1", key = 1, color = "red", extra = 2, linkedExtras = {5,1}, oppositeExtras = {}, offExtras = {3,4}, repair = false},
{label = "Stage 2", key = 2, color = "red", extra = 6, linkedExtras = {2,3}, oppositeExtras = {}, offExtras = {1,4,5}, repair = false},
{label = "Stage 3", key = 3, color = "red", extra = 4, linkedExtras = {3}, oppositeExtras = {}, offExtras = {1,2,5}, repair = false},
{label = "Parking Lights", key = 4, color = "amber", extra = 8, linkedExtras = {}, oppositeExtras = {}, offExtras = {}, repair = false}
},
stages = {
useStages = false,
stageKeys = {},
},
defaultStages = {
useDefaults = false,
enableKeys = {},
disableKeys = {}
},
},
{names = {"lasd16asap","lasd16asapb","lasd16rfr","lasd16rfrb"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
disableExtras = {}
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {},
disableExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "Stage 1", key = 1, color = "green", extra = 1, linkedExtras = {2,5}, oppositeExtras = {}, offExtras = {3,4,6}, repair = false},
{label = "Stage 2", key = 2, color = "green", extra = 2, linkedExtras = {3}, oppositeExtras = {}, offExtras = {1,4,5,6}, repair = false},
{label = "Stage 3", key = 3, color = "green", extra = 3, linkedExtras = {4}, oppositeExtras = {}, offExtras = {1,2,5,6}, repair = false},
{label = "Parking Lights", key = 4, color = "amber", extra = 8, linkedExtras = {}, oppositeExtras = {}, offExtras = {}, repair = false}
},
stages = {
useStages = false,
stageKeys = {},
},
defaultStages = {
useDefaults = false,
enableKeys = {},
disableKeys = {}
}
},
{names = {"lasd13fasap","lasd13fpiu1","lasd13fpiu2","lasd13fpiu3","lasd13fpiu4","lasd13fpiu5","lasd13fsfpiu"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
disableExtras = {}
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {},
disableExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "Stage 1", key = 1, color = "red", extra = 5, linkedExtras = {}, oppositeExtras = {}, offExtras = {6}, repair = false},
{label = "Stage 2", key = 2, color = "red", extra = 6, linkedExtras = {}, oppositeExtras = {}, offExtras = {5}, repair = false}
},
stages = {
useStages = false,
stageKeys = {},
},
defaultStages = {
useDefaults = false,
enableKeys = {},
disableKeys = {}
}
},
{names = {"lacpvic","lasd06m","lasd06u","lasdcrownvic","lasd18taurus","Maxlasd18charger","lasd18chrg","lasdchg","lasd18taurus","lasdchrg14","lasdparamount","lasdsd7100","lasdvicslicktop","lasd05cvpi","lasd06cvpi","lasd06cvpicarson","lasd06cvpisd7100","lasd08cvpi","lasd08cvpilomita","lasd08cvpitransit"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
disableExtras = {}
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {},
disableExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "Stage 1", key = 1, color = "green", extra = 7, linkedExtras = {8,9}, oppositeExtras = {}, offExtras = {6}, repair = false},
{label = "Stage 2", key = 2, color = "green", extra = 8, linkedExtras = {7}, oppositeExtras = {}, offExtras = {9}, repair = false},
{label = "Stage 3", key = 3, color = "green", extra = 6, linkedExtras = {8}, oppositeExtras = {}, offExtras = {7,9}, repair = false}
},
stages = {
useStages = false,
stageKeys = {},
},
defaultStages = {
useDefaults = false,
enableKeys = {},
disableKeys = {}
}
},
{names = {"lasd08tahoe","lasd08tahoe2","lasd14tahoe","lasd06tahoe","lasd15k9b","lasd15tahoeb","lasdexp","lasdexp2","lasdfpiu5","lasdtahoe4","lasdtahoe","lasdtahoe2","lasdtahoe3","lasd15k9","lasd15k9b","lasd15tahoe","lasd15tahoeb","lasd20k9","lasd20lp","lasd20tahoe","lasd20tfs","lasd20lp","lasd20tfs","lasd20tunm","lasdtahoelan"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
disableExtras = {}
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {},
disableExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "Stage 1", key = 1, color = "green", extra = 1, linkedExtras = {3}, oppositeExtras = {}, offExtras = {4,5,6,2}, repair = false},
{label = "Stage 2", key = 2, color = "green", extra = 7, linkedExtras = {3,4,6,2}, oppositeExtras = {}, offExtras = {1,5}, repair = false},
{label = "Stage 3", key = 3, color = "green", extra = 8, linkedExtras = {5,6,4}, oppositeExtras = {}, offExtras = {1,2,3}, repair = false}
},
stages = {
useStages = false,
stageKeys = {},
},
defaultStages = {
useDefaults = false,
enableKeys = {},
disableKeys = {}
}
},
{names = {"lasd20lp"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
disableExtras = {}
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {},
disableExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "Stage 1", key = 1, color = "green", extra = 1, linkedExtras = {3}, oppositeExtras = {}, offExtras = {2,4,5}, repair = false},
{label = "Stage 2", key = 2, color = "green", extra = 6, linkedExtras = {2,3,5}, oppositeExtras = {}, offExtras = {4,1}, repair = false},
{label = "Stage 3", key = 3, color = "green", extra = 7, linkedExtras = {4,5}, oppositeExtras = {}, offExtras = {1,3,2}, repair = false}
},
stages = {
useStages = false,
stageKeys = {},
},
defaultStages = {
useDefaults = false,
enableKeys = {},
disableKeys = {}
}
},
{names = {"met2"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "Stage 1", key = 1, color = "green", extra = 5, linkedExtras = {}, oppositeExtras = {}, offExtras = {3,6,7,8,9,10,11,12}, repair = false},
{label = "Stage 2", key = 2, color = "green", extra = 6, linkedExtras = {7,8,9}, oppositeExtras = {}, offExtras = {3,5,10,11,12}, repair = false},
{label = "Stage 3", key = 3, color = "green", extra = 10, linkedExtras = {3,11,12}, oppositeExtras = {}, offExtras = {4,5,6,7,8,9}, repair = false},
{label = "Steady Spotlights", key = 6, color = "green", extra = 4, linkedExtras = {}, oppositeExtras = {}, offExtras = {3,10,11,12}, repair = false}
},
defaultStages = {
useDefaults = true,
enableKeys = {1},
disableKeys = {2,3,6}
}
},
{names = {"met3"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "Stage 1", key = 1, color = "green", extra = 5, linkedExtras = {}, oppositeExtras = {}, offExtras = {3,6,7,8,9,10,11,12}, repair = false},
{label = "Stage 2", key = 2, color = "green", extra = 6, linkedExtras = {7,8,9}, oppositeExtras = {}, offExtras = {3,5,10,11,12}, repair = false},
{label = "Stage 3", key = 3, color = "green", extra = 10, linkedExtras = {3,11,12}, oppositeExtras = {}, offExtras = {4,5,6,7,8,9}, repair = false},
{label = "Steady Spotlights", key = 6, color = "green", extra = 4, linkedExtras = {}, oppositeExtras = {}, offExtras = {3,10,11,12}, repair = false}
},
defaultStages = {
useDefaults = true,
enableKeys = {1},
disableKeys = {2,3,6}
}
},
{names = {"sd20asap"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
disableExtras = {}
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {},
disableExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "Stage 1", key = 1, color = "green", extra = 1, linkedExtras = {}, oppositeExtras = {}, offExtras = {2}, repair = false},
{label = "Stage 2", key = 2, color = "green", extra = 2, linkedExtras = {}, oppositeExtras = {}, offExtras = {1}, repair = false}
},
stages = {
useStages = false,
stageKeys = {},
},
defaultStages = {
useDefaults = false,
enableKeys = {},
disableKeys = {}
}
},
{names = {"sd20fpiu", "lasdfpiu3"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
disableExtras = {}
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {},
disableExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "Stage 1", key = 1, color = "green", extra = 1, linkedExtras = {}, oppositeExtras = {}, offExtras = {2}, repair = false},
{label = "Stage 2", key = 2, color = "green", extra = 2, linkedExtras = {}, oppositeExtras = {}, offExtras = {1}, repair = false}
},
stages = {
useStages = false,
stageKeys = {},
},
defaultStages = {
useDefaults = false,
enableKeys = {},
disableKeys = {}
}
},
{names = {"lasd23tahoe","lasd23k9t"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
disableExtras = {}
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {},
disableExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "Stage 1", key = 1, color = "green", extra = 1, linkedExtras = {3}, oppositeExtras = {}, offExtras = {4,5,6,2}, repair = false},
{label = "Stage 2", key = 2, color = "green", extra = 2, linkedExtras = {3,4,6}, oppositeExtras = {}, offExtras = {5,1}, repair = false},
{label = "Stage 3", key = 3, color = "green", extra = 5, linkedExtras = {6,4}, oppositeExtras = {}, offExtras = {3,2,1}, repair = false}
},
stages = {
useStages = false,
stageKeys = {},
},
defaultStages = {
useDefaults = false,
enableKeys = {},
disableKeys = {}
}
},
{names = {"lasd23tunm","lasd22tunm"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
disableExtras = {}
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {},
disableExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "Stage 1", key = 1, color = "green", extra = 7, linkedExtras = {2,1}, oppositeExtras = {}, offExtras = {3,4,5}, repair = false},
{label = "Stage 2", key = 2, color = "green", extra = 10, linkedExtras = {2,3}, oppositeExtras = {}, offExtras = {1,4,5}, repair = false},
{label = "Stage 3", key = 3, color = "green", extra = 9, linkedExtras = {5,3,4}, oppositeExtras = {}, offExtras = {1,2}, repair = false}
},
stages = {
useStages = false,
stageKeys = {},
},
defaultStages = {
useDefaults = false,
enableKeys = {},
disableKeys = {}
}
},
{names = {"lasd20funm"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
disableExtras = {}
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {},
disableExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "STAGE 1", key = 1, color = "green", extra = 1, linkedExtras = {2}, oppositeExtras = {}, offExtras = {3,4,5}, repair = false},
{label = "STAGE 2", key = 2, color = "green", extra = 2, linkedExtras = {3}, oppositeExtras = {}, offExtras = {1,4,5}, repair = false},
{label = "STAGE 3", key = 3, color = "green", extra = 4, linkedExtras = {3,5}, oppositeExtras = {}, offExtras = {1,2}, repair = false}
},
stages = {
useStages = true,
stageKeys = {2,3,1},
},
defaultStages = {
useDefaults = false,
enableKeys = {},
disableKeys = {}
}
},
{names = {"lasd12", "LASD13"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
disableExtras = {}
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {},
disableExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "TKDN LGHT", key = 1, color = "green", extra = 11, linkedExtras = {}, oppositeExtras = {}, offExtras = {12}, repair = false},
{label = "STAGE LGHT", key = 2, color = "green", extra = 12, linkedExtras = {}, oppositeExtras = {}, offExtras = {11}, repair = false},
},
stages = {
useStages = false,
stageKeys = {},
},
defaultStages = {
useDefaults = false,
enableKeys = {},
disableKeys = {}
}
},
{names = {"lasd25fpiu","lasdfpiu5","lasdtahoe4","lasd20fpiu"},
steadyBurnConfig = {
forceOn = false, useTime = false,
disableWithLights = false,
sbExtras = {}
},
parkConfig = {
usePark = false,
useSync = false,
syncWith = {},
pExtras = {},
dExtras = {}
},
hornConfig = {
useHorn = false,
hornExtras = {},
disableExtras = {}
},
brakeConfig = {
useBrakes = false,
speedThreshold = 3,
brakeExtras = {},
disableExtras = {}
},
reverseConfig = {
useReverse = false,
reverseExtras = {},
disableExtras = {}
},
doorConfig = {
useDoors = false,
driverSide = {enable = {}, disable = {}},
passSide = {enable = {}, disable = {}},
trunk = {enable ={}, disable = {}}
},
buttons = {
{label = "STAGE 2", key = 1, color = "green", extra = 5, linkedExtras = {10}, oppositeExtras = {}, offExtras = {9,8,6,7}, repair = false},
{label = "STAGE 3", key = 2, color = "green", extra = 9, linkedExtras = {7, 6}, oppositeExtras = {}, offExtras = {8,5,10}, repair = false},
{label = "PARK", key = 3, color = "green", extra = 8, linkedExtras = {6, 9}, oppositeExtras = {}, offExtras = {8,5,10,7}, repair = false},
},
stages = {
useStages = true,
stageKeys = {1,2,3},
},
defaultStages = {
useDefaults = false,
enableKeys = {},
disableKeys = {}
}
}
@@ -0,0 +1,138 @@
<?xml version="1.0" encoding="UTF-8"?>
<CVehicleModelInfo__InitDataList>
<residentTxd>vehshare</residentTxd>
<residentAnims />
<InitDatas>
<Item>
<modelName>Maxlasd18charger</modelName>
<txdName>Maxlasd18charger</txdName>
<handlingId>18CHARGER</handlingId>
<gameName>Maxlasd18charger</gameName>
<vehicleMakeName>Maxlasd18charger</vehicleMakeName>
<expressionDictName>null</expressionDictName>
<expressionName>null</expressionName>
<animConvRoofDictName>null</animConvRoofDictName>
<animConvRoofName>null</animConvRoofName>
<animConvRoofWindowsAffected />
<ptfxAssetName>null</ptfxAssetName>
<audioNameHash>str392m</audioNameHash>
<layout>LAYOUT_STANDARD</layout>
<coverBoundOffsets>BUFFALO_COVER_OFFSET_INFO</coverBoundOffsets>
<explosionInfo>EXPLOSION_INFO_DEFAULT</explosionInfo>
<scenarioLayout />
<cameraName>DEFAULT_FOLLOW_VEHICLE_CAMERA</cameraName>
<aimCameraName>BOX_VEHICLE_AIM_CAMERA</aimCameraName>
<bonnetCameraName>VEHICLE_BONNET_CAMERA_STANDARD</bonnetCameraName>
<povCameraName>DEFAULT_POV_CAMERA_LOOKAROUND</povCameraName>
<FirstPersonDriveByIKOffset x="0.000000" y="-0.050000" z="-0.030000" />
<FirstPersonDriveByUnarmedIKOffset x="0.000000" y="0.000000" z="0.000000" />
<FirstPersonProjectileDriveByIKOffset x="0.000000" y="-0.088000" z="0.093000" />
<FirstPersonProjectileDriveByPassengerIKOffset x="0.020000" y="0.060000" z="-0.090000" />
<FirstPersonProjectileDriveByRearLeftIKOffset x="0.000000" y="0.000000" z="-0.055000" />
<FirstPersonProjectileDriveByRearRightIKOffset x="0.000000" y="0.000000" z="-0.055000" />
<FirstPersonDriveByLeftPassengerIKOffset x="0.000000" y="0.000000" z="-0.040000" />
<FirstPersonDriveByRightPassengerIKOffset x="-0.045000" y="-0.048000" z="-0.040000" />
<FirstPersonDriveByRightRearPassengerIKOffset x="0.000000" y="0.000000" z="-0.040000" />
<FirstPersonDriveByLeftPassengerUnarmedIKOffset x="0.000000" y="0.000000" z="0.000000" />
<FirstPersonDriveByRightPassengerUnarmedIKOffset x="0.000000" y="0.000000" z="0.000000" />
<FirstPersonMobilePhoneOffset x="0.150000" y="0.268000" z="0.503000" />
<FirstPersonPassengerMobilePhoneOffset x="0.136000" y="0.223000" z="0.425000" />
<FirstPersonMobilePhoneSeatIKOffset>
<Item>
<Offset x="0.156000" y="0.223000" z="0.493000" />
<SeatIndex value="2" />
</Item>
<Item>
<Offset x="0.156000" y="0.223000" z="0.493000" />
<SeatIndex value="3" />
</Item>
</FirstPersonMobilePhoneSeatIKOffset>
<PovCameraOffset x="0.000000" y="-0.235000" z="0.590000" />
<PovCameraVerticalAdjustmentForRollCage value="0.000000" />
<PovPassengerCameraOffset x="0.000000" y="0.000000" z="0.030000" />
<PovRearPassengerCameraOffset x="0.000000" y="0.000000" z="0.070000" />
<vfxInfoName>VFXVEHICLEINFO_CAR_GENERIC</vfxInfoName>
<shouldUseCinematicViewMode value="true" />
<shouldCameraTransitionOnClimbUpDown value="false" />
<shouldCameraIgnoreExiting value="false" />
<AllowPretendOccupants value="true" />
<AllowJoyriding value="true" />
<AllowSundayDriving value="true" />
<AllowBodyColorMapping value="true" />
<wheelScale value="0.250000" />
<wheelScaleRear value="0.250000" />
<dirtLevelMin value="0.000000" />
<dirtLevelMax value="50.000000" />
<envEffScaleMin value="0.000000" />
<envEffScaleMax value="1.000000" />
<envEffScaleMin2 value="0.000000" />
<envEffScaleMax2 value="1.000000" />
<damageMapScale value="0.900000" />
<damageOffsetScale value="1.000000" />
<diffuseTint value="0x00FFFFFF" />
<steerWheelMult value="1.000000" />
<HDTextureDist value="5.000000" />
<lodDistances content="float_array">
15.000000
30.000000
70.000000
140.000000
500.000000
500.000000
</lodDistances>
<minSeatHeight value="0.966" />
<identicalModelSpawnDistance value="20" />
<maxNumOfSameColor value="10" />
<defaultBodyHealth value="1000.000000" />
<pretendOccupantsScale value="1.000000" />
<visibleSpawnDistScale value="1.000000" />
<trackerPathWidth value="2.000000" />
<weaponForceMult value="1.000000" />
<frequency value="100" />
<swankness>SWANKNESS_1</swankness>
<maxNum value="999" />
<flags>FLAG_USE_INTERIOR_RED_LIGHT FLAG_LAW_ENFORCEMENT FLAG_EMERGENCY_SERVICE FLAG_NO_RESPRAY FLAG_DONT_SPAWN_IN_CARGEN FLAG_REPORT_CRIME_IF_STANDING_ON FLAG_HAS_LIVERY</flags>
<type>VEHICLE_TYPE_CAR</type>
<plateType>VPT_FRONT_AND_BACK_PLATES</plateType>
<dashboardType>VDT_RACE</dashboardType>
<vehicleClass>VC_EMERGENCY</vehicleClass>
<wheelType>VWT_SPORT</wheelType>
<trailers />
<additionalTrailers />
<drivers />
<extraIncludes />
<doorsWithCollisionWhenClosed />
<driveableDoors />
<bumpersNeedToCollideWithMap value="false" />
<needsRopeTexture value="false" />
<requiredExtras />
<rewards />
<cinematicPartCamera>
<Item>WHEEL_FRONT_RIGHT_CAMERA</Item>
<Item>WHEEL_FRONT_LEFT_CAMERA</Item>
<Item>WHEEL_REAR_RIGHT_CAMERA</Item>
<Item>WHEEL_REAR_LEFT_CAMERA</Item>
</cinematicPartCamera>
<NmBraceOverrideSet />
<buoyancySphereOffset x="0.000000" y="0.000000" z="0.000000" />
<buoyancySphereSizeScale value="1.000000" />
<pOverrideRagdollThreshold type="NULL" />
<firstPersonDrivebyData>
<Item>STD_POLICE3_FRONT_LEFT</Item>
<Item>STD_POLICE3_FRONT_RIGHT</Item>
<Item>STD_POLICE2_REAR_LEFT</Item>
<Item>STD_POLICE2_REAR_RIGHT</Item>
</firstPersonDrivebyData>
</Item>
</InitDatas>
<txdRelationships>
<Item>
<parent>vehicles_race_interior</parent>
<child>vehicles_race_generic</child>
</Item>
<Item>
<parent>vehicles_race_generic</parent>
<child>Maxlasd18charger</child>
</Item>
</txdRelationships>
</CVehicleModelInfo__InitDataList>
@@ -15,7 +15,7 @@
<animConvRoofName>null</animConvRoofName>
<animConvRoofWindowsAffected />
<ptfxAssetName>null</ptfxAssetName>
<audioNameHash>bison</audioNameHash>
<audioNameHash>SHERIFF2</audioNameHash>
<layout>LAYOUT_STANDARD</layout>
<coverBoundOffsets>GRESLEY_COVER_OFFSET_INFO</coverBoundOffsets>
<explosionInfo>EXPLOSION_INFO_DEFAULT</explosionInfo>
@@ -15,7 +15,7 @@
<animConvRoofName>null</animConvRoofName>
<animConvRoofWindowsAffected />
<ptfxAssetName>null</ptfxAssetName>
<audioNameHash>bison</audioNameHash>
<audioNameHash>SHERIFF2</audioNameHash>
<layout>LAYOUT_STANDARD</layout>
<coverBoundOffsets>GRESLEY_COVER_OFFSET_INFO</coverBoundOffsets>
<explosionInfo>EXPLOSION_INFO_DEFAULT</explosionInfo>
Binary file not shown.
@@ -0,0 +1,67 @@
######
## There are no longer circles- makesure to read the controls. Bed controls are done at the back left or right of the truck.
#####
## Default Controls:
[E] - At bed to attach / detach vehicle (useable in vehicle on bed as well)
[LeftArrow] - Attach, Wind winch
[RightArrow] - Unwind winch
[UpArrow] - Raise Bed (automatic, click once)
[DownArrow] - Lower Bed (automatic, click once)
[G] - Remove Rope
[SHIFT] - Access Hand Winch controls
[SHIFT] + [LeftArrow] - Grab winch
[SHIFT] + [RightArrow] - Return winch
[SHIFT] + [E] - Attach winch
## How to use:
# For ROLLING beds:
1. Lower bed
2. Ensure the vehicle is behind the truck close to the bed
3. Press Left Arrow next to the flatbed truck body to attach the winch
4. Press Left Arrow again to wind the winch
5. Press E when the vehicle is ON the bed. If the vehicle is inside the bed, or too high, press E to disconnect then E again to reconnect the car.
# For Static beds:
1. Ensure the car is behind the truck.
2. Press E next to the truck, or inside the car.
## Exports / Events:
# wind start/stop winding the winch
targetflatbedWind(truck)
# OR connect target or wind start/stop winding the winch
targetflatbedWind(truck, target)
# event:
"ebu_flatbeds:client:targetflatbedWind"
# start/stop unwinding the winch
targetflatbedUnWind(truck)
# event:
"ebu_flatbeds:client:targetflatbedUnWind"
# attach/detach vehicle on bed
targetflatbedAtt(truck)
# event:
"ebu_flatbeds:client:targetflatbedAtt"
# delete rope attached to truck
targetflatbedRope(truck)
# event
"ebu_flatbeds:client:targetflatbedRope"
# toggle wheel lift on truck (if applicable)
targetflatbedWheel(truck)
# event:
"ebu_flatbeds:client:targetflatbedWheel"
# Raise / stop the bed
targetflatbedRaise(truck)
# event:
"ebu_flatbeds:client:targetflatbedRaise"
# Lower /stop the bed
targetflatbedLower(truck)
# event:
"ebu_flatbeds:client:targetflatbedLower"
@@ -0,0 +1,241 @@
if not Config.DisableExtKeyControls then
RegisterKeyMapping('+bedLower', Config.Controlmessages.LowerBed, 'keyboard', 'DOWN')
RegisterKeyMapping('+bedRaise', Config.Controlmessages.RaiseBed, 'keyboard', 'UP')
RegisterKeyMapping('+flatbedWheel', Config.Controlmessages.WheelLift, 'keyboard', 'H')
if Config.EnableRopes then
RegisterKeyMapping('+flatbedWind', Config.Controlmessages.WindWinch..' / '..Config.Controlmessages.GrabWinch, 'keyboard', 'LEFT')
RegisterKeyMapping('+flatbedUWind', Config.Controlmessages.ExtendWinch..' / '..Config.Controlmessages.ReturnWinch, 'keyboard', 'RIGHT')
RegisterKeyMapping('+flatbedRope', Config.Controlmessages.DetachWinch..' / '..Config.Controlmessages.AttachWinch, 'keyboard', 'G')
end
end
if not Config.DisableInVehControl then
RegisterKeyMapping('+flatbedAtt', Config.Controlmessages.AttachVehicle, 'keyboard', 'E')
end
RegisterKeyMapping('+flatbedWarp', 'Flatbed Get In Car', 'keyboard', 'F')
function loadComplete(car, truck)
--This is called once a vehicle is loaded onto a truck
end
--allowed() is the function that determines if the player is allowed to use the controls. DO NOT RENAME THE FUNCTION
--Place whatever job check code you want in here, return true if allowed, false if not
function allowed()
return true
end
--This function allows checks for vehicle ownership before attaching ropes or to the bed
-- args [truck(entity), car(entity)]
function checkOwnership(truck, car)
return true
end
--This function returns if the vehicle is locked or not when trying to get in the loaded vehicle from next to the trailer
--false = NOT locked true == LOCKED
function IsVehicleLocked(car)
return DecorGetInt(car, '_VEH_DOOR_LOCK_STATUS') == 2 or DecorGetInt(car, '_VEH_DOOR_LOCK_STATUS') == 10
end
--======NOTIFICATIONS======--
function LoadCompleteNotif()
EndTextCommandThefeedPostTickerForced(1,1)
ThefeedNextPostBackgroundColor(184)
BeginTextCommandThefeedPost("STRING")
AddTextComponentSubstringPlayerName(Config.NotiLoadCompleteMessage)
EndTextCommandThefeedPostTicker(true, true)
Wait(3000)
EndTextCommandThefeedPostTickerForced(1,1)
end
function UnLoadCompleteNotif()
EndTextCommandThefeedPostTickerForced(1,1)
ThefeedNextPostBackgroundColor(184)
BeginTextCommandThefeedPost("STRING")
AddTextComponentSubstringPlayerName(Config.NotiUnLoadCompleteMessage)
EndTextCommandThefeedPostTicker(true, true)
Wait(3000)
EndTextCommandThefeedPostTickerForced(1,1)
end
function FBBlockedNotif()
EndTextCommandThefeedPostTickerForced(1,1)
ThefeedNextPostBackgroundColor(6)
BeginTextCommandThefeedPost("STRING")
AddTextComponentSubstringPlayerName(Config.NotiFBBlockedMessage)
EndTextCommandThefeedPostTicker(true, true)
Wait(3000)
EndTextCommandThefeedPostTickerForced(1,1)
end
function BlockedMessage()
EndTextCommandThefeedPostTickerForced(1,1)
ThefeedNextPostBackgroundColor(6)
BeginTextCommandThefeedPost("STRING")
AddTextComponentSubstringPlayerName(Config.NotiBlockedMessage)
EndTextCommandThefeedPostTicker(true, true)
Wait(3000)
EndTextCommandThefeedPostTickerForced(1,1)
end
--Help Text Messages
function message(lineOne, lineTwo, lineThree, duration, loop)
BeginTextCommandDisplayHelp("THREESTRINGS")
AddTextComponentSubstringPlayerName(lineOne)
AddTextComponentSubstringPlayerName(lineTwo or "")
AddTextComponentSubstringPlayerName(lineThree or "")
-- shape (always 0), loop (bool), makeSound (bool), duration (5000 max 5 sec)
EndTextCommandDisplayHelp(0, loop, false, duration or 5000)
end
--Advanced Functions
function validTruck(veh)
local playerPos = GetEntityCoords(PlayerPedId())
local truckCoords = GetEntityCoords(veh)
if trucks and #trucks > 0 and has_value(trucks, GetEntityModel(veh)) and #(playerPos - truckCoords) < 10 then
return true
end
return false
end
--Target
if Config.UseTarget then
--QB CORE
local bones = {"seat_dside_f", "seat_dside_r", "seat_pside_f", "seat_pside_f", 'boot', "scoop", 'chassis'}
local options = {}
options[#options+1] = {
num = 1,
icon = 'fa-solid fa-car-side',
label = '[Winch] Attach Winch',
action = function(entity)
playerAttach(entity)
end,
canInteract = function(entity, distance, data)
return winchInHand and Config.EnableRopes
end,
}
options[#options+1] = {
num = 2,
icon = 'fa-solid fa-angles-left',
label = '[Winch] Attach / Wind Winch',
action = function(entity)
TriggerEvent("ebu_flatbeds:client:targetflatbedWind", entity)
end,
canInteract = function(entity, distance, data)
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and allowed() and Config.EnableRopes
end,
}
options[#options+1] = {
num = 3,
icon = 'fa-solid fa-angles-right',
label = '[Winch] UnWind Winch',
action = function(entity)
TriggerEvent("ebu_flatbeds:client:targetflatbedUnWind", entity)
end,
canInteract = function(entity, distance, data)
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and allowed() and Config.EnableRopes
end,
}
options[#options+1] = {
num = 4,
icon = 'fa-solid fa-angles-up',
label = '[Winch] Raise Bed',
action = function(entity)
TriggerEvent("ebu_flatbeds:client:targetflatbedRaise", entity)
end,
canInteract = function(entity, distance, data)
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and allowed()
end,
}
options[#options+1] = {
num = 5,
icon = 'fa-solid fa-angles-down',
label = '[Winch] Lower Bed',
action = function(entity)
TriggerEvent("ebu_flatbeds:client:targetflatbedLower", entity)
end,
canInteract = function(entity, distance, data)
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and allowed()
end,
}
options[#options+1] = {
num = 6,
icon = 'fa-solid fa-ban',
label = '[Winch] Remove Winch',
action = function(entity)
TriggerEvent("ebu_flatbeds:client:targetflatbedRope", entity)
end,
canInteract = function(entity, distance, data)
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and allowed() and Config.EnableRopes
end,
}
options[#options+1] = {
num = 7,
icon = 'fa-solid fa-car-side',
label = '[Winch] Attach / Detach Vehicle',
action = function(entity)
TriggerEvent("ebu_flatbeds:client:targetflatbedAtt", entity)
end,
canInteract = function(entity, distance, data)
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and allowed()
end,
}
options[#options+1] = {
num = 8,
icon = 'fa-solid fa-truck-ramp-box',
label = '[Winch] Toggle Wheel Lift',
action = function(entity)
TriggerEvent("ebu_flatbeds:client:targetflatbedWheel", entity)
end,
canInteract = function(entity, distance, data)
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].wheellift and allowed() and Config.EnableRopes
end,
}
--Grab winch from truck
options[#options+1] = {
num = 9,
icon = 'fa-solid fa-car-side',
label = '[Winch] Grab Winch',
action = function(entity)
playerGrab(entity, PlayerPedId())
end,
canInteract = function(entity, distance, data)
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and allowed() and Config.EnableRopes
end,
}
--Grab winch from winched car
options[#options+1] = {
num = 10,
icon = 'fa-solid fa-car-side',
label = '[Winch] Grab Veh Winch',
action = function(entity)
playerGrabVeh(entity, PlayerPedId())
end,
canInteract = function(entity, distance, data)
return getIsVehWinched(entity) and allowed() and Config.EnableRopes
end,
}
options[#options+1] = {
num =11,
icon = 'fa-solid fa-car-side',
label = '[Winch] Return Winch',
action = function(entity)
playerReturn(entity)
end,
canInteract = function(entity, distance, data)
return Config.Trucks[GetEntityModel(entity)] and Config.Trucks[GetEntityModel(entity)].type ~= "static" and winchInHand and Config.EnableRopes
end,
}
exports['qb-target']:AddTargetBone(bones, {
options = options,
distance = 5.5
})
end
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,27 @@
fx_version 'adamant'
game 'gta5'
lua54 'yes'
description 'Flatbeds Winch Script'
author 'Theebu'
version '0.7.7b'
shared_scripts {
'config.lua',
}
client_scripts {
'client/utils.lua',
'client/client.lua'
}
server_scripts {
'server/server.lua'
}
escrow_ignore {
'config.lua',
'client/utils.lua'
}
dependency '/assetpacks'
Binary file not shown.
@@ -0,0 +1,151 @@
RegisterKeyMapping("+trailerAttach", Config.Controlmessages.AttachVehicle, "keyboard", "g")
RegisterKeyMapping("+trailerInteract", Config.Controlmessages.RampInteract, "keyboard", "e")
RegisterKeyMapping("+trailerDetach", Config.Controlmessages.DetachAllVehicle, "keyboard", "h")
RegisterKeyMapping("+trailerWarp", "Get in attached vehicle", "keyboard", "f")
RegisterKeyMapping("+trailerConnect", "Connect any trailer", "keyboard", "j")
function NotiAtt() -- Attached notification
BeginTextCommandThefeedPost("STRING")
AddTextComponentSubstringPlayerName(Config.NotiLoadMessage)
EndTextCommandThefeedPostTicker(true, true)
end
function NotiDet() -- Detached notification
BeginTextCommandThefeedPost("STRING")
AddTextComponentSubstringPlayerName(Config.NotiUnLoadMessage)
EndTextCommandThefeedPostTicker(true, true)
end
-- Use this function for job locking. If the job is correct, return true.
-- Please refer to your framework's job system for how to implement, I do not support
-- job checking integration. -Theebu
function allowed()
return true
end
--This function returns if the vehicle is locked or not when trying to get in the loaded vehicle from next to the trailer
--false = NOT locked true == LOCKED
function IsVehicleLocked(car)
return DecorGetInt(car, '_VEH_DOOR_LOCK_STATUS') == 2 or DecorGetInt(car, '_VEH_DOOR_LOCK_STATUS') == 10
end
--Help Text Messages
function message(lineOne, lineTwo, lineThree, duration)
BeginTextCommandDisplayHelp("THREESTRINGS")
AddTextComponentSubstringPlayerName(lineOne)
AddTextComponentSubstringPlayerName(lineTwo or "")
AddTextComponentSubstringPlayerName(lineThree or "")
-- shape (always 0), loop (bool), makeSound (bool), duration (5000 max 5 sec)
EndTextCommandDisplayHelp(0, false, false, duration or 5000)
end
if Config.UseTarget then
--QB CORE
if Config.Target == 'qb-target' then
exports['qb-target']:AddTargetBone({'boot', 'chassis', "door_dside_f", "door_dside_r", "door_pside_f", "door_pside_f", "bonnet"}, {
options = {
{
icon = 'fa-solid fa-truck-ramp-box',
label = 'Toggle Ramp',
action = function(entity)
interactCheck(entity)
end,
canInteract = function(entity, distance, data)
return Config.Trailers[GetEntityModel(entity)] and allowed()
end,
},
{
icon = 'fa-solid fa-lock',
label = 'Attach load',
action = function(entity)
attachAllCheck(entity)
end,
canInteract = function(entity, distance, data)
return Config.Trailers[GetEntityModel(entity)] and allowed()
end,
},
{
icon = 'fa-solid fa-lock-open',
label = 'Detach load',
action = function(entity)
detachAllCheck(entity)
end,
canInteract = function(entity, distance, data)
return Config.Trailers[GetEntityModel(entity)] and allowed()
end,
},
{
icon = 'fa-solid fa-lock-open',
label = 'Attach/Detach Vehicle',
action = function(entity)
attachCheck2(entity)
end,
canInteract = function(entity, distance, data)
local vehCoords = GetEntityCoords(entity)
local vehicle = getVehicleInDirection(vector3(vehCoords.x, vehCoords.y, vehCoords.z + 1.0), vector3(vehCoords.x, vehCoords.y, vehCoords.z - 8.0), entity)
return allowed() and DoesEntityExist(vehicle) and Config.Trailers[GetEntityModel(vehicle)] and vehicle ~= entity
end,
}
},
distance = 5.5,
})
elseif Config.Target == 'ox_target' then
exports["ox_target"]:addGlobalVehicle(
{
{
icon = 'fa-solid fa-truck-ramp-box',
label = 'Toggle Ramp',
bones = {'boot', 'chassis', "door_dside_f", "door_dside_r", "door_pside_f", "door_pside_f", "bonnet"},
distance = 2.0,
canInteract = function(entity, distance, data)
return Config.Trailers[GetEntityModel(entity)] and allowed()
end,
onSelect = function(data)
interactCheck(data.entity)
end
},
{
icon = 'fa-solid fa-lock',
label = 'Attach load',
bones = 'boot', 'chassis', "door_dside_f", "door_dside_r", "door_pside_f", "door_pside_f", "bonnet",
distance = 2.0,
canInteract = function(entity, distance, data)
return Config.Trailers[GetEntityModel(entity)] and allowed()
end,
onSelect = function(data)
attachAllCheck(data.entity)
end
},
{
icon = 'fa-solid fa-lock-open',
label = 'Detach load',
bones = 'boot', 'chassis', "door_dside_f", "door_dside_r", "door_pside_f", "door_pside_f", "bonnet",
distance = 2.0,
canInteract = function(entity, distance, data)
return Config.Trailers[GetEntityModel(entity)] and allowed()
end,
onSelect = function(data)
detachAllCheck(data.entity)
end
},
{
icon = 'fa-solid fa-lock-open',
label = 'Attach/Detach Vehicle',
bones = 'boot', 'chassis', "door_dside_f", "door_dside_r", "door_pside_f", "door_pside_f", "bonnet",
distance = 2.0,
canInteract = function(entity, distance, data)
local vehCoords = GetEntityCoords(entity)
local vehicle = getVehicleInDirection(vector3(vehCoords.x, vehCoords.y, vehCoords.z + 1.0), vector3(vehCoords.x, vehCoords.y, vehCoords.z - 8.0), entity)
return allowed() and DoesEntityExist(vehicle) and Config.Trailers[GetEntityModel(vehicle)] and vehicle ~= entity
end,
onSelect = function(data)
attachCheck2(data.entity)
end
}
}
)
end
end
@@ -0,0 +1,352 @@
Config = {}
Config.CheckDistance = 11 -- Distance to check for nearby trailers
Config.InteractDistance = 2.5 -- Distance from point control works
Config.rampInstant = false -- Instantly open/close ramp. Enable if ramps won't close
Config.AttachNotify = true -- Enable notifications
Config.NotiLoadMessage = 'Vehicle Loaded'
Config.NotiUnLoadMessage = 'Vehicle Unloaded'
Config.UseExternalTrailerConnect = false -- Set to True if you want to use ebu_trailerconnect with the whitelist/blacklist control
--========Interaction Type========--
--======[[see utils.lua to modify]]======--
Config.UseTarget = false -- If True, Markers & Prompts will be disabled except for in vehicle
Config.Target = 'qb-target'
--========Markers & Prompts=======--
--Increases tick rate from 0.01 to 0.08 - 0.1 when in range
Config.WaitTimer = 3000 -- Update rate to check for nearby trailer seconds * 1000 (Default 3000)
Config.ShowMarkers = true -- Display markers at interaction points
Config.ShowHelp = true -- Display help prompts
Config.MessageDistance = 2.0 -- Distance from point to display message (Default 2.0)
Config.Marker = {
type = 1, -- marker shape: https://docs.fivem.net/docs/game-references/markers/ (Default 27)
Size = 1.0, -- marker size (Default 2.0)
Color = { -- RGBA color
red = 100,
green = 200,
blue = 200,
alpha = 150
},
heightOffset = 0.0, -- Height from ground for marker. Marker at ground Z (Default 0.0)
Bob = false, -- Marker bobbing up and down (Default false)
faceCamera = false, -- Marker always faces camera (Default false)
rotate = false -- Marker rotates (Default false)
}
Config.Controlmessages = {
RampInteract = " Toggle Ramp",
AttachVehicle = " Attach/Detach vehicle",
AttachAllVehicle = " Attach All",
DetachAllVehicle = " Detach All",
}
--========Trailers=======--
--[[ CONFIG EXAMPLE AND EXPLANATIONS
[GetHashKey('[MODELNAME]')] = { -- Enter the spawn name
hasRamp = true, -- true or false : If false, trailer functions still work but no interaction for the ramp will be present
rampPos = {vector3(-1.8, -5.5, -0.5), vector3(1.8, -5.5, -0.5)}, -- array | (x,y,z) positon from center of trailer. Point of ramp interaction circle
isRampExtra = true, -- (optional) true or false : Sets if the ramp is an extra. If false or not present, treats as a door
rampDoorNum = 3, -- door or extra number | Can be an array of numbers
doorwithRampNums = {2,3}, -- doors that will open or close when the ramp is toggled
extraswithRampNums = {-1,2} -- extras that will toggle when the ramp is toggled. If negative, will set the extra to be opposite the door
},
]]
Config.Trailers = {
[GetHashKey('blomenroehr')] = {
hasRamp = true,
rampPos = {vector3(1.5, -3.0, -0.45), vector3(-1.5, -3.0, -0.45)},
rampDoorNum = 5,
},
[GetHashKey('3ctrailer')] = {
hasRamp = true,
rampPos = {vector3(-2.0,-4.0,0.25),vector3(2.0,-4.0,0.25)},
rampDoorNum = 5,
},
[GetHashKey('cotrailer')] = {
hasRamp = true,
rampPos = {vector3(-2.0,-4.0,-0.55),vector3(2.0,-4.0,-0.55)},
rampDoorNum = 5,
},
[GetHashKey('shauler')] = {
hasRamp = true,
rampPos = {vector3(-2.0,-4.0,0.25),vector3(2.0,-4.0,0.25)},
rampDoorNum = 5,
},
[GetHashKey('godzcoe')] = {
hasRamp = false,
rampPos = {vector3(-2.0,-4.0,-0.55),vector3(2.0,-4.0,-0.55)},
rampDoorNum = 5,
},
[GetHashKey('thauler')] = {
hasRamp = true,
rampPos = {vector3(1.5, -3.0, -0.25), vector3(-1.5, -3.0, -0.25)},
rampDoorNum = 5,
},
[GetHashKey('btrailer')] = {
hasRamp = true,
rampPos = {vector3(1.5, -3.0, -0.45), vector3(-1.5, -3.0, -0.45)},
rampDoorNum = 5,
},
[GetHashKey('bclandscape')] = {
hasRamp = true,
rampPos = {vector3(1.5, -4.0, -0.45), vector3(-1.5, -4.0, -0.45)},
rampDoorNum = 5,
},
[GetHashKey('trailersmall')] = {
hasRamp = true,
rampPos = {vector3(1.5, -4.0, -0.45), vector3(-1.5, -4.0, -0.45)},
rampDoorNum = 5,
},
[GetHashKey('camperman')] = {
hasRamp = true,
rampPos = {vector3(2.0, -6.0, 0.1), vector3(-1.5, -6.0, 0.1)},
rampDoorNum = 4,
},
[GetHashKey('chauler')] = {
attNode = 'boot',
heightOff = 0.5,
hasRamp = true,
rampPos = {vector3(1.5, -2.7, -0.25), vector3(-1.5, -2.7, -0.25)},
rampDoorNum = 5,
},
[GetHashKey('cartrailer')] = {
hasRamp = true,
rampPos = {vector3(1.5, -3.7, -1.0), vector3(-1.5, -3.7, -1.0)},
isRampExtra = true,
rampDoorNum = 5,
},
[GetHashKey('semihauler')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -7.5, -1.4), vector3(1.8, -7.5, -1.4)},
rampDoorNum = 5,
},
[GetHashKey('bigtex40')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -5.0, -0.8), vector3(1.8, -5.0, -0.8)},
rampDoorNum = 5,
},
[GetHashKey('loadtrail')] = {
hasRamp = true,
isRampExtra = true,
rampPos = {vector3(-1.8, -5.0, -0.8), vector3(1.8, -5.0, -0.8)},
rampDoorNum = 1,
},
[GetHashKey('bigtex20')] = { --bigtex20hasRamp = true,
rampPos = {vector3(-1.8, -3.0, -0.8), vector3(1.8, -3.0, -0.8)},
rampDoorNum = 5,
},
[GetHashKey('godzhauler')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -5.0, 0.1), vector3(1.8, -5.0, 0.1)},
rampDoorNum = 5,
},
[GetHashKey('godzenclosed')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -5.5, -0.5), vector3(1.8, -5.5, -0.5)},
isRampExtra = true,
rampDoorNum = 3,
doorwithRampNums = {2,3},
},
[GetHashKey('enclosedgoose')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -5.5, -0.5), vector3(1.8, -5.5, -0.5)},
rampDoorNum = {0,5},
},
[GetHashKey('godzbenson')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -5.5, -1.0), vector3(1.8, -5.5, -1.0)},
rampDoorNum = 5,
},
[GetHashKey('trailers3')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -5.5, -3.0), vector3(1.8, -5.5, -3.0)},
rampDoorNum = 5,
},
[GetHashKey('trflat')] = {
hasRamp = false,
rampPos = {vector3(-1.8, -5.5, 0.0), vector3(1.8, -5.5, 0.0)},
rampDoorNum = 5,
},
[GetHashKey('17fontaine')] = {
hasRamp = false,
rampPos = {vector3(-1.8, -5.5, -3.0), vector3(1.8, -5.5, -3.0)},
rampDoorNum = 5,
},
[GetHashKey('17fontainev2')] = {
hasRamp = false,
rampPos = {vector3(-1.8, -5.5, -3.0), vector3(1.8, -5.5, -3.0)},
rampDoorNum = 5,
},
[GetHashKey('17fontainev3')] = {
hasRamp = false,
rampPos = {vector3(-1.8, -5.5, -3.0), vector3(1.8, -5.5, -3.0)},
rampDoorNum = 5,
},
[GetHashKey('17fontainev4')] = {
hasRamp = false,
rampPos = {vector3(-1.8, -5.5, -3.0), vector3(1.8, -5.5, -3.0)},
rampDoorNum = 5,
},
[GetHashKey('20fttrailer')] = {
hasRamp = true,
rampPos = {vector3(1.5, -3.7, -1.0), vector3(-1.5, -3.7, -1.0)},
isRampExtra = true,
rampDoorNum = 3,
},
[GetHashKey('8220b')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -3.0, -0.1), vector3(1.8, -3.0, -0.1)},
rampDoorNum = 5,
},
[GetHashKey('8220')]= {
hasRamp = true,
rampPos = {vector3(-1.8, -3.0, -0.1), vector3(1.8, -3.0, -0.1)},
rampDoorNum = 5,
},
[GetHashKey('8250')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -9.0, 0.1), vector3(1.8, -9.0, 0.1)},
rampDoorNum = 5,
},
[GetHashKey('pjutility')] = {
hasRamp = true,
rampPos = {vector3(1.5, -3.0, 0.2), vector3(-1.5, -3.0, 0.2)},
rampDoorNum = 5,
},
[GetHashKey('bigtexb')] = {
hasRamp = true,
rampPos = {vector3(2.5, -4.0, -1.0), vector3(-2.5, -4.0, -1.0)},
rampDoorNum = 5,
},
[GetHashKey('ehauler')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -5.5, -0.0), vector3(1.8, -5.5, -0.0)},
rampDoorNum = 5,
},
[GetHashKey('pjtrailer')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -5.0, -1.0), vector3(1.8, -5.0, -1.0)},
rampDoorNum = 5,
},
[GetHashKey('ctrailer')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -5.5, -0.6), vector3(1.8, -5.5, -0.6)},
rampDoorNum = 5,
},
[GetHashKey('btex20')] = {
hasRamp = true,
rampPos = {vector3(2.0, -5.0, -0.0), vector3(-2.0, -5.0, 0.0)},
rampDoorNum = 5,
},
[GetHashKey('40ft')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -5.0, -0.8), vector3(1.8, -5.0, -0.8)},
isRampExtra = true,
rampDoorNum = 3,
},
[GetHashKey('eagerbeaver')] = {
hasRamp = true,
rampPos = {vector3(2.0, -5.0, -0.0), vector3(-2.0, -5.0, 0.0)},
rampDoorNum = 5,
},
[GetHashKey('valdeztrailer')] = {
hasRamp = true,
rampPos = {vector3(1.5, -3.0, -0.45), vector3(-1.5, -3.0, -0.45)},
rampDoorNum = 5,
},
[GetHashKey('zJuksCarHauler40ft')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -12.0, 0.1), vector3(1.8, -12.0, 0.1)},
isRampExtra = true,
rampDoorNum = 6,
},
[GetHashKey('trailkinght')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -5.0, -0.8), vector3(1.8, -5.0, -0.8)},
isRampExtra = true,
rampDoorNum = {8,9},
},
[GetHashKey('boogie36ftr')] = {
hasRamp = true,
rampPos = {vector3(-1.8, -5.0, -0.8), vector3(1.8, -5.0, -0.8)},
isRampExtra = true,
rampDoorNum = 1,
},
}
--========Vehicles with Toggled Extras=======--
-- When a vehicle is attached, selected extras will be turned on. Useful for models with tie down extras
-- Can be hashes or strings
Config.TogVehs = {
--['kamacho'] = {1},
}
@@ -0,0 +1,23 @@
fx_version 'adamant'
game 'gta5'
description 'Trailer Script'
author 'theebu'
lua54 'yes'
version '0.6.3'
client_scripts {
'config.lua',
'client/client.lua',
'client/utils.lua'
}
server_scripts {
'server/server.lua'
}
escrow_ignore {
'config.lua',
'client/utils.lua'
}
dependency '/assetpacks'
@@ -0,0 +1,16 @@
## ebu_trailer VERSION 6
## author: theebu | https://discord.gg/SvxZj2h
## EXPORTS:
exports['ebu_trailer']:AttachVeh([vehicle])
# [vehicle] is the target car to attach
# This runs the attach command to attach to a trailer. The trailer must be in the config
exports['ebu_trailer']:attachAll([trailer])
# [trailer] is the target trailer to attach to
# This attaches all vehicles on the target trailer
exports['ebu_trailer']:detachAll([trailer])
# [trailer] is the target trailer to detach from
# This detaches all vehicles on the target trailer
@@ -4067,6 +4067,7 @@ Config.VehicleRestrictions = {
"23f150prbb",
"23f150st",
"23gmc2",
"Maxlasd18charger",
"23gmc2visor",
"23gmcleo",
"23gmcleoslick",
@@ -5175,6 +5176,7 @@ Config.VehicleRestrictions = {
"lasd13fsfpiu",
"lasd16ram",
"lasd18taurus",
"Maxlasd18charger",
"lasd16chrgr",
"lax20fpiu",
"lasd20funm",
+1 -1
View File
@@ -314,7 +314,7 @@ SIREN_ASSIGNMENTS = {
['SH8172'] = { 18, 19, 20},
['lasd1997'] = { 18, 19, 20},
['lasd1997amber'] = { 18, 19, 20},
['Maxlasd18charger'] = { 18, 19, 20, 36, 34, 37 },
['senorapd18fpiu_817'] = { 18, 19, 20},
['transportram'] = { 18, 19, 20},
+1 -1
View File
@@ -392,7 +392,7 @@ Config = {
"MPD21ppv",
"sos23hoe",
"Maxlasd18charger",
"146charger",
"122charger",
+6
View File
@@ -207,6 +207,12 @@ ensure ebu_pmjstc
ensure ebu_trlights
ensure ebu_flagger
ensure ebu_connect
ensure ebu_trailer
ensure ebu_flatbeds
ensure Maxlasd18charger
ensure
ensure reverse-hud
ensure helicam
ensure tommys-pov