Server Events
This page documents every networked server event RoadPhone registers, plus the server-side hooks it emits for other resources.How identity works: Almost every handler resolves the acting player from the event
source — phone number, identifier, job and account sessions are looked up server-side. Client-supplied IDs are never trusted. That means an external resource triggering an “internal” event can only ever act as the triggering player, never on behalf of someone else.Integration Events
These are the server events you can safely build on from your own resources.roadphone:sendDispatch
Creates a service/emergency dispatch and pushes it to all online members of a job. This is the handler behind thesendDispatch export.
number
required
The dispatching player’s server ID (used for server-side calls; real net source wins for client calls).
string
required
The dispatch text.
string
required
Target job name (e.g.
"police", "ambulance").table
Dispatch coordinates
{ x, y, z }.boolean
Hide the sender’s identity.
string
Optional image URL.
roadphone:addBankTransfer
Inserts a bank transaction row intoroadshop_banktransfer and live-pushes it to both parties if they are online. This is the main hook point for external transaction logging (also exposed as the addBankTransaction export).
string
required
Sender IBAN.
string
required
Receiver IBAN.
string
required
Transaction label shown in the bank app.
number
required
Transferred amount.
number
required
Amount after tax/fees.
RoadPhone itself fires this for taxi fares/tips (
taxi.lua) and crypto buys/sells (crypto.lua).roadphone:roaddrop:receive
Shares a picture, contact card or playlist with a nearby player (AirDrop-style). Backing handler for thesendRoadDrop / sendAirdrop exports.
table
required
{ playerId (number), picturelink?, contact? (table, own = true sends the caller's own card), playlist?, roadpad? } — the sender name is derived server-side.roadphone:receiveMail:offline
Inserts a system mail addressed to a player identifier — works while the recipient is offline. Backing handler for thesendMailOffline export.
roadphone:server:call:eventnumber
Customization stub fired whenever a player dials a configured event number (Config.EventNumbers, e.g. "77777"). Add your own handler to react to special numbers.
roadphone:playerLoad
Reloads all phone data for a player and ships it to their client (used by thefixphone command and the framework PlayerLoaded bridge). Can be fired server-side to force a data refresh.
Server-side-only handlers
These handlers are registered withAddEventHandler only — not net-exposed — and can only be fired by server-side code:
Consumed external events
RoadPhone itself listens to these third-party events:Core Phone — server/server.lua
Contacts
Calls
Photos & Albums
Alarms
Server API — server/serverAPI/serverAPI.lua
Bank — server/serverAPI/bank.lua, bank_requests.lua
Billing — server/serverAPI/billing.lua
Metadata & Settings — server/phone_metadata.lua, phone_cache.lua, customapp_storage.lua
Admin — server/admin.lua
GPS — server/gps.lua
Messages — server/messages.lua
Mail — server/mail_app.lua
FaceTime — server/facetime.lua
Service (Dispatch & Business) — server/service.lua
Taxi — server/taxi.lua
Calendar / Notes / Voice Memos / Yellow Pages
News — server/news.lua
All news events require job-based news access (hasNewsAccess).
Music — server/music.lua
Only relevant with mx-surround (
MXSurround): roadphone:mx:play, roadphone:mx:attach, roadphone:mx:setVolume, roadphone:mx:seek, roadphone:mx:resume, roadphone:mx:stop, roadphone:mx:destroy, roadphone:mx:streamer — thin wrappers over the mx-surround positional-audio API.
Crypto / Health — server/crypto.lua, server/health.lua
RoadDrop — server/roaddrop.lua
Dating (DateMe) — server/dating.lua
All handlers resolve the caller’s identifier server-side and validate match/ownership.
Livestream — server/livestream.lua
Connect (Instagram) — server/connect.lua
Identity resolves via GetConnectAccountForSource; the legacy username, password parameters on most events are ignored — only login/register actually authenticate by credentials.
Connect DMs — server/connect_dm.lua
Connect Live — server/connectlive.lua
TweetWave — server/tweetwave.lua
Identity resolves via GetTweetWaveAccountForSource; username, password are ignored except on login/register/changePassword.
Snapy — server/snapy.lua
Identity resolves via GetSnapyAccountForSource; all events are rate-limited per SnapyCfg.RateLimits.
Addon: Battery — addons/battery/server/server.lua
Only active with Config.BatterySystem and Config.UseMetadata.
The SIM card, RoadPods and Mechanic addons register no networked server events — their APIs are Bridge callbacks and commands.