- add player-facing docs and synced screenshots - let CAD roster entries center the map on a member - refresh garage and economy UI bridges and docs
Forge Server CAD
Overview
The CAD addon coordinates dispatch-facing operational state: groups, assignments, dispatch orders, support requests, task assignment, permissions, hydrate payloads, and recent activity.
CAD state is extension-backed but intentionally transient. It is scoped to the active server or mission lifecycle and starts fresh after restart.
Dependencies
forge_server_mainforge_server_commonforge_server_actorforge_server_orgforge_server_taskforge_server_extensionat runtime for CAD extension callsforge_client_cadandforge_client_notificationsfor response RPCs
Main Components
fnc_initCadStore.sqfcoordinates repositories and request handling.fnc_initActivityRepository.sqfrecords recent CAD activity.fnc_initAssignmentRepository.sqfmanages task assignments and dispatch orders.fnc_initGroupRepository.sqfmanages group membership, role, and status.fnc_initPermissionService.sqfresolves dispatch permissions.fnc_initPersistenceService.sqfbridges SQF state to extension hot CAD storage.fnc_initRequestRepository.sqfmanages support requests.
Event Surface
The addon listens to and emits events through the event bus:
Listens to:
- Task lifecycle events (
task.started,task.completed,task.failed) - Task reward events to sync assignments
- Client notification/sync request events
Emits:
cad.assignment.assigned- task assigned to groupcad.assignment.created- new assignment createdcad.assignment.acknowledged- assignment acknowledgedcad.assignment.declined- assignment declinedcad.assignment.closed- assignment completedcad.request.submitted- support request submittedcad.request.closed- support request resolvedcad.group.updated- group status updated
Successful mutations may invalidate CAD state globally so clients refresh their views.
Contract Lifecycle
CAD assignment and task acceptance are intentionally separate. Dispatch
assignment reserves a contract for a group and marks the CAD assignment
assigned; it does not start task logic. The assigned group leader must
acknowledge the assignment before the task is accepted and ownership is bound.
If the leader declines, CAD removes the assignment and the contract returns to
the open board. Task status follows the same lifecycle: available on
creation, assigned after dispatch assignment, and active after
acknowledgement.
Notes
CAD hydrate payloads include assignable task catalog entries from TaskStore and
organization context from ActorStore.