Skip to Content

Server Exports

Misc

GetConfig

---@return table local config = exports["lb-phone"]:GetConfig()

GetCellTowers

---@return vector3[] local cellTowers = exports["lb-phone"]:GetCellTowers()

FormatNumber

---@param phoneNumber string ---@return string local formattedNumber = exports["lb-phone"]:FormatNumber(phoneNumber)

AirShare

---@class ImageShareData ---@field isVideo boolean ---@field src string # link to the image/video ---@field timestamp? number # timestamp in ms, defaults to current time ---@class ContactShareData ---@field number string ---@field firstname string ---@field lastname? string ---@field email? string ---@field address? string ---@field avatar? string ---@class LocationShareData ---@field name string ---@field location vector2 # [y, x] ---@class NoteShareData ---@field title string ---@field content string ---@class VoicememoShareData ---@field title string ---@field src string # link to the audio file ---@field duration string # audio file duration in seconds ---@param sender number ---@param target number ---@param shareType "image" | "contact" | "location" | "note" | "voicememo" ---@param shareData ImageShareData | ContactShareData | LocationShareData | NoteShareData | VoicememoShareData exports["lb-phone"]:AirShare(sender, target, shareType, shareData)

ContainsBlacklistedWord

Checks if a string contains a blacklisted word defined in the config.

---@param source number ---@param text string ---@return boolean local containsBlacklistedWord = exports["lb-phone"]:ContainsBlacklistedWord(source, text)

AddCheck

Check params

  • startInstaPicLive: parameters username (string)
  • joinInstaPicLive: parameters username (string), inviter (string)
  • postInstaPicStory: parameters username (string)
  • buyCrypto: parameters coin (string), amount (number)
  • sellCrypto: parameters coin (string), amount (number)
  • transferCrypto: parameters transferToNumber (string), coin (string), amount (number)
  • createDarkChatChannel: parameters username (string), channel (string)
  • joinDarkChatChannel: parameters username (string), channel (string)
  • sendDarkchatMessage: parameters username (string), channel (string), message (string)
  • postInstaPic: parameters username (string), media (string[]), caption? (string), location? (string)
  • postBirdy: parameters username (string), content? (string), attachments? (string[])
  • postTrendy: parameters username (string), video (string), caption (string)
---@alias CheckEvent "createDarkChatChannel" | "joinDarkChatChannel" | "sendDarkchatMessage" | "startInstaPicLive" | "joinInstaPicLive" | "postInstaPicStory" | "buyCrypto" | "sellCrypto" | "transferCrypto" | "postInstaPic" | "postBirdy" | "postTrendy" ---@param event CheckEvent ---@param handler fun(source: number, ...: any): boolean ---@return number id local id = exports["lb-phone"]:AddCheck(event, handler)

RemoveCheck

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

Social media

GetSocialMediaUsername

---@param phoneNumber string ---@param app "instapic" | "birdy" | "trendy" | "darkchat" | "mail" ---@return string? local username = exports["lb-phone"]:GetSocialMediaUsername(phoneNumber, app)

ToggleVerified

---@param app "birdy" | "instapic" | "trendy" ---@param username string ---@param verified boolean ---@return boolean success exports["lb-phone"]:ToggleVerified(app, username, verified)

IsVerified

---@param app "birdy" | "instapic" | "trendy" ---@param username string ---@return boolean local isVerified = exports["lb-phone"]:IsVerified(app, username)

ChangePassword

---@param app "birdy" | "instapic" | "trendy" | "mail" | "darkchat" ---@param username string ---@param password string ---@param dontLogOut? boolean ---@return boolean success local success = exports["lb-phone"]:ChangePassword(app, username, password)

PostBirdy

---@param username string ---@param content? string ---@param attachments? string[] ---@param replyTo? string # the id of the post to reply to ---@param hashtags? string[] ---@param source? number ---@return boolean success ---@return string? id local success, id = exports["lb-phone"]:PostBirdy(username, content, attachments, replyTo, hashtags)

GetBirdyPost

Used to get a post on birdy.

---@param id string ---@return table? local post = exports["lb-phone"]:GetBirdyPost(id)

DeleteBirdyAccount

---@param username string ---@return boolean success local success = exports["lb-phone"]:DeleteBirdyAccount(username)

DeleteInstaPicAccount

---@param username string ---@return boolean success local success = exports["lb-phone"]:DeleteInstaPicAccount(username)

DeleteTrendyAccount

---@param username string ---@return boolean success local success = exports["lb-phone"]:DeleteTrendyAccount(username)

Handle phone & user

FactoryReset

---@param phoneNumber string exports["lb-phone"]:FactoryReset(phoneNumber)

GetEquippedPhoneNumber

---@param source number | string # the player source or identifier ---@return string? local phoneNumber = exports["lb-phone"]:GetEquippedPhoneNumber(source)

