Media Functions

sendAirdrop

Send an airdrop with media content to a player.
data
object
required
Airdrop data object
local data = {
      picturelink = "YOUR PICTURE LINK",
      playerId = "SOURCE FROM PLAYER",
      accountId = "CLOUD Account ID",
      roadpad = false
}

exports['roadphone']:sendAirdrop(data)

Banking Functions

addBankTransaction

Add a bank transaction record.
sender
string|number
required
Phone number of sender (0 = System)
receiver
string|number
required
Phone number of receiver (0 = System)
reason
string
required
Transaction description
amount
number
required
Transaction amount
exports['roadphone']:addBankTransaction(sender, receiver, reason, amount)

Player Data Functions

getPlayerFromPhone

Get player data from phone number.
number
string
required
Phone number
player
object
Player object containing source and other data
local player = exports['roadphone']:getPlayerFromPhone(number)
print(player.source) -- prints player source

getNumberFromIdentifier

Get phone number from player identifier.
identifier
string
required
Player identifier/citizenid
number
string
Player’s phone number
local number = exports['roadphone']:getNumberFromIdentifier(identifier)
print(number) -- prints number

Cryptocurrency Functions

Available Coin IDs: Bitcoin, Monero, Ethereum, Cardano, Dogecoin, Litecoin, Tether, VeChain, BNB, Solana, XRP, Shibu Inu, Bitcoin Cash, Chainlink

removecrypto

Remove cryptocurrency from a player.
identifier
string
required
Player identifier
coinid
string
required
Cryptocurrency ID (see list above)
amount
number
required
Amount to remove (minimum 0.1)
exports['roadphone']:removecrypto(identifier, coinid, amount)

addcrypto

Add cryptocurrency to a player.
identifier
string
required
Player identifier
coinid
string
required
Cryptocurrency ID (see list above)
amount
number
required
Amount to add (minimum 0.1)
exports['roadphone']:addcrypto(identifier, coinid, amount)

checkcryptoamount

Check if player has enough cryptocurrency.
identifier
string
required
Player identifier
coinid
string
required
Cryptocurrency ID (see list above)
amount
number
required
Amount to check (minimum 0.1)
hasEnough
boolean
Returns true if player has enough or more, false if less
local hasEnough = exports['roadphone']:checkcryptoamount(identifier, coinid, amount)
print(hasEnough) -- returns true or false

Event Numbers

Configure special event numbers that trigger custom server-side actions.
Configure event numbers in config.lua first before using this event.
RegisterServerEvent("roadphone:server:call:eventnumber")
AddEventHandler("roadphone:server:call:eventnumber", function(number)
    if tostring(number) == "77777" then -- Check which number is called
        -- Your code here
    end
end)

Email System

sendMailOffline

Send an email to an offline player.
identifier
string
required
Player identifier
data
object
required
Email data object
local data = {
   sender = 'RoadShop',
   subject = "RoadShop TEST",
   message = "Test Message"
}

exports['roadphone']:sendMailOffline(identifier, data)

Dispatch System

sendDispatch

Send a dispatch to a specific job with player information.
source
number
required
Player source ID
message
string
required
Dispatch message
job
string
required
Target job name
coords
table|nil
Coordinates (nil uses player’s current position)
anonym
boolean
default:"false"
Whether dispatch is anonymous
image
string|nil
Optional image URL
local job = 'police'
local message = 'Dispatch :)'
local coords = {x = -1851.1, y = -1248.8, z = 8.6} -- or nil for player coords
local image = nil

exports['roadphone']:sendDispatch(source, message, job, coords, false, image)

sendDispatchAnonym

Send an anonymous dispatch without player information.
job
string
required
Target job name
title
string
required
Dispatch title (no spaces, use hyphens instead)
message
string
required
Dispatch message
coords
table
required
Location coordinates
image
string|nil
Optional image URL
Do not use spaces in the title. Use hyphens instead (e.g., Robbery-1 instead of Robbery #1)
local job = 'police'
local title = 'Robbery' -- Use 'Robbery-1' instead of 'Robbery #1'
local message = 'A robbery is in progress, go go go!'
local coords = {x = -1851.1, y = -1248.8, z = 8.6}
local image = nil

exports['roadphone']:sendDispatchAnonym(job, title, message, coords, image)