I will use this thread to document how Playstation Home online works on a basic level. There will be open source software coming soon that will let anyone easily run a Playstation Home server so this information might help some of those who are just starting out.
If anyone would like to help out with testing, or development, There is a discord group HERE led by Developer AgentDark447 called Home Laboratory. Some amazing work being done there researching Playstation Home online..
Some of this information is speculation and I will be filling in the gaps as more discoveries are made.
The first 7 files loaded from the CDN are as follows: (IE Region which gets mapped to GB region in TSS)
1. TSS CONFIGURATION XML (Title Small Storage)
This first post will just deal with the TSS file. So when you boot into online mode in PSH the first file the client looks for online is known internally as the TSS file. This is like a security configuration xml file that sets up a load of stuff. It's massively important and its the key to getting home back online and decrypting everything.
It's name was different and the parameters too depending on the Home version. Here are some filenames it has used over the years. There are some more too I think.
1.86 retail: coreHztFmpQrx0002_en-US.xml
1.83 online debug: clientconfig0001.xml
1.81 and lower used: NPWR00050_00-0.tss
Fun fact, we probably would not even have these TSS files preserved except for a crazy leak that happened back when Home was live. Some Home devs accidently packed a very powerful "Core Online Debug" EBOOT into a retail update and pushed it out to players, then with even more luck one user dug deep into it and discovered a console command that allowed this TSS xml to be downloaded in plaintext form. That console command is "tssrequest".
Without this file being dumped when Home was live, and then of course the file kept safe for years since, it would have been impossible to decrypt all the sharc encrypted sdats and probably no one would have ever been able to get Home back online or at least it would have been way harder. Massive credits to @SpookySniper for that.
Example of an official TSS XML
This URL is normally hardcoded in the EBOOT on retail versions and is HTTPS secured. On retail versions currently you can just edit the URL to HTTP and skip the cert check. Currently this is the only (public) way to get retail versions online.
This is due to a certificates.txt that is inside an encrypted archive COREDATA.SHARC. Currently we can not rebuild this archive so need to skip HTTPS with an EBOOT edit.
EDIT: Turns out that COREDATA.SHARC can simply be replaced by COREDATA.BAR from developer versions.
Developer EBOOTs have a couple of ways to override this URL that are even easier.
1: If you put a file called DEVCONFIG.TXT into USRDIR like this, it will override the default TSS url without touching the EBOOT.
2. Another way is to use the in game command console to set the TSS url using the command "tssurl". On SOME versions of Home like 1.86 HDK the tssurl command can be set in HUBSTARTUP.TXT but this does not apply to 1.83.
Note: Using one of those methods with 1.83 Debug specifically will allow it to boot even on OFW, as the EBOOT signing remains intact.
Note 2:
Once the TSS loads it configures loads of other stuff, here are some of those explained.
SceneList.xml SHA1:
This will take some deeper explanation which I can leave to others who understand it better, but put simply these SHA1s in the TSS XML serve two purposes:
1: the first 16 characters (8 bytes) are used as an encryption/decryption key for the file referenced.
2: The SHA1 is the standard SHA1 of the decrypted xml which is used to verify the file after decryption.
Now as this 16 character encryption key only has 16 possible values per character (A-F and 0-9), this means it should be easy to bruteforce I think?
Note: On debug versions if you remove this line from the TSS, then it will load a plaintext non encrypted scenelist.xml. However currently it seem retail versions always expect a SHA1 encrypted Scenelist.xml,
Object catalogues:
There are catalogue files for each territory, SCEE, SCEA, SCEJ, and SCEAsia, These files are also encrypted with the first 8 bytes of their SHA1, what these do is list all the different objects that are available for players. Each object is referenced by UUIDs which are a 35 character code.
It contain lots of information on each object such as URL for the SDAT and ODC, it also has SHA1s for the ODC files. These are SHA1 encrypted too.
In the latest SCEE catalogue we can load there are over 77,000 UUIDS referenced, from clothes, to game launch objects, to scene resources, objects can contain almost anything.
Secure Root URLs:
Next in the TSS there are the "secure content" server urls.
A simple way to explain this is by saying its like there are 2 *main content servers that feed Home. They can run from completely different http servers if you want. These 2 main file servers are critical to booting into online mode.
* There were many other less important http servers used by specific scenes too. Those will be explained later.
The first ones referenced in the TSS which are called "Secure Content" handle more important stuff such as the SceneList.xmls, navigator xmls, Config.sharcs, Object catalogues, localisation xmls, profanity filter bins and more.
Here is an example of what a secure content root folder looked like:
Data Loader URL:
This datacapture server URL collects detailed information on players, telemetry, what object UUIDs they are using, who is close by etc, probably it was used in relation to resolving grief reports, and just general statistic collection too for debugging.
Config Sharc files:
These files are a bit like a live patch to the coredata in USRDIR. One thing to note here that makes these entries unique is that these files are only SHA1 checked, They are NOT SHA1 encrypted.
SHARC files can be encrypted with different keys, but these particular sharc files are unique in that they are encrypted with the "content server key" (more to come on that soon). These sharcs can be dumped with the SDAT Dumper homebrew application. These are the only known SHARC files that can be decrypted like this.
The root of a dumped config sharc archive is like this normally. I will go deeper into the files in these in later posts.
Scene Redirects / Repaths
This is fairly self explanatory, this section acts just like a patch to the SceneList.xml, if a player tries to visit one of those "src" scene "ID"s, they will be redirected to the "dest" ID instead.
Attached some examples of the files mentioned.
More to come soon..
If anyone would like to help out with testing, or development, There is a discord group HERE led by Developer AgentDark447 called Home Laboratory. Some amazing work being done there researching Playstation Home online..
Some of this information is speculation and I will be filling in the gaps as more discoveries are made.
The first 7 files loaded from the CDN are as follows: (IE Region which gets mapped to GB region in TSS)
Code:
/tss/coreHztFmpQrx0002_en-IE.xml
/nav/NavigatorRoot.xml
/Objects/ObjectCatalogue_5_SCEE.hcdb
/Inventory/E/ServiceIds.xml
/Config/Config_en-GB.sharc
/Environments/SceneList.xml
/nav/E/Navigator_en-GB.xml
1. TSS CONFIGURATION XML (Title Small Storage)
This first post will just deal with the TSS file. So when you boot into online mode in PSH the first file the client looks for online is known internally as the TSS file. This is like a security configuration xml file that sets up a load of stuff. It's massively important and its the key to getting home back online and decrypting everything.
It's name was different and the parameters too depending on the Home version. Here are some filenames it has used over the years. There are some more too I think.
1.86 retail: coreHztFmpQrx0002_en-US.xml
1.83 online debug: clientconfig0001.xml
1.81 and lower used: NPWR00050_00-0.tss
Fun fact, we probably would not even have these TSS files preserved except for a crazy leak that happened back when Home was live. Some Home devs accidently packed a very powerful "Core Online Debug" EBOOT into a retail update and pushed it out to players, then with even more luck one user dug deep into it and discovered a console command that allowed this TSS xml to be downloaded in plaintext form. That console command is "tssrequest".
Without this file being dumped when Home was live, and then of course the file kept safe for years since, it would have been impossible to decrypt all the sharc encrypted sdats and probably no one would have ever been able to get Home back online or at least it would have been way harder. Massive credits to @SpookySniper for that.
Example of an official TSS XML
Code:
<XML>
<VERSION>12/20/2013 15:56:40 AM</VERSION>
<SHA1 file="Environments/SceneList.xml" digest="015aa374b0ff6fc836f80c70d551951a05b126e7" />
<SHA1 digest="3ef4a4d747acf4824ffcfd59a3fba8d9ddaa0877" file="Objects/ObjectCatalogue.bar"/>
<SHA1 digest="d7d19122ac30d7eee05b4f00c5caef7663def1d0" file="Objects/ObjectCatalogue_5_SCEAsia.hcdb"/>
<SHA1 digest="7b5fdb3fb239f4c9599d6a6dbdb353d5105c863a" file="Objects/ObjectCatalogue_5_SCEJ.hcdb"/>
<SHA1 digest="101303de4e7fbaf72827269abd142ad99d4a1991" file="Objects/ObjectCatalogue_5_SCEA.hcdb"/>
<SHA1 digest="104b791b4fd16bd9bb384e22146fb6f9426bf99a" file="Objects/ObjectCatalogue_5_SCEE.hcdb"/> <objects>
<prepared_database/>
</objects>
<SecureContentRoot>https://secure.$(env).homeps3.online.scee.com/</SecureContentRoot>
<ScreenContentRoot>https://secure.$(env).homeps3.online.scee.com/Screens/</ScreenContentRoot>
<secure_lua_object_resources_root>https://secure.$(env).homeps3.online.scee.com/objects</secure_lua_object_resources_root>
<datacapture>
<url mode="1">https://hdc.$(env).homeps3.online.scee.com:10061/dataloaderweb/queue</url>
</datacapture>
<SHA1 file="Config/Config_en-GB.sharc" digest="71688db5e6e3aa68d1b3f892dd8860158477f917" />
<SHA1 file="Config/Config_de-DE.sharc" digest="3357eed09c1205982424a3e19954896196cdc1d7" />
<SHA1 file="Config/Config_fr-FR.sharc" digest="0cc38a2edb20dab6091b9b6a499dd884c5cf04bd" />
<SHA1 file="Config/Config_es-ES.sharc" digest="5880c1cbfef1257f3ee2c588134e00f54e79b438" />
<SHA1 file="Config/Config_it-IT.sharc" digest="e5131faba1fadccf338e7db5469aaa948641eee7" />
<SHA1 file="Config/Config_en-SG.sharc" digest="1ba389bfe7bbab93f2c766b5bd18ba7f72d67812" />
<SHA1 file="Config/Config_en-MY.sharc" digest="023f3bee7fa68f0c4572145a91b8d937d7323c29" />
<SHA1 file="Config/Config_en-ID.sharc" digest="b4e3a36cf9faea85c1ce8e47cd41e53b5267195b" />
<SHA1 file="Config/Config_en-TH.sharc" digest="0f057dc6d945378f489451aed2e0cf5789bacd6c" />
<SHA1 file="Config/Config_ko-KR.sharc" digest="2ed1c78091e28b49a0c202478c8481be3d9c2818" />
<SHA1 file="Config/Config_zh-HK.sharc" digest="476d7ea6e92a53ad089691ec114b3a11141ae593" />
<SHA1 file="Config/Config_zh-TW.sharc" digest="d11551a1a6d4eeb2a2791e68a663cdba633534f3" />
<SHA1 file="Config/Config_en-US.sharc" digest="c530fc16ac8fb564af5cd32324074d7af8b83354" />
<SHA1 file="Config/Config_ja-JP.sharc" digest="2ea23fdd52a8a7712414672cb469355460e6f195" />
<SceneRedirect dest="New_Home_Square_3_5305_3636" region="SCEE" src="Home Square" />
<SceneRedirect dest="2013_Cinema_193B_7E40" region="SCEE" src="Cinema" />
<SceneRedirect dest="2013_Marketplace_8480_98F0" region="SCEE" src="Marketplace" />
<AdminObjectId>BD824A08-34854866-91573614-3D2FF37C</AdminObjectId>
<DNSOverride action="error" report="on" clearcache="on">209.141.32.0/19</DNSOverride>
<DNSOverride action="error" report="on" clearcache="on">192.95.35.251</DNSOverride>
<useregionalserviceids />
<maxserviceids>65</maxserviceids>
<commerce>
<secure_commerce_points />
</commerce>
<connection>
<contentserver key="8243a3b10f1f1660a7fc934aac263c9c5161092dc25=">http://scee-home.playstation.net/c.home/prod/live/</contentserver>
</connection>
<messageQueue>
<connect address="prod.homemq.online.scee.com" port="10086" login="cprod" password="ummagumma" vhost="prod" isCritical="false" />
<client>/exchange/exchange.client/pshome.client.$(user)</client>
<client>/exchange/exchange.client/pshome.client.command</client>
<subscribe>/exchange/exchange.platform/pshome.platform.$(user)</subscribe>
<post>/exchange/exchange.event/pshome.client.event.#</post>
<post>/exchange/exchange.score/pshome.content.score.#</post>
<post>/exchange/exchange.message/pshome.content.message.#</post>
<events>
<enabled>true</enabled>
<destination>
<default>/exchange/exchange.event/pshome.client.event</default>
</destination>
</events>
<content>
<message>/exchange/exchange.message/pshome.content.message</message>
<score>/exchange/exchange.score/pshome.content.score</score>
</content>
</messageQueue>
<ssfw>
<!-- ssl accelerated services - homerewards.online.scee.com -->
<identity ttl="60" secret="0123456789abcdef">https://cprod.homeidentity.online.scee.com:10443/bb88aea9-6bf8-4201-a6ff-5d1f8da0dd37/</identity>
<!-- host ssl services - homeserverservices.online.scee.com -->
<rewards>https://cprod.homeserverservices.online.scee.com:10443/RewardsService/cprod/</rewards>
<clan>https://cprod.homeserverservices.online.scee.com:10443/ClanService/cprod/clan/</clan>
<savedata>https://cprod.homeserverservices.online.scee.com:10443/SaveDataService/cprod/</savedata>
<avatar>https://cprod.homeserverservices.online.scee.com:10443/SaveDataService/avatar/cprod/</avatar>
<layout>https://cprod.homeserverservices.online.scee.com:10443/LayoutService/cprod/</layout>
<trunks>https://cprod.homeserverservices.online.scee.com:10443/RewardsService/trunks-cprod/trunks/</trunks>
<avatarlayout>https://cprod.homeserverservices.online.scee.com:10443/AvatarLayoutService/cprod/</avatarlayout>
<structured>https://cprod.homeserverservices.online.scee.com:10443/SaveDataService/cprod/</structured>
</ssfw>
<global>
<mode SCEA="3" SCEJ="3" SCEE="3" SCEAsia="3">0</mode>
<mode SCEA="1" SCEJ="1" SCEE="0" SCEAsia="1">1</mode>
<mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">7</mode>
<mode SCEA="2" SCEJ="2" SCEE="2" SCEAsia="2">21</mode>
<mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">12</mode>
<mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">13</mode>
<mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">14</mode>
<mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">15</mode>
<mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">16</mode>
<mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">17</mode>
<mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">18</mode>
<mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">19</mode>
<mode SCEA="1" SCEJ="1" SCEE="1" SCEAsia="1">20</mode>
</global>
<agerestrictions>
<age region="sceasia">0</age>
<age region="scej">0</age>
<age region="scee">16</age>
<age region="scea">13</age>
<age region="scek">0</age>
</agerestrictions>
<REGIONINFO>
<INSTANCE_TYPES>
<TYPE name="EU" />
<TYPE name="US" />
<TYPE name="Japan" />
<TYPE name="Asia" />
</INSTANCE_TYPES>
<REGION_TYPES>
<!-- 32 max entries -->
<TYPE name="EU-GB" territory="SCEE" instance="EU">en-GB</TYPE>
<TYPE name="EU-France" territory="SCEE" instance="EU">fr-FR</TYPE>
<TYPE name="EU-Italy" territory="SCEE" instance="EU">it-IT</TYPE>
<TYPE name="EU-Germany" territory="SCEE" instance="EU">de-DE</TYPE>
<TYPE name="EU-Spain" territory="SCEE" instance="EU">es-ES</TYPE>
<TYPE name="US" territory="SCEA" instance="US">en-US</TYPE>
<TYPE name="Asia-Japan" territory="SCEJ" instance="Japan">ja-JP</TYPE>
<TYPE name="Asia-Korea" territory="SCEAsia" instance="Asia">ko-KR</TYPE>
<TYPE name="Asia-Taiwan" territory="SCEAsia" instance="Asia">zh-TW</TYPE>
<TYPE name="Asia-HongKong" territory="SCEAsia" instance="Asia">zh-HK</TYPE>
<TYPE name="Asia-Singapore" territory="SCEAsia" instance="Asia">en-SG</TYPE>
<TYPE name="Asia-Indonesia" territory="SCEAsia" instance="Asia">en-ID</TYPE>
<TYPE name="Asia-Malaysia" territory="SCEAsia" instance="Asia">en-MY</TYPE>
<TYPE name="Asia-Thailand" territory="SCEAsia" instance="Asia">en-TH</TYPE>
</REGION_TYPES>
<REGION_MAP>
<!-- 64 max entries -->
<!-- SCEJ -->
<MAP code="ja-JP" loc="0">Asia-Japan</MAP>
<!-- SCEA -->
<MAP code="en-US" loc="0">US</MAP>
<MAP code="en-CA" loc="0">US</MAP>
<MAP code="fr-CA" loc="0">US</MAP>
<!-- SCEE -->
<MAP code="en-GB" loc="0">EU-GB</MAP>
<MAP code="en-IE" loc="0">EU-GB</MAP>
<MAP code="fr-BE" loc="0">EU-France</MAP>
<MAP code="nl-BE" loc="0">EU-GB</MAP>
<MAP code="fr-LU" loc="0">EU-France</MAP>
<MAP code="de-LU" loc="0">EU-Germany</MAP>
<MAP code="nl-NL" loc="0">EU-GB</MAP>
<MAP code="fr-FR" loc="0">EU-France</MAP>
<MAP code="de-DE" loc="0">EU-Germany</MAP>
<MAP code="de-AT" loc="0">EU-Germany</MAP>
<MAP code="de-CH" loc="0">EU-Germany</MAP>
<MAP code="fr-CH" loc="0">EU-France</MAP>
<MAP code="it-CH" loc="0">EU-Italy</MAP>
<MAP code="it-IT" loc="0">EU-Italy</MAP>
<MAP code="pt-PT" loc="0">EU-GB</MAP>
<MAP code="en-DK" loc="0">EU-GB</MAP>
<MAP code="da-DK" loc="0">EU-GB</MAP>
<MAP code="en-FI" loc="0">EU-GB</MAP>
<MAP code="fi-FI" loc="0">EU-GB</MAP>
<MAP code="en-NO" loc="0">EU-GB</MAP>
<MAP code="no-NO" loc="0">EU-GB</MAP>
<MAP code="en-SE" loc="0">EU-GB</MAP>
<MAP code="sv-SE" loc="0">EU-GB</MAP>
<MAP code="en-AU" loc="0">EU-GB</MAP>
<MAP code="en-NZ" loc="0">EU-GB</MAP>
<MAP code="es-ES" loc="0">EU-Spain</MAP>
<MAP code="ru-RU" loc="0">EU-GB</MAP>
<MAP code="en-AE" loc="0">EU-GB</MAP>
<MAP code="en-ZA" loc="0">EU-GB</MAP>
<MAP code="en-CZ" loc="0">EU-GB</MAP>
<MAP code="en-SA" loc="0">EU-GB</MAP>
<MAP code="en-PL" loc="0">EU-GB</MAP>
<MAP code="pl-PL" loc="0">EU-GB</MAP>
<MAP code="en-GR" loc="0">EU-GB</MAP>
<!-- SCEAsia -->
<MAP code="en-HK" loc="0">Asia-HongKong</MAP>
<MAP code="zh-HK" loc="0">Asia-HongKong</MAP>
<MAP code="en-TW" loc="0">Asia-Taiwan</MAP>
<MAP code="zh-TW" loc="0">Asia-Taiwan</MAP>
<MAP code="en-SG" loc="0">Asia-Singapore</MAP>
<MAP code="ko-KR" loc="0">Asia-Korea</MAP>
<MAP code="en-ID" loc="0">Asia-Indonesia</MAP>
<MAP code="en-MY" loc="0">Asia-Malaysia</MAP>
<MAP code="en-TH" loc="0">Asia-Thailand</MAP>
</REGION_MAP>
<LOCALISATIONS>
<!-- 32 max entries -->
<REF language="*-ID">en-SG</REF>
<REF language="*-MY">en-SG</REF>
<REF language="*-TH">en-SG</REF>
<REF language="en-HK">en-SG</REF>
<REF language="*-HK">zh-HK</REF>
<REF language="en-TW">en-SG</REF>
<REF language="*-TW">zh-TW</REF>
<REF language="*-SG">en-SG</REF>
<REF language="en-US">en-US</REF>
<REF language="en-CA">en-US</REF>
<REF language="en-*">en-GB</REF>
<REF language="fr-*">fr-FR</REF>
<REF language="it-*">it-IT</REF>
<REF language="de-*">de-DE</REF>
<REF language="es-*">es-ES</REF>
<REF language="ja-*">ja-JP</REF>
<REF language="ko-*">ko-KR</REF>
</LOCALISATIONS>
</REGIONINFO>
</XML>
This URL is normally hardcoded in the EBOOT on retail versions and is HTTPS secured. On retail versions currently you can just edit the URL to HTTP and skip the cert check. Currently this is the only (public) way to get retail versions online.
This is due to a certificates.txt that is inside an encrypted archive COREDATA.SHARC. Currently we can not rebuild this archive so need to skip HTTPS with an EBOOT edit.
EDIT: Turns out that COREDATA.SHARC can simply be replaced by COREDATA.BAR from developer versions.
Developer EBOOTs have a couple of ways to override this URL that are even easier.
1: If you put a file called DEVCONFIG.TXT into USRDIR like this, it will override the default TSS url without touching the EBOOT.
Code:
CONFIGVERS=1
TSS=http://192.168.199.21/tss/clientconfig0001_en-US.xml
2. Another way is to use the in game command console to set the TSS url using the command "tssurl". On SOME versions of Home like 1.86 HDK the tssurl command can be set in HUBSTARTUP.TXT but this does not apply to 1.83.
Code:
tssurl http://192.168.199.21/tss/clientconfig0001_en-US.xml
Note: Using one of those methods with 1.83 Debug specifically will allow it to boot even on OFW, as the EBOOT signing remains intact.
Note 2:
Once the TSS loads it configures loads of other stuff, here are some of those explained.
SceneList.xml SHA1:
This will take some deeper explanation which I can leave to others who understand it better, but put simply these SHA1s in the TSS XML serve two purposes:
1: the first 16 characters (8 bytes) are used as an encryption/decryption key for the file referenced.
2: The SHA1 is the standard SHA1 of the decrypted xml which is used to verify the file after decryption.
Now as this 16 character encryption key only has 16 possible values per character (A-F and 0-9), this means it should be easy to bruteforce I think?
Note: On debug versions if you remove this line from the TSS, then it will load a plaintext non encrypted scenelist.xml. However currently it seem retail versions always expect a SHA1 encrypted Scenelist.xml,
Object catalogues:
There are catalogue files for each territory, SCEE, SCEA, SCEJ, and SCEAsia, These files are also encrypted with the first 8 bytes of their SHA1, what these do is list all the different objects that are available for players. Each object is referenced by UUIDs which are a 35 character code.
It contain lots of information on each object such as URL for the SDAT and ODC, it also has SHA1s for the ODC files. These are SHA1 encrypted too.
In the latest SCEE catalogue we can load there are over 77,000 UUIDS referenced, from clothes, to game launch objects, to scene resources, objects can contain almost anything.
Secure Root URLs:
Next in the TSS there are the "secure content" server urls.
A simple way to explain this is by saying its like there are 2 *main content servers that feed Home. They can run from completely different http servers if you want. These 2 main file servers are critical to booting into online mode.
* There were many other less important http servers used by specific scenes too. Those will be explained later.
The first ones referenced in the TSS which are called "Secure Content" handle more important stuff such as the SceneList.xmls, navigator xmls, Config.sharcs, Object catalogues, localisation xmls, profanity filter bins and more.
Here is an example of what a secure content root folder looked like:
Data Loader URL:
This datacapture server URL collects detailed information on players, telemetry, what object UUIDs they are using, who is close by etc, probably it was used in relation to resolving grief reports, and just general statistic collection too for debugging.
Config Sharc files:
These files are a bit like a live patch to the coredata in USRDIR. One thing to note here that makes these entries unique is that these files are only SHA1 checked, They are NOT SHA1 encrypted.
SHARC files can be encrypted with different keys, but these particular sharc files are unique in that they are encrypted with the "content server key" (more to come on that soon). These sharcs can be dumped with the SDAT Dumper homebrew application. These are the only known SHARC files that can be decrypted like this.
The root of a dumped config sharc archive is like this normally. I will go deeper into the files in these in later posts.
Scene Redirects / Repaths
This is fairly self explanatory, this section acts just like a patch to the SceneList.xml, if a player tries to visit one of those "src" scene "ID"s, they will be redirected to the "dest" ID instead.
Attached some examples of the files mentioned.
More to come soon..
Attachments
Last edited:
