The development of Godot 4.1 is starting to pick up steam — after a long, productive, but also exhausting month of March. Godot has received a lot of attention and love during the GDC and the meetup at GitHub, and it’s time to put all that feedback to good use. We will soon resume our regular preview releases that you have learned to enjoy during the later stages of the Godot 4.0 development.
In the meantime, Godot contributors have spent this month working on fixes and improvements for existing 4.0 users to enjoy and benefit from. Two weeks ago we have released 4.0.1, and it’s time for the second patch release of the bunch — 4.0.2! Our focus is still on the more critical issues and smaller usability improvements that are safe to publish right now. 4.0.1 has also introduced a couple of unfortunate issues for macOS and Windows users, which are now addressed as well.
In this release we also aim to improve the experience of Android developers. This includes bumping the target Android SDK version to 33. If you are using third-party libraries and plugins with your projects, this may enable some configuration options and checks in them, which were ignored in previous versions.
The illustration picture for this release showcases ProtonGraph — an experimental node-based tool for procedural content generation, made by HungryProton. Originally created in Godot 3, it is now powered by Godot 4.0, utilizing the brand-new multiwindow support! Follow HungryProton on social, where they share progress reports and more experiments, such as Counter-Strike-2-like volumetric smoke effect.
Here are the main changes since 4.0.1-stable:
- 2D: Use 8×8 default grid size for TextureRegion and 2D polygon editors (GH-73685).
- 2D: Fix preview rendering and transform calculations in the tiles editor (GH-74982).
- 2D: Fix
VISIBILITY_CHANGEDnotification order when
CanvasItementers tree (GH-75238).
- 2D: Fix a crash in the tiles editor when merging atlases (GH-75361).
- 2D: Don’t allow selecting nodes without owner in the editor (GH-75492).
- 3D: Fix GridMap signal
cell_size_changeddisconnect error (GH-74890).
- Android: Use the new API for virtual keyboard height detection on Android, bugfix for old API (GH-74398).
- Android: Configure maven central snapshot versions for the Godot Android library (GH-74470).
- Android: Add “filesRoot” path to Android provider paths xml (GH-74673).
- Android: Fix directory access when the running app has the
All files accesspermission (GH-75146).
- Android: Bump the target SDK version to 33 (Android 13) (GH-75203).
- Animation: Update property keying state without a full Inspector rebuild (GH-74564).
- Animation: Fix
AnimatedSprite2Dautoplay warning (GH-75258).
- Buildsystem: Exit with non-zero status if there are issues with FreeType dependencies (GH-74645).
- Buildsystem: SCons: Cleanup
pulseaudiodefines for Linux (GH-74666).
- Buildsystem: Fix xml namespace in org.godotengine.Godot.xml (GH-74920).
- C#: Encode
GodotProjectDiras Base64 to prevent issues with special characters (GH-74312).
- C#: Fix building projects for MSBuild before 17.3 (GH-74479).
- C#: Do not print errors about missing references to intentionally ignored members (GH-75284).
- C#: Fix
Array.AddRangeindex out of bounds (GH-75357).
- Core: Fix some race conditions that happen during initialization (GH-73793).
- Core: Fix crash in resource load (GH-74166).
- Core: Fix
randfnto prevent it from generating nan values (GH-74248).
- Core: Fix Variant hashing for floats (GH-74600).
- Core: Add a missing
ImageTextureLayered::_imagessetter for the C# bindings (GH-74668).
- Core: Expose more project settings for documentation (GH-74727).
- Core: Fix type check for
- Core: Fix
Array.slice()rounding when step is other than 1 (GH-74909).
- Core: Make
Gradientresort points on
- Core: Port robust signal (dis)connection to
- Editor: Fix cancelling selection while gizmo editing making uncommitted changes (GH-71156).
- Editor: Improve POT Generation dialog (GH-74213).
- Editor: Hide internal settings from the class reference (GH-74226).
- Editor: Fix
EditorUndoRedoManager’s handling of
- Editor: Fix built-in scripts missing their methods on signal connection (GH-74495).
- Editor: Fix “Download Project Source” for the Web Editor (GH-75194).
- Editor: Remove disabled plugins from active plugins (GH-75331).
- Editor: Fix incorrect sizes of some editor elements (GH-75379, GH-75381).
- Editor: More i18n improvements (GH-75385).
- Export: Fix GDExtensions library export when multiple architectures are set (GH-74057).
- Export: Delete unused compression formats from
.importfiles when exporting (GH-74684).
- GDScript: Make GDScript number highlighting stricter (GH-74184).
- GDScript: Fix “Find in Files” search results not opening built-in script (GH-74401).
- GDScript: Fix false positive
- GUI: Fix scrolling behavior with zero/low page value (GH-67910).
- GUI: Fix some ways to create inconsistent Viewport size states (GH-73188).
- GUI: Improve layout direction/locale automatic selection (GH-73716).
- GUI: Fix
GraphNoderesizing when its bottom border is too thin (GH-73800).
- GUI: Add mutex for FreeType face creation/deletion operations in TextServer (GH-73987).
- GUI: Fix IME position in the single window mode sub-windows (GH-74472).
- GUI: Fixes gutter set width results in receiving only half of the desired size (GH-74537).
- GUI: Fix
get_drag_datanot overridable in some Controls (GH-75122).
- GUI: Fix block caret size at the end of the line in
- Import: Fix
high_qualityvariable type (GH-75244).
- Input: Remove
meta_memupdate on keyup/keydown on Windows (GH-75172).
- This fixes situations where alt-tabbing from the editor would prevent keys and shortcuts from working.
- Input: Fix layout bug in
keyboard_get_keycode_from_physicalon Linux/X11 (GH-75461).
- macOS: Re-add support for the
_sc_inside app bundle. (GH-73429).
- macOS: Fix infinite loop caused by global menu callbacks which trigger EditorProgress dialog (GH-75254).
- This fixes a crash when trying to save scenes in the editor with a shortcut.
- Multiplayer: Fix list handling in
- Navigation: Fix GridMap free navigation RID error spam (GH-74889).
- Navigation: Fix agents with disabled avoidance getting added to avoidance simulation (GH-74893).
- Particles: Update GPUParticles2D/3D speed scale on
- Physics: Expose the
apply_floor_snapfunction to allow manual snap (GH-73749).
- Physics: Revert attempted fix of trimesh CCD (GH-74861).
- Physics: Fix
collide_shapereturn type (GH-75260).
- Physics: Fix property hint for platform layers on 3D physics body (GH-75544).
- Project converter: Add conversion for
- Project converter: Remove Tween properties/signals from renames (GH-75443).
- Project converter: Add navigation renames to the converter (GH-75513).
- Rendering: Incorporate the availability of screen and depth textures for the GLES3 backend (GH-72361).
- Rendering: Fix spotlight shadows in volumetric fog (GH-73919).
- Rendering: Fix issues with point size not functioning correctly in GLES3 (GH-73966).
- Shaders: Add drag and drop support for shader include files in shader editor (GH-74869).
- Shaders: Fix ndc calculation for LinearSceneDepth VS node in GLES3 (GH-74910).
- XR: Replace OpenXR operating system alert dialog with a warning log message (GH-73144).
- XR: Add
- XR: Enable access to the Valve Index grip force sensors (GH-74787).
- XR: Check hardware sRGB conversion when an sRGB target is used (GH-74892).
- XR: Fix typo in OpenXR pose orientation check (GH-74928).
- Thirdparty: Update
mymindstorm/setup-emsdkto v12 (GH-75339).
- API documentation updates.
As of now, there are no known incompatibilities with previous Godot 4.0.x releases. We encourage all users to upgrade to 4.0.2.
If you experience any unexpected behavior change in your projects after upgrading to 4.0.2, please file an issue on GitHub.
Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, and a handful of part or full-time developers hired thanks to donations from the Godot community. A big thank you to everyone who has contributed their time or financial support to the project!