Access
Connect cross-platform accounts & identity management
User Generated Content (UGC) is a service that manages in-game content that has been created by your players. With UGC, players can contribute to the community as a creator by creating game items that can be downloaded by other players. The items can be a custom color for a vehicle, clothing for a character, or a new color for a weapon. Using this service, the creator can upload and then manage their content. Game Admins can upload an official preset to be used by the creator to create their own content, and can also manage user-generated content, channels, and view a list of creators for the game.
Game Admins can select items to be used as presets, which players can then modify. When a player creates a new design for one of the preset items, they can upload their design to be downloaded and used by other players that already own the preset item. Then when a player uses a custom design they’ve downloaded, that design will be visible to other players that interact with them in multiplayer games.
You can create Types and Tags that can be used to configure and categorize user generated content. For example, a custom design for a car might have Vehicle as the Type and Body or Wheels as the Subtype, depending on the part of the car that’s customized. Tags could also include Car, Vehicle, Body, or other descriptors of the design.
In the Admin Portal, click on Game Management, then click UGC Management, and open the Configurations menu.
In the Configurations menu, click the New Type button.
Input a name for the new type in the Type Name field. When you’re done, click the Add button.
The new type is added to the list. You can also add a subtype by clicking View in the type’s Action menu.
In the Subtypes section, click the New Subtypes button.
Input the Subtype Name. When you’re done, click the Add button.
The new Subtype is added to the list.
In the Admin Portal, click Game Management, then click UGC Management, and open the Configurations menu.
In the Configurations menu, switch to the Tags tab and click New Tag.
Input the Tag Name. Then, click the Add button.
In the Creators menu, you can see a list of community creators along with their followers, and you can also create a new channel for a creator, upload an official preset, and manage a creator’s content.
Each creator can have one or more channels to organize their creations. To create a channel, follow the steps below.
In the Admin Portal, go to UGC Management and click the Creators menu.
Click View next to the creator for whom you want to create the new channel.
Click the New Channel button to add a new channel.
Input the Channel Name. When you’re done, click Add and your channel will be added to the list.
In the Admin Portal, go to UGC Management and click the Creators menu.
Click View next to the creator for whom you’d like to create content.
Click View next to the channel that you have created.
On the Creator Details page that appears, click the New Content button.
Fill in the Add New Content form.
When you’re done, click Add.
In the Admin Portal, go to UGC Management and click the Creators menu.
On the Creator page, switch to the Content Groups tab and click the New Content Group button.
The Add New Content Group form appears. Fill in the form with the required information.
When you’re done, click the Add button and the Content Group containing the chosen content will be created.
In the Admin Portal, go to UGC Management and click the Contents menu.
On the Contents page, choose the content you want to see and click View under that item’s Action column.
On the Content Details Page you can see some basic information about the content, view the content, and see the groups where this content can be found.
In the Admin Portal, go to UGC Management and click the Contents menu.
On the Contents page, choose content you want to see and click View under that item’s Action column.
On the Content Details Page, click the New Screenshot button.
The Upload Image form appears. Select the screenshot you want to upload from your computer and type a description of the image in the Description field. When you’re done, click Upload.
The new screenshot will be uploaded.
Your players can report offensive or otherwise offensive content. To enable this, you’ll first need to create the reasons items can be reported, and then create reason groups to sort those reasons into.
In your Game Namespace, go to the Game Management section, open the Reporting and Moderation section, then click the Reasons.
In the Reasons tab, click Add Reason at the top-right.
The Add New Reason form will appear. Fill in the required fields.
Once completed, click Add. A new reason will be created.
INFO
You can edit a Reason Name, Description, or Delete a Reason at any time, for any reason.
In the Reason Group tab, click the Add Reason Group button at the top-right.
The Add Reason Group form will appear. Fill in the required fields.
Click Add. The new reason group will be created.
INFO
You can edit a Reason Group, Description, or Delete a Reason Group at any time, for any reason.
You can view reports, remove reported content, and discipline reported players.
Go to the Game Management section, click Reporting and Moderation, and select Tickets.
On the UGC Tickets page, you can see the list of reported content. Click View next to the report you want to open.
On the Report Details page, click View Content.
The Content Details page will appear.
On the Ticket page, click View Profile to view the player that posted the reported content.
You’ll be directed to their profile where you can take action based on your game’s policies.
On the Ticket page, click View in the Reporter section down the bottom.
The Reporter Details window will appear. Here you can view information about the reporting player.
Hiding content prevents players from seeing it, without deleting it. You can also reveal previously hidden content, which will make the content visible to players.
On the Ticket page, click the Hide Content button at the top of the page.
The Hide Content confirmation box will appear. Click the Hide button to confirm.
The reported content will be hidden. To reveal previously hidden reported content, click Unhide Content at the top of the Ticket page.
The Unhide Content confirmation box will appear. Click the Unhide button to confirm.
On the Ticket page, click the Delete Content button at the top of the page.
The Delete Content confirmation box will appear. Please double-check before deleting the content as this action is not reversible. Click the Delete button to confirm.
This feature allows you to quickly ban an offending player from uploading content without banning them from your game completely. For more robust ban options, see the User Bans documentation.
On the Ticket page, click the Ban User button at the top of the page.
The UGC Ban form will appear. Fill in the following fields:
IMPORTANT
Players that log into your game using third party credentials may only have a headless account in the Admin Portal, which means that their account will have no email address associated with it. Only players that have registered an account in your game or platform, or have upgraded their headless account by registering an email address in your game, will be able to receive an email notification if they’re banned. For more information about headless accounts, see the Third-party Login Integration documentation.
Once completed, click the Bans button. The reported user will be banned from uploading content until their ban expires or they are unbanned.
To unban a banned user, click the Unban User button at the top of the page.
The Disable Ban confirmation box will appear. Click the Disable button to confirm.
Resolving a report allows you to indicate to your colleagues that the report has been addressed and requires no further action. You can also unresolve a previously resolved report if it turns out further action needs to be taken.
On the Ticket page, click the Resolve Ticket button to resolve the report.
The Resolve Ticket confirmation box will appear. Fill in the Note field with the reason you’re resolving the report, then click the Resolve button to confirm.
The reported content will be marked as resolved. To reopen the reported content ticket, click the Unresolve Ticket button.
The Unresolve Ticket confirmation box will appear. Fill in the Note field with the reason you’re reopening the report, then click Unresolve to confirm.
Go to the Game Management section, click Reporting and Moderation, and select Tickets.
On the Tickets page and Player tab, you can see the list of reported player. Click View next to the report you want to open.
On the Ticket Details page and Reports section, you can see list of the report that the player received. To open the details of the desired report, click View.
The Reporter Details window appears. You can the see the report details here.
On the Ticket Details page and Player Details section, click View Profile.
You’ll be directed to their profile where you can take action based on your game’s policies.
On the Ticket Details page, click Ban User button at the top of the page.
The Account Ban form appears. Fill in the following fields:
IMPORTANT
Players that log into your game using third-party credentials may only have a headless account in the Admin Portal, which means that their account will have no email address associated with it. Only players that have registered an account in your game or platform, or have upgraded their headless account by registering an email address in your game, is able to receive an email notification if they’re banned. For more information about headless accounts, see the Third-party Login Integration documentation.
Once completed, click the Bans button. The reported user is banned from uploading content until their ban expires or they are unbanned.
To unban a banned user, click the Unban User button at the top of the page.
The Disable Ban confirmation box appears. Click the Disable button to confirm.
On the Ticket Details page, click the Resolve Ticket button to resolve the report.
The Resolve Ticket confirmation box appears. Fill in the Note field with the reason you’re resolving the report, then click the Resolve button to confirm.
The reported content is marked as resolved. To reopen the reported content ticket, click the Unresolve Ticket button.
The Unresolve Ticket confirmation box appears. Fill in the Note field with the reason you’re reopening the report, then click Unresolve to confirm.
You can set limits for how many times a player can make a report, as well as for how many times a piece of content can be reported. These limits help to prevent players from abusing the report function.
In the Admin Portal, go to the Game Management section, open Reporting and Moderation, and click Configuration.
On the Configuration page, open the Rate Limit tab and fill in the following fields with the desired values:
TIP
If the Max. Report Per User value is 3 and the Limit interval (minutes) value is 6, then a single player can submit 3 reports per 6 minutes. Any additional reports submitted within that limit interval will return errors.
You can set the Admin Portal’s Auto Moderation feature to take effect according to preset reasons, rules, or rates.
In the Admin Portal, go to the Game Management section, open the Reporting and Moderation section, and click Configuration.
On the Configuration page, open the Auto Moderation tab. Click the Add New button.
The Add Auto Moderation Rules form will appear. Fill in the following fields:
Once completed, click the Add button. New rule will be applied.
This function returns the list of reason group IDs and titles under a given namespace.
This function returns the list of reasons, optionally filtered by reason group
Players can report a content creator that has posted inappropriate content. A player can only report a creator once. If they try to report the same creator more than once, they’ll receive an error message. To implement reporting, use the following function:
There are two steps to uploading UGC content to cloud storage. First, you must get the pre-signed URL you need to upload the content, and then with that URL you perform the upload. The URL can only be used once, so it must be retrieved every time you want to upload content.
NOTE
The content you upload will be saved to a storage stack of your choosing, such as an S3 Bucket or MinIO. To find out how this content can be accessed publicly, contact AccelByte.
The pre-signed URL is generated by this API endpoint.
curl -X POST "<<base_url>>/ugc/v1/public/namespaces/<<namespace>>/users/<<userId>>/channels/<<channelId>>/contents/s3" -H "accept: application/json" -H "Authorization: Bearer <<access_token>>" -H "Content-Type: application/json" -d "{ \"contentType\": \"string\", \"fileExtension\": \"string\", \"name\": \"string\", \"preview\": \"string\", \"subType\": \"string\", \"tags\": [ \"string\" ], \"type\": \"string\"}"
Type the above code into the command prompt:
Replace <<base_url>> with the base URL of the environment or service. For example, the base URL of the AccelByte demo is https://demo.accelbyte.net.
Replace <<namespace>> with the namespace that the resource will be uploaded to.
Replace <<access_token>> with the access token you received when you were authenticated.
Replace <<userId>> with the User ID of the creator.
Replace <<channelId>> with the Channel ID of the channel that contains the content you want to upload.
Fill in the Request Body.
NOTE
Only .jpeg, .jpg, .png, .bmp, txt, .gif, .mp3, and .bin or untyped (file without extension) file types can be uploaded.
The following fields are optional:
Then hit Enter.
{
"channelId": "string",
"contentType": "string”,
"createdTime": "string",
"creatorName": "string",
"fileExtension": "string",
"id": "string",
"isHidden": true,
"isOfficial": true,
"name": "string",
"namespace": "string",
"payloadURL": [
{
"source": "string",
"url": "string"
}
],
"preview": "string",
"shareCode": "string",
"subType": "string",
"tags": [
"string"
],
"type": "string",
"userId": "string"
}
IMPORTANT
Remember that this URL can only be used once.
curl -X PUT "<<url>>" -H "Content-Type: <<content_type>>" --data-binary "@<<resource_path>>"
Type the above code into the command prompt:
Then hit Enter.
NOTE
You need to specify the content type same with contentType value when you create content request, if not specified when create request use fileExtension as Content-Type header instead.
If the upload is successful, status code 200 will be returned.
Besides uploading content through the REST API, UGC content can also be uploaded using the SDK. The steps are the same as in the REST API implementation. First, you must get a pre-signed URL, then you can upload the content to cloud storage.
You can use this function to get a pre-signed URL that you can use to upload your content to cloud storage.
To upload the content to cloud storage, use the following function. You’ll need the pre-signed URL you retrieved in the previous step.
Before using the UGC service from the SDK, you will need to initialize your server-side SDK to make you authorized and able to perform create, read, update, and delete actions.
Before using the UGC service from the Golang SDK, you will need to initialize the SDK by following the steps below:
Once completed, you can use the Golang SDK to create, read, update, or delete UGC (opens new window) from your serverless app.
Before using the UGC service from the Python SDK, you will need to initialize the SDK by following the steps below:
Once completed, you can use the Python SDK to create, read, update, or delete UGC (opens new window) from your serverless app.
Before using the UGC service, you will need to set some permissions. Use the following .NET namespaces:
using AccelByte.Sdk.Api.Ugc.Model;
using AccelByte.Sdk.Api.Ugc.Operation;
using AccelByte.Sdk.Api.Ugc.Wrapper;
Before using the UGC service, you will need to set some permissions. Initialize the AdminTag wrapper from the UGC service using the following code:
AdminTag wAdminTag = new AdminTag(sdk);
Once completed, you can use the SDK to create, read, update, or delete tags.
Use the following function to create a tag (opens new window):
Use the following function to delete a tag (opens new window):
Use the following function to retrieve tags (opens new window):
Use the following function to update a tag (opens new window):