Browse docs
Administration API
Creator's administration UI uses server-side Sky_Jobs.JobConfigurator methods from sky_jobs_base. They are library methods, not separately named sky_jobcreator exports. Use your existing Jobs Base dependency/import loader and wait for its initialization before calling them.
Authorized read APIs
The following methods require an online, loaded administrator's actual server source and sky_jobs_base.jobconfig permission. They recheck that actor around yielding work. Passing 0, a character identifier or an actor table does not create console/service-account authority.
GetFrameworkCatalog(source)
Server · Sky_Jobs.JobConfigurator. Reads the framework jobs/gangs, ranks, management integrations and available editor capabilities. Takes only the acting player's numeric server source.
-- Sky_Jobs comes from your existing ready Jobs Base dependency loader.
local result = Sky_Jobs.JobConfigurator.GetFrameworkCatalog(player_source)
if not result.success then
print("Catalog lookup failed:", result.error)
return
end
for _, job in ipairs(result.data.jobs) do
print(job.name, job.label)
end
Success returns { success = true, data = { framework, salarySettings, capabilities, jobs, gangs } }:
| Field | Meaning |
|---|---|
framework | Active framework family, such as esx, qb or qbox. |
salarySettings | Current shared salary settings. |
capabilities | Supported editor fields: jobs, gangs, jobType, jobDuty, whitelisted, gradeName, gradeBoss and gradeBankAuth. |
jobs, gangs | Lists of projected framework entries. ESX returns an empty gangs list. |
An entry includes id, kind, name, label, grades, integrations, editor capability/error fields, nativePresent and an available memberCount. Its optional provisioning reports managed activation state. Grades include their actual numeric grade, name, label, salary, salarySource and available leadership flags. Integrations identify the owning group, resource and available configKey.
A forbidden result has no usable catalog. Return only the fields needed by your authorized consumer.
Capability and activation fields are observations, not permission grants or a guarantee that a later mutation will succeed. Read the current catalog instead of assuming that every native job is Creator-managed or ready for editing. Preserve each grade's numeric grade value.
GetFrameworkOverview(source, request)
Server · Sky_Jobs.JobConfigurator. Reads administrative invoice aggregates, online job counts and optional selected-job rank counts.
| Parameter | Meaning |
|---|---|
source | Acting loaded administrator's numeric player server source. |
request.days | Required number: 0 for all dates, 7 or 30 for the recent issue-date range. |
request.name | Optional technical job key, maximum 50 characters; lowercase letter first, then lowercase letters, digits or underscores. Filters invoices and includes that job's member counts per grade. |
local result = Sky_Jobs.JobConfigurator.GetFrameworkOverview(player_source, {
days = 30,
name = "redwood_timber",
})
if not result.success then
print("Overview lookup failed:", result.error)
return
end
for _, invoice_summary in ipairs(result.data.invoices) do
print(invoice_summary.job, invoice_summary.currency, invoice_summary.outstanding)
end
The example job key is fictional; use an existing local job. Success returns { success = true, data = { observedAt, invoices, online, grades? } }:
observedAt: Unix observation timestamp.invoices: society-issued Sky invoices, grouped by job and currency. Each row hasjob,currency,issued,billed,paid,outstandingandcancelled.online: online-character counts keyed by current primary job, folding registered off-duty aliases into their on-duty job. This is not a count of all secondary memberships.grades: member counts keyed by stringified grade number, present when a job was selected.
The date filter uses invoice issue date, not payment date. paid includes the amount currently paid in installments; outstanding counts remaining amounts on open/processing invoices. These are not society balances or a complete income ledger. Counts and SQL aggregates are sequential observations, not one atomic snapshot.
Failures include forbidden, invalid_payload and load_failed; selected-job member lookup failures can also be returned. Do not render a failed lookup as an empty, successful statistics result.
Administrator mutations and internal transport
The UI's sky_jobcreator:* callbacks cover catalog/overview, definitions and grades, members, salary, provisioning, lifecycle/rename, settings, Hub and migration. The jobConfigurator:* NUI handlers forward allowed profile operations to Jobs Base. They are internal transports for the supplied administrator workflow; they are not a public REST API or a stable substitute for the documented exports.
| Area | Authority and recovery |
|---|---|
| Definitions, grades and provisioning | Jobs Base's configurator validates the administrator, framework capability, existing ownership, grade/member mappings and provider state. Sky Base owns durable managed definitions. |
| Settings and locations | Jobs Base owns the saved configurator profile; Creator forwards only profiles from the current catalog and its permitted shared-settings scope. |
| Community Hub | Creator checks both Creator command access and sky_jobs_base.jobconfig, retains the actor identity and sends requests through the server-owned Community Hub bridge. |
| Migration | The server validates the administrator and source inventory; the run ledger owns progress and recovery. Use the supplied migration screen to inspect or resume a run. |
Opening the UI is not an authorization step: /jobcreator checks Creator command access, while each owner operation enforces its own access. The client event sky_jobcreator:open is an internal server-to-client instruction; it is not a client export or a shortcut for granting editor access.
For a mutation, a timeout or disconnected client can mean the result is unknown. Creator transports distinguish outcomes such as hub_result_unknown, member_result_unknown and lifecycle_result_unknown. Reopen the existing record/run and inspect its current state before retrying. Do not resubmit creation, payments, Hub publication or migration because a reply was lost.
Use Community Hub, Farming and Migration for the supported user workflows. Keep Hub credentials, private migration backups, account observations and audit identities server-side.