Script integration
Shared exports

Shared Exports

Checks

AddCheck

Types
---@alias CheckEvent "triangulatePhone" | "unlockPhone" | "createWiretap" | "listenToWiretap" | "openTablet" | "createDispatch" | "playNativeSound"
 
---@class NewDispatchOptions
---@field priority 'high' | 'medium' | 'low'
---@field code string
---@field title string
---@field description string
---@field location { label: string, coords: { x: number, y: number } | vector2 }
---@field time number
---@field notificationTime? number
---@field image? string
---@field job? string | string[]
---@field mdt? string
---@field mdts? string[]
---@field sound? string
---@field fields? { icon: string, label: string, value?: string }[]
---@field blip? DispatchBlip
---@field responders? string[]
 
---@class DispatchBlip
---@field type? "default" | "radius"
---@field handle? number
---@field sprite? number
---@field color? number
---@field size? number
---@field shortRange? boolean
---@field label? string
---@field radius? number
---@field randomCoords? boolean
---@param event CheckEvent
---@param handler fun(...: any): boolean
---@overload fun(event: "openTablet", handler: fun(): boolean): number
---@overload fun(event: "triangulatePhone", handler: fun(source: number, phoneNumber: string): boolean): number
---@overload fun(event: "unlockPhone", handler: fun(source: number, phoneNumber: string): boolean): number
---@overload fun(event: "createWiretap", handler: fun(source: number, phoneNumber: string): boolean): number
---@overload fun(event: "listenToWiretap", handler: fun(source: number, phoneNumber: string): boolean): number
---@overload fun(event: "createDispatch", handler: fun(dispatchData: NewDispatchOptions): boolean): number
---@overload fun(event: "playNativeSound", handler: fun(soundType: string, soundName?: string): boolean): number
---@return number id
exports["lb-tablet"]:AddCheck(event, handler)

RemoveCheck

---@param id number
---@return boolean success
exports["lb-tablet"]:RemoveCheck(id)

Configuration

GetConfig

---@param key? string | string[]
exports["lb-tablet"]:GetConfig(key?)

GetMDTs

Types
---@class MDT
---@field copy? string
---@field disabledTabs? string[]
---@field name string
---@field department string
---@field deviceName string
---@field appicon string
---@field icon string
---@field colorTheme string
---@field options MDTOptions
---@field callsign? MDTCallsignConfig
---@field defaultPermissions { [string]: { [MDTPermissionKey]: MDTPermission? } }
---@field tabs MDTTab[]
---@field jobsArray string[]
 
---@class MDTOptions
---@field dutyBlips boolean
 
---@class MDTCallsignConfig
---@field enabled boolean
---@field format? string
---@field requireTemplate? boolean
---@field allowChange? boolean
---@field autoGenerate? boolean
 
---@alias MDTPermissionKey "view" | "create" | "edit" | "delete" | "stash" | "fine" | "pin" | "kick" | "invite" | "private" | "triangulate" | "unlock" | "callHistory" | "createWiretap" | "listenWiretap" | "messageWiretap" | "removeWiretap"
 
---@alias MDTPermission boolean | number | number[]
 
---@alias MDTTab MDTBaseTab | MDTHomeTab | MDTUnitsTab | MDTUsersTab | MDTReportsTab | MDTPhoneTab
 
---@class MDTBaseTab
---@field id? string
---@field permissions? { [string]: { [MDTPermissionKey]: MDTPermission? } }
---@field type MDTTabType
---@field icon string
---@field label string
 
---@alias MDTTabType "home" | "bulletin" | "dispatch" | "users" | "vehicles" | "reports" | "phone" | "properties" | "weapons" | "logs" | "chat" | "catalog"
 
---@class MDTHomeTab : MDTBaseTab
---@field type "home"
---@field content string[]
 
---@class MDTUnitsTab
---@field type "units"
---@field default { status: string, units: { name: string, status: string }[] }
---@field statuses { [string]: { label: string, color: string } }
 
