- Changed references from `PhoneClass` to `PhoneRepository` in the phone usage guide. - Added payroll and treasury transfer requests to the client organization usage guide. - Updated SurrealDB setup documentation with helper scripts for database management.
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 Repository
forge_client_phone_fnc_initRepository creates GVAR(PhoneRepository).
The phone repository owns local notes, events, clocks, alarms, 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.