Godot 4.2 has recently been released. According to the official release publication, this update represents the culmination of over 1800 improvements made by 359 contributors since the launch of Godot 4.1 nearly 5 months ago.

The new version introduces many new features and essential bug fixes that make Godot an even better tool for developing your game projects.

Without further ado, let's dive into a brief summary of the most impactful changes in this release:

Core and systems

In contrast to the 4.1 update, which introduced significant changes to resource loading and multithreading, the focus of this release has been on enhancing Godot's overall stability.

The Godot team addressed numerous issues related to crashes, scene file corruption, and implemented fixes to improve compatibility with version control. Additionally, the release includes fixes for abnormal memory usage and performance issues.

Alongside these stability improvements, smaller yet noteworthy features have been added. Now, in Godot 4.2, you have the ability to load OGG files at runtime, either from a buffer or a file path. Similarly, SVG files can be loaded from a binary buffer or a string.

2D and 3D features

For those developing 2D games, this release introduces two new helpful features: Forced integer scaling and a new closed property for Line2D nodes. The former can be enabled through a project setting and guarantees a square pixel grid without distortions, regardless of the aspect ratio. The latter enables you to draw enclosed lines with uninterrupted visuals.

For 3D projects, there is now the ability to obtain barycentric coordinates. This feature is valuable when precise normals are required from contact points of raycasts. It proves useful for games resembling F-Zero or for implementing gravity-defying walks on walls.

Additionally, two new global methods, rotate_toward and angle_difference, have been introduced to assist in handling rotations and angles.

Animations

Animations have been enhanced through an internal rework of both the AnimationPlayer and AnimationTree nodes, consolidating parts of their implementation under the new AnimationMixer node.

The Onion skinning mode, originally implemented in Godot 3.0, has made a comeback. This mode allows you to view preceding and upcoming animation frames with a red/green semi-transparent overlay. Additionally, new features, including a deterministic blending option, have been added.

Navigation

In terms of navigation, you can now generate navigation meshes in 2D, aligning it with the existing 3D navigation capabilities. This new feature can handle physics bodies, mesh instances, plain polygons, and tilemaps.

Moreover, both 2D and 3D navigation servers now support multi-threading for baking navigation meshes. This improvement eliminates stutters and brings a substantial performance boost.

Tilemaps

The tilemap system has seen numerous improvements, focusing on both usability and performance. A noteworthy addition is a tool that enables you to flip and rotate any tile or tile pattern while placing them in the world. There are also improvements to scene tiles, polygon editing, various hints and tips for ease of use, and more.

Editor and usability

Code editor

The Godot editor has undergone numerous changes to enhance user experience and address usability issues. Some notable changes include the introduction of named foldable code regions in the code editor (GDScript) and improvements to the toggling behavior of comments.

3D viewport and tools

There are now convenient hotkeys in the 3D viewport that will be familiar to those who work with Blender. For instance, you can use the G, R, or S keys for translation, rotation, and scale. These operations also support mouse wrapping for added convenience.

The sides of shapes can now be extended individually within the editor viewport. This functionality applies to collision shapes, CSG, and anything else configured with a volume.

The viewport has also been decluttered, displaying auxiliary visual information only for selected objects. At the same time elements like decals and fog volumes now feature extra indicators, making them easier to select via the viewport.

Docks and resource editors

The inspector and signal docks have seen improvements, including the addition of context menus and on-hover documentation for types and their properties. Property descriptions are now accessible in the theme editor.

In the filesystem dock, you can assign colors to various folders to enhance project navigation.

In the inspector, when making resources unique, you now have fine-grained control over which sub-resources should follow suit and which should remain unchanged.

The Gradient resource editor is now more intuitive, featuring snapping and UI improvements.

Noteworthy fixes have been applied to the Texture region editor, ensuring consistent functionality with all supported resources like styleboxes and atlases.

Asset library

The AssetLib tab has been improved to provide better search results. Additionally, issues related to content overflow and navigation button adjustments have been resolved.

You can install assets and addons, either from a file or search results and specify a different installation folder. There is also an option to skip the root folder in the asset archive, typically generated by GitHub.

Project manager

