The 4.2 stable release is drawing near, as the list of known critical regressions is shrinking every day.

This 6th beta fixes a number of showstopper regressions via some relatively core changes. Those will need thorough testing to ensure that we’re not introducing other issues that would prevent users from moving from Godot 4.1 to 4.2. Please pay specific attention to those changes and ensure that they do not cause issues in your projects:

  • C#: Add NOTIFICATION_PREDELETE_CLEANUP notification to fix C# Dispose() (GH-83670).
  • Core: Make languages bookkeeping thread-safe (GH-84657).
    • We’re already aware of one issue affecting the C# editor caused by this PR (see below) - please let us know if you spot anything else that changed behavior, especially in GDExtension language bindings.
  • GDScript: Fix lambda cross-thread dynamics (GH-84659).
  • GUI/Input: Make mouse enter/exit notifications match mouse events (GH-84547).
    • This should restore the expected behavior for mouse_entered and mouse_exited signals. If you had noticed any weird change in mouse events in your projects in earlier betas, please make sure to test this beta 6 and confirm if your bugs are properly fixed.
  • Input: Rework input actions to be reliable (GH-84685).
    • Godot 4.2 fixes an infamous bug affecting actions with multiple input methods assigned to them (GH-45628), but that fix relied on getting proper information from the OS about which key events are repeated (echo). It turns out that some OSes (GH-82262) and browsers (GH-82732) don’t properly report this information, so we had to take another stab at refactoring this input handling. We need it tested thoroughly, especially on projects supporting using multiple event types at the same time.

Jump to the Downloads section, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the Web editor or the Android editor for this release. If you are interested in the latter, please request to join our testing group to get access to pre-release builds.


The illustration picture for this article is taken from SpaceSlog — a sci-fi spaceship sim game by Produno Games Studios, with an emphasis on ship building, crew management, and exploration. It is currently in development with Godot 4.2, and you can wishlist the game on Steam and Epic Games Store. Follow development on Twitter and the studio’s blog.

What’s new

For an overview of what’s new overall in Godot 4.2, have a look at the release notes for 4.2 beta 1, which cover a lot of the changes. This blog post only covers the changes between beta 5 and beta 6.

