[{"data":1,"prerenderedAt":522},["ShallowReactive",2],{"/docs/jobs/mechanicjob/features/vehicle-fluid-leaks":3,"/docs/jobs/mechanicjob/features/vehicle-fluid-leaks-surround":509,"/docs/jobs/mechanicjob/features/vehicle-fluid-leaks-implemented-suggestions":521},{"id":4,"title":5,"body":6,"description":498,"extension":499,"head":500,"implementedSuggestions":500,"meta":501,"navigation":502,"path":504,"schemaOrg":500,"seo":505,"sitemap":506,"stem":507,"__hash__":508},"docs/1.docs/0.jobs/2.mechanicjob/3.features/7.vehicle-fluid-leaks.md","Vehicle Fluid Leaks",{"type":7,"value":8,"toc":491},"minimark",[9,13,18,34,37,59,79,83,94,101,186,189,317,328,332,335,393,396,420,424,456,460,487],[10,11,12],"p",{},"Vehicle Fluid Leaks turns severe engine-oil and transmission-fluid wear into visible trails. Combustion vehicles can also start a temporary engine-fluid leak after a qualifying frontal impact. Electric vehicles are excluded.",[14,15,17],"h2",{"id":16},"in-game-configuration","In-game configuration",[10,19,20,21,25,26,30,31,33],{},"Open ",[22,23,24],"code",{},"/jobconfig",", select ",[27,28,29],"strong",{},"Mechanic Job",", and open ",[27,32,5],{},". The complete runtime configuration is available there and updates connected clients after saving.",[10,35,36],{},"The section contains:",[38,39,40,44,47,50,53,56],"ul",{},[41,42,43],"li",{},"Global enable switch, minimum speed, trail interval, minimum distance, and regular trail radius",[41,45,46],{},"Normal and critical thresholds and chances for engine oil",[41,48,49],{},"Normal and critical thresholds and chances for transmission fluid",[41,51,52],{},"Frontal-impact enable switch and optional diagnostics",[41,54,55],{},"Minimum impact speed, speed loss, body damage, engine damage, and optional front deformation",[41,57,58],{},"Forward-motion ratio, trigger chance, leak duration, cooldown, and initial spill radius",[10,60,61,62,65,66,69,70,65,72,75,76,78],{},"Chance and motion-ratio values use a range from ",[22,63,64],{},"0"," to ",[22,67,68],{},"1",". Part thresholds use the diagnostic condition range from ",[22,71,64],{},[22,73,74],{},"100",". Set minimum front deformation to ",[22,77,64],{}," when deformation should not be required.",[14,80,82],{"id":81},"open-configuration","Open configuration",[10,84,85,86,89,90,93],{},"Fallback defaults are stored under ",[22,87,88],{},"Config.OilLeaks"," in ",[22,91,92],{},"config/config.lua",". When Job Configurator is enabled, saved in-game values take priority over the matching leak settings.",[10,95,96,97,100],{},"The ",[22,98,99],{},"integration"," table selects the external provider used to create the visible fluid points:",[102,103,108],"pre",{"className":104,"code":105,"language":106,"meta":107,"style":107},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","integration = {\n    mode = \"automatic\",\n    resource = \"your_spill_resource\",\n    serverEvent = \"your_spill_resource:createFromVehicle\"\n}\n","lua","",[22,109,110,126,147,164,180],{"__ignoreMap":107},[111,112,115,119,123],"span",{"class":113,"line":114},"line",1,[111,116,118],{"class":117},"sTEyZ","integration ",[111,120,122],{"class":121},"sMK4o","=",[111,124,125],{"class":117}," {\n",[111,127,129,132,134,137,141,144],{"class":113,"line":128},2,[111,130,131],{"class":117},"    mode ",[111,133,122],{"class":121},[111,135,136],{"class":121}," \"",[111,138,140],{"class":139},"sfazB","automatic",[111,142,143],{"class":121},"\"",[111,145,146],{"class":117},",\n",[111,148,150,153,155,157,160,162],{"class":113,"line":149},3,[111,151,152],{"class":117},"    resource ",[111,154,122],{"class":121},[111,156,136],{"class":121},[111,158,159],{"class":139},"your_spill_resource",[111,161,143],{"class":121},[111,163,146],{"class":117},[111,165,167,170,172,174,177],{"class":113,"line":166},4,[111,168,169],{"class":117},"    serverEvent ",[111,171,122],{"class":121},[111,173,136],{"class":121},[111,175,176],{"class":139},"your_spill_resource:createFromVehicle",[111,178,179],{"class":121},"\"\n",[111,181,183],{"class":113,"line":182},5,[111,184,185],{"class":117},"}\n",[10,187,188],{},"The configured server event receives one payload table:",[102,190,192],{"className":104,"code":191,"language":106,"meta":107,"style":107},"{\n    coords = { x = 0.0, y = 0.0, z = 0.0 },\n    source = \"mechanic_wear\", -- or \"mechanic_frontal_impact\"\n    sourcePart = \"engine_oil\", -- or \"transmission_fluid\"\n    sourceVehicleNetId = 123,\n    sourcePlate = \"ABC123\",\n    radius = 1.25\n}\n",[22,193,194,199,232,253,272,284,301,312],{"__ignoreMap":107},[111,195,196],{"class":113,"line":114},[111,197,198],{"class":117},"{\n",[111,200,201,204,206,209,211,215,218,220,222,225,227,229],{"class":113,"line":128},[111,202,203],{"class":117},"    coords ",[111,205,122],{"class":121},[111,207,208],{"class":117}," { x ",[111,210,122],{"class":121},[111,212,214],{"class":213},"sbssI"," 0.0",[111,216,217],{"class":117},", y ",[111,219,122],{"class":121},[111,221,214],{"class":213},[111,223,224],{"class":117},", z ",[111,226,122],{"class":121},[111,228,214],{"class":213},[111,230,231],{"class":117}," },\n",[111,233,234,237,239,241,244,246,249],{"class":113,"line":149},[111,235,236],{"class":117},"    source ",[111,238,122],{"class":121},[111,240,136],{"class":121},[111,242,243],{"class":139},"mechanic_wear",[111,245,143],{"class":121},[111,247,248],{"class":117},", ",[111,250,252],{"class":251},"sHwdD","-- or \"mechanic_frontal_impact\"\n",[111,254,255,258,260,262,265,267,269],{"class":113,"line":166},[111,256,257],{"class":117},"    sourcePart ",[111,259,122],{"class":121},[111,261,136],{"class":121},[111,263,264],{"class":139},"engine_oil",[111,266,143],{"class":121},[111,268,248],{"class":117},[111,270,271],{"class":251},"-- or \"transmission_fluid\"\n",[111,273,274,277,279,282],{"class":113,"line":182},[111,275,276],{"class":117},"    sourceVehicleNetId ",[111,278,122],{"class":121},[111,280,281],{"class":213}," 123",[111,283,146],{"class":117},[111,285,287,290,292,294,297,299],{"class":113,"line":286},6,[111,288,289],{"class":117},"    sourcePlate ",[111,291,122],{"class":121},[111,293,136],{"class":121},[111,295,296],{"class":139},"ABC123",[111,298,143],{"class":121},[111,300,146],{"class":117},[111,302,304,307,309],{"class":113,"line":303},7,[111,305,306],{"class":117},"    radius ",[111,308,122],{"class":121},[111,310,311],{"class":213}," 1.25\n",[111,313,315],{"class":113,"line":314},8,[111,316,185],{"class":117},[10,318,319,320,323,324,327],{},"Set ",[22,321,322],{},"integration.mode = \"disabled\""," to stop provider output independently of the gameplay thresholds. ",[22,325,326],{},"Config.OilLeaks.enabled = false"," disables the complete leak system.",[14,329,331],{"id":330},"runtime-provider-override","Runtime provider override",[10,333,334],{},"Another client resource can replace the configured provider at runtime:",[102,336,338],{"className":104,"code":337,"language":106,"meta":107,"style":107},"local registered = exports[\"sky_mechanicjob\"]:SetFluidLeakProvider(\n    GetCurrentResourceName(),\n    \"my_spill_resource:createFromVehicle\"\n)\n",[22,339,340,370,378,388],{"__ignoreMap":107},[111,341,342,345,348,350,353,355,358,360,363,367],{"class":113,"line":114},[111,343,344],{"class":121},"local",[111,346,347],{"class":117}," registered ",[111,349,122],{"class":121},[111,351,352],{"class":117}," exports[",[111,354,143],{"class":121},[111,356,357],{"class":139},"sky_mechanicjob",[111,359,143],{"class":121},[111,361,362],{"class":117},"]:",[111,364,366],{"class":365},"s2Zo4","SetFluidLeakProvider",[111,368,369],{"class":117},"(\n",[111,371,372,375],{"class":113,"line":128},[111,373,374],{"class":365},"    GetCurrentResourceName",[111,376,377],{"class":117},"(),\n",[111,379,380,383,386],{"class":113,"line":149},[111,381,382],{"class":121},"    \"",[111,384,385],{"class":139},"my_spill_resource:createFromVehicle",[111,387,179],{"class":121},[111,389,390],{"class":113,"line":166},[111,391,392],{"class":117},")\n",[10,394,395],{},"The provider resource must be started, and the supplied server event must accept the payload shown above. Restore the configured provider with:",[102,397,399],{"className":104,"code":398,"language":106,"meta":107,"style":107},"exports[\"sky_mechanicjob\"]:ResetFluidLeakProvider()\n",[22,400,401],{"__ignoreMap":107},[111,402,403,406,408,410,412,414,417],{"class":113,"line":114},[111,404,405],{"class":117},"exports[",[111,407,143],{"class":121},[111,409,357],{"class":139},[111,411,143],{"class":121},[111,413,362],{"class":117},[111,415,416],{"class":365},"ResetFluidLeakProvider",[111,418,419],{"class":117},"()\n",[14,421,423],{"id":422},"testing-checklist","Testing checklist",[425,426,427,430,435,438,441,444,447,450],"ol",{},[41,428,429],{},"Confirm the external provider resource is started.",[41,431,319,432,434],{},[22,433,264],{}," below its normal threshold and drive above the configured minimum speed.",[41,436,437],{},"Confirm points respect the interval and minimum-distance limits.",[41,439,440],{},"Repeat below the critical threshold and verify the higher critical chance.",[41,442,443],{},"Test transmission fluid separately.",[41,445,446],{},"Enable frontal-impact diagnostics temporarily and perform a controlled qualifying impact.",[41,448,449],{},"Confirm electric vehicles do not create leaks.",[41,451,452,453,455],{},"Disable Vehicle Fluid Leaks in ",[22,454,24],{}," and confirm no new trail points are created.",[14,457,459],{"id":458},"related-pages","Related pages",[38,461,462,469,475,481],{},[41,463,464],{},[465,466,468],"a",{"href":467},"./vehicle-systems","Vehicle Systems",[41,470,471],{},[465,472,474],{"href":473},"../setup/configuration","Configuration",[41,476,477],{},[465,478,480],{"href":479},"../reference/exports","Exports",[41,482,483],{},[465,484,486],{"href":485},"../troubleshooting","Troubleshooting",[488,489,490],"style",{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":107,"searchDepth":114,"depth":128,"links":492},[493,494,495,496,497],{"id":16,"depth":128,"text":17},{"id":81,"depth":128,"text":82},{"id":330,"depth":128,"text":331},{"id":422,"depth":128,"text":423},{"id":458,"depth":128,"text":459},"Configure wear-based and frontal-impact vehicle fluid leaks and connect an external spill provider.","md",null,{},{"icon":503},"i-lucide-droplets","/docs/jobs/mechanicjob/features/vehicle-fluid-leaks",{"title":5,"description":498},{"loc":504},"1.docs/0.jobs/2.mechanicjob/3.features/7.vehicle-fluid-leaks","NUVFu469JSlrlNiNGK7sxVAV_tsJSZhAaWBo2dMgT0Q",[510,516],{"title":511,"path":512,"stem":513,"description":514,"icon":515,"children":-1},"Custom Engine Sounds","/docs/jobs/mechanicjob/features/custom-engine-sounds","1.docs/0.jobs/2.mechanicjob/3.features/6.custom-engine-sounds","Add built-in or custom GTA engine sounds to Mechanic tuning, load audio packs, configure labels, and troubleshoot missing audio.","i-lucide-audio-lines",{"title":517,"path":518,"stem":519,"description":520,"children":-1},"Inventory Items","/docs/jobs/mechanicjob/reference/inventories","1.docs/0.jobs/2.mechanicjob/4.reference/1.inventories","Use these configurations to prepare your inventory for the Sky Mechanic Job resource.",[],1783018236373]