Skip to main content

Server Events

This page documents every networked server event RoadPhone Pro 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.
claimedSource
number
required
The dispatching player’s server ID (used for server-side calls; real net source wins for client calls).
message
string
required
The dispatch text.
job
string
required
Target job name (e.g. "police", "ambulance").
coords
table
Dispatch coordinates { x, y, z }.
anonym
boolean
Hide the sender’s identity.
image
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).
senderIban
string
required
Sender IBAN.
receiverIban
string
required
Receiver IBAN.
reason
string
required
Transaction label shown in the bank app.
amount
number
required
Transferred amount.
endamount
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.
data
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:
EventParamsDescription
roadphone:server:addCallHistorysource, number, isIncoming, isAnonym, callType, isMissedInserts a call-history row for a player and pushes it to their client. Deliberately not net-exposed (first arg is a target source).
roadphone:sendNotification:offlinenumber, apptitle, title, message, img, path, appQueues an offline notification in roadshop_notifications. Emitted internally by PhoneNotifyNumber.
roadphone:fetchallmailssource, mailReloads a mailbox and pushes it to the client.
roadphone:taxi:sync / roadphone:taxi:sync:removetaxi job fields / phoneRoadPad bridge: writes/clears a taxi job in server state.

Consumed external events

RoadPhone itself listens to these third-party events:
EventSource resourceDescription
billing_ui:onBillCreatedJaksam billing_uiPushes a billing refresh to the invoiced player (only with Config.JaksamBilling).
ox_inventory:usedItemox_inventoryPhone item-use detection (metadata backup flow).

Core Phone — server/server.lua

EventParams (after source)Description
roadphone:playerLoadsourceLoads all global + per-phone data and ships it to the client.
roadphone:finishSetupMarks the phone as set up (phone_setup = 1).
roadphone:server:leitstelle:addnumberRegisters the caller as dispatcher for an emergency line (job-checked).
roadphone:server:leitstelle:removeRemoves the caller from the dispatcher registry.
roadphone:prop:deletenetIdDeletes a phone prop attached to the caller’s ped (ownership-checked).
roadphone:phone:shutdownSets phone_powered_on = 0 in metadata.
roadphone:phone:poweronSets phone_powered_on = 1 in metadata.

Contacts

EventParamsDescription
roadphone:server:addContactfirstname, lastname, number, picture, note, mail, companyInserts a contact (DB + metadata), anti-spam guarded.
roadphone:server:editContactid, firstname, lastname, number, picture, note, mail, companyUpdates a caller-owned contact.
roadphone:server:deleteContactidDeletes a caller-owned contact.
roadphone:server:setContactFavoriteid, favorite (0/1)Toggles a contact’s favourite flag.
roadphone:server:GiveContactDetailsplayerIdSends the caller’s name + number to another player to add as a contact.

Calls

EventParamsDescription
roadphone:server:callselfnumber, targetnumber, isAnonymPlaces a call: SIM/battery checks, Leitstelle routing, rings the target or logs a missed call.
roadphone:server:acceptIncomingCallnumberAccepts an incoming call: voice channel pairing, SIM billing, battery activity.
roadphone:server:endCallnumber, leitstellenSrc?Ends/declines a call, stops billing, routes endCall to the peer.
roadphone:call:muteid (legacy), mute (bool)Mutes/unmutes the caller via the voice backend.
roadphone:call:requestVideoUpgradetargetNumberRelays a “switch to FaceTime” request.
roadphone:call:respondVideoUpgradetargetNumber, acceptedRelays the accept/decline of a video upgrade.
roadphone:server:startGroupCallgroupid, owner, name, membersRings all group members with an incoming group call.
roadphone:server:newGroupChatMembergroupidRelays “member joined” to the group roster.
roadphone:server:groupChatMemberLeavedgroupidRelays “member left” to the group roster.
roadphone:server:kickFromGroupCallnumber, groupidTells the target’s client to leave the group call.
roadphone:server:addContactToGroupCallgroup, numberRings a specific number into a running group call.

Photos & Albums