39 contributors submitted 83 improvements for this release. You can review the complete list of changes with our interactive changelog, which contains links to relevant commits and PRs for this and every previous release. Below are the most notable changes compared to 4.2-beta5:

  • 2D: Fix TileMap layer reverts and defaults (GH-83888).
  • Animation: Check if property exists before tweening (GH-81525).
  • Animation: Fix onion skinning internals activating audio/method/animation tracks (GH-83430).
  • Animation: Remove AnimatedSprite pointer when clearing editor (GH-84625).
  • Audio: Fix AudioStreamRandomizer.random_volume_offset_db not working (GH-82478).
  • Audio: Fix OGG Vorbis infinite error spam with corrupt file (GH-84723).
  • C#: Fix converting default Callables to native (GH-83357).
  • C#: Add NOTIFICATION_PREDELETE_CLEANUP notification to fix C# Dispose() (GH-83670).
  • C#: Rename Vector2/3/4I.Min/Max to MinValue/MaxValue (GH-84663).
  • Core: Keep Variant type after zero() (GH-84597).
  • Core: Make languages bookkeeping thread-safe (GH-84657).
  • Core: Fix crash when saving compressed image as JPG & WebP (GH-84758).
  • Core: Fix translation remapping check for imported resources (GH-84791).
  • Editor: Fix missing arrows in integer vector properties (GH-79021).
  • Editor: Don’t apply frame delay project setting to the editor (GH-82929).
  • Editor: Fix EditorFileSystemDirectory::get_file_deps() may return wrong result (GH-83081).
  • Editor: Fix for stopping the Undo History being desynchronised from actual Undo queue (GH-84557).
  • Editor: Correctly set up shortcut context in the shader editor (GH-84614).
  • Editor: Abort threaded preview generators on exit (GH-84716).
  • Editor: Fix texture region editor not selecting restored snap mode (GH-84762).
  • Editor: Reduced output spam from rapid property changes (GH-84795).
  • Export: Android: Preserve the output from the gradle build command (GH-84779).
  • Export: macOS: Improve icon generation (GH-84521).
  • GDExtension: Android: Remove Android specific abis from the export preset feature list (GH-84720).
  • GDExtension: iOS: Fix loading and exporting static libraries and xcframeworks (GH-84493).
  • GDExtension: Change GDExtension’s library_path back to an absolute path (GH-84620).
  • GDScript: Assign temporary path to preloaded resources (GH-80281).
  • GDScript: Fixes internal Script Editor crash with External Editor active (GH-82956).
  • GDScript: Fix GDScript cache assigning UID as scene path (GH-83039).
  • GDScript: Fix lambda cross-thread dynamics (GH-84659).
  • GUI: Fix subpixel layouts in text rendering (GH-81438).
  • GUI: Fix storing invalid item height values in ItemList (GH-82660).
  • GUI: Fix ColorPicker shape icon is invisible until shape is changed (GH-84535).
  • GUI: Make mouse enter/exit notifications match mouse events (GH-84547).
  • GUI: RTL: Fix list bullet alignment (GH-84605).
  • GUI: Warn about autowrapped labels in containers (GH-84662).
  • GUI: Allow auto-generated node names in PopupMenu::add_submenu_item (GH-84668).
  • Import: Scan the filesystem in the first frame when using headless mode (GH-84570).
  • Import: Use the Blender file name instead of the generated GLTF file name (GH-84678).
  • Input: Fix stuck cursor in Advanced Scene Importer (GH-84661).
  • Input: Rework input actions to be reliable (GH-84685).
  • Physics: Fix transform changes in _integrate_forces being overwritten (GH-84799).
  • Porting: Android: Fix editor crash issue when pressing Back (GH-84414).
  • Porting: Android: Fix disabling splash screen Show Image (GH-84491).
  • Porting: Linux: Add fallback from desktop GL to GLES, suppress PRIME detector error spam (GH-84513).
  • Porting: macOS: Fix fullscreen <-> exclusive fullscreen transition (GH-84649).
  • Porting: Windows: Fix bug where maximized->fullscreen->windowed mode stays maximized (GH-84504).
  • Porting: Windows: Add some AMD GPUs to the OpenGL blocklist (GH-84568).
  • Rendering: Use default samplers in base uniform set when rendering to reflection probes (GH-84317).
  • Rendering: Create tangent array if mesh created without tangents (GH-84576).
  • Rendering: Fix FogMaterial memory leak (GH-84702).
  • Rendering: GLES3: Protect against bogus glGetShaderInfoLog return values (GH-84741).
  • Shaders: Properly rename INSTANCE_ID and VERTEX_ID in canvas item shaders in the compatibility backend (GH-84585).
  • Shaders: Don’t store shader edit path in metadata (GH-84628).
  • Shaders: Fix VisualShader Texture2DParameter node filter bug (GH-84768).
  • XR: Fix OpenXR sample count (GH-84099).

This release is built from commit 64150060f.

Downloads

Standard build includes support for GDScript and GDExtension.

.NET build (marked as mono) includes support for C#, as well as GDScript and GDExtension.

  • .NET build requires .NET SDK 6.0 or 7.0 installed in a standard location.
    • .NET 8.0 should also be supported, but keep in mind this version of the .NET SDK is still in preview. Give it a try and let us know if you find any bugs.
  • To export to Android, .NET 7.0 or later is required. To export to iOS, .NET 8.0 is required. Make sure to set the target framework in the .csproj file.

While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition a pre-release piece of software. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.

Known issues

We’re currently tracking issues that we consider release blockers very closely. The main remaining ones that we’re aware of are below:

  • Following GH-84657, the .NET-enabled Godot editor seems to get stuck on exit (GH-84728). We’re working on solving this for the next build.
  • If you use both Godot 4.1 and 4.2 as self-contained with separate caches, you may run into this edge case: GH-84732. Deleting the .godot folder and doing a clean import with Godot 4.2 should work around this problem.

If you run into any other showstopper while testing this beta, please make sure that it’s reported and reproducible, and let us know if you think we may have missed prioritizing it.

With every release we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of known bugs.

Bug reports

As a tester, we encourage you to open bug reports if you experience issues with this release. Please check the existing issues on GitHub first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.

In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this beta).

Support

Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part or full-time developers hired thanks to generous donations from the Godot community. A big thank you to everyone who has contributed their time or their financial support to the project!

If you’d like to support the project financially and help us secure our future hires, you can do so using the Godot Development Fund platform managed by Godot Foundation. There are also several alternative ways to donate which you may find more suitable.