Deprecated features

Construct has been in development for many years. Much like with superseded features, over time new features are occasionally introduced that replace older features. Usually the older features are supported as long as possible to improve backwards compatibility. However sometimes the maintenance burden and additional complications caused by having to continue to have the older features means that they must ultimately be completely removed.

When you open a project, Construct will warn you of the upcoming removal of any deprecated features the project uses, or possibly that the project uses a feature that was already removed. The Deprecated features dialog may appear when opening a project to list all such features. It is strongly recommended to act as soon as possible to resolve all the items listed, thereby removing the use of all the deprecated features from your project. This will ensure your project continues to be supported and work correctly in future. If you don't take action, you may find your project stops working, or possibly cannot be opened, in a future release of Construct.

You can view the deprecated feature list for a project at any time, including if you previously checked Don't show again for this project in the dialog, by right-clicking the project name in the Project Bar and selecting ToolsView deprecated features. If the option does not appear, it means the project does not use any deprecated features.

This guide covers every type of deprecation warning and describes steps to take to stop using the deprecated feature.

Export file structure 'Flat' mode

Historically Construct exported projects with all project files in the root folder and with lowercased filenames, referred to as flat mode. In 2022 Construct was updated to preserve the folder structure and filename case of project files, referred to as folders mode. This is a much better mode as it preserves your folder organisation and is important for features like JavaScript Modules. However changing the mode could break some projects, as it changes where some project files are found, such as when requesting project files by URL.

For example consider a project using a file named "Hello.txt" in a subfolder named "myfolder". The file path is in fact "myfolder/Hello.txt". However in flat mode, where project files are referred to by a string, this file could be loaded from the path "hello.txt", as it exports all files in the root folder with lowercased names. After changing to folders mode, the file must be referred to with the string "myfolder/Hello.txt", reflecting its true path; the old string will no longer refer to the file and may return an error such as 404 Not Found. This also applies to audio files referred to by a string, although the file extension is omitted for those.

To change a project using the legacy flat mode to use the modern folders mode, follow these steps.

  1. Select the project name in the Project Bar to show project properties.
  2. In the Properties Bar, scroll down to the Compatibility settings section, and expand it if necessary.
  3. Change the Export file structure property to Folders.
  4. Update the project to fix any changed file references, as described above.

Cordova iOS/Android scheme

In the past mobile exports internally ran on the file: scheme, much like opening a local HTML file on your computer in your browser. This mode is inefficient, has limited capabilities, and is extremely difficult to support due to severe technical restrictions on the limited features available with the file: scheme.

In 2020 Construct added support for the app: scheme for iOS, and in 2021 the https: scheme for Android. These modes work almost identically to the way a real HTTP server does, and are much more efficient, more capable, and easier to support.

Due to the technical complexity of continuing to support them, support for the legacy file: modes will be removed in future. Where possible projects should all switch over to the new app: or https: schemes.

If your project has not been published to mobile - including if you do something like provide a template project that you distribute to others - or if your app does not make use of storage, then you should make sure the iOS and Android schemes are app: and https:.

To change a project using the legacy file schemes to use the modern modes, follow these steps.

  1. Select the project name in the Project Bar to show project properties.
  2. In the Properties Bar, scroll down to the Compatibility settings section, and expand it if necessary.
  3. Change the Cordova iOS scheme property to Modern (app:).
  4. Change the Cordova Android scheme property to Modern (https:).

Deprecated plugins/behaviors

Construct will list any plugins or behaviors used in your project that are marked deprecated. This means the entire plugin or behavior is no longer supported and should not be used any more. Usually this is because it has been replaced by a newer addon or feature, or the addon was for a third-party service that was shut down. If your project uses deprecated addons, you should delete them from your project, and where applicable replace them with a newer addon or different feature.

To remove a deprecated plugin, all object types based on the plugin must be deleted from the Project Bar. To remove a deprecated behavior, all objects using the behavior must have the behavior removed.

To help you identify where a deprecated addon is used, follow these steps.

  1. Right-click the name of the project in the Project Bar.
  2. Choose ToolsView used addons.
  3. Find the deprecated addon in the list.
  4. In the References column, the first few object names using the plugin or behavior are listed. To see a comprehensive list, right-click on the addon and choose Find all references....

Deprecated plugins and behaviors are hidden from the list when adding a new object or behavior. Therefore any plugins or behaviors you can still add from Construct are not deprecated. Any of these can be used as replacements for deprecated addons.

Functions

The legacy Function plugin will also be listed as a deprecated plugin. In 2019, Construct 3 introduced a new built-in functions feature which replaces the old Function plugin. Projects using legacy Functions should switch to using the new built-in system.

To help with converting to built-in functions, you can right-click an On function condition in the old Function plugin, and select Replace with built-in function. Note due to differences between the features, it may not always be possible to automatically replace the function, and you will need to do it manually instead.

For more information on built-in functions, see the manual section on Functions.

Classic scripts

Construct's JavaScript coding feature relies on JavaScript Modules, using import and export statements. However it originally used "classic" mode scripts, which don't support import or export statements. In 2020 Construct added support for modules, and in 2021 it removed support for the legacy "classic" mode scripts. To help you identify compatibility problems with old projects, Construct continues to warn you if you open a project that was still using "classic" mode scripts.

To update the project to use modules, refer to the tutorial Upgrading projects from classic scripts to modules. The next time you save the project the deprecation warning will no longer appear.

Other deprecated features

Sometimes individual conditions, actions or expressions are marked deprecated, or effects are deprecated. Construct does not currently notify you about these, because they are generally minor and easy to continue to support in the long term. However you may notice these as some conditions, actions, expressions or effects that you can access from the user interface differ from the ones referenced in an old project. If this is annoying for any reason, you can delete the old usage and add it back with the new usage to update it, but usually this is not necessary to keep the project working.

Construct 3 Manual 2024-07-15