Get started

Attention: The Digital Services Act (DSA) requires Unity to notify our customers’ end users if Unity takes an action that impacts those end users under the DSA. To comply with this requirement, if you use Unity Gaming Services (UGS) products that rely on the Unity Authentication Service, you must integrate the notification API.

For more information on DSA, refer to the Digital Services Act - compliance update.

To make your game compliant, refer to DSA notifications.

See Code Monkey's video for an overview of setup.

Integration

You must sign up to UGS, create and link a project, and import the UGC SDK package into your project.

Set up User Generated Content

You can set up and manage User Generated Content in the Unity Cloud Dashboard:

  1. Go to cloud.unity.com.
  2. Select the Products tab from the sidebar.
  3. Under Content Management, go to User Generated Content and select Launch.

When you launch User Generated Content for the first time, this adds User Generated Content to the Shortcuts section on the sidebar and opens the overview page.

Integrate the SDK

Follow these steps to integrate the UGC SDK:

  1. If you don't have a Unity account, create one and create a new project to sign up for Unity Gaming Services.
  2. In the Unity Editor, go to Edit > Project Settings > Services.
  3. Log in with your existing credentials.
  4. Select your project from the drop-down list and select Link project ID.
  5. In the Unity Editor, open Window > Package Manager. The packages are temporarily only available from the UGC setup page in the Unity Cloud Dashboard.
  6. Select User Generated Content and select Install.

The Unity Cloud Dashboard is updated for UGC and includes pages to create and assign moderator status to some players using their playerId.

Content

The Content menu shows a list of your content. Filter by visibility, date created, and date updated. Each content item has a version number, flagged count (for inappropriate content), status (hidden or public), and release date.

Select a content name for more detailed information.

See details like average rating and update dates. You can edit visibility; choose from Public Game, Public Global, and Hidden.

See more statistics about your content such as downloads, subscriptions, and reports.

Service Settings

Use Service Settings to configure your content settings. You can set the following:

  • Labels: A curated list of labels for your content.
  • Categories: A list of game types and attributes.
  • Minimum number of ratings content needs for content discovery.
  • Minimum number of downloads content needs for content discovery.
  • Moderation status: Approved or Rejected.
  • Authentication provider settings: choose from Apple, Facebook, and Google Client ID.

Web Portal Setup

Use Web Portal Setup to configure settings for the Web Portal. The setup also relates to the SDK. You can set the following:

  • Site name: The name will also show in the Web Portal.
  • Studio name: The name will also show in the Web Portal.
  • Description: Enter a description for your site.
  • Banner image: Set an image that appears at the top of the Creation Center and Moderation Center.
  • Site visibility: Set the site to be available on the UGC Portal and UGC SDK, or turn this off.
  • URL: The download URL for the Creator Tool provided by the studio to the creators.
  • Title: Enter a title for the Creator Center.
  • Description: Enter a description creators see in the Creator Center.

Moderation

Use Moderation to configure your settings. Flexible means content is published immediately, but gets moderated if more than a certain number of users report it as inappropriate. Strict means all content must be approved by a moderator before it's published. Set players as creators and moderators with their own permissions. You can also view a list of banned players (currently by playerID), and view the log to see how content is moderated.

Webhooks

Use Webhooks to trigger notifications or actions when a particular event occurs, such as when a new piece of content is added.

Unity generates a secret when the user creates a new webhook. The secret is shown only once and the server receiving the webhook request uses it to validate the origin of the request and ensure that it comes from Unity. You must copy the secret so it can verify signatures from webhooks requests.

The creator updates the content events through the creation process, for example the raw content format. Representation is what loads in-game; for example, an instance of the game loaded on PlayStation®5, or loaded on Nintendo Switch™.

To add a webhook:

  1. Select Add Webhooks.
  2. Give your webhook a name, URL, and secret.
  3. Enable the events you want to watch.
  4. Select Save.

Quick start for UGC Editor Bridge

The User-Generated Content (UGC) Editor Bridge is a Unity package for content creators to upload UGC for a specific game directly from the Unity Editor. It's a template Unity package provided to game studios developing UGC games, so they can modify it to suit their needs and designs. It's functional by default.

The UGC Bridge reduces the friction of the UGC integration in a game, leveraging the Unity Editor as the base of the UGC Editor, and reducing engineering costs.

There are two different projects referred to: the UGC game project and the UGC Editor Bridge project.

The UGC game project is the Unity project of the game. This project is owned by the game studio and is most likely not shared with content creators.

The UGC Editor Bridge project is a project created to host the UGC Editor Bridge package customized by the game studio. This project can be packed with the customized package or created by content creators. It's up to the game developer to package this project based on their preferences, as you will see in the deployment section.

Requirements

To use the UGC Editor Bridge, you need a UGC-enabled project. The project use for the UGC Editor Bridge doesn't need to be the same as the game project, but we share the project id between the two, so the UGC Editor Bridge project can publish content for the game project. The Unity requirements are the same as the UGC SDK.

Installation

In the Unity Editor, go to Window > Package Manager. Search for 'ugc' and select User Generated Content Bridge.

In a new Unity project, open the package manager. Click + in the top left corner and select Add package from disk. Go to your downloaded package, select the package.json file and select open.

In the project settings, select UGC Bridge. In the project id field, copy-paste the id from your UGC game project. For the environment, you can either leave it or create a new environment and paste its name in the field.

Use UGC Bridge

Authentication

To publish content, the content creator needs to be authenticated. A user can authenticate through the Main Panel as an anonymous user or through one of the configured providers.