EventParamsDescription
roadphone:addPhotoToGallerylinkSaves a photo (DB + metadata).
roadphone:deletePictureidSoft-deletes a photo (isDeleted = 1).
roadphone:deletePicture:confirmidHard-deletes a photo.
roadphone:recoverPictureidRestores a soft-deleted photo.
roadphone:togglePhotoFavouriteid, isFavourite (0/1)Toggles a photo’s favourite flag.
roadphone:editPictureid, newUrl, originalUrlPoints a photo at an edited URL (original preserved).
roadphone:revertPictureid, originalUrlReverts an edited photo to its original.
roadphone:createAlbumalbumNameCreates a photo album.
roadphone:deleteAlbumalbumIdDeletes an album and its photo links.
roadphone:renameAlbumalbumId, newNameRenames an album.
roadphone:addPhotoToAlbumalbumId, photoIdAdds a photo to an album.
roadphone:removePhotoFromAlbumalbumId, photoIdRemoves a photo from an album.
roadphone:addMultiplePhotosToAlbumalbumId, photoIds (array)Bulk-adds photos to an album.

Alarms

EventParamsDescription
roadphone:alarm:addalarmData (time, label, enabled, repeatType, days, sound)Creates an alarm in metadata.
roadphone:alarm:updatealarmId, updatedAlarmUpdates an alarm.
roadphone:alarm:deletealarmIdDeletes an alarm.
roadphone:alarm:togglealarmId, enabledEnables/disables an alarm.
roadphone:alarm:snoozealarmId, snoozeUntilSets an alarm’s snooze timestamp.

Server API — server/serverAPI/serverAPI.lua

EventParamsDescription
roadphone:sendDispatchsee Integration EventsCreates a dispatch for a job.
roadphone:server:call:eventnumbernumberCustomization stub for dialed event numbers.
roadphone:server:blocknumbernumberAdds a number to the caller’s blocked list.
roadphone:server:unblocknumbernumberRemoves a number from the blocked list.
roadphone:server:call:saltychatcallchannelAdds the caller to a SaltyChat/Yaca call channel.
roadphone:server:call:saltychat:endcallchannelRemoves the caller from a call channel.
roadphone:server:call:saltychat:speakerbooleanToggles phone speaker mode.

Bank — server/serverAPI/bank.lua, bank_requests.lua

EventParamsDescription
roadphone:bank:transferrecipient, amount, recipientType ('number' or IBAN)Player transfer: validation, tax, history, notifications. Serialized per player.
roadphone:addBankTransfersee Integration EventsInserts a transaction row and live-pushes it.
roadphone:bank:saveFavoritesfavorites (array of type, value, label)Stores the caller’s bank favourites in metadata.

Billing — server/serverAPI/billing.lua

EventParamsDescription
roadphone:server:payBillidPays a RoadPhone/BCS bill (society or player payout, race-safe).
roadphone:server:rxBilling:payBillidPays an RxBilling invoice via export.
roadphone:server:codem:payBillidPays a codem-billing invoice via export.

Metadata & Settings — server/phone_metadata.lua, phone_cache.lua, customapp_storage.lua

EventParamsDescription
roadphone:clearActivePhoneSlotOn phone close: flushes buffered metadata writes, clears slot + cache.
roadphone:assignPhoneNumberitemName, slotAssigns a number to a phone item lacking one (legacy path).
roadphone:updatePhoneBackgroundbackgroundSaves the wallpaper to item metadata.
roadphone:updatePhoneSettingssettings (whitelisted keys)Persists phone settings to metadata.
roadphone:updatePhonePinpin, pinNeeded (0/1)Stores/clears the phone PIN.
roadphone:updatePhoneFaceIDenabledBinds/unbinds the holder as FaceID owner.
roadphone:updateInstalledAppsinstalledAppsPersists the installed-apps list.
roadphone:updateHomescreenLayouthomescreenDataPersists the homescreen layout.
roadphone:server:playerLoadedCaches the player’s phone items for fast number lookups.
roadphone:customapp:storageSetnamespace, key, valueWrites a key into per-phone custom-app storage.
roadphone:customapp:storageDeletenamespace, keyDeletes a key from custom-app storage.

Admin — server/admin.lua

EventParamsDescription
roadphone:admin:saveChunktransferId, eventName, index, total, chunkACE-gated (roadphone.phoneadmin) chunked upload for admin-panel saves.

GPS — server/gps.lua

EventParamsDescription
roadphone:gps:deleteWaypointidDeletes a caller-owned saved waypoint.

Messages — server/messages.lua

