Beta versions are not as thoroughly tested as stable

Beta versions are not as thoroughly tested as stable

Beta branch

Construct 3 r470

Improved Pointer Lock support; bug fixes & optimizations

27 January, 2026 ()

Email Me New Releases

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

Notes

We've introduced a lot of new features in the past few releases, so this week we've focused on refining the new features and fixing a few issues that have come up. However we do have a significant update for pointer lock support, which is important for 3D uses as well. Previously Windows WebView2 would show a notification when enabling pointer lock, and macOS WKWebView and Linux CEF did not support it. We've worked around this by implementing pointer lock ourselves in the wrapper applications, ensuring there is consistent and prompt-free support across all our desktop exporters.

One notable other change is that when exporting to Android or iOS, the Hide status bar option has been removed. That's not because support for this has been removed - it's just it is now controlled by the Viewport fit project property. If you want to hide the status bar, make sure that option is set to Cover, and it will work the same as checking Hide status bar - and also be more consistent with web exports.

Happy testing!

Like this Release?

Let us know with a thumbs up!

UpvoteUpvote 40 DownvoteDownvote
Launch r470

Changelog iconNew Additions

Not favoritedFavorited Favorited 8 favourites
AJAX: 'Set upload progress enabled' action (as it affects CORS)

Changelog iconChanges

Not favoritedFavorited Favorited 15 favourites
Mouse: support pointer lock without any UI prompt in Windows WebView2, macOS WKWebView & Linux CEF (v144+)
Not favoritedFavorited Favorited 4 favourites
Android/iOS exports: remove 'Hide status bar' setting as it is now controlled by the project 'Viewport fit' property
Not favoritedFavorited Favorited 2 favourites
Export manager: remove support for importing legacy Construct 2 Cordova exports

Changelog iconBug Fixes

Not favoritedFavorited Favorited 8 favourites
3D models: UI locking up after cancelling the dialog to pick a model file
Not favoritedFavorited Favorited 7 favourites
3D models: models without an index buffer not drawn at runtime
Not favoritedFavorited Favorited 7 favourites
3D models: give feedback when trying to load models using compressed textures which are not yet supported
Not favoritedFavorited Favorited 4 favourites
Possible crash using savegames or Persist behavior (regression r469)
Not favoritedFavorited Favorited 6 favourites
3D models: adjust model positioning to improve culling
Not favoritedFavorited Favorited 4 favourites
Animations editor: crash opening the editor to view 3D model textures
Not favoritedFavorited Favorited 4 favourites
Animations editor: wrong styling of color property
Not favoritedFavorited Favorited 4 favourites
Debugger: did not correctly show breakpoint state when in a popup window
Not favoritedFavorited Favorited 5 favourites
Tilemaps sometimes importing incorrectly from Construct 2 projects (regression r467)
Not favoritedFavorited Favorited 4 favourites
Browser: 'Request fullscreen' action not using correct mode (regression r468)
Not favoritedFavorited Favorited 5 favourites
Crash deleting sprites (regression r469)

Changelog iconPerformance Improvements

Not favoritedFavorited Favorited 12 favourites
3D models: improve performance of animated models
Not favoritedFavorited Favorited 9 favourites
Fix invisible Text objects sometimes needlessly releasing then recreating their texture (regression)

Share Construct 3 Release r470 Now

  • 15 Comments

  • Order by
Want to leave a comment? Login or Register an account!
  • Fantastic work on 3D model.

    My one piece of feedback is that I wish we had a way to scale the 3D model using actual scale values based on their real size in the model file as opposed to the size in the 2D viewport.

    Rendering in isolated mode causes sizing issues.

    It would also be nice to be able to manually enable/disable multiple meshes instead of having to pick between only one or all of them.

    In Under The Red Sky we have a single model file with all the 3D models and optional accessories so we sometimes need to have 2 meshes displayed at the same time.

    Also the sizing changes wildly in Isolated mode depending on which mesh is rendering, so to keep standard sizing we have to use Hierarchy rendering but the perf gets 10x worse in that case

    • +1 on this, especially the scaling part. Some models can look small compared to others while in the editor it's the contrary

  • Thanks for improving 3D anim performance and the pointer lock solution sounds great!

      • [-] [+]
      • UpvoteUpvote 7 DownvoteDownvote
      • DiegoM's avatar
      • DiegoM
      • Construct Team Construct 3 Developer
      • 7 points
      • (1 child)

      The improvement is relatively minor, the big gain will come when we move the bulk of the work from the CPU into the GPU.

  • This update fixed a major bug with savegames introduced in r469! Great job!

  • "Tilemaps sometimes importing incorrectly from Construct 2 projects (regression r467)"

    I tested it, and my main project is correctly working again!

    Thanks for fixing it!

  • It's so exciting to see 3D and ponter lock getting attention in this release cycle, it really means the world for big 3D projects to have this stuff supported out of the box. Thank you Scirra!

  • The new exporters finally getting feature parity with NWjs!

  • Right now I'm optimizing dynamic asset loading in my asset-heavy game, using replaceCurrentAnimationFrame and figured out from testing that fetching+decoding of the images can noticeably affect performance on low-end devices (especially if you do more than 1 at a time, which is very beneficial to speedup the loading). I figured out that you can put this logic in a worker to improve performance. And yes, I did with the fetch and it works, but the problem is that image decoding is forced to happen inside C3's code (with createImageBitmap as I understand it), as you need to you can only pass undecoded Blob to the aforementioned function. So I figured that, if possible, it would be nice to have alternative function that takes the result of createImageBitmap instead of Blob, so we can have more control on image loading and optimize it? Or I misunderstood how it works and it wont help? Thanks in advance!

  • All textures are getting mirrored on imported models.

  • Yellow placeholder boxes randomly appear in the Windows desktop build of the game. This issue does not occur when playing in the browser preview. The boxes appear inconsistently, and resizing the game window sometimes causes them to disappear, while other times more appear. This seems related to rendering or texture loading in the exported WebView2 build rather than gameplay logic.

      • [-] [+]
      • UpvoteUpvote 1 DownvoteDownvote
      • Ashley's avatar
      • Ashley
      • Construct Team Founder
      • 1 points
      • (0 children)

      This sounds like common graphics driver issues. Try checking for updated graphics drivers, and install any available system software updates. You could also try disabling WebGPU in Project Properties to see if that helps - if it does we'd be interested to know the graphics hardware in the system.

  • Fantastic work!

    Pointer Lock and 3D models were the final push we needed to finally move on from r449 for my current and future projects.

  • Load more comments (1 replies)