[{"data":1,"prerenderedAt":625},["ShallowReactive",2],{"/docs/base/jobs-base/server-exports/external-garage-integration":3,"/docs/base/jobs-base/server-exports/external-garage-integration-surround":613,"/docs/base/jobs-base/server-exports/external-garage-integration-implemented-suggestions":624},{"id":4,"title":5,"body":6,"description":604,"extension":605,"head":606,"implementedSuggestions":606,"meta":607,"navigation":207,"path":608,"schemaOrg":606,"seo":609,"sitemap":610,"stem":611,"__hash__":612},"docs/1.docs/base/2.jobs-base/4.server-exports/11.external-garage-integration.md","External Garage Integration",{"type":7,"value":8,"toc":597},"minimark",[9,17,21,24,32,144,289,301,307,339,362,366,590,593],[10,11,12],"p",{},[13,14,16],"a",{"href":15},"/docs/base/jobs-base/server-exports","All server exports",[18,19,5],"h2",{"id":20},"external-garage-integration",[10,22,23],{},"These exports allow third-party garage systems to register and unregister vehicles so the trunk inventory and prop system works for externally-spawned job vehicles.",[25,26,28],"h3",{"id":27},"registerexternalvehicleplate-jobname-model-netid-ownersource-trunkcapacity",[29,30,31],"code",{},"registerExternalVehicle(plate, jobName, model, netId, ownerSource, trunkCapacity)",[33,34,35,43,126],"ul",{},[36,37,38,42],"li",{},[39,40,41],"strong",{},"Purpose",": Registers an externally-spawned vehicle in the sky_jobs_base vehicle tracking system. This enables trunk inventory, prop placement, and all trunk-related server callbacks for the vehicle.",[36,44,45,48,49],{},[39,46,47],{},"Arguments",":\n",[33,50,51,64,82,98,107,115],{},[36,52,53,56,57,60,61],{},[29,54,55],{},"plate"," (",[29,58,59],{},"string",") — the vehicle license plate. ",[39,62,63],{},"Required.",[36,65,66,56,69,71,72,75,76,79,80],{},[29,67,68],{},"jobName",[29,70,59],{},") — the job this vehicle belongs to (e.g. ",[29,73,74],{},"\"ambulance\"",", ",[29,77,78],{},"\"police\"","). ",[39,81,63],{},[36,83,84,56,87,90,91,93,94,97],{},[29,85,86],{},"model",[29,88,89],{},"string?",") — vehicle model name (e.g. ",[29,92,74],{},"). Defaults to ",[29,95,96],{},"\"unknown\"",".",[36,99,100,56,103,106],{},[29,101,102],{},"netId",[29,104,105],{},"number?",") — network ID of the spawned vehicle entity.",[36,108,109,56,112,114],{},[29,110,111],{},"ownerSource",[29,113,105],{},") — server ID of the player who spawned the vehicle.",[36,116,117,56,120,122,123,97],{},[29,118,119],{},"trunkCapacity",[29,121,105],{},") — trunk weight capacity. Defaults to ",[29,124,125],{},"50",[36,127,128,131,132,135,136,139,140,143],{},[39,129,130],{},"Returns",": ",[29,133,134],{},"boolean"," — ",[29,137,138],{},"true"," on success, ",[29,141,142],{},"false"," if plate or jobName is missing.",[145,146,147],"code-group",{},[148,149,155],"pre",{"className":150,"code":151,"filename":152,"language":153,"meta":154,"style":154},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","-- After spawning the vehicle on the server:\nlocal plate = GetVehicleNumberPlateText(vehicle)\nlocal netId = NetworkGetNetworkIdFromEntity(vehicle)\n\nexports[\"sky_jobs_base\"]:registerExternalVehicle(\n    plate,\n    \"ambulance\",\n    \"ambulance\",\n    netId,\n    source,\n    80\n)\n","server.lua","lua","",[29,156,157,166,187,202,209,233,239,253,264,270,276,283],{"__ignoreMap":154},[158,159,162],"span",{"class":160,"line":161},"line",1,[158,163,165],{"class":164},"sHwdD","-- After spawning the vehicle on the server:\n",[158,167,169,173,177,180,184],{"class":160,"line":168},2,[158,170,172],{"class":171},"sMK4o","local",[158,174,176],{"class":175},"sTEyZ"," plate ",[158,178,179],{"class":171},"=",[158,181,183],{"class":182},"s2Zo4"," GetVehicleNumberPlateText",[158,185,186],{"class":175},"(vehicle)\n",[158,188,190,192,195,197,200],{"class":160,"line":189},3,[158,191,172],{"class":171},[158,193,194],{"class":175}," netId ",[158,196,179],{"class":171},[158,198,199],{"class":182}," NetworkGetNetworkIdFromEntity",[158,201,186],{"class":175},[158,203,205],{"class":160,"line":204},4,[158,206,208],{"emptyLinePlaceholder":207},true,"\n",[158,210,212,215,218,222,224,227,230],{"class":160,"line":211},5,[158,213,214],{"class":175},"exports[",[158,216,217],{"class":171},"\"",[158,219,221],{"class":220},"sfazB","sky_jobs_base",[158,223,217],{"class":171},[158,225,226],{"class":175},"]:",[158,228,229],{"class":182},"registerExternalVehicle",[158,231,232],{"class":175},"(\n",[158,234,236],{"class":160,"line":235},6,[158,237,238],{"class":175},"    plate,\n",[158,240,242,245,248,250],{"class":160,"line":241},7,[158,243,244],{"class":171},"    \"",[158,246,247],{"class":220},"ambulance",[158,249,217],{"class":171},[158,251,252],{"class":175},",\n",[158,254,256,258,260,262],{"class":160,"line":255},8,[158,257,244],{"class":171},[158,259,247],{"class":220},[158,261,217],{"class":171},[158,263,252],{"class":175},[158,265,267],{"class":160,"line":266},9,[158,268,269],{"class":175},"    netId,\n",[158,271,273],{"class":160,"line":272},10,[158,274,275],{"class":175},"    source,\n",[158,277,279],{"class":160,"line":278},11,[158,280,282],{"class":281},"sbssI","    80\n",[158,284,286],{"class":160,"line":285},12,[158,287,288],{"class":175},")\n",[290,291,294],"callout",{"color":292,"icon":293},"warning","i-lucide-triangle-alert",[10,295,296,297,300],{},"External vehicles are ",[39,298,299],{},"not"," stored in the database. They only exist in memory and will be cleaned up on resource restart. Your garage system is responsible for its own persistence.",[25,302,304],{"id":303},"unregisterexternalvehicleplate",[29,305,306],{},"unregisterExternalVehicle(plate)",[33,308,309,314,328],{},[36,310,311,313],{},[39,312,41],{},": Removes an externally-registered vehicle from the tracking system. Call this when the vehicle is despawned or parked by the external garage.",[36,315,316,48,318],{},[39,317,47],{},[33,319,320],{},[36,321,322,56,324,60,326],{},[29,323,55],{},[29,325,59],{},[39,327,63],{},[36,329,330,131,332,135,334,139,336,338],{},[39,331,130],{},[29,333,134],{},[29,335,138],{},[29,337,142],{}," if plate is invalid.",[148,340,342],{"className":150,"code":341,"language":153,"meta":154,"style":154},"exports[\"sky_jobs_base\"]:unregisterExternalVehicle(plate)\n",[29,343,344],{"__ignoreMap":154},[158,345,346,348,350,352,354,356,359],{"class":160,"line":161},[158,347,214],{"class":175},[158,349,217],{"class":171},[158,351,221],{"class":220},[158,353,217],{"class":171},[158,355,226],{"class":175},[158,357,358],{"class":182},"unregisterExternalVehicle",[158,360,361],{"class":175},"(plate)\n",[25,363,365],{"id":364},"full-usage-example","Full Usage Example",[145,367,368,517],{},[148,369,371],{"className":150,"code":370,"filename":152,"language":153,"meta":154,"style":154},"-- When spawning the vehicle\nRegisterNetEvent(\"mygarage:vehicleSpawned\", function(plate, model, netId)\n    exports[\"sky_jobs_base\"]:registerExternalVehicle(\n        plate, \"ambulance\", model, netId, source, 80\n    )\nend)\n\n-- When despawning / parking the vehicle\nRegisterNetEvent(\"mygarage:vehicleDespawned\", function(plate)\n    exports[\"sky_jobs_base\"]:unregisterExternalVehicle(plate)\nend)\n",[29,372,373,378,417,434,451,456,463,467,472,495,511],{"__ignoreMap":154},[158,374,375],{"class":160,"line":161},[158,376,377],{"class":164},"-- When spawning the vehicle\n",[158,379,380,383,386,388,391,393,395,399,401,404,407,410,412,415],{"class":160,"line":168},[158,381,382],{"class":182},"RegisterNetEvent",[158,384,385],{"class":175},"(",[158,387,217],{"class":171},[158,389,390],{"class":220},"mygarage:vehicleSpawned",[158,392,217],{"class":171},[158,394,75],{"class":175},[158,396,398],{"class":397},"s7zQu","function",[158,400,385],{"class":171},[158,402,55],{"class":403},"sHdIc",[158,405,406],{"class":171},",",[158,408,409],{"class":403}," model",[158,411,406],{"class":171},[158,413,414],{"class":403}," netId",[158,416,288],{"class":171},[158,418,419,422,424,426,428,430,432],{"class":160,"line":189},[158,420,421],{"class":175},"    exports[",[158,423,217],{"class":171},[158,425,221],{"class":220},[158,427,217],{"class":171},[158,429,226],{"class":175},[158,431,229],{"class":182},[158,433,232],{"class":175},[158,435,436,439,441,443,445,448],{"class":160,"line":204},[158,437,438],{"class":175},"        plate, ",[158,440,217],{"class":171},[158,442,247],{"class":220},[158,444,217],{"class":171},[158,446,447],{"class":175},", model, netId, source, ",[158,449,450],{"class":281},"80\n",[158,452,453],{"class":160,"line":211},[158,454,455],{"class":175},"    )\n",[158,457,458,461],{"class":160,"line":235},[158,459,460],{"class":397},"end",[158,462,288],{"class":175},[158,464,465],{"class":160,"line":241},[158,466,208],{"emptyLinePlaceholder":207},[158,468,469],{"class":160,"line":255},[158,470,471],{"class":164},"-- When despawning / parking the vehicle\n",[158,473,474,476,478,480,483,485,487,489,491,493],{"class":160,"line":266},[158,475,382],{"class":182},[158,477,385],{"class":175},[158,479,217],{"class":171},[158,481,482],{"class":220},"mygarage:vehicleDespawned",[158,484,217],{"class":171},[158,486,75],{"class":175},[158,488,398],{"class":397},[158,490,385],{"class":171},[158,492,55],{"class":403},[158,494,288],{"class":171},[158,496,497,499,501,503,505,507,509],{"class":160,"line":272},[158,498,421],{"class":175},[158,500,217],{"class":171},[158,502,221],{"class":220},[158,504,217],{"class":171},[158,506,226],{"class":175},[158,508,358],{"class":182},[158,510,361],{"class":175},[158,512,513,515],{"class":160,"line":278},[158,514,460],{"class":397},[158,516,288],{"class":175},[148,518,521],{"className":150,"code":519,"filename":520,"language":153,"meta":154,"style":154},"-- After the vehicle entity exists on the client\nlocal vehicle = NetToVeh(netId)\n\nexports[\"sky_jobs_base\"]:registerExternalTrunkVehicle(vehicle)\n\n-- When despawning\nexports[\"sky_jobs_base\"]:unregisterExternalTrunkVehicle(vehicle)\n","client.lua",[29,522,523,528,543,547,564,568,573],{"__ignoreMap":154},[158,524,525],{"class":160,"line":161},[158,526,527],{"class":164},"-- After the vehicle entity exists on the client\n",[158,529,530,532,535,537,540],{"class":160,"line":168},[158,531,172],{"class":171},[158,533,534],{"class":175}," vehicle ",[158,536,179],{"class":171},[158,538,539],{"class":182}," NetToVeh",[158,541,542],{"class":175},"(netId)\n",[158,544,545],{"class":160,"line":189},[158,546,208],{"emptyLinePlaceholder":207},[158,548,549,551,553,555,557,559,562],{"class":160,"line":204},[158,550,214],{"class":175},[158,552,217],{"class":171},[158,554,221],{"class":220},[158,556,217],{"class":171},[158,558,226],{"class":175},[158,560,561],{"class":182},"registerExternalTrunkVehicle",[158,563,186],{"class":175},[158,565,566],{"class":160,"line":211},[158,567,208],{"emptyLinePlaceholder":207},[158,569,570],{"class":160,"line":235},[158,571,572],{"class":164},"-- When despawning\n",[158,574,575,577,579,581,583,585,588],{"class":160,"line":241},[158,576,214],{"class":175},[158,578,217],{"class":171},[158,580,221],{"class":220},[158,582,217],{"class":171},[158,584,226],{"class":175},[158,586,587],{"class":182},"unregisterExternalTrunkVehicle",[158,589,186],{"class":175},[591,592],"br",{},[594,595,596],"style",{},"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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":154,"searchDepth":161,"depth":168,"links":598},[599],{"id":20,"depth":168,"text":5,"children":600},[601,602,603],{"id":27,"depth":189,"text":31},{"id":303,"depth":189,"text":306},{"id":364,"depth":189,"text":365},"Reference for External Garage Integration in sky_jobs_base.","md",null,{},"/docs/base/jobs-base/server-exports/external-garage-integration",{"title":5,"description":604},{"loc":608},"1.docs/base/2.jobs-base/4.server-exports/11.external-garage-integration","TbzNncV_nosbH-GYAo1vnX_wRpcLyMzeYtfWa6g8ruw",[614,619],{"title":615,"path":616,"stem":617,"description":618,"children":-1},"Storage","/docs/base/jobs-base/server-exports/storage","1.docs/base/2.jobs-base/4.server-exports/10.storage","Reference for Storage in sky_jobs_base.",{"title":620,"path":621,"stem":622,"description":623,"children":-1},"Salary","/docs/base/jobs-base/server-exports/salary","1.docs/base/2.jobs-base/4.server-exports/12.salary","Reference for Salary in sky_jobs_base.",[],1791814183167]