This runbook covers TODOS.phase-72.72.12.2.7: a limited-time game mode system
that can enable and disable game modes on schedule, including event-exclusive
modes.
The implementation lives in @v2/limited-time-game-mode-service at
apps/v2/limited-time-game-mode-service/. Its contract is
V2/ue/Content/V2/LiveOps/LimitedTimeGameMode_V2_Contract.json and the
validation gate is V2/ue/Tools/check-v2-limited-time-game-mode.py.
Schedule Definitions#
Limited-time mode definitions include:
scheduleIdmodeIdqueueIdrulesetIdstartsAtendsAteventExclusiveeventIdregionsactivationTags
The service validates start/end windows, duplicate schedule IDs, overlapping mode or queue windows, event-exclusive mode ownership, region lists, and activation tags before an active queue can be published.
Enable And Disable#
buildV2LimitedTimeGameModeSurface publishes upcoming, enabled, and disabled
game mode sets from the same server-authoritative schedule. Enabled modes expose
their queue and ruleset IDs only while the generated timestamp is inside the
mode window. resolveV2LimitedTimeGameModeState is the shared state resolver
for upcoming, enabled, and disabled windows.
Event-exclusive modes must declare an owning eventId. The active event
exclusive set is published separately so matchmaking and event UI can hide those
queues outside the event surface without requiring a client patch.
Primary APIs:
buildV2LimitedTimeGameModeSurfaceresolveV2LimitedTimeGameModeState
Service endpoints:
GET /v2/live-ops/game-modes/limited-time/scheduleGET /v2/live-ops/game-modes/limited-time/activePOST /v2/live-ops/game-modes/limited-time/{scheduleId}/state
Operator Flow#
- Author limited-time game mode definitions with start/end times, queue IDs, rulesets, regions, and event-exclusive ownership.
- Publish through
buildV2LimitedTimeGameModeSurface. - Send only
enabledGameModesandactiveEventExclusiveGameModesto matchmaking and event UI. - Let the service disable expired modes automatically after
endsAt. - Keep
requiresClientPatch: false; changing a schedule or event-exclusive owner is a data update.
Gates#
limited-time-game-mode-packagelimited-time-game-mode-schedulelimited-time-game-mode-enable-disablelimited-time-game-mode-event-exclusivelimited-time-game-mode-active-queuelimited-time-game-mode-validationlimited-time-game-mode-ci-wired
Verification#
pnpm --filter @v2/limited-time-game-mode-service test
pnpm --filter @v2/limited-time-game-mode-service typecheck
pnpm --filter @v2/limited-time-game-mode-service lint
pnpm --filter @v2/limited-time-game-mode-service build
python3 V2/ue/Tools/check-v2-limited-time-game-mode.py