Defold 1.13.2 BETA

Defold 1.13.2

Disclaimer

This is a BETA release, and it might have issues that could potentially be disruptive for you and your team’s workflow. Use with caution. Use of source control for your projects is strongly recommended.

Access to the beta

Download the editor or bob.jar from GitHub: Release v1.13.2 - beta · defold/defold · GitHub

Beta notes:

This version includes support for Rich Text labels and GUI nodes. The new functionality allows developers to add markup to text in order to change font color, add gradients, outlines and much more. Visit the Rich Text manual to learn more.

Summary

  • BREAKING CHANGE: (#8716) Improve HTML loading time (by ekharkunov)
  • BREAKING CHANGE: (#12910) Deprecated misspelled event constant window.WINDOW_EVENT_ICONFIED (by britzl)
  • NEW: (#12806) Speed up LiveUpdate archive creation (by britzl)
  • NEW: (#12870,#12869,#10721) Add App Manifest options to exclude GUI, Particle FX, and Tilemaps (by AGulev)
  • NEW: (#12842) Bob performance improvements (by britzl)
  • NEW: (#12397) Added graphics.webgl_version_hint (by britzl)
  • NEW: (#12765,#12764,#12763,#12762,#12761,#12760) Added support for Rich Text (by JCash, defold-services)
  • NEW: (#12663,#8854,#8718) Fix GUI flipbook cursor behavior (by AGulev)
  • NEW: (#12054,#12004) Update to Protobuf 35.1 (by JCash, defold-services)
  • NEW: (#12979) Optimized physics messages sent to Lua (by JCash)
  • NEW: (#12525,#9656,#8686) Add Bullet3D Lua API (by AGulev)
  • NEW: (#11654) Fix Protobuf warning on Java 25 (by AGulev)
  • NEW: (#11036) Add sample count setting for multisampled render target attachments (by Jhonnyg)
  • NEW: (#12816) Create a constant buffer snapshot when issuing render.draw (by Jhonnyg)
  • NEW: (#7186) Show release notes during update process and bundle with the editor (by JosephFerano)
  • NEW: (#12708) Add /command/compile and /command/run endpoints to editor server (by vlaaad)
  • NEW: (#8297) Improve property view and form tooltips (by vlaaad)
  • NEW: (#12707) Allow running games without taking focus (by AGulev)
  • NEW: (#12727) Show multiple notifications at once (by vlaaad)
  • NEW: (#10913) Quit Defold if the project folder was removed or moved (by vlaaad)
  • NEW: (#12472) Remember scene settings and camera state, better camera and grid defaults (by JosephFerano)
  • NEW: (#12671,#8919) Support text shaping preview in Editor (by JCash)
  • NEW: (#12841) Format document LSP call with command shortcuts (by JosephFerano)
  • NEW: (#12918) Add editor script API to open code resources at a particular line (by vlaaad)
  • NEW: (#12611) Editor uses the latest Basic 3D template (by Jhonnyg)
  • NEW: (#8420) Add new text property type (by Jhonnyg)
  • NEW: (#6895) Add validated Lua API type annotations to the editor (by AGulev, vlaaad)
  • NEW: (#12867) Added support for 3D collision meshes (by JCash)
  • NEW: (#12916,#12829) Make editor endpoints await command completion (by vlaaad, matgis)
  • NEW: (#13024) Return target URL when launching a game using editor HTTP API (by vlaaad)
  • NEW: (#11527,#12993) Format on save with option (by JosephFerano)
  • FIX: (#12743) Fix how data size calculated for block compressed textures (by ekharkunov)
  • FIX: (#12780) Do not reverse hash generated gui node ids (by AGulev, britzl)
  • FIX: (#12614) Accept uppercase file extensions for referenced resources (by britzl)
  • FIX: (#12036) Updated to Clang 20 for Linux builds (by JCash, ekharkunov)
  • FIX: (#12844) Fix issue with compressed ETC1 texture in mobile Safari (by ekharkunov)
  • FIX: (#12846) Fix collapsed canvas on reboot (by ekharkunov)
  • FIX: (#12850) Fix issue with fullscreen window size and display scale other than 100% (by britzl)
  • FIX: (#12877) Fix crash when add font glyph to cache (by ekharkunov)
  • FIX: (#12868) Fix transcoding of non-RGBA uncompressed texture arrays (by ekharkunov)
  • FIX: (#12896) Fix sound exhaustion when Web Audio is unavailable (by AGulev)
  • FIX: (#12758) Normalize the gamepad name in dmHID::GetGamepadDeviceName() (by JCash)
  • FIX: (#12264) Add OpenType CFF font support (by JCash, defold-services)
  • FIX: (#12901) Fix for font glyph ascent being a negative value (by JCash)
  • FIX: (#12680) Fix Linux territory detection for encoded locales (by AGulev)
  • FIX: (#3247) Report locale data consistently across platforms (by AGulev)
  • FIX: (#12602) Changed Host header of the http request to use URI’s authority component (by CodeForBeauty)
  • FIX: (#12773) Improve OpenGL shader compilation error reporting (by AGulev)
  • FIX: (#12977) Improved DDF encode/decode performance (by JCash)
  • FIX: (#12973) Added support for cross repo source builds (by JCash)
  • FIX: (#12976,#9941) Replace Android ProGuard configuration with R8 (by AGulev)
  • FIX: (#9102) Fix slice 9 vertical and horizontally flipping sprites and GUI nodes (by Jhonnyg)
  • FIX: (#12988) Merge custom resources from extensions (by Jhonnyg)
  • FIX: (#12677) Use active override material to calculate correct vertex buffer capacity (by Jhonnyg)
  • FIX: (#12997) Update to Bullet 3D v3.25 (by JCash, defold-services)
  • FIX: (#13027) Added dmArray::EnsureSize() to dmSDK (by JCash)
  • FIX: (#13016) Refactor VkQuality integration to skip the java glue code (by Jhonnyg)
  • FIX: (#9043) Fix HTML5 size verification (by ekharkunov)
  • FIX: (#13038) Fix Android bundling for the x86_64 architecture when stripping executables (by ekharkunov)
  • FIX: (#12552) Fix exception that sometimes pops up when using the editor (by vlaaad)
  • FIX: (#12698) Fix exception when zooming in on an animation preview too much (by vlaaad)
  • FIX: (#11299) Notification when editor behavior is disabled after error (by JosephFerano)
  • FIX: (#5875) Fix infrequent exception when dragging items into editor on macOS (by vlaaad)
  • FIX: (#12726) Reject invalid characters in resource inputs (by vlaaad)
  • FIX: (#11509) Validate that welcome project files are actually game.project files (by vlaaad)
  • FIX: (#11794) Filtered “Search in Files” search speed improvement (by JosephFerano)
  • FIX: (#12887) Add “skip this release” button (by JosephFerano)
  • FIX: (#12889) Per-channel update bundle directories (by JosephFerano)
  • FIX: (#12670) Fix right click context menu not showing selected object in scene (by JosephFerano)
  • FIX: (#11928,#11492,#7618) Improve material resource view UX (by JosephFerano)
  • FIX: (#12927) Fix markdown performance degradation with very large images (by JosephFerano)
  • FIX: (#12951) Fix LSP document symbols race condition when starting editor (by JosephFerano)

Engine

BREAKING CHANGE: (#8716) ‘Improve HTML loading time’ by ekharkunov
:warning: :warning: :warning: engine_template.html was changed. If you have custom template file - please update it. :warning: :warning: :warning:

Added browser resource hints for json/js/wasm files.

BREAKING CHANGE: (#12910) ‘Deprecated misspelled event constant window.WINDOW_EVENT_ICONFIED by britzl
The event constant window.WINDOW_EVENT_ICONFIED was misspelled. The correctly spelled event constant window.WINDOW_EVENT_ICONIFIED has been added. The old constant still works but will be removed in a future version. Please migrate any code using the old constant.

NEW: (#12806) ‘Speed up LiveUpdate archive creation’ by britzl
This change significantly speeds up live update archive creation by changing the underlying data structure holding the excluded files.

NEW: (#12870,#12869,#10721) ‘Add App Manifest options to exclude GUI, Particle FX, and Tilemaps’ by AGulev
Projects can now exclude the built-in GUI, Particle FX, and Tilemap subsystems from custom engines using new App Manifest settings. Each option removes the associated resources, components, and Lua module while preserving existing behavior for projects that do not enable the exclusions. Default engine configurations remain unchanged.

Release engine sizes with each option enabled independently:

Platform Configuration Size (bytes) Saved (bytes) Reduction
arm64-macos Regular 6,673,480
arm64-macos Without GUI 6,523,528 149,952 2.247%
arm64-macos Without Particle FX 6,623,544 49,936 0.748%
arm64-macos Without Tilemaps 6,656,856 16,624 0.249%
wasm-web Regular 2,397,812
wasm-web Without GUI 2,223,893 173,919 7.253%
wasm-web Without Particle FX 2,325,652 72,160 3.009%
wasm-web Without Tilemaps 2,380,879 16,933 0.706%

The macOS measurements use an arm64 release engine stripped with strip -x. The web measurements use the optimized, uncompressed release .wasm output before gzip or Brotli compression.

NEW: (#12842) ‘Bob performance improvements’ by britzl
Performance improvements when building large projects using Bob.

NEW: (#12397) ‘Added graphics.webgl_version_hint’ by britzl
Added graphics.webgl_version_hint to be able to select a WebGL 1 context even when the device supports WebGL 2. This may be useful in scenarios when the WebGL 2 implementation or reported extensions contain bugs or inconsistencies.

NEW: (#12765,#12764,#12763,#12762,#12761,#12760) 'Added support for Rich Text ’ by JCash, defold-services
This feature allows you to modify the displayed text with colors, styles, images and animations.
We support a first set of tags:

  • color
  • size
  • gradient
  • underline / strike
  • outline / shadow
  • shake / wave
  • sprite
  • link
  • style

pr

Notes

  • Rich Text is supported by default. If you do not need it, you can remove it via an App Manifest.
  • Soon, we’ll also support font modifiers like font family, italic, bold
  • The sprite and link tags aren’t handled by the label/gui, but can be retrieved via Lua

NEW: (#12663,#8854,#8718) ‘Fix GUI flipbook cursor behavior’ by AGulev
GUI flipbook animations now respect the requested offset when playback is set to None, allowing static animations to display the selected frame consistently with sprites. Backward animations also start on the correct frame immediately, including when chained from a completion callback, and cloned GUI nodes preserve the current backward-animation position.

NEW: (#12054,#12004) ‘Update to Protobuf 35.1’ by JCash, defold-services
Updated the Protobuf library to 35.1. It is used in our content pipeline for loading/saving content.

NEW: (#12979) ‘Optimized physics messages sent to Lua’ by JCash
We improved the physics message dispatch performance from the engine to Lua.
It improves regular per-message callbacks as well as batches sent to the physics listener.

Fixes: Improve physics message dispatch performance · Issue #12979 · defold/defold · GitHub

NEW: (#12525,#9656,#8686) ‘Add Bullet3D Lua API’ by AGulev
Adds a bullet3d Lua API for accessing and controlling Defold’s 3D physics worlds, collision objects, rigid bodies, shapes, and constraints. Scripts can now create hinge and other 3D joints, modify body and shape properties, inspect contacts and overlaps, and perform immediate or deferred ray and convex-shape casts, including closest-hit queries.

  • bullet3d — retrieve the current world, collision objects, rigid bodies, and bundled Bullet version.
  • bullet3d.world — configure gravity, enumerate objects, perform overlap and contact queries, and run immediate or deferred ray and convex-shape casts.
  • bullet3d.collision_object — control transforms, activation, friction, restitution, CCD, flags, and collision filters.
  • bullet3d.rigid_body — control mass, inertia, velocity, damping, gravity, factors, sleeping, forces, impulses, and AABBs.
  • bullet3d.shape — inspect and modify sphere, box, capsule, and convex-hull geometry and local transforms.
  • bullet3d.constraint — create, configure, query, and destroy 3D constraints, including limits, motors, and springs.

NEW: (#11654) ’ Fix Protobuf warning on Java 25’ by AGulev
Bob no longer reports terminally deprecated sun.misc.Unsafe usage when building projects with Java 25.

NEW: (#11036) ‘Add sample count setting for multisampled render target attachments’ by Jhonnyg
Added configurable FSAA sample counts to render targets and implemented multisampled render targets with automatic color resolving. The sample count applies to all color, depth, and stencil attachments in the render target.

Example

local target = render.render_target({
    sample_count = 4,

    [graphics.BUFFER_TYPE_COLOR0_BIT] = {
        format = graphics.TEXTURE_FORMAT_RGBA,
        width = 1280,
        height = 720
    },

    [graphics.BUFFER_TYPE_DEPTH_BIT] = {
        format = graphics.TEXTURE_FORMAT_DEPTH,
        width = 1280,
        height = 720
    }
})

The same render-target-level sample_count setting is available for .render_target resources in the editor.
Requested sample counts are normalized to a value supported by the active graphics adapter. The effective value is available through resource.get_render_target_info().

NEW: (#12816) ‘Create a constant buffer snapshot when issuing render.draw’ by Jhonnyg
Fixed an issue where render.draw() and render.dispatch_compute() is reusing and modifying the same buffer between submissions. This caused earlier commands to observe its final values instead of the values present when submitted.

We now generate a snapshot of the constant-buffer data when each command is queued. Every draw or compute dispatch now uses the constants supplied at submission time and not the “last seen” constant values.

FIX: (#12743) ‘Fix how data size calculated for block compressed textures’ by ekharkunov
This fixes an issue with how the bits per pixels are calculated for compressed textures to avoid runtime errors when transcoding textures.

FIX: (#12780) ‘Do not reverse hash generated gui node ids’ by AGulev, britzl
It is possible to run out of memory during long debug sessions if the game is cloning and deleting large amounts of gui nodes. The reverse hash table will in this case constantly grow and run out of memory when SetCapacity() is called. To avoid this situation generated node ids are no longer stored in the reverse hash lookup table.

FIX: (#12614) ‘Accept uppercase file extensions for referenced resources’ by britzl
This change makes sure that the build process can successfully build referenced resources with uppercase file extensions such as image.PNG.

FIX: (#12036) ‘Updated to Clang 20 for Linux builds’ by JCash, ekharkunov
This change updates to Clang 20 for Linux builds. The version matches the version we use on our cloud build server (note that the supported Linux version is still Ubuntu 22.04).

FIX: (#12844) ‘Fix issue with compressed ETC1 texture in mobile Safari’ by ekharkunov
This fix checks if device supports ETC2 and upload texture as ETC2 instead of ETC1.

FIX: (#12846) ‘Fix collapsed canvas on reboot’ by ekharkunov
This fixes an issue when a call to sys.reboot() in a web build caused the screen to become empty until first window resize event.

FIX: (#12850) ‘Fix issue with fullscreen window size and display scale other than 100%’ by britzl
This fixes an issue on Windows and Linux with the recently introduced new windowed fullscreen mode. The engine would size the window to the physical monitor and then on top of that apply display scale causing the fullscreen window to become larger (or smaller) than the monitor size depending on the OS display scale setting.

FIX: (#12877) ‘Fix crash when add font glyph to cache’ by ekharkunov
This fixes a crash when the font glyph cache is updated.

FIX: (#12868) ‘Fix transcoding of non-RGBA uncompressed texture arrays’ by ekharkunov
Fix how graphical transcoder pass non-RGBA data to the consumers

FIX: (#12896) ‘Fix sound exhaustion when Web Audio is unavailable’ by AGulev
HTML5 games now continue advancing sounds silently when the browser cannot create or run a Web Audio context. This prevents completed sounds from occupying all configured sound instances. When audio becomes available, output recovers automatically and active sounds continue from their current logical position.

FIX: (#12758) ‘Normalize the gamepad name in dmHID::GetGamepadDeviceName()’ by JCash
The user facing gamepad name now is trimmed of whitespace:
E.g. 'USB Joystick ' will now show as 'USB Joystick'.

FIX: (#12264) ‘Add OpenType CFF font support’ by JCash, defold-services
This change adds .otf font support as well as TrueType glyf and OpenType CFF1/CFF2 outlines in both legacy and full-shaping engines. The TrueType SDF generation has been optimized by 3.6x-5.9x. Full text shaping speed has improved by 17-18%

Fixes: Weird font displaying while using font generation · Issue #12264 · defold/defold · GitHub
Fixes: Runtime-generated 96 px distance-field IBM Plex Mono font crashes the OpenGL renderer · Issue #12901 · defold/defold · GitHub

FIX: (#12901) ‘Fix for font glyph ascent being a negative value’ by JCash
This fixes a crash when the font glyph ascent is a negative value.

FIX: (#12680) ‘Fix Linux territory detection for encoded locales’ by AGulev
Linux builds now report the correct territory when the system locale includes a character encoding or modifier. For example, LANG=en_GB.UTF-8 now produces sys.get_sys_info().territory == "GB" instead of "8".

FIX: (#3247) ‘Report locale data consistently across platforms’ by AGulev
sys.get_sys_info() now consistently separates locale identifiers into language, device_language, and territory. For example, zh-Hans-AU produces zh, zh-Hans, and AU, while platform-specific locale metadata no longer leaks into these fields.

FIX: (#12602) ‘Changed Host header of the http request to use URI’s authority component’ by CodeForBeauty
The HTTP implementation had an issue with Host header. The header didn’t include the target port. Per RFC 9110 the header Host should include the target host and optionally target port. RFC 9112 §3.2 further specifies that the header Host should include the authority component of the uri excluding the userinfo.

FIX: (#12773) ‘Improve OpenGL shader compilation error reporting’ by AGulev
Shader compilation and linking failures on OpenGL and WebGL now produce actionable resource errors containing the shader stage, source path, and graphics-driver diagnostics. Invalid shader handles are no longer passed to WebGL, preventing misleading attachShader JavaScript exceptions.

FIX: (#12977) ‘Improved DDF encode/decode performance’ by JCash
Improved DDF (our internal message format) encoding and decoding performance, including up to 4.7× faster small-message decoding and 17% faster repeated-field decoding. Recursive message encoding is significantly faster: up to 95× in deep-message benchmarks.

FIX: (#12973) ‘Added support for cross repo source builds’ by JCash
Added support for cross repo builds for Switch and Playstation as well.

How to add a private repo side-by-side:

$ cd ./path/to/defold
defold$ ./scripts/build.py shell

defold$ ./scripts/build.py add_private_repo \
    --platform=<platform> \
    --private-repo=/absolute/path/to/private-repo

defold$ ./scripts/build.py install_ext --platform=<platform>
defold$ ./scripts/build.py build_engine --platform=<platform>

The config file for the mappings is .defold-platforms.

FIX: (#12976,#9941) ‘Replace Android ProGuard configuration with R8’ by AGulev
Android projects can now enable Java shrinking, optimization, and obfuscation with R8 by selecting a .keep rules file. Projects without one continue using D8, while the new built-in dmengine.keep provides safe defaults without the errors caused by the obsolete ProGuard configuration.

FIX: (#9102) ‘Fix slice 9 vertical and horizontally flipping sprites and GUI nodes’ by Jhonnyg
Vertically and horizontally flipping sprites and GUI nodes has now been fixed when slice-9 is being used.

FIX: (#12988) ‘Merge custom resources from extensions’ by Jhonnyg
Added support for allowing native extensions to contribute custom resources through their ext.properties files:

[project]
custom_resources.default = /extension_assets

These resources are automatically merged with custom resources declared by the project and by other extensions. They are then copied and included in Bob archives and Editor builds. This removes the need for users to manually duplicate an extension’s required custom-resource paths in game.project.

FIX: (#12677) ‘Use active override material to calculate correct vertex buffer capacity’ by Jhonnyg
Fixed an issue where the vertex memory for sprites were allocated based on the sprite’s own material. When the render script overrides the material that has a different vertex layout, this could cause the vertex attribute write functions to write past the buffer limits, causing an engine crash. This has now been addressed by taking the layout of the override material into account.

FIX: (#12997) ‘Update to Bullet 3D v3.25’ by JCash, defold-services
This is an internal update of Bullet 3D v3.25 The new version includes stability and performance fixes.

FIX: (#13027) ‘Added dmArray::EnsureSize() to dmSDK’ by JCash
This function helps with the common pattern:

if (array.Capacity() < size)
{
    array.SetCapacity(size);
}
array.SetSize(size);

FIX: (#13016) ‘Refactor VkQuality integration to skip the java glue code’ by Jhonnyg
Fixed a crash happening inside the VkQuality library (which automatically picks OpenGL or Vulkan) on some devices. This has been fixed by running the VkQuality assessment later during the initialisation phase of the application.

FIX: (#9043) ‘Fix HTML5 size verification’ by ekharkunov
This fixes a long standing issue with size verification of downloaded files in an HTML5 build. The engine loader will now also retry downloaded if file verification failed. It is also possible to completely disable size verification by checking html5.verify_downloaded_file_size property in game.project.

FIX: (#13038) ‘Fix Android bundling for the x86_64 architecture when stripping executables’ by ekharkunov
Bundling an Android app for the x86_64 architecture no longer fails when executables are stripped.

Editor

NEW: (#7186) ‘Show release notes during update process and bundle with the editor’ by JosephFerano
After pressing “Update Available”, you will have a list of changes available so you know what you are getting when updating. Release notes can also be viewed now from the editor from Help > Release Notes.

Screenshot from 2026-07-10 19-07-49

NEW: (#12708) ‘Add /command/compile and /command/run endpoints to editor server’ by vlaaad
Now, third-party IDEs and coding agents can compile the project without running it.

NEW: (#8297) ‘Improve property view and form tooltips’ by vlaaad
The editor now shows more useful information in its tooltips.

NEW: (#12707) ‘Allow running games without taking focus’ by AGulev
The editor’s run HTTP command can now launch or reboot a game without taking focus by passing focus=false. Existing workflows remain unchanged because games continue to start focused by default.

NEW: (#12727) ‘Show multiple notifications at once’ by vlaaad
The editor now has enough useful notifications that many may be emitted at the same time. Previously, we showed only 1 at a time; now we show up to 3, with an indicator if there are more.

Screenshot 2026-07-22 at 13 08 36

NEW: (#10913) ‘Quit Defold if the project folder was removed or moved’ by vlaaad
If a project directory is removed or renamed, the Defold editor can no longer be used. Previously, the editor raised an exception in such cases. Now, we show a dialog informing the user that the editor will quit:

Screenshot 2026-07-22 at 14 31 37

NEW: (#12472) ‘Remember scene settings and camera state, better camera and grid defaults’ by JosephFerano
This change persists scene settings and camera state:

  • Camera state (2D/3D, position, rotation, zoom, etc;) is now remembered for every resource. If a resource tab is closed (like collection, atlas, go, etc;) or the editor is restarted, the camera will restored to the state it was in.
  • Scene visibility settings are also now per scene and remembered. The visibility for one collection can be different from another.
  • 3D resources (such as model, gltf/glb,mesh, etc;) now start in perspective mode
  • Grid settings now remember if working in a 2D or 3D scene. When the 2D button is toggled the grid settings will change to whatever was configured for that specific mode.

NEW: (#12671,#8919) ‘Support text shaping preview in Editor’ by JCash
We now use engine runtime to render fonts in editor. This helps us keep the same visuals in both editor and at runtime, e.g. for RTL text (arabic) or similar.

NEW: (#12841) ‘Format document LSP call with command shortcuts’ by JosephFerano
You can now format your whole Lua script with Alt+Shift+F

NEW: (#12918) ‘Add editor script API to open code resources at a particular line’ by vlaaad
We added 2 optional arguments to the editor.ui.open_resource function: view and args.

For example, to open a script at line 10, you can use the following code:

-- 1-indexed line
editor.ui.open_resource("/my/script.lua", "code", { line = 10 })
-- same thing, but with explicit 1-indexed column
editor.ui.open_resource("/my/script.lua", "code", { line = 10, column = 1 })

You can also select a particular range of text by providing from and to cursor positions:

-- select line 10, columns 1 to 12
editor.ui.open_resource("/my/script.lua", "code", {
    from = { line = 10, column = 1 },
    to = { line = 10, column = 12 }
})

NEW: (#12611) ‘Editor uses the latest Basic 3D template’ by Jhonnyg
The “Basic 3D” template has now been updated to use the new light components.

NEW: (#8420) ‘Add new text property type’ by Jhonnyg
Scripts can now declare text properties with go.property(), edit and override them using a multi-line text field in the editor, and access them like other script properties at runtime.

Text properties support UTF-8 and newline characters:

go.property("greeting", "Hello!\nWelcome to the game.")

function init(self)
    print(self.greeting)

    -- Label text is now a regular component property.
    go.set("#label", "text", self.greeting)
    local label_text = go.get("#label", "text")
end

Text property defaults and overrides can be configured on script components in game objects and collections.

:warning: label.set_text() and label.get_text() are now deprecated in favor of go.set() and go.get() using the label’s “text” property. The deprecated functions have not been removed and remain available for backward compatibility.

  • Adds a multi-line editor control for text script properties.
  • Supports text property defaults and overrides in game objects, embedded instances, and collections.
  • Preserves UTF-8 and multi-line values through saving and building.
  • Rejects embedded NUL characters with a validation error.
  • Adds parser and integration coverage for editing, overriding, resetting, saving, and building text properties.

NEW: (#6895) ‘Add validated Lua API type annotations to the editor’ by AGulev, vlaaad
Defold now ships accurate Lua annotations for game and editor scripts and uses them with the upstream Lua Language Server. This enables Defold-aware completions and diagnostics, including editor.* functions and constants, recognizes built-in types such as hash, url, and vectors, and prevents invalid API documentation from being published.
CleanShot 2026-08-20 at 19 13 38@2x

CleanShot 2026-08-20 at 19 16 20

NEW: (#12867) ‘Added support for 3D collision meshes’ by JCash
With this change, the user can select a generic 3D mesh as a collision shape.
It helps when you want detailed collision on buildings and level geometry.

  • Added mesh property to the Model component
  • Added mesh collision shape type

New Lua constants:

  • physics.SHAPE_TYPE_MESH
  • bullet3d.shape.SHAPE_TYPE_MESH

Fixes: Static concave (triangle mesh) collision shape for 3D physics · Issue #12867 · defold/defold · GitHub

NEW: (#12916,#12829) ‘Make editor endpoints await command completion’ by vlaaad, matgis
Now, /command/build-html5, /command/debugger-start and /command/hot-reload endpoints return structured results upon completion.

NEW: (#13024) ‘Return target URL when launching a game using editor HTTP API’ by vlaaad
Now, the editor HTTP API returns the engine URL when running a game, allowing agents and third-party tools to find it more easily. Previously, finding the URL required parsing the engine log.

Example:

curl -sS -X POST "http://127.0.0.1:$(cat .internal/editor.port)/command/run" | jq
{
  "success": true,
  "issues": [],
  "target": {
    "url": "http://127.0.0.1:58715"
  }
}

NEW: (#11527,#12993) ‘Format on save with option’ by JosephFerano
Using the new LSP format document/format region feature Alt + Shift + F, there is now an option in Preferences > Code for running the formatter for all files on save. This option is disabled by default and must be enabled.

image

FIX: (#12552) ‘Fix exception that sometimes pops up when using the editor’ by vlaaad
Sometimes, using the editor can result in null pointer exceptions. Now we prevent this error from occurring.

FIX: (#12698) ‘Fix exception when zooming in on an animation preview too much’ by vlaaad
Previously, excessive zooming could cause the animation preview in a scene view to become too large, causing GL errors. Now, we limit the size by the viewport.

FIX: (#11299) ‘Notification when editor behavior is disabled after error’ by JosephFerano
On rare occasions whenever the editor encountered an error, the editor might lose functionality. There is now a notification in such a case that will let you attempt to re-enable the disabled parts and optionally restart the editor as well. There’s also a function available for coding agents to attempt the same recovery.

image

FIX: (#5875) ‘Fix infrequent exception when dragging items into editor on macOS’ by vlaaad
Sometimes, dragging files from Finder into the editor could result in an exception. This should no longer happen.

FIX: (#12726) ‘Reject invalid characters in resource inputs’ by vlaaad
It was never allowed to create resources with invalid characters like “:” in the name, but now it’s also explicitly disallowed by the editor to select such resources in properties views. Previously, using some invalid characters would result in exceptions thrown in the editor.

FIX: (#11509) ‘Validate that welcome project files are actually game.project files’ by vlaaad
It’s possible to attempt to open a non-game.project file in the editor, which poisons the welcome screen and may make it very slow to open. Now the issue is fixed.

FIX: (#11794) ‘Filtered “Search in Files” search speed improvement’ by JosephFerano
When preparing search results, the editor would grab all textual resources without considering excluded file types from the search. Now the search dialog will only prepare the included file types for scanning, improving the speed at which results can start.

FIX: (#12887) ‘Add “skip this release” button’ by JosephFerano
Currently, there’s no way to skip a new release of Defold so the “Update Available” status goes away, instead it will sit there forever until the user decides to upgrade. This PR adds a “skip” button in the release notes dialog as well as a context menu entry in “Help > Check for Updates” to allow the user to upgrade if they change their minds. For stable, this will effectively skip a Defold minor version (unless there’s a patch release), but for alpha/beta, new releases means you will still get prompted for new releases in the same version.

FIX: (#12889) ‘Per-channel update bundle directories’ by JosephFerano
For users with multiple editor installations with different channels (alpha, beta, stable), downloading an update for one channel would clobber another. This PR now saves the bundle per channel so they can be downloaded and installed independently.

FIX: (#12670) ‘Fix right click context menu not showing selected object in scene’ by JosephFerano
This fixes an issue when right clicking on an object in a scene view, the first click does not include the recently selected object it seems, so “Show/Hide Selected Objects” appears disabled.

FIX: (#11928,#11492,#7618) ‘Improve material resource view UX’ by JosephFerano
We now use a different layout for the material vertex/fragment constants and samplers to make it easy to edit values.

image

FIX: (#12927) ‘Fix markdown performance degradation with very large images’ by JosephFerano
This change improves performance when viewing markdown files containing large images.

FIX: (#12951) ‘Fix LSP document symbols race condition when starting editor’ by JosephFerano
Sometimes script files could load first before Lua LSP had a chance to finish loading so the structure pane and Jump to Symbol would not work until modifying the file.

31 Likes

Wow, awesome update! The more I scrolled, the happier I got! It felt like unwrapping a bunch of Christmas presents :smiley: If you’re interested, my personal favorites are:

NEW: (#12525,#9656,#8686) ‘Add Bullet3D Lua API’ by AGulev
Adds a bullet3d Lua API for accessing and controlling Defold’s 3D physics worlds, collision objects, rigid bodies, shapes, and constraints. Scripts can now create hinge and other 3D joints, modify body and shape properties, inspect contacts and overlaps, and perform immediate or deferred ray and convex-shape casts, including closest-hit queries.

This fixes my issue with doors in 3D games. I mean, I had found a workaround by writing a proper script, but hinges support will be a game changer! Also, being able to inspect overlaps and raycast will help me fix at least two bugs right away in my current game. I’ve been aware of them for a while, but so far I haven’t been able to find an elegant solution for them.

NEW: (#8420) ‘Add new text property type’ by Jhonnyg

Love it! This limitation could easily be worked around, but sometimes I just want a plain text property :smiley:

NEW: (#6895) ‘Add validated Lua API type annotations to the editor’ by AGulev, vlaaad

Wonderful!

NEW: (#12867) ‘Added support for 3D collision meshes’ by JCash

That will also greatly improve my newest project.

Unfortunately, I won’t be able to test the new features until mid-October, but I still can’t wait to try them :slight_smile:

8 Likes

Congratulation! :partying_face:

2 Likes

Thank You!!
This was the main headache when I was developing an FPS template and even left it unfinished because handling the collisions was just making the process too difficult. This, alongside the light components, will make Defold a more viable 3D engine!

Also, could not see it on notes but being able to select a mesh from a scene for models will also make things a lot better :slight_smile: :down_arrow:

image

Again, thank you for the hard work and improving Defold with every new release :confetti_ball:

8 Likes

If you are building for Android, please try this feature by setting a keep file for that field in game.project—it will help reduce APK size in cases where you use ads, analytics, or other SDKs with Gradle dependencies.

However, make sure you have updated your extensions to the latest version if you are using Defold Foundation extensions, since we have updated all of them by adding a keep file. If you are using your own extensions, add a keep file that forces R8 to keep the classes you are using through JNI.

2 Likes

Thank you for the update. Just checking my projects. With the new beta outlines defined in fonts do not get rendered. All text in the status should have a black outline. In the font it is defined with a size of 4. I’ve disabled richtext support in the manifest

4 Likes

Thanks for this, a useful improvement. I increase the font size to 18px (in the editor.css); this does mean that the tails of letters get very slightly truncated (which is OK). Are there any plans to accommodate larger fonts? 24px get sliced in half, however this is not an issue for me as I don’t need to go this large. 24px:

5 Likes

Wow, Look at all these additions and improvements! Stoked to test them all out! Kudos to all the people who contributed!

I love that it does this now upon first boot: (Showing all the changes through a Markdown file)

4 Likes

Also font spacing has changed. Below 1.13.2, above 1.13.1.

2 Likes

Would you mind creating a ticket on github?
If possible, it would be great if you could add a repro case project too, which will speed up the trouble shooting .

1 Like

I can reproduce it and I have added a ticket: Default font outlines seem to have disappeared · Issue #13176 · defold/defold · GitHub

1 Like

I’ve added a screenshot and a short demo for it. With the new RTF features going back a version is not easy anymore, as the font structure has changed. I had to manually delete the new styles settings.

1 Like

I already have a repro/fix for the outline.

Need to figure out how to reproduce the other layout change though

Is there anywhere we can find a documentation for the new API?
Awesome update!

Select the “beta” section (bottom left of the api page), then browse the Lua section for bullet3d namespace:

3 Likes

I cannot reproduce this issue.
Please add a repro case project to the ticket in order for us to take a look!

My dialog system is based on this extension: Defold Typewriter
I think it has something to do with the resource.get_text_metrics in the code. I can check and do a repro next week. But I’ve uploaded a demo on Github regarding outline/shadow and spacing differences betwen 1.13.1 and 1.13.2.

I cannot build (Ctrl + M, Ctrl + B and F5) this specific project using Defold 1.13.2 BETA. Project Zip attached since it was a game jam game.

I can build other projects just fine, its only this specific one and it works on Defold 1.13.1 with no issue.

That was an earlier screenshot, I removed the blip extension and still got errors from an unknown source, as well as my own scripts

Re-create appmanifest, it should help