Browse docs

Client exports

Open job menus and connect your own client interactions or radial menu.

All calls on this page run in a client script and use exports["sky_jobs_base"]. They act on the current player.

Open billing

Open the player's personal billing interface from your own interaction:

client.lua
exports["sky_jobs_base"]:OpenBilling()

Pass a positive numeric invoice ID to open a specific invoice:

client.lua
exports["sky_jobs_base"]:OpenBilling(invoiceId)

Billing must be enabled. Invoice access is checked for the current player. This export opens the interface; it has no success return value. See Billing for server-side invoice creation and payment handling.

Open Business and announcements

client.lua
exports["sky_jobs_base"]:OpenBusinessPanel()

This opens the authorised Business app in the tablet. Call it from a script thread or callback that allows yielding. The job's Business/Announcements settings, duty and employee permissions still apply. The export has no return-value contract.

See Business Panel for details.

Open the radial menu

client.lua
exports["sky_jobs_base"]:openRadialMenu()

This opens the shared job radial menu with the current player's available actions. To add actions from your own resource, use the Radial menu integration, which also documents action queries, availability checks and triggering an action from another menu.

External menus

Use these exports to show the existing job actions in your own radial or target menu:

ExportReturns
getRadialActions()Action records including id, label, icon and disabled
getRadialAction(actionId)One action record, or nil
isRadialMenuActionAvailable(actionId)boolean
triggerRadialMenuAction(actionId, context?)success, error?; errors contain key and fallback
registerRadialProvider(options)Register your resource's actions; see the provider contract

For example, open the tablet from your own menu while keeping the shared availability checks:

client.lua · inside your menu's selection callback
local success, error = exports["sky_jobs_base"]:triggerRadialMenuAction("tablet")
if not success and error then
    print(error.fallback)
end

Use the IDs returned by getRadialActions() for actions supplied by installed job resources. See Radial menu for provider registration, target context and complete examples.

Player actions

The Player interactions reference documents cuffing, zipties, leg restraints, escorting, vehicle actions, head bags and searching. It includes availability checks, target arguments and failure reasons.

For example, check restraint state without applying restraints:

client.lua
local cuffed = exports["sky_jobs_base"]:isPlayerCuffed()

Omit the server ID to check yourself; pass a target server ID to check that player. Executing an action still requires the job's server-authoritative interaction access, duty and configured items.

Identity, licences and service cards

ExportUse
ShowOwnDocument(documentType)View your own document
ShowPlayerDocument(documentType, targetServerId)Inspect an authorised target's document
PresentOwnDocument(documentType, recipientServerId)Offer your document to another player

documentType is identity, licenses or service. These calls return true when the request is accepted, or false, reason. Distance, permissions, restraint state and the selected provider still apply. See Documents.

More integrations

FeatureComplete reference
Custom radial actions and external menusRadial menu
Player interactionsPlayer interactions
Storage accessStorage
External garage and vehicle accessExternal garage integration
Documents and service cardsDocuments
Personal notification positionNotification settings