Don't Miss Out

Follow us now so you don't miss new releases!

Construct 2 Release r110.2

There is a more up to date Stable Release! Download the latest Stable release instead here.

56.3 mb, Windows 8/Windows 7/Vista/XP

Monday, November 19, 2012

Update 21st November: updated to r110.2 to fix some bugs that were making it difficult to successfully test r110.

New this build: containers and experimental Spriter import!

Containers were one of the few features still not ported over from Construct Classic, and now they've arrived. If you've not used them before, here's a quick overview: suppose you want to make a tank out of two sprite objects - "Base" for the bottom and "Turret" for the top. This allows each to rotate independently, like a real tank. The main problem with doing this is events to do with "Base" don't automatically pick the paired "Turret". For example the event "Bullet collides with Base: set Turret angle towards Enemy" won't work as expected, since the "Turret" is not referenced in the event therefore all turret instances are affected, rather than just the one sitting on top of the base that was hit.

Containers solve this. If you put both Base and Turret in to a container together, they are always picked together in events. So whenever an event picks Base, it picks its associated Turret instance, and vice versa. Now the event works as expected: "Bullet collides with Base" will now pick both the Base that was hit and its associated Turret instance. So "Set Turret angle towards Enemy" only affects the one Turret. Containers effectively make it easy to build composite objects - objects in your game made composed from several instances. They also allow you to bundle data storage plugins like Array and Dictionary along with ordinary sprites, effectively allowing per-instance unlimited dynamic storage.

Note containers impose a limitation: all objects in a container must create and destroy together. In this case, you cannot create a Base without its Turret. If the layout contains only a Base, Construct 2 will automatically create an associated Turret for it on startup; if you use the "Create object" action to create a new Turret, an associated Base is also created; if you destroy either, both are destroyed. This is necessary for containers to work efficiently in the engine. However it usually isn't a problem, since you tend to want to create and destroy everything in one go anyway.

