[{"data":1,"prerenderedAt":426},["ShallowReactive",2],{"/docs/jobs/jobcreator/api/overview":3,"/docs/jobs/jobcreator/api/overview-surround":414,"/docs/jobs/jobcreator/api/overview-implemented-suggestions":425},{"id":4,"title":5,"body":6,"description":403,"extension":404,"head":405,"implementedSuggestions":405,"meta":406,"navigation":407,"path":409,"schemaOrg":405,"seo":410,"sitemap":411,"stem":412,"__hash__":413},"docs/1.docs/0.jobs/6.jobcreator/5.api/1.overview.md","API overview",{"type":7,"value":8,"toc":397},"minimark",[9,26,37,48,53,237,241,246,251,255,258,347,372,383,387,390,393],[10,11,12,13,17,18,21,22,25],"p",{},"Use these integrations to connect your own scripts to a Creator job. In the sidebar, expand ",[14,15,16],"strong",{},"Client exports"," or ",[14,19,20],{},"Server exports"," to choose a feature, or open ",[14,23,24],{},"Events"," to react to changes.",[10,27,28,36],{},[14,29,30,31,35],{},"Use ",[32,33,34],"code",{},"exports[\"sky_jobs_base\"]"," for gameplay."," Job Creator uses Jobs Base for duty, employees, company accounts, billing, storage, vehicles and player actions. These APIs work with registered Creator jobs as well as other supported Sky jobs.",[10,38,39,40,43,44,47],{},"Export names are case-sensitive: ",[32,41,42],{},"getPlayerJobInfo"," and ",[32,45,46],{},"OpenBilling"," have different capitalization. Copy the name exactly as shown. You do not need to import the Sky library just to call an export.",[49,50,52],"h2",{"id":51},"choose-an-integration","Choose an integration",[54,55,56,69],"table",{},[57,58,59],"thead",{},[60,61,62,66],"tr",{},[63,64,65],"th",{},"You want to…",[63,67,68],{},"Start here",[70,71,72,85,96,107,118,129,140,151,161,172,183,194,205,216,227],"tbody",{},[60,73,74,78],{},[75,76,77],"td",{},"Read a player's job, grade or duty state",[75,79,80],{},[81,82,84],"a",{"href":83},"/docs/jobs/jobcreator/api/server-exports#job-and-duty","Server exports → Job and duty",[60,86,87,90],{},[75,88,89],{},"Hire, promote or dismiss employees",[75,91,92],{},[81,93,95],{"href":94},"/docs/jobs/jobcreator/api/server-exports#employees","Server exports → Employees",[60,97,98,101],{},[75,99,100],{},"Read or change a company balance",[75,102,103],{},[81,104,106],{"href":105},"/docs/jobs/jobcreator/api/server-exports#company-accounts","Server exports → Company accounts",[60,108,109,112],{},[75,110,111],{},"Issue an invoice or react to a payment",[75,113,114],{},[81,115,117],{"href":116},"/docs/jobs/jobcreator/api/server-exports#billing","Server exports → Billing",[60,119,120,123],{},[75,121,122],{},"Pause payroll or read a grade's salary",[75,124,125],{},[81,126,128],{"href":127},"/docs/base/jobs-base/server-exports/salary","Salary",[60,130,131,134],{},[75,132,133],{},"Check an employee's permissions",[75,135,136],{},[81,137,139],{"href":138},"/docs/base/jobs-base/server-exports/permissions","Permissions",[60,141,142,145],{},[75,143,144],{},"Open/close a business or publish an announcement",[75,146,147],{},[81,148,150],{"href":149},"/docs/base/jobs-base/server-exports/business","Business",[60,152,153,156],{},[75,154,155],{},"Open billing, Business or the radial menu",[75,157,158],{},[81,159,16],{"href":160},"/docs/jobs/jobcreator/api/client-exports",[60,162,163,166],{},[75,164,165],{},"Use your own radial or target menu",[75,167,168],{},[81,169,171],{"href":170},"/docs/jobs/jobcreator/api/client-exports#external-menus","Client exports → External menus",[60,173,174,177],{},[75,175,176],{},"Cuff, escort, search or move a player into a vehicle",[75,178,179],{},[81,180,182],{"href":181},"/docs/base/jobs-base/client-exports/player-interactions","Player interactions",[60,184,185,188],{},[75,186,187],{},"Show or present identity, licences or a service card",[75,189,190],{},[81,191,193],{"href":192},"/docs/base/jobs-base/client-exports/documents","Documents",[60,195,196,199],{},[75,197,198],{},"Count, add or remove shared storage items",[75,200,201],{},[81,202,204],{"href":203},"/docs/base/jobs-base/server-exports/storage","Storage",[60,206,207,210],{},[75,208,209],{},"Register vehicles spawned by another garage",[75,211,212],{},[81,213,215],{"href":214},"/docs/base/jobs-base/server-exports/external-garage-integration","External garage integration",[60,217,218,221],{},[75,219,220],{},"Connect a delivery script to wholesale orders",[75,222,223],{},[81,224,226],{"href":225},"/docs/base/jobs-base/server-exports/wholesale-orders","Wholesale orders",[60,228,229,232],{},[75,230,231],{},"React to job, duty, membership or invoice changes",[75,233,234],{},[81,235,24],{"href":236},"/docs/base/jobs-base/events",[49,238,240],{"id":239},"client-or-server","Client or server?",[10,242,243,245],{},[14,244,20],{}," run in your server script. Use them for job checks, employee management and money changes. Your integration must authorise the action and validate player IDs, grades and amounts.",[10,247,248,250],{},[14,249,16],{}," run in the player's client script. They open menus for that player or connect client-side actions. The job's enabled features, duty requirements and employee permissions still apply.",[49,252,254],{"id":253},"first-integration","First integration",[10,256,257],{},"Add Jobs Base as a dependency of your own resource and put each example on the side indicated by its filename:",[259,260,266],"pre",{"className":261,"code":262,"filename":263,"language":264,"meta":265,"style":265},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","fx_version \"cerulean\"\ngame \"gta5\"\n\ndependency \"sky_jobs_base\"\nserver_script \"server.lua\"\nclient_script \"client.lua\"\n","fxmanifest.lua","lua","",[32,267,268,288,301,308,321,334],{"__ignoreMap":265},[269,270,273,277,281,285],"span",{"class":271,"line":272},"line",1,[269,274,276],{"class":275},"s2Zo4","fx_version",[269,278,280],{"class":279},"sMK4o"," \"",[269,282,284],{"class":283},"sfazB","cerulean",[269,286,287],{"class":279},"\"\n",[269,289,291,294,296,299],{"class":271,"line":290},2,[269,292,293],{"class":275},"game",[269,295,280],{"class":279},[269,297,298],{"class":283},"gta5",[269,300,287],{"class":279},[269,302,304],{"class":271,"line":303},3,[269,305,307],{"emptyLinePlaceholder":306},true,"\n",[269,309,311,314,316,319],{"class":271,"line":310},4,[269,312,313],{"class":275},"dependency",[269,315,280],{"class":279},[269,317,318],{"class":283},"sky_jobs_base",[269,320,287],{"class":279},[269,322,324,327,329,332],{"class":271,"line":323},5,[269,325,326],{"class":275},"server_script",[269,328,280],{"class":279},[269,330,331],{"class":283},"server.lua",[269,333,287],{"class":279},[269,335,337,340,342,345],{"class":271,"line":336},6,[269,338,339],{"class":275},"client_script",[269,341,280],{"class":279},[269,343,344],{"class":283},"client.lua",[269,346,287],{"class":279},[10,348,349,350,353,354,43,356,359,360,363,364,367,368,371],{},"Start your integration after ",[32,351,352],{},"sky_base",", ",[32,355,318],{},[32,357,358],{},"sky_jobcreator",". Use a real technical job name from your server, such as ",[32,361,362],{},"sunrise_cafe",", rather than the display label. ",[32,365,366],{},"playerId"," is an online player's numeric ",[14,369,370],{},"server ID","; an identifier is a persistent character ID. They are different inputs.",[10,373,374,375,378,379,382],{},"Calls that contact the server, database or a provider can yield. Call them from a normal script thread or an existing handler that allows yielding. Check the return values shown on that export's page: some return ",[32,376,377],{},"success, reason",", some return ",[32,380,381],{},"{ success, data, error }",", and menu openers may return nothing.",[49,384,386],{"id":385},"availability","Availability",[10,388,389],{},"The job's enabled features, saved configuration, duty rules, rank permissions and providers still apply. Calling an export does not turn a feature on or grant permission. Training, emergency dispatch and the specialist vehicle registry require their owning job resources; they are not generic Creator features.",[10,391,392],{},"The topic links in this sidebar lead directly to the complete shared references. There is one reference per feature, so the parameters and examples stay the same wherever you open them.",[394,395,396],"style",{},"html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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);}",{"title":265,"searchDepth":272,"depth":290,"links":398},[399,400,401,402],{"id":51,"depth":290,"text":52},{"id":239,"depth":290,"text":240},{"id":253,"depth":290,"text":254},{"id":385,"depth":290,"text":386},"Find client exports, server exports and events for jobs, duty, employees, billing, storage and external menus.","md",null,{},{"icon":408},"i-lucide-waypoints","/docs/jobs/jobcreator/api/overview",{"title":5,"description":403},{"loc":409},"1.docs/0.jobs/6.jobcreator/5.api/1.overview","gIx5IBa9vtXjxHYKpzY6c4NKTMC2vKdQBG89jbBGHrQ",[415,420],{"title":416,"path":417,"stem":418,"description":419,"children":-1},"Migration","/docs/jobs/jobcreator/migration","1.docs/0.jobs/6.jobcreator/4.migration","Detect a supported Jaksam source, run the supported core import and review the migration log.",{"title":20,"path":421,"stem":422,"description":423,"icon":424,"children":-1},"/docs/jobs/jobcreator/api/server-exports","1.docs/0.jobs/6.jobcreator/5.api/2.server-exports","Read job data, manage employees and connect company payments from another server script.","i-lucide-server",[],1792936678002]