Tablet Beta
Script integration
Server exports
⚠️
You are viewing the documentation for the LB Tablet Beta.

GetEquippedTablet

---@param identifier number | string
---@return string | nil tabletId
exports["lb-tablet"]:GetEquippedTablet(identifier)

GetSourceFromTablet

---@param tabletId string
---@return number | nil source
exports["lb-tablet"]:GetSourceFromTablet(tabletId)

GetSettings

---@param tabletId string
---@return table?
exports["lb-tablet"]:GetSettings(tabletId)

SendNotification

Types
---@class NewNotification
---@field app string
---@field id? number | string
---@field tabletId? string
---@field source? number
---@field title string
---@field content? string
---@field thumbnail? string
---@field avatar? string
---@field showAvatar? boolean
---@field customData? CustomNotificationData
---@field dontSaveToDatabase? boolean
 
---@class CustomNotificationData
---@field buttons? NotificationButton[]
 
---@class NotificationButton
---@field title string
---@field event? string
---@field server? boolean
---@field data any
---@param data NewNotification
---@return number? id
exports["lb-tablet"]:SendNotification(data)

NotifyEveryone

Types
---@class NewNotification
---@field app string
---@field id? number | string
---@field tabletId? string
---@field source? number
---@field title string
---@field content? string
---@field thumbnail? string
---@field avatar? string
---@field showAvatar? boolean
---@field customData? CustomNotificationData
---@field dontSaveToDatabase? boolean
 
---@class CustomNotificationData
---@field buttons? NotificationButton[]
 
---@class NotificationButton
---@field title string
---@field event? string
---@field server? boolean
---@field data any
---@param data NewNotification
---@param saveToDatabase boolean?
exports["lb-tablet"]:NotifyEveryone(data, saveToDatabase)

NotifyTablets

Types
---@class NewNotification
---@field app string
---@field id? number | string
---@field tabletId? string
---@field source? number
---@field title string
---@field content? string
---@field thumbnail? string
---@field avatar? string
---@field showAvatar? boolean
---@field customData? CustomNotificationData
---@field dontSaveToDatabase? boolean
 
---@class CustomNotificationData
---@field buttons? NotificationButton[]
 
---@class NotificationButton
---@field title string
---@field event? string
---@field server? boolean
---@field data any
---@param tabletIds string[]
---@param data NewNotification
---@param excludeTablets string[]?
exports["lb-tablet"]:NotifyTablets(tabletIds, data, excludeTablets)

GetMDTTags

Types
---@class MDTTag
---@field id number
---@field title string
---@field color string
---@field type MDTTagType
 
---@alias MDTTagType "employee" | "profile" | "weapon" | "vehicle" | "property" | string
---@param mdt string
---@return { [number]: MDTTag }
exports["lb-tablet"]:GetMDTTags(mdt)

GetMDTTag

Types
---@class MDTTag
---@field id number
---@field title string
---@field color string
---@field type MDTTagType
 
---@alias MDTTagType "employee" | "profile" | "weapon" | "vehicle" | "property" | string
---@param mdt string
---@param tagId number
---@return MDTTag?
exports["lb-tablet"]:GetMDTTag(mdt, tagId)

CreateMDTTag

Types
---@alias MDTTagType "employee" | "profile" | "weapon" | "vehicle" | "property" | string
 
---@class MDTTag
---@field id number
---@field title string
---@field color string
---@field type MDTTagType
---@param mdt string
---@param title string
---@param color string # the color name, or hex
---@param tagType MDTTagType
---@return MDTTag?
exports["lb-tablet"]:CreateMDTTag(mdt, title, color, tagType)

DeleteMDTTag

---@param mdt string
---@param id number
---@return boolean success
exports["lb-tablet"]:DeleteMDTTag(mdt, id)

AddDispatch

Types
---@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 options NewDispatchOptions
---@return number | number[] | false
exports["lb-tablet"]:AddDispatch(options)

UpdateDispatch

Types
---@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 id number
---@param options NewDispatchOptions
---@return boolean
exports["lb-tablet"]:UpdateDispatch(id, options)

GetDispatch

Types
---@class DispatchNotification
---@field id number
---@field mdt string
---@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 image? string
---@field fields? { icon: string, label: string, value?: string }[]
---@field timestamp? number
---@field endTime? number
---@field notificationTime? number
---@field sound? 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 id number
---@return DispatchNotification?
exports["lb-tablet"]:GetDispatch(id)

RemoveDispatch

---@param dispatchId number
---@return boolean
exports["lb-tablet"]:RemoveDispatch(dispatchId)

GetMDTAccount

Types
---@class MDTAccount
---@field id string
---@field name string
---@field avatar? string
---@field callsign? string
---@field rank string
---@param mdt string
---@param target number | string # Player source or identifier
---@return MDTAccount?
exports["lb-tablet"]:GetMDTAccount(mdt, target)

GetMDTCallsign

---@param mdt string
---@param target number | string # Player source or identifier
---@return string? callsign
exports["lb-tablet"]:GetMDTCallsign(mdt, target)

SetMDTCallsign

---@param mdt string
---@param target number | string # Player source or identifier
---@param callsign string
---@param ignoreCheck boolean? # If true, will skip checks for callsign validity and uniqueness. Used for admin overrides.
---@return string | false callsign
---@return "invalid_target" | "invalid_callsign" | "callsign_taken" | nil reason
exports["lb-tablet"]:SetMDTCallsign(mdt, target, callsign, ignoreCheck)

GetMDTAvatar

---@param mdt string
---@param target number | string # Player source or identifier
---@return string? avatar
exports["lb-tablet"]:GetMDTAvatar(mdt, target)

LogMDTJailed