This build also implements experimental support for importing .SCML animations from Spriter. This is an awesome way of animating objects based on moving segments smoothly, sometimes also known as "skeletal animation". Here's a quick demo. If you ever used the Bone movement from Classic, imagine a professional animation tool based on the same idea. You'll first need to get the Spriter plugin from Brashmonkey (they're keeping this forum thread up to date - a publicly available plugin should be following shortly). Then you can import your animation by simply dragging and dropping the .SCML file in to a Construct 2 layout. It will then automatically create the necessary sprite objects, arrange them in to a folder, family and container, copy the .SCML file to the project, and add the necessary events to link the objects together. (Be sure to make sure the events are included on every layout you use the Spriter object on.) This is very much an experimental work-in-progress for testing. There's a lot more to do yet, such as adding the ability to update existing Spriter objects. However, your feedback is welcome. Note containers work especially nicely with Spriter imported animations, since without them it could be very difficult to make sensible events that properly took in to account all the different instances involved.

Please note containers involved lots of deep changes to the engine; there may be bugs, crashes or things which used to work but were accidentally broken in this release. Remain vigilant and please do report any issues you encounter, and as always, remember to keep backups of your projects.



Containers: easily make events for composite objects


Experimental support for importing Spriter animations (.SCML)


Keyboard object: conditions 'On any key released', 'On key code pressed', 'On key code released', 'Key code is down'; expression 'LastKeyCode'. These use numbers for key codes which also allows for variables to be used; this should enable player-defined control setups.


Gamepad object: conditions 'On any button pressed', 'On any button released', 'Is button index down', 'On button index pressed', 'On button index released', and expression 'LastButton' to get index of last button that was pressed. This should also enable player-defined control setups.


Sprite: ImagePointCount expression


Sprite: option to disable collisions ('Collisions' property, 'Collisions enabled' condition, 'Set collisions enabled' action). Sprites with disabled collisions will not register 'On collision' events nor respond to any other kind of collision (e.g. with solid).


Windows 8 object: can now share Sprite images and data URIs. This also allows you to take screenshots and share them.


Windows 8 object: new support for 'About', 'Support' and 'Privacy' options in the Settings charm, which can be turned on and off in the object's properties. Providing these can help your app get approved in the Windows 8 Store.


BREAKING CHANGE: Collisions between objects on different layers now take in to account each layer's parallax, scale and rotation. Previously these were not taken in to account which could make objects report overlapping when they weren't actually touching on screen; now it works as expected. However, this may change when objects count as overlapping in existing projects.


When making backups Construct 2 no longer copies files or folders with the hidden attribute or with the filename beginning with a dot (e.g. .svn, .git). This should help prevent copying source control system's data in with backups making the files unnecessarily huge.


The AJAX object should now be working in appMobi directCanvas with applab 3.4.5. Note you may need to set the 'Access-Control-Allow-Origin' header on any resources you request, since a native app counts as a different domain.

Bug Fix

Clicking 'Help on expressions' in the parameters dialog crashed in r109

Bug Fix

Sometimes using the Touch object in a game displayed in an iframe would prevent keyboard input working

Bug Fix

Function: in some cases the called function would still reference objects picked from the event calling the function. This was not intended; now function events start picking instances from scratch again.

Bug Fix

Function: javascript error passing local or global variables as parameters

Bug Fix

Local non-static variables in recursive functions did not hold unique values at each level of recursion (they acted like global variables throughout the function call). Now their values work independently in each call.

Bug Fix

Image editor: clicking but not dragging with the line tool could cause the image to go blank


If you have a plugin that picks objects or modifies SOLs, it will need changing to support containers. Post on the Javascript SDK forum if you have a plugin that needs updating.


kenli 7,858 rep

Great Construct 2!
Testing new feature, 'Containers' and 'Spriter .SCML'

Thanks Scirra

Monday, November 19, 2012 at 4:34:47 PM
FredFors 8,729 rep

Nice! Just got into Spriter, and its a wonderful tool!

Monday, November 19, 2012 at 4:38:22 PM
PixelAmp 4,492 rep

Glad to see Spriter support making an appearance!

And Containers sound really interesting as well.

Monday, November 19, 2012 at 4:39:10 PM
inkBot 9,896 rep

Key code! Button index! All my yes! Hnggggg! :D

Monday, November 19, 2012 at 4:39:35 PM
DrNickTo 5,384 rep

The Construct is becoming more powerful and more versatile.

The next version will have a beautiful number 111.

Monday, November 19, 2012 at 4:41:53 PM
onzephyr 9,962 rep

Containers, and Key Codes, and Spriter Import! Oh, my!

Monday, November 19, 2012 at 4:41:58 PM
Bigheti 17.5k rep

Let me see this new release...

Monday, November 19, 2012 at 4:47:08 PM
urbano 5,099 rep


Monday, November 19, 2012 at 4:50:53 PM
Temoana 5,165 rep

Nice, exactly what I've been looking for !

Monday, November 19, 2012 at 4:51:12 PM
bon4ire 6,078 rep

i'm all over it

Monday, November 19, 2012 at 4:57:26 PM
Peteer 4,647 rep

Containers...nice :D

Monday, November 19, 2012 at 4:59:02 PM
PeterMr 5,017 rep

Great!! Thanks!

Monday, November 19, 2012 at 5:03:56 PM
sman118 7,820 rep

This is great! The option to disable collisions is huge for my project. Awesome work as always.

Monday, November 19, 2012 at 5:07:35 PM
Zeus 6,106 rep

Awesome update, cannot wait to try it! Thanks Scirra.

Monday, November 19, 2012 at 5:09:54 PM
walterlow 6,546 rep

very nice changes. keep it up scirra

Monday, November 19, 2012 at 5:15:02 PM

Leave a comment

Everyone is welcome to leave their thoughts! Register a new account or login.