-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
4175072
commit 4daf935
Showing
326 changed files
with
9,880 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
name: Push files into modio-docs-public | ||
on: | ||
push: | ||
branches: | ||
- "main" | ||
paths: | ||
- "public/**" | ||
workflow_dispatch: | ||
|
||
jobs: | ||
push-files-to-modio-docs-public: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Clone repo | ||
uses: actions/checkout@v4 | ||
|
||
# - name: Create docs structure to be pushed into modio-docs | ||
# run: | | ||
# Tools/create-docs.sh | ||
|
||
- name: Push public docs to modio-docs | ||
uses: cpina/github-action-push-to-another-repository@main | ||
env: | ||
API_TOKEN_GITHUB: ${{ secrets.DOCS_ACCESS_TOKEN }} | ||
with: | ||
source-directory: public | ||
destination-github-username: "modio" | ||
destination-repository-name: "modio-docs" | ||
commit-message: "docs: updating public docs from modio-docs-public repo" | ||
target-branch: main | ||
target-directory: public |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#!/bin/bash | ||
# Create the folder structure of the docs | ||
mkdir -p Intermediate/public/ | ||
|
||
# Copy docs | ||
cp public/** Intermediate/public |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
--- | ||
id: platforms-further-reading | ||
title: Console SDKs | ||
slug: /platforms/console-sdks/ | ||
sidebar_position: 4 | ||
--- | ||
|
||
# Console SDKs | ||
|
||
For studios that have signed the appropriate NDA with the relevant platfrom, we offer console modules for each SDK and accompanying documentation: | ||
|
||
* [PlayStation®4](https://docs.mod.io/partners/ps4/) | ||
* [PlayStation®5](https://docs.mod.io/partners/ps5/) | ||
* [Xbox GDK](https://docs.mod.io/partners/xbox/) | ||
* [Nintendo Switch](https://docs.mod.io/partners/switch/) | ||
|
||
:::note | ||
These links will only work for studios who we have verified as being under the applicable NDA. If you believe you are, but cannot access the documentation, please contact us. | ||
::: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
--- | ||
id: platforms-gdk | ||
title: Xbox One & Xbox Series X/S | ||
slug: /platforms/gdk/ | ||
sidebar_position: 3 | ||
--- | ||
import CrossLink from '@site/src/components/CrossLink' | ||
|
||
# Xbox One & Xbox Series X/S | ||
|
||
Requirements for Xbox One & Xbox Series X/S typically include: | ||
* UGC cannot run scripts or execute code, unless sufficient mitigations are demonstrated to be in place (e.g. sandboxing or manual curation of content) | ||
* UGC must work without the need for manual installation | ||
* All “words” must be run through the Xbox word filter | ||
* All data must be XR-012 (secure data transfer) compliant | ||
* User consent is required the first time before authenticating an Xbox user | ||
* If the Xbox user has UGC parental controls disabled, the UGC menu and any UGC installed must be disabled | ||
|
||
We recommend contacting your Microsoft representative to establish their rules for UGC on their platform and any specific requirements you will need to meet. We can assist you with this process, and introduce you to our contact Vince Loiseleur (Developer Partner Manager) if this would be helpful, to get these approvals processed. | ||
|
||
## SDK Access | ||
|
||
In order to allow access to the GDK Support modules for Xbox, we need to verify your status with Microsoft as an approved developer via our account manager. | ||
|
||
To do this, please notify your contact at mod.io that you require this access and provide us with the following details as they would be recorded by Microsoft: | ||
* Your Company Name | ||
* Your Title/Game Name | ||
* The email domain/address registered with Microsoft. (eg. \*@mod.io) | ||
|
||
Once our account manager confirms your status, we will provide you with the support module for your integration solution. | ||
|
||
## Moderation | ||
|
||
On Xbox, only UGC which follows the rules should be made available to download and play. Our moderation tools and web dashboard allow you to control this process and manage the types of UGC available on the Xbox Platform without any additional development required. | ||
|
||
## Authentication | ||
|
||
On Xbox platforms, you can authenticate the user via our Xbox Live authentication flow, or using their email address. We highly recommend using Xbox Live authentication where possible, as it is instant vs email which is not. | ||
|
||
If your implementation displays the mod.io website or custom web app through a browser overlay, we recommend adding the following query strings to the URL depending on the authentication method you have chosen to support: | ||
* Xbox Live Authentication: `?portal=xboxlive&login=auto` | ||
* Email Authentication: `?portal=email` | ||
|
||
This will provide users with a streamlined login experience tailored to the appropriate login method (example below): | ||
|
||
![Xbox Live log in interface available in the mod.io web UI](images/console-support/xbox_auth_web.png) | ||
|
||
Please contact us for further instructions for authenticating with Xbox Live: [[email protected]](mailto:[email protected]) | ||
|
||
## Consent | ||
|
||
If you choose to use Xbox Live authentication (this isn’t required for email), it is a requirement from Microsoft that consent is collected before a user is authenticated for the first time. So when a user clicks the “UGC” button in-game, you must display an acceptance dialog similar to the one explained [Terms & User Consent](/user-consent/) guide. | ||
|
||
## Networking & Storage | ||
|
||
Storage space available for UGC will be limited, and allocation for space dedicated to UGC will require an entry in your MicrosoftGame.config file. We recommend using ‘Growable Persistent Local Storage’ to allocate the space you require for UGC, as this reduces the up-front storage required on the device. All games that implement mod.io services will require space for storing cached and downloaded data, as well as space for storing user-specific data. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
--- | ||
id: platforms | ||
title: Supporting Console Platforms | ||
slug: /platforms/ | ||
sidebar_position: 0 | ||
--- | ||
|
||
import CrossLink from '@site/src/components/CrossLink' | ||
|
||
# Supporting Console Platforms | ||
|
||
[mod.io](https://mod.io/) is a fully authorized middleware provider for Xbox, PlayStation®4, PlayStation®5 and Nintendo Switch. | ||
|
||
| | **Service Availability** | **Certification Support** | **Native SDK** | **Single Sign-On** | | ||
|------|------|------|------|------| | ||
| **Xbox One** | ✓ | ✓ | ✓ | ✓ | | ||
| **Xbox Series X** | ✓ | ✓ | ✓ | ✓ | | ||
| **Nintendo Switch** | ✓ | ✓ | ✓ | ✓ | | ||
| **PlayStation 4** | ✓ | ✓ | ✓ | ✓ | | ||
| **PlayStation 5** | ✓ | ✓ | ✓ | ✓ | | ||
|
||
You can see examples of [mod.io](https://mod.io/) running on consoles in the following titles today: | ||
* SnowRunner - Xbox, PS4™/PS5®, Switch ([https://mod.io/g/snowrunner](https://mod.io/g/snowrunner)) | ||
* Space Engineers - Xbox ([https://mod.io/g/spaceengineers](https://mod.io/g/spaceengineers)) | ||
* Skater XL - Xbox, PS4/PS5 ([https://mod.io/g/skaterxl](https://mod.io/g/skaterxl)) | ||
|
||
If you would like to see an example of [mod.io](https://mod.io/) working in any of these games or other titles, please contact [[email protected]](mailto:[email protected]) for demonstration keys. | ||
|
||
## mod.io Console Featureset | ||
|
||
We provide a number of tools and features, built directly into our dashboard, APIs and SDKs that are designed to make it easy to support UGC on console platforms. These include: | ||
|
||
* SDKs and engine plugins for Unity and Unreal that have abstracted networking and data storage layers to allow any platform or future system to be supported with minimal engineering effort required | ||
* Fully compliant moderation systems that allow you to control UGC released onto each platform | ||
* Ability to upload platform-specific UGC files, helpful if you need to “compile” UGC to work with each respective platform | ||
* Tagging and metadata systems to manage UGC on a per-platform basis | ||
* [Platform and portal headers](https://docs.mod.io/restapiref/#platforms) used to localize content (i.e. display names) and other settings automatically | ||
* Word filtering and other processes required by each platform | ||
* Support for onboarding, and certification requirements around UGC | ||
* Advanced metrics and reporting so you can compare the usage of UGC, trending content and other key stats across all platforms your games are released | ||
* Rules based moderation flows to streamline and automate moderation depending on the platform(s) targeted | ||
|
||
Future functionality to include: | ||
* Monetization that is compliant with each platforms rules and payment flows | ||
|
||
![SnowRunner in-game mod browser on Xbox](images/console-support/snowrunner_ui.jpg) | ||
|
||
_Example Implementation: SnowRunner in-game UGC browser on Xbox_ | ||
|
||
## Getting Started | ||
|
||
Before embarking on UGC support with any new platform, your first step should be to speak to your account manager and let them know you intend on supporting UGC using mod.io. This allows you to begin the process of understanding what rules exist and information they require from you, in-order for your plans to pass certification. | ||
|
||
If you need an introduction to our account managers who understand mod.io and UGC, let us know and we will connect you with: | ||
* Sony Interactive Entertainment: Antonio Grasso - Global Technology Partnerships | ||
* Microsoft Xbox: Vince Loiseleur - Developer Partner Manager | ||
* Nintendo Switch: Ulysse Richert-Botté - Developer Relations | ||
|
||
![Skater XL in-game mod browser on PlayStation](images/console-support/skaterxl_ui.png) | ||
|
||
_Example Implementation: Skater XL in-game UGC Browser on PS4/PS5_ | ||
|
||
A well managed UGC implementation should work cross-platform, with minimal additional effort, since our tools solve the engineering side, and our REST API and web dashboards solves the moderation, reporting and processing side. Most of the work to pass certification is documentation and ensuring your UGC implementation follows the rules you agreed to with each respective platform. | ||
|
||
The process we recommend to bring UGC to consoles is: | ||
1. Contact your platform account manager and draft a document which explains how UGC will function in your game, and answers any questions they raise. We can help with the preparation and review of this document. Key sections your platform account manager will want to see addressed include: | ||
* Storage systems and space required | ||
* Your moderation and reporting process | ||
* How UGC is created (in-game or via 3rd party editing tools) | ||
* How players engage with UGC (in-game and by subscribing via your UGC Hub website) | ||
* How content delivery happens (using mod.io secured APIs) | ||
* Type of UGC being shared (levels, skins, configs) | ||
* Does the UGC execute scripts | ||
1. Begin work on your implementation, which should follow your documentation, and adhere to each platforms requirements, which typically are: | ||
* No scripts, or approved / sandboxed scripts only | ||
* No network, filesystem access, or approved / sandboxed access only | ||
* UGC should be stored in an appropriate location and not mixed or overwriting game files | ||
* If UGC has the potential to crash your game, users must be able to disable it on launch (or ideally only initialize UGC when playing with them) | ||
* You must have a way for users to report UGC, and a process for reported UGC to be taken down (we solve this) | ||
* Consoles have limited filespace. Expect to be working with a limited storage allocation for UGC installation (our plugins make it easy to manage this allocation) | ||
* Users with parental controls that disable UGC cannot have access to UGC | ||
* Users' consent must be collected prior to providing access to UGC | ||
* If you know the users platform display name, you must show it alongside their content (we solve this) | ||
|
||
The overall complexity is quite low once you’ve got your game loading and running custom content. Ideally complete your UGC implementation on PC first, before expanding your implementation to other platforms with all of the above in place, to ensure certification is streamlined and efficient. | ||
|
||
## Moderation | ||
|
||
Our moderation dashboard provides you with all the tools required to comply with the content management rules required by Microsoft, Sony and Nintendo. You can choose to allow all content automatically, or require content be approved before being made available. | ||
|
||
#### Allowing all content automatically | ||
|
||
This is the default used by most games, especially those where content creation happens in-game. Other games typically allow all content automatically on PC (with no moderation), but approve content before it appears on console using our per-platform file moderation system. This is our recommended approach as it gives your community maximum flexibility, is the simplest to manage, allows you to adhere to console guidelines, and is proven from a DMCA perspective. | ||
|
||
#### Moderating all content | ||
|
||
If you prefer to control all content prior to going live, you can turn on a full moderation system. This is generally used by games that want to control what is released across all platforms. Speak to us if you would like to experiment with our rules based moderation flow, or community moderation queue as a more automated way of moderating all content. | ||
|
||
An introduction to our moderation flow [is provided in our blog](https://blog.mod.io/how-to-effectively-moderate-user-generated-content-mods-ceb2a05eeeed), and a how-to guide [is available here](https://blog.mod.io/how-moderating-works-9a7e923c625a). We can provide training for your team or take full responsibility for moderation if that is your preferred approach. | ||
|
||
### Reporting | ||
|
||
A requirement of all consoles, and a critical piece for maintaining a safe UGC environment is supporting a reporting process for content. This process must always be running, and pair with the moderation process chosen above. It must allow the community to report content that is “in-compatible, offensive, stolen or false” and also allow IP rights holders to submit DMCA notices. | ||
|
||
Users can report content via the mod.io website (see: [https://mod.io/report](https://mod.io/report)). Games can either link to that report interface, or implement their own in-game which our SDK and engine plugins support if using the UI we provide for Unity and Unreal. | ||
|
||
![Content reporting interface available via the web UI](images/console-support/report-dialog.png) | ||
|
||
A dashboard interface is available to all game moderators, who are responsible for actioning reports that come in. These reports are also shown to mod.io staff, who will support your team and take action as per our negotiated terms. | ||
|
||
You can also set automatic thresholds, which will hide content automatically and hold it for review once a predefined number of reports have been submitted (decided by you). | ||
|
||
### Content Submission Flow | ||
|
||
User-generated content can be created either through in-game tools, out-of-game tools that are provided by you, or third-party tools (such as blender). The types of content you wish to support, and how these are created, are at your discretion, as long as they comply with the rules of each platform. | ||
|
||
Where an in-game editor isn’t provided, content will generally be created on PC using in-house or third-party development software and tools. This content is then submitted into the mod.io system either through your tools interface, or via the mod.io web interface. Content is then moderated and approved for consoles. | ||
|
||
![Content Submission Flow Diagram](images/console-support/submission_flow.png) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
--- | ||
id: platforms-playstation | ||
title: PlayStation®4 & PlayStation®5 | ||
slug: /platforms/playstation/ | ||
sidebar_position: 1 | ||
--- | ||
import CrossLink from '@site/src/components/CrossLink' | ||
|
||
# PlayStation®4 & PlayStation®5 | ||
|
||
Typical requirements for PS4™ & PS5® games include: | ||
* UGC cannot run scripts or execute code, unless sufficient mitigations are demonstrated to be in place (e.g. sandboxing or manual curation of content) | ||
* UGC must work without the need for manual installation | ||
* Titles utilising [mod.io](https://mod.io/) must allow users the option of playing without mod.io functionality | ||
* If content is created by a user on PS4/PS5, the display name of the user must be shown as the creator if available (our system does this automatically if you configure your [platform headers correctly](https://docs.mod.io/restapiref/#platforms)) | ||
* User consent is required the first time before authenticating a user on PS4/PS5 or accessing data from mod.io. Note: a users consent in one game cannot be used in another, all games must get a users consent individually. | ||
* If the user has UGC parental controls disabled, the UGC menu and any UGC installed must be disabled | ||
* Users must be able to play your game without having to create a mod.io account, however UGC should not be made available to users without a mod.io account. This is required to adhere to the TRCs of ensuring consent is collected, and the user has the ability to block content from other users. | ||
* All data [mod.io](https://mod.io/) provides relating to metrics and usage connected to PS4/PS5, are provided at a partner level only, and for private internal use by your team only | ||
* Disclose usage of [mod.io](https://mod.io/) when submitting proposals for UGC implementations and approval via DevNet | ||
* All existing Technical Requirements, cross-platform Policy requirements and business policies remain in effect. You need to seek appropriate waivers via standard process if your implementation of mod.io contravene these requirements. | ||
|
||
All games supporting UGC must be approved individually, and you will be required to go through a dedicated UGC approval process with Sony Interactive Entertainment directly once you are ready to launch the functionality. We recommend contacting your Sony Interactive Entertainment representative to establish their rules for UGC on PS4/PS5 and any specific requirements you will need to meet. We can assist you with this process, and introduce you to our contact in Sony Interactive Entertainment: Antonio Grasso - Global Technology Partnerships if this would be helpful, to get these approvals processed. | ||
|
||
## SDK Access | ||
|
||
Please contact us for access to the PS4/PS5 SDKs so we can guide you through the steps: [[email protected]](mailto:[email protected]) | ||
|
||
## Moderation | ||
|
||
On PS4/PS5, only UGC which follows the rules should be made available to download and play. Our moderation tools and web dashboard allow you to control this process and manage the types of UGC available on PS4/PS5 without any additional development required. | ||
|
||
## Authentication | ||
|
||
On PS4/PS5, you can authenticate the user via our PlayStation™Network authentication flow, or by using their email address. We highly recommend using the authentication flow where possible, as it is instant vs email which is not, and more importantly synchronizes a user's PlayStation Network blocklist. The ability to be able to block content from users is a TRC requirement, therefore users must be authenticated before they can access your UGC content via mod.io. | ||
|
||
If you choose to use PlayStation Network authentication, Sony Interactive Entertainment requires that you collect user consent before they are authenticated for the first time. So when a user clicks the “UGC” button in-game, you must display an [acceptance dialog](/user-consent/). | ||
|
||
If your implementation displays the mod.io website or custom web app through a browser overlay, we recommend adding the following query strings to the URL depending on the authentication method you have chosen to support: | ||
* PlayStation Network Authentication: `?portal=psn&login=auto` | ||
* Email Authentication: `?portal=email` | ||
|
||
This will provide users with a streamlined login experience tailored to the appropriate login method (example below): | ||
|
||
![PlayStation Network log in interface available in the mod.io web UI](images/console-support/psn_auth_web.png) | ||
|
||
Please contact us for more details on how to authenticate with PSN: [[email protected]](mailto:[email protected]) | ||
|
||
## Networking & Storage | ||
|
||
Storage space available for UGC will be limited, and allocation for space dedicated to UGC will require approval from Sony Interactive Entertainment, who will require you to manage a strict data budget. All games that implement mod.io services will require space for storing cached and downloaded data, as well as space for storing user-specific data. |
Oops, something went wrong.