---@param mdt string
---@param prisoner string
---@param jailedBy? string
---@param reason string
---@param jailTime number The jail time in seconds
---@param relatedReport? number
---@return false | number
exports["lb-tablet"]:LogMDTJailed(mdt, prisoner, jailedBy?, reason, jailTime, relatedReport?)

GetJailed

Types
---@class JailedData
---@field id number
---@field identifier string
---@field avatar? string
---@field name? string
---@field description string
---@field jailedBy string
---@field originalTime number
---@field remainingTime number
---@field jailedAt number
---@field releasedAt number
---@field report? { id: number, title: string }
---@param identifier string
---@overload fun(id: number): JailedData | false
---@return JailedData | false
exports["lb-tablet"]:GetJailed(identifier)

UpdateJailSentence

---@param identifier string
---@param jailTime number The jail time in seconds
---@return boolean
exports["lb-tablet"]:UpdateJailSentence(identifier, jailTime)

UpdateMDTProfile

Types
---@class MDTUpdateProfile
---@field id string
---@field avatar? string
---@field model? string
---@field owner? string
---@field addedTags? number[]
---@field removedTags? number[]
---@field fields? { [string]: any }
---@field type MDTProfileType
 
---@alias MDTProfileType "player" | "vehicle" | "property" | "weapon"
---@param mdt string
---@param data MDTUpdateProfile
---@param permissions? { [string]: { [string]: boolean } }
---@return number | false # Profile ID on success, false on failure
exports["lb-tablet"]:UpdateMDTProfile(mdt, data, permissions?)

GetMDTProperty

---@param mdt string
---@param propertyId string
---@return table | false
exports["lb-tablet"]:GetMDTProperty(mdt, propertyId)

GetMDTReport

---@param mdt string
---@param tabId string
---@param reportId number
---@return table | false
exports["lb-tablet"]:GetMDTReport(mdt, tabId, reportId)

DeleteMDTReport

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

CreateMDTReport

Types
---@class MDTNewReportData
---@field id? number
---@field title string
---@field fields? { [string]: unknown }
---@field addedTags? number[]
---@field removedTags? number[]
---@param mdt string
---@param tabId string
---@param creator string
---@param data MDTNewReportData
---@return number | false reportId
exports["lb-tablet"]:CreateMDTReport(mdt, tabId, creator, data)

UpdateMDTReport

Types
---@class MDTNewReportData
---@field id? number
---@field title string
---@field fields? { [string]: unknown }
---@field addedTags? number[]
---@field removedTags? number[]
---@param mdt string
---@param tabId string
---@param creator string
---@param data MDTNewReportData
---@return number | false reportId
exports["lb-tablet"]:UpdateMDTReport(mdt, tabId, creator, data)

GetUnits

Types
---@class Unit
---@field name string # The name of the unit (unique)
---@field status string
---@param mdt string
---@return { [string] : Unit }
exports["lb-tablet"]:GetUnits(mdt)

GetPlayerUnit

---@param source number
---@return string? unit
exports["lb-tablet"]:GetPlayerUnit(source)

SetPlayerUnit

---@param source number
---@param mdt string
---@param name string
---@return boolean
exports["lb-tablet"]:SetPlayerUnit(source, mdt, name)

ResetPlayerUnit

---@param source number
exports["lb-tablet"]:ResetPlayerUnit(source)

CreateUnit

---@param mdt string
---@param name string
---@param status? string
---@return boolean
exports["lb-tablet"]:CreateUnit(mdt, name, status?)

RemoveUnit

---@param mdt string
---@param name string
---@return boolean
exports["lb-tablet"]:RemoveUnit(mdt, name)

SetUnitStatus

---@param mdt string
---@param name string
---@param status string
---@return boolean
exports["lb-tablet"]:SetUnitStatus(mdt, name, status)

RenameUnit

---@param mdt string
---@param oldName string
---@param newName string
---@return boolean
exports["lb-tablet"]:RenameUnit(mdt, oldName, newName)

GetPlayerUnits

---@return { [number]: { unit: string, mdt: string } } # Key: source
exports["lb-tablet"]:GetPlayerUnits()

GetMDTUser

---@param mdt string
---@param target number | string # Player source or identifier
---@return table | false
exports["lb-tablet"]:GetMDTUser(mdt, target)

GetMDTVehicle

---@param mdt string
---@param plate string
---@return table | false
exports["lb-tablet"]:GetMDTVehicle(mdt, plate)

RegisterMDTWeapon

---@param mdt string
---@param serialNumber string
---@param data? { owner?: string, weaponName?: string }
---@param registrant? string
---@return number? id
exports["lb-tablet"]:RegisterMDTWeapon(mdt, serialNumber, data?, registrant?)

GetMDTWeapon

---@param mdt string
---@param idOrSerialNumber number | string
---@return table | false
exports["lb-tablet"]:GetMDTWeapon(mdt, idOrSerialNumber)

TriggerClientCallback

---@param event string
---@param source number
---@param cb fun(...)
exports["lb-tablet"]:TriggerClientCallback(event, source, cb)

AwaitClientCallback

---@param event string
---@param source number
---@return ...
exports["lb-tablet"]:AwaitClientCallback(event, source)

RegisterCallback

---@param event string
---@param handler fun(source: number, ...) : any
---@param antiSpam? boolean
---@param defaultReturn any
exports["lb-tablet"]:RegisterCallback(event, handler, antiSpam?, defaultReturn)

BaseCallback

---@param event string
---@param handler fun(source: number, tabletId: string, ...) : any
---@param defaultReturn any
---@param antiSpam? boolean
exports["lb-tablet"]:BaseCallback(event, handler, defaultReturn, antiSpam?)