[{"data":1,"prerenderedAt":1650},["ShallowReactive",2],{"/docs/jobs/mechanicjob/reference/events":3,"/docs/jobs/mechanicjob/reference/events-surround":1638,"/docs/jobs/mechanicjob/reference/events-implemented-suggestions":1649},{"id":4,"title":5,"body":6,"description":1628,"extension":1629,"head":1630,"implementedSuggestions":1630,"meta":1631,"navigation":1632,"path":1633,"schemaOrg":1630,"seo":1634,"sitemap":1635,"stem":1636,"__hash__":1637},"docs/1.docs/0.jobs/2.mechanicjob/4.reference/4.events.md","Events",{"type":7,"value":8,"toc":1606},"minimark",[9,18,21,26,33,40,241,332,338,341,426,432,435,550,554,638,643,689,694,714,801,806,831,836,857,862,870,875,895,900,912,927,933,986,1046,1052,1120,1195,1201,1248,1308,1314,1388,1459,1465,1520,1586,1590,1593,1602],[10,11,12,13,17],"p",{},"These events notify other server resources about completed mechanic actions. Listen with ",[14,15,16],"code",{},"AddEventHandler",". They are intentionally not registered as network events and cannot be triggered by clients.",[10,19,20],{},"They describe changes that have already been validated and committed. Consumers may use them for logs, phone notifications, dashboards, or external accounting, but should never use an event payload to perform the same payment or state transition a second time.",[22,23,25],"h2",{"id":24},"advanced-pricing-events","Advanced Pricing events",[27,28,30],"h3",{"id":29},"sky_mechanicjobserverpricingquotecreated",[14,31,32],{},"sky_mechanicjob:server:pricingQuoteCreated",[10,34,35,36,39],{},"Emitted after Advanced Pricing creates a quote for a tuning order or through the ",[14,37,38],{},"CreatePricingQuote"," server export.",[41,42,43,59],"table",{},[44,45,46],"thead",{},[47,48,49,53,56],"tr",{},[50,51,52],"th",{},"Field",[50,54,55],{},"Type",[50,57,58],{},"Description",[60,61,62,78,93,108,123,137,151,165,179,193,207,221],"tbody",{},[47,63,64,70,75],{},[65,66,67],"td",{},[14,68,69],{},"source",[65,71,72],{},[14,73,74],{},"number",[65,76,77],{},"Requesting player server ID",[47,79,80,85,90],{},[65,81,82],{},[14,83,84],{},"orderId",[65,86,87],{},[14,88,89],{},"number?",[65,91,92],{},"Saved order ID when the quote belongs to an order",[47,94,95,100,105],{},[65,96,97],{},[14,98,99],{},"orderUid",[65,101,102],{},[14,103,104],{},"string?",[65,106,107],{},"Public order identifier",[47,109,110,115,120],{},[65,111,112],{},[14,113,114],{},"societyJob",[65,116,117],{},[14,118,119],{},"string",[65,121,122],{},"Server-resolved workshop job",[47,124,125,130,134],{},[65,126,127],{},[14,128,129],{},"plate",[65,131,132],{},[14,133,104],{},[65,135,136],{},"Saved vehicle plate",[47,138,139,144,148],{},[65,140,141],{},[14,142,143],{},"vehicleNetId",[65,145,146],{},[14,147,89],{},[65,149,150],{},"Network ID for an export-created preview",[47,152,153,158,162],{},[65,154,155],{},[14,156,157],{},"vehicleHash",[65,159,160],{},[14,161,89],{},[65,163,164],{},"Server-resolved model hash",[47,166,167,172,176],{},[65,168,169],{},[14,170,171],{},"vehicleClass",[65,173,174],{},[14,175,89],{},[65,177,178],{},"Validated vehicle class",[47,180,181,186,190],{},[65,182,183],{},[14,184,185],{},"amount",[65,187,188],{},[14,189,74],{},[65,191,192],{},"Server-calculated quote total",[47,194,195,200,204],{},[65,196,197],{},[14,198,199],{},"expiresAt",[65,201,202],{},[14,203,89],{},[65,205,206],{},"Unix timestamp for the earliest expiring line",[47,208,209,214,218],{},[65,210,211],{},[14,212,213],{},"partCount",[65,215,216],{},[14,217,74],{},[65,219,220],{},"Number of quoted tuning lines",[47,222,223,228,232],{},[65,224,225],{},[14,226,227],{},"origin",[65,229,230],{},[14,231,119],{},[65,233,234,237,238],{},[14,235,236],{},"tuning_order"," or ",[14,239,240],{},"server_export",[242,243,249],"pre",{"className":244,"code":245,"filename":246,"language":247,"meta":248,"style":248},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","AddEventHandler(\"sky_mechanicjob:server:pricingQuoteCreated\", function(data)\n    print((\"Quote created for %s: $%s\"):format(data.societyJob, data.amount))\nend)\n","server.lua","lua","",[14,250,251,288,324],{"__ignoreMap":248},[252,253,256,259,263,267,270,272,275,279,281,285],"span",{"class":254,"line":255},"line",1,[252,257,16],{"class":258},"s2Zo4",[252,260,262],{"class":261},"sTEyZ","(",[252,264,266],{"class":265},"sMK4o","\"",[252,268,32],{"class":269},"sfazB",[252,271,266],{"class":265},[252,273,274],{"class":261},", ",[252,276,278],{"class":277},"s7zQu","function",[252,280,262],{"class":265},[252,282,284],{"class":283},"sHdIc","data",[252,286,287],{"class":265},")\n",[252,289,291,294,297,299,302,304,307,310,313,316,319,321],{"class":254,"line":290},2,[252,292,293],{"class":258},"    print",[252,295,296],{"class":261},"((",[252,298,266],{"class":265},[252,300,301],{"class":269},"Quote created for %s: $%s",[252,303,266],{"class":265},[252,305,306],{"class":261},"):",[252,308,309],{"class":258},"format",[252,311,312],{"class":261},"(data.",[252,314,114],{"class":315},"sBMFI",[252,317,318],{"class":261},", data.",[252,320,185],{"class":315},[252,322,323],{"class":261},"))\n",[252,325,327,330],{"class":254,"line":326},3,[252,328,329],{"class":277},"end",[252,331,287],{"class":261},[27,333,335],{"id":334},"sky_mechanicjobserverpricingquoteexpired",[14,336,337],{},"sky_mechanicjob:server:pricingQuoteExpired",[10,339,340],{},"Emitted when unlocked and unprocured order lines expire and are recalculated.",[41,342,343,353],{},[44,344,345],{},[47,346,347,349,351],{},[50,348,52],{},[50,350,55],{},[50,352,58],{},[60,354,355,368,380,393,408],{},[47,356,357,361,365],{},[65,358,359],{},[14,360,84],{},[65,362,363],{},[14,364,74],{},[65,366,367],{},"Saved order ID",[47,369,370,374,378],{},[65,371,372],{},[14,373,99],{},[65,375,376],{},[14,377,119],{},[65,379,107],{},[47,381,382,386,390],{},[65,383,384],{},[14,385,114],{},[65,387,388],{},[14,389,119],{},[65,391,392],{},"Owning workshop job",[47,394,395,400,405],{},[65,396,397],{},[14,398,399],{},"partIndexes",[65,401,402],{},[14,403,404],{},"number[]",[65,406,407],{},"Recalculated order line indexes",[47,409,410,415,420],{},[65,411,412],{},[14,413,414],{},"recalculated",[65,416,417],{},[14,418,419],{},"boolean",[65,421,422,423],{},"Always ",[14,424,425],{},"true",[27,427,429],{"id":428},"sky_mechanicjobserversupplierstockchanged",[14,430,431],{},"sky_mechanicjob:server:supplierStockChanged",[10,433,434],{},"Emitted after a successful Dynasty procurement transaction changes virtual stock and demand.",[41,436,437,447],{},[44,438,439],{},[47,440,441,443,445],{},[50,442,52],{},[50,444,55],{},[50,446,58],{},[60,448,449,461,475,488,502,516,533],{},[47,450,451,455,459],{},[65,452,453],{},[14,454,114],{},[65,456,457],{},[14,458,119],{},[65,460,392],{},[47,462,463,468,472],{},[65,464,465],{},[14,466,467],{},"itemName",[65,469,470],{},[14,471,119],{},[65,473,474],{},"Procured configured item",[47,476,477,481,485],{},[65,478,479],{},[14,480,84],{},[65,482,483],{},[14,484,74],{},[65,486,487],{},"Bound tuning order ID",[47,489,490,495,499],{},[65,491,492],{},[14,493,494],{},"partIndex",[65,496,497],{},[14,498,74],{},[65,500,501],{},"Bound tuning line index",[47,503,504,509,513],{},[65,505,506],{},[14,507,508],{},"itemIndex",[65,510,511],{},[14,512,74],{},[65,514,515],{},"Required-item index inside the tuning line",[47,517,518,523,527],{},[65,519,520],{},[14,521,522],{},"stockDelta",[65,524,525],{},[14,526,74],{},[65,528,529,530],{},"Stock change, currently ",[14,531,532],{},"-1",[47,534,535,540,544],{},[65,536,537],{},[14,538,539],{},"demandDelta",[65,541,542],{},[14,543,74],{},[65,545,546,547],{},"Demand change, currently ",[14,548,549],{},"1",[22,551,553],{"id":552},"advanced-billing-events","Advanced Billing events",[41,555,556,566],{},[44,557,558],{},[47,559,560,563],{},[50,561,562],{},"Event",[50,564,565],{},"Emitted after",[60,567,568,578,588,598,608,618,628],{},[47,569,570,575],{},[65,571,572],{},[14,573,574],{},"sky_mechanicjob:server:invoiceCreated",[65,576,577],{},"An invoice or estimate and all of its positions were saved",[47,579,580,585],{},[65,581,582],{},[14,583,584],{},"sky_mechanicjob:server:invoiceStatusChanged",[65,586,587],{},"A document moved to another validated state",[47,589,590,595],{},[65,591,592],{},[14,593,594],{},"sky_mechanicjob:server:invoicePaymentRecorded",[65,596,597],{},"Money was removed, deposited, and the payment row was saved",[47,599,600,605],{},[65,601,602],{},[14,603,604],{},"sky_mechanicjob:server:estimateResponded",[65,606,607],{},"The owning customer accepted or declined an estimate",[47,609,610,615],{},[65,611,612],{},[14,613,614],{},"sky_mechanicjob:server:invoiceOverdue",[65,616,617],{},"An unpaid issued document became overdue",[47,619,620,625],{},[65,621,622],{},[14,623,624],{},"sky_mechanicjob:server:invoiceReminderSent",[65,626,627],{},"A permitted reminder and optional fee were saved",[47,629,630,635],{},[65,631,632],{},[14,633,634],{},"sky_mechanicjob:server:invoiceCancelled",[65,636,637],{},"An authorized mechanic cancelled an unpaid document",[27,639,641],{"id":640},"sky_mechanicjobserverinvoicecreated",[14,642,574],{},[10,644,645,646,274,649,274,652,274,654,274,657,274,660,663,664,274,667,274,669,274,672,274,675,274,678,274,681,684,685,688],{},"The payload contains ",[14,647,648],{},"invoiceId",[14,650,651],{},"invoiceUid",[14,653,114],{},[14,655,656],{},"documentType",[14,658,659],{},"status",[14,661,662],{},"issuerSource",", optional ",[14,665,666],{},"customerSource",[14,668,129],{},[14,670,671],{},"subtotal",[14,673,674],{},"discount",[14,676,677],{},"tax",[14,679,680],{},"total",[14,682,683],{},"dueAt",", and ",[14,686,687],{},"validUntil",".",[27,690,692],{"id":691},"sky_mechanicjobserverinvoicestatuschanged",[14,693,584],{},[10,695,645,696,274,698,274,700,274,702,274,705,274,707,684,710,713],{},[14,697,648],{},[14,699,651],{},[14,701,114],{},[14,703,704],{},"previousStatus",[14,706,659],{},[14,708,709],{},"actorSource",[14,711,712],{},"reason",". Supported transitions include estimate acceptance, decline or expiry, partial/full payment, overdue processing, and cancellation.",[242,715,717],{"className":244,"code":716,"filename":246,"language":247,"meta":248,"style":248},"AddEventHandler(\"sky_mechanicjob:server:invoiceStatusChanged\", function(data)\n    print((\"Invoice %s changed from %s to %s\"):format(\n        data.invoiceUid,\n        data.previousStatus,\n        data.status\n    ))\nend)\n",[14,718,719,741,761,771,780,788,794],{"__ignoreMap":248},[252,720,721,723,725,727,729,731,733,735,737,739],{"class":254,"line":255},[252,722,16],{"class":258},[252,724,262],{"class":261},[252,726,266],{"class":265},[252,728,584],{"class":269},[252,730,266],{"class":265},[252,732,274],{"class":261},[252,734,278],{"class":277},[252,736,262],{"class":265},[252,738,284],{"class":283},[252,740,287],{"class":265},[252,742,743,745,747,749,752,754,756,758],{"class":254,"line":290},[252,744,293],{"class":258},[252,746,296],{"class":261},[252,748,266],{"class":265},[252,750,751],{"class":269},"Invoice %s changed from %s to %s",[252,753,266],{"class":265},[252,755,306],{"class":261},[252,757,309],{"class":258},[252,759,760],{"class":261},"(\n",[252,762,763,766,768],{"class":254,"line":326},[252,764,765],{"class":261},"        data.",[252,767,651],{"class":315},[252,769,770],{"class":261},",\n",[252,772,774,776,778],{"class":254,"line":773},4,[252,775,765],{"class":261},[252,777,704],{"class":315},[252,779,770],{"class":261},[252,781,783,785],{"class":254,"line":782},5,[252,784,765],{"class":261},[252,786,787],{"class":315},"status\n",[252,789,791],{"class":254,"line":790},6,[252,792,793],{"class":261},"    ))\n",[252,795,797,799],{"class":254,"line":796},7,[252,798,329],{"class":277},[252,800,287],{"class":261},[27,802,804],{"id":803},"sky_mechanicjobserverinvoicepaymentrecorded",[14,805,594],{},[10,807,645,808,274,810,274,812,274,814,274,817,274,819,274,822,274,825,828,829,688],{},[14,809,648],{},[14,811,651],{},[14,813,114],{},[14,815,816],{},"payerSource",[14,818,185],{},[14,820,821],{},"paymentMethod",[14,823,824],{},"amountPaid",[14,826,827],{},"balanceDue",", and the resulting ",[14,830,659],{},[27,832,834],{"id":833},"sky_mechanicjobserverestimateresponded",[14,835,604],{},[10,837,645,838,274,840,274,842,274,844,684,846,849,850,237,853,856],{},[14,839,648],{},[14,841,651],{},[14,843,114],{},[14,845,666],{},[14,847,848],{},"response"," (",[14,851,852],{},"accepted",[14,854,855],{},"declined",").",[27,858,860],{"id":859},"sky_mechanicjobserverinvoiceoverdue",[14,861,614],{},[10,863,645,864,274,866,684,868,688],{},[14,865,648],{},[14,867,651],{},[14,869,114],{},[27,871,873],{"id":872},"sky_mechanicjobserverinvoiceremindersent",[14,874,624],{},[10,876,645,877,274,879,274,881,274,883,663,885,274,887,274,890,684,893,688],{},[14,878,648],{},[14,880,651],{},[14,882,114],{},[14,884,709],{},[14,886,666],{},[14,888,889],{},"fee",[14,891,892],{},"reminderCount",[14,894,827],{},[27,896,898],{"id":897},"sky_mechanicjobserverinvoicecancelled",[14,899,634],{},[10,901,645,902,274,904,274,906,274,908,684,910,688],{},[14,903,648],{},[14,905,651],{},[14,907,114],{},[14,909,709],{},[14,911,712],{},[913,914,917],"callout",{"color":915,"icon":916},"success","i-lucide-shield-check",[10,918,919,920,923,924,688],{},"All events on this page are server-local ",[14,921,922],{},"TriggerEvent"," notifications. Keep consumers server-side and do not re-register these names with ",[14,925,926],{},"RegisterNetEvent",[22,928,930],{"id":929},"sky_mechanicjobservervehiclerepaired",[14,931,932],{},"sky_mechanicjob:server:vehicleRepaired",[934,935,936,948],"ul",{},[937,938,939,943,944,947],"li",{},[940,941,942],"strong",{},"Purpose",": Emitted after ",[14,945,946],{},"RepairVehicle"," accepted a full vehicle repair.",[937,949,950,953,954],{},[940,951,952],{},"Payload",":\n",[934,955,956,964,971,978],{},[937,957,958,849,961,963],{},[14,959,960],{},"netId",[14,962,74],{},") - vehicle network ID.",[937,965,966,849,968,970],{},[14,967,129],{},[14,969,119],{},") - vehicle plate.",[937,972,973,849,975,977],{},[14,974,712],{},[14,976,119],{},") - supplied repair reason.",[937,979,980,849,983,985],{},[14,981,982],{},"wear",[14,984,41],{},") - repaired diagnostic wear values.",[242,987,989],{"className":244,"code":988,"filename":246,"language":247,"meta":248,"style":248},"AddEventHandler(\"sky_mechanicjob:server:vehicleRepaired\", function(data)\n    print((\"Vehicle %s repaired: %s\"):format(data.plate, data.reason))\nend)\n",[14,990,991,1013,1040],{"__ignoreMap":248},[252,992,993,995,997,999,1001,1003,1005,1007,1009,1011],{"class":254,"line":255},[252,994,16],{"class":258},[252,996,262],{"class":261},[252,998,266],{"class":265},[252,1000,932],{"class":269},[252,1002,266],{"class":265},[252,1004,274],{"class":261},[252,1006,278],{"class":277},[252,1008,262],{"class":265},[252,1010,284],{"class":283},[252,1012,287],{"class":265},[252,1014,1015,1017,1019,1021,1024,1026,1028,1030,1032,1034,1036,1038],{"class":254,"line":290},[252,1016,293],{"class":258},[252,1018,296],{"class":261},[252,1020,266],{"class":265},[252,1022,1023],{"class":269},"Vehicle %s repaired: %s",[252,1025,266],{"class":265},[252,1027,306],{"class":261},[252,1029,309],{"class":258},[252,1031,312],{"class":261},[252,1033,129],{"class":315},[252,1035,318],{"class":261},[252,1037,712],{"class":315},[252,1039,323],{"class":261},[252,1041,1042,1044],{"class":254,"line":326},[252,1043,329],{"class":277},[252,1045,287],{"class":261},[22,1047,1049],{"id":1048},"sky_mechanicjobservervehiclewearchanged",[14,1050,1051],{},"sky_mechanicjob:server:vehicleWearChanged",[934,1053,1054,1059],{},[937,1055,1056,1058],{},[940,1057,942],{},": Emitted when diagnostic wear is repaired or wear and mileage are saved.",[937,1060,1061,953,1063],{},[940,1062,952],{},[934,1064,1065,1071,1078,1086,1094,1102,1109],{},[937,1066,1067,849,1069,970],{},[14,1068,129],{},[14,1070,119],{},[937,1072,1073,849,1075,1077],{},[14,1074,982],{},[14,1076,41],{},") - current diagnostic wear values.",[937,1079,1080,849,1083,1085],{},[14,1081,1082],{},"mileage",[14,1084,89],{},") - current mileage when emitted by a mileage update.",[937,1087,1088,849,1091,1093],{},[14,1089,1090],{},"repairedParts",[14,1092,41],{},") - repaired wear part IDs.",[937,1095,1096,849,1099,1101],{},[14,1097,1098],{},"fullRepair",[14,1100,419],{},") - whether every wear part was repaired.",[937,1103,1104,849,1106,1108],{},[14,1105,712],{},[14,1107,119],{},") - change reason.",[937,1110,1111,849,1113,1115,1116,1119],{},[14,1112,69],{},[14,1114,74],{},") - initiating player server ID, or ",[14,1117,1118],{},"0"," for a server export.",[242,1121,1123],{"className":244,"code":1122,"filename":246,"language":247,"meta":248,"style":248},"AddEventHandler(\"sky_mechanicjob:server:vehicleWearChanged\", function(data)\n    if data.fullRepair then\n        print((\"All wear repaired for %s\"):format(data.plate))\n    end\nend)\n",[14,1124,1125,1147,1160,1184,1189],{"__ignoreMap":248},[252,1126,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145],{"class":254,"line":255},[252,1128,16],{"class":258},[252,1130,262],{"class":261},[252,1132,266],{"class":265},[252,1134,1051],{"class":269},[252,1136,266],{"class":265},[252,1138,274],{"class":261},[252,1140,278],{"class":277},[252,1142,262],{"class":265},[252,1144,284],{"class":283},[252,1146,287],{"class":265},[252,1148,1149,1152,1155,1157],{"class":254,"line":290},[252,1150,1151],{"class":277},"    if",[252,1153,1154],{"class":261}," data.",[252,1156,1098],{"class":315},[252,1158,1159],{"class":277}," then\n",[252,1161,1162,1165,1167,1169,1172,1174,1176,1178,1180,1182],{"class":254,"line":326},[252,1163,1164],{"class":258},"        print",[252,1166,296],{"class":261},[252,1168,266],{"class":265},[252,1170,1171],{"class":269},"All wear repaired for %s",[252,1173,266],{"class":265},[252,1175,306],{"class":261},[252,1177,309],{"class":258},[252,1179,312],{"class":261},[252,1181,129],{"class":315},[252,1183,323],{"class":261},[252,1185,1186],{"class":254,"line":773},[252,1187,1188],{"class":277},"    end\n",[252,1190,1191,1193],{"class":254,"line":782},[252,1192,329],{"class":277},[252,1194,287],{"class":261},[22,1196,1198],{"id":1197},"sky_mechanicjobservertuningchanged",[14,1199,1200],{},"sky_mechanicjob:server:tuningChanged",[934,1202,1203,1208],{},[937,1204,1205,1207],{},[940,1206,942],{},": Emitted after saved tuning properties or Stance changed.",[937,1209,1210,953,1212],{},[940,1211,952],{},[934,1213,1214,1220,1228,1241],{},[937,1215,1216,849,1218,970],{},[14,1217,129],{},[14,1219,119],{},[937,1221,1222,849,1225,1227],{},[14,1223,1224],{},"properties",[14,1226,41],{},") - current saved vehicle properties.",[937,1229,1230,849,1233,1235,1236,237,1238,688],{},[14,1231,1232],{},"change",[14,1234,119],{},") - ",[14,1237,1224],{},[14,1239,1240],{},"stance",[937,1242,1243,849,1245,1247],{},[14,1244,69],{},[14,1246,74],{},") - initiating player server ID.",[242,1249,1251],{"className":244,"code":1250,"filename":246,"language":247,"meta":248,"style":248},"AddEventHandler(\"sky_mechanicjob:server:tuningChanged\", function(data)\n    print((\"%s tuning changed: %s\"):format(data.plate, data.change))\nend)\n",[14,1252,1253,1275,1302],{"__ignoreMap":248},[252,1254,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273],{"class":254,"line":255},[252,1256,16],{"class":258},[252,1258,262],{"class":261},[252,1260,266],{"class":265},[252,1262,1200],{"class":269},[252,1264,266],{"class":265},[252,1266,274],{"class":261},[252,1268,278],{"class":277},[252,1270,262],{"class":265},[252,1272,284],{"class":283},[252,1274,287],{"class":265},[252,1276,1277,1279,1281,1283,1286,1288,1290,1292,1294,1296,1298,1300],{"class":254,"line":290},[252,1278,293],{"class":258},[252,1280,296],{"class":261},[252,1282,266],{"class":265},[252,1284,1285],{"class":269},"%s tuning changed: %s",[252,1287,266],{"class":265},[252,1289,306],{"class":261},[252,1291,309],{"class":258},[252,1293,312],{"class":261},[252,1295,129],{"class":315},[252,1297,318],{"class":261},[252,1299,1232],{"class":315},[252,1301,323],{"class":261},[252,1303,1304,1306],{"class":254,"line":326},[252,1305,329],{"class":277},[252,1307,287],{"class":261},[22,1309,1311],{"id":1310},"sky_mechanicjobserverordercompleted",[14,1312,1313],{},"sky_mechanicjob:server:orderCompleted",[934,1315,1316,1321],{},[937,1317,1318,1320],{},[940,1319,942],{},": Emitted after the final open part of a tuning order was installed.",[937,1322,1323,953,1325],{},[940,1324,952],{},[934,1326,1327,1334,1341,1348,1355,1363,1369,1378],{},[937,1328,1329,849,1331,1333],{},[14,1330,69],{},[14,1332,74],{},") - installing player server ID.",[937,1335,1336,849,1338,1340],{},[14,1337,84],{},[14,1339,74],{},") - numeric order ID.",[937,1342,1343,849,1345,1347],{},[14,1344,99],{},[14,1346,104],{},") - public order identifier.",[937,1349,1350,849,1352,1354],{},[14,1351,494],{},[14,1353,74],{},") - index of the final installed part.",[937,1356,1357,849,1360,1362],{},[14,1358,1359],{},"part",[14,1361,41],{},") - final installed part data.",[937,1364,1365,849,1367,970],{},[14,1366,129],{},[14,1368,104],{},[937,1370,1371,849,1373,1235,1375,688],{},[14,1372,659],{},[14,1374,119],{},[14,1376,1377],{},"completed",[937,1379,1380,849,1382,1384,1385,1387],{},[14,1381,1377],{},[14,1383,419],{},") - always ",[14,1386,425],{}," for this event.",[242,1389,1391],{"className":244,"code":1390,"filename":246,"language":247,"meta":248,"style":248},"AddEventHandler(\"sky_mechanicjob:server:orderCompleted\", function(data)\n    print((\"Order %s completed for %s\"):format(data.orderId, data.plate or \"UNKNOWN\"))\nend)\n",[14,1392,1393,1415,1453],{"__ignoreMap":248},[252,1394,1395,1397,1399,1401,1403,1405,1407,1409,1411,1413],{"class":254,"line":255},[252,1396,16],{"class":258},[252,1398,262],{"class":261},[252,1400,266],{"class":265},[252,1402,1313],{"class":269},[252,1404,266],{"class":265},[252,1406,274],{"class":261},[252,1408,278],{"class":277},[252,1410,262],{"class":265},[252,1412,284],{"class":283},[252,1414,287],{"class":265},[252,1416,1417,1419,1421,1423,1426,1428,1430,1432,1434,1436,1438,1440,1443,1446,1449,1451],{"class":254,"line":290},[252,1418,293],{"class":258},[252,1420,296],{"class":261},[252,1422,266],{"class":265},[252,1424,1425],{"class":269},"Order %s completed for %s",[252,1427,266],{"class":265},[252,1429,306],{"class":261},[252,1431,309],{"class":258},[252,1433,312],{"class":261},[252,1435,84],{"class":315},[252,1437,318],{"class":261},[252,1439,129],{"class":315},[252,1441,1442],{"class":265}," or",[252,1444,1445],{"class":265}," \"",[252,1447,1448],{"class":269},"UNKNOWN",[252,1450,266],{"class":265},[252,1452,323],{"class":261},[252,1454,1455,1457],{"class":254,"line":326},[252,1456,329],{"class":277},[252,1458,287],{"class":261},[22,1460,1462],{"id":1461},"sky_mechanicjobserverfakeplatechanged",[14,1463,1464],{},"sky_mechanicjob:server:fakePlateChanged",[934,1466,1467,1472],{},[937,1468,1469,1471],{},[940,1470,942],{},": Emitted when a fake plate is applied, restored, or removed.",[937,1473,1474,953,1476],{},[940,1475,952],{},[934,1477,1478,1484,1492,1500,1508,1514],{},[937,1479,1480,849,1482,963],{},[14,1481,960],{},[14,1483,74],{},[937,1485,1486,849,1489,1491],{},[14,1487,1488],{},"active",[14,1490,419],{},") - whether the fake plate is active.",[937,1493,1494,849,1497,1499],{},[14,1495,1496],{},"realPlate",[14,1498,119],{},") - persistent real plate.",[937,1501,1502,849,1505,1507],{},[14,1503,1504],{},"displayPlate",[14,1506,104],{},") - fake display plate.",[937,1509,1510,849,1512,1108],{},[14,1511,712],{},[14,1513,119],{},[937,1515,1516,849,1518,1247],{},[14,1517,709],{},[14,1519,89],{},[242,1521,1523],{"className":244,"code":1522,"filename":246,"language":247,"meta":248,"style":248},"AddEventHandler(\"sky_mechanicjob:server:fakePlateChanged\", function(data)\n    print((\"Fake plate state for %s: %s\"):format(data.realPlate, tostring(data.active)))\nend)\n",[14,1524,1525,1547,1580],{"__ignoreMap":248},[252,1526,1527,1529,1531,1533,1535,1537,1539,1541,1543,1545],{"class":254,"line":255},[252,1528,16],{"class":258},[252,1530,262],{"class":261},[252,1532,266],{"class":265},[252,1534,1464],{"class":269},[252,1536,266],{"class":265},[252,1538,274],{"class":261},[252,1540,278],{"class":277},[252,1542,262],{"class":265},[252,1544,284],{"class":283},[252,1546,287],{"class":265},[252,1548,1549,1551,1553,1555,1558,1560,1562,1564,1566,1568,1570,1573,1575,1577],{"class":254,"line":290},[252,1550,293],{"class":258},[252,1552,296],{"class":261},[252,1554,266],{"class":265},[252,1556,1557],{"class":269},"Fake plate state for %s: %s",[252,1559,266],{"class":265},[252,1561,306],{"class":261},[252,1563,309],{"class":258},[252,1565,312],{"class":261},[252,1567,1496],{"class":315},[252,1569,274],{"class":261},[252,1571,1572],{"class":258},"tostring",[252,1574,312],{"class":261},[252,1576,1488],{"class":315},[252,1578,1579],{"class":261},")))\n",[252,1581,1582,1584],{"class":254,"line":326},[252,1583,329],{"class":277},[252,1585,287],{"class":261},[22,1587,1589],{"id":1588},"support","Support",[10,1591,1592],{},"Need help? Our support team is always ready to assist",[1594,1595],"u-button",{"color":1596,"icon":1597,"label":1598,"target":1599,"to":1600,"variant":1601},"neutral","i-simple-icons-discord","Join Discord","_blank","https://discord.gg/sky-systems","subtle",[1603,1604,1605],"style",{},"html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 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}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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);}",{"title":248,"searchDepth":255,"depth":290,"links":1607},[1608,1613,1622,1623,1624,1625,1626,1627],{"id":24,"depth":290,"text":25,"children":1609},[1610,1611,1612],{"id":29,"depth":326,"text":32},{"id":334,"depth":326,"text":337},{"id":428,"depth":326,"text":431},{"id":552,"depth":290,"text":553,"children":1614},[1615,1616,1617,1618,1619,1620,1621],{"id":640,"depth":326,"text":574},{"id":691,"depth":326,"text":584},{"id":803,"depth":326,"text":594},{"id":833,"depth":326,"text":604},{"id":859,"depth":326,"text":614},{"id":872,"depth":326,"text":624},{"id":897,"depth":326,"text":634},{"id":929,"depth":290,"text":932},{"id":1048,"depth":290,"text":1051},{"id":1197,"depth":290,"text":1200},{"id":1310,"depth":290,"text":1313},{"id":1461,"depth":290,"text":1464},{"id":1588,"depth":290,"text":1589},"Local server events emitted by the Sky Mechanic Job resource.","md",null,{},true,"/docs/jobs/mechanicjob/reference/events",{"title":5,"description":1628},{"loc":1633},"1.docs/0.jobs/2.mechanicjob/4.reference/4.events","QTZYsrNlc7qIg0rktZ7snbkp_2bha7T7lP754ofWbX4",[1639,1644],{"title":1640,"path":1641,"stem":1642,"description":1643,"children":-1},"Exports","/docs/jobs/mechanicjob/reference/exports","1.docs/0.jobs/2.mechanicjob/4.reference/3.exports","Client and server exports provided by the Sky Mechanic Job resource.",{"title":1645,"path":1646,"stem":1647,"description":1648,"children":-1},"Garage Integration","/docs/jobs/mechanicjob/reference/garage-integration","1.docs/0.jobs/2.mechanicjob/4.reference/5.garage-integration","Persist Sky tuning through QBCore, ESX, Qbox, qb-garages, and custom garage property pipelines.",[],1787649388429]