---@class MDTUsersTab : MDTBaseTab
---@field type "users"
---@field fields (MDTBaseUsersField | MDTUsersEntityField)[]
 
---@class MDTBaseUsersField
---@field id string
---@field type string
---@field label string
---@field editable? boolean
 
---@class MDTUsersEntityField : MDTBaseUsersField
---@field type "entity"
---@field entityType "profile"
---@field entityFields MDTUsersEntityFieldField[]
 
---@class MDTUsersEntityFieldField
---@field id string
---@field label string
---@field value? string
---@field copyable? string
---@field type? string
---@field check? MDTProfileEntityFieldsCheck
 
---@class MDTProfileEntityFieldsCheck
---@field tabType "reports"
---@field id string
---@field type "field"
---@field field? string
---@field value string
---@field involvement? string
 
---@class MDTReportsTab : MDTBaseTab
---@field type "reports"
---@field name? string
---@field shared? boolean
---@field mdt? string
---@field fields (MDTReportInvolvedField | MDTReportPhotoField | MDTReportLinkedField  | MDTReportTextField  | MDTDropdownField | MDTReportTargetField)[]
 
---@class MDTReportInvolvedField : MDTBaseReportField
---@field type "person" | "vehicle" | "weapon" | "employee" | "property"
---@field multiple boolean
---@field catalog? boolean
 
---@class MDTBaseReportField
---@field id string
---@field label string
 
---@class MDTReportPhotoField : MDTBaseReportField
---@field type "photo"
---@field multiple boolean
 
---@class MDTReportLinkedField : MDTBaseReportField
---@field type "linked"
---@field linkType "reports"
---@field linkId? string
---@field multiple boolean
 
---@class MDTReportTextField : MDTBaseReportField
---@field type "text"
---@field template? string
 
---@class MDTDropdownField : MDTBaseReportField
---@field type "dropdown"
---@field showInList? boolean
---@field options (string | { id: string, label: string, color?: string })[]
 
---@class MDTReportTargetField : MDTBaseReportField
---@field type "target"
---@field vehicle boolean
---@field person boolean
 
---@class MDTPhoneTab : MDTBaseTab
---@field type "phone"
---@field triangulation? MDTTriangulationOptions
---@field unlock? MDTUnlockOptions
---@field wiretap? MDTWiretapOptions
 
---@class MDTTriangulationOptions
---@field requireCall boolean
---@field cellTowerTime number
---@field successRate number
---@field rangeMultiplier number
 
---@class MDTUnlockOptions
---@field time? [number, number]
---@field chance? number
---@field attempts? number
 
---@class MDTWiretapOptions
---@field minCallDuration? number
---@return { [string]: MDT }
exports["lb-tablet"]:GetMDTs()

GetMDT

Types
---@class MDT
---@field copy? string
---@field disabledTabs? string[]
---@field name string
---@field department string
---@field deviceName string
---@field appicon string
---@field icon string
---@field colorTheme string
---@field options MDTOptions
---@field callsign? MDTCallsignConfig
---@field defaultPermissions { [string]: { [MDTPermissionKey]: MDTPermission? } }
---@field tabs MDTTab[]
---@field jobsArray string[]
 
---@class MDTOptions
---@field dutyBlips boolean
 
---@class MDTCallsignConfig
---@field enabled boolean
---@field format? string
---@field requireTemplate? boolean
---@field allowChange? boolean
---@field autoGenerate? boolean
 
---@alias MDTPermissionKey "view" | "create" | "edit" | "delete" | "stash" | "fine" | "pin" | "kick" | "invite" | "private" | "triangulate" | "unlock" | "callHistory" | "createWiretap" | "listenWiretap" | "messageWiretap" | "removeWiretap"
 
---@alias MDTPermission boolean | number | number[]
 