GetSourceFromNumber

---@param phoneNumber string ---@return number? local source = exports["lb-phone"]:GetSourceFromNumber(phoneNumber)

HasPhoneItem

Check if a player has a phone item with a specific phone number.

---@param source number ---@param phoneNumber string ---@return boolean local hasPhoneItem = exports["lb-phone"]:HasPhoneItem(source, phoneNumber)

GetSettings

---@param phoneNumber string ---@return table? local settings = exports["lb-phone"]:GetSettings(phoneNumber)

HasAirplaneMode

---@param phoneNumber string ---@return boolean local hasAirplaneMode = exports["lb-phone"]:HasAirplaneMode(phoneNumber)

SendNotification

---@class NotificationButton ---@field title string ---@field event? string # The event to trigger when the button is clicked ---@field server? boolean # Whether the event is server-side ---@field data any ---@class Notification ---@field app string ---@field title string ---@field content string ---@field thumbnail? string ---@field avatar? string ---@field showAvatar? boolean ---@field customData? { buttons: NotificationButton[] } ---@param target string | number # The player source or phone number ---@param data Notification ---@return number? exports["lb-phone"]:SendNotification(target, data) -- Example: exports["lb-phone"]:SendNotification("2059700389", { app = "Mail", title = "New Mail", content = "You have a new mail from the government.", customData = { buttons = { { title = "Read", event = "mail:openMail", data = { id = 1 } }, { title = "Delete", event = "mail:deleteMail", data = { id = 1 } } } } })

NotifyEveryone

---@class SimpleNotification ---@field app string # Identifier of the app that sent the notification ---@field title string # Title of the notification ---@field content? string # Content of the notification ---@field thumbnail? string # Thumbnail URL ---@field avatar? string # Avatar URL ---@field showAvatar? boolean # Whether to show an avatar placeholder if no avatar was sent ---@param notify "all" | "online" # all = everyone (saved to db), online = only online players (not saved) ---@param data SimpleNotification exports["lb-phone"]:NotifyEveryone("online", { app = "Settings", title = "Test", content = "This is a test notification", })

EmergencyNotification

---@param source number # The player source ---@param data { title: string, content: string, icon?: "warning" | "danger" } ---@return number? id exports["lb-phone"]:EmergencyNotification(source, { title = "Emergency Alert", content = "This is a test emergency alert", icon = "warning", })

AddContact

---@class ContactData ---@field number string ---@field firstname string ---@field lastname? string ---@field avatar? string ---@field email? string ---@field address? string ---@param phoneNumber string # the phone number to add the contact to ---@param data ContactData exports["lb-phone"]:AddContact(phoneNumber, { number = "01234567890", firstname = "John", lastname = "Doe", avatar = "https://example.com/avatar", email = "[email protected]", address = "Eclipse Towers, Penthouse Suite 1", })

Wallet app

AddTransaction

---@param phoneNumber string # the phone number to add the transaction to ---@param amount number # the amount of the transaction ---@param title string # the title of the transaction ---@param image? string # the image URL of the transaction exports["lb-phone"]:AddTransaction(phoneNumber, amount, title, image)

Security

GetPin

---@param phoneNumber string ---@return string local pin = exports["lb-phone"]:GetPin(phoneNumber)

ResetSecurity

---@param phoneNumber string exports["lb-phone"]:ResetSecurity(phoneNumber)

Mail

CreateMailAccount

---@param address string ---@param password string ---@param cb? function ---@return boolean success ---@return string? reason local result = exports["lb-phone"]:CreateMailAccount(address, password)

GetEmailAddress

---@param phoneNumber string ---@return string? local email = exports["lb-phone"]:GetEmailAddress(phoneNumber)

SendMail

---@class MailAction ---@field label string ---@field data { event: string, isServer: boolean, data: any } ---@class MailData ---@field to string # The email address to send the mail to ---@field sender? string # The sender of the email ---@field subject string # The subject of the email ---@field message string # The message of the email ---@field attachments? string[] # URLs of the attachments ---@field actions? MailAction[] # Actions (buttons) that the user can interact with ---@param data MailData ---@return boolean success ---@return string? id local success, id = exports["lb-phone"]:SendMail(data)

DeleteMail

---@param id string ---@return boolean local success = exports["lb-phone"]:DeleteMail(id)

Messages/SMS

SendMessage

---@param from string # The sender's phone number ---@param to string # The recipient's phone number ---@param message string # The message content ---@param attachments? string[] # URLs of the attachments ---@param cb? function ---@param channelId? number # The channel ID to send the message to ---@return { channelId: number, messageId: number }? local result = exports["lb-phone"]:SendMessage(from, to, message, attachments, cb, channelId)

SentMoney

Used to send a message to a player indicating that they have received money.