EventParamsDescription
roadphone:sendMessagephoneNumber, message, replyto?Core SMS send: SIM check, persists both copies, notifies recipient, webhook.
roadphone:deleteMessageidDeletes one message from the caller’s own mailbox.
roadphone:setReadMessagenumberMarks a conversation read; fires read receipts.
roadphone:messages:deleteConversationotherNumberDeletes the caller’s copy of a 1:1 conversation.
roadphone:messages:markGroupReadgroupidClears the per-phone unread badge for a group.
roadphone:messages:createGroupname, image, members, messageCreates a group chat and sends the first message.
roadphone:messages:sendGroupMessagegroupid, groupname, message, members, number, replyto?Sends a group message (membership re-resolved server-side).
roadphone:messages:leaveGroupgroupid, numberLeave (self) or kick (owner-only).
roadphone:messages:addGroupgroupid, numberInvites a member (members-only).
roadphone:messages:setGroupOwnergroupid, newOwnerTransfers ownership (owner-only).
roadphone:messages:deleteGroupgroupidDeletes a group + messages (owner-only).
roadphone:messages:saveGroupSettingsgroupid, name, pictureUpdates group name/image (members-only).

Mail — server/mail_app.lua

EventParamsDescription
roadphone:mail:sendmailmailData (sender, receivermail, title, message, image)Sends a mail; sender address resolved from the Cloud account, spam-tracked.
roadphone:setMailReadmailidMarks a caller-owned mail read.
roadphone:deleteMailmailidDeletes a caller-owned mail.
roadphone:receiveMailmailData (sender, subject, message, button?)Inserts a system mail into the caller’s own mailbox.
roadphone:receiveMail:offlinesee Integration EventsSystem mail by identifier (offline-capable).
roadphone:receivemail:notifysource, senderFires a “mail received” notification to a source.
qb-phone:server:sendNewMailmailData (senderMail, receivermail, title, message, image)QBCore-compat mail send shim.

FaceTime — server/facetime.lua

EventParamsDescription
roadphone:facetime:starttargetNumber, isAnonymStarts a LiveKit video call (blocked/DnD checks, room, ring timeout).
roadphone:facetime:acceptcallIdAccepts (invite validated), mints join token, voice setup.
roadphone:facetime:declinecallIdDeclines/leaves ringing.
roadphone:facetime:endcallIdEnds/leaves an active call.
roadphone:facetime:addParticipantcallId, targetNumberGroup-call invite (max 5, blocked check).
roadphone:facetime:reactionemojiBroadcasts a mid-call emoji reaction.

Service (Dispatch & Business) — server/service.lua

EventParamsDescription
roadphone:service:deleteDispatchidDeletes a dispatch (job-scoped).
roadphone:service:dispatchFinishidMarks a dispatch finished.
roadphone:service:declineDispatchidMarks a dispatch declined.
roadphone:service:declineDispatchWithReasonid, reasonDeclines with a reason.
roadphone:service:updateDispatchStatusid, statusUpdates status (accepted/enroute/onscene/finished, atomic accept guard).
roadphone:service:forwardDispatchdispatchId, targetSourceReassigns a dispatch to a same-job coworker.
roadphone:service:requestShareLocationdispatchId, targetNumberWorker offers live location to the dispatch sender.
roadphone:service:acceptLocationSharingdispatchIdSender accepts; opens a live-location session.
roadphone:service:updateLiveLocationdispatchId, x, yPushes coordinates into the session.
roadphone:service:stopLiveLocationdispatchIdEnds a live-location session.
roadphone:setBusinessStatusdata (job, isOpen)Opens/closes a business (job + grade gated).
roadphone:postBusinessNewsdata (job, title, message)Posts a business news item (job + grade gated).

Taxi — server/taxi.lua

EventParamsDescription
roadphone:taxi:callprofile, price, loca, curloca, phone, gps, GPStogo, distance, csrc, vehicleTypeCustomer requests a taxi (driver availability + balance check).
roadphone:taxi:acceptphone, profileDriver accepts (server-authoritative driver gate).
roadphone:taxi:pickedup:checkphone, gpstogo, vehicle, customersrcDriver asks the customer to confirm pickup.
roadphone:taxi:pickedupphone, Gps, taxiplate, myplate, taxisourceCustomer confirms pickup (plate match required).
roadphone:taxi:arrivedphoneCompletes trip: server-authoritative price, payment, history, rating prompt.
roadphone:taxi:cancelphoneCancels a job (customer or assigned driver only).
roadphone:taxi:savefavoritefavoriteType ('home'/'work'), name, coordsSaves a favourite location.
roadphone:taxi:deletefavoritefavoriteTypeDeletes a favourite.
roadphone:taxi:ratingdriverPhone, rating (1-5), tip, comment, tripIdPost-ride rating + optional tip.

