Skip to main content
These instructions are only for testing purposes. For retail scenarios, this data is autoconfigured according to the metadata in Partner Center. The options selected in the flow for creating compilation discs are used to control the installation order, autoplay, and more. You don’t submit the test metadata or JSON config files to us directly when you submit your games for ingestion.
This topic explains how to create test discs. You can create the following types of test discs.

Compilations

Create a test compilation disc

To create and test a compilation disc, you need to create a catalog.js metadata file and a disc layout described as follows.

Create a disc layout

Create a disc layout that looks like the following example.
Where the directories have the following content:
  • Licenses contains the license files for the games. This information isn’t needed for XBOX One ERA dev kits. Make sure to use XVCs that are created with the /LT flag. Afterward, these can be omitted.
  • MSXC contains the packaged games and the metadata that are used by the XBOX shell.
  • Metadata contains the metadata that the shell uses for games on the disc and for game packages.
  • Bundle contains images that are used by the shell.
  • Package1.XVC contains images that are used by the shell for the first game. The name must match that of the game package file in MSXC.
  • Package2.XVC contains images that are used by the shell for the second game. The name must match that of the game package file in MSXC.

Catalog.js

In the Metadata folder, create a file called catalog.js. Edit this file to reflect the names of your packages and images in the other folders. This file must be UTF-16 LE encoded. We recommend using a JSON validator on the web. To ensure that the JSON is valid, copy it into a text editor and then save the file in UTF-16 LE format.
Example of a catalog.js file for a multi-game scenario with comments
Example of catalog.js for a game and downloadable content (DLC) scenario

Installation ordering and notifications

DLC installation notifications are usually triggered when a DLC package completes an installation. For certain types of game discs, there are cases when this isn’t desired, because it would create a large number of notifications in a very short time. For example, a Game of the Year edition might include a large number of small DLC packages on the disc. To handle this situation, notifications for DLC are triggered only when the game they apply to is already installed. For games with a large number of small DLC packages, we recommend that the packages on the disc be ordered such that the DLC is installed before the game. This ensures that the user isn’t inundated with notifications when the DLC packages are installed. For games with a small number of large DLC packages, we recommend that the DLC be installed after the main game to ensure that a user isn’t blocked from playing the game until all the DLC packages are installed. To control the order in which the DLC and game are installed, simply adjust their order in the Packages JSON array in catalog.js. This array is what controls the default order of installation.

Deploying

To deploy the compilation disc, burn the directory structure to a disc. When you insert the disc into a dev kit, it starts just as a release version would on a retail console.

Multi-discs

To create test multi-discs, split your existing XVC into two files.
XVCs can be split only on individual chunk boundaries, as defined in your Layout.xml file. XVCs that have extremely large chunks (larger than 45 GB) might be impossible to publish by using the multi-disc facility. In general, it’s best to keep your title’s chunks smaller than 45 GB.
To split an XVC across two discs, create a DiscLayout.xml file similar to the following.
Next, invoke SplitPkg to produce the individual files that will be burned to disc. This will produce two files with your original XVC file name suffixed with ”.MultiDisc.1” and ”.MultiDisc.2”.
To simulate installation from multiple discs, use xbapp install for disc 1 and xbapp install for disc 2. After the content on disc 1 is installed, the console will prompt you to insert disc 2.

Catalog.js

To burn these test discs, create a Catalog.js file with the new discNumber, discCount, and discSetId fields. Note that every disc needs all this metadata. The only difference in the Catalog.js files on each disc is the value of the discNumber field. For example, disc 1 should have a value of 1, and disc 2 should have a value of 2. Zero (0) is a reserved value and shouldn’t be used.

Example of Catalog.js for multi-discs

See also

Last modified on August 20, 2026