The project manager now offers an enhanced user experience with improved general arrangement of key controls and project import workflow.

Editor plugins

The editor-specific scripting API, relevant for plugins and tool scripts, has undergone some changes. The EditorInterface, which exposes extensive editor functionality, is now a singleton exclusively accessible within the editor.

Moreover, this singleton provides convenient methods to obtain direct references to 2D and 3D viewports. Additionally, editor plugins can now trigger a warning dialog, prompting the user about unsaved changes when closing the editor.

GDExtension

The GDExtension system provides a framework for low-level engine extensions that don't need to be bundled with the engine. Notable improvements include unexposed class registration, custom Callable support, indexed properties, and advanced registered property management with validate_property().

Other significant enhancement is the in-editor hot reloading of extensions, allowing GDExtension library updates to be handled on the fly, making C++ scripting with extensions more practical.

In addition, dynamic libraries can now be loaded on the Web platform, enabling the use of GDExtensions in web exports.

Furthermore, the API dump can now optionally include complete class reference documentation, which is particularly useful for developers creating scripting languages using extensions.

GUI and theming

In the UI system, individual tabs of TabBar/TabContainer now support focus, including keyboard navigation and dedicated styling. For navigation, a new method is introduced for all Control nodes, allowing you to find the next valid focus neighbor in any direction. This proves useful for implementing custom traversal logic.

The GraphEdit (still marked as experimental) and GraphNode have undergone cleanup and reorganization, separating node functionality into various types. This enables developers to define completely custom graph nodes without most of the predefined behavior.

The VideoStreamPlayer node includes new properties for seamless looping, while the RichTextLabel node has improvements in image handling, including quick refreshes without reshaping the text, padding, proportional sizing, and tooltips.

On the theming front, the issues with the theme editor collapsing while editing its inner resources have been fixed. Problems where the project theme impacts the editor have also been solved. Additionally, you can now preview how your layouts look with the editor theme applied directly in the 2D viewport.

Import and asset pipeline

In Godot 4.2, you no longer need to restart the editor when changing the import type. In addition, this release exposes additional options and preview features to the advanced import options dialog

Animation playback is now conveniently built into the preview window. You can override physics properties of imported objects, configure shadow casting and visibility ranges

The update also improves GLTF import support. Among the new supported GLTF extensions is KHR_materials_emissive_strength, representing Blender's emission multiplier, among other things. Another significant change is the newly added KTX image format support, commonly used for Basis Universal in GLTF.

Finally, the process of exporting meshes and models from Godot has been improved, addressing several issues and inconsistencies.

Input

The viewport mouse handling has undergone significant improvements to ensure consistent behavior of mouse and focus events across multiple viewports and windows.

In Godot 4.2, efforts have been made to address two major gamepad issues. The first fixes the Steam Input problem where some gamepad events were being handled twice. The second addresses a notorious bug affecting actions with multiple input methods assigned, such as character movement controlled by both WASD and thumbstick/D-Pad.

Multiplayer and networking

The high-level multiplayer system has received a few noteworthy improvements. The MultiplayerSynchronizer node now supports the synchronization of (sub-)resource properties, transform components, and other indexed data without requiring the synchronization of entire objects.

Scene replication options have been streamlined and optimized, and the corresponding editor should now have a more straightforward and clearer UI.

This release also addresses a security issue in ENetMultiplayerPeer and ENetConnection. There's a potential denial-of-service attack leveraging a flaw in the ENet library, so it is strongly recommended to update to versions 4.0.4, 4.1.2, or 4.2 for enhanced security.

Porting and platforms

In this release, Godot continues to improve its porting support, focusing on better integration with the host environment. Notably, native file selection dialogs have been added for Linux, macOS, and Windows, allowing you to leverage familiar user interfaces in your games and apps—particularly important for sandboxed apps on macOS.

Additionally, copying and pasting images are now implemented for all desktop platforms, improving interaction with the operating system.

Android

On Android, there is now support for multiple windows and faster startup times for Godot apps and games. The Godot Android plugin framework has been updated, and new features include Android stylus pressure and tilt support, along with the option to show an icon on Android TV and run your app as a launcher.

iOS

