Browse docs
Client exports
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:
exports["sky_jobs_base"]:OpenBilling()
Pass a positive numeric invoice ID to open a specific invoice:
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
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
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:
| Export | Returns |
|---|---|
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:
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:
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
| Export | Use |
|---|---|
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
| Feature | Complete reference |
|---|---|
| Custom radial actions and external menus | Radial menu |
| Player interactions | Player interactions |
| Storage access | Storage |
| External garage and vehicle access | External garage integration |
| Documents and service cards | Documents |
| Personal notification position | Notification settings |