[{"data":1,"prerenderedAt":797},["ShallowReactive",2],{"/docs/jobs/mechanicjob/permissions":3,"/docs/jobs/mechanicjob/permissions-surround":786},{"id":4,"title":5,"body":6,"description":776,"extension":777,"head":778,"meta":779,"navigation":780,"path":781,"schemaOrg":778,"seo":782,"sitemap":783,"stem":784,"__hash__":785},"docs/1.docs/0.jobs/2.mechanicjob/2.permissions.md","Permissions",{"type":7,"value":8,"toc":759},"minimark",[9,40,45,52,81,90,93,240,244,253,264,275,292,299,306,324,344,347,355,362,368,371,377,380,436,439,446,472,476,479,497,500,640,647,653,659,666,670,739,743,746,755],[10,11,12],"warning",{},[13,14,15,19,20,25,26,25,30,34,35,39],"p",{},[16,17,18],"strong",{},"Admin command not working?"," You are almost certainly missing the admin group in your framework. Jump to your framework below: ",[21,22,24],"a",{"href":23},"#qbox-principal-prefix-group","QBox",", ",[21,27,29],{"href":28},"#qbcore-principal-prefix-qbcore","QBCore",[21,31,33],{"href":32},"#esx-legacy-users-group","ESX",", or ",[21,36,38],{"href":37},"#vrp","vRP",".",[41,42,44],"h2",{"id":43},"how-sky-detects-admins","How Sky detects admins",[13,46,47,51],{},[48,49,50],"code",{},"sky_mechanicjob"," uses two permission paths:",[53,54,55,65],"ul",{},[56,57,58,61,62],"li",{},[48,59,60],{},"/workshopcreator"," falls back to ",[48,63,64],{},"Sky.FW.IsAdmin(source)",[56,66,67,25,70,73,74,77,78],{},[48,68,69],{},"/admintuning",[48,71,72],{},"/debugwearzero",", and ",[48,75,76],{},"/debugwearzeroall"," call ",[48,79,80],{},"Config.Functions.HasCommandPermission(source, commandName)",[13,82,83,84,87,88,39],{},"If a command is listed in ",[48,85,86],{},"Config.CommandPermissions",", the player's framework groups are checked against that list. If the command is not listed there, it falls back to ",[48,89,64],{},[13,91,92],{},"Default mechanic command permissions:",[94,95,101],"pre",{"className":96,"code":97,"filename":98,"language":99,"meta":100,"style":100},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Config.CommandPermissions = {\n    admintuning = { \"god\", \"superadmin\", \"admin\" },\n    debugwearzero = { \"god\", \"superadmin\", \"admin\" },\n    debugwearzeroall = { \"god\", \"superadmin\", \"admin\" },\n}\n","sky_mechanicjob/config/config.lua","lua","",[48,102,103,123,166,200,234],{"__ignoreMap":100},[104,105,108,112,116,120],"span",{"class":106,"line":107},"line",1,[104,109,111],{"class":110},"sTEyZ","Config.",[104,113,115],{"class":114},"sBMFI","CommandPermissions",[104,117,119],{"class":118},"sMK4o"," =",[104,121,122],{"class":110}," {\n",[104,124,126,129,132,135,138,142,144,146,148,151,153,155,157,160,163],{"class":106,"line":125},2,[104,127,128],{"class":110},"    admintuning ",[104,130,131],{"class":118},"=",[104,133,134],{"class":110}," { ",[104,136,137],{"class":118},"\"",[104,139,141],{"class":140},"sfazB","god",[104,143,137],{"class":118},[104,145,25],{"class":110},[104,147,137],{"class":118},[104,149,150],{"class":140},"superadmin",[104,152,137],{"class":118},[104,154,25],{"class":110},[104,156,137],{"class":118},[104,158,159],{"class":140},"admin",[104,161,162],{"class":118},"\" ",[104,164,165],{"class":110},"},\n",[104,167,169,172,174,176,178,180,182,184,186,188,190,192,194,196,198],{"class":106,"line":168},3,[104,170,171],{"class":110},"    debugwearzero ",[104,173,131],{"class":118},[104,175,134],{"class":110},[104,177,137],{"class":118},[104,179,141],{"class":140},[104,181,137],{"class":118},[104,183,25],{"class":110},[104,185,137],{"class":118},[104,187,150],{"class":140},[104,189,137],{"class":118},[104,191,25],{"class":110},[104,193,137],{"class":118},[104,195,159],{"class":140},[104,197,162],{"class":118},[104,199,165],{"class":110},[104,201,203,206,208,210,212,214,216,218,220,222,224,226,228,230,232],{"class":106,"line":202},4,[104,204,205],{"class":110},"    debugwearzeroall ",[104,207,131],{"class":118},[104,209,134],{"class":110},[104,211,137],{"class":118},[104,213,141],{"class":140},[104,215,137],{"class":118},[104,217,25],{"class":110},[104,219,137],{"class":118},[104,221,150],{"class":140},[104,223,137],{"class":118},[104,225,25],{"class":110},[104,227,137],{"class":118},[104,229,159],{"class":140},[104,231,162],{"class":118},[104,233,165],{"class":110},[104,235,237],{"class":106,"line":236},5,[104,238,239],{"class":110},"}\n",[41,241,243],{"id":242},"framework-setup","Framework setup",[245,246,248,249,252],"h3",{"id":247},"qbox-principal-prefix-group","QBox (principal prefix: ",[48,250,251],{},"group.",")",[13,254,255,256,259,260,263],{},"Qbox relies on FiveM ACE through ox_lib's ",[48,257,258],{},"lib.addCommand({ restricted = 'group.admin' })",". Use the ",[48,261,262],{},"group.\u003Cname>"," prefix.",[13,265,266,267,270,271,274],{},"Add this to ",[48,268,269],{},"server.cfg"," or ",[48,272,273],{},"permissions.cfg",":",[94,276,280],{"className":277,"code":278,"filename":269,"language":279,"meta":100,"style":100},"language-cfg shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","add_ace group.admin command allow\nadd_principal identifier.license:\u003Clicense> group.admin\n","cfg",[48,281,282,287],{"__ignoreMap":100},[104,283,284],{"class":106,"line":107},[104,285,286],{},"add_ace group.admin command allow\n",[104,288,289],{"class":106,"line":125},[104,290,291],{},"add_principal identifier.license:\u003Clicense> group.admin\n",[13,293,294,295,298],{},"Replace ",[48,296,297],{},"\u003Clicense>"," with the player's license.",[245,300,302,303,252],{"id":301},"qbcore-principal-prefix-qbcore","QBCore (principal prefix: ",[48,304,305],{},"qbcore.",[13,307,308,309,312,313,316,317,320,321,39],{},"QBCore uses FiveM ACE with ",[48,310,311],{},"qbcore.*"," principals. Prefer ",[48,314,315],{},"qbcore.admin"," / ",[48,318,319],{},"qbcore.god"," over ",[48,322,323],{},"group.admin",[94,325,327],{"className":277,"code":326,"filename":269,"language":279,"meta":100,"style":100},"add_ace qbcore.god command allow\nadd_principal identifier.license:\u003Clicense> qbcore.god\nadd_principal identifier.license:\u003Clicense> qbcore.admin\n",[48,328,329,334,339],{"__ignoreMap":100},[104,330,331],{"class":106,"line":107},[104,332,333],{},"add_ace qbcore.god command allow\n",[104,335,336],{"class":106,"line":125},[104,337,338],{},"add_principal identifier.license:\u003Clicense> qbcore.god\n",[104,340,341],{"class":106,"line":168},[104,342,343],{},"add_principal identifier.license:\u003Clicense> qbcore.admin\n",[13,345,346],{},"Or in-game:",[94,348,353],{"className":349,"code":351,"language":352},[350],"language-text","/addpermission 1 god\n","text",[48,354,351],{"__ignoreMap":100},[245,356,358,359,252],{"id":357},"esx-legacy-usersgroup","ESX Legacy (",[48,360,361],{},"users.group",[13,363,364,365,367],{},"ESX Legacy stores the admin group in the ",[48,366,361],{}," column.",[13,369,370],{},"In-game:",[94,372,375],{"className":373,"code":374,"language":352},[350],"/setgroup 1 admin\n",[48,376,374],{"__ignoreMap":100},[13,378,379],{},"Or via SQL:",[94,381,385],{"className":382,"code":383,"language":384,"meta":100,"style":100},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","UPDATE users SET `group` = 'admin' WHERE identifier = 'license:\u003Clicense>';\n","sql",[48,386,387],{"__ignoreMap":100},[104,388,389,393,396,399,402,405,408,410,413,415,418,421,424,426,428,431,433],{"class":106,"line":107},[104,390,392],{"class":391},"sbssI","UPDATE",[104,394,395],{"class":110}," users ",[104,397,398],{"class":391},"SET",[104,400,401],{"class":118}," `",[104,403,404],{"class":140},"group",[104,406,407],{"class":118},"`",[104,409,119],{"class":118},[104,411,412],{"class":118}," '",[104,414,159],{"class":140},[104,416,417],{"class":118},"'",[104,419,420],{"class":391}," WHERE",[104,422,423],{"class":110}," identifier ",[104,425,131],{"class":118},[104,427,412],{"class":118},[104,429,430],{"class":140},"license:\u003Clicense>",[104,432,417],{"class":118},[104,434,435],{"class":110},";\n",[245,437,38],{"id":438},"vrp",[13,440,441,442,445],{},"Groups are defined in ",[48,443,444],{},"cfg/groups.lua"," and granted with:",[94,447,449],{"className":96,"code":448,"language":99,"meta":100,"style":100},"vRP.addUserGroup(user_id, \"admin\")\n",[48,450,451],{"__ignoreMap":100},[104,452,453,456,460,463,465,467,469],{"class":106,"line":107},[104,454,455],{"class":110},"vRP.",[104,457,459],{"class":458},"s2Zo4","addUserGroup",[104,461,462],{"class":110},"(user_id, ",[104,464,137],{"class":118},[104,466,159],{"class":140},[104,468,137],{"class":118},[104,470,471],{"class":110},")\n",[41,473,475],{"id":474},"custom-admin-groups","Custom admin groups",[13,477,478],{},"If you use groups outside the default set, either:",[53,480,481,492],{},[56,482,483,484,487,488,491],{},"add them to ",[48,485,486],{},"Config.AdminGroups"," in ",[48,489,490],{},"sky_base/config/config.lua"," for fallback admin checks",[56,493,494,495],{},"or add them to the matching mechanic command in ",[48,496,86],{},[13,498,499],{},"Example:",[94,501,503],{"className":96,"code":502,"filename":98,"language":99,"meta":100,"style":100},"Config.CommandPermissions = {\n    admintuning = { \"god\", \"superadmin\", \"admin\", \"owner\" },\n    debugwearzero = { \"god\", \"superadmin\", \"admin\", \"owner\" },\n    debugwearzeroall = { \"god\", \"superadmin\", \"admin\", \"owner\" },\n}\n",[48,504,505,515,556,596,636],{"__ignoreMap":100},[104,506,507,509,511,513],{"class":106,"line":107},[104,508,111],{"class":110},[104,510,115],{"class":114},[104,512,119],{"class":118},[104,514,122],{"class":110},[104,516,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,552,554],{"class":106,"line":125},[104,518,128],{"class":110},[104,520,131],{"class":118},[104,522,134],{"class":110},[104,524,137],{"class":118},[104,526,141],{"class":140},[104,528,137],{"class":118},[104,530,25],{"class":110},[104,532,137],{"class":118},[104,534,150],{"class":140},[104,536,137],{"class":118},[104,538,25],{"class":110},[104,540,137],{"class":118},[104,542,159],{"class":140},[104,544,137],{"class":118},[104,546,25],{"class":110},[104,548,137],{"class":118},[104,550,551],{"class":140},"owner",[104,553,162],{"class":118},[104,555,165],{"class":110},[104,557,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594],{"class":106,"line":168},[104,559,171],{"class":110},[104,561,131],{"class":118},[104,563,134],{"class":110},[104,565,137],{"class":118},[104,567,141],{"class":140},[104,569,137],{"class":118},[104,571,25],{"class":110},[104,573,137],{"class":118},[104,575,150],{"class":140},[104,577,137],{"class":118},[104,579,25],{"class":110},[104,581,137],{"class":118},[104,583,159],{"class":140},[104,585,137],{"class":118},[104,587,25],{"class":110},[104,589,137],{"class":118},[104,591,551],{"class":140},[104,593,162],{"class":118},[104,595,165],{"class":110},[104,597,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634],{"class":106,"line":202},[104,599,205],{"class":110},[104,601,131],{"class":118},[104,603,134],{"class":110},[104,605,137],{"class":118},[104,607,141],{"class":140},[104,609,137],{"class":118},[104,611,25],{"class":110},[104,613,137],{"class":118},[104,615,150],{"class":140},[104,617,137],{"class":118},[104,619,25],{"class":110},[104,621,137],{"class":118},[104,623,159],{"class":140},[104,625,137],{"class":118},[104,627,25],{"class":110},[104,629,137],{"class":118},[104,631,551],{"class":140},[104,633,162],{"class":118},[104,635,165],{"class":110},[104,637,638],{"class":106,"line":236},[104,639,239],{"class":110},[41,641,643,644],{"id":642},"boss-menu-setup-with-setboss","Boss menu setup with ",[48,645,646],{},"/setboss",[13,648,649,650,652],{},"Once your admin group is working, run ",[48,651,646],{}," to grant all boss permissions to a specific mechanic grade:",[94,654,657],{"className":655,"code":656,"language":352},[350],"/setboss mechanic 4\n",[48,658,656],{"__ignoreMap":100},[13,660,661,662,665],{},"Change ",[48,663,664],{},"4"," to the top grade configured for your server.",[41,667,669],{"id":668},"troubleshooting","Troubleshooting",[671,672,673,683,702,719,728],"accordion",{},[13,674,675,676,679,680,682],{},"::accordion-item{label=\"Command says \"No permission\"\"}\nThe player is not in a framework group checked by ",[48,677,678],{},"Sky.FW.IsAdmin",", or the command's group list in ",[48,681,86],{}," does not include that group.\n::",[684,685,687],"accordion-item",{"label":686},"/workshopcreator fails but /admintuning works",[13,688,689,691,692,695,696,698,699,701],{},[48,690,60],{}," uses the fallback admin check from ",[48,693,694],{},"sky_jobs_base",", while ",[48,697,69],{}," uses ",[48,700,86],{},". Make sure your group is recognized by both systems if you want access to both.",[684,703,705],{"label":704},"I granted the group but still have no access",[13,706,707,708,710,711,714,715,718],{},"The player must reconnect after permission changes. On ACE changes in ",[48,709,269],{},", also run ",[48,712,713],{},"refresh"," and ",[48,716,717],{},"load permissions"," or restart the server.",[684,720,722],{"label":721},"/setboss worked but the boss menu is empty",[13,723,724,725,727],{},"The grade you passed to ",[48,726,646],{}," must match the grade value stored for the employee in the job member data. Use the highest configured mechanic grade.",[684,729,731],{"label":730},"Unknown command: /workshopcreator",[13,732,733,735,736,738],{},[48,734,694],{}," is not running, or ",[48,737,50],{}," did not finish registering the creator on startup.",[41,740,742],{"id":741},"support","Support",[13,744,745],{},"Need help? Our support team is always ready to assist",[747,748],"u-button",{"color":749,"icon":750,"label":751,"target":752,"to":753,"variant":754},"neutral","i-simple-icons-discord","Join Discord","_blank","https://discord.gg/sky-systems","subtle",[756,757,758],"style",{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":100,"searchDepth":107,"depth":125,"links":760},[761,762,771,772,774,775],{"id":43,"depth":125,"text":44},{"id":242,"depth":125,"text":243,"children":763},[764,766,768,770],{"id":247,"depth":168,"text":765},"QBox (principal prefix: group.)",{"id":301,"depth":168,"text":767},"QBCore (principal prefix: qbcore.)",{"id":357,"depth":168,"text":769},"ESX Legacy (users.group)",{"id":438,"depth":168,"text":38},{"id":474,"depth":125,"text":475},{"id":642,"depth":125,"text":773},"Boss menu setup with /setboss",{"id":668,"depth":125,"text":669},{"id":741,"depth":125,"text":742},"Grant admin access so mechanic admin commands and the workshop creator work in your framework.","md",null,{},true,"/docs/jobs/mechanicjob/permissions",{"title":5,"description":776},{"loc":781},"1.docs/0.jobs/2.mechanicjob/2.permissions","GJ4bT_tdKtiGSlwOFQxESa9r21ceQJrwq933Se-SYBo",[787,792],{"title":788,"path":789,"stem":790,"description":791,"children":-1},"Installation","/docs/jobs/mechanicjob/installation","1.docs/0.jobs/2.mechanicjob/1.installation","Follow these steps to prepare your server for the Sky Mechanic Job script, from dependencies and SQL import to workshop placement.",{"title":793,"path":794,"stem":795,"description":796,"children":-1},"Inventory Items","/docs/jobs/mechanicjob/inventories","1.docs/0.jobs/2.mechanicjob/3.inventories","Use these configurations to prepare your inventory for the Sky Mechanic Job resource.",1776270453471]