For iOS, a one-click deploy feature has been added, facilitating quick deployment and remote debugging of your project on an actual iOS device or an emulator.

Linux

On the Linux front, official distributions of the Godot Editor for ARM processors are now available for download, with export templates automatically including this platform. However, it's important to note that these are still experimental.

Rendering, particles, and shaders

Godot's rendering capabilities received widespread performance improvements. Key features in this domain include support for AMD's FSR 2.2 and 2D HDR rendering for Forward+ and Mobile rendering methods.

FSR 2.2 is an open upscaling technique compatible with GPUs of all vendors, while 2D HDR rendering unlocks 3D effects like glow for 2D games. The Compatibility renderer now includes the highly anticipated addition of 3D shadows.

Godot 4.2 introduces the splitting of raster barriers into vertex and fragment components to enhance mobile device performance. Noise textures and the depth prepass have been optimized while shader loading and compilation times benefit from ShaderRD compilation groups.

The engine now optimizes mesh storage by separating vertex data layout, boosting performance on both mobile and desktop platforms. A new compressed option reduces bandwidth requirements for improved performance in bandwidth-limited scenarios. Compatibility is maintained as the engine automatically upgrades older meshes on load, with a new tool in Project > Tools for permanent conversion.

An optional ANGLE-backed OpenGL rendering driver is now available for macOS and Windows, serving as a compatibility layer for deprecated OpenGL drivers and increasing the portability of Godot games on lower end devices.

A new JNLM denoiser has been introduced, which is notably faster than the old OIDN denoiser. It utilizes compute shaders (leveraging your GPU) and is considerably more lightweight.

The result of using the new JNLM denoiser.

GPU particles now offer VFX artists more control, allowing direct animation of velocity over the lifetime, inheritance of projectile velocity, and changes to the emission amount of particles.

Both GPU and CPU particles now have a dedicated signal for when they finish emission and simulation, useful for animations requiring a precise order of operations. The GPU particles rework opens the door for more GPU-only features in the future, while CPU particles remain a low-cost, simplified alternative.

In compute shaders, a new ability to create custom texture objects has been added. APIs for calling compute code on the render thread are introduced, allowing synchronization between compute shaders and rendering. A significant bug leading to crashes has been fixed, and the built-in glow effect has been improved.

A compute texture demo from the official collection of Godot demos.

Visual shaders have also seen improvements, including drop-down list properties for custom nodes and expandable output ports for vector types by default. In text shaders, enhancements have been made to uniform sampler arrays, providing support for more hint types, such as filter modes.

Scripting

The script debugger now fully supports threaded code, including the execution stack and breakpoints, making it possible to debug additional threads. Godot 4.2 reintroduces mobile exports with experimental support for Android (requires .NET 7.0+) and iOS (requires .NET 8.0) export targets.

C# / .NET

In broader improvements to the C# integration, several fixes have been made to the binding generator. Language binding now supports abstract classes. Interoperability with GDScript has improved, including support for static methods and read-only/write-only properties. The build panel in the editor has been visually updated, achieving functional parity with the main output log and debugger.

GDScript

For GDScript and strict typing support, a new warning reports all instances of untyped code, ensuring codebase strictness and consistency. "For loops" now support static typing, and you can use scoped constants as type hints.

Additional features include raw string literals, return type covariance, parameter type contravariance, implementation of pattern guards for advanced match statements, and optimized operator calls.

Special TODO markers (such as TODO, FIXME, etc.) are now highlighted in the code editor for better visibility. Documentation comments now support @deprecated and @experimental tags to mark class members accordingly in the generated documentation. Documentation generation itself has also been improved.

The language server has been updated to improve hovered symbol resolution, fix multiple bugs related to renaming, and implement reference lookup.

XR

In the realm of XR, notable changes include the addition of foveated rendering support, ported over from Godot 3.x, and the access to raw hand-tracking data. Moreover, the OpenXR module can now be extended and interacted with through the GDExtension API.

For the complete list of changes, please refer to Godot’s interactive changelog. Godot 4.2 is available for download from the official Godot Engine website.

Blips Game Music Packs

Note: You're leaving the Blips Blog. The visited links may be subject to different privacy and cookie policies.