---@param from string # The sender's phone number ---@param to string # The recipient's phone number ---@param amount number # The amount of money sent exports["lb-phone"]:SentMoney(from, to, amount)

SendCoords

---@param from string # The sender's phone number ---@param to string # The recipient's phone number ---@param coords vector2 exports["lb-phone"]:SendCoords(from, to, coords)

DarkChat

SendDarkChatMessage

---@param username string ---@param channel string ---@param message string ---@param cb? fun(success: boolean) ---@return boolean local success = exports["lb-phone"]:SendDarkChatMessage(username, channel, message, cb)

SendDarkChatLocation

---@param username string ---@param channel string ---@param coords vector2 ---@param cb? fun(success: boolean) ---@return boolean local success = exports["lb-phone"]:SendDarkChatLocation(username, channel, coords, cb)

CreateDarkChatChannel

---@param channel string ---@param password? string ---@return boolean success ---@return string? reason local success, reason = exports["lb-phone"]:CreateDarkChatChannel(channel, password)

DeleteDarkChatChannel

---@param channel string ---@param deleteMessages boolean ---@return boolean success local success = exports["lb-phone"]:DeleteDarkChatChannel(channel, deleteMessages)

AddUserToDarkChatChannel

---@param username string ---@param channel string ---@return boolean success local success = exports["lb-phone"]:AddUserToDarkChatChannel(username, channel)

RemoveUserFromDarkChatChannel

---@param username string ---@param channel string ---@return boolean success local success = exports["lb-phone"]:RemoveUserFromDarkChatChannel(username, channel)

Battery

SaveBattery

---@param phoneNumber string exports["lb-phone"]:SaveBattery(phoneNumber)

SaveAllBatteries

exports["lb-phone"]:SaveAllBatteries()

IsPhoneDead

---@param phoneNumber string ---@return boolean local dead = exports["lb-phone"]:IsPhoneDead(phoneNumber)

Calls

CreateCall

Creates a call that is not shown on the phone UI, e.g. for payphones.

---@param caller { source: number, phoneNumber: string } ---@param callee? string # The phone number of the person being called ---@param options? { requirePhone?: boolean, hideNumber?: boolean, company?: string } ---@return number callId local callId = exports["lb-phone"]:CreateCall({ phoneNumber = "Abc 123", source = src }, number, { requirePhone = false, hideNumber = true })

GetCall

---@class CallData ---@field callId number ---@field started number # The os.time() when the call started ---@field answered boolean ---@field videoCall boolean ---@field hideCallerId boolean ---@field company? string ---@field caller { source: number, number: string, nearby: number[] } ---@field callee { source?: number, number?: string, nearby: number[] } ---@param callId number ---@return CallData? local call = exports["lb-phone"]:GetCall(callId)

EndCall

---@param source number ---@return boolean success exports["lb-phone"]:EndCall(source)

IsInCall

---@param source number ---@return boolean inCall ---@return number? callId ---@return Call? call local inCall, callId, call = exports["lb-phone"]:IsInCall(source)

Crypto

AddCrypto

---@param source number ---@param coin string ---@param amount number ---@return boolean local success = exports["lb-phone"]:AddCrypto(source, coin, amount)

RemoveCrypto

---@param source number ---@param coin string ---@param amount number ---@return boolean local success = exports["lb-phone"]:RemoveCrypto(source, coin, amount)

AddCustomCoin

---@param id string ---@param name string ---@param symbol string ---@param image string ---@param currentPrice number ---@param prices number[] ---@param change24h number ---@param permissions? { buy?: boolean, sell?: boolean, transfer?: boolean } exports["lb-phone"]:AddCustomCoin(id, name, symbol, image, currentPrice, prices, change24h, permissions)

GetCoin

---@class CoinData ---@field id string ---@field name string ---@field symbol string ---@field image string ---@field current_price number ---@field prices number[] ---@field change_24h number ---@param id string ---@return CoinData? local coinData = exports["lb-phone"]:GetCoin(id)

Callbacks

CallbackOptions

---@class CallbackOptions ---@field preventSpam? boolean # Prevents the same callback from being called until the previous one has finished ---@field rateLimit? number # How many times this callback can be called per player per minute ---@field defaultReturn? any # Default return value if the callback is not called or fails

RegisterCallback

---@param event string ---@param handler fun(source: number, ...) : any ---@param options? CallbackOptions exports["lb-phone"]:RegisterCallback(event, handler, options)

BaseCallback

---@param event string ---@param callback fun(source: number, phoneNumber: string, ...) : ... ---@param options? CallbackOptions exports["lb-phone"]:BaseCallback(event, callback, options)

AwaitClientCallback

---@param event string ---@param source number ---@param ... ---@return ... local result = exports["lb-phone"]:AwaitClientCallback(event, source, ...)

TriggerClientCallback

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