Skip to main content

Introduction to UGC

Last updated on February 9, 2024


The User Generated Content (UGC) service offered by AccelByte Gaming Services (AGS) manages in-game contents that are created by the players. By allowing players to create their own content, they become more invested in the game world and community. They can publish and share their own content and download other players' content. Game admins can also create and publish official content that can be downloaded and used by the players.

Using the UGC service, you can enable features such as:

  • Custom levels: Allow players to create and share their own levels or maps, providing endless new challenges for other players.
  • Custom skins: Allows players to create and customize their own skins and cosmetics within the game.
  • Official cosmetics: Admins can provide official content that can be downloaded and used by the players to make their own character skin customization.

With the UGC service, there are many different scenarios that can benefit your games.

Key concepts

It is important to understand some of the key concepts used in the design of the UGC service.

User Generated Content

User Generated Content (UGC) refers to the custom content that is created by players or game admins. The content can be added to the game in the form of binary files.

Content screenshot

The content published also contains a screenshot that can be a visual representation of the digital content stored in the binary file.

Content sharecode

The published content can also have a unique sharecode that can be shared by the player to show off their creation to other players.

Like/unlike content

The UGC service allows your players to like other players' content, which can help to increase the visibility of the content and can encourage other players to create their own unique high-quality content.


Creator refers to the person or entity that creates custom content for the game. A UGC creator may be a player or a game admin.


Users can follow or unfollow other users (the content creators). The information for followed creators can be queried, including the total number of followers and a creator's content.


The UGC service manages user's content based on channels. A channel is a generic entity that is used to categorize users' content. You can use channels to group content by region, language, build version, patch, content category, or other category that suits your game scenario.

Categorize: Type, Sub Type, and Tags

Admins can create and maintain (including edit and delete) predefined types, subtypes and tags. Types and tags are unique, where subtypes must be under a parent type. When creating a preset, users can choose to use the predefined types, subtypes and tags created by admins.

UGC service architecture

This section explains how the UGC service works, and how it is integrated with other AGS services. Understanding the flow will make it easier for you to understand how best to use the service.

UGC Architecture flowchart

  • The UGC service uses the AWS DocumentDB service to store its data. UGC also uses AWS S3 to store the content's binary file and screenshot.
  • The UGC service supports the IAM ban feature. If a user is banned, the UGC service will be notified by the IAM service via Kafka. Then, the UGC service stores its ban information to DocumentDB.
  • Players can also report content that breaks the Terms and Conditions (TnC). Players can report the content using the Reporting service. The Reporting service will notify the UGC service via Kafka. Once the UGC service is notified, it can hide the reported content.

The expiration time for pre-signed S3 URLs is 7200 seconds by default. Its behavior does not change if the content delivery network (CDN) is reactivated.

Best practices

This section lists best practices we recommend you follow when managing content, screenshots, custom attributes, and content tagging.


Keep binary files less than 5 MB as smaller binary files generally lead to faster data retrieval and processing time. Binary files that are more than 5 MB may cause slower performance.

Content screenshot

  • Only store image files and keep them under 2 MB.
  • Supported file types for images are PNG, JPG, and BMP.

Content custom attributes

Keep custom attributes less than 100 KB. If your game requires custom attributes that are more than 100 KB, store it in the Cloud Save service instead.

Content tagging

  • Use a maximum of five tags per content.
  • Filter with a maximum of three tags for better performance. Using more than three tags may cause slower responses.