How to download files for steam workshop to desktop - very
Steam Workshop Implementation Guide
Introduction
Steam Workshop is a system of back-end storage and front-end web pages that make it easy to store, organize, sort, rate, and download content for your game or application.This page contains technical details on implementing Steam Workshop with your title. For information and definitions of the various types of Workshop integration you can utilize and how to make the best out of the tools provided by Steam please see the Steam Workshop Overview before getting started integrating the steam workshop with your game.
In a typical set-up, customers of your game would use tools provided by you with purchase of your game to create modifications or entirely new content. Those customers would then submit that content through a form built into your tool to the Steam Workshop. Other customers would then be able to browse, sort, rate, and subscribe to items they wish to add to their game by going to the Steam Workshop in the Steam Community. Those items would then download through Steam. If you've registered for the ISteamUGC::ItemInstalled_t callback within your game, you can then call ISteamUGC::GetItemInstallInfo to get the installed location and read the data directly from that folder. That new content would then be recognized by the game in whatever capacity makes sense for your game and the content created.
Steam Workshop Types, Monetization, & Best Practices
For more information and definitions of the various types of Workshop integration you can utilize and how to make the best out of the tools provided by Steam, please see the Steam Workshop documentation.Managing Steam Workshop Visibility
The Steam Workshop is the website hosted through Steam that enumerates shared content and allows users to vote and comment on the content visible through the community. By default, applications are not enabled to be publicly visible in the Workshop. This prevents content not intended to be shared through the Steam Workshop portal from being visible unless the workshop is set to public.Set the visibility state of the workshop through the following steps:
- Browse to the application landing page on the Steamworks website
- Click Edit Steamworks Settings
- From the Workshop Tab, select General
- On the right-hand side of the page, find the Visibility State section.
- Use the radio buttons to select the desired level of visibility which can include Developers Only, Developers & Testers, Customers & Developers and Everyone.
- From the Publish tab, click Prepare for Publishing
- Click Publish to Steam and complete the process to publish the change.
Tech Overview
The process to share and consume User Generated Content is by using the ISteamUGC API which can be found in the Steamworks SDK. The methods exposed provide a way to share workshop item content which can then be discovered through the Steam Workshop or an in-app experience.The Workshop API must be accessed through the pointer that is returned from .
For example:
SteamAPICall_t hSteamAPICall = SteamUGC()->CreateItem( SteamUtils()->GetAppID(), k_EWorkshopFileTypeMicrotransaction );
Enabling ISteamUGC for a Game or Application
Before workshop items can be uploaded to the Steamworks backend there are two configuration settings that must be made, Configuring Steam Cloud Quotas and Enabling the ISteamUGC API.The Steam Cloud feature is used to store the preview images associated to workshop items. The Steam Cloud Quota can be configured with the following steps:
- Navigate to the Steam Cloud Settings page in the App Admin panel.
- Set the Byte quota per user and Number of files allowed per user to appropriate values for preview image storage
- Click Save
- From the Publish tab, click Prepare for Publishing
- Click Publish to Steam and complete the process to publish the change.
Enabling the ISteamUGC API can be accomplished with the following steps:
- Navigate to the Steam Workshop Configuration page in the App Admin panel.
- Find the Additional Configuration Options section.
- Check Enable ISteamUGC for file transfer.
- Click Save.
- From the Publish tab, click Prepare for Publishing.
- Click Publish to Steam and complete the process to publish the change.
Creating and Uploading Content
The process of creating and uploading workshop content is a simple and repeatable process as shown in the flow chart below.Creating a Workshop Item
- All workshop items begin their existence with a call to ISteamUGC::CreateItem
- The variable should contain the App ID for the game or application. Do not pass the App ID of the workshop item creation tool if that is a separate App ID.
- EWorkshopFileType is an enumeration type that defines how the shared file will be shared with the community. The valid values are:
- k_EWorkshopFileTypeCommunity - This file type is used to describe files that will be uploaded by users and made available to download by anyone in the community. Common usage of this would be to share user created mods.
- k_EWorkshopFileTypeMicrotransaction - This file type is used to describe files that are uploaded by users, but intended only for the game to consider adding as official content. These files will not be downloaded by users through the Workshop, but will be viewable by the community to rate.
This is the implementation that Team Fortress 2 uses.
- k_EWorkshopFileTypeCommunity - This file type is used to describe files that will be uploaded by users and made available to download by anyone in the community. Common usage of this would be to share user created mods.
- The variable should contain the App ID for the game or application. Do not pass the App ID of the workshop item creation tool if that is a separate App ID.
- Register a call result handler for CreateItemResult_t
- First check the to ensure that the item was created successfully.
- When the call result handler is executed, read the value and store for future updates to the workshop item (e.g. in a project file associated with the creation tool).
- The variable should also be checked and if it's true, the user should be redirected to accept the legal agreement. See the Workshop Legal Agreement section for more details.
Uploading a Workshop Item
- Once a workshop item has been created and a PublishedFileId_t value has been returned, the content of the workshop item can be populated and uploaded to the Steam Workshop.
- An item update begins with a call to ISteamUGC::StartItemUpdate
- Using the UGCUpdateHandle_t that is returned from ISteamUGC::StartItemUpdate, calls can be made to update the Title, Description, Visibility, Tags, Item Content and Item Preview Image through the various ISteamUGC::SetItem[...] methods.
- Once the update calls have been completed, calling ISteamUGC::SubmitItemUpdate will initiate the upload process to the Steam Workshop.
- Register a call result handler for SubmitItemUpdateResult_t
- When the call result handler is executed, check the to confirm the upload completed successfully.
- Note: There is no method to cancel the item update and upload once it's been called.
- Register a call result handler for SubmitItemUpdateResult_t
- If desired, the progress of the upload can be tracked using ISteamUGC::GetItemUpdateProgress
- EItemUpdateStatus defines the upload and update progress.
- and can be used to provide input for a user interface control such as a progress bar to indicate progress of the upload.
- may update during the upload process based upon the stage of the item update.
- EItemUpdateStatus defines the upload and update progress.
- In the same way as Creating a Workshop Item, confirm the user has accepted the legal agreement. This is necessary in case where the user didn't initially create the item but is editing an existing item.
Additional Notes
- Workshop items were previously designated as single files. With ISteamUGC, a workshop item is a representation of a folder of files.
- If a workshop item requires additional metadata for use by the consuming application, you can attach metadata to your item using the ISteamUGC::SetItemMetadata call. This metadata can be returned in queries without having to download and install the item content.
Previously we suggested that you save this metadata to a file inside the workshop item folder, which of course you can still do.
Consuming Content
Consuming workshop content falls into two categories, Item Subscription and Item Installation.Item Subscription
The majority of subscriptions to a workshop item will happen through the Steam Workshop portal. It is a known location, common to all games and applications, and as such, users are likely to find and subscribe to items regularly on the workshop site.However, ISteamUGC provides two methods for programmatically subscribing and unsubscribing to workshop items to support in-game item subscription management.
-
-