Fighting Game · Guides & deep dives

Steam Workshop Integration

the integration:

4sections1 minread

On this page

Task: TODOS.phase-72.72.14.2.1

The V2 mod distribution layer exposes Steam Workshop through FV2ModSteamWorkshopPolicy, FV2ModSteamWorkshopRequest, and FV2ModSteamWorkshopOperation. The runtime surface is deliberately split into a deterministic planner and a native V2SteamWorkshopBridge: game code can validate every upload, download, subscription, update, and rating request before handing the operation to Steamworks.

Runtime Contract#

BuildDefaultSteamWorkshopPolicy declares the ISteamUGC calls required for the integration:

  • Upload: CreateItem, StartItemUpdate, metadata setters, content and preview setters, and SubmitItemUpdate.
  • Download: DownloadItem, GetItemInstallInfo, and GetItemState.
  • Subscribe: SubscribeItem, DownloadItem, GetSubscribedItems, and install info refresh.
  • Update: StartItemUpdate, content or preview setters, tags, and SubmitItemUpdate.
  • Rate: SetUserItemVote followed by GetUserItemVote.

The default policy keeps the Steam AppId and native bridge availability explicit so editor automation and CI can validate the contract without silently faking a live Steam client. Production configuration must provide a positive SteamAppId, load the V2SteamWorkshopBridge, and accept the Workshop legal agreement before upload or update operations are allowed.

Operation Builders#

Use the Blueprint helpers to create typed requests:

  • BuildSteamWorkshopUploadRequest
  • BuildSteamWorkshopDownloadRequest
  • BuildSteamWorkshopSubscribeRequest
  • BuildSteamWorkshopUpdateRequest
  • BuildSteamWorkshopRateRequest

EvaluateSteamWorkshopRequest returns a FV2ModSteamWorkshopResult containing the exact ISteamUGC call list, blocking validation issues, install/staging paths, and whether the request is ready for the native Steam API bridge.

Local State Projection#

ApplySteamWorkshopOperationToState updates FV2ModSteamWorkshopItemState after a bridge callback succeeds. Subscription and download operations mark the item installed and clear pending download or update flags. Rating operations preserve the chosen vote direction so the mod browser and author dashboard can stay consistent with GetUserItemVote.

Verification#

Run:

bash
python3 V2/ue/Tools/check-v2-steam-workshop-integration.py
python3 -m json.tool V2/ue/Content/V2/Modding/SteamWorkshopIntegration_V2_Contract.json

The focused checker verifies the contract, runtime declarations, implementation snippets, automation assertions, CI/Horde wiring, and TODO evidence for 72.14.2.1.