- 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.
3.4 KiB
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. |
| 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
profileNamespaceuntil 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.