Skip to main content

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.
Events are grouped below by feature. The Integration Events section documents the entry points intended for external resources in detail; the reference tables that follow list every registered event.

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 the sendDispatch 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 into roadshop_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 the sendRoadDrop / 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 the sendMailOffline export.
This event is also net-registered, so a modified client could forge system mail to arbitrary identifiers. Prefer the export, and consider restricting the event on your server if you don’t need net exposure.

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 the fixphone command and the framework PlayerLoaded bridge). Can be fired server-side to force a data refresh.

Server-side-only handlers

These handlers are registered with AddEventHandler 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.