<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.c2dl.info/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dmitmel</id>
	<title>CCDirectLink - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.c2dl.info/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dmitmel"/>
	<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/Special:Contributions/Dmitmel"/>
	<updated>2026-09-21T19:12:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=CCLoader&amp;diff=222</id>
		<title>CCLoader</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=CCLoader&amp;diff=222"/>
		<updated>2021-10-10T11:50:55Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Remove info about v3 until it is released&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;CCLoader&#039;&#039;&#039; is the de facto modloader for CrossCode and obviously a prerequisite for playing the CrossCode with mods. Really, it is the only actively developed modloader intended for use by both mod users and mod developers (RIP [https://github.com/20kdc/decrossfuscator/blob/master/lib/rapture.js Rapture] + [https://github.com/20kdc/decrossfuscator/tree/master/mods pre-1.1.0 mods], [[Dorito]] and [[CCInjector]]).&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
There are three ways to perform CCLoader installation, they are both described in this document. But before we continue:&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VERY IMPORTANT NOTE:&#039;&#039;&#039; Don&#039;t use the green &amp;quot;clone or download&amp;quot; button! ==&lt;br /&gt;
&lt;br /&gt;
[[File:Clone-or-download.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
This button downloads the source code, not the compiled files! In the case of CCLoader you can&#039;t just download the source code and run it because CCLoader is not written in JavaScript! While this doesn&#039;t apply to all CrossCode mods out there as most of them are written in plain JS and as such don&#039;t need to be compiled, &#039;&#039;&#039;you should get used to looking at the &amp;quot;Releases&amp;quot; page first before trying to download the source code&#039;&#039;&#039;. In the new redesigned GitHub UI the link to it became more apparent:&lt;br /&gt;
&lt;br /&gt;
[[File:Github-project-frontpage-releases.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
== Method 1: Quick-installation archive ==&lt;br /&gt;
&lt;br /&gt;
This method is recommended for most users (at least right now because the mod manager is not stable enough for a public release and has a few critical bugs) and will very likely remain the primary installation method because of its simplicity.&lt;br /&gt;
&lt;br /&gt;
# Obviously, &#039;&#039;&#039;first of all you have to locate the [[Locations of CrossCode files#Game files folder|CrossCode game files folder]].&#039;&#039;&#039;&lt;br /&gt;
# Go to the [https://github.com/CCDirectLink/CCLoader/releases/latest latest release page] of CCLoader.&lt;br /&gt;
# In the &amp;quot;Assets&amp;quot; list at the bottom of the release click the link which says &#039;&#039;&#039;Source code (zip)&#039;&#039;&#039; (a &amp;lt;code&amp;gt;tar.gz&amp;lt;/code&amp;gt; download also exist for GNU/Linux and macOS users). This will download a quick installation archive.&lt;br /&gt;
# Extract this archive somewhere:&amp;lt;br&amp;gt;[[File:Extract-ccloader-quick-install.png|class=block-img]]&lt;br /&gt;
# Copy the files inside the archive directly into the game folder, like this:&amp;lt;br&amp;gt;[[File:Ccloader-quick-install.png|class=block-img]]&amp;lt;br&amp;gt;The only file you&#039;ll have to overwrite in a clean CrossCode installation is the &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt;:&amp;lt;br&amp;gt;[[File:Ccloader-quick-install-overwrite-package-json.png|class=block-img]]&lt;br /&gt;
# You&#039;ve now successfully installed CCLoader! The end result should look like (notice the new &amp;lt;code&amp;gt;ccloader&amp;lt;/code&amp;gt; folder):&amp;lt;br&amp;gt;[[File:Ccloader-installation-end-result.png|class=block-img]]&lt;br /&gt;
# Mods can be installed into the &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt; folder located inside &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt;, for more information on that see the [[Installing mods|relevant guide]].&lt;br /&gt;
&lt;br /&gt;
=== Bonus for Linux users ===&lt;br /&gt;
&lt;br /&gt;
On Linux this entire process can be performed with two commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cd /path/to/CrossCode&lt;br /&gt;
# Replace the version in the URL here with the latest one:&lt;br /&gt;
curl --location --fail &#039;https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.20.2/v2.10.1.zip&#039; \&lt;br /&gt;
  | tar --extract --gzip --verbose --file -&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verifying a successful CCLoader installation ===&lt;br /&gt;
&lt;br /&gt;
Upon launching the game you&#039;ll see the CCLoader version in the bottom right corner of the title screen and at the top of the pause screen (where the game version is) if CCLoader was installed correctly. You&#039;ll also be able to see the following tab in the options menu:&lt;br /&gt;
&lt;br /&gt;
[[File:Ccloader-mod-settings-menu.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
It will obviously be empty if you haven&#039;t [[Installing mods|installed any mods]].&lt;br /&gt;
&lt;br /&gt;
== Method 2: Using the automatic installer ==&lt;br /&gt;
&lt;br /&gt;
See https://github.com/CCDirectLink/ccloader-installer. It may be broken though.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=2767mr%27s_code_pearls&amp;diff=221</id>
		<title>2767mr&#039;s code pearls</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=2767mr%27s_code_pearls&amp;diff=221"/>
		<updated>2021-08-14T15:56:22Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Created page with &amp;quot;A simple hello world mod:  &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt; export default class HelloWorld extends Plugin {   prestart() {     console.log(&amp;#039;Hello world!&amp;#039;);   } } &amp;lt;/syntaxh...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A simple hello world mod:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
export default class HelloWorld extends Plugin {&lt;br /&gt;
  prestart() {&lt;br /&gt;
    console.log(&#039;Hello world!&#039;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How to get your mod directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
export default class ModFolder extends Plugin {&lt;br /&gt;
  constructor(mod) {&lt;br /&gt;
     this.dir = mod.baseDirectory;&lt;br /&gt;
  }&lt;br /&gt;
  prestart() {&lt;br /&gt;
    console.log(`Your mod directory is ${this.dir}`);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if code is running in the browser:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ig.platform === ig.PLATFORM_TYPES.BROWSER&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Double all CP gain:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
sc.PlayerModel.inject({&lt;br /&gt;
  addSkillPoints(points, element, all, extra) {&lt;br /&gt;
    this.parent(points*2, element, all, extra);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Register preupdate calls:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
export default class UpdateCall extends Plugin {&lt;br /&gt;
    prestart() {&lt;br /&gt;
        const self = this;&lt;br /&gt;
        sc.CrossCode.inject({&lt;br /&gt;
            init(...args) {&lt;br /&gt;
                this.parent(...args);&lt;br /&gt;
                this.addons.preUpdate.push(self);&lt;br /&gt;
            }&lt;br /&gt;
        })&lt;br /&gt;
    }&lt;br /&gt;
    onPreUpdate() {&lt;br /&gt;
        //...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enable new game+ early:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
sc.TitleScreenButtonGui.inject({&lt;br /&gt;
    checkClearSaveFiles: function() {&lt;br /&gt;
        return true;&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Open devtools for a background page:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
chrome.developerPrivate.openDevTools({&lt;br /&gt;
    renderViewId: -1,&lt;br /&gt;
    renderProcessId: -1,&lt;br /&gt;
    extensionId: chrome.runtime.id&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instant respawn for enemies:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ig.ENTITY.EnemySpawner.inject({&lt;br /&gt;
    update(...args) {&lt;br /&gt;
        this.respawnTimer = 0;&lt;br /&gt;
        return this.parent(...args);&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of trophy points:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
sc.TrophyManager.inject({&lt;br /&gt;
    getTotalPoints() {&lt;br /&gt;
        return 100000000;&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enables witch times for all controlled characters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ig.ENTITY.Player.inject({&lt;br /&gt;
  onPerfectDash() {&lt;br /&gt;
    this.parent();&lt;br /&gt;
    if (!this.dashPerfect &amp;amp;&amp;amp; this.model.name != &amp;quot;Lea&amp;quot;&lt;br /&gt;
        &amp;amp;&amp;amp; this.model.name == sc.model.player.name &amp;amp;&amp;amp; sc.newgame.get(&amp;quot;witch-time&amp;quot;) &amp;amp;&amp;amp; !ig.vars.get(&amp;quot;tmp.slowMotionActive&amp;quot;)) {&lt;br /&gt;
      sc.combat.showPerfectDashEffect(this);&lt;br /&gt;
      const proxy = sc.ProxyTools.getProxy(&amp;quot;evadeSloMo&amp;quot;, this);&lt;br /&gt;
      if (proxy)&lt;br /&gt;
        proxy.spawn(this.coll.pos.x, this.coll.pos.y, this.coll.pos.z, this, this.face, true);&lt;br /&gt;
      this.invincibleTimer = 4;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Ccmod.json&amp;diff=218</id>
		<title>Ccmod.json</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Ccmod.json&amp;diff=218"/>
		<updated>2021-03-08T17:59:19Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Created page with &amp;quot;{{Lowercase title}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=CrossCode_Modding_Tutorial&amp;diff=217</id>
		<title>CrossCode Modding Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=CrossCode_Modding_Tutorial&amp;diff=217"/>
		<updated>2021-01-26T18:40:18Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: fix the mentioned nw.js version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains the steps on how to create your very first CrossCode mod. (header WIP, ask 2767mr)&lt;br /&gt;
&lt;br /&gt;
= Installing CCLoader =&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#9888; &#039;&#039;&#039;Due to DRM it is not possible to mod Xbox Game Pass or Microsoft Store versions of the game.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See [[CCLoader#Installation]]&lt;br /&gt;
&lt;br /&gt;
= Installing NW.js =&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* [[Locations_of_CrossCode_files#Game_files_folder|CC installation folder]]&lt;br /&gt;
* [https://nwjs.io NW.js SDK zip]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#9888; &#039;&#039;&#039;The game uses an outdated version of NW.js, so you might want to use version &amp;lt;code&amp;gt;0.35.5&amp;lt;/code&amp;gt; to avoid accidentally using features not yet available in CrossCode.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
&lt;br /&gt;
# Open the nwjs-sdk zip&lt;br /&gt;
# Open the folder so you can see the &amp;lt;code&amp;gt;nw.exe&amp;lt;/code&amp;gt; file&lt;br /&gt;
&lt;br /&gt;
[[File:nwjsRoot.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=3&amp;gt;Extract/drag all files into the [[Locations_of_CrossCode_files#Game_files_folder|CC installation folder]] and replace existing files when prompted.&amp;lt;/li&amp;gt;&lt;br /&gt;
# Delete &amp;lt;code&amp;gt;CrossCode.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
# Rename &amp;lt;code&amp;gt;nw.exe&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;CrossCode.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
# Open the game&lt;br /&gt;
# Press F12 to open the Chrome DevTools&lt;br /&gt;
# Click the &amp;lt;code&amp;gt;Console&amp;lt;/code&amp;gt; tab&lt;br /&gt;
# In the top bar, click &amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;&lt;br /&gt;
# Choose the second entry in the dropdown list&lt;br /&gt;
# You can now enter commands into the console&lt;br /&gt;
&lt;br /&gt;
= Making a mod =&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* [[CCLoader#Installation|Installing CCLoader]]&lt;br /&gt;
* [[Locations_of_CrossCode_files#Game_files_folder|CC installation folder]]&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
&lt;br /&gt;
# Open the [[Locations_of_CrossCode_files#Game_files_folder|CC installation folder]]&lt;br /&gt;
# Open &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt; -&amp;gt; &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt;&lt;br /&gt;
# Create a new folder for your mod. In this example, we are going to use &amp;lt;code&amp;gt;myMod&amp;lt;/code&amp;gt;&lt;br /&gt;
# Create a new file called &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file is used to tell CCLoader how to load your mod. It contains the internal name (&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;), the in-game displayed name (&amp;lt;code&amp;gt;ccmodHumanName&amp;lt;/code&amp;gt;), the version number (&amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt;) and dependencies (&amp;lt;code&amp;gt;ccmodDependencies&amp;lt;/code&amp;gt;). Only &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; are required.&lt;br /&gt;
&lt;br /&gt;
=== Example &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;my-mod&amp;quot;,&lt;br /&gt;
  &amp;quot;ccmodHumanName&amp;quot;: &amp;quot;My Mod&amp;quot;,&lt;br /&gt;
  &amp;quot;version&amp;quot;: &amp;quot;1.0.0&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=5&amp;gt;Find a file to modify&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example we will do a simple palette swap of Lea. You can find her sprites in &amp;lt;code&amp;gt;assets/media/entity/player/move.png&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=6&amp;gt;Copy the file to your mod&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order for CCLoader to pick up the file from the mod it needs to be inside the mod folder with the same name as the original. This means that &amp;lt;code&amp;gt;assets/media/entity/player/move.png&amp;lt;/code&amp;gt; turns into &amp;lt;code&amp;gt;assets/mods/myMod/assets/media/entity/player/move.png&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#9888; &#039;&#039;&#039;Do not publish original CrossCode files in your mod.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=7&amp;gt;Edit the file&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example I am using Paint.NET to swap Lea&#039;s red clothes for green ones:&lt;br /&gt;
&lt;br /&gt;
[[File:leaRecolor.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;li value=8&amp;gt;Restart the game and test your mod&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:leaRecolored.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
= Editing JSON =&lt;br /&gt;
&lt;br /&gt;
Often it is not enough to just edit png files to make mods. Changing sizes, making new entities or maps require one to edit or create new JSON files. This guide shows you how to work with JSON files in your mod.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* [[CrossCode Modding Tutorial#Making a mod|Making a mod]]&lt;br /&gt;
&lt;br /&gt;
== New JSON files ==&lt;br /&gt;
&lt;br /&gt;
Adding new JSON files does not require any special attention. Simply put the file into the correct folder and CCLoader will pick it up automatically.&lt;br /&gt;
&lt;br /&gt;
== Existing JSON files ==&lt;br /&gt;
&lt;br /&gt;
Editing existing JSON files is problematic in a few cases. Now only are these files pretty big but there are also a lot of instances where multiple mods want to modify the same file. In that case simply replacing the entire file doesn’t work.&lt;br /&gt;
&lt;br /&gt;
Instead you can use a mechanism called patches. These are files that only record the changes made to the original file, allowing multiple mods to apply patches to the same file. They work similar to file replacements as they require you to use the same name as the original file. The difference is that they append a &amp;lt;code&amp;gt;.patch&amp;lt;/code&amp;gt; to the filename and use special sytanx exmplained in more detail on [[Patching]].&lt;br /&gt;
&lt;br /&gt;
In order to work with JSON files it is recommend to beautify them before using them. You can use [https://beautifier.io/ beautifier.io] to do that for you.&lt;br /&gt;
&lt;br /&gt;
In this example we will make a patch that will increase the damage Lea does. This information can be found in &amp;lt;code&amp;gt;assets/data/players/lea.json&amp;lt;/code&amp;gt;. Once beautified one can easily see the value we want to modify.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;character&amp;quot;: &amp;quot;main.lea&amp;quot;,&lt;br /&gt;
    &amp;quot;sheet&amp;quot;: &amp;quot;player&amp;quot;,&lt;br /&gt;
    &amp;quot;headIdx&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;class&amp;quot;: &amp;quot;SPHEROMANCER&amp;quot;,&lt;br /&gt;
    &amp;quot;stats&amp;quot;: {&lt;br /&gt;
        &amp;quot;hp&amp;quot;: {&lt;br /&gt;
            &amp;quot;base&amp;quot;: 200,&lt;br /&gt;
            &amp;quot;increase&amp;quot;: 2000,&lt;br /&gt;
            &amp;quot;variance&amp;quot;: 0.1&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;attack&amp;quot;: {&lt;br /&gt;
            &amp;quot;base&amp;quot;: 20,&lt;br /&gt;
            &amp;quot;increase&amp;quot;: 200,&lt;br /&gt;
            &amp;quot;variance&amp;quot;: 0.9&lt;br /&gt;
        },&lt;br /&gt;
        ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we want to somehow change &amp;lt;code&amp;gt;stats.attack.base&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;200&amp;lt;/code&amp;gt;. For that we first create a patch file &amp;lt;code&amp;gt;assets/mods/myMod/assets/data/players/lea.json.patch&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#128640; &#039;&#039;&#039;Tip: Most editors will not recognize these files as JSON by default. Almost all popular editors include a feature to manually set which type of file you are currently editing.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
First you can begin the file with &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to signal that this file is using the “Patch Step” format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next we insert a step that navigates into the &amp;lt;code&amp;gt;attack&amp;lt;/code&amp;gt; object:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;ENTER&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: [&amp;quot;stats&amp;quot;, &amp;quot;attack&amp;quot;]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we can overwride a value:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;SET_KEY&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: &amp;quot;base&amp;quot;,&lt;br /&gt;
    &amp;quot;content&amp;quot;: 200&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the end, we navigate back to the root of the document. In this case it is not required but will make future additions a lot easier.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;EXIT&amp;quot;,&lt;br /&gt;
    &amp;quot;count&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the end we end up with this &amp;lt;code&amp;gt;lea.json.patch&amp;lt;/code&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;ENTER&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: [&amp;quot;stats&amp;quot;, &amp;quot;attack&amp;quot;]&lt;br /&gt;
}, {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;SET_KEY&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: &amp;quot;base&amp;quot;,&lt;br /&gt;
    &amp;quot;content&amp;quot;: 200&lt;br /&gt;
}, {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;EXIT&amp;quot;,&lt;br /&gt;
    &amp;quot;count&amp;quot;: 2&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Making a JavaScript mod =&lt;br /&gt;
&lt;br /&gt;
Although the game provides a very powerful JSON scripting system it is sometimes required to add new puzzle elements or edit internal workings of existing ones. For this one needs javascript mods.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* [[CrossCode Modding Tutorial#Making a mod|Making a mod]]&lt;br /&gt;
&lt;br /&gt;
== Entry points ==&lt;br /&gt;
&lt;br /&gt;
In order to load a JavaScript file, there needs to be an entry in the &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; of the mod. There are multiple possible values here that reference different points in time at which a mod is loaded. Furthermore there is an entry called &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; which combines all these entry points.&lt;br /&gt;
&lt;br /&gt;
For example, if we want to double all gained CP points we need to add a script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; line=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;my-mod&amp;quot;,&lt;br /&gt;
    &amp;quot;ccmodHumanName&amp;quot;: &amp;quot;My Mod&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;plugin&amp;quot;: &amp;quot;plugin.js&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!width=&amp;quot;100%&amp;quot;| &amp;amp;#9888; If you use entry points other than &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; you should always set &amp;lt;code&amp;gt;&amp;amp;quot;module&amp;amp;quot;: true&amp;lt;/code&amp;gt; as well.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mod loading stages ==&lt;br /&gt;
&lt;br /&gt;
=== Prestart ===&lt;br /&gt;
&lt;br /&gt;
This is the entry point you usually want to use. At this point, most of the game code is loaded but almost none of it executed yet. This makes it the perfect chance to change how the internals work.&lt;br /&gt;
&lt;br /&gt;
=== Preload ===&lt;br /&gt;
&lt;br /&gt;
At this point none of the game has been loaded yet. This means that while nothing has loaded yet but one can use this to set up libraries or use some JavaScript black magic.&lt;br /&gt;
&lt;br /&gt;
=== Postload ===&lt;br /&gt;
&lt;br /&gt;
Here some of the game code has been loaded, however pretty much nothing has been executed yet. Specifically, none of the resources have been been loaded yet, making it possible to intercept and work with them.&lt;br /&gt;
&lt;br /&gt;
=== Main ===&lt;br /&gt;
&lt;br /&gt;
This stage, which has been called “main” for legacy reasons, executes code as soon as the title menu start playing. This allows mods to use code that may have not been executed yet in the prestart stage, though it should be avoided is easily possible.&lt;br /&gt;
&lt;br /&gt;
== Plugin ==&lt;br /&gt;
&lt;br /&gt;
While using loading stages directly in the &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; directly executes the code in a script the plugin combines multiple stages at once. Every plugin defines an exported JavaScript class that is used to execute the code.&lt;br /&gt;
&lt;br /&gt;
Since we defined the file as &amp;lt;code&amp;gt;plugin.js&amp;lt;/code&amp;gt; above we create a new file &amp;lt;code&amp;gt;assets/mods/myMod/plugin.js&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot; line=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;
export default class MyMod {&lt;br /&gt;
    prestart() {&lt;br /&gt;
        //Prestart code will go in here.&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The advantage of using plugins over direct stages is that the constructor of the plugin receives an object as argument which can be used to find out which folder the current mod is stored in.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#128640; &#039;&#039;&#039;Tip: A plugin can also be used to write async code in a loading stage, blocking all other mods from loading until it has finished.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Now that we can execute code in the prestart stage, we need to find out how to double the CP points. If we look into the &amp;lt;code&amp;gt;assets/js/game.compiled.js&amp;lt;/code&amp;gt; file we can find out that there is a class called &amp;lt;code&amp;gt;sc.PlayerModel&amp;lt;/code&amp;gt; which contains a function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ts&amp;quot;&amp;gt;public addSkillPoints(points: number, element: number, all: boolean, extra: boolean): void&amp;lt;/source&amp;gt;&lt;br /&gt;
We now want to manipulate &amp;lt;code&amp;gt;addSkillPoints&amp;lt;/code&amp;gt; so that &amp;lt;code&amp;gt;points&amp;lt;/code&amp;gt; are doubled. For that we can use the &amp;lt;code&amp;gt;inject&amp;lt;/code&amp;gt; function. This is a function that exists on all classes that allows you to add and overwrite existing functions. Furthermore, inside that function you can use &amp;lt;code&amp;gt;this.parent(...)&amp;lt;/code&amp;gt; to call the original functon.&lt;br /&gt;
&lt;br /&gt;
We can use this to make a mod that doubles all CP:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot; line=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;
export default class MyMod {&lt;br /&gt;
    prestart() {&lt;br /&gt;
        sc.PlayerModel.inject({&lt;br /&gt;
            addSkillPoints(points, element, all, extra) {&lt;br /&gt;
                this.parent(points*2, element, all, extra);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example mod can be found on GitHub.&amp;lt;ref&amp;gt;https://github.com/CCDirectLink/CrossCode-Modding-Tutorial/tree/master/example&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Share your mod =&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* [[CrossCode Modding Tutorial#Making a mod|Making a mod]]&lt;br /&gt;
&lt;br /&gt;
== Steps ==&lt;br /&gt;
&lt;br /&gt;
# Open your mod folder that contains the &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; file&lt;br /&gt;
# Select all files/folders needed for the mod&lt;br /&gt;
# Create a zip archive from these files. On Windows you can do this using right click &amp;amp;gt; send to &amp;amp;gt; zip-archived folder&lt;br /&gt;
&lt;br /&gt;
You can already share this file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;4&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Rename the .zip file to .ccmod&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows other users to simply drag the file into the mods folder and not have to worry about extracting it&lt;br /&gt;
&lt;br /&gt;
== Publish on the official list ==&lt;br /&gt;
&lt;br /&gt;
Since the process of approving a mod for the official list is a bit complicated (and is likely to change in the future) the best way is to:&lt;br /&gt;
* Publish your source code on [https://github.com/ GitHub]&lt;br /&gt;
* Make sure you have a correct version number&lt;br /&gt;
* Create a [https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/managing-releases-in-a-repository Github Release] - you can upload your .ccmod file there&lt;br /&gt;
* Message (an admin) on the [https://discord.gg/TFs6n5v CrossCode Modding Discord] to add your mod to the list&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding guides]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Main_Page&amp;diff=148</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Main_Page&amp;diff=148"/>
		<updated>2020-09-03T14:25:51Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Reverted edits by Dmitmel (talk) to last revision by Streetclaw&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the CCDirectLink wiki.&lt;br /&gt;
&lt;br /&gt;
This wiki contains information and a documentation about modding [https://cross-code.com CrossCode].&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Main_Page&amp;diff=147</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Main_Page&amp;diff=147"/>
		<updated>2020-09-03T14:16:02Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Discord extension test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the CCDirectLink wiki.&lt;br /&gt;
&lt;br /&gt;
This wiki contains information and a documentation about modding [https://cross-code.com CrossCode].&lt;br /&gt;
&lt;br /&gt;
Please, join [https://discord.gg/TFs6n5v our Discord server] UwU.&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Patching&amp;diff=136</id>
		<title>Patching</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Patching&amp;diff=136"/>
		<updated>2020-08-17T21:50:41Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Imported from https://github.com/CCDirectLink/documentation/blob/master/patching.md&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;NOTE:&#039;&#039;&#039; This article needs editing!!!&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= What is patching? =&lt;br /&gt;
&lt;br /&gt;
In the scope modding, patching is changing the original game content in any way.&lt;br /&gt;
&lt;br /&gt;
= How do I patch game files? =&lt;br /&gt;
&lt;br /&gt;
There is more than one way to patch the game. This page will walk you through the various ways to patch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Asset Replacement =&lt;br /&gt;
&lt;br /&gt;
This is the most basic type of patching (anyone can do it).&lt;br /&gt;
&lt;br /&gt;
This is a standard modloader feature that allows you to replace any file the game loads with your own.&lt;br /&gt;
&lt;br /&gt;
== Process ==&lt;br /&gt;
&lt;br /&gt;
Inside your mod folder, create a folder called &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:Mod-assets-folder.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
Decide what file you want to replace. For this tutorial, I will be showing you how to replace Lea&#039;s portraits.&lt;br /&gt;
&lt;br /&gt;
Find the original relative path to asset of interest.&lt;br /&gt;
&lt;br /&gt;
[[File:Lea-face-path.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
All you have to do is now mimic the folder structure.&lt;br /&gt;
&lt;br /&gt;
In this example, two folders need to be created.&lt;br /&gt;
&lt;br /&gt;
Inside the &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt; folder in your mod, create a &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt; folder. Inside the &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt; folder, create a &amp;lt;code&amp;gt;face&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
Finally, add the file you want to replace (your own &amp;lt;code&amp;gt;lea.png&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
It should end up looking something like this.&lt;br /&gt;
&lt;br /&gt;
[[File:Faceless-mod-path-example.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
[[File:Faceless-mod-folder-contents-example.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
That is it!&lt;br /&gt;
&lt;br /&gt;
You can find more examples in the [[github:CCDirectLink/CCAssetSwaps]] repo.&lt;br /&gt;
&lt;br /&gt;
* Used faceless Lea mod for some of the demonstration&lt;br /&gt;
&lt;br /&gt;
= JSON Patching (Object Patching) =&lt;br /&gt;
&lt;br /&gt;
Note: This requires some know of the JSON format and some programming concepts&lt;br /&gt;
&lt;br /&gt;
As the majority of the game assets are json files, this is really useful to know about.&lt;br /&gt;
&lt;br /&gt;
What this allows you to do is modify any json file without doing a file replacement.&lt;br /&gt;
&lt;br /&gt;
The same ideas apply as assets override, except the file will have &amp;lt;code&amp;gt;.patch&amp;lt;/code&amp;gt; added to the full file name.&lt;br /&gt;
&lt;br /&gt;
You need to have file extensions visible in order to modify it.&lt;br /&gt;
&lt;br /&gt;
== Process ==&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say you want to patch a file &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt; with this as the contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;storage&amp;quot; : {&lt;br /&gt;
        &amp;quot;level&amp;quot;: 100,&lt;br /&gt;
        &amp;quot;xp&amp;quot;: 500&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your mod is located at &amp;lt;code&amp;gt;assets/mods/my-mod/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You would create a file with the filepath &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To replace &amp;quot;storage.level&amp;quot; with 200, &amp;lt;code&amp;gt;test.json.patch&amp;lt;/code&amp;gt; would look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;storage&amp;quot; : {&lt;br /&gt;
        &amp;quot;level&amp;quot;: 200&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To add &amp;quot;storage.name&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;storage&amp;quot; : {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;Shizuka&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Object patching is useful for adding new properties and modifying existing ones.&lt;br /&gt;
&lt;br /&gt;
Weakness: - Inability to removal properties - Arrays are hard to patch&lt;br /&gt;
&lt;br /&gt;
= Patch Steps =&lt;br /&gt;
&lt;br /&gt;
Patch Steps is another way to perform json file Patching. It is more powerful than Object Patching.&lt;br /&gt;
&lt;br /&gt;
The only difference between Object Patching and Patch Steps is the format of the &amp;lt;code&amp;gt;.patch&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
We will be using the same sample json file used to demonstrate how Object Patching works.&lt;br /&gt;
&lt;br /&gt;
Location: &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;storage&amp;quot; : {&lt;br /&gt;
        &amp;quot;level&amp;quot;: 200&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Appliers ==&lt;br /&gt;
&lt;br /&gt;
An Applier is a Patch Step command.&lt;br /&gt;
&lt;br /&gt;
== Patch Step Appliers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enter ===&lt;br /&gt;
&lt;br /&gt;
This changes the context of a patch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;ENTER&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: [&amp;quot;storage&amp;quot;]&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;ENTER&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: &amp;quot;storage&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
would change the internal view of:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;storage&amp;quot; : {&lt;br /&gt;
        &amp;quot;level&amp;quot;: 200,&lt;br /&gt;
        &amp;quot;saves&amp;quot;: [{&lt;br /&gt;
            &amp;quot;data&amp;quot;: &amp;quot;blob&amp;quot;&lt;br /&gt;
        }]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;level&amp;quot;: 200,&lt;br /&gt;
    &amp;quot;saves&amp;quot;: [{&lt;br /&gt;
        &amp;quot;data&amp;quot;: &amp;quot;blob&amp;quot;&lt;br /&gt;
    }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;ENTER&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: [&amp;quot;storage&amp;quot;, &amp;quot;saves&amp;quot;, 0]&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
would change the internal view of:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;storage&amp;quot; : {&lt;br /&gt;
        &amp;quot;level&amp;quot;: 200,&lt;br /&gt;
        &amp;quot;saves&amp;quot;: [{&lt;br /&gt;
            &amp;quot;data&amp;quot;: &amp;quot;blob&amp;quot;&lt;br /&gt;
        }]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;data&amp;quot;: &amp;quot;blob&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exit ===&lt;br /&gt;
&lt;br /&gt;
For every &amp;lt;code&amp;gt;ENTER&amp;lt;/code&amp;gt;, there should be at least one &amp;lt;code&amp;gt;EXIT&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;EXIT&amp;lt;/code&amp;gt; undos an &amp;lt;code&amp;gt;ENTER&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;EXIT&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
is equivalent to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;EXIT&amp;quot;,&lt;br /&gt;
    &amp;quot;count&amp;quot;: 1&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For demonstration purposes, this is the contents of &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;storage&amp;quot;: {&lt;br /&gt;
        &amp;quot;user&amp;quot;: {&lt;br /&gt;
            &amp;quot;name&amp;quot;: 20&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and this is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;ENTER&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: [&amp;quot;storage&amp;quot;, &amp;quot;user&amp;quot;]&lt;br /&gt;
}, {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;EXIT&amp;quot;,&lt;br /&gt;
    &amp;quot;count&amp;quot;: 2&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first step will produce the internal result of:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;name&amp;quot;: 20&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second step will undo the first leading to the initial state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;storage&amp;quot;: {&lt;br /&gt;
        &amp;quot;user&amp;quot;: {&lt;br /&gt;
            &amp;quot;name&amp;quot;: 20&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SET_KEY ===&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;storage&amp;quot;: {&lt;br /&gt;
        &amp;quot;user&amp;quot;: {&lt;br /&gt;
            &amp;quot;name&amp;quot;: 20&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;SET_KEY&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: &amp;quot;storage&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the result:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;storage&amp;quot;: {&lt;br /&gt;
        &amp;quot;user&amp;quot;: {&lt;br /&gt;
            &amp;quot;name&amp;quot;: 20&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;SET_KEY&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: &amp;quot;storage&amp;quot;,&lt;br /&gt;
    &amp;quot;content&amp;quot;: 2&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the result:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;storage&amp;quot;: 2&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== INIT_KEY ===&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;storage&amp;quot;: {&lt;br /&gt;
        &amp;quot;user&amp;quot;: {&lt;br /&gt;
            &amp;quot;name&amp;quot;: 20&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;INIT_KEY&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: &amp;quot;storage&amp;quot;,&lt;br /&gt;
    &amp;quot;content&amp;quot;: {&lt;br /&gt;
        &amp;quot;a&amp;quot;: 2&lt;br /&gt;
    }&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nothing will change to the data because &amp;quot;storage&amp;quot; already exists.&lt;br /&gt;
&lt;br /&gt;
Changing &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt; to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;INIT_KEY&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: &amp;quot;storage2&amp;quot;,&lt;br /&gt;
    &amp;quot;content&amp;quot;: {&lt;br /&gt;
        &amp;quot;a&amp;quot;: 2&lt;br /&gt;
    }&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
would result in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;storage&amp;quot;: {&lt;br /&gt;
        &amp;quot;user&amp;quot;: {&lt;br /&gt;
            &amp;quot;name&amp;quot;: 20&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;storage2&amp;quot;: {&lt;br /&gt;
        &amp;quot;a&amp;quot;: 2&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== REMOVE_ARRAY_ELEMENT ===&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;a&amp;quot;: [1,2,3]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;REMOVE_ARRAY_ELEMENT&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: 0&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Applying the patch will result in this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;a&amp;quot;: [2,3]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ADD_ARRAY_ELEMENT ===&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;a&amp;quot;: [1,2,3]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;ENTER&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: &amp;quot;a&amp;quot;&lt;br /&gt;
},{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;ADD_ARRAY_ELEMENT&amp;quot;,&lt;br /&gt;
    &amp;quot;content&amp;quot;: 4&lt;br /&gt;
}, {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;ADD_ARRAY_ELEMENT&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: 0,&lt;br /&gt;
    &amp;quot;content&amp;quot;: 0&lt;br /&gt;
}, {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;EXIT&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the first step, the internal state will be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[1,2,3]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the second step, the number 4 will be pushed to the end of the array:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[1,2,3,4]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the third step, the number 0 will be added to the start of the array:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[0,1,2,3,4]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The last step will revert the value of focus to the initial object:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;a&amp;quot;: [0,1,2,3,4]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Import ===&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;a&amp;quot;: {&lt;br /&gt;
        &amp;quot;b&amp;quot;: 2&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/data/test2.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;b&amp;quot;: {&lt;br /&gt;
        &amp;quot;a&amp;quot;: 2&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;c&amp;quot;: {&lt;br /&gt;
        &amp;quot;a&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;d&amp;quot;: 4&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;IMPORT&amp;quot;,&lt;br /&gt;
    &amp;quot;src&amp;quot;: &amp;quot;data/test2.json&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is equivalent to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;IMPORT&amp;quot;,&lt;br /&gt;
    &amp;quot;src&amp;quot;: &amp;quot;game:data/test2.json&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first step would load &amp;lt;code&amp;gt;assets/data/test2.json&amp;lt;/code&amp;gt; then merge it with the current value resulting in this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;a&amp;quot;: {&lt;br /&gt;
        &amp;quot;b&amp;quot;: 2&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;b&amp;quot;: {&lt;br /&gt;
        &amp;quot;a&amp;quot;: 2&lt;br /&gt;
    },&lt;br /&gt;
    ,&lt;br /&gt;
    &amp;quot;c&amp;quot;: {&lt;br /&gt;
        &amp;quot;a&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;d&amp;quot;: 4&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;assets/data/test2.json&amp;lt;/code&amp;gt; had patches associated with it, it would be applied before being merged.&lt;br /&gt;
&lt;br /&gt;
Another feature is loading json files inside the mod directory and merging. No patches to the loaded file will be done if &amp;lt;code&amp;gt;mod:&amp;lt;/code&amp;gt; is specified.&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;a&amp;quot;: {&lt;br /&gt;
        &amp;quot;b&amp;quot;: 2&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;IMPORT&amp;quot;,&lt;br /&gt;
    &amp;quot;src&amp;quot;: &amp;quot;mod:patches/data/test.json&amp;quot;,&lt;br /&gt;
    &amp;quot;path&amp;quot;: [&amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;3&amp;quot;],&lt;br /&gt;
    &amp;quot;index&amp;quot;: &amp;quot;y&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/patches/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;1&amp;quot;: {&lt;br /&gt;
        &amp;quot;2&amp;quot;: {&lt;br /&gt;
            &amp;quot;3&amp;quot;: 4&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First it will load &amp;lt;code&amp;gt;assets/mods/my-mod/patches/data/test.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Then it will walk the path specified.&lt;br /&gt;
&lt;br /&gt;
Initial loaded file internal representation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;1&amp;quot;: {&lt;br /&gt;
        &amp;quot;2&amp;quot;: {&lt;br /&gt;
            &amp;quot;3&amp;quot;: 4&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After entering &amp;quot;1&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;2&amp;quot;: {&lt;br /&gt;
        &amp;quot;3&amp;quot;: 4&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After entering &amp;quot;2&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;3&amp;quot;: 4&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After entering &amp;quot;3&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
4&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, it will add a key &amp;quot;y&amp;quot; with the value that resulted from the path walk (4).&lt;br /&gt;
&lt;br /&gt;
So the overall result will be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;a&amp;quot;: {&lt;br /&gt;
        &amp;quot;b&amp;quot;: 2&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;y&amp;quot;: 4&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: &amp;quot;index&amp;quot; and &amp;quot;path&amp;quot; options are optional.&lt;br /&gt;
&lt;br /&gt;
=== Include ===&lt;br /&gt;
&lt;br /&gt;
The purpose of &amp;lt;code&amp;gt;INCLUDE&amp;lt;/code&amp;gt; is to allow external Object Patching or PatchSteps to be performed.&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;a&amp;quot;: {&lt;br /&gt;
        &amp;quot;b&amp;quot;: 2&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;INCLUDE&amp;quot;,&lt;br /&gt;
    &amp;quot;src&amp;quot;: &amp;quot;mod:patches/data/test.json&amp;quot;,&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/patches/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;1&amp;quot;: {&lt;br /&gt;
        &amp;quot;2&amp;quot;: {&lt;br /&gt;
            &amp;quot;3&amp;quot;: 4&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is like setting the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt; to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;1&amp;quot;: {&lt;br /&gt;
        &amp;quot;2&amp;quot;: {&lt;br /&gt;
            &amp;quot;3&amp;quot;: 4&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, &amp;lt;code&amp;gt;INCLUDE&amp;lt;/code&amp;gt; is used as an organization method.&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;a&amp;quot;: {&lt;br /&gt;
        &amp;quot;b&amp;quot;: 2&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;INCLUDE&amp;quot;,&lt;br /&gt;
    &amp;quot;src&amp;quot;: &amp;quot;mod:patches/data/test.json&amp;quot;,&lt;br /&gt;
}, {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;SET_KEY&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: &amp;quot;b&amp;quot;,&lt;br /&gt;
    &amp;quot;content&amp;quot;: [1,2,3]&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/patches/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;ENTER&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: [&amp;quot;a&amp;quot;]&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This results in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;a&amp;quot;: {&lt;br /&gt;
        &amp;quot;b&amp;quot;: 2&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;b&amp;quot;: [1,2,3]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Think of PatchStep files as its own room. What include does is generate a new room to perform some special operation. Rooms do not intefere with each other, they just modify the data.&lt;br /&gt;
&lt;br /&gt;
=== FOR_IN ===&lt;br /&gt;
&lt;br /&gt;
This PatchStep is useful for combining repeated set of PatchSteps with only slightly variations in input.&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;FOR_IN&amp;quot;,&lt;br /&gt;
    &amp;quot;keyword&amp;quot;: &amp;quot;__INDEX__&amp;quot;,&lt;br /&gt;
    &amp;quot;values&amp;quot;: [1,2,3,4],&lt;br /&gt;
    &amp;quot;body&amp;quot;: [{&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;SET_KEY&amp;quot;,&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;__INDEX__-id&amp;quot;,&lt;br /&gt;
        &amp;quot;content&amp;quot;: &amp;quot;__INDEX__&amp;quot;&lt;br /&gt;
    }]&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This results in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;1-id&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
    &amp;quot;2-id&amp;quot;: &amp;quot;2&amp;quot;,&lt;br /&gt;
    &amp;quot;3-id&amp;quot;: &amp;quot;3&amp;quot;,&lt;br /&gt;
    &amp;quot;4-id&amp;quot;: &amp;quot;4&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;FOR_IN&amp;quot;,&lt;br /&gt;
    &amp;quot;keyword&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;__NAME__&amp;quot;,&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;__ID__&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;values&amp;quot;: [{&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;Bob&amp;quot;,&lt;br /&gt;
        &amp;quot;id&amp;quot;: 1&lt;br /&gt;
    },{&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;Joe&amp;quot;,&lt;br /&gt;
        &amp;quot;id&amp;quot;: 2&lt;br /&gt;
    }],&lt;br /&gt;
    &amp;quot;body&amp;quot;: [{&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;SET_KEY&amp;quot;,&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;__NAME__&amp;quot;,&lt;br /&gt;
        &amp;quot;content&amp;quot;: &amp;quot;__ID__&amp;quot;&lt;br /&gt;
    }]&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This results in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;Bob&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
    &amp;quot;Joe&amp;quot;: &amp;quot;2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copy ===&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;a&amp;quot;: 2,&lt;br /&gt;
    &amp;quot;b&amp;quot;: [3],&lt;br /&gt;
    &amp;quot;c&amp;quot;: {&lt;br /&gt;
        &amp;quot;d&amp;quot;: 4&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;FOR_IN&amp;quot;,&lt;br /&gt;
    &amp;quot;keyword&amp;quot;: &amp;quot;__VAR__&amp;quot;,&lt;br /&gt;
    &amp;quot;values&amp;quot;: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;],&lt;br /&gt;
    &amp;quot;body&amp;quot;: [{&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;ENTER&amp;quot;,&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;__VAR__&amp;quot;&lt;br /&gt;
    },{&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;COPY&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;alias-__VAR__&amp;quot;,&lt;br /&gt;
    }, {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;EXIT&amp;quot;&lt;br /&gt;
    }]&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nothing will change. All this will do is create an internal key-value storage that looks like this:&lt;br /&gt;
&lt;br /&gt;
{ &amp;quot;alias-a&amp;quot;: 2, &amp;quot;alias-b&amp;quot;: [3], &amp;quot;alias-c&amp;quot;: { &amp;quot;d&amp;quot;: 4 } }&lt;br /&gt;
&lt;br /&gt;
=== PASTE ===&lt;br /&gt;
&lt;br /&gt;
This command relies on COPY.&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/data/test.json&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;a&amp;quot;: 2,&lt;br /&gt;
    &amp;quot;b&amp;quot;: [3],&lt;br /&gt;
    &amp;quot;c&amp;quot;: {&lt;br /&gt;
        &amp;quot;d&amp;quot;: 4&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the contents of &amp;lt;code&amp;gt;assets/mods/my-mod/assets/data/test.json.patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;FOR_IN&amp;quot;,&lt;br /&gt;
    &amp;quot;keyword&amp;quot;: &amp;quot;__VAR__&amp;quot;,&lt;br /&gt;
    &amp;quot;values&amp;quot;: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;],&lt;br /&gt;
    &amp;quot;body&amp;quot;: [{&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;ENTER&amp;quot;,&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;__VAR__&amp;quot;&lt;br /&gt;
    },{&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;COPY&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;alias-__VAR__&amp;quot;&lt;br /&gt;
    },{&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;EXIT&amp;quot;&lt;br /&gt;
    },{&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;SET_KEY&amp;quot;,&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;__VAR__&amp;quot;&lt;br /&gt;
    }]&lt;br /&gt;
}, {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;SET_KEY&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: &amp;quot;saved&amp;quot;,&lt;br /&gt;
    &amp;quot;content&amp;quot;: {}&lt;br /&gt;
}, {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;ENTER&amp;quot;,&lt;br /&gt;
    &amp;quot;index&amp;quot;: &amp;quot;saved&amp;quot;&lt;br /&gt;
}, {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;FOR_IN&amp;quot;,&lt;br /&gt;
    &amp;quot;keyword&amp;quot;: &amp;quot;__VAR__&amp;quot;,&lt;br /&gt;
    &amp;quot;values&amp;quot;: [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;],&lt;br /&gt;
    &amp;quot;body&amp;quot;: [{&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;PASTE&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;alias-__VAR__&amp;quot;,&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;__VAR__&amp;quot;&lt;br /&gt;
    }]&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the result:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;saved&amp;quot;: {&lt;br /&gt;
        &amp;quot;a&amp;quot;: 2,&lt;br /&gt;
        &amp;quot;b&amp;quot;: [3],&lt;br /&gt;
        &amp;quot;c&amp;quot;: {&lt;br /&gt;
            &amp;quot;d&amp;quot;: 4&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Debug ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
    &amp;quot;value&amp;quot;: true&lt;br /&gt;
}, {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
    &amp;quot;value&amp;quot;: false&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This PatchStep turns Debug Mode on or off.&lt;br /&gt;
&lt;br /&gt;
=== Comment ===&lt;br /&gt;
&lt;br /&gt;
Debug mode must be on for this PatchStep to work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
[{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
    &amp;quot;value&amp;quot;: true&lt;br /&gt;
},{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;COMMENT&amp;quot;,&lt;br /&gt;
    &amp;quot;value&amp;quot;: &amp;quot;This is a comment&amp;quot;&lt;br /&gt;
}, {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;COMMENT&amp;quot;,&lt;br /&gt;
    &amp;quot;value&amp;quot;: {&lt;br /&gt;
        &amp;quot;data&amp;quot;: 3&lt;br /&gt;
    }&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will first display &amp;lt;code&amp;gt;This is a comment&amp;lt;/code&amp;gt; in the DevTools console. It will then display &amp;lt;code&amp;gt;{data: 3}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modding guides]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=File:Faceless-mod-folder-contents-example.png&amp;diff=135</id>
		<title>File:Faceless-mod-folder-contents-example.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=File:Faceless-mod-folder-contents-example.png&amp;diff=135"/>
		<updated>2020-08-17T21:33:27Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=File:Faceless-mod-path-example.png&amp;diff=134</id>
		<title>File:Faceless-mod-path-example.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=File:Faceless-mod-path-example.png&amp;diff=134"/>
		<updated>2020-08-17T21:27:27Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=File:Lea-face-path.png&amp;diff=133</id>
		<title>File:Lea-face-path.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=File:Lea-face-path.png&amp;diff=133"/>
		<updated>2020-08-17T21:26:22Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=File:Mod-assets-folder.png&amp;diff=132</id>
		<title>File:Mod-assets-folder.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=File:Mod-assets-folder.png&amp;diff=132"/>
		<updated>2020-08-17T21:24:21Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Dorito&amp;diff=131</id>
		<title>Dorito</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Dorito&amp;diff=131"/>
		<updated>2020-08-16T18:56:49Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable infobox-table&amp;quot; style=&amp;quot;width: 20em;&amp;quot;&lt;br /&gt;
! Homepage&lt;br /&gt;
| [[github:Nnubes256/Dorito]]&lt;br /&gt;
|-&lt;br /&gt;
! Author&lt;br /&gt;
| [[user:Nnubes256|Ignacio &amp;quot;Nnubes256&amp;quot; Gutiérrez Gómez]]&lt;br /&gt;
|-&lt;br /&gt;
! Written in&lt;br /&gt;
| JavaScript&lt;br /&gt;
|-&lt;br /&gt;
! License&lt;br /&gt;
| MIT&lt;br /&gt;
|-&lt;br /&gt;
! First appeared&lt;br /&gt;
| Late 2015&lt;br /&gt;
|-&lt;br /&gt;
! Stable release&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
! Preview release&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
! Current status&lt;br /&gt;
| Discontinued&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dorito&#039;&#039;&#039; was the first publicly available modloader for CrossCode, written by [[user:Nnubes256|Ignacio &amp;quot;Nnubes256&amp;quot; Gutiérrez Gómez]], released sometime in late 2015 and publicly announced on the [[CrossCode phpBB forums]].&lt;br /&gt;
&lt;br /&gt;
Being the first CrossCode modloader project ever, it was very bare-bones compared to modern modloaders such as [[CCLoader]], as no modding infrastructure was in place at the time.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
The major feature introduced by Dorito consisted of a collection of utilities for [[wikipedia:Monkey patch|monkey-patching]] JavaScript functions, along with a few game loading events implemented with [[github:millermedeiros/js-signals]], an event system written in JavaScript. These events resemble the mod loading stages found on modern modloaders. Another feature that made Dorito unique was its end-user installation procedure: the modloader was contained in a single HTML page which the user would replace CrossCode&#039;s &amp;lt;code&amp;gt;node-webkit.html&amp;lt;/code&amp;gt; with. However, it had no support for static asset loading, nor other quality-of-life features now present on modern modloaders.&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
Neither any Dorito-based mods, nor relevant [[CrossCode phpBB forums]] threads survived to this day. Parts of the so called &amp;quot;General Modding Thread&amp;quot; were able to be archived&amp;lt;ref&amp;gt;https://web.archive.org/web/20170811031608/http://forum.cross-code.com/viewtopic.php?f=2&amp;amp;t=250&amp;amp;sid=df33102d8a61a46731819a1416fce289&amp;lt;/ref&amp;gt; (only pages 1 and from 8 to 11); however, no mentions of the Dorito modloader exists on the content that managed to get archived.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Template:Anchor&amp;diff=130</id>
		<title>Template:Anchor</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Template:Anchor&amp;diff=130"/>
		<updated>2020-08-16T15:52:53Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span id=&amp;quot;{{{1}}}&amp;quot;&amp;gt;{{{2|}}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Template:Anchor&amp;diff=129</id>
		<title>Template:Anchor</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Template:Anchor&amp;diff=129"/>
		<updated>2020-08-16T15:52:04Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span id=&amp;quot;{{{1}}}&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;{{{2|}}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Template:Anchor&amp;diff=128</id>
		<title>Template:Anchor</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Template:Anchor&amp;diff=128"/>
		<updated>2020-08-16T15:51:45Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span id=&amp;quot;{{{1}}}&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;{{{2}}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Template:Anchor&amp;diff=127</id>
		<title>Template:Anchor</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Template:Anchor&amp;diff=127"/>
		<updated>2020-08-16T15:50:07Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Created page with &amp;quot;&amp;lt;includeonly&amp;gt;&amp;lt;span id=&amp;quot;{{{1}}}&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span id=&amp;quot;{{{1}}}&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Template:Lowercase_title&amp;diff=126</id>
		<title>Template:Lowercase title</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Template:Lowercase_title&amp;diff=126"/>
		<updated>2020-08-16T15:31:12Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Use an &amp;lt;includeonly&amp;gt; tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;{{DISPLAYTITLE:{{#if:{{NAMESPACE}}|{{NAMESPACE}}:|}}{{lcfirst:{{PAGENAME}}}}}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;Taken from https://www.mediawiki.org/wiki/Template:Lowercase&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Template:Lowercase_title&amp;diff=125</id>
		<title>Template:Lowercase title</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Template:Lowercase_title&amp;diff=125"/>
		<updated>2020-08-16T15:30:31Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Created page with &amp;quot;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;{{DISPLAYTITLE:{{#if:{{NAMESPACE}}|{{NAMESPACE}}:|}}{{lcfirst:{{PAGENAME}}}}}}&amp;lt;/span&amp;gt;&amp;lt;noinclude&amp;gt;Taken from https://www.mediawiki.org/wiki/Template:L...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;{{DISPLAYTITLE:{{#if:{{NAMESPACE}}|{{NAMESPACE}}:|}}{{lcfirst:{{PAGENAME}}}}}}&amp;lt;/span&amp;gt;&amp;lt;noinclude&amp;gt;Taken from https://www.mediawiki.org/wiki/Template:Lowercase&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Dorito&amp;diff=124</id>
		<title>Dorito</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Dorito&amp;diff=124"/>
		<updated>2020-08-16T15:25:16Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Use an interwiki ref&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable infobox-table&amp;quot; style=&amp;quot;width: 20em;&amp;quot;&lt;br /&gt;
! Homepage&lt;br /&gt;
| [[github:Nnubes256/Dorito]]&lt;br /&gt;
|-&lt;br /&gt;
! Author&lt;br /&gt;
| [[user:Nnubes256|Ignacio &amp;quot;Nnubes256&amp;quot; Gutiérrez Gómez]]&lt;br /&gt;
|-&lt;br /&gt;
! Written in&lt;br /&gt;
| JavaScript&lt;br /&gt;
|-&lt;br /&gt;
! License&lt;br /&gt;
| MIT&lt;br /&gt;
|-&lt;br /&gt;
! First appeared&lt;br /&gt;
| Late 2015&lt;br /&gt;
|-&lt;br /&gt;
! Stable release&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
! Preview release&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
! Current status&lt;br /&gt;
| Discontinued&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dorito&#039;&#039;&#039; was the first publicly available modloader for CrossCode, written by [[user:Nnubes256|Ignacio &amp;quot;Nnubes256&amp;quot; Gutiérrez Gómez]], released sometime in late 2015 and publicly announced on the [[CrossCode phpBB forums]].&lt;br /&gt;
&lt;br /&gt;
Being the first CrossCode modloader project ever, it was very bare-bones compared to modern modloaders such as [[CCLoader]], as no modding infrastructure was in place at the time.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
The major feature introduced by Dorito consisted of a collection of utilities for [[wikipedia:Monkey patch|monkey-patching]] JavaScript functions, along with a few game loading events implemented with [[github:millermedeiros/js-signals]], an event system written in JavaScript. These events resemble the mod loading stages found on modern modloaders. Another feature that made Dorito unique was its end-user installation procedure: the modloader was contained in a single HTML page which the user would replace CrossCode&#039;s &amp;lt;code&amp;gt;node-webkit.html&amp;lt;/code&amp;gt; with. However, it had no support for static asset loading, nor other quality-of-life features now present on modern modloaders.&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
Neither any Dorito-based mods, nor relevant [[CrossCode phpBB forums]] threads survived to this day. Parts of the so called &amp;quot;General Modding Thread&amp;quot; were able to be archived&amp;lt;ref&amp;gt;[https://web.archive.org/web/20170811031608/http://forum.cross-code.com/viewtopic.php?f=2&amp;amp;t=250&amp;amp;sid=df33102d8a61a46731819a1416fce289 Wayback Archive]&amp;lt;/ref&amp;gt; (only pages 1 and from 8 to 11); however, no mentions of the Dorito modloader exists on the content that managed to get archived.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=MediaWiki:Print.css&amp;diff=104</id>
		<title>MediaWiki:Print.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=MediaWiki:Print.css&amp;diff=104"/>
		<updated>2020-08-14T19:53:40Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will affect the print output */&lt;br /&gt;
&lt;br /&gt;
img.block-img {&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    max-width: 100%;&lt;br /&gt;
    height: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.infobox-table {&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.infobox-table th {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Dorito&amp;diff=103</id>
		<title>Dorito</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Dorito&amp;diff=103"/>
		<updated>2020-08-14T19:53:02Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable infobox-table&amp;quot; style=&amp;quot;width: 20em;&amp;quot;&lt;br /&gt;
! Homepage&lt;br /&gt;
| [[github:Nnubes256/Dorito]]&lt;br /&gt;
|-&lt;br /&gt;
! Author&lt;br /&gt;
| [[github:Nnubes256]] aka Nacho&lt;br /&gt;
|-&lt;br /&gt;
! Written in&lt;br /&gt;
| JavaScript&lt;br /&gt;
|-&lt;br /&gt;
! License&lt;br /&gt;
| MIT&lt;br /&gt;
|-&lt;br /&gt;
! First appeared&lt;br /&gt;
| date unknown, most likely sometime after 2015-31-20&lt;br /&gt;
|-&lt;br /&gt;
! Stable release&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
! Preview release&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
! Current status&lt;br /&gt;
| Discontinued&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dorito&#039;&#039;&#039; is the first publicly available modloader for CrossCode, released sometime during the [[forum]] days. As it&#039;s the first modloader project ever, it was very bare-bones compared to the [[CCLoader|modern modloaders]] as the useful modding infrastructure simply hasn&#039;t been invented yet at the time. The major feature of Dorito was a collection of utilities for monkey-patching JS functions, along with a few game loading events implemented with [[github:millermedeiros/js-signals]] which resemble the modern [[mod loading stages]]. Another feature that made Dorito unique was its installation procedure: the loader was contained in a single HTML page which you had to replace &amp;lt;code&amp;gt;node-webkit.html&amp;lt;/code&amp;gt; with.&lt;br /&gt;
&lt;br /&gt;
Unfortunately neither any Dorito-based mods, nor relevant [[forum]] threads survived to this day. Parts of the &amp;quot;General Modding Thread&amp;quot; can be viewed on [http://web.archive.org/web/20170811031608/http://forum.cross-code.com/viewtopic.php?f=2&amp;amp;t=250&amp;amp;sid=df33102d8a61a46731819a1416fce289 web.archive.org] (only pages 1 and from 8 to 11), however, there are no mentions of Dorito-the-modloader there.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=CCInjector&amp;diff=102</id>
		<title>CCInjector</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=CCInjector&amp;diff=102"/>
		<updated>2020-08-14T19:51:54Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable infobox-table&amp;quot; style=&amp;quot;width: 21em;&amp;quot;&lt;br /&gt;
! Homepage&lt;br /&gt;
| [[github:CCDirectLink/CCInjector]]&lt;br /&gt;
|-&lt;br /&gt;
! Author&lt;br /&gt;
| [[github:ac2pic]] aka Emileyah&lt;br /&gt;
|-&lt;br /&gt;
! Written in&lt;br /&gt;
| JavaScript&lt;br /&gt;
|-&lt;br /&gt;
! License&lt;br /&gt;
| MIT&lt;br /&gt;
|-&lt;br /&gt;
! First appeared&lt;br /&gt;
| 2019-05-19&lt;br /&gt;
|-&lt;br /&gt;
! Stable release&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
! Preview release&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
! Current status&lt;br /&gt;
| Discontinued&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=MediaWiki:Common.css&amp;diff=101</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=MediaWiki:Common.css&amp;diff=101"/>
		<updated>2020-08-14T19:51:04Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Disable word wrapping in table header elements of infoboxes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
img.block-img {&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    max-width: 100%;&lt;br /&gt;
    height: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.infobox-table {&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.infobox-table th {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Dorito&amp;diff=99</id>
		<title>Dorito</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Dorito&amp;diff=99"/>
		<updated>2020-08-14T07:29:59Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Mention the installation process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable infobox-table&amp;quot; style=&amp;quot;width: 20em;&amp;quot;&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Homepage&lt;br /&gt;
| [[github:Nnubes256/Dorito]]&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Author&lt;br /&gt;
| [[github:Nnubes256]] aka Nacho&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Written in&lt;br /&gt;
| JavaScript&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | License&lt;br /&gt;
| MIT&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | First appeared&lt;br /&gt;
| date unknown, most likely sometime after 2015-31-20&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Stable release&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Preview release&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Current status&lt;br /&gt;
| Discontinued&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dorito&#039;&#039;&#039; is the first publicly available modloader for CrossCode, released sometime during the [[forum]] days. As it&#039;s the first modloader project ever, it was very bare-bones compared to the [[CCLoader|modern modloaders]] as the useful modding infrastructure simply hasn&#039;t been invented yet at the time. The major feature of Dorito was a collection of utilities for monkey-patching JS functions, along with a few game loading events implemented with [[github:millermedeiros/js-signals]] which resemble the modern [[mod loading stages]]. Another feature that made Dorito unique was its installation procedure: the loader was contained in a single HTML page which you had to replace &amp;lt;code&amp;gt;node-webkit.html&amp;lt;/code&amp;gt; with.&lt;br /&gt;
&lt;br /&gt;
Unfortunately neither any Dorito-based mods, nor relevant [[forum]] threads survived to this day. Parts of the &amp;quot;General Modding Thread&amp;quot; can be viewed on [http://web.archive.org/web/20170811031608/http://forum.cross-code.com/viewtopic.php?f=2&amp;amp;t=250&amp;amp;sid=df33102d8a61a46731819a1416fce289 web.archive.org] (only pages 1 and from 8 to 11), however, there are no mentions of Dorito-the-modloader there.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=CCInjector&amp;diff=98</id>
		<title>CCInjector</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=CCInjector&amp;diff=98"/>
		<updated>2020-08-13T22:55:40Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Add an infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable infobox-table&amp;quot; style=&amp;quot;width: 21em;&amp;quot;&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Homepage&lt;br /&gt;
| [[github:CCDirectLink/CCInjector]]&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Author&lt;br /&gt;
| [[github:ac2pic]] aka Emileyah&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Written in&lt;br /&gt;
| JavaScript&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | License&lt;br /&gt;
| MIT&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | First appeared&lt;br /&gt;
| 2019-05-19&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Stable release&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Preview release&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Current status&lt;br /&gt;
| Discontinued&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Dorito&amp;diff=97</id>
		<title>Dorito</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Dorito&amp;diff=97"/>
		<updated>2020-08-13T17:28:32Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Add some actual content, awaiting a review from Nacho&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable infobox-table&amp;quot; style=&amp;quot;width: 20em;&amp;quot;&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Homepage&lt;br /&gt;
| [[github:Nnubes256/Dorito]]&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Author&lt;br /&gt;
| [[github:Nnubes256]] aka Nacho&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Written in&lt;br /&gt;
| JavaScript&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | License&lt;br /&gt;
| MIT&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | First appeared&lt;br /&gt;
| date unknown, most likely sometime after 2015-31-20&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Stable release&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Preview release&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;white-space: nowrap;&amp;quot; | Current status&lt;br /&gt;
| Discontinued&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dorito&#039;&#039;&#039; is the first publicly available modloader for CrossCode, released sometime during the [[forum]] days. As it&#039;s the first modloader project ever, it was very bare-bones compared to the [[CCLoader|modern modloaders]] as the useful modding infrastructure simply hasn&#039;t been invented yet at the time. The major feature of Dorito was a collection of utilities for monkey-patching JS functions, along with a few game loading events implemented with [[github:millermedeiros/js-signals]] which resemble the modern [[mod loading stages]].&lt;br /&gt;
&lt;br /&gt;
Unfortunately neither any Dorito-based mods, nor relevant [[forum]] threads survived to this day. Parts of the &amp;quot;General Modding Thread&amp;quot; can be viewed on [http://web.archive.org/web/20170811031608/http://forum.cross-code.com/viewtopic.php?f=2&amp;amp;t=250&amp;amp;sid=df33102d8a61a46731819a1416fce289 web.archive.org] (only pages 1 and from 8 to 11), however, there are no mentions of Dorito-the-modloader there.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=MediaWiki:Common.css&amp;diff=96</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=MediaWiki:Common.css&amp;diff=96"/>
		<updated>2020-08-13T17:13:10Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Add some margins to the infobox table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
img.block-img {&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    max-width: 100%;&lt;br /&gt;
    height: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.infobox-table {&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
    margin: 0.5em 0 0.5em 1em;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Locations_of_CrossCode_files&amp;diff=92</id>
		<title>Locations of CrossCode files</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Locations_of_CrossCode_files&amp;diff=92"/>
		<updated>2020-08-13T14:54:26Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Fix platform-specific images after the skin update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Save folder ==&lt;br /&gt;
&lt;br /&gt;
There isn&#039;t really much to say about this folder other than:&lt;br /&gt;
&lt;br /&gt;
# It isn&#039;t located in the [[#Game files folder|&#039;&#039;&#039;game files folder&#039;&#039;&#039;]], so you can delete and reinstall the game without losing your progress or settings.&lt;br /&gt;
# It is located in the nw.js&#039;s browser cache folder.&lt;br /&gt;
&lt;br /&gt;
Here&#039;re the direct paths to the save file on various platforms:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Installation path&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MS Windows&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;%LOCALAPPDATA%\CrossCode\cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.config/CrossCode/Default/cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;macOS&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/Library/Application Support/CrossCode/Default/cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Similarly named files &amp;lt;code&amp;gt;cc.save.backup&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;cc.save.backup2&amp;lt;/code&amp;gt; exist and can be used to restore the save file in case it becomes corrupt.&lt;br /&gt;
&lt;br /&gt;
For now this section is incomplete and more information can be obtained on the [https://crosscode.gamepedia.com/Savegame game&#039;s wiki].&lt;br /&gt;
&lt;br /&gt;
== Game installation folder ==&lt;br /&gt;
&lt;br /&gt;
You would probably know where you installed the game better than me. However, here&#039;s a quick way to locate the installation folder in case you are using Steam:&lt;br /&gt;
&lt;br /&gt;
# Find CrossCode in your game library&amp;lt;/li&amp;gt;&lt;br /&gt;
# Right-click it, in the context menu press &amp;lt;code&amp;gt;Properties...&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Steam-crosscode-properties.png|class=block-img]]&lt;br /&gt;
# In the new window select the &amp;lt;code&amp;gt;LOCAL FILES&amp;lt;/code&amp;gt; tab&lt;br /&gt;
# You&#039;ll be presented with the following menu:&amp;lt;br&amp;gt;[[File:steam-browse-local-files.png|class=block-img]]&lt;br /&gt;
# Click the &amp;lt;code&amp;gt;BROWSE LOCAL FILES...&amp;lt;/code&amp;gt; button and you&#039;ll be taken to the installation folder.&lt;br /&gt;
&lt;br /&gt;
The common paths where Steam installs CrossCode are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Installation path&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MS Windows&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;C:\Program Files\Steam\steamapps\common\CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.local/share/Steam/steamapps/common/CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;macOS&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/Library/Application Support/Steam/steamapps/common/CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how this folder looks on different platforms:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MS Windows:&#039;&#039;&#039;&lt;br /&gt;
[[File:Clean-game-files-directory.windows.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GNU/Linux:&#039;&#039;&#039;&lt;br /&gt;
[[File:Clean-game-files-directory.linux.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;macOS:&#039;&#039;&#039;&lt;br /&gt;
[[File:Clean-game-installation-directory.macos.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
== Game files folder ==&lt;br /&gt;
&lt;br /&gt;
Due to the, uhm... &#039;&#039;interesting&#039;&#039; structure of the CrossCode&#039;s macOS application, the [[#Game installation folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]] is not necessarily the same as the &#039;&#039;&#039;game files folder&#039;&#039;&#039;. It also isn&#039;t the same as the [[#Game assets folder|&#039;&#039;&#039;game assets folder&#039;&#039;&#039;]]. Files (HTML pages and JavaScript scripts) in this folder have full access to all of the game&#039;s nw.js&#039;s features, and thus this folder is commonly used as a home for mods, modding tools and CCLoader in particular. On MS Windows and GNU/Linux it is the same as the installation folder, as such it also contains nw.js&#039;s files on these platforms.&lt;br /&gt;
&lt;br /&gt;
Anyway, here are the contents of this folder on different platforms in a fresh non-modded copy of CrossCode:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MS Windows:&#039;&#039;&#039;&lt;br /&gt;
[[File:Clean-game-files-directory.windows.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GNU/Linux:&#039;&#039;&#039;&lt;br /&gt;
[[File:Clean-game-files-directory.linux.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;macOS:&#039;&#039;&#039;&lt;br /&gt;
[[File:Clean-game-files-directory.macos.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
There are a few files which are common between all platforms:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt; - obviously, the [[#Game assets folder|&#039;&#039;&#039;game assets folder&#039;&#039;&#039;]]&lt;br /&gt;
* &amp;lt;code&amp;gt;favicon.png&amp;lt;/code&amp;gt; - the application icon (interestingly enough the &amp;lt;code&amp;gt;.exe&amp;lt;/code&amp;gt; file for Windows has a different icon)&lt;br /&gt;
* &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; - contains the path to an HTML page which is opened immediately when you start the game and initial configuration for the window this page is opened in (like dimensions, fullscreen mode, resizable or not etc)&lt;br /&gt;
* &amp;lt;code&amp;gt;steam_appid.txt&amp;lt;/code&amp;gt; - to my knowledge it is created automatically by Steam and in the case of CrossCode just contains the text &amp;lt;code&amp;gt;368340&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other files come from the standard nw.js packages [https://dl.nwjs.io/v0.35.5/ you can download yourself] and &#039;&#039;&#039;weren&#039;t created by RadicalFishGames&#039;&#039;&#039;. All aforementioned files though are identical on all platforms, which means that you can take them from an installation on another platform, download the nw.js package on a different OS, place the game files inside and you&#039;ll get a (synthetic, hehe) runnable version of the game on this another OS. (TODO: maybe I should write a guide for that as well)&lt;br /&gt;
&lt;br /&gt;
=== How to locate the game files folder ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MS Windows&#039;&#039;&#039; and &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;: Simply find your [[#Game installation folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]], it&#039;s the same as the game files folder on these platforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;macOS:&#039;&#039;&#039; Extra care needs to be taken on mac because the game files are stored inside of nw.js&#039;s application. After locating the [[#Game installation folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]] you need to:&lt;br /&gt;
&lt;br /&gt;
# Right-click the app named &amp;lt;code&amp;gt;nwjs&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
# In the context menu select &amp;lt;code&amp;gt;Show Package Contents&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Macos-show-nwjs-package-contents.png|class=block-img]]&lt;br /&gt;
# Go to the folder named &amp;lt;code&amp;gt;Contents&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;Resources&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;app.nw&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Macos-package-contents-app-nw.png|class=block-img]]&lt;br /&gt;
# Here you go, this is the game files folder!&lt;br /&gt;
&lt;br /&gt;
== Game assets folder ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides for mod users]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=MediaWiki:Print.css&amp;diff=91</id>
		<title>MediaWiki:Print.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=MediaWiki:Print.css&amp;diff=91"/>
		<updated>2020-08-13T13:47:53Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Copy contents of Common.css&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will affect the print output */&lt;br /&gt;
&lt;br /&gt;
img.block-img {&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    max-width: 100%;&lt;br /&gt;
    height: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.infobox-table {&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=MediaWiki:Common.css&amp;diff=87</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=MediaWiki:Common.css&amp;diff=87"/>
		<updated>2020-08-13T13:17:22Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Re-indent with 4 spaces, which is a more commonly used code style in CCDirectLink&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
img.block-img {&lt;br /&gt;
    display: inline-block;&lt;br /&gt;
    max-width: 100%;&lt;br /&gt;
    height: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.infobox-table {&lt;br /&gt;
    float: right;&lt;br /&gt;
    clear: right;&lt;br /&gt;
    margin-top: 0;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=MediaWiki:Common.css&amp;diff=86</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=MediaWiki:Common.css&amp;diff=86"/>
		<updated>2020-08-13T13:15:18Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Add an &amp;quot;infobox-table&amp;quot; class&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
img.block-img {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  max-width: 100%;&lt;br /&gt;
  height: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.infobox-table {&lt;br /&gt;
  float: right;&lt;br /&gt;
  clear: right;&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=CCLoader&amp;diff=85</id>
		<title>CCLoader</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=CCLoader&amp;diff=85"/>
		<updated>2020-08-12T10:07:32Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Undo revision 84 by Dmitmel (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;CCLoader&#039;&#039;&#039; is the de facto modloader for CrossCode and obviously a prerequisite for playing the CrossCode with mods. Really, it is the only actively developed modloader intended for use by both mod users and mod developers (RIP [https://github.com/20kdc/decrossfuscator/blob/master/lib/rapture.js Rapture] + [https://github.com/20kdc/decrossfuscator/tree/master/mods pre-1.1.0 mods], [[Dorito]] and [[CCInjector]]).&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
There are three ways to perform CCLoader installation, they are both described in this document. But before we continue:&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VERY IMPORTANT NOTE:&#039;&#039;&#039; Don&#039;t use the green &amp;quot;clone or download&amp;quot; button! ==&lt;br /&gt;
&lt;br /&gt;
[[File:Clone-or-download.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
This button downloads the source code, not the compiled files! In the case of CCLoader you can&#039;t just download the source code and run it because CCLoader is not written in JavaScript! While this doesn&#039;t apply to all CrossCode mods out there as most of them are written in plain JS and as such don&#039;t need to be compiled, &#039;&#039;&#039;you should get used to looking at the &amp;quot;Releases&amp;quot; page first before trying to download the source code&#039;&#039;&#039;. In the new redesigned GitHub UI the link to it became more apparent:&lt;br /&gt;
&lt;br /&gt;
[[File:Github-project-frontpage-releases.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
== Method 1: Quick-installation archive ==&lt;br /&gt;
&lt;br /&gt;
This method is recommended for most users (at least right now because the mod manager is not stable enough for a public release and has a few critical bugs) and will very likely remain the primary installation method because of its simplicity.&lt;br /&gt;
&lt;br /&gt;
# Obviously, first of all you have to locate the [[Locations of CrossCode files#Game files folder|CrossCode game files folder]].&lt;br /&gt;
# Go to the [https://github.com/dmitmel/ccloader3/releases/latest latest release page] of CCLoader. (TODO update the URL when v3 is released)&lt;br /&gt;
# Download the archive named &#039;&#039;&#039;&amp;lt;code&amp;gt;ccloader_X.Y.Z_quick-install.zip&amp;lt;/code&amp;gt;&#039;&#039;&#039; (&amp;lt;code&amp;gt;tar.gz&amp;lt;/code&amp;gt; archives also exist for GNU/Linux and macOS users). &#039;&#039;&#039;It is important that you download the archive named &amp;lt;code&amp;gt;quick-install&amp;lt;/code&amp;gt; and not the source code or something else.&#039;&#039;&#039;&lt;br /&gt;
# Extract this archive somewhere:&amp;lt;br&amp;gt;[[File:Extract-ccloader-quick-install.png|class=block-img]]&lt;br /&gt;
# Copy the files inside the archive directly into the game folder, like this:&amp;lt;br&amp;gt;[[File:Ccloader-quick-install.png|class=block-img]]&amp;lt;br&amp;gt;The only file you&#039;ll have to overwrite in a clean CrossCode installation is the &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt;:&amp;lt;br&amp;gt;[[File:Ccloader-quick-install-overwrite-package-json.png|class=block-img]]&lt;br /&gt;
# You&#039;ve now successfully installed CCLoader! The end result should look like (notice the new &amp;lt;code&amp;gt;ccloader&amp;lt;/code&amp;gt; folder):&amp;lt;br&amp;gt;[[File:Ccloader-installation-end-result.png|class=block-img]]&lt;br /&gt;
# Mods can be installed into the &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt; folder located inside &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt;, for more information on that see the [[Installing mods|relevant guide]].&lt;br /&gt;
&lt;br /&gt;
=== Bonus for Linux users ===&lt;br /&gt;
&lt;br /&gt;
On Linux this entire process can be performed with two commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cd /path/to/CrossCode&lt;br /&gt;
# TODO update the URL here as well&lt;br /&gt;
curl --location --fail &#039;https://github.com/dmitmel/ccloader3/releases/download/v3.0.0-alpha/ccloader_3.0.0-alpha_quick-install.tar.gz&#039; \&lt;br /&gt;
  | tar --extract --gzip --verbose --file -&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verifying a successful CCLoader installation ===&lt;br /&gt;
&lt;br /&gt;
Upon launching the game you&#039;ll see the CCLoader version in the bottom right corner of the title screen and at the top of the pause screen (where the game version is) if CCLoader was installed correctly. You&#039;ll also be able to see the following tab in the options menu:&lt;br /&gt;
&lt;br /&gt;
[[File:Ccloader-mod-settings-menu.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
It will obviously be empty if you haven&#039;t [[Installing mods|installed any mods]].&lt;br /&gt;
&lt;br /&gt;
== Method 2: Using the automatic installer ==&lt;br /&gt;
&lt;br /&gt;
See https://github.com/CCDirectLink/ccloader-installer. It may be broken though.&lt;br /&gt;
&lt;br /&gt;
== Method 3: Manual installation of the CCLoader-only package ==&lt;br /&gt;
&lt;br /&gt;
This method is not really intended for regular users, rather this section is a description of the full installation process intended as a reference when implementing tools for automatic CCLoader installation. It is also subject to change in the future, although that&#039;s not likely.&lt;br /&gt;
&lt;br /&gt;
# Locate the [[Locations of CrossCode files#Game files folder|CrossCode game files directory]].&lt;br /&gt;
# Create a directory for CCLoader files, named, for example, &amp;lt;code&amp;gt;ccloader&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Download and unpack the release archive named &amp;lt;code&amp;gt;ccloader_X.Y.Z_package.zip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ccloader_X.Y.Z_package.tar.gz&amp;lt;/code&amp;gt; into this directory.&lt;br /&gt;
# Change the &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; field in game&#039;s &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;assets/node-webkit.html&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ccloader/main.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Create a directory named &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt; inside game&#039;s &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt;.&lt;br /&gt;
# The installation is complete.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=CCLoader&amp;diff=84</id>
		<title>CCLoader</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=CCLoader&amp;diff=84"/>
		<updated>2020-08-12T10:05:25Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Test edit for my mediawiki-preview script, I will undo in a moment&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;CCLoader&#039;&#039;&#039; is the de facto modloader for CrossCode and obviously a prerequisite for playing the CrossCode with mods. Really, it is the only actively developed modloader intended for use by both mod users and mod developers (RIP [https://github.com/20kdc/decrossfuscator/blob/master/lib/rapture.js Rapture] + [https://github.com/20kdc/decrossfuscator/tree/master/mods pre-1.1.0 mods], [[Dorito]] and [[CCInjector]]).&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
There are three ways to perform CCLoader installation, they are both described in this document. But before we continue:&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VERY IMPORTANT NOTE:&#039;&#039;&#039; Don&#039;t use the green &amp;quot;clone or download&amp;quot; button! ==&lt;br /&gt;
&lt;br /&gt;
[[File:Clone-or-download.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
This button downloads the source code, not the compiled files! In the case of CCLoader you can&#039;t just download the source code and run it because CCLoader is not written in JavaScript! While this doesn&#039;t apply to all CrossCode mods out there as most of them are written in plain JS and as such don&#039;t need to be compiled, &#039;&#039;&#039;you should get used to looking at the &amp;quot;Releases&amp;quot; page first before trying to download the source code&#039;&#039;&#039;. In the new redesigned GitHub UI the link to it became more apparent:&lt;br /&gt;
&lt;br /&gt;
[[File:Github-project-frontpage-releases.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
== Method 1: Quick-installation archive ==&lt;br /&gt;
&lt;br /&gt;
This method is recommended for most users (at least right now because the mod manager is not stable enough for a public release and has a few critical bugs) and will very likely remain the primary installation method because of its simplicity.&lt;br /&gt;
&lt;br /&gt;
# Obviously, first of all you have to locate the [[Locations of CrossCode files#Game files folder|CrossCode game files folder]].&lt;br /&gt;
# Go to the [https://github.com/dmitmel/ccloader3/releases/latest latest release page] of CCLoader. (TODO update the URL when v3 is released)&lt;br /&gt;
# Download the archive named &#039;&#039;&#039;&amp;lt;code&amp;gt;ccloader_X.Y.Z_quick-install.zip&amp;lt;/code&amp;gt;&#039;&#039;&#039; (&amp;lt;code&amp;gt;tar.gz&amp;lt;/code&amp;gt; archives also exist for GNU/Linux and macOS users). &#039;&#039;&#039;It is important that you download the archive named &amp;lt;code&amp;gt;quick-install&amp;lt;/code&amp;gt; and not the source code or something else.&#039;&#039;&#039;&lt;br /&gt;
# Extract this archive somewhere:&amp;lt;br&amp;gt;[[File:Extract-ccloader-quick-install.png|class=block-img]]&lt;br /&gt;
# Copy the files inside the archive directly into the game folder, like this:&amp;lt;br&amp;gt;[[File:Ccloader-quick-install.png|class=block-img]]&amp;lt;br&amp;gt;The only file you&#039;ll have to overwrite in a clean CrossCode installation is the &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt;:&amp;lt;br&amp;gt;[[File:Ccloader-quick-install-overwrite-package-json.png|class=block-img]]&lt;br /&gt;
# You&#039;ve now successfully installed CCLoader! The end result should look like (notice the new &amp;lt;code&amp;gt;ccloader&amp;lt;/code&amp;gt; folder):&amp;lt;br&amp;gt;[[File:Ccloader-installation-end-result.png|class=block-img]]&lt;br /&gt;
# Mods can be installed into the &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt; folder located inside &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt;, for more information on that see the [[Installing mods|relevant guide]].&lt;br /&gt;
&lt;br /&gt;
=== Bonus for Linux users ===&lt;br /&gt;
&lt;br /&gt;
On Linux this entire process can be performed with two commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cd /path/to/CrossCode&lt;br /&gt;
# TODO update the URL here as well&lt;br /&gt;
curl --location --fail &#039;https://github.com/dmitmel/ccloader3/releases/download/v3.0.0-alpha/ccloader_3.0.0-alpha_quick-install.tar.gz&#039; \&lt;br /&gt;
  | tar --extract --gzip --verbose --file -&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verifying a successful CCLoader installation ===&lt;br /&gt;
&lt;br /&gt;
Upon launching the game you&#039;ll see the CCLoader version in the bottom right corner of the title screen and at the top of the pause screen (where the game version is) if CCLoader was installed correctly. You&#039;ll also be able to see the following tab in the options menu:&lt;br /&gt;
&lt;br /&gt;
[[File:Ccloader-mod-settings-menu.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
It will obviously be empty if you haven&#039;t [[Installing mods|installed any mods]].&lt;br /&gt;
&lt;br /&gt;
== Method 2: Using the automatic installer ==&lt;br /&gt;
&lt;br /&gt;
See https://github.com/CCDirectLink/ccloader-installer. It may be broken though.&lt;br /&gt;
&lt;br /&gt;
== Method 3: Manual installation of the CCLoader-only package ==&lt;br /&gt;
&lt;br /&gt;
This method is not really intended for regular users, rather this section is a description of the full installation process intended as a reference when implementing tools for automatic CCLoader installation. It is also subject to change in the future, although that&#039;s not likely.&lt;br /&gt;
&lt;br /&gt;
# Locate the [[Locations of CrossCode files#Game files folder|CrossCode game files directory]].&lt;br /&gt;
# Create a directory for CCLoader files, named, for example, &amp;lt;code&amp;gt;ccloader&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Download and unpack the release archive named &amp;lt;code&amp;gt;ccloader_X.Y.Z_package.zip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ccloader_X.Y.Z_package.tar.gz&amp;lt;/code&amp;gt; into this directory.&lt;br /&gt;
# Change the &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; field in game&#039;s &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;assets/node-webkit.html&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ccloader/main.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Create a directory named &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt; inside game&#039;s &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt;.&lt;br /&gt;
# The installation is complete.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;br /&gt;
&amp;lt;indicator name=&amp;quot;test123&amp;quot;&amp;gt;abc&amp;lt;/indicator&amp;gt;&lt;br /&gt;
&amp;lt;indicator name=&amp;quot;test456&amp;quot;&amp;gt;def&amp;lt;/indicator&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Locations_of_CrossCode_files&amp;diff=58</id>
		<title>Locations of CrossCode files</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Locations_of_CrossCode_files&amp;diff=58"/>
		<updated>2020-08-11T12:01:24Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Save folder ==&lt;br /&gt;
&lt;br /&gt;
There isn&#039;t really much to say about this folder other than:&lt;br /&gt;
&lt;br /&gt;
# It isn&#039;t located in the [[#Game files folder|&#039;&#039;&#039;game files folder&#039;&#039;&#039;]], so you can delete and reinstall the game without losing your progress or settings.&lt;br /&gt;
# It is located in the nw.js&#039;s browser cache folder.&lt;br /&gt;
&lt;br /&gt;
Here&#039;re the direct paths to the save file on various platforms:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Installation path&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MS Windows&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;%LOCALAPPDATA%\CrossCode\cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.config/CrossCode/Default/cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;macOS&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/Library/Application Support/CrossCode/Default/cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Similarly named files &amp;lt;code&amp;gt;cc.save.backup&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;cc.save.backup2&amp;lt;/code&amp;gt; exist and can be used to restore the save file in case it becomes corrupt.&lt;br /&gt;
&lt;br /&gt;
For now this section is incomplete and more information can be obtained on the [https://crosscode.gamepedia.com/Savegame game&#039;s wiki].&lt;br /&gt;
&lt;br /&gt;
== Game installation folder ==&lt;br /&gt;
&lt;br /&gt;
You would probably know where you installed the game better than me. However, here&#039;s a quick way to locate the installation folder in case you are using Steam:&lt;br /&gt;
&lt;br /&gt;
# Find CrossCode in your game library&amp;lt;/li&amp;gt;&lt;br /&gt;
# Right-click it, in the context menu press &amp;lt;code&amp;gt;Properties...&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Steam-crosscode-properties.png|class=block-img]]&lt;br /&gt;
# In the new window select the &amp;lt;code&amp;gt;LOCAL FILES&amp;lt;/code&amp;gt; tab&lt;br /&gt;
# You&#039;ll be presented with the following menu:&amp;lt;br&amp;gt;[[File:steam-browse-local-files.png|class=block-img]]&lt;br /&gt;
# Click the &amp;lt;code&amp;gt;BROWSE LOCAL FILES...&amp;lt;/code&amp;gt; button and you&#039;ll be taken to the installation folder.&lt;br /&gt;
&lt;br /&gt;
The common paths where Steam installs CrossCode are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Installation path&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MS Windows&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;C:\Program Files\Steam\steamapps\common\CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.local/share/Steam/steamapps/common/CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;macOS&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/Library/Application Support/Steam/steamapps/common/CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how this folder looks on different platforms:&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.windows.png|frame|none|&#039;&#039;&#039;MS Windows&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.linux.png|frame|none|&#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-installation-directory.macos.png|frame|none|&#039;&#039;&#039;macOS&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
== Game files folder ==&lt;br /&gt;
&lt;br /&gt;
Due to the, uhm... &#039;&#039;interesting&#039;&#039; structure of the CrossCode&#039;s macOS application, the [[#Game installation folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]] is not necessarily the same as the &#039;&#039;&#039;game files folder&#039;&#039;&#039;. It also isn&#039;t the same as the [[#Game assets folder|&#039;&#039;&#039;game assets folder&#039;&#039;&#039;]]. Files (HTML pages and JavaScript scripts) in this folder have full access to all of the game&#039;s nw.js&#039;s features, and thus this folder is commonly used as a home for mods, modding tools and CCLoader in particular. On MS Windows and GNU/Linux it is the same as the installation folder, as such it also contains nw.js&#039;s files on these platforms.&lt;br /&gt;
&lt;br /&gt;
Anyway, here are the contents of this folder on different platforms in a fresh non-modded copy of CrossCode:&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.windows.png|frame|none|&#039;&#039;&#039;MS Windows&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.linux.png|frame|none|&#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.macos.png|frame|none|&#039;&#039;&#039;macOS&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
There are a few files which are common between all platforms:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt; - obviously, the [[#Game assets folder|&#039;&#039;&#039;game assets folder&#039;&#039;&#039;]]&lt;br /&gt;
* &amp;lt;code&amp;gt;favicon.png&amp;lt;/code&amp;gt; - the application icon (interestingly enough the &amp;lt;code&amp;gt;.exe&amp;lt;/code&amp;gt; file for Windows has a different icon)&lt;br /&gt;
* &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; - contains the path to an HTML page which is opened immediately when you start the game and initial configuration for the window this page is opened in (like dimensions, fullscreen mode, resizable or not etc)&lt;br /&gt;
* &amp;lt;code&amp;gt;steam_appid.txt&amp;lt;/code&amp;gt; - to my knowledge it is created automatically by Steam and in the case of CrossCode just contains the text &amp;lt;code&amp;gt;368340&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other files come from the standard nw.js packages [https://dl.nwjs.io/v0.35.5/ you can download yourself] and &#039;&#039;&#039;weren&#039;t created by RadicalFishGames&#039;&#039;&#039;. All aforementioned files though are identical on all platforms, which means that you can take them from an installation on another platform, download the nw.js package on a different OS, place the game files inside and you&#039;ll get a (synthetic, hehe) runnable version of the game on this another OS. (TODO: maybe I should write a guide for that as well)&lt;br /&gt;
&lt;br /&gt;
=== How to locate the game files folder ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MS Windows&#039;&#039;&#039; and &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;: Simply find your [[#Game installation folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]], it&#039;s the same as the game files folder on these platforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;macOS:&#039;&#039;&#039; Extra care needs to be taken on mac because the game files are stored inside of nw.js&#039;s application. After locating the [[#Game installation folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]] you need to:&lt;br /&gt;
&lt;br /&gt;
# Right-click the app named &amp;lt;code&amp;gt;nwjs&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
# In the context menu select &amp;lt;code&amp;gt;Show Package Contents&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Macos-show-nwjs-package-contents.png|class=block-img]]&lt;br /&gt;
# Go to the folder named &amp;lt;code&amp;gt;Contents&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;Resources&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;app.nw&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Macos-package-contents-app-nw.png|class=block-img]]&lt;br /&gt;
# Here you go, this is the game files folder!&lt;br /&gt;
&lt;br /&gt;
== Game assets folder ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides for mod users]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=CCLoader&amp;diff=57</id>
		<title>CCLoader</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=CCLoader&amp;diff=57"/>
		<updated>2020-08-11T11:14:16Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Link to the wiki pages of modloaders&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;CCLoader&#039;&#039;&#039; is the de facto modloader for CrossCode and obviously a prerequisite for playing the CrossCode with mods. Really, it is the only actively developed modloader intended for use by both mod users and mod developers (RIP [https://github.com/20kdc/decrossfuscator/blob/master/lib/rapture.js Rapture] + [https://github.com/20kdc/decrossfuscator/tree/master/mods pre-1.1.0 mods], [[Dorito]] and [[CCInjector]]).&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
There are three ways to perform CCLoader installation, they are both described in this document. But before we continue:&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VERY IMPORTANT NOTE:&#039;&#039;&#039; Don&#039;t use the green &amp;quot;clone or download&amp;quot; button! ==&lt;br /&gt;
&lt;br /&gt;
[[File:Clone-or-download.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
This button downloads the source code, not the compiled files! In the case of CCLoader you can&#039;t just download the source code and run it because CCLoader is not written in JavaScript! While this doesn&#039;t apply to all CrossCode mods out there as most of them are written in plain JS and as such don&#039;t need to be compiled, &#039;&#039;&#039;you should get used to looking at the &amp;quot;Releases&amp;quot; page first before trying to download the source code&#039;&#039;&#039;. In the new redesigned GitHub UI the link to it became more apparent:&lt;br /&gt;
&lt;br /&gt;
[[File:Github-project-frontpage-releases.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
== Method 1: Quick-installation archive ==&lt;br /&gt;
&lt;br /&gt;
This method is recommended for most users (at least right now because the mod manager is not stable enough for a public release and has a few critical bugs) and will very likely remain the primary installation method because of its simplicity.&lt;br /&gt;
&lt;br /&gt;
# Obviously, first of all you have to locate the [[Locations of CrossCode files#Game files folder|CrossCode game files folder]].&lt;br /&gt;
# Go to the [https://github.com/dmitmel/ccloader3/releases/latest latest release page] of CCLoader. (TODO update the URL when v3 is released)&lt;br /&gt;
# Download the archive named &#039;&#039;&#039;&amp;lt;code&amp;gt;ccloader_X.Y.Z_quick-install.zip&amp;lt;/code&amp;gt;&#039;&#039;&#039; (&amp;lt;code&amp;gt;tar.gz&amp;lt;/code&amp;gt; archives also exist for GNU/Linux and macOS users). &#039;&#039;&#039;It is important that you download the archive named &amp;lt;code&amp;gt;quick-install&amp;lt;/code&amp;gt; and not the source code or something else.&#039;&#039;&#039;&lt;br /&gt;
# Extract this archive somewhere:&amp;lt;br&amp;gt;[[File:Extract-ccloader-quick-install.png|class=block-img]]&lt;br /&gt;
# Copy the files inside the archive directly into the game folder, like this:&amp;lt;br&amp;gt;[[File:Ccloader-quick-install.png|class=block-img]]&amp;lt;br&amp;gt;The only file you&#039;ll have to overwrite in a clean CrossCode installation is the &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt;:&amp;lt;br&amp;gt;[[File:Ccloader-quick-install-overwrite-package-json.png|class=block-img]]&lt;br /&gt;
# You&#039;ve now successfully installed CCLoader! The end result should look like (notice the new &amp;lt;code&amp;gt;ccloader&amp;lt;/code&amp;gt; folder):&amp;lt;br&amp;gt;[[File:Ccloader-installation-end-result.png|class=block-img]]&lt;br /&gt;
# Mods can be installed into the &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt; folder located inside &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt;, for more information on that see the [[Installing mods|relevant guide]].&lt;br /&gt;
&lt;br /&gt;
=== Bonus for Linux users ===&lt;br /&gt;
&lt;br /&gt;
On Linux this entire process can be performed with two commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cd /path/to/CrossCode&lt;br /&gt;
# TODO update the URL here as well&lt;br /&gt;
curl --location --fail &#039;https://github.com/dmitmel/ccloader3/releases/download/v3.0.0-alpha/ccloader_3.0.0-alpha_quick-install.tar.gz&#039; \&lt;br /&gt;
  | tar --extract --gzip --verbose --file -&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verifying a successful CCLoader installation ===&lt;br /&gt;
&lt;br /&gt;
Upon launching the game you&#039;ll see the CCLoader version in the bottom right corner of the title screen and at the top of the pause screen (where the game version is) if CCLoader was installed correctly. You&#039;ll also be able to see the following tab in the options menu:&lt;br /&gt;
&lt;br /&gt;
[[File:Ccloader-mod-settings-menu.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
It will obviously be empty if you haven&#039;t [[Installing mods|installed any mods]].&lt;br /&gt;
&lt;br /&gt;
== Method 2: Using the automatic installer ==&lt;br /&gt;
&lt;br /&gt;
See https://github.com/CCDirectLink/ccloader-installer. It may be broken though.&lt;br /&gt;
&lt;br /&gt;
== Method 3: Manual installation of the CCLoader-only package ==&lt;br /&gt;
&lt;br /&gt;
This method is not really intended for regular users, rather this section is a description of the full installation process intended as a reference when implementing tools for automatic CCLoader installation. It is also subject to change in the future, although that&#039;s not likely.&lt;br /&gt;
&lt;br /&gt;
# Locate the [[Locations of CrossCode files#Game files folder|CrossCode game files directory]].&lt;br /&gt;
# Create a directory for CCLoader files, named, for example, &amp;lt;code&amp;gt;ccloader&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Download and unpack the release archive named &amp;lt;code&amp;gt;ccloader_X.Y.Z_package.zip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ccloader_X.Y.Z_package.tar.gz&amp;lt;/code&amp;gt; into this directory.&lt;br /&gt;
# Change the &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; field in game&#039;s &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;assets/node-webkit.html&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ccloader/main.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Create a directory named &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt; inside game&#039;s &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt;.&lt;br /&gt;
# The installation is complete.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=CCInjector&amp;diff=56</id>
		<title>CCInjector</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=CCInjector&amp;diff=56"/>
		<updated>2020-08-11T11:13:43Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Add a link to the homepage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WIP&lt;br /&gt;
&lt;br /&gt;
Homepage: https://github.com/CCDirectLink/CCInjector&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Dorito&amp;diff=55</id>
		<title>Dorito</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Dorito&amp;diff=55"/>
		<updated>2020-08-11T08:53:43Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Add a link to the homepage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WIP&lt;br /&gt;
&lt;br /&gt;
Homepage: https://github.com/Nnubes256/Dorito&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=CCInjector&amp;diff=54</id>
		<title>CCInjector</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=CCInjector&amp;diff=54"/>
		<updated>2020-08-11T08:52:06Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Created page with &amp;quot;WIP  Category:Modloaders&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WIP&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Dorito&amp;diff=53</id>
		<title>Dorito</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Dorito&amp;diff=53"/>
		<updated>2020-08-11T08:51:42Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Created page with &amp;quot;WIP  Category:Modloaders&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WIP&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Category:Guides_for_mod_users&amp;diff=52</id>
		<title>Category:Guides for mod users</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Category:Guides_for_mod_users&amp;diff=52"/>
		<updated>2020-08-11T08:49:54Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Locations_of_CrossCode_files&amp;diff=51</id>
		<title>Locations of CrossCode files</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Locations_of_CrossCode_files&amp;diff=51"/>
		<updated>2020-08-11T08:48:08Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Remove underscores from anchor links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Save folder ==&lt;br /&gt;
&lt;br /&gt;
There isn&#039;t really much to say about this folder other than:&lt;br /&gt;
&lt;br /&gt;
# It isn&#039;t located in the [[#Game files folder|&#039;&#039;&#039;game files folder&#039;&#039;&#039;]], so you can delete and reinstall the game without losing your progress or settings.&lt;br /&gt;
# It is located in the nw.js&#039;s browser cache folder.&lt;br /&gt;
&lt;br /&gt;
Here&#039;re the direct paths to the save file on various platforms:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Installation path&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MS Windows&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;%LOCALAPPDATA%\CrossCode\cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.config/CrossCode/Default/cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;macOS&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/Library/Application Support/CrossCode/Default/cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Similarly named files &amp;lt;code&amp;gt;cc.save.backup&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;cc.save.backup2&amp;lt;/code&amp;gt; exist and can be used to restore the save file in case it becomes corrupt.&lt;br /&gt;
&lt;br /&gt;
For now this section is incomplete and more information can be obtained on the [https://crosscode.gamepedia.com/Savegame game&#039;s wiki].&lt;br /&gt;
&lt;br /&gt;
== Game installation folder ==&lt;br /&gt;
&lt;br /&gt;
You would probably know where you installed the game better than myself. However, here&#039;s a quick way to locate the installation folder in case you are using Steam:&lt;br /&gt;
&lt;br /&gt;
# Find CrossCode in your game library&amp;lt;/li&amp;gt;&lt;br /&gt;
# Right-click it, in the context menu press &amp;lt;code&amp;gt;Properties...&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Steam-crosscode-properties.png|class=block-img]]&lt;br /&gt;
# In the new window select the &amp;lt;code&amp;gt;LOCAL FILES&amp;lt;/code&amp;gt; tab&lt;br /&gt;
# You&#039;ll be presented with the following menu:&amp;lt;br&amp;gt;[[File:steam-browse-local-files.png|class=block-img]]&lt;br /&gt;
# Click the &amp;lt;code&amp;gt;BROWSE LOCAL FILES...&amp;lt;/code&amp;gt; button and you&#039;ll be taken to the installation folder.&lt;br /&gt;
&lt;br /&gt;
The common paths where Steam installs CrossCode are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Installation path&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MS Windows&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;C:\Program Files\Steam\steamapps\common\CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.local/share/Steam/steamapps/common/CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;macOS&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/Library/Application Support/Steam/steamapps/common/CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how this folder looks on different platforms:&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.windows.png|frame|none|&#039;&#039;&#039;MS Windows&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.linux.png|frame|none|&#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-installation-directory.macos.png|frame|none|&#039;&#039;&#039;macOS&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
== Game files folder ==&lt;br /&gt;
&lt;br /&gt;
Due to the, uhm... &#039;&#039;interesting&#039;&#039; structure of the CrossCode&#039;s macOS application, the [[#Game installation folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]] is not necessarily the same as the &#039;&#039;&#039;game files folder&#039;&#039;&#039;. It also isn&#039;t the same as the [[#Game assets folder|&#039;&#039;&#039;game assets folder&#039;&#039;&#039;]]. Files (HTML pages and JavaScript scripts) in this folder have full access to all of the game&#039;s nw.js&#039;s features, and thus this folder is commonly used as a home for mods, modding tools and CCLoader in particular. On MS Windows and GNU/Linux it is the same as the installation folder, as such it also contains nw.js&#039;s files on these platforms.&lt;br /&gt;
&lt;br /&gt;
Anyway, here are the contents of this folder on different platforms in a fresh non-modded copy of CrossCode:&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.windows.png|frame|none|&#039;&#039;&#039;MS Windows&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.linux.png|frame|none|&#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.macos.png|frame|none|&#039;&#039;&#039;macOS&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
There are a few files which are common between all platforms:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt; - obviously, the [[#Game assets folder|&#039;&#039;&#039;game assets folder&#039;&#039;&#039;]]&lt;br /&gt;
* &amp;lt;code&amp;gt;favicon.png&amp;lt;/code&amp;gt; - the application icon (interestingly enough the &amp;lt;code&amp;gt;.exe&amp;lt;/code&amp;gt; file for Windows has a different icon)&lt;br /&gt;
* &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; - contains the path to an HTML page which is opened immediately when you start the game and initial configuration for the window this page is opened in (like dimensions, fullscreen mode, resizable or not etc)&lt;br /&gt;
* &amp;lt;code&amp;gt;steam_appid.txt&amp;lt;/code&amp;gt; - to my knowledge it is created automatically by Steam and in the case of CrossCode just contains the text &amp;lt;code&amp;gt;368340&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other files come from the standard nw.js packages [https://dl.nwjs.io/v0.35.5/ you can download yourself] and &#039;&#039;&#039;weren&#039;t created by RadicalFishGames&#039;&#039;&#039;. All aforementioned files though are identical on all platforms, which means that you can take them from an installation on another platform, download the nw.js package on a different OS, place the game files inside and you&#039;ll get a (synthetic, hehe) runnable version of the game on this another OS. (TODO: maybe I should write a guide for that as well)&lt;br /&gt;
&lt;br /&gt;
=== How to locate the game files folder ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MS Windows&#039;&#039;&#039; and &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;: Simply find your [[#Game installation folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]], it&#039;s the same as the game files folder on these platforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;macOS:&#039;&#039;&#039; Extra care needs to be taken on mac because the game files are stored inside of nw.js&#039;s application. After locating the [[#Game installation folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]] you need to:&lt;br /&gt;
&lt;br /&gt;
# Right-click the app named &amp;lt;code&amp;gt;nwjs&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
# In the context menu select &amp;lt;code&amp;gt;Show Package Contents&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Macos-show-nwjs-package-contents.png|class=block-img]]&lt;br /&gt;
# Go to the folder named &amp;lt;code&amp;gt;Contents&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;Resources&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;app.nw&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Macos-package-contents-app-nw.png|class=block-img]]&lt;br /&gt;
# Here you go, this is the game files folder!&lt;br /&gt;
&lt;br /&gt;
== Game assets folder ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides for mod users]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Locations_of_CrossCode_files&amp;diff=50</id>
		<title>Locations of CrossCode files</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Locations_of_CrossCode_files&amp;diff=50"/>
		<updated>2020-08-11T08:46:15Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Undo revision 49 by Dmitmel (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Save folder ==&lt;br /&gt;
&lt;br /&gt;
There isn&#039;t really much to say about this folder other than:&lt;br /&gt;
&lt;br /&gt;
# It isn&#039;t located in the [[#Game_files_folder|&#039;&#039;&#039;game files folder&#039;&#039;&#039;]], so you can delete and reinstall the game without losing your progress or settings.&lt;br /&gt;
# It is located in the nw.js&#039;s browser cache folder.&lt;br /&gt;
&lt;br /&gt;
Here&#039;re the direct paths to the save file on various platforms:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Installation path&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MS Windows&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;%LOCALAPPDATA%\CrossCode\cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.config/CrossCode/Default/cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;macOS&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/Library/Application Support/CrossCode/Default/cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Similarly named files &amp;lt;code&amp;gt;cc.save.backup&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;cc.save.backup2&amp;lt;/code&amp;gt; exist and can be used to restore the save file in case it becomes corrupt.&lt;br /&gt;
&lt;br /&gt;
For now this section is incomplete and more information can be obtained on the [https://crosscode.gamepedia.com/Savegame game&#039;s wiki].&lt;br /&gt;
&lt;br /&gt;
== Game installation folder ==&lt;br /&gt;
&lt;br /&gt;
You would probably know where you installed the game better than myself. However, here&#039;s a quick way to locate the installation folder in case you are using Steam:&lt;br /&gt;
&lt;br /&gt;
# Find CrossCode in your game library&amp;lt;/li&amp;gt;&lt;br /&gt;
# Right-click it, in the context menu press &amp;lt;code&amp;gt;Properties...&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Steam-crosscode-properties.png|class=block-img]]&lt;br /&gt;
# In the new window select the &amp;lt;code&amp;gt;LOCAL FILES&amp;lt;/code&amp;gt; tab&lt;br /&gt;
# You&#039;ll be presented with the following menu:&amp;lt;br&amp;gt;[[File:steam-browse-local-files.png|class=block-img]]&lt;br /&gt;
# Click the &amp;lt;code&amp;gt;BROWSE LOCAL FILES...&amp;lt;/code&amp;gt; button and you&#039;ll be taken to the installation folder.&lt;br /&gt;
&lt;br /&gt;
The common paths where Steam installs CrossCode are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Installation path&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MS Windows&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;C:\Program Files\Steam\steamapps\common\CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.local/share/Steam/steamapps/common/CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;macOS&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/Library/Application Support/Steam/steamapps/common/CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how this folder looks on different platforms:&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.windows.png|frame|none|&#039;&#039;&#039;MS Windows&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.linux.png|frame|none|&#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-installation-directory.macos.png|frame|none|&#039;&#039;&#039;macOS&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
== Game files folder ==&lt;br /&gt;
&lt;br /&gt;
Due to the, uhm... &#039;&#039;interesting&#039;&#039; structure of the CrossCode&#039;s macOS application, the [[#Game_installation_folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]] is not necessarily the same as the &#039;&#039;&#039;game files folder&#039;&#039;&#039;. It also isn&#039;t the same as the [[#Game_assets_folder|&#039;&#039;&#039;game assets folder&#039;&#039;&#039;]]. Files (HTML pages and JavaScript scripts) in this folder have full access to all of the game&#039;s nw.js&#039;s features, and thus this folder is commonly used as a home for mods, modding tools and CCLoader in particular. On MS Windows and GNU/Linux it is the same as the installation folder, as such it also contains nw.js&#039;s files on these platforms.&lt;br /&gt;
&lt;br /&gt;
Anyway, here are the contents of this folder on different platforms in a fresh non-modded copy of CrossCode:&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.windows.png|frame|none|&#039;&#039;&#039;MS Windows&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.linux.png|frame|none|&#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.macos.png|frame|none|&#039;&#039;&#039;macOS&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
There are a few files which are common between all platforms:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt; - obviously, the [[#Game_assets_folder|&#039;&#039;&#039;game assets folder&#039;&#039;&#039;]]&lt;br /&gt;
* &amp;lt;code&amp;gt;favicon.png&amp;lt;/code&amp;gt; - the application icon (interestingly enough the &amp;lt;code&amp;gt;.exe&amp;lt;/code&amp;gt; file for Windows has a different icon)&lt;br /&gt;
* &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; - contains the path to an HTML page which is opened immediately when you start the game and initial configuration for the window this page is opened in (like dimensions, fullscreen mode, resizable or not etc)&lt;br /&gt;
* &amp;lt;code&amp;gt;steam_appid.txt&amp;lt;/code&amp;gt; - to my knowledge it is created automatically by Steam and in the case of CrossCode just contains the text &amp;lt;code&amp;gt;368340&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other files come from the standard nw.js packages [https://dl.nwjs.io/v0.35.5/ you can download yourself] and &#039;&#039;&#039;weren&#039;t created by RadicalFishGames&#039;&#039;&#039;. All aforementioned files though are identical on all platforms, which means that you can take them from an installation on another platform, download the nw.js package on a different OS, place the game files inside and you&#039;ll get a (synthetic, hehe) runnable version of the game on this another OS. (TODO: maybe I should write a guide for that as well)&lt;br /&gt;
&lt;br /&gt;
=== How to locate the game files folder ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MS Windows&#039;&#039;&#039; and &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;: Simply find your [[#Game_installation_folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]], it&#039;s the same as the game files folder on these platforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;macOS:&#039;&#039;&#039; Extra care needs to be taken on mac because the game files are stored inside of nw.js&#039;s application. After locating the [[#Game_installation_folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]] you need to:&lt;br /&gt;
&lt;br /&gt;
# Right-click the app named &amp;lt;code&amp;gt;nwjs&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
# In the context menu select &amp;lt;code&amp;gt;Show Package Contents&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Macos-show-nwjs-package-contents.png|class=block-img]]&lt;br /&gt;
# Go to the folder named &amp;lt;code&amp;gt;Contents&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;Resources&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;app.nw&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Macos-package-contents-app-nw.png|class=block-img]]&lt;br /&gt;
# Here you go, this is the game files folder!&lt;br /&gt;
&lt;br /&gt;
== Game assets folder ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides for mod users]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Locations_of_CrossCode_files&amp;diff=49</id>
		<title>Locations of CrossCode files</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Locations_of_CrossCode_files&amp;diff=49"/>
		<updated>2020-08-11T08:44:30Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Substitute &amp;quot;folder&amp;quot; with &amp;quot;directory&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Save directory ==&lt;br /&gt;
&lt;br /&gt;
There isn&#039;t really much to say about this directory other than:&lt;br /&gt;
&lt;br /&gt;
# It isn&#039;t located in the [[#Game_files_directory|&#039;&#039;&#039;game files directory&#039;&#039;&#039;]], so you can delete and reinstall the game without losing your progress or settings.&lt;br /&gt;
# It is located in the nw.js&#039;s browser cache directory.&lt;br /&gt;
&lt;br /&gt;
Here&#039;re the direct paths to the save file on various platforms:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Installation path&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MS Windows&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;%LOCALAPPDATA%\CrossCode\cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.config/CrossCode/Default/cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;macOS&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/Library/Application Support/CrossCode/Default/cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Similarly named files &amp;lt;code&amp;gt;cc.save.backup&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;cc.save.backup2&amp;lt;/code&amp;gt; exist and can be used to restore the save file in case it becomes corrupt.&lt;br /&gt;
&lt;br /&gt;
For now this section is incomplete and more information can be obtained on the [https://crosscode.gamepedia.com/Savegame game&#039;s wiki].&lt;br /&gt;
&lt;br /&gt;
== Game installation directory ==&lt;br /&gt;
&lt;br /&gt;
You would probably know where you installed the game better than myself. However, here&#039;s a quick way to locate the installation directory in case you are using Steam:&lt;br /&gt;
&lt;br /&gt;
# Find CrossCode in your game library&amp;lt;/li&amp;gt;&lt;br /&gt;
# Right-click it, in the context menu press &amp;lt;code&amp;gt;Properties...&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Steam-crosscode-properties.png|class=block-img]]&lt;br /&gt;
# In the new window select the &amp;lt;code&amp;gt;LOCAL FILES&amp;lt;/code&amp;gt; tab&lt;br /&gt;
# You&#039;ll be presented with the following menu:&amp;lt;br&amp;gt;[[File:steam-browse-local-files.png|class=block-img]]&lt;br /&gt;
# Click the &amp;lt;code&amp;gt;BROWSE LOCAL FILES...&amp;lt;/code&amp;gt; button and you&#039;ll be taken to the installation directory.&lt;br /&gt;
&lt;br /&gt;
The common paths where Steam installs CrossCode are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Installation path&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MS Windows&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;C:\Program Files\Steam\steamapps\common\CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.local/share/Steam/steamapps/common/CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;macOS&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/Library/Application Support/Steam/steamapps/common/CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how this directory looks on different platforms:&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.windows.png|frame|none|&#039;&#039;&#039;MS Windows&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.linux.png|frame|none|&#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-installation-directory.macos.png|frame|none|&#039;&#039;&#039;macOS&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
== Game files directory ==&lt;br /&gt;
&lt;br /&gt;
Due to the, uhm... &#039;&#039;interesting&#039;&#039; structure of the CrossCode&#039;s macOS application, the [[#Game_installation_directory|&#039;&#039;&#039;game installation directory&#039;&#039;&#039;]] is not necessarily the same as the &#039;&#039;&#039;game files directory&#039;&#039;&#039;. It also isn&#039;t the same as the [[#Game_assets_directory|&#039;&#039;&#039;game assets directory&#039;&#039;&#039;]]. Files (HTML pages and JavaScript scripts) in this directory have full access to all of the game&#039;s nw.js&#039;s features, and thus this directory is commonly used as a home for mods, modding tools and CCLoader in particular. On MS Windows and GNU/Linux it is the same as the installation directory, as such it also contains nw.js&#039;s files on these platforms.&lt;br /&gt;
&lt;br /&gt;
Anyway, here are the contents of this directory on different platforms in a fresh non-modded copy of CrossCode:&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.windows.png|frame|none|&#039;&#039;&#039;MS Windows&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.linux.png|frame|none|&#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.macos.png|frame|none|&#039;&#039;&#039;macOS&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
There are a few files which are common between all platforms:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt; - obviously, the [[#Game_assets_directory|&#039;&#039;&#039;game assets directory&#039;&#039;&#039;]]&lt;br /&gt;
* &amp;lt;code&amp;gt;favicon.png&amp;lt;/code&amp;gt; - the application icon (interestingly enough the &amp;lt;code&amp;gt;.exe&amp;lt;/code&amp;gt; file for Windows has a different icon)&lt;br /&gt;
* &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; - contains the path to an HTML page which is opened immediately when you start the game and initial configuration for the window this page is opened in (like dimensions, fullscreen mode, resizable or not etc)&lt;br /&gt;
* &amp;lt;code&amp;gt;steam_appid.txt&amp;lt;/code&amp;gt; - to my knowledge it is created automatically by Steam and in the case of CrossCode just contains the text &amp;lt;code&amp;gt;368340&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other files come from the standard nw.js packages [https://dl.nwjs.io/v0.35.5/ you can download yourself] and &#039;&#039;&#039;weren&#039;t created by RadicalFishGames&#039;&#039;&#039;. All aforementioned files though are identical on all platforms, which means that you can take them from an installation on another platform, download the nw.js package on a different OS, place the game files inside and you&#039;ll get a (synthetic, hehe) runnable version of the game on this another OS. (TODO: maybe I should write a guide for that as well)&lt;br /&gt;
&lt;br /&gt;
=== How to locate the game files directory ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MS Windows&#039;&#039;&#039; and &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;: Simply find your [[#Game_installation_directory|&#039;&#039;&#039;game installation directory&#039;&#039;&#039;]], it&#039;s the same as the game files directory on these platforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;macOS:&#039;&#039;&#039; Extra care needs to be taken on mac because the game files are stored inside of nw.js&#039;s application. After locating the [[#Game_installation_directory|&#039;&#039;&#039;game installation directory&#039;&#039;&#039;]] you need to:&lt;br /&gt;
&lt;br /&gt;
# Right-click the app named &amp;lt;code&amp;gt;nwjs&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
# In the context menu select &amp;lt;code&amp;gt;Show Package Contents&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Macos-show-nwjs-package-contents.png|class=block-img]]&lt;br /&gt;
# Go to the directory named &amp;lt;code&amp;gt;Contents&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;Resources&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;app.nw&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Macos-package-contents-app-nw.png|class=block-img]]&lt;br /&gt;
# Here you go, this is the game files directory!&lt;br /&gt;
&lt;br /&gt;
== Game assets directory ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides for mod users]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Locations_of_CrossCode_files&amp;diff=48</id>
		<title>Locations of CrossCode files</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Locations_of_CrossCode_files&amp;diff=48"/>
		<updated>2020-08-11T08:42:31Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Save folder ==&lt;br /&gt;
&lt;br /&gt;
There isn&#039;t really much to say about this folder other than:&lt;br /&gt;
&lt;br /&gt;
# It isn&#039;t located in the [[#Game_files_folder|&#039;&#039;&#039;game files folder&#039;&#039;&#039;]], so you can delete and reinstall the game without losing your progress or settings.&lt;br /&gt;
# It is located in the nw.js&#039;s browser cache folder.&lt;br /&gt;
&lt;br /&gt;
Here&#039;re the direct paths to the save file on various platforms:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Installation path&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MS Windows&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;%LOCALAPPDATA%\CrossCode\cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.config/CrossCode/Default/cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;macOS&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/Library/Application Support/CrossCode/Default/cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Similarly named files &amp;lt;code&amp;gt;cc.save.backup&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;cc.save.backup2&amp;lt;/code&amp;gt; exist and can be used to restore the save file in case it becomes corrupt.&lt;br /&gt;
&lt;br /&gt;
For now this section is incomplete and more information can be obtained on the [https://crosscode.gamepedia.com/Savegame game&#039;s wiki].&lt;br /&gt;
&lt;br /&gt;
== Game installation folder ==&lt;br /&gt;
&lt;br /&gt;
You would probably know where you installed the game better than myself. However, here&#039;s a quick way to locate the installation folder in case you are using Steam:&lt;br /&gt;
&lt;br /&gt;
# Find CrossCode in your game library&amp;lt;/li&amp;gt;&lt;br /&gt;
# Right-click it, in the context menu press &amp;lt;code&amp;gt;Properties...&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Steam-crosscode-properties.png|class=block-img]]&lt;br /&gt;
# In the new window select the &amp;lt;code&amp;gt;LOCAL FILES&amp;lt;/code&amp;gt; tab&lt;br /&gt;
# You&#039;ll be presented with the following menu:&amp;lt;br&amp;gt;[[File:steam-browse-local-files.png|class=block-img]]&lt;br /&gt;
# Click the &amp;lt;code&amp;gt;BROWSE LOCAL FILES...&amp;lt;/code&amp;gt; button and you&#039;ll be taken to the installation folder.&lt;br /&gt;
&lt;br /&gt;
The common paths where Steam installs CrossCode are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Installation path&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MS Windows&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;C:\Program Files\Steam\steamapps\common\CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.local/share/Steam/steamapps/common/CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;macOS&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/Library/Application Support/Steam/steamapps/common/CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how this folder looks on different platforms:&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.windows.png|frame|none|&#039;&#039;&#039;MS Windows&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.linux.png|frame|none|&#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-installation-directory.macos.png|frame|none|&#039;&#039;&#039;macOS&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
== Game files folder ==&lt;br /&gt;
&lt;br /&gt;
Due to the, uhm... &#039;&#039;interesting&#039;&#039; structure of the CrossCode&#039;s macOS application, the [[#Game_installation_folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]] is not necessarily the same as the &#039;&#039;&#039;game files folder&#039;&#039;&#039;. It also isn&#039;t the same as the [[#Game_assets_folder|&#039;&#039;&#039;game assets folder&#039;&#039;&#039;]]. Files (HTML pages and JavaScript scripts) in this folder have full access to all of the game&#039;s nw.js&#039;s features, and thus this folder is commonly used as a home for mods, modding tools and CCLoader in particular. On MS Windows and GNU/Linux it is the same as the installation folder, as such it also contains nw.js&#039;s files on these platforms.&lt;br /&gt;
&lt;br /&gt;
Anyway, here are the contents of this folder on different platforms in a fresh non-modded copy of CrossCode:&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.windows.png|frame|none|&#039;&#039;&#039;MS Windows&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.linux.png|frame|none|&#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.macos.png|frame|none|&#039;&#039;&#039;macOS&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
There are a few files which are common between all platforms:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt; - obviously, the [[#Game_assets_folder|&#039;&#039;&#039;game assets folder&#039;&#039;&#039;]]&lt;br /&gt;
* &amp;lt;code&amp;gt;favicon.png&amp;lt;/code&amp;gt; - the application icon (interestingly enough the &amp;lt;code&amp;gt;.exe&amp;lt;/code&amp;gt; file for Windows has a different icon)&lt;br /&gt;
* &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; - contains the path to an HTML page which is opened immediately when you start the game and initial configuration for the window this page is opened in (like dimensions, fullscreen mode, resizable or not etc)&lt;br /&gt;
* &amp;lt;code&amp;gt;steam_appid.txt&amp;lt;/code&amp;gt; - to my knowledge it is created automatically by Steam and in the case of CrossCode just contains the text &amp;lt;code&amp;gt;368340&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other files come from the standard nw.js packages [https://dl.nwjs.io/v0.35.5/ you can download yourself] and &#039;&#039;&#039;weren&#039;t created by RadicalFishGames&#039;&#039;&#039;. All aforementioned files though are identical on all platforms, which means that you can take them from an installation on another platform, download the nw.js package on a different OS, place the game files inside and you&#039;ll get a (synthetic, hehe) runnable version of the game on this another OS. (TODO: maybe I should write a guide for that as well)&lt;br /&gt;
&lt;br /&gt;
=== How to locate the game files folder ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MS Windows&#039;&#039;&#039; and &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;: Simply find your [[#Game_installation_folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]], it&#039;s the same as the game files folder on these platforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;macOS:&#039;&#039;&#039; Extra care needs to be taken on mac because the game files are stored inside of nw.js&#039;s application. After locating the [[#Game_installation_folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]] you need to:&lt;br /&gt;
&lt;br /&gt;
# Right-click the app named &amp;lt;code&amp;gt;nwjs&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
# In the context menu select &amp;lt;code&amp;gt;Show Package Contents&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Macos-show-nwjs-package-contents.png|class=block-img]]&lt;br /&gt;
# Go to the folder named &amp;lt;code&amp;gt;Contents&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;Resources&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;app.nw&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Macos-package-contents-app-nw.png|class=block-img]]&lt;br /&gt;
# Here you go, this is the game files folder!&lt;br /&gt;
&lt;br /&gt;
== Game assets folder ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides for mod users]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Installing_mods&amp;diff=47</id>
		<title>Installing mods</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Installing_mods&amp;diff=47"/>
		<updated>2020-08-11T08:42:06Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide describes the most common way of installation of perfectly regular CrossCode mods. Granted, not every mod is equal, some may require additional setup before or after installation, but that must be described in mod&#039;s README document. If not - well, this is most likely the mod author&#039;s problem. Note that you don&#039;t have to read this guide each time you download a new mod as this page is intended for absolute beginners.&lt;br /&gt;
&lt;br /&gt;
=== Short note about upgrading mods ===&lt;br /&gt;
&lt;br /&gt;
You &#039;&#039;&#039;can&#039;&#039;&#039; perform mod upgrades by performing the steps described in this guide, but replacing all previous files when unpacking the downloaded mod. However, &#039;&#039;&#039;this is not recommended&#039;&#039;&#039; (by me at least) - instead you should first delete the folder with the previous version of the mod you are upgrading and only then unpack the new version, just in case.&lt;br /&gt;
&lt;br /&gt;
== Step 1. Install [[CCLoader]] ==&lt;br /&gt;
&lt;br /&gt;
CCLoader (aka the &#039;&#039;&#039;C&#039;&#039;&#039;ross&#039;&#039;&#039;C&#039;&#039;&#039;ode mod&#039;&#039;&#039;loader&#039;&#039;&#039;) is required for most mods nowadays to work. Well, it is possible to &amp;lt;s&amp;gt;ab&amp;lt;/s&amp;gt;use the DLC/extension system for creating simple asset swaps, but these are its limits - it&#039;s &#039;&#039;definitely&#039;&#039; not designed for full-fledged modding. CCLoader also provides various tooling for mod authors for selectively patching game content, so that mod authors can put just the changed bits of game files in their mods instead of copying them entirely. The guide about CCLoader installation can be found [[CCLoader#Installation|here]].&lt;br /&gt;
&lt;br /&gt;
== Step 2. Get the mod files ==&lt;br /&gt;
&lt;br /&gt;
Most mods are distributed as zip archives. There are two ways to obtain those:&lt;br /&gt;
&lt;br /&gt;
=== Downloading releases ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also [[CCLoader#VERY IMPORTANT NOTE: Don&#039;t use the green &amp;quot;clone or download&amp;quot; button!|this section]] of the CCLoader installation guide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unless explicitly stated otherwise in the mod&#039;s README, &#039;&#039;&#039;when actually downloading mods you should always check first for released versions&#039;&#039;&#039;, or &amp;quot;releases&amp;quot; for short. Most mod authors use GitHub for storing source code and distributing releases where you can access the page with changelogs and downloads through these links:&lt;br /&gt;
&lt;br /&gt;
[[File:Github-mod-releases.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
Pressing on the version marked as &amp;quot;latest&amp;quot; will take you to, unsurprisingly, the page of the latest release, pressing on the &amp;lt;code&amp;gt;Releases (N)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;+N releases&amp;lt;/code&amp;gt; links at the top and bottom (where &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; is some number) will take you to a list of all available versions. Mods also often include the following badge in their README which takes you directly to downloads:&lt;br /&gt;
&lt;br /&gt;
[https://raw.githubusercontent.com/CCDirectLink/organization/master/assets/badges/releases@2x.png https://raw.githubusercontent.com/CCDirectLink/organization/master/assets/badges/releases@2x.png]&lt;br /&gt;
&lt;br /&gt;
On the release page you&#039;ll see the section named &amp;quot;Assets&amp;quot;. It always includes at least two entries: &amp;quot;Source code (zip)&amp;quot; and &amp;quot;Source code (tar.gz)&amp;quot;. If only links for downloading source code are present - don&#039;t worry, you can use those to install the mod. Just download whichever archive format you prefer. Otherwise mod authors upload at least zip archives on the downloads page, usually the file name of those includes the mod ID and version.&lt;br /&gt;
&lt;br /&gt;
=== Downloading source code ===&lt;br /&gt;
&lt;br /&gt;
Most of the time mod authors publish the releases properly, but when the &amp;quot;releases&amp;quot; page is empty or the link is hidden it can mean one of three things:&lt;br /&gt;
&lt;br /&gt;
# The project is dead.&lt;br /&gt;
# The mod is work-in-progress project, or WIP for short. Such mods usually don&#039;t have a proper README file. In this case you should contact the author to ask if the mod is usable. You can also potentially help with the development - sometimes mods may need testers.&lt;br /&gt;
# The author was just lazy to publish releases properly. Most mods don&#039;t require compilation or preprocessing of assets or scripts to be loaded into the game and work, so in such cases you can try to download the mod&#039;s source code. On GitHub this can be done by pressing the green &amp;quot;code&amp;quot; button with a download icon to the left, and then pressing &amp;quot;download ZIP&amp;quot; in the opened popup:&amp;lt;br&amp;gt;[[File:Mod-download-source-code.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beware, however, that sometimes the source code of mods is structured in a weird way&#039;&#039;&#039;, mostly in mods made by ac2pic aka Emileyah, so sometimes you can&#039;t just put files of the downloaded archive into your mods folder and call it a day. As a rule of thumb, a folder which contains a file named &amp;lt;code&amp;gt;ccmod.json&amp;lt;/code&amp;gt; is most likely a mod. In the case of ac2pic&#039;s mods, the mod is usually located in a subfolder named similarly to the mod itself.&lt;br /&gt;
&lt;br /&gt;
== Step 3. Unpack the downloaded mod into your mods folder ==&lt;br /&gt;
&lt;br /&gt;
To locate your mods folder you first need to find the [[Locations of CrossCode files#Game files folder|CrossCode game files folder]], then go to &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt;. If the folder &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt; doesn&#039;t exist - create it. Then unpack the mod folder contained in the archive you downloaded there. Be sure to put the mod folder in &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt;, not the files inside because &#039;&#039;&#039;each mod lives in its own separate folder&#039;&#039;&#039;! You can also ensure that the folder you unpacked contains a file named &amp;lt;code&amp;gt;ccmod.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:Mods-dir-structure-separate-folders.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; these screenshots are a bit outdated (TODO update, include multiple mods to better demonstrate the idea), for example because they doesn&#039;t contain &amp;lt;code&amp;gt;ccmod.json&amp;lt;/code&amp;gt;, but I hope you get the correct idea.&lt;br /&gt;
&lt;br /&gt;
== Step 4. PROFIT!!! ==&lt;br /&gt;
&lt;br /&gt;
This basically concludes installation of perfectly regular mods.&lt;br /&gt;
&lt;br /&gt;
== Common mod installation problems ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Problem with requirements of mod&amp;quot; errors are printed and the mod isn&#039;t loaded ===&lt;br /&gt;
&lt;br /&gt;
Some mods work only on certain versions of CrossCode or CCLoader and some mods require other mods to function (so-called libraries). If these requirements of a given mod aren&#039;t met when the game is loaded, the modloader will simply skip this mod and proceed to start the game without it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;| Requirement problem&lt;br /&gt;
!width=&amp;quot;75%&amp;quot;| Explanation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mod &#039;xyz&#039; is not installed&amp;lt;/code&amp;gt;&lt;br /&gt;
| The mod &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt; is a so-called &amp;quot;dependency&amp;quot; of the mod you installed and you should install it as well. Usually dependencies are listed in the mod&#039;s README.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mod &#039;xyz&#039; is disabled&amp;lt;/code&amp;gt;&lt;br /&gt;
| Unsurprisingly, you have to enable the mod &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt; to get the installed mod working.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mod &#039;xyz&#039; is not loaded&amp;lt;/code&amp;gt;&lt;br /&gt;
| If there is a problem in the chain of dependencies, then all mods in that chain aren&#039;t loaded. See the error which caused &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt; to not be loaded.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;version of xyz is not in range abc&amp;lt;/code&amp;gt;&lt;br /&gt;
| The installed mod is compatible with a specific range of versions of &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt;, try downgrading or upgrading &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mod &#039;xyz&#039; doesn&#039;t have a version&amp;lt;/code&amp;gt;&lt;br /&gt;
| The developer of the mod you are installing likely made a mistake or you downloaded a very old development version of &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides for mod users]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Installing_mods&amp;diff=46</id>
		<title>Installing mods</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Installing_mods&amp;diff=46"/>
		<updated>2020-08-11T08:40:11Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This guide describes the most common way of installation of perfectly regular CrossCode mods. Granted, not every mod is equal, some may require additional setup before or after installation, but that must be described in mod&#039;s README document. If not - well, this is most likely the mod author&#039;s problem. Note that you don&#039;t have to read this guide each time you download a new mod as this page is intended for absolute beginners.&lt;br /&gt;
&lt;br /&gt;
=== Short note about upgrading mods ===&lt;br /&gt;
&lt;br /&gt;
You &#039;&#039;&#039;can&#039;&#039;&#039; perform mod upgrades by performing the steps described in this guide, but replacing all previous files when unpacking the downloaded mod. However, &#039;&#039;&#039;this is not recommended&#039;&#039;&#039; (by me at least) - instead you should first delete the folder with the previous version of the mod you are upgrading and only then unpack the new version, just in case.&lt;br /&gt;
&lt;br /&gt;
== Step 1. Install [[CCLoader]] ==&lt;br /&gt;
&lt;br /&gt;
CCLoader (aka the &#039;&#039;&#039;C&#039;&#039;&#039;ross&#039;&#039;&#039;C&#039;&#039;&#039;ode mod&#039;&#039;&#039;loader&#039;&#039;&#039;) is required for most mods nowadays to work. Well, it is possible to &amp;lt;s&amp;gt;ab&amp;lt;/s&amp;gt;use the DLC/extension system for creating simple asset swaps, but these are its limits - it&#039;s &#039;&#039;definitely&#039;&#039; not designed for full-fledged modding. CCLoader also provides various tooling for mod authors for selectively patching game content, so that mod authors can put just the changed bits of game files in their mods instead of copying them entirely. The guide about CCLoader installation can be found [[CCLoader#Installation|here]].&lt;br /&gt;
&lt;br /&gt;
== Step 2. Get the mod files ==&lt;br /&gt;
&lt;br /&gt;
Most mods are distributed as zip archives. There are two ways to obtain those:&lt;br /&gt;
&lt;br /&gt;
=== Downloading releases ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also [[CCLoader#VERY IMPORTANT NOTE: Don&#039;t use the green &amp;quot;clone or download&amp;quot; button!|this section]] of the CCLoader installation guide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unless explicitly stated otherwise in the mod&#039;s README, &#039;&#039;&#039;when actually downloading mods you should always check first for released versions&#039;&#039;&#039;, or &amp;quot;releases&amp;quot; for short. Most mod authors use GitHub for storing source code and distributing releases where you can access the page with changelogs and downloads through these links:&lt;br /&gt;
&lt;br /&gt;
[[File:Github-mod-releases.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
Pressing on the version marked as &amp;quot;latest&amp;quot; will take you to, unsurprisingly, the page of the latest release, pressing on the &amp;lt;code&amp;gt;Releases (N)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;+N releases&amp;lt;/code&amp;gt; links at the top and bottom (where &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; is some number) will take you to a list of all available versions. Mods also often include the following badge in their README which takes you directly to downloads:&lt;br /&gt;
&lt;br /&gt;
[https://raw.githubusercontent.com/CCDirectLink/organization/master/assets/badges/releases@2x.png https://raw.githubusercontent.com/CCDirectLink/organization/master/assets/badges/releases@2x.png]&lt;br /&gt;
&lt;br /&gt;
On the release page you&#039;ll see the section named &amp;quot;Assets&amp;quot;. It always includes at least two entries: &amp;quot;Source code (zip)&amp;quot; and &amp;quot;Source code (tar.gz)&amp;quot;. If only links for downloading source code are present - don&#039;t worry, you can use those to install the mod. Just download whichever archive format you prefer. Otherwise mod authors upload at least zip archives on the downloads page, usually the file name of those includes the mod ID and version.&lt;br /&gt;
&lt;br /&gt;
=== Downloading source code ===&lt;br /&gt;
&lt;br /&gt;
Most of the time mod authors publish the releases properly, but when the &amp;quot;releases&amp;quot; page is empty or the link is hidden it can mean one of three things:&lt;br /&gt;
&lt;br /&gt;
# The project is dead.&lt;br /&gt;
# The mod is work-in-progress project, or WIP for short. Such mods usually don&#039;t have a proper README file. In this case you should contact the author to ask if the mod is usable. You can also potentially help with the development - sometimes mods may need testers.&lt;br /&gt;
# The author was just lazy to publish releases properly. Most mods don&#039;t require compilation or preprocessing of assets or scripts to be loaded into the game and work, so in such cases you can try to download the mod&#039;s source code. On GitHub this can be done by pressing the green &amp;quot;code&amp;quot; button with a download icon to the left, and then pressing &amp;quot;download ZIP&amp;quot; in the opened popup:&amp;lt;br&amp;gt;[[File:Mod-download-source-code.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beware, however, that sometimes the source code of mods is structured in a weird way&#039;&#039;&#039;, mostly in mods made by ac2pic aka Emileyah, so sometimes you can&#039;t just put files of the downloaded archive into your mods folder and call it a day. As a rule of thumb, a folder which contains a file named &amp;lt;code&amp;gt;ccmod.json&amp;lt;/code&amp;gt; is most likely a mod. In the case of ac2pic&#039;s mods, the mod is usually located in a subfolder named similarly to the mod itself.&lt;br /&gt;
&lt;br /&gt;
== Step 3. Unpack the downloaded mod into your mods folder ==&lt;br /&gt;
&lt;br /&gt;
To locate your mods folder you first need to find the [[Locations of CrossCode files#Game files folder|CrossCode game files folder]], then go to &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt;. If the folder &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt; doesn&#039;t exist - create it. Then unpack the mod folder contained in the archive you downloaded there. Be sure to put the mod folder in &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt;, not the files inside because &#039;&#039;&#039;each mod lives in its own separate folder&#039;&#039;&#039;! You can also ensure that the folder you unpacked contains a file named &amp;lt;code&amp;gt;ccmod.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:Mods-dir-structure-separate-folders.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; these screenshots are a bit outdated (TODO update, include multiple mods to better demonstrate the idea), for example because they doesn&#039;t contain &amp;lt;code&amp;gt;ccmod.json&amp;lt;/code&amp;gt;, but I hope you get the correct idea.&lt;br /&gt;
&lt;br /&gt;
== Step 4. PROFIT!!! ==&lt;br /&gt;
&lt;br /&gt;
This basically concludes installation of perfectly regular mods.&lt;br /&gt;
&lt;br /&gt;
== Common mod installation problems ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Problem with requirements of mod&amp;quot; errors are printed and the mod isn&#039;t loaded ===&lt;br /&gt;
&lt;br /&gt;
Some mods work only on certain versions of CrossCode or CCLoader and some mods require other mods to function (so-called libraries). If these requirements of a given mod aren&#039;t met when the game is loaded, the modloader will simply skip this mod and proceed to start the game without it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;| Requirement problem&lt;br /&gt;
!width=&amp;quot;75%&amp;quot;| Explanation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mod &#039;xyz&#039; is not installed&amp;lt;/code&amp;gt;&lt;br /&gt;
| The mod &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt; is a so-called &amp;quot;dependency&amp;quot; of the mod you installed and you should install it as well. Usually dependencies are listed in the mod&#039;s README.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mod &#039;xyz&#039; is disabled&amp;lt;/code&amp;gt;&lt;br /&gt;
| Unsurprisingly, you have to enable the mod &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt; to get the installed mod working.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mod &#039;xyz&#039; is not loaded&amp;lt;/code&amp;gt;&lt;br /&gt;
| If there is a problem in the chain of dependencies, then all mods in that chain aren&#039;t loaded. See the error which caused &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt; to not be loaded.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;version of xyz is not in range abc&amp;lt;/code&amp;gt;&lt;br /&gt;
| The installed mod is compatible with a specific range of versions of &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt;, try downgrading or upgrading &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mod &#039;xyz&#039; doesn&#039;t have a version&amp;lt;/code&amp;gt;&lt;br /&gt;
| The developer of the mod you are installing likely made a mistake or you downloaded a very old development version of &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Installing_mods&amp;diff=45</id>
		<title>Installing mods</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Installing_mods&amp;diff=45"/>
		<updated>2020-08-11T08:40:03Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installing and updating mods =&lt;br /&gt;
&lt;br /&gt;
This guide describes the most common way of installation of perfectly regular CrossCode mods. Granted, not every mod is equal, some may require additional setup before or after installation, but that must be described in mod&#039;s README document. If not - well, this is most likely the mod author&#039;s problem. Note that you don&#039;t have to read this guide each time you download a new mod as this page is intended for absolute beginners.&lt;br /&gt;
&lt;br /&gt;
=== Short note about upgrading mods ===&lt;br /&gt;
&lt;br /&gt;
You &#039;&#039;&#039;can&#039;&#039;&#039; perform mod upgrades by performing the steps described in this guide, but replacing all previous files when unpacking the downloaded mod. However, &#039;&#039;&#039;this is not recommended&#039;&#039;&#039; (by me at least) - instead you should first delete the folder with the previous version of the mod you are upgrading and only then unpack the new version, just in case.&lt;br /&gt;
&lt;br /&gt;
== Step 1. Install [[CCLoader]] ==&lt;br /&gt;
&lt;br /&gt;
CCLoader (aka the &#039;&#039;&#039;C&#039;&#039;&#039;ross&#039;&#039;&#039;C&#039;&#039;&#039;ode mod&#039;&#039;&#039;loader&#039;&#039;&#039;) is required for most mods nowadays to work. Well, it is possible to &amp;lt;s&amp;gt;ab&amp;lt;/s&amp;gt;use the DLC/extension system for creating simple asset swaps, but these are its limits - it&#039;s &#039;&#039;definitely&#039;&#039; not designed for full-fledged modding. CCLoader also provides various tooling for mod authors for selectively patching game content, so that mod authors can put just the changed bits of game files in their mods instead of copying them entirely. The guide about CCLoader installation can be found [[CCLoader#Installation|here]].&lt;br /&gt;
&lt;br /&gt;
== Step 2. Get the mod files ==&lt;br /&gt;
&lt;br /&gt;
Most mods are distributed as zip archives. There are two ways to obtain those:&lt;br /&gt;
&lt;br /&gt;
=== Downloading releases ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;See also [[CCLoader#VERY IMPORTANT NOTE: Don&#039;t use the green &amp;quot;clone or download&amp;quot; button!|this section]] of the CCLoader installation guide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unless explicitly stated otherwise in the mod&#039;s README, &#039;&#039;&#039;when actually downloading mods you should always check first for released versions&#039;&#039;&#039;, or &amp;quot;releases&amp;quot; for short. Most mod authors use GitHub for storing source code and distributing releases where you can access the page with changelogs and downloads through these links:&lt;br /&gt;
&lt;br /&gt;
[[File:Github-mod-releases.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
Pressing on the version marked as &amp;quot;latest&amp;quot; will take you to, unsurprisingly, the page of the latest release, pressing on the &amp;lt;code&amp;gt;Releases (N)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;+N releases&amp;lt;/code&amp;gt; links at the top and bottom (where &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; is some number) will take you to a list of all available versions. Mods also often include the following badge in their README which takes you directly to downloads:&lt;br /&gt;
&lt;br /&gt;
[https://raw.githubusercontent.com/CCDirectLink/organization/master/assets/badges/releases@2x.png https://raw.githubusercontent.com/CCDirectLink/organization/master/assets/badges/releases@2x.png]&lt;br /&gt;
&lt;br /&gt;
On the release page you&#039;ll see the section named &amp;quot;Assets&amp;quot;. It always includes at least two entries: &amp;quot;Source code (zip)&amp;quot; and &amp;quot;Source code (tar.gz)&amp;quot;. If only links for downloading source code are present - don&#039;t worry, you can use those to install the mod. Just download whichever archive format you prefer. Otherwise mod authors upload at least zip archives on the downloads page, usually the file name of those includes the mod ID and version.&lt;br /&gt;
&lt;br /&gt;
=== Downloading source code ===&lt;br /&gt;
&lt;br /&gt;
Most of the time mod authors publish the releases properly, but when the &amp;quot;releases&amp;quot; page is empty or the link is hidden it can mean one of three things:&lt;br /&gt;
&lt;br /&gt;
# The project is dead.&lt;br /&gt;
# The mod is work-in-progress project, or WIP for short. Such mods usually don&#039;t have a proper README file. In this case you should contact the author to ask if the mod is usable. You can also potentially help with the development - sometimes mods may need testers.&lt;br /&gt;
# The author was just lazy to publish releases properly. Most mods don&#039;t require compilation or preprocessing of assets or scripts to be loaded into the game and work, so in such cases you can try to download the mod&#039;s source code. On GitHub this can be done by pressing the green &amp;quot;code&amp;quot; button with a download icon to the left, and then pressing &amp;quot;download ZIP&amp;quot; in the opened popup:&amp;lt;br&amp;gt;[[File:Mod-download-source-code.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beware, however, that sometimes the source code of mods is structured in a weird way&#039;&#039;&#039;, mostly in mods made by ac2pic aka Emileyah, so sometimes you can&#039;t just put files of the downloaded archive into your mods folder and call it a day. As a rule of thumb, a folder which contains a file named &amp;lt;code&amp;gt;ccmod.json&amp;lt;/code&amp;gt; is most likely a mod. In the case of ac2pic&#039;s mods, the mod is usually located in a subfolder named similarly to the mod itself.&lt;br /&gt;
&lt;br /&gt;
== Step 3. Unpack the downloaded mod into your mods folder ==&lt;br /&gt;
&lt;br /&gt;
To locate your mods folder you first need to find the [[Locations of CrossCode files#Game files folder|CrossCode game files folder]], then go to &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt;. If the folder &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt; doesn&#039;t exist - create it. Then unpack the mod folder contained in the archive you downloaded there. Be sure to put the mod folder in &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt;, not the files inside because &#039;&#039;&#039;each mod lives in its own separate folder&#039;&#039;&#039;! You can also ensure that the folder you unpacked contains a file named &amp;lt;code&amp;gt;ccmod.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:Mods-dir-structure-separate-folders.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; these screenshots are a bit outdated (TODO update, include multiple mods to better demonstrate the idea), for example because they doesn&#039;t contain &amp;lt;code&amp;gt;ccmod.json&amp;lt;/code&amp;gt;, but I hope you get the correct idea.&lt;br /&gt;
&lt;br /&gt;
== Step 4. PROFIT!!! ==&lt;br /&gt;
&lt;br /&gt;
This basically concludes installation of perfectly regular mods.&lt;br /&gt;
&lt;br /&gt;
== Common mod installation problems ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Problem with requirements of mod&amp;quot; errors are printed and the mod isn&#039;t loaded ===&lt;br /&gt;
&lt;br /&gt;
Some mods work only on certain versions of CrossCode or CCLoader and some mods require other mods to function (so-called libraries). If these requirements of a given mod aren&#039;t met when the game is loaded, the modloader will simply skip this mod and proceed to start the game without it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;| Requirement problem&lt;br /&gt;
!width=&amp;quot;75%&amp;quot;| Explanation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mod &#039;xyz&#039; is not installed&amp;lt;/code&amp;gt;&lt;br /&gt;
| The mod &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt; is a so-called &amp;quot;dependency&amp;quot; of the mod you installed and you should install it as well. Usually dependencies are listed in the mod&#039;s README.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mod &#039;xyz&#039; is disabled&amp;lt;/code&amp;gt;&lt;br /&gt;
| Unsurprisingly, you have to enable the mod &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt; to get the installed mod working.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mod &#039;xyz&#039; is not loaded&amp;lt;/code&amp;gt;&lt;br /&gt;
| If there is a problem in the chain of dependencies, then all mods in that chain aren&#039;t loaded. See the error which caused &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt; to not be loaded.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;version of xyz is not in range abc&amp;lt;/code&amp;gt;&lt;br /&gt;
| The installed mod is compatible with a specific range of versions of &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt;, try downgrading or upgrading &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mod &#039;xyz&#039; doesn&#039;t have a version&amp;lt;/code&amp;gt;&lt;br /&gt;
| The developer of the mod you are installing likely made a mistake or you downloaded a very old development version of &amp;lt;code&amp;gt;xyz&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Locations_of_CrossCode_files&amp;diff=44</id>
		<title>Locations of CrossCode files</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Locations_of_CrossCode_files&amp;diff=44"/>
		<updated>2020-08-11T08:36:51Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Save folder ==&lt;br /&gt;
&lt;br /&gt;
There isn&#039;t really much to say about this folder other than:&lt;br /&gt;
&lt;br /&gt;
# It isn&#039;t located in the [[#Game_files_folder|&#039;&#039;&#039;game files folder&#039;&#039;&#039;]], so you can delete and reinstall the game without losing your progress or settings.&lt;br /&gt;
# It is located in the nw.js&#039;s browser cache folder.&lt;br /&gt;
&lt;br /&gt;
Here&#039;re the direct paths to the save file on various platforms:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Installation path&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MS Windows&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;%LOCALAPPDATA%\CrossCode\cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.config/CrossCode/Default/cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;macOS&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/Library/Application Support/CrossCode/Default/cc.save&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Similarly named files &amp;lt;code&amp;gt;cc.save.backup&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;cc.save.backup2&amp;lt;/code&amp;gt; exist and can be used to restore the save file in case it becomes corrupt.&lt;br /&gt;
&lt;br /&gt;
For now this section is incomplete and more information can be obtained on the [https://crosscode.gamepedia.com/Savegame game&#039;s wiki].&lt;br /&gt;
&lt;br /&gt;
== Game installation folder ==&lt;br /&gt;
&lt;br /&gt;
You would probably know where you installed the game better than myself. However, here&#039;s a quick way to locate the installation folder in case you are using Steam:&lt;br /&gt;
&lt;br /&gt;
# Find CrossCode in your game library&amp;lt;/li&amp;gt;&lt;br /&gt;
# Right-click it, in the context menu press &amp;lt;code&amp;gt;Properties...&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Steam-crosscode-properties.png|class=block-img]]&lt;br /&gt;
# In the new window select the &amp;lt;code&amp;gt;LOCAL FILES&amp;lt;/code&amp;gt; tab&lt;br /&gt;
# You&#039;ll be presented with the following menu:&amp;lt;br&amp;gt;[[File:steam-browse-local-files.png|class=block-img]]&lt;br /&gt;
# Click the &amp;lt;code&amp;gt;BROWSE LOCAL FILES...&amp;lt;/code&amp;gt; button and you&#039;ll be taken to the installation folder.&lt;br /&gt;
&lt;br /&gt;
The common paths where Steam installs CrossCode are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Installation path&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MS Windows&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;C:\Program Files\Steam\steamapps\common\CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/.local/share/Steam/steamapps/common/CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;macOS&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;~/Library/Application Support/Steam/steamapps/common/CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how this folder looks on different platforms:&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.windows.png|frame|none|&#039;&#039;&#039;MS Windows&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.linux.png|frame|none|&#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-installation-directory.macos.png|frame|none|&#039;&#039;&#039;macOS&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
== Game files folder ==&lt;br /&gt;
&lt;br /&gt;
Due to the, uhm... &#039;&#039;interesting&#039;&#039; structure of the CrossCode&#039;s macOS application, the [[#Game_installation_folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]] is not necessarily the same as the &#039;&#039;&#039;game files folder&#039;&#039;&#039;. It also isn&#039;t the same as the [[#Game_assets_folder|&#039;&#039;&#039;game assets folder&#039;&#039;&#039;]]. Files (HTML pages and JavaScript scripts) in this folder have full access to all of the game&#039;s nw.js&#039;s features, and thus this folder is commonly used as a home for mods, modding tools and CCLoader in particular. On MS Windows and GNU/Linux it is the same as the installation folder, as such it also contains nw.js&#039;s files on these platforms.&lt;br /&gt;
&lt;br /&gt;
Anyway, here are the contents of this folder on different platforms in a fresh non-modded copy of CrossCode:&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.windows.png|frame|none|&#039;&#039;&#039;MS Windows&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.linux.png|frame|none|&#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
[[File:Clean-game-files-directory.macos.png|frame|none|&#039;&#039;&#039;macOS&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
There are a few files which are common between all platforms:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt; - obviously, the [[#Game_assets_folder|&#039;&#039;&#039;game assets folder&#039;&#039;&#039;]]&lt;br /&gt;
* &amp;lt;code&amp;gt;favicon.png&amp;lt;/code&amp;gt; - the application icon (interestingly enough the &amp;lt;code&amp;gt;.exe&amp;lt;/code&amp;gt; file for Windows has a different icon)&lt;br /&gt;
* &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; - contains the path to an HTML page which is opened immediately when you start the game and initial configuration for the window this page is opened in (like dimensions, fullscreen mode, resizable or not etc)&lt;br /&gt;
* &amp;lt;code&amp;gt;steam_appid.txt&amp;lt;/code&amp;gt; - to my knowledge it is created automatically by Steam and in the case of CrossCode just contains the text &amp;lt;code&amp;gt;368340&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All other files come from the standard nw.js packages [https://dl.nwjs.io/v0.35.5/ you can download yourself] and &#039;&#039;&#039;weren&#039;t created by RadicalFishGames&#039;&#039;&#039;. All aforementioned files though are identical on all platforms, which means that you can take them from an installation on another platform, download the nw.js package on a different OS, place the game files inside and you&#039;ll get a (synthetic, hehe) runnable version of the game on this another OS. (TODO: maybe I should write a guide for that as well)&lt;br /&gt;
&lt;br /&gt;
=== How to locate the game files folder ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MS Windows&#039;&#039;&#039; and &#039;&#039;&#039;GNU/Linux&#039;&#039;&#039;: Simply find your [[#Game_installation_folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]], it&#039;s the same as the game files folder on these platforms.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;macOS:&#039;&#039;&#039; Extra care needs to be taken on mac because the game files are stored inside of nw.js&#039;s application. After locating the [[#Game_installation_folder|&#039;&#039;&#039;game installation folder&#039;&#039;&#039;]] you need to:&lt;br /&gt;
&lt;br /&gt;
# Right-click the app named &amp;lt;code&amp;gt;nwjs&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;CrossCode&amp;lt;/code&amp;gt;&lt;br /&gt;
# In the context menu select &amp;lt;code&amp;gt;Show Package Contents&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Macos-show-nwjs-package-contents.png|class=block-img]]&lt;br /&gt;
# Go to the folder named &amp;lt;code&amp;gt;Contents&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;Resources&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;app.nw&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;[[File:Macos-package-contents-app-nw.png|class=block-img]]&lt;br /&gt;
# Here you go, this is the game files folder!&lt;br /&gt;
&lt;br /&gt;
== Game assets folder ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=Category:Modloaders&amp;diff=43</id>
		<title>Category:Modloaders</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=Category:Modloaders&amp;diff=43"/>
		<updated>2020-08-11T08:34:40Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Modloaders&amp;#039;&amp;#039;&amp;#039; are programs which start the game and load mods into it, provide interface for users to configure the loaded mods, and tools and utilities for mod developers.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Modloaders&#039;&#039;&#039; are programs which start the game and load mods into it, provide interface for users to configure the loaded mods, and tools and utilities for mod developers.&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
	<entry>
		<id>https://wiki.c2dl.info/w/index.php?title=CCLoader&amp;diff=42</id>
		<title>CCLoader</title>
		<link rel="alternate" type="text/html" href="https://wiki.c2dl.info/w/index.php?title=CCLoader&amp;diff=42"/>
		<updated>2020-08-11T08:29:15Z</updated>

		<summary type="html">&lt;p&gt;Dmitmel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;CCLoader&#039;&#039;&#039; is the de facto modloader for CrossCode and obviously a prerequisite for playing the CrossCode with mods. Really, it is the only actively developed modloader intended for use by both mod users and mod developers (RIP [https://github.com/20kdc/decrossfuscator/blob/master/lib/rapture.js Rapture] + [https://github.com/20kdc/decrossfuscator/tree/master/mods pre-1.1.0 mods], [https://github.com/Nnubes256/Dorito Dorito] and [https://github.com/CCDirectLink/CCInjector CCInjector]).&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
There are three ways to perform CCLoader installation, they are both described in this document. But before we continue:&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;VERY IMPORTANT NOTE:&#039;&#039;&#039; Don&#039;t use the green &amp;quot;clone or download&amp;quot; button! ==&lt;br /&gt;
&lt;br /&gt;
[[File:Clone-or-download.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
This button downloads the source code, not the compiled files! In the case of CCLoader you can&#039;t just download the source code and run it because CCLoader is not written in JavaScript! While this doesn&#039;t apply to all CrossCode mods out there as most of them are written in plain JS and as such don&#039;t need to be compiled, &#039;&#039;&#039;you should get used to looking at the &amp;quot;Releases&amp;quot; page first before trying to download the source code&#039;&#039;&#039;. In the new redesigned GitHub UI the link to it became more apparent:&lt;br /&gt;
&lt;br /&gt;
[[File:Github-project-frontpage-releases.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
== Method 1: Quick-installation archive ==&lt;br /&gt;
&lt;br /&gt;
This method is recommended for most users (at least right now because the mod manager is not stable enough for a public release and has a few critical bugs) and will very likely remain the primary installation method because of its simplicity.&lt;br /&gt;
&lt;br /&gt;
# Obviously, first of all you have to locate the [[Locations of CrossCode files#Game files folder|CrossCode game files folder]].&lt;br /&gt;
# Go to the [https://github.com/dmitmel/ccloader3/releases/latest latest release page] of CCLoader. (TODO update the URL when v3 is released)&lt;br /&gt;
# Download the archive named &#039;&#039;&#039;&amp;lt;code&amp;gt;ccloader_X.Y.Z_quick-install.zip&amp;lt;/code&amp;gt;&#039;&#039;&#039; (&amp;lt;code&amp;gt;tar.gz&amp;lt;/code&amp;gt; archives also exist for GNU/Linux and macOS users). &#039;&#039;&#039;It is important that you download the archive named &amp;lt;code&amp;gt;quick-install&amp;lt;/code&amp;gt; and not the source code or something else.&#039;&#039;&#039;&lt;br /&gt;
# Extract this archive somewhere:&amp;lt;br&amp;gt;[[File:Extract-ccloader-quick-install.png|class=block-img]]&lt;br /&gt;
# Copy the files inside the archive directly into the game folder, like this:&amp;lt;br&amp;gt;[[File:Ccloader-quick-install.png|class=block-img]]&amp;lt;br&amp;gt;The only file you&#039;ll have to overwrite in a clean CrossCode installation is the &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt;:&amp;lt;br&amp;gt;[[File:Ccloader-quick-install-overwrite-package-json.png|class=block-img]]&lt;br /&gt;
# You&#039;ve now successfully installed CCLoader! The end result should look like (notice the new &amp;lt;code&amp;gt;ccloader&amp;lt;/code&amp;gt; folder):&amp;lt;br&amp;gt;[[File:Ccloader-installation-end-result.png|class=block-img]]&lt;br /&gt;
# Mods can be installed into the &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt; folder located inside &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt;, for more information on that see the [[Installing mods|relevant guide]].&lt;br /&gt;
&lt;br /&gt;
=== Bonus for Linux users ===&lt;br /&gt;
&lt;br /&gt;
On Linux this entire process can be performed with two commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cd /path/to/CrossCode&lt;br /&gt;
# TODO update the URL here as well&lt;br /&gt;
curl --location --fail &#039;https://github.com/dmitmel/ccloader3/releases/download/v3.0.0-alpha/ccloader_3.0.0-alpha_quick-install.tar.gz&#039; \&lt;br /&gt;
  | tar --extract --gzip --verbose --file -&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verifying a successful CCLoader installation ===&lt;br /&gt;
&lt;br /&gt;
Upon launching the game you&#039;ll see the CCLoader version in the bottom right corner of the title screen and at the top of the pause screen (where the game version is) if CCLoader was installed correctly. You&#039;ll also be able to see the following tab in the options menu:&lt;br /&gt;
&lt;br /&gt;
[[File:Ccloader-mod-settings-menu.png|class=block-img]]&lt;br /&gt;
&lt;br /&gt;
It will obviously be empty if you haven&#039;t [[Installing mods|installed any mods]].&lt;br /&gt;
&lt;br /&gt;
== Method 2: Using the automatic installer ==&lt;br /&gt;
&lt;br /&gt;
See https://github.com/CCDirectLink/ccloader-installer. It may be broken though.&lt;br /&gt;
&lt;br /&gt;
== Method 3: Manual installation of the CCLoader-only package ==&lt;br /&gt;
&lt;br /&gt;
This method is not really intended for regular users, rather this section is a description of the full installation process intended as a reference when implementing tools for automatic CCLoader installation. It is also subject to change in the future, although that&#039;s not likely.&lt;br /&gt;
&lt;br /&gt;
# Locate the [[Locations of CrossCode files#Game files folder|CrossCode game files directory]].&lt;br /&gt;
# Create a directory for CCLoader files, named, for example, &amp;lt;code&amp;gt;ccloader&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Download and unpack the release archive named &amp;lt;code&amp;gt;ccloader_X.Y.Z_package.zip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ccloader_X.Y.Z_package.tar.gz&amp;lt;/code&amp;gt; into this directory.&lt;br /&gt;
# Change the &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; field in game&#039;s &amp;lt;code&amp;gt;package.json&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;assets/node-webkit.html&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ccloader/main.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Create a directory named &amp;lt;code&amp;gt;mods&amp;lt;/code&amp;gt; inside game&#039;s &amp;lt;code&amp;gt;assets&amp;lt;/code&amp;gt;.&lt;br /&gt;
# The installation is complete.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modloaders]]&lt;/div&gt;</summary>
		<author><name>Dmitmel</name></author>
	</entry>
</feed>