All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased] (3.2-dev at commit
- Support for pseudo-3D depth in 2D.
- Support for importing 3D scenes using Assimp.
- Many formats are supported including FBX.
- Support for generating audio procedurally and analyzing audio spectrums.
- WebRTC support.
- Support for automtaically building Android templates before exporting.
- This makes 3rd-party SDK integration easier.
- Support for texture atlases in 2D.
- Major improvements to the visual shader system.
- Redesigned visual shader editor with drag-and-drop capability.
- Most functions available in GLSL are now exposed.
- Support for boolean uniforms.
- New conditional nodes.
- Ability to delete multiple nodes at once by pressing Delete.
- See the complete list of new functions.
- Support for enabling/disabling parts of the editor or specific nodes.
- This is helpful for education, or when working with artists to make it harder for them to mess things up.
- Improved GridMap editor.
- The copied mesh is now displayed during pasting.
- The duplication/paste indicator is now rotated correctly around the pivot point.
- Ability to cancel paste and selection by pressing Escape.
- Erasing is now done using RMB instead of Shift + RMB.
- Freelook can still be accessed by pressing Shift + F.
- Revamped node connection dialog for improved ease of use.
- Ability to convert a Sprite to a Mesh2D, Polygon2D, CollisionPolygon2D or LightOccluder2D.
- New convex decomposition using the V-HACD library.
- Can decompose meshes into multiple convex shapes for increased accuracy.
- Support for grouping nodes in the 3D editor.
- MSAA support in the GLES2 renderer.
- Heightmap collision shape for efficient terrain collisions.
- Disabled collision shapes can now be added directly, without having to disable them manually after one step.
- Context menu options to close other scene tabs, scene tabs to the right, or all scene tabs.
- Precise snapping in the 3D editor when holding Shift.
- Ability to move a vertex along a single axis when holding Shift in polygon editors.
keep_pressed_outsideButton property to keep a button pressed when moving the pointer outside while pressed.
use_gi_probeLight property to exclude specific lights from GIProbe computations.
- TranslationServer method
get_loaded_locales()to retrieve the list of languages with a translation loaded.
FRUSTUM3D camera mode to create tilted frustums for mirror or portal effects.
- Vector2 and Vector3 methods
direction_to()to retrieve a normalized vector pointing from a vector to another.
- This is a shorter alternative to
(b - a).normalized().
- This is a shorter alternative to
- AStar functions
is_point_disabled()to selectively disable points.
- Tween now emits a
tween_all_completedsignal when all tweens are completed.
Input.get_current_cursor_shape()to retrieve the current cursor shape.
clear_points()method to clear all points.
smoothstep()built-in GDScript function for smooth easing of values.
sha_256()method to get a computed SHA-256 hash.
- Font method
get_wordwrap_string_size()to return the rectangle size needed to draw a word-wrapped text.
- ColorPicker properties to toggle the visibility and editability of presets.
- Varible shadowing warning in GDScript.
- Will be displayed if:
- a block variable shadows a member variable,
- a subclass variable shadows a member variable,
- a function argument shadows a member variable.
- Will be displayed if:
randfn(mean, deviation)method to generate random numbers following a normal Gaussian distribution.
- The GridMap editor now offers a search field and size slider.
- "Ignore" flag to ignore specific tiles when autotiling in the TileMap editor.
- Ability to create sprite frames in AnimatedSprite from a sprite sheet.
- Support for FPS snapping in the Animation editor.
- Autokeying in the Animation editor.
- Keyframes will be created automatically when translating, rotating or scaling nodes if a track exists already.
- Keys must be inserted manually for the first time.
- AnimationNodeBlendTreeEditor improvements.
- Ability to exclude multiple selected nodes at once.
- Context menu to add new nodes (activated by right-clicking).
- OccluderPolygon2D is now draggable in the editor.
- The tooltip position offset is now configurable.
- The default cursor used when hovering RichTextLabels can now be changed.
- Support for emission masks in CPUParticles2D.
- AnimatedSprites' animations can now be played backwards.
- TextureRects can now have their texture flipped horizontally or vertically.
- StyleBoxFlat shadows can now have an offset.
- Profiler data can now be exported to a CSV file.
- The 2D polygon editor now displays vertex numbers when hovering vertices.
- RectangleShapes now have a third handle to drag both axes at once.
- Global class resources are now displayed in the Resource property inspector.
- The default audio bus layout file path can now be changed in the Project Settings.
- "Disabled" attenuation model for AudioStreamPlayer3D, making the sound not fade with distance at all while keeping it positional.
- TextEdit's tab drawing and folding is now exposed to GDScript.
- Orphan node monitor in the Performance singleton.
- Counts the number of nodes that were created but aren't instanced in the scene tree.
- Ability to change eye height in VR.
- Support for importing 1-bit, 4-bit and 8-bit BMP files.
- Size dimensions must be a multiple of 8 for 1-bit images and 2 for 4-bit images.
use_lld=yesflag to link with LLD on Linux when compiling with Clang.
- This results in faster iteration times when developing Godot itself or modules.
use_thinlto=yesflag to link with ThinLTO when using Clang.
- Button to remove all missing projects in the Project Manager.
- Mono: New DynamicGodotObject class to access dynamic properties from scripts written in GDScript.
- Mono: Support for resource type hints in exported arrays.
- Mono: Support for Visual Studio 2019's MSBuild.
- Improved 3D KinematicBody performance and reliability.
- Keys and actions are now released when the window loses focus.
- One-click deploy to Android now requires just one click if only one device is connected.
- ColorPicker, OptionButton and MenuButton now use toggle mode, making them appear pressed when clicked.
- Increased the Light2D height range from -100..100 to -2048..2048.
- Lower and higher values can be entered manually too.
- The default RichTextLabel color is now
#ffffff, matching the default Label color for better consistency.
- Saved resources no longer contain dependency indices and metadata such as node folding, resulting in more VCS-friendly files.
- The script editor state (such as breakpoints or the current line) is now preserved across editor sessions.
- Tweaked the asset library detail page layout for better readability.
- Audio mixer faders now use a non-linear algorithm to better fit human hearing.
- Tooltips now appear faster when hovering elements in the editor (0.7 seconds → 0.5 seconds).
- Tree scrolling when dragging now uses a larger drag margin, making drag-and-drop more convenient.
- The Animation editor's line widths are now resized to match the editor scale.
- Some TileMap editor options were moved to the toolbar.
- Brackets are now only inserted when necessary when autocompleting methods in the script editor.
- Whitespace-only selections no longer cause the script editor to highlight all occurrences.
- Editor help is now accessed using Shift + F1, for consistency with other applications.
- The script editor's Find in Files dialog is now always available, even when no script is opened.
- Pressing Shift + Enter in the script editor Find dialog will now go to the previous match.
- 2D/3D selections, rotations and selected texts are now highlighted with the editor theme's accent color.
- The TextEdit caret color now matches the default font color, making it easier to see.
- Empty exported NodePath properties now return
- Built-in scripts are no longer allowed to use
class_nameas it wasn't working properly.
- More editor actions can now have shortcuts assigned (such as Revert Scene or Export).
- Items in the FileSystem dock can now be deselected by clicking empty space.
- Warning-ignore comments now allow whitespace after the
- UTF-8 characters are now supported in input action names.
- Windows: Drive letters in file paths are now capitalized.
- macOS: Control + H and Control + D in TextEdit now delete the character at the left and right of the cursor (respectively).
- macOS: Command + Left in TextEdit now moves the cursor to the first non-whitespace character.
- macOS: Non-resizable windows are now allowed to enter fullscreen mode.
- macOS: The editor's title bar now uses dark mode on Mojave.
OS.set_window_postion()now takes window decorations into account.
- Unused Panel
- thekla_atlas dependency, as light baking now relies on xatlas for UV unwrapping.
- The BRDF implementation is now energy-conserving, making rough materials less dark.
- Radiance is now generated when using a clear color sky.
SHADOWS_DISABLEDflags now work when using the GLES2 renderer.
- Fixed transparency order when using the GLES2 renderer.
- Fixed issues in WebM colorspace corrections, resulting in better color output.
- LineEdit and TextEdit's context menus no longer display editing options if they are read-only.
- Buttons' state is now reset when they exit the scene tree.
- This prevents them from lingering in a "hovered" or "pressed" state.
- Tooltips now disappear when hiding the node they belong to.
- Encoded packet flags are no longer sent in the ENet multiplayer protocol, as ENet itself already sends that data.
- This saves 4 bytes per packet.
- Audio trimming is now less aggressive, cutting at -50 dB instead of -30 dB.
- Audio trimming now has a small fade-out period, preventing audible pops.
- Audio mix rate and output latency settings are now consistenly applied on all platforms.
- Typed arrays and dictionaries no longer have their values shared across instances.
to_lower()conversion with Cyrillic characters.
- Large rotation offset/snap values no longer appear to be cut off in the Configure Snap dialog.
- The script editor can now autocomplete node paths starting with
- Custom script editor templates can now use type hints.
- Documentation tooltips in the editor now wrap to multiple lines correctly.
- The 3D editor's View Information pane now displays statistics correctly when using the GLES2 renderer.
- Getting the path to the Downloads directory on Windows using
OS.get_system_dir()now works correctly.
- The Show in File Manager context menu option now works with files marked as favorite.
- The random number generator's seed is now properly set up.
- Antialiased and rounded StyleBoxFlat corners now handle different border widths correctly.
- Text resources no longer contain an extraneous line break at the end of file.
FLIP_Zconstants now work as expected.
- Windows: Line endings are now converted to CRLF when setting clipboard content.
- This fixes line endings being invisible when pasting into other applications.
OS.set_window_size()are now handled correctly on hiDPI displays.
OS.get_window_position()now returns absolute coordinates.