IP Library Granted Patent US 12702925
Granted Patent B2
US 12702925 · App. 18/509,416 · Granted Aug 11, 2026

Managing of a user-created game object to provide secure and predictable game performance

Inventors: Kevin Holly (Ebergassing, AT); Jesse Joudrey (Port Coquitlam, CA); Jason Nuccio (San Francisco, CA); Euan Polson (Aberdeen, GB); Aaron McLean (Surrey, CA)
Assignee: VRCHAT INC.
A63F13/63A63F13/35A63F13/70
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12702925
App. No.
18/509,416
Granted
Aug 11, 2026
Kind
B2
Abstract

The present technology receives raw assets of user-generated content at a platform server. The platform server can utilize techniques to recognize reused assets to avoid storing duplicate data. Additionally, the present technology can utilize a validation scheme by which portions of user content that include executable code are only permitted to be uploaded to the platform server when these portions of the user content are recognized and are already known to be safe. Additionally, the present technology can be configured to modify the raw assets of the content to be compatible with the latest updates to the platform and to the distribution platforms in which the user-generated content will be executed.

Claims (96)

1 . A method comprising:

requesting a tree of asset dependencies from a game object editing environment for a user-created game object;

analyzing, the tree of asset dependencies to identify prohibited assets;

removing the prohibited assets from the tree of asset dependencies to yield a collection of permitted assets making up the user-created game object;

evaluating the collection of permitted assets making up the user-created game object for compatibility with a particular distribution platform;

performing a deduplication process to identify at least portions of the assets in the collection of permitted assets making up the user-created game object that already exist at a platform server;

transmitting portions of the assets in the collection of permitted assets making up the user-created game object that does not already exist at the platform server to the platform server; and

compiling the collection of permitted assets making up the user-created game object for distribution to the particular distribution platform.

2 . The method of claim 1 , further comprising:

generating a unique identifier for the user-created game object; and

creating a manifest for the user-created game object, the manifest including a listing collection of permitted assets making up the user-created game object.

3 . The method of claim 1 , wherein the analyzing the tree of asset dependencies to identify the prohibited assets further includes:

determining that at least one asset in the tree of asset dependencies is in a risky asset when the risky asset belongs to a class of risky assets;

determining that risky asset is in a permitted list, maintaining the risky asset in the permitted list in the tree of asset dependencies;

determining that the risky asset is not in the permitted list or is in a prohibited list and classifying the risky asset as one of the prohibited assets.

4 . The method of claim 1 , further comprising:

modifying one or more assets in the collection of permitted assets making up the user-created game object for improved performance on the particular distribution platform to yield a modified asset.

5 . The method of claim 4 , further comprising:

prior to the compiling, performing at least one security check, the at least one security check including at least one of checking a file structure against a specification, checking a manifest and the tree of asset dependencies to ensure the assets referenced by the manifest and the tree of asset dependencies are present and in the correct format.

6 . The method of claim 4 , further comprising:

performing a runtime check of the user-created game object after the compiling by executing the user-created game object in a sandbox to validate an acceptable performance of the user-created game object.

7 . The method of claim 4 , further comprising:

after the compiling the collection of permitted assets making up the user-created game object for distribution to the particular distribution platform, determining that the particular distribution platform has received an update and is now an updated version of the particular distribution platform;

retrieving the collection of permitted assets making up the user-created game object using the manifest for the user-created game object;

modifying one or more assets in the collection of permitted assets making up the user-created game object for improved performance on the updated version of the particular distribution platform to yield a modified asset; and

again compiling the collection of permitted assets making up the user-created game object for distribution to the updated version of the particular distribution platform.

8 . The method of claim 1 , wherein the deduplication process further comprises:

identifying a known asset in the collection of permitted assets making up the user-created game object;

generating a pointer to a verified version of the known asset that is accessible to the platform server;

dividing an unknown asset in the collection of permitted assets making up the user-created game object into a plurality of blocks;

hashing the plurality of blocks using a deterministic hashing algorithm to yield hash values for the plurality of blocks;

transmitting the hash values for the plurality of blocks to the platform server;

receiving a list of the plurality of blocks from the platform server having unique hash values; and

transmitting data making up the plurality of blocks having the unique hash values to the platform server.

9 . A computing system comprising:

a processor; and

a memory storing instructions that, when executed by the processor, configure the system to:

request a tree of asset dependencies from a game object editing environment for a user-created game object;

analyze, the tree of asset dependencies to identify prohibited assets;

remove the prohibited assets from the tree of asset dependencies to yield a collection of permitted assets making up the user-created game object;

evaluate the collection of permitted assets making up the user-created game object for compatibility with a particular distribution platform;

perform a deduplication process to identify at least portions of the assets in the collection of permitted assets making up the user-created game object that already exist at a platform server;

transmit portions of the assets in the collection of permitted assets making up the user-created game object that does not already exist at the platform server to the platform server; and

compile the collection of permitted assets making up the user-created game object for distribution to the particular distribution platform.

10 . The computing system of claim 9 , wherein the analyzing the tree of asset dependencies to identify the prohibited assets further includes:

determine that at least one asset in the tree of asset dependencies is in a risky asset when the risky asset belongs to a class of risky assets;

