Since Construct 3 runs in the browser, you may be wondering how addons (like third-party plugins, behaviors and effects) are handled. Fear not! You can still install and use addons in Construct 3 in the browser. Let's look at how that works.
The Addon Manager
First of all Construct 3 has a brand-new Addon Manager. This lists all the addons available to the editor — both built-in and installed. It also provides a single central place to install new addons and uninstall existing ones. This makes it a lot easier to review and manage your addons!
You can also re-download the original .c3addon files for installed addons from this dialog, so you can more easily move your addons to a new device.
Installing new addons
Note the Install new addon button in the previous picture. This button opens a file picker that lets you choose a .c3addon file. If you approve the prompt to install the addon, it's then saved to browser storage. It's stored locally and for the specific browser, so it's only available on that device with the same browser. However this means you can continue to work with that addon continuously available.
Being browser-based, it's particularly easy to use Construct 3 on a range of devices, including on mobile. If you use a lot of addons, it could be inconvenient to have to keep re-installing them on every device you use, especially if you are only using a device temporarily. So to solve this, we built a new feature.
Construct 3 projects can now opt to bundle addons with the project. This means when you save your project, the .c3addon files are included with the rest of the project files. Then when you open the project, the addons are loaded from the project. Then you can open the project anywhere, regardless of whether the addons have been previously installed.
This allows you to log in to a completely new device and load your project without any fuss. It completely avoids the "missing addons" error message that could come up in Construct 2.
This also works particularly well with Cloud Save. You can bundle your addons in your project and save it to a service like Dropbox. Then all you need to do to be able to open it on a new device is log in to Construct 3, and open the project from Dropbox. There is no need to worry about getting ahold of the same set of addons.
Only additional addons installed to the editor are bundled — the built-in addons are not included, because you can always count on those being available.
Bundled addon versions
Even if the editor already has one of the addons installed, it still temporarily installs the addon from the project and uses that. This helps improve predictability in case the editor has a different version of the addon bundled with the project. In other words it always uses the version bundled with the project, rather than the version installed to the editor, which could be different.
For some plugins this is also useful for predictably matching versions. For example we still distribute the Greenworks plugin for Steam integration as an external addon, because you need to match it to specific NW.js and Steamworks SDK versions. This feature allows you to bundle a specific Greenworks addon version with your project, and then that project will permanently use that version, even if you update the version in the editor or use different versions in other projects.
However we anticipate sometimes you will intentionally want to update a bundled addon, perhaps to take advantage of bug fixes, new features, or other improvements. This can be done from the View used addons dialog (which we saw previously). If the editor has a newer version of a bundled addon installed, it provides an option to update the bundled addon.
This allows you to precisely control which addon version is used with your project, and when it is updated.
For addon developers
Construct 3's addon format is generally similar to Construct 2's. However third-party plugins and behaviors will need to have their editor script (edittime.js) rewritten in to a new format for Construct 3. This basically involves rewriting the action, condition and expression (ACE) tables in to a new format, and moving UI strings to a separate language file to facilitate translation. However the runtime script (runtime.js) should continue work unmodified. There are a small number of runtime features that have changed in Construct 3, but these are usually trivial to update. We'll provide documentation and assistance on the forum around this. We're aiming to have initial documentation on addons ready as early on during the public beta as possible so addon developers can get a head start on porting. Overall it ought to be a quick job to port Construct 2 plugins to Construct 3.
We're aware some third-party developers sell their addons and might not want them bundled with projects. We will provide a way for addons to opt-out of bundling so they stay in the editor only.
While we think this is a significant step in making it easier to manage addons in Construct 3, we do want to go further. Getting Construct 3 ready has been a huge project and it's simply not been possible to do everything we wanted by launch time. (In particular preparing the SDKs generally requires that most of the editor is done and ready to integrate with.) We didn't want to make you wait any longer for launch, so here are some of our future plans that may come a little later down the line.
- We want to host an online central directory of addons for Construct 3, to make it easy to find and install addons.
- We think it will be useful to associate addons with your Construct 3 account, and then automatically install them from the addon directory if you log in to a new device.
- We are planning to allow editor plugins, so new editor features can also be written as an addon. We intend for this to be able to cover entirely new editing windows in the UI, similar to the new Array Editor, but built from the SDK.
- It is possible we could design a compatibility layer to directly load unmodified Construct 2 addons, but this is quite complicated and may be limited in some ways. We're not sure if we'll do this at the moment, but if several important C2 addons are not being ported, we'll look in to it further.
Still, we believe using third-party addons in Construct 3 will be a much smoother experience than it was with Construct 2, with the new Addon Manager and project-bundled addons helping make your life easier.
Missed our earlier announcements? Here's a list of all the news about Construct 3 so far: