Scene List
The Scene List is the universal source of truth PlayStation Home uses to know which scenes are valid and available for the player to enter.
It’s an XML document that contains a list of all the scenes, along with:
ID: Their in-game ID (ID)SceneID: A UUID to distinguish themType: Their type (Homefor apartments,PublicLobbyfor public spaces, etc…)SHA1: The hash to decrypt their SDC file
Important
The SHA-1 hash is calculated on the SDC’s plaintext!
If a scene is not listed in the Scene List, it will not be available to the player, even if it’s referenced elsewhere in the game (such as the Navigator).
Definitions
XSD document
Below is the XSD document that defines the structure of the Scene List XML file:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<!-- Root element SCENELIST -->
<xs:element name="SCENELIST">
<xs:complexType>
<xs:sequence>
<xs:element ref="SCENE" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- SCENE element definition -->
<xs:element name="SCENE">
<xs:complexType>
<!-- SCENE elements are self-closing/empty elements with only attributes -->
<xs:attribute name="ID" type="xs:string" use="required"/>
<xs:attribute name="SceneID" type="SceneIDType" use="optional"/>
<xs:attribute name="Type" type="SceneTypeEnum" use="required"/>
<xs:attribute name="config" type="xs:string" use="required"/>
<xs:attribute name="desc" type="xs:string" use="required"/>
<xs:attribute name="sha1" type="SHA1Type" use="required"/>
<xs:attribute name="version" type="xs:nonNegativeInteger" use="optional"/>
<xs:attribute name="host" type="HostType" use="optional"/>
<xs:attribute name="flags" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="capacity" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="softcap" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="ChannelID" type="UUIDType" use="optional"/>
<xs:attribute name="HOMEUID" type="xs:nonNegativeInteger" use="optional"/>
</xs:complexType>
</xs:element>
<!-- Custom types for specific attribute patterns -->
<!-- Scene Type enumeration based on observed values -->
<xs:simpleType name="SceneTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="ArcadeSpace"/>
<xs:enumeration value="Clubhouse"/>
<xs:enumeration value="Game16Space"/>
<xs:enumeration value="Game32Space"/>
<xs:enumeration value="Game60Space"/>
<xs:enumeration value="GlobalSpace"/>
<xs:enumeration value="Home"/>
<xs:enumeration value="PrivateNoVideo"/>
<xs:enumeration value="PublicLobby"/>
<xs:enumeration value="PublicNoVideo"/>
</xs:restriction>
</xs:simpleType>
<!-- SceneID pattern: UUID format (observed in the data) -->
<xs:simpleType name="SceneIDType">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"/>
</xs:restriction>
</xs:simpleType>
<!-- SHA1 hash pattern: 40 hexadecimal characters -->
<xs:simpleType name="SHA1Type">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9A-F]{40}"/>
</xs:restriction>
</xs:simpleType>
<!-- Host type: observed to always be 'en-US' when present -->
<xs:simpleType name="HostType">
<xs:restriction base="xs:string">
<xs:enumeration value="en-US"/>
</xs:restriction>
</xs:simpleType>
<!-- UUID pattern for ChannelID -->
<xs:simpleType name="UUIDType">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>Last updated on