Don't Miss Out

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

Construct 2 Release r123

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

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

Wednesday, March 20, 2013

New this build: replace objects in the event sheet! There's also the long-overdue show grid option for the Layout View.

Now you can right-click any selected events, actions or conditions and choose Replace object to swap the object out for something else. Note this is quite a complex feature: it checks all the dependencies on instance variables and behaviors, and checks that any object to try to replace it with also has instance variables and behaviors with the same names and types so that the replacement is valid. This includes being able to swap objects with families. If there is a bug in this new feature it could break your events so please back up your projects before replacing objects in a lot of events. If you haven't already then also check out how to keep your work safe with Construct 2's backup options.

'Replace object' also allows you to 'upgrade' an ordinary object to a family. If you want to replace all references to an object in the events with a family that has the same behaviors and instance variables, you can do it by following these steps:

  1. Create a new empty object to be used temporarily to create the family. For example, create an empty Sprite if it's a family of Sprites.
  2. Create the new family. When prompted to choose objects to add to the family, select the new empty object you just created.
  3. Add instance variables and behaviors to the new family matching those in the object you want to replace. They must have exactly the same names and types.
  4. Back up your project, then go through all your event sheets doing select-all then replace object and replace with the family. If the family doesn't appear as an option, double-check you added the right behaviors and instance variables.
  5. In the original object, remove all its instance variables and behaviors. (The family now provides these.)
  6. Now you can edit the family and add the original object to the family. You can remove the temporary object from the family and delete it from the project.
  7. End result: you have now upgraded your object to a family, preserving all its behavior and instance variable references in the events!

Hopefully that's useful in case you forgot to plan ahead and went on making your game without a family when one would have been useful!

Please also note the breaking change in the changelog regarding the 'On created' trigger. This has been deliberately changed and it may break existing projects; however, the new functionality is a lot more logical so hopefully will be better in the long term.



'Replace object' in event sheet (keyboard shortcut: R)


Ribbon: 'Show grid' checkbox


Audio: new Ring Modulator effect


Audio: new Distortion effect


Audio: flanger effect now takes a new 'feedback' parameter. Note this defaults to 50 whereas previously it was effectively 0; this means existing projects using flanger effects will sound different unless you change the feedback back to 0.


Windows 8 object: now triggers 'On successful purchase' or 'On failed purchase' after trying to buy the app or a product


Windows 8 object: action 'Request store listing'; condition 'On store listing received', which sets expressions 'AppFormattedPrice', 'ProductName' and 'ProductFormattedPrice'


Breaking change: 'On created' now fires just before 'On start of layout' for every object already on the layout. Previously objects placed in the layout view did not trigger 'On created', but this made it annoying to initialise objects (e.g. you'd have to pin an object both on start of layout and in 'On created'). This will probably break some projects, but it really is more convenient this way round, and hopefully all you need to do is remove the stuff you do in 'On start of layout' that is a duplicate of what happens in 'On created'.


Updated pngout to the latest version


Updated pngcrush to the latest version (1.7.52)


Updated Google Closure Compiler to the latest version


Scirra Arcade plugin: should now refresh the on-page hi-score table after a score submitted

Bug Fix

Possible crash using Project Bar while in splitscreen view

Bug Fix

Image editor: cropping with a selection now preserves the origin and image points relative position

Bug Fix

Image editor: image points now remembered between frames, and is also better at remembering dialog position

Bug Fix

Javascript error using loopindex expression after a 'wait' action

Bug Fix

Audio: playing multiple positioned sounds on startup did not always play all of them

Bug Fix

Layout view: dragging an unselected object snapped the drag point to the mouse (bug introduced in r122)

Bug Fix

Picked objects were not always preserved properly after a 'wait' action

Bug Fix

9-patch: could show seams in WebGL renderer with tiled edges (there are some known seaming situations with the canvas 2D renderer, these are still being worked on)

Bug Fix

Windows 8 object: WindowsStoreProxy.xml now finally works for simulating app and product information in test mode (turned out to be an obscure encoding bug in Windows 8) - thanks to Henry Hoffman for the tip!

Bug Fix

Possible infinite loop switching layout (introduced r122)

Bug Fix

Z order bar: now refreshes object icons when their images change


Some garbage collection optimisations to several objects


In plugin and behavior instance constructors and onCreate, 'this.recycled' is true if the object is being re-used by the engine. If it's true, you can safely re-use member variables (e.g. setting array lengths to zero instead of assigning []) to reduce GC overhead.


eony321v 3,898 rep

Guys, you are the best! Thank you very much for another update!

Wednesday, March 20, 2013 at 6:29:27 PM
labithiotis 5,039 rep

Sweet loads of awesome fixes! Keep up the good work!

Wednesday, March 20, 2013 at 6:31:46 PM
sambufalo 3,107 rep

Nice to play with sound effects! Great adittions.

Wednesday, March 20, 2013 at 6:33:27 PM
mammoth 9,706 rep

Best engine ever!

Wednesday, March 20, 2013 at 6:34:32 PM
Ethan 12.2k rep

replace object will be very handy thanks.

Wednesday, March 20, 2013 at 6:35:29 PM
thehen 12.0k rep

"'Replace object' also allows you to 'upgrade' an ordinary object to a family"

I was going to request this exact thing but couldn't imagine how it would work. Great stuff!

Wednesday, March 20, 2013 at 6:35:30 PM
Sylvain 6,609 rep

BIG THANK YOU for the 'replace object" thing.


Wednesday, March 20, 2013 at 6:35:58 PM
GeometriX 12.7k rep

Bit worried about the On Created stuff, but it's great to see two long requested features implemented. Thanks Scirra!

Wednesday, March 20, 2013 at 6:37:45 PM
Arima 28.0k rep

Thanks for the 'on created' firing at the start of layout, was definitely wanting it to work that way.

Wednesday, March 20, 2013 at 6:38:30 PM
ageiser 5,253 rep

I really Dig it!

Wednesday, March 20, 2013 at 6:39:39 PM
darkpivot 1,793 rep

This is great! One of the most helpful updates in a while.

Wednesday, March 20, 2013 at 6:40:03 PM
Kuso 4,813 rep

The new feature is amazing! "Replace object" is a dream come true!

Wednesday, March 20, 2013 at 6:42:32 PM
jogosgratispro 23.4k rep

Nice release. You guys keep getting better!

Wednesday, March 20, 2013 at 6:43:59 PM
dodo021 5,814 rep

Thanks for all Scirra team!

Wednesday, March 20, 2013 at 6:45:35 PM
Miu3 8,106 rep

Awesome :D

Wednesday, March 20, 2013 at 6:46:29 PM

Leave a comment

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