Select and publish content

Select any asset in the project window as the content to publish. Once selected, it's reflected in the Selection section of the main panel. You can either create a new content with it (and fill all the related fields like name, description, tags, etc.) or select a pre-existing content and publish your selection as a new version for that content.

Validation

If you configured validation rules for the content you want to publish, it's validated at the publishing step. Validation issues show at the bottom of the publishing panel so you can fix them.

Customization

The UGC Editor Bridge is designed to be customized by the project developers using it for their game. The UI and processes are built around five steps: Authentication, Selection, Publishing, Validation, and Building. Once created, you can customize each step with features or fields. See the functional examples to understand the process.

Create new validation rules

To create a new validation rule, right click in the project view and select Create > UGC Bridge > Validation Rule Templates > New Validation Rule Script. This creates a new validation rule script. Enter a name and open the script.

In the script, you need to fill out:

PropertiesDescription
HelpBoxTextThe text displayed when this validation rule fails.
MessageTypeThe type of the message displayed when this validation rule fails. The types are Info, Warning, Error, and None.
ValidationRuleStateThe current state of the validation rule. Can be NotValidated, NotValid, or Valid.
MethodsDescription
ValidateRule(Object content)How this rule processes the validation. This method should also set the property.

You can also add any fields or methods you might need for the validation.

When your validation rule script is filled, return to Unity. Right click in the project view and select Create > UGC Bridge > Validation Rule Assets to create an asset of this validation rule. Once created, add the validation rule to the validation step you're using.

Customize user authentication

To create a new user authentication step, right click in the project view and select Create > UGC Bridge > Step Templates > New User Authentication Step Script. This creates a new user authentication step script. Enter a name and open the script.

In the script, you need to fill out:

MethodsDescription
OnGUIIf the user authentication requires a field or a button in the user authentication section of the main panel, you can draw it here. Leave it empty if no UI is required.
SessionSignInThis method is called when a editor session is refreshed, for player automatic sign in if already logged in.

You can also add any fields or methods you might need for user authentication.

When your user authentication step script is filled, return to Unity. Right click in the project view and select Create > UGC Bridge > Step Assets to create an asset of this user authentication step. Once created, assign your new user authentication step to the project settings.

Customize content selection

To create a new content selection step, right click in the project view and select Create > UGC Bridge > Step Templates > New Content Selection Step Script. This creates a new content selection step script. Enter a name and open the script.

In the script, you need to fill out:

PropertiesDescription
SourceContentFilePathFile path of the content selected for publishing.
RepresentationContentFilePathFile path of the representation of the selected content for publishing. Only used if RequireRepresentation is set to true
RequireRepresentationCheck if the representation needs to be built before publishing the content. Override if the source content won't be used at runtime. Default is set to false.
MethodsDescription
OnGUI()If the content selection requires a field in the main panel, you can draw it here. Leave it empty if no UI is required.

You can also add any fields or methods you might need for the content selection.

When your content selection step script is filled, return to Unity. Right click in the project view and select Create > UGC Bridge > Step Assets to create an asset of this content selection step. Once created, assign this to the project settings, as the default content selection step.

Customize content publishing

To create a new content publishing step, right click in the project view and select Create > UGC Bridge > Step Templates > New Content Publishing Step Script. This creates a new content publishing step script. Enter a name and open the script.

In the script, you need to fill out:

PropertiesDescription
ContentPublishingDataData used to publish content. The property is already looked at in the base script.
MethodsDescription
OnGUI()Where the fields are drawn.
PublishAsync(Action onPublished, Action onError)This function fires the asynchronous publish calls and use the corresponding callbacks with errors or success.

You can also add any fields or methods you might need for the content publishing.

When your content publishing step script is filled, return to Unity. Right click in the project view and select Create > UGC Bridge > Step Assets to create an asset of this content publishing step. Once created, assign this to the project settings, as the default content publishing step.

Customize content validation

To create a new content validation step, right click in the project view and select Create > UGC Bridge > Step Templates > New Content Validation Step Script. This creates a new content validation step script. Enter a name and open the script.

In the script, you need to fill out:

PropertiesDescription
ValidationRulesA list of validation rules that must be valid before a content is published.
MethodsDescription
OnGUI()Where you can draw some information before the validation rules GUI is drawn.
ValidateContent()Where the validation rules are checked before content is published.

You can also add any fields or methods you might need for the content validation.

When your content validation step script is filled, return to Unity. Right click in the project view and select Create > UGC Bridge > Step Assets to create an asset of this content validation step. Once created, assign this to the project settings, as a default content validation step.

Customize content building

To create a new content building step, right click in the project view and select Create > UGC Bridge > Step Templates > New Content Building Step Script. This creates a new content building step script. Enter a name and open the script.

In the script, you need to fill out:

PropertiesDescription
OnContentBuiltEventEvent raised when the content is built into asset bundle.
MethodsDescription
Build(Object selection, string outputFolderPath)Build the selected content in the output folder.

You can also add any fields or methods you might need for the content building.

When your content building step script is filled, return to Unity. Right click in the project view and select Create > UGC Bridge > Step Assets to create an asset of this content building step. Once created, assign this to the project settings, as the default content building step.

Recommendation

The current recommendation for packaging and providing a UGC Editor Bridge project to a content creator is:

  1. Create an empty Unity project.
  2. Configure UGC Bridge settings with the project id and environment.
  3. Set up the steps.
  4. Zip the project and give that archive to your content creators.