Calendar / Notes / Voice Memos / Yellow Pages

EventParamsDescription
roadphone:calendar:addtitle, location, notes, allDay, startAt, endAtAdds a calendar event.
roadphone:calendar:editid, title, location, notes, allDay, startAt, endAtEdits a caller-owned event.
roadphone:calendar:deleteidDeletes a caller-owned event.
roadphone:notes:addtitle, messageCreates a note.
roadphone:notes:editid, title, messageEdits a caller-owned note.
roadphone:notes:deleteidDeletes a caller-owned note.
roadphone:notes:pinid, isPinnedPins/unpins a note.
roadphone:voicemail:addmemoSaves a voice memo.
roadphone:voicemail:deleteidDeletes a caller-owned voice memo.
roadphone:yellowpages:addPosttitle, text, pictureCreates an ad (charges Cfg.YellowPageFee).
roadphone:yellowpages:deletePostidDeletes a caller-owned ad.

News — server/news.lua

All news events require job-based news access (hasNewsAccess).
EventParamsDescription
roadphone:news:addPosttitle, text, picture, categoryId, isBreaking, breakingDurationPublishes an article + global notification.
roadphone:news:editPostid, title, text, picture, categoryId, isBreaking, breakingDurationEdits a post.
roadphone:news:deletePostidDeletes a post.
roadphone:news:createCategoryname, colorCreates a category.
roadphone:news:deleteCategoryidDeletes a category (posts keep existing, category nulled).
roadphone:news:toggleBreakingpostId, isBreaking, durationMinutesToggles the breaking-news flag + broadcast.

Music — server/music.lua

EventParamsDescription
roadphone:server:music:clienttype, musicid, volume, loop, pos, timestampRelays a player’s playback state to all clients (3D audio).
roadphone:music:createPlaylisttitleCreates a playlist.
roadphone:music:changePlaylistplaylistId, playlistTitle, playlistImageRenames/re-images a caller-owned playlist.
roadphone:music:copyPlaylistplaylistId, playlistTitle, playlistImageDuplicates a caller-owned playlist.
roadphone:music:deletePlaylistplaylistIdDeletes a caller-owned playlist.
roadphone:music:addPlaylistMusicplaylist, musicid, musicname, musicartist, musicimage, musiclengthAdds a song to a playlist.
roadphone:music:removePlaylistMusicplaylist, musicidRemoves a song (ownership-scoped).
roadphone:music:submitSongdata (songid, title, artist, url_type, thumbnail, length)Submits a song to the library (auto-approve or pending).
roadphone:music:approveSubmissionsubmissionId, overrides?Approves a submission (music-admin gated).
roadphone:music:rejectSubmissionsubmissionIdRejects a submission (music-admin gated).
roadphone:music:deleteLibrarySongsongIdDeletes a library song (music-admin gated).
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

EventParamsDescription
roadphone:crypto:buycoinid, amountBuys crypto (atomic debit → credit under a per-player lock).
roadphone:crypto:sellcoinid, amountSells crypto under the same lock.
roadphone:health:syncdata (steps, distance, calories, activeMinutes, heartRate, stress, systolicBp, diastolicBp, spo2, isSleeping)Updates the health cache (rate-limited to 1/55s).

RoadDrop — server/roaddrop.lua

EventParamsDescription
roadphone:roaddrop:receivesee Integration EventsShares picture/contact/playlist with a nearby player.

Dating (DateMe) — server/dating.lua

All handlers resolve the caller’s identifier server-side and validate match/ownership.
EventParamsDescription
roadphone:dating_checkAuthReturns whether the caller has a profile.
roadphone:dating_logincredentials (username, password)Logs into a profile and reassigns it to the caller.
roadphone:dating_registerdata (username, password, name, birthdate, age, gender)Creates a profile.
roadphone:dating_completeSetupprofileData (bio, photo, interests)Finalizes a profile.
roadphone:dating_getProfileSends the caller’s own profile.
roadphone:dating_updateProfiledata (name, bio, age, gender, photo, interests, active)Creates/updates the profile.
roadphone:dating_getSwipeQueueBuilds a swipe queue (prefs + distance).
roadphone:dating_swipetargetIdentifier, action ('like'/'pass'/'superlike')Records a swipe; creates matches on mutual like.
roadphone:dating_rewindSwipetargetIdentifierUndoes the last swipe.
roadphone:dating_getMatchesReturns matches with profiles.
roadphone:dating_unmatchmatchIdDeletes a match + its messages.
roadphone:dating_getMessagesmatchIdReturns messages; marks incoming read.
roadphone:dating_sendMessagematchId, message, image?Sends a text/image message.
roadphone:dating_markReadmatchIdMarks messages read; echoes receipts.
roadphone:dating_getLikesReturns profiles that liked the caller.
roadphone:dating_updatePreferencesprefs (pref_gender, pref_age_min, pref_age_max)Updates discovery preferences.

Livestream — server/livestream.lua

EventParamsDescription
roadphone:livestream:createAccountusername, passwordCreates a livestream account bound to the caller.
roadphone:livestream:loginusername, passwordLogs into an account.
roadphone:livestream:updateProfileoldUsername, password, newUsername, avatarUrlRenames/re-avatars (credential-gated).
roadphone:livestream:starttitle, preview, username, passwordStarts a stream (LiveKit room + DB row, broadcast).
roadphone:livestream:stopusername, passwordStops the caller’s stream.
roadphone:livestream:sendMessagedata (message, username, streamId, color?)Sends a stream chat message.
roadphone:livestream:donationusername, streamId, amountDonates to a streamer (balance check, tax, transfer).
livestream:requestJoinStreamstreamIdRegisters the caller as a viewer.
livestream:requestLeaveStreamstreamIdRemoves the caller as a viewer.
livestream:requestViewerCountstreamIdReturns a stream’s viewer count.
roadphone:requestActiveStreamsReturns the active-streams list.

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.
EventParamsDescription
roadphone:instagram_loginusername, password, silent?Authenticates by credentials, issues a session.
roadphone:instagram_createAccountusername, password, avatarUrlCreates an account + session, broadcasts it.
roadphone:instagram_logoutClears the session.
roadphone:instagram_deleteAccountusername, password (ignored)Deletes the session account + all content.
roadphone:instagram_getpostsusername, password (ignored)Returns the home feed.
roadphone:instagram_post…, message, image (string or array), filtersCreates a post (carousel-capable), broadcasts it.
roadphone:connect:editpost…, postId, newMessageEdits the caller’s own post caption.
roadphone:connect:deletepost…, postIdDeletes the caller’s own post.
roadphone:instagram:toggleLike…, inapIdToggles a post like.
roadphone:connect:toggleCommentLike…, commentIdToggles a comment like.
roadphone:instagram:comment…, postid, commentText, parentId?Adds a comment or reply.
roadphone:instagram:follow…, accountidFollows an account.
roadphone:instagram:unfollow…, accountidUnfollows an account.
roadphone:instagram:createStory…, imagePosts a story.
roadphone:instagram:reactStory…, storyId, emojiReacts to a story (one reaction per account).
roadphone:instagram_setProfileInformations…, firstname, lastname, username, password?Updates profile info.
roadphone:instagram_setAvatarUrl…, avatarUrlUpdates the avatar.

Connect DMs — server/connect_dm.lua

EventParamsDescription
roadphone:connect_dm_senddata (toAccountId, type ('text'/'image'/'post_share'), body, attachment)Sends a DM (rate-limited, media-host allow-list).
roadphone:connect_dm_markReaddata (peerId)Advances the read pointer; notifies the peer.
roadphone:connect_dm_reactdata (messageId, emoji)Toggles one emoji reaction per user per message.
roadphone:connect_dm_typingdata (peerId, isTyping)Relays ephemeral typing state.

Connect Live — server/connectlive.lua

EventParamsDescription
roadphone:getConnectLivestreamsReturns active Connect livestreams with viewer counts.

TweetWave — server/tweetwave.lua

