Beta versions are not as thoroughly tested as stable

Beta versions are not as thoroughly tested as stable

Beta branch

Construct 3 r425

Tilemap patch brushes; flowcharts, templates & scripting updates; lots of bug fixes

04 February, 2025 ()

Email Me New Releases

Don't miss out on the latest and greatest new features in Construct 3

Create an Account

Notes

It's the start of a new release cycle, and we have another packed update for you in this week's beta release! First of all you can now use patch brushes with Tilemaps in both the editor and runtime. Flowcharts now have an option to disable outputs. Templates now support the effects 'Enabled' property. And there's much more, including a big batch of bug fixes, notably around Drawing Canvas, CJK IME in the Parameters Dialog, and several other parts of the editor user interface.

Another key change in this release is we've changed the minify tool used on export from UglifyJS to terser. This is actually a fork of UglifyJS so it should work very similarly, but in our testing we've found it works better for Construct, has fewer issues, and appears to be better supported. However as it is a different tool, be on the lookout for any new issues regarding minifying.

Another change is that with HTML layers, changing element's Z order could sometimes reset the element, such as reloading iframes, or resetting videos or scroll positions. Thanks to a new web platform feature, elements can now be reordered without resetting - at least in Chrome 133+, and support should come to other browsers in future. It's a small but useful way to make it easier to use HTML content in Construct projects.

Finally there are some more scripting APIs, and there's also the ability to dynamically change layer rendering modes. Happy testing!

Like this Release?

Let us know with a thumbs up!

31
Launch r425

New Additions

8 favourites
Tilemaps: new 'patch' brush to be used in the editor and at runtime
3 favourites
Flowcharts: option to disable outputs
3 favourites
[ADD] Timeline Controller: add new parameter to 'On started' triggers to have more control over when actions are executed
6 favourites
Templates: support effects 'Enabled' property
6 favourites
System action 'Set layer rendering mode'

Changes

3 favourites
Change minify tool on export from UglifyJS to terser
2 favourites
HTML layers: preserve element state when changing Z order where browser supports (currently Chrome 133+)
4 favourites
Tilemaps: allow using drawing tools when the pointer goes outside the boundaries of the instance being edited

Bug Fixes

3 favourites
Addon Manager: buttons in the lower part of the dialog hard to click in the dark and light themes
6 favourites
Drawing Canvas: 'Paste object' with effects not displaying correctly in fixed resolution mode
4 favourites
Drawing Canvas: 'Paste object' with a Text object with effects appeared misaligned
5 favourites
Drawing Canvas: 'Paste object' could have slight pixel misalignment in some cases
4 favourites
Drawing Canvas: surface device size could sometimes be 1px larger than necessary
4 favourites
Layout View: dragging instance from Project Bar with no template set did not always match runtime default instance
2 favourites
Parameters dialog: CJK IME could sometimes duplicate the first character
2 favourites
Parameters dialog: CJK IME did not always trigger autocomplete
2 favourites
Deprecated features dialog displayed incorrectly and could not be closed on mobile
2 favourites
Tweens: tween paused during an 'On Ping Pong' trigger could not be resumed
3 favourites
Tweens: loading from JSON breaking tweens in some cases
3 favourites
Move To: moving along a curved path not working in some conditions
2 favourites
Timeline Controller: Time expression returning imprecise values when used on triggers
2 favourites
Timeline bar: play head marker unexpectedly moving to the beginning of the timeline
2 favourites
Templates: changing template properties not updating effects on the Layout View
2 favourites
Animations editor: palette swatch size setting not working correctly
2 favourites
Animations editor: replacing all animation after importing frames incorrectly updating related Sprite instances size (regression r417)
3 favourites
Instances bar: scrolling not working properly if the bar is made to be narrow

Scripting updates

2 favourites
Add ILayer.renderingMode
3 favourites
Add IDrawingCanvasInstance.saveImage()
4 favourites
Add IRuntime.saveCanvasImage()
0 favourites
Deprecate IRuntime.createWorker() (use nested workers instead)

Share Construct 3 Release r425 Now

  • 10 Comments

  • Order by
Want to leave a comment? Login or Register an account!
  • Thank you so much for fixing the long standing Drawing Canvas issues, it looks like everything is completely fixed from what I've tested so far. Wohooo! This makes me so happy :D

    Thank you, thank you, thank you!

  • Nice work, squash those bugs!

    • [-] [+]
    • 2
    • Fib's avatar
    • Fib
    • 2 points
    • *
    • (5 children)

    I absolutely love the patch brush! Thank you! One suggestion is to allow 1x1 patch brushes because currently you can't create a "paintable" brush of a single tile with multiple variations. If you use a 2x2 patch brush you can't "paint" with it cause a lot of the tiles get overwritten. Maybe even better allow for a single tile auto-tile brush (Auto 1). Then we could paint single tiles that have multiple variations!

      • [-] [+]
      • 1
      • DiegoM's avatar
      • DiegoM
      • Construct Team Construct 3 Developer
      • 1 points
      • (4 children)

      Do you mean this for the editor or runtime? At runtime the new action to paint with a patch brush has a parameter that allows you to decide what should happen with empty tiles.

      • For both, but mostly for the editor. If you have an "empty" tile in a brush then it will overwrite existing tiles, but since it's invalid in the brush it just erases the existing tile.

        Also I tried using the patch brush at runtime and setting "invalid indexes" to "ignore" doesn't seem to work. It still overwrites existing tiles.

        Load more comments (3 replies)
  • Is disabling outputs in flowcharts just for mirroring the functionality in event sheets? Or would there be events for enabling and disabling outputs at runtime (similar to toggling event groups as active/inactive)?

    Or maybe this is something you would rather envision using events to change node tags for, and using those tags in conditions? (I don't know, I'm still in the process of figuring out how to work flowcharts into my projects.)

      • [-] [+]
      • 2
      • DiegoM's avatar
      • DiegoM
      • Construct Team Construct 3 Developer
      • 2 points
      • (0 children)

      Disabling outputs in the editor is a convenience more than anything else, to avoid outright deleting a part of a flowchart if you are not sure if you want to keep it around or not.

      It's also the first step to being able to disable entire nodes of a flowchart, also for convenience.

      I don't think there will be events to disable outputs at runtime because that would just fall into how the information in the flowchart is consumed. If your runtime logic says an output shouldn't be followed, then it effectively is disabled.