Jacob Schmidt a8415eb1fd Add phone addon and wire UI events
- Introduce client phone addon, UI, and XEH handlers
- Route actor phone interaction to the new phone UI
- Add initial phone state, event handling, and persistence
2026-04-06 19:07:18 -05:00
..
2026-04-06 19:07:18 -05:00
2026-04-06 19:07:18 -05:00
2026-04-06 19:07:18 -05:00

forge_server_phone

This addon provides the phone user interface and functionality for the in-game phone system. It handles all phone-related features including the UI display, interactions, and core phone operations.

Server State

Phone contacts, messages, and emails are owned by the server extension. SQF phone stores act as bridge objects for CBA events and UI sync only.

Persistent Redis keys:

  • phone:{uid}:contacts: set of contact actor UIDs
  • phone:message:{messageId}: hash containing message record fields
  • phone:{uid}:messages: list of message IDs visible to the user
  • phone:{uid}:thread:{otherUid}: list of message IDs for a conversation
  • phone:{uid}:message_read: hash of message ID to per-user read state
  • phone:email:{emailId}: hash containing email record fields
  • phone:{uid}:emails: list of email IDs visible to the user
  • phone:{uid}:email_read: hash of email ID to per-user read state