forge/docs/CLIENT_PHONE_USAGE_GUIDE.md
Jacob Schmidt 89169f1e84 Update documentation and add new client usage guides
- Revised README.md for the Forge Client Example Addon to clarify its purpose as a template.
- Enhanced MODULE_REFERENCE.md to categorize guides into Server and Extension guides and Client guides.
- Created detailed usage guides for various client addons including Actor, Bank, CAD, Garage, Locker, Notifications, Organization, Phone, and Store.
- Added a Client Common Usage Guide to outline shared browser UI bridge patterns.
- Introduced a Client Main Usage Guide to define the foundational elements for client addons.
- Established authoritative state notes and usage rules across new guides to ensure clarity on server ownership and client responsibilities.
2026-04-18 13:04:01 -05:00

3.4 KiB

Client Phone Usage Guide

The client phone addon provides the in-game phone UI for contacts, SMS messages, email, and local utility apps such as notes, calendar events, world clocks, and alarms.

Open Phone UI

call forge_client_phone_fnc_openUI;

The phone UI creates RscPhone, loads ui/_site/index.html, and routes browser alerts through forge_client_phone_fnc_handleUIEvents.

State Ownership

Contacts, messages, and emails are server-owned and requested through the server phone addon.

Local utility app state is stored in profileNamespace:

  • notes
  • calendar events
  • world clocks
  • alarms
  • theme/preferences

Phone Class

forge_client_phone_fnc_initClass creates GVAR(PhoneClass).

The phone class currently owns local notes, events, and settings helpers. Contacts, messages, and emails continue to use server-backed request/response events.

Browser Events

Session and Preferences

Event Client behavior
phone::get::player Send player UID to browser with setPlayerUid.
phone::get::theme Send saved light/dark theme to browser.
phone::set::theme Save theme preference to profileNamespace.

Contacts

Event Client behavior
phone::get::contacts Load cached contacts and request server refresh.
phone::refresh::contacts Request contacts from server.
phone::add::contact Add contact by phone number.
phone::add::contact::by::phone Add contact by phone number.
phone::add::contact::by::email Add contact by email.
phone::remove::contact Remove contact by UID.

Messages

Event Client behavior
phone::get::messages Request messages from server.
phone::get::message::thread Request thread with another UID.
phone::send::message Send SMS through server.
phone::mark::message::read Mark message read on server.
phone::delete::message Delete message on server.

Email

Event Client behavior
phone::get::emails Request emails from server.
phone::send::email Send email through server.
phone::mark::email::read Mark email read on server.
phone::delete::email Delete email on server.

Local Utility Apps

Event Client behavior
phone::get::notes Load local notes.
phone::save::note Save local note.
phone::delete::note Delete local note.
phone::get::events Load local calendar events.
phone::save::event Save local calendar event.
phone::delete::event Delete local calendar event.
phone::get::clocks Load local world clocks.
phone::save::clock Save local world clock.
phone::delete::clock Delete local world clock.
phone::get::alarms Load local alarms.
phone::save::alarm Save local alarm.
phone::delete::alarm Delete local alarm.
phone::toggle::alarm Toggle local alarm enabled state.

Usage Rules

  • Send contact, message, and email mutations to the server phone addon.
  • Keep local-only utility apps in profileNamespace until they are migrated to server-backed storage.
  • Do not treat local phone utility state as shared multiplayer state.
  • Validate required UID, phone, email, subject, and message fields before sending server requests.