View a comprehensive history of all the new Javascript scripting feature updates and changes Construct 3 since the first release.
Preview incorrectly allowed importing the 'Imports for events' script file
Show warning if using exports in 'Imports for events' script
Add I3DCameraObjectType.fieldOfView
Add IObjectClass properties 'runtime', 'plugin'
Add IInstance property 'plugin'
Fix type definition for IWorldInstance.testOverlapSolid()
Add IWorldInstance.isOnScreen()
Add ISpriteObjectType with APIs to access to animations/frames
Add ITimelineControllerObjectType
Add IRuntime.timelineController
Add ITimelineStateBase class from which ITimelineState and ITweenState derive
Allow specifying tween tags by an array of strings
Replace IRuntime properties 'minimumFramerate'/'maximumFramerate' with 'maxDt'/'minDt'
Add IRuntime properties 'framesPerSecond', 'ticksPerSecond'; deprecate 'fps'
Add IRuntime properties framerateMode, minFramerate, maxFramerate
Add IShadowLightInstance.lightX/Y
Add ITimerBehaviorInstance.setAllTimersPaused()
TypeScript: fix type definition of IWorldInstance.effects
Add I3DCameraObjectType.rotateCamera()
Fix error using I3DShapeInstance.shape getter
Add ISpriteInstance.animationFrameTag
Add IPhysicsBehaviorInstance.isAwake
Add I3DCameraObjectType.getLookVector()
Add async method ISVGPictureInstance.setSvgUrl()
Ensure runtime mousedown/mouseup events fire same as in DOM for simultaneous presses
Move setCollisionCellSize() method to ICollisionEngine
Add ICollisionEngine interface at runtime.collisions with new methods including getCollisionCandidates()
Fix possible error destroying instance in "destroy" event
Fix ILayer.isHTMLElementsLayer setter not working
Add IPhysicsBehaviorInstance.teleport()
Add IRuntime.setCollisionCellSize()
Add ILayer.isHTMLElementsLayer
Add 'isConvex' parameter to IDrawingCanvasInstance.fillPoly()
Update 'Ghost shooter code' example to use InstanceType for subclassing
ILayout addLayer()/moveLayer() insertBy parameter did not allow null
Drawing Canvas loadImagePixelData() upside-down in WebGPU
TypeScript: fix a couple more definitions
WebView2: polyfill window.moveTo/window.resizeTo
Fix some more TypeScript definitions
Removing layers did not always immediately update instance lists