[{"data":1,"prerenderedAt":730},["ShallowReactive",2],{"/docs/jobs/firejob/setup/installation":3,"/docs/jobs/firejob/setup/installation-surround":719,"/docs/jobs/firejob/setup/installation-implemented-suggestions":729},{"id":4,"title":5,"body":6,"description":709,"extension":710,"head":711,"implementedSuggestions":711,"meta":712,"navigation":713,"path":714,"schemaOrg":711,"seo":715,"sitemap":716,"stem":717,"__hash__":718},"docs/1.docs/0.jobs/3.firejob/2.setup/1.installation.md","Installation",{"type":7,"value":8,"toc":702},"minimark",[9,14,18,33,36,40,599,603,633,652,656,682,686,689,698],[10,11,13],"h2",{"id":12},"requirements","Requirements",[15,16,17],"p",{},"Before installing Sky Fire Job, update both required resources from the same CFX Portal account:",[19,20,21,28],"ul",{},[22,23,24],"li",{},[25,26,27],"code",{},"sky_base",[22,29,30],{},[25,31,32],{},"sky_jobs_base",[15,34,35],{},"Keep both dependencies up to date when updating the fire resource. Start your framework, inventory, and targeting resources before the Sky resources.",[10,37,39],{"id":38},"install-the-resource","Install the resource",[41,42,43,48,55,59,66,101,105,115,122,125,157,161,206,220,224,235,498,502,514,518,525,536,540,552,556,566,576,580,592,596],"steps",{},[44,45,47],"h3",{"id":46},"deploy-the-files","Deploy the files",[15,49,50,51,54],{},"Place the ",[25,52,53],{},"sky_firejob"," resource in your server resources directory. Do not rename its resource folder.",[44,56,58],{"id":57},"configure-the-start-order","Configure the start order",[15,60,61,62,65],{},"Add the resource to ",[25,63,64],{},"server.cfg"," after its dependencies:",[67,68,73],"pre",{"className":69,"code":70,"filename":64,"language":71,"meta":72,"style":72},"language-cfg shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Framework, SQL, inventory, target and configured integrations first\nensure sky_base\nensure sky_jobs_base\nensure sky_firejob\n","cfg","",[25,74,75,83,89,95],{"__ignoreMap":72},[76,77,80],"span",{"class":78,"line":79},"line",1,[76,81,82],{},"# Framework, SQL, inventory, target and configured integrations first\n",[76,84,86],{"class":78,"line":85},2,[76,87,88],{},"ensure sky_base\n",[76,90,92],{"class":78,"line":91},3,[76,93,94],{},"ensure sky_jobs_base\n",[76,96,98],{"class":78,"line":97},4,[76,99,100],{},"ensure sky_firejob\n",[44,102,104],{"id":103},"prepare-the-database","Prepare the database",[15,106,107,110,111,114],{},[25,108,109],{},"Config.AutoExecuteQuery"," is enabled by default in ",[25,112,113],{},"config/config.lua",". With this option enabled, the resource creates and updates its tables automatically.",[15,116,117,118,121],{},"If you disable automatic queries, import the included ",[25,119,120],{},"import.sql"," manually before starting the resource.",[15,123,124],{},"The fire resource uses these tables:",[19,126,127,132,137,142,147,152],{},[22,128,129],{},[25,130,131],{},"sky_jobs",[22,133,134],{},[25,135,136],{},"sky_fire_reports",[22,138,139],{},[25,140,141],{},"sky_fire_oil_spills",[22,143,144],{},[25,145,146],{},"sky_fire_extinguishers",[22,148,149],{},[25,150,151],{},"sky_firejob_scenarios",[22,153,154],{},[25,155,156],{},"sky_firejob_scenario_hub",[44,158,160],{"id":159},"add-inventory-items","Add inventory items",[15,162,163,164,167,168,167,171,167,174,167,177,167,180,167,183,167,186,167,189,167,192,195,196,199,200,205],{},"Add the items required by the systems you enable. The default setup uses ",[25,165,166],{},"oil_absorbent",", ",[25,169,170],{},"broom",[25,172,173],{},"foam_canister",[25,175,176],{},"fire_extinguisher_mount_kit",[25,178,179],{},"rescue_cushion",[25,181,182],{},"water_monitor",[25,184,185],{},"fire_heli_bucket",[25,187,188],{},"lighter",[25,190,191],{},"glas_hammer",[25,193,194],{},"hydrualic_spreader",", and ",[25,197,198],{},"fire_air_bottle",". Ready-to-use definitions and optional-item notes are listed on the ",[201,202,204],"a",{"href":203},"../reference/inventory-items","Inventory Items"," page.",[15,207,208,209,212,213,215,216,219],{},"Copy the supplied PNG files from ",[25,210,211],{},"sky_firejob/config/inventory"," into your inventory image folder. The configured item key ",[25,214,194],{}," intentionally uses the supplied ",[25,217,218],{},"hydraulic_spreader.png"," icon filename.",[44,221,223],{"id":222},"configure-custom-hose-weapon-support-when-used-optional","Configure custom hose weapon support when used (Optional)",[15,225,226,227,230,231,234],{},"Sky Fire Job uses the custom weapon ",[25,228,229],{},"WEAPON_SKY_HOSE"," for the hose/nozzle flow. Complete the matching optional step below when you use ",[25,232,233],{},"ox_inventory"," or Jaksam Inventory.",[236,237,238,301],"accordion",{},[239,240,241,258,264],"accordion-item",{"label":233},[15,242,243,244,246,247,250,251,254,255,257],{},"If ",[25,245,233],{}," strips or rejects the weapon, open ",[25,248,249],{},"ox_inventory/init.lua",", locate the ",[25,252,253],{},"ignoreweapons"," block, add ",[25,256,229],{}," there, and then restart both resources. The exact location depends on your installed inventory version.",[15,259,260,261,263],{},"If you are troubleshooting this issue, also check your server logs for ",[25,262,233],{}," weapon-related warnings around equip, disarm, or weapon validation so you can confirm the custom hose weapon is the part being blocked.",[67,265,269],{"className":266,"code":267,"language":268,"meta":72,"style":72},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","-- ox_inventory/init.lua\nignoreweapons[`WEAPON_SKY_HOSE`] = true\n","lua",[25,270,271,277],{"__ignoreMap":72},[76,272,273],{"class":78,"line":79},[76,274,276],{"class":275},"sHwdD","-- ox_inventory/init.lua\n",[76,278,279,283,287,290,292,295,298],{"class":78,"line":85},[76,280,282],{"class":281},"sTEyZ","ignoreweapons[",[76,284,286],{"class":285},"sMK4o","`",[76,288,229],{"class":289},"sfazB",[76,291,286],{"class":285},[76,293,294],{"class":281},"] ",[76,296,297],{"class":285},"=",[76,299,300],{"class":285}," true\n",[239,302,304,318],{"label":303},"Jaksam Inventory",[15,305,306,307,310,311,314,315,317],{},"Open ",[25,308,309],{},"jaksam_inventory/integrations/cl_integrations.lua"," and locate the ",[25,312,313],{},"IGNORED_WEAPONS"," table. Add ",[25,316,229],{}," to the existing table; the exact location depends on your installed inventory version:",[67,319,321],{"className":266,"code":320,"language":268,"meta":72,"style":72},"IGNORED_WEAPONS = {\n    [`WEAPON_UNARMED`] = true,\n    [`WEAPON_HANDCUFFS`] = true,\n    [`WEAPON_GARBAGEBAG`] = true,\n    [`WEAPON_HOSE`] = true,\n    [`WEAPON_PRESSURE1`] = true,\n    [`WEAPON_ANIMAL`] = true,\n    [`WEAPON_COUGAR`] = true,\n    [`WEAPON_SKY_HOSE`] = true,\n}\n",[25,322,323,333,355,374,393,413,433,453,473,492],{"__ignoreMap":72},[76,324,325,328,330],{"class":78,"line":79},[76,326,327],{"class":281},"IGNORED_WEAPONS ",[76,329,297],{"class":285},[76,331,332],{"class":281}," {\n",[76,334,335,338,340,343,345,347,349,352],{"class":78,"line":85},[76,336,337],{"class":281},"    [",[76,339,286],{"class":285},[76,341,342],{"class":289},"WEAPON_UNARMED",[76,344,286],{"class":285},[76,346,294],{"class":281},[76,348,297],{"class":285},[76,350,351],{"class":285}," true",[76,353,354],{"class":281},",\n",[76,356,357,359,361,364,366,368,370,372],{"class":78,"line":91},[76,358,337],{"class":281},[76,360,286],{"class":285},[76,362,363],{"class":289},"WEAPON_HANDCUFFS",[76,365,286],{"class":285},[76,367,294],{"class":281},[76,369,297],{"class":285},[76,371,351],{"class":285},[76,373,354],{"class":281},[76,375,376,378,380,383,385,387,389,391],{"class":78,"line":97},[76,377,337],{"class":281},[76,379,286],{"class":285},[76,381,382],{"class":289},"WEAPON_GARBAGEBAG",[76,384,286],{"class":285},[76,386,294],{"class":281},[76,388,297],{"class":285},[76,390,351],{"class":285},[76,392,354],{"class":281},[76,394,396,398,400,403,405,407,409,411],{"class":78,"line":395},5,[76,397,337],{"class":281},[76,399,286],{"class":285},[76,401,402],{"class":289},"WEAPON_HOSE",[76,404,286],{"class":285},[76,406,294],{"class":281},[76,408,297],{"class":285},[76,410,351],{"class":285},[76,412,354],{"class":281},[76,414,416,418,420,423,425,427,429,431],{"class":78,"line":415},6,[76,417,337],{"class":281},[76,419,286],{"class":285},[76,421,422],{"class":289},"WEAPON_PRESSURE1",[76,424,286],{"class":285},[76,426,294],{"class":281},[76,428,297],{"class":285},[76,430,351],{"class":285},[76,432,354],{"class":281},[76,434,436,438,440,443,445,447,449,451],{"class":78,"line":435},7,[76,437,337],{"class":281},[76,439,286],{"class":285},[76,441,442],{"class":289},"WEAPON_ANIMAL",[76,444,286],{"class":285},[76,446,294],{"class":281},[76,448,297],{"class":285},[76,450,351],{"class":285},[76,452,354],{"class":281},[76,454,456,458,460,463,465,467,469,471],{"class":78,"line":455},8,[76,457,337],{"class":281},[76,459,286],{"class":285},[76,461,462],{"class":289},"WEAPON_COUGAR",[76,464,286],{"class":285},[76,466,294],{"class":281},[76,468,297],{"class":285},[76,470,351],{"class":285},[76,472,354],{"class":281},[76,474,476,478,480,482,484,486,488,490],{"class":78,"line":475},9,[76,477,337],{"class":281},[76,479,286],{"class":285},[76,481,229],{"class":289},[76,483,286],{"class":285},[76,485,294],{"class":281},[76,487,297],{"class":285},[76,489,351],{"class":285},[76,491,354],{"class":281},[76,493,495],{"class":78,"line":494},10,[76,496,497],{"class":281},"}\n",[44,499,501],{"id":500},"configure-media-uploads-when-used","Configure media uploads when used",[15,503,504,505,508,509,513],{},"Report or tablet applications that save images or videos use the shared provider in ",[25,506,507],{},"sky_jobs_base/config/webhooks.lua",". Configure FiveManage, Qbox CDN, or a custom adapter as described in ",[201,510,512],{"href":511},"/docs/base/jobs-base/media-providers","Media Providers"," before enabling a media workflow.",[44,515,517],{"id":516},"disable-duplicate-salaries","Disable duplicate salaries",[15,519,520,521,524],{},"Set framework salary values for every firefighter grade to ",[25,522,523],{},"0"," when Sky Jobs Base manages salaries. Leaving both salary systems active can produce duplicate payments.",[15,526,527,528,531,532,535],{},"If you keep framework or external payroll instead, set ",[25,529,530],{},"Config.Salary.enabled = false"," in ",[25,533,534],{},"sky_jobs_base/config/config.lua",".",[44,537,539],{"id":538},"configure-administrator-access","Configure administrator access",[15,541,542,543,547,548,205],{},"Install the global ",[201,544,546],{"href":545},"/docs/installation#permissions-bootstrap","permissions bootstrap",", assign your administrator group, and review the ",[201,549,551],{"href":550},"./permissions","Permissions",[44,553,555],{"id":554},"grant-boss-permissions","Grant boss permissions",[15,557,558,559,562,563,535],{},"Run ",[25,560,561],{},"/setboss"," once for the highest firefighter grade after a fresh installation or after clearing ",[25,564,565],{},"sky_job_permissions",[15,567,568,569,572,573,535],{},"For example, a firefighter job whose highest grade is ",[25,570,571],{},"4"," should be configured with ",[25,574,575],{},"/setboss firefighter 4",[44,577,579],{"id":578},"configure-the-job","Configure the job",[15,581,582,583,586,587,591],{},"Restart the server, run ",[25,584,585],{},"/jobconfig",", and select ",[588,589,590],"strong",{},"Fire Jobs",". Configure jobs and enabled systems before inviting players on duty.",[44,593,595],{"id":594},"test-the-first-workflows","Test the first workflows",[15,597,598],{},"Test one station entry, one garage vehicle, one storage access, one fire spawn, one hose connection, and one cleanup workflow before going live.",[10,600,602],{"id":601},"first-start-checklist","First-start checklist",[19,604,605,608,615,618,621,624,627,630],{},[22,606,607],{},"The server console shows no missing dependency or database errors.",[22,609,610,612,613,535],{},[25,611,585],{}," lists ",[588,614,590],{},[22,616,617],{},"Your firefighter job and intended grades exist in the framework.",[22,619,620],{},"Required items exist in the selected inventory.",[22,622,623],{},"A test firefighter can go on duty and access the station features.",[22,625,626],{},"A test fire can be created and extinguished.",[22,628,629],{},"A test oil spill can be created, bound, and swept.",[22,631,632],{},"The scenario creator opens for an authorized administrator.",[634,635,638],"callout",{"color":636,"icon":637},"info","i-lucide-info",[15,639,640,641,643,644,647,648,651],{},"Most day-to-day settings are managed through ",[25,642,585],{}," when ",[25,645,646],{},"Config.UseJobConfigurator"," is enabled. Static and advanced settings remain in the open ",[25,649,650],{},"config"," directory.",[10,653,655],{"id":654},"next-steps","Next steps",[19,657,658,664,670,676],{},[22,659,660],{},[201,661,663],{"href":662},"./configuration","Configuration",[22,665,666],{},[201,667,669],{"href":668},"./station-setup","Station Setup",[22,671,672],{},[201,673,675],{"href":674},"../features/fire-and-hose-system","Fire and Hose System",[22,677,678],{},[201,679,681],{"href":680},"../troubleshooting","Troubleshooting",[10,683,685],{"id":684},"support","Support",[15,687,688],{},"Need help? Our support team is always ready to assist.",[690,691],"u-button",{"color":692,"icon":693,"label":694,"target":695,"to":696,"variant":697},"neutral","i-simple-icons-discord","Join Discord","_blank","https://discord.gg/sky-systems","subtle",[699,700,701],"style",{},"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 .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 .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}",{"title":72,"searchDepth":79,"depth":85,"links":703},[704,705,706,707,708],{"id":12,"depth":85,"text":13},{"id":38,"depth":85,"text":39},{"id":601,"depth":85,"text":602},{"id":654,"depth":85,"text":655},{"id":684,"depth":85,"text":685},"Install Sky Fire Job, prepare its dependencies and database, and complete the first server setup.","md",null,{},true,"/docs/jobs/firejob/setup/installation",{"title":5,"description":709},{"loc":714},"1.docs/0.jobs/3.firejob/2.setup/1.installation","I4lU15H9MK_QqBtzGps1ix4qpObMTW-fP8A891uL_x8",[720,725],{"title":721,"path":722,"stem":723,"description":724,"children":-1},"Overview","/docs/jobs/firejob/overview","1.docs/0.jobs/3.firejob/1.overview","Start here for an overview of Sky Fire Job, its main systems, setup path, and documentation sections.",{"title":663,"path":726,"stem":727,"description":728,"children":-1},"/docs/jobs/firejob/setup/configuration","1.docs/0.jobs/3.firejob/2.setup/2.configuration","Understand the Job Configurator, firejob feature toggles, static settings, and safe configuration workflow.",[],1786395276676]