GKSHOP
GKSPHONE V2Configuration

Services App

Add jobs to the Services app and set who in them can do what.

The Services app is where players call and report to jobs, and where those jobs handle dispatch, billing and staff. Jobs are defined in Config.JOBServices in gksphone/config/config.lua.

Three ship configured: police, ambulance and mechanic.

Add a job

The key must match the job name in your framework. Copy an existing block and adjust:

["taxi"] = {
    label    = "Taxi Station",
    location = vector4(895.15, -179.36, 74.70, 240.00),
    jobNumber = "555",

    -- permissions, by minimum job grade
    messageView     = 1,
    messageSend     = 1,
    reportView      = 1,
    reportDeleteAll = 3,
    openClosingAuth = 3,
    jobBalanceView  = 2,
    billing = { view = 1, create = 2, delete = 3, pay = 1 },
    employe = { view = 2, changeRank = 3, fire = 3, add = 3 },

    -- behaviour
    isOpen              = true,
    canCall             = true,
    autoCallByDuty      = true,
    Duty                = true,
    playerNotifications = false,
    showInList          = true,
    alternativejobs     = {},
},

Then drop a logo into gksphone/html/img/jobs named logo-taxi.png — the filename must match the job key. Restart gksphone.

Permissions

Every numeric field is a minimum job grade. A player passes if their grade is that number or higher, so messageSend = 1 lets grade 1 and up send, and 4 usually means boss only.

A permission you leave out is denied to everyone, not granted. Set it to 0 if you want the whole job to have it.

FieldGrants
messageViewRead the job's messages
messageSendSend messages as the job
reportViewSee incoming reports
reportDeleteAllClear all reports
openClosingAuthOpen and close dispatch
jobBalanceViewView the job account and withdraw from it
billing.view / .create / .delete / .payHandle invoices
employe.view / .changeRank / .fire / .addManage staff

Other fields

FieldWhat it does
labelName shown in the app
locationvector4(x, y, z, heading) of the job centre
jobNumberDial number, e.g. "911". Leave "" for none
isOpenWhether dispatch is open when the server boots
canCallShow the call button
autoCallByDutyOpen the call option automatically when a player goes on duty
DutyShow the duty toggle under Actions
playerNotificationsNotify the reporting player when their report is reviewed
showInListList the job in the app
alternativejobsOther jobs that share this entry

alternativejobs

The key is the job name and the value switches it on:

alternativejobs = { ["sheriff"] = true },

Sheriffs then get the police entry — same dispatch, same permissions, same grades. Set a value to false to turn one off without deleting the line.

On this page