Project structure

Construct 2 projects consist of the following elements. These can be accessed via the Project Bar, which contains a tree of all the elements in the project. Items in the Project Bar can also be organised in to subfolders (licensed version only) which is very useful for medium to large projects. For more information, see the manual section on Project Primitives.


Levels, menus, title screens and other pre-arranged layouts of objects. In other tools Layouts may be referred to as scenes, rooms, frames or stages. See the section on Layouts for more information.

Layouts also consist of multiple Layers, which can be used to arrange objects in to background and foreground layers. These are managed with the Layers bar.

Event Sheets

A list of Events defining the game logic. In Construct 2, Events are the alternative to programming or scripting. Layouts have an associated Event Sheet for their logic. Event sheets can be re-used between different layouts with event sheet includes. Event sheets are edited in the Event Sheet View.

For more information on events, see the manual section on Events, especially the page on How events work.

Object Types

An Object Type defines a 'class' of object. For example, TrollEnemy and OgreEnemy could be different object types. Multiple instances of an object type can be created. For example there could be three instances of the TrollEnemy object type, and five instances of the OgreEnemy object type.

It is important to be clear on the difference between object types and instances: they will be referred to as different things throughout the manual. For more information, see the manual entries for Plugins, Object Types and Instances.

Object Types can also be grouped in to Families.

System object

The System object represents built-in functionality in Construct 2. It is the only object an empty project contains. It cannot be added again or removed from a project. There are no instances of the System object: it is simply always present and provides access to the built-in aspects of Construct 2's game engine. Its conditions, actions and expressions are documented in the System reference.

Sounds and Music

These are audio files used for sound effects and music in the game. Sounds should be used for short-duration sound effects that are played when events like collisions and explosions happen. Music should be used for the longer musical tracks. It is important to organise audio files appropriately, because Sounds are downloaded completely before playing, but Music is streamed. This means if a Music track is accidentally put in the Sounds folder, it would have to download completely (which could take a couple of minutes) before it started playing. However, audio in the Music folder can start playing immediately since it is streamed from the server.

Both sound and music must be available in both the Ogg Vorbis (.ogg) and MPEG-4 AAC (.m4a) formats. This is because browser makers cannot agree on one audio format for the web, so all audio must be in two formats to support all browsers! Internet Explorer and Safari use the .m4a files, and all other browsers (Firefox, Chrome and Opera) use the .ogg files. Construct 2 helps convert audio to both formats when audio files are imported. See the Import Audio dialog and Sounds & Music for more information.

Project Files

Any other external file can be imported to the project. For more information, see Project Files.

Common units

In Construct 2, sometimes you need to enter values such as angles, speeds or sizes. For consistency these always use the same units in Construct 2, except where noted by descriptions or tips shown in the editor. The common units are described below.

Positions are in pixels. The origin (0,0) is at the top-left of the layout, and the Y axis increments downwards (as is often the case with game engines).
Sizes are in pixels
Angles are in degrees. 0 degrees faces right and increments clockwise.
Times are in seconds
Speeds are in pixels per second
Accelerations are in pixels per second per second

Zero-based indexing

To be consistent with programming languages, all features of Construct 2 using a number of an item in a list (indices) start from 0 instead of 1. This might seem odd at first and take some getting used to, but in many cases it is actually much more convenient than 1-based indexing.

Traditionally lists are numbered 1, 2, 3... but in Construct 2 (and all other programming languages) they are numbered 0, 1, 2....