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.