determine that risky asset is in a permitted list, maintaining the risky asset in the permitted list in the tree of asset dependencies;

determine that the risky asset is not in the permitted list or is in a prohibited list and classifying the risky asset as one of the prohibited assets.

11 . The computing system of claim 9 , wherein the instructions further configure the system to:

modify one or more assets in the collection of permitted assets making up the user-created game object for improved performance on the particular distribution platform to yield a modified asset.

12 . The computing system of claim 11 , wherein the instructions further configure the system to:

prior to the compiling, perform at least one security check, the at least one security check including at least one of checking a file structure against a specification, checking a manifest and the tree of asset dependencies to ensure the assets referenced by the manifest and the tree of asset dependencies are present and in the correct format.

13 . The computing system of claim 11 , wherein the instructions further configure the system to:

perform a runtime check of the user-created game object after the compiling by executing the user-created game object in a sandbox to validate an acceptable performance of the user-created game object.

14 . The computing system of claim 11 , wherein the instructions further configure the system to:

after the compiling the collection of permitted assets making up the user-created game object for distribution to the particular distribution platform, determining that the particular distribution platform has received an update and is now an updated version of the particular distribution platform;

retrieve the collection of permitted assets making up the user-created game object using a manifest for the user-created game object, the manifest including a listing collection of permitted assets making up the user-created game object;

modify one or more assets in the collection of permitted assets making up the user-created game object for improved performance on the updated version of the particular distribution platform to yield a modified asset; and

again compile the collection of permitted assets making up the user-created game object for distribution to the updated version of the particular distribution platform.

15 . The computing system of claim 9 , wherein the deduplication process further comprises:

identify a known asset in the collection of permitted assets making up the user-created game object;

generate a pointer to a verified version of the known asset that is accessible to the platform server;

divide an unknown asset in the collection of permitted assets making up the user-created game object into a plurality of blocks;

hash the plurality of blocks using a deterministic hashing algorithm to yield hash values for the plurality of blocks;

transmit the hash values for the plurality of blocks to the platform server;

receive a list of the plurality of blocks from the platform server having unique hash values; and

transmit data making up the plurality of blocks having the unique hash values to the platform server.

16 . A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that configure the at least one processor to:

request a tree of asset dependencies from a game object editing environment for a user-created game object;

analyze, the tree of asset dependencies to identify prohibited assets;

remove the prohibited assets from the tree of asset dependencies to yield a collection of permitted assets making up the user-created game object;

evaluate the collection of permitted assets making up the user-created game object for compatibility with a particular distribution platform;

perform a deduplication process to identify at least portions of the assets in the collection of permitted assets making up the user-created game object that already exist at a platform server;

transmit portions of the assets in the collection of permitted assets making up the user-created game object that does not already exist at the platform server to the platform server; and

compile the collection of permitted assets making up the user-created game object for distribution to the particular distribution platform.

17 . The computer-readable storage medium of claim 16 , wherein the analyzing the tree of asset dependencies to identify the prohibited assets further includes:

determine that at least one asset in the tree of asset dependencies is in a risky asset when the risky asset belongs to a class of risky assets;

determine that risky asset is in a permitted list, maintaining the risky asset in the permitted list in the tree of asset dependencies;

determine that the risky asset is not in the permitted list or is in a prohibited list and classifying the risky asset as one of the prohibited assets.

18 . The computer-readable storage medium of claim 16 , wherein the instructions further configure the at least one processor to:

modify one or more assets in the collection of permitted assets making up the user-created game object for improved performance on the particular distribution platform to yield a modified asset.

19 . The computer-readable storage medium of claim 18 , wherein the instructions further configure the at least one processor to:

prior to the compiling, perform at least one security check, the at least one security check including at least one of checking a file structure against a specification, checking a manifest and the tree of asset dependencies to ensure the assets referenced by the manifest and the tree of asset dependencies are present and in the correct format.

20 . The computer-readable storage medium of claim 18 , wherein the instructions further configure the at least one processor to:

after the compiling the collection of permitted assets making up the user-created game object for distribution to the particular distribution platform, determining that the particular distribution platform has received an update and is now an updated version of the particular distribution platform;

retrieve the collection of permitted assets making up the user-created game object using a manifest for the user-created game object, the manifest including a listing collection of permitted assets making up the user-created game object;

modify one or more assets in the collection of permitted assets making up the user-created game object for improved performance on the updated version of the particular distribution platform to yield a modified asset; and

again compile the collection of permitted assets making up the user-created game object for distribution to the updated version of the particular distribution platform.

21 . The computer-readable storage medium of claim 16 , wherein the deduplication process further comprises:

identify a known asset in the collection of permitted assets making up the user-created game object;

generate a pointer to a verified version of the known asset that is accessible to the platform server;

divide an unknown asset in the collection of permitted assets making up the user-created game object into a plurality of blocks;

hash the plurality of blocks using a deterministic hashing algorithm to yield hash values for the plurality of blocks;

transmit the hash values for the plurality of blocks to the platform server;

receive a list of the plurality of blocks from the platform server having unique hash values; and

transmit data making up the plurality of blocks having the unique hash values to the platform server.