Jacob Schmidt c176837a2c Verify and fix module documentation accuracy
- Add missing forge_server_actor runtime dependency to phone module (critical)
- Clarify that garage and locker are event bus listeners, not emitters
- Document economy runtime-only dependencies (bank, org)
- Add TaskStore public API documentation (27 methods organized by category)
- Update task module event emissions and hooks documentation

All documentation now aligns with actual implementation verified against codebase.
2026-05-15 20:46:19 -05:00
..

Forge Server Store

Overview

The store addon manages server-side storefront entities, catalog hydration, and checkout coordination.

SQF owns Arma-facing storefront discovery and request validation. The Rust extension owns authoritative checkout calculation through store:checkout.

Dependencies

  • forge_server_main
  • forge_server_common
  • forge_server_extension at runtime for checkout calls
  • forge_server_actor, forge_server_bank, and forge_server_org at runtime for checkout context and payment state
  • forge_client_store for response RPCs

Main Components

  • fnc_initStore.sqf marks editor-placed store objects with isStore = true.
  • fnc_initCatalogService.sqf scans live Arma config categories, builds catalog responses, resolves checkout entries, and calculates authoritative catalog prices.
  • fnc_initStorefrontStore.sqf builds hydrate payloads, validates checkout requests, calls store:checkout, syncs client patches, and coordinates related bank/org persistence.

Editor Entities

fnc_initStore matches non-null mission namespace objects whose variable names contain store, mirroring the garage entity initialization pattern.

Checkout Flow

Store checkout can charge cash, bank balance, organization funds, or approved credit lines depending on the hydrated session context. Checkout results can grant locker assets, organization assets, and fleet vehicles through the related domain stores.

Checkout results emit notifications and syncs through the event bus:

  • notification.requested - receipt and transaction alerts
  • bank.account.sync.requested - player balance updates
  • org.sync.requested - organization balance and asset updates
  • locker.sync.requested - item grant notifications
  • garage.vgarage.sync.requested - vehicle grant notifications