---@alias MDTTab MDTBaseTab | MDTHomeTab | MDTUnitsTab | MDTUsersTab | MDTReportsTab | MDTPhoneTab
 
---@class MDTBaseTab
---@field id? string
---@field permissions? { [string]: { [MDTPermissionKey]: MDTPermission? } }
---@field type MDTTabType
---@field icon string
---@field label string
 
---@alias MDTTabType "home" | "bulletin" | "dispatch" | "users" | "vehicles" | "reports" | "phone" | "properties" | "weapons" | "logs" | "chat" | "catalog"
 
---@class MDTHomeTab : MDTBaseTab
---@field type "home"
---@field content string[]
 
---@class MDTUnitsTab
---@field type "units"
---@field default { status: string, units: { name: string, status: string }[] }
---@field statuses { [string]: { label: string, color: string } }
 
---@class MDTUsersTab : MDTBaseTab
---@field type "users"
---@field fields (MDTBaseUsersField | MDTUsersEntityField)[]
 
---@class MDTBaseUsersField
---@field id string
---@field type string
---@field label string
---@field editable? boolean
 
---@class MDTUsersEntityField : MDTBaseUsersField
---@field type "entity"
---@field entityType "profile"
---@field entityFields MDTUsersEntityFieldField[]
 
---@class MDTUsersEntityFieldField
---@field id string
---@field label string
---@field value? string
---@field copyable? string
---@field type? string
---@field check? MDTProfileEntityFieldsCheck
 
---@class MDTProfileEntityFieldsCheck
---@field tabType "reports"
---@field id string
---@field type "field"
---@field field? string
---@field value string
---@field involvement? string
 
---@class MDTReportsTab : MDTBaseTab
---@field type "reports"
---@field name? string
---@field shared? boolean
---@field mdt? string
---@field fields (MDTReportInvolvedField | MDTReportPhotoField | MDTReportLinkedField  | MDTReportTextField  | MDTDropdownField | MDTReportTargetField)[]
 
---@class MDTReportInvolvedField : MDTBaseReportField
---@field type "person" | "vehicle" | "weapon" | "employee" | "property"
---@field multiple boolean
---@field catalog? boolean
 
---@class MDTBaseReportField
---@field id string
---@field label string
 
---@class MDTReportPhotoField : MDTBaseReportField
---@field type "photo"
---@field multiple boolean
 
---@class MDTReportLinkedField : MDTBaseReportField
---@field type "linked"
---@field linkType "reports"
---@field linkId? string
---@field multiple boolean
 
---@class MDTReportTextField : MDTBaseReportField
---@field type "text"
---@field template? string
 
---@class MDTDropdownField : MDTBaseReportField
---@field type "dropdown"
---@field showInList? boolean
---@field options (string | { id: string, label: string, color?: string })[]
 
---@class MDTReportTargetField : MDTBaseReportField
---@field type "target"
---@field vehicle boolean
---@field person boolean
 
---@class MDTPhoneTab : MDTBaseTab
---@field type "phone"
---@field triangulation? MDTTriangulationOptions
---@field unlock? MDTUnlockOptions
---@field wiretap? MDTWiretapOptions
 
---@class MDTTriangulationOptions
---@field requireCall boolean
---@field cellTowerTime number
---@field successRate number
---@field rangeMultiplier number
 
---@class MDTUnlockOptions
---@field time? [number, number]
---@field chance? number
---@field attempts? number
 
---@class MDTWiretapOptions
---@field minCallDuration? number
---@param mdtName string
---@return MDT?
exports["lb-tablet"]:GetMDT(mdtName)

MDT

IsEmployeeOfMDT

---@param mdtName string
---@param source? number # The source, if checking on the server
---@return boolean
exports["lb-tablet"]:IsEmployeeOfMDT(mdtName, source?)

GetMDTPermissions

---@param mdtName string
---@param source? number
---@return { [string]: { [string]: boolean } } | false
exports["lb-tablet"]:GetMDTPermissions(mdtName, source?)