Identity resolves via GetTweetWaveAccountForSource; username, password are ignored except on login/register/changePassword.
EventParamsDescription
roadphone:twitter_loginusername, passwordAuthenticates by credentials, issues a session.
roadphone:twitter_createAccountusername, password, avatarUrlCreates an account + session.
roadphone:twitter_changePasswordusername, password, newPasswordVerifies old credentials, updates the password.
roadphone:twitter_logoutClears the session.
roadphone:twitter_deleteAccountusername, password (ignored)Deletes the session account + content.
roadphone:twitter_postTweets…, message, image?Posts a tweet, notifies mentions.
roadphone:twitter_usersDeleteTweet…, tweetIdDeletes the caller’s own tweet.
roadphone:twitter_toogleLikeTweet…, tweetIdToggles a like.
roadphone:twitter_toggleRepost…, tweetIdToggles a repost.
roadphone:twitter_quoteRepost…, tweetId, messageCreates a quote-tweet.
roadphone:twitter_toggleBookmark…, tweetIdToggles a bookmark.
roadphone:twitter_toggleFollow…, targetUserIdToggles follow.
roadphone:twitter:comment…, postid, commentAdds a comment.
roadphone:twitter_getUserTweetsReturns the session account’s own tweets.
roadphone:twitter_setAvatarUrl…, avatarUrlUpdates the avatar.

Snapy — server/snapy.lua

Identity resolves via GetSnapyAccountForSource; all events are rate-limited per SnapyCfg.RateLimits.
EventParamsDescription
roadphone:snapy_loginusername, passwordAuthenticates by credentials, issues a session.
roadphone:snapy_registerdata (username, password, displayName, avatarUrl)Creates an account.
roadphone:snapy_logoutClears the session.
roadphone:snapy_addFriendaccountId (ignored), targetUsernameOrSnapcodeSends a friend request.
roadphone:snapy_acceptFriendrequestIdAccepts a request (ownership-scoped).
roadphone:snapy_ignoreFriendrequestIdIgnores/deletes a pending request.
roadphone:snapy_removeFriendfriendIdRemoves a friendship + the 1:1 conversation.
roadphone:snapy_blockUsertargetIdBlocks a user (removes friendship + conversation).
roadphone:snapy_unblockUsertargetIdUnblocks a user.
roadphone:snapy_sendSnapdata (recipients, imageUrl, thumbUrl, blurhash, caption, duration, mode, mediaType, overlays)Sends a snap to accepted friends; advances snapstreaks.
roadphone:snapy_markSnapViewedsnapIdMarks a received snap opened.
roadphone:snapy_screenshotsnapIdFlags a snap screenshotted; alerts the sender.
roadphone:snapy_saveSnapdata (snapId)Saves a viewed snap into the chat.
roadphone:snapy_createStorydata (imageUrl, thumbUrl, blurhash, caption, visibility, group_id, overlays, mediaType)Posts a 24h story.
roadphone:snapy_viewStorystoryId, viewerId (ignored)Records a unique story view.
roadphone:snapy_setHighlightstoryId, onMarks/unmarks a story as a profile highlight.
roadphone:snapy_sendMessagedata (receiverId or groupId, message, messageType, imageUrl, storyRef)Sends a chat message (friendship/membership enforced).
roadphone:snapy_typingdata (receiverId or groupId)Relays typing state.
roadphone:snapy_reactMessagedata (messageId, emoji)Reacts to a message.
roadphone:snapy_leaveGroupgroupIdLeaves a group (ownership transfer / cleanup).
roadphone:snapy_updateProfileaccountId (ignored), data (displayName, avatarUrl)Updates the profile.
roadphone:snapy_updateSettingsdata (ghost_mode, quick_add, story_default, memories_autosave)Updates settings/privacy.
roadphone:snapy_addMemorydata (mediaUrl, thumbUrl, blurhash, caption, mediaType, kind)Saves a permanent memory.
roadphone:snapy_deleteMemorydata (id)Deletes a caller-owned memory.

Addon: Battery — addons/battery/server/server.lua

Only active with Config.BatterySystem and Config.UseMetadata.
EventParamsDescription
roadphone:battery:phoneOpenedStarts battery drain tracking.
roadphone:battery:phoneClosedStops drain, persists battery to metadata.
roadphone:battery:stopChargingStops the charging loop.
roadphone:battery:activityactivity ('flashlight'/'music'/'call'), activeSets an activity flag that increases drain.
The SIM card, RoadPods and Mechanic addons register no networked server events — their APIs are Bridge callbacks and commands.