Defold 1.11.2 has been released

Localisation of the Editor!

We’ve started localizing the editor UI! While the process isn’t fully complete yet, many parts of the editor have already been translated — and we’re looking for localization contributors.

We host our localization project on Crowdin. Join the project, choose the language you’d like to contribute to, and start translating the editor strings directly in Crowdin. All UI text is stored in the en.editor_localization source file, and Crowdin automatically exports the translated files back into the repository.

If your language is missing, use the Request language option in Crowdin, and we’ll add it for you. When translating, make sure to preserve placeholders such as {template} exactly as they appear in the source string — we use the ICU message format for variable interpolation.

Once translations are approved in Crowdin, they will be automatically incorporated into the editor.

Summary

  • NEW: (#6553) Add gui.cancel_animations() to cancel one or all animation(s) at the same time (by JCash)
  • NEW: (#11281) Add Dualsense driver mapping for Linux (by wfzyx)
  • NEW: (#11360) Simplify dmGraphics::IsTextureType3D(TextureType) (by vil02)
  • NEW: (#7930) Automatically save any changes in the editor whenever it loses focus (by AGulev)
  • NEW: (#8495,#11007) Enhanced the orthographic camera behavior in the editor for better usability and accuracy (by AGulev)
  • FIX: (#11298) Issue 11298 resolve sound deadlock on Windows (by deurell)
  • FIX: (#11330) Add caching for the “vanilla” engine when downloaded through Bob.jar to avoid repeated downloads (by AGulev)
  • FIX: (#11356) Provide debug symbols for all HTML5 target architectures and build configurations (by AGulev)
  • FIX: (#11366) HTML5 profiler now reports the correct memory usage (by smagnuso)
  • FIX: (#11315) Add support for running the Android tools in bob from the commandline (by britzl)
  • FIX: (#11380) Added dmResource::GetWithExt() to dmsdk for more robust resource loading (by JCash)
  • FIX: (#9917) Fix frustrum culling for sprites with pivot point (by ekharkunov) Removed from release
  • FIX: (#11397) Fix for when bitmap font uses 4 channels which caused a crash (by JCash)
  • FIX: (#11290) Fix Tile Source Collision Group colors in Outline (by matgis)
  • FIX: (#11314) Feed positions and normals to all vertex attributes with a matching semantic-type (by matgis)
  • FIX: (#7713) Ensure the camera component icon (gizmo) maintains a pixel-stable size on screen (by AGulev)
  • FIX: (#11365) Update welcome screen for better discoverability. (by AGulev)
  • FIX: (#11438) Editor: Fix page count mismatch detection and error message for sprites (by matgis)

Engine

NEW: (#6553) ‘Add gui.cancel_animations() to cancel one or all animation(s) at the same time’ by JCash
We’ve renamed the function to better match go.cancel_animations()
The function can now cancel a single animation of a node, or all animations at the same time:

gui.cancel_animations(node, "position.x") -- cancel a single animation
gui.cancel_animations(node) -- cancel all animations

:warning: The old function gui.cancel_animation() is now deprecated. Please use the new one instead!

NEW: (#11281) ‘Add Dualsense driver mapping for Linux’ by wfzyx

NEW: (#11360) ‘Simplify dmGraphics::IsTextureType3D(TextureType) by vil02
This resolves misc-redundant-expression.

I did not observe more warnings of that type in defold code.

FIX: (#11298) ‘Issue 11298 resolve sound deadlock on Windows’ by deurell
Resolve sound deadlock on Windows when disconnecting sound device.

FIX: (#11330) ‘Add caching for the “vanilla” engine when downloaded through Bob.jar to avoid repeated downloads’ by AGulev
To keep Bob.jar lightweight, it doesn’t include all platform architectures and symbols. When needed, the “vanilla” engine is downloaded from the CDN.
This update introduces caching for those downloaded files in the .internal folder, avoiding repeated downloads on each bundle.

FIX: (#11356) ‘Provide debug symbols for all HTML5 target architectures and build configurations’ by AGulev
HTML5 symbols are now provided for all build types and platforms: a folder <project_name>_symbols containing all symbols is created alongside the bundle.

FIX: (#11366) ‘HTML5 profiler now reports the correct memory usage’ by smagnuso
On HTML5, our in game profiler now returns the memory usage as reported by Emscripten.
This affects both our in game profiler Memory variable, as well as the profiler.get_memory_usage() Lua function.

FIX: (#11315) ‘Add support for running the Android tools in bob from the commandline’ by britzl
Added the ability to runaapt2 (Android Asset Packaging Tool), bundletool and jarsigner from the commandline.

java -cp bob.jar com.dynamo.bob.tools.AndroidTools aapt2 link --proto-format ....
java -cp bob.jar com.dynamo.bob.tools.AndroidTools jarsigner -verbose -keystore debug.keystore ...
java -cp bob.jar com.dynamo.bob.tools.AndroidTools bundletool build-apks --bundle= ...

FIX: (#11380) ‘Added dmResource::GetWithExt() to dmsdk for more robust resource loading’ by JCash
This allows the developer to pass in an expected extension, in order to make sure that the resources path passed in is the correct type. This is especially helpful if the code is data driven and the developer doesn’t know the resource path beforehand.

Documentation

FIX: (#9917) ‘Fix frustrum culling for sprites with pivot point’ by ekharkunov
Fixed culling for sprites with pivot points. Also implemented some optimization on how geometry data calculated and stored between batches. So no it should be a bit faster in terms of calculation but consume some memory to store cached information.

FIX: (#11397) ‘Fix for when bitmap font uses 4 channels which caused a crash’ by JCash

Editor

NEW: (#7930) ‘Automatically save any changes in the editor whenever it loses focus’ by AGulev
Introduced a new option that automatically saves all open files in the editor whenever it loses focus.

NEW: (#8495,#11007) ‘Enhanced the orthographic camera behavior in the editor for better usability and accuracy’ by AGulev

  • Orthographic camera gizmo size in the scene view reflects game.project display width/height and Orthographic Zoom.
  • Orthographic camera FOV is now disabled when Orthographic Projection is enabled.
  • Perspective-only fields are disabled in orthographic mode.
  • Orthographic Zoom must be greater than zero; invalid values show an error.

FIX: (#11290) ‘Fix Tile Source Collision Group colors in Outline’ by matgis

FIX: (#11314) ‘Feed positions and normals to all vertex attributes with a matching semantic-type’ by matgis
The editor now supplies positions and normals to all vertex attributes with a matching semantic type when rendering objects in the Scene View. This reverts a change introduced in #10635, which caused a regression for shaders that make use of both world-space and local-space attributes of the same semantic type.

FIX: (#7713) ‘Ensure the camera component icon (gizmo) maintains a pixel-stable size on screen’ by AGulev
Ensure the camera component’s icon in the editor stays a constant size regardless of scene scale.

FIX: (#11365) 'Update welcome screen for better discoverability. ’ by AGulev
Moved the Templates, Samples, and Tutorials sections from a submenu to the root level to improve discoverability and make them easier to access.

CleanShot 2025-10-16 at 16 20 42@2x

FIX: (#11438) ‘Editor: Fix page count mismatch detection and error message for sprites’ by matgis
Fix issue where paged Materials were erroneously detected as unpaged when inspecting Sprite properties.

21 Likes

Thank you for the constant updates :slight_smile:

I really like this new welcome screen. It gives the engine a much better first impression!

6 Likes

Yeah, thanks for the constant updates! :heart:


Updated Docker image for CI is ready: docker pull mattpwest/defold:1.11.2 .

1 Like

I’m getting a segfault since this patch at launch of the local dmengine.
First I thought it’s my native extension but even after removing it I still got the segfault.
I then installed an older version via steam (1.11.0) and it works with and without my native extension.
I’m on Fedora Linux 42 and I also cleared all files in $HOME/.local/state/Defold/ in between version changes.

I traced the segfault via trial and error to the game.input_binding file. When I overwrite it with the one from the mobile template it doesn’t crash anymore. I will research more tomorrow.

EDIT: `GAMEPAD_CONNECTED` is the culprit.

I don’t have any gamepads connected but on my Fedora Linux setup almost everything gets discovered as gamepad:

WARNING:INPUT: No gamepad map found for gamepad 0 (Chicony Perixx Ergo Keyboard Consumer Control). The raw gamepad map will be used.
WARNING:INPUT: No gamepad map found for gamepad 1 (Logitech USB Receiver Consumer Control). The raw gamepad map will be used.
WARNING:INPUT: No gamepad map found for gamepad 2 (Logitech K400 Plus). The raw gamepad map will be used.
WARNING:INPUT: No gamepad map found for gamepad 3 (Logitech MX Vertical). The raw gamepad map will be used.
WARNING:INPUT: No gamepad map found for gamepad 4 (Logitech MX Vertical). The raw gamepad map will be used.

Is this not happening on Defold 1.11.0?

Are you able to share the project? I also get crashes on some projects with 1.11.2 on my Bazzite distro (which is Fedora-based), and would like to see if our issues might be related.

If your language is missing, use the Request language option in Crowdin, and we’ll add it for you.

Hello, I’m new to Defold. I would like to translate the UI to Italian but when I click on request button, it says that I must be part of the team.

1 Like

@britzl This only happens on 1.11.2 the previous versions are fine.

@ackle It is quite easy to reproduce. You can just take the empty project template and add this to the game.input_binding file:

gamepad_trigger {
  input: GAMEPAD_CONNECTED
  action: "Connected"
}

I’ve also added a minimal example to this post.

defold_crash_reproduction.zip (1.8 KB)

Can you share the log w the stacktrace as well?

The standard output is not really interesting:

Console
INFO:DLIB: Log server started on port 37887
INFO:ENGINE: Target listening with name: fedora - fe80::896d:fc45:19ee:c9c2 - Linux
INFO:ENGINE: Engine service started on port 8001
INFO:GRAPHICS: Installed graphics device 'ADAPTER_FAMILY_OPENGL'
INFO:ENGINE: Defold Engine 1.11.2 (a6d86c0)
INFO:PROFILER: Initialized Remotery (ws://127.0.0.1:17815/rmt)
INFO:ENGINE: Loading data from: build/default
Registered sim_input Extension
INFO:SOUND:   DSP backend: Fallback
INFO:SOUND: Sound
INFO:SOUND:   nSamplesPerSec:   48000
INFO:SOUND:        useThread:   1
INFO:ENGINE: Initialised sound device 'default'
WARNING:INPUT: No gamepad map found for gamepad 0 (GameSir-Dongle). The raw gamepad map will be used.
WARNING:INPUT: No gamepad map found for gamepad 1 (Chicony Perixx Ergo Keyboard Consumer Control). The raw gamepad map will be used.
WARNING:INPUT: No gamepad map found for gamepad 2 (Logitech K400 Plus). The raw gamepad map will be used.
WARNING:INPUT: No gamepad map found for gamepad 3 (Logitech MX Vertical). The raw gamepad map will be used.
WARNING:INPUT: No gamepad map found for gamepad 4 (Logitech USB Receiver Consumer Control). The raw gamepad map will be used.
WARNING:INPUT: No gamepad map found for gamepad 5 (Logitech MX Vertical). The raw gamepad map will be used.
Segmentation fault (core dumped)

So I ran the application in gdb but even though I ran dmengine with debug symbols the strack trace did not show anything interesting because of JIT was my guess. So I ran dmengine with `DMENGINE_NO_JIT=1` and now there was finally some info:

gdb

[Thread debugging using libthread_db enabled]
Using host libthread_db library “/lib64/libthread_db.so.1”.
[New Thread 0x7ffff73de6c0 (LWP 202973)]
INFO:DLIB: Log server started on port 42209
INFO:ENGINE: Target listening with name: fedora - fe80::896d:fc45:19ee:c9c2 - Linux
INFO:ENGINE: Engine service started on port 8001
INFO:GRAPHICS: Installed graphics device ‘ADAPTER_FAMILY_OPENGL’
INFO:ENGINE: Defold Engine 1.11.2 (a6d86c0)
[New Thread 0x7ffff6fff6c0 (LWP 202974)]
INFO:PROFILER: Initialized Remotery (ws://127.0.0.1:17815/rmt)
[New Thread 0x7ffff61bf6c0 (LWP 202975)]
[New Thread 0x7ffff587d6c0 (LWP 202976)]
[New Thread 0x7ffff507c6c0 (LWP 202977)]
[New Thread 0x7ffff487b6c0 (LWP 202978)]
[New Thread 0x7fffd63ff6c0 (LWP 202979)]
[New Thread 0x7fffd5bfe6c0 (LWP 202980)]
[New Thread 0x7fffd53fd6c0 (LWP 202981)]
[New Thread 0x7fffd4bfc6c0 (LWP 202982)]
[New Thread 0x7fffaffff6c0 (LWP 202983)]
[New Thread 0x7fffaf7fe6c0 (LWP 202984)]
[New Thread 0x7fffaeffd6c0 (LWP 202985)]
[New Thread 0x7fffae7fc6c0 (LWP 202986)]
[New Thread 0x7fffadffb6c0 (LWP 202987)]
[New Thread 0x7fffad7fa6c0 (LWP 202998)]
INFO:ENGINE: Loading data from: build/default
Registered sim_input Extension
[New Thread 0x7ffff405a6c0 (LWP 202999)]
[New Thread 0x7ffff40386c0 (LWP 203000)]
[New Thread 0x7fffe1fff6c0 (LWP 203001)]
[New Thread 0x7fffe1fdd6c0 (LWP 203002)]
[New Thread 0x7fffd405c6c0 (LWP 203003)]
[New Thread 0x7fffad3786c0 (LWP 203004)]
[New Thread 0x7fffad09b6c0 (LWP 203005)]
[New Thread 0x7fff77fff6c0 (LWP 203006)]
[New Thread 0x7fff777fe6c0 (LWP 203007)]
[New Thread 0x7fff76ffd6c0 (LWP 203008)]
[New Thread 0x7fff767fc6c0 (LWP 203009)]
INFO:SOUND: DSP backend: Fallback
[New Thread 0x7fffac65d6c0 (LWP 203010)]
INFO:SOUND: Sound
INFO:SOUND: nSamplesPerSec: 48000
INFO:SOUND: useThread: 1
INFO:ENGINE: Initialised sound device ‘default’
WARNING:INPUT: No gamepad map found for gamepad 0 (GameSir-Dongle). The raw gamepad map will be used.
WARNING:INPUT: No gamepad map found for gamepad 1 (Chicony Perixx Ergo Keyboard Consumer Control). The raw gamepad map will be used.
WARNING:INPUT: No gamepad map found for gamepad 2 (Logitech K400 Plus). The raw gamepad map will be used.
WARNING:INPUT: No gamepad map found for gamepad 3 (Logitech MX Vertical). The raw gamepad map will be used.
WARNING:INPUT: No gamepad map found for gamepad 4 (Logitech USB Receiver Consumer Control). The raw gamepad map will be used.
WARNING:INPUT: No gamepad map found for gamepad 5 (Logitech MX Vertical). The raw gamepad map will be used.

Thread 1 “Main” received signal SIGSEGV, Segmentation fault.
Download failed: Invalid argument. Continuing without source file engine/engine/engine/engine/src/engine.cpp.
0x000055555559a692 in dmEngine::GOActionCallback (action_id=, action=, user_data=) at engine/engine/src/engine.cpp:1732
warning: 1732 engine/engine/src/engine.cpp: No such file or directory
(gdb) bt full
#0 0x000055555559a692 in dmEngine::GOActionCallback (action_id=, action=, user_data=) at engine/engine/src/engine.cpp:1732
input_action = {m_ActionId = 562945700333067, m_Value = 1.83669591e-40, m_X = -nan(0x7fffff), m_Y = 1.79646463e-42, m_DX = 2.71291383e-42, m_DY = 1.87354782e-37,
m_ScreenX = 1.87354782e-37, m_ScreenY = 1.83669591e-40, m_ScreenDX = 1.83669591e-40, m_ScreenDY = 2.30093208e-42, m_AccX = 5.26888223e-43, m_AccY = 7.69312857e-43,
m_AccZ = 1.87366194e-37, m_Touch = {{m_TapCount = 1943, m_Phase = 858, m_X = 858, m_Y = 0, m_ScreenX = -1, m_ScreenY = -1, m_DX = 20, m_DY = 0, m_ScreenDX = 1627,
m_ScreenDY = 0, m_Id = 0}, {m_TapCount = 65535, m_Phase = 131071, m_X = -1, m_Y = 1, m_ScreenX = 1343, m_ScreenY = 0, m_DX = 1886, m_DY = 0, m_ScreenDX = 1880,
m_ScreenDY = 0, m_Id = 1268}, {m_TapCount = 1268, m_Phase = 125, m_X = 125, m_Y = 0, m_ScreenX = 253, m_ScreenY = 0, m_DX = 181, m_DY = 0, m_ScreenDX = -1,
m_ScreenDY = -1, m_Id = 864}, {m_TapCount = 864, m_Phase = 1196, m_X = 1196, m_Y = 0, m_ScreenX = 421, m_ScreenY = 0, m_DX = 1539, m_DY = 0, m_ScreenDX = 154,
m_ScreenDY = 0, m_Id = 662}, {m_TapCount = 662, m_Phase = 131071, m_X = -1, m_Y = 1, m_ScreenX = 197, m_ScreenY = 0, m_DX = -1, m_DY = -1, m_ScreenDX = 700,
m_ScreenDY = 0, m_Id = 969}, {m_TapCount = 969, m_Phase = 131071, m_X = -1, m_Y = 1, m_ScreenX = -1, m_ScreenY = -1, m_DX = 1514, m_DY = 0, m_ScreenDX = 1490,
m_ScreenDY = 0, m_Id = 603}, {m_TapCount = 603, m_Phase = 131071, m_X = -1, m_Y = 1, m_ScreenX = -1, m_ScreenY = -1, m_DX = 322, m_DY = 0, m_ScreenDX = -1,
m_ScreenDY = -1, m_Id = 0}, {m_TapCount = 65535, m_Phase = 131071, m_X = -1, m_Y = 1, m_ScreenX = 401, m_ScreenY = 0, m_DX = 2019, m_DY = 0, m_ScreenDX = 1492,
m_ScreenDY = 0, m_Id = 220}, {m_TapCount = 220, m_Phase = 131071, m_X = -1, m_Y = 1, m_ScreenX = 1545, m_ScreenY = 0, m_DX = -1, m_DY = -1, m_ScreenDX = -1,
m_ScreenDY = -1, m_Id = 212}, {m_TapCount = 212, m_Phase = 1489, m_X = 1489, m_Y = 0, m_ScreenX = 352, m_ScreenY = 0, m_DX = 46, m_DY = 0, m_ScreenDX = -1,
m_ScreenDY = -1, m_Id = 1499}, {m_TapCount = 1499, m_Phase = 1014, m_X = 1014, m_Y = 0, m_ScreenX = 195, m_ScreenY = 0, m_DX = 561, m_DY = 0, m_ScreenDX = 49,
m_ScreenDY = 0, m_Id = 1381}}, m_TouchCount = 41878885,
m_Text = “\306\005\000\000\306\005\000\000”, ‘\377’ <repeats 12 times>, “\224\001\177\002\224\001\177\002?\002\000\000?\002\000\000”, ‘\377’ <repeats 12 times>, “%\006\177\002%\006\177\002P\001\000\000P\001\000\000\226\000\000\000\200\005\000\000\377\377\377\377\000\000\200\002\377\377\200\002\377\377\001\000\377\377\001\000\377\377\377\377\377\377\377\377\024\006\000\000~\a\177\002~\a\177\002\237\a\000\000\237\a\000\000\234\001\000\000UU\000\000\000\000\000\000\000\000\000\0000\333\377\377\377\177\000\000u\025a\367\377\177\000\000.\002\000\000\000\000\000\000\270\333\377\377\377\177\000\000I\002\000\000\001\000\000\000\300XYUUU\000\000\000\000\000\000\000\000\000\000F\214\365c\370\351j4”…, m_TextCount = 0,
m_GamepadIndex = 0, m_UserID = 0, m_GamepadPacket = {m_Axis = {0, 0, 0, -nan(0x7fdbb8), 4.59163468e-41, -1.18519472e-21, -0.510722637, -nan(0x7fdb90), 4.59163468e-41,
-4.56529756e+33, 4.59163468e-41, -nan(0x7fdbc8), 4.59163468e-41, 2.40783752e+13, 3.0611365e-41, 1.49359501e+13, 3.0611365e-41, -nan(0x7fdbc8), 4.59163468e-41, 0, 0, 0, 0,
1.49354971e+13, 3.0611365e-41, -nan(0x7fdbb0), 4.59163468e-41, 0, 0, 0, 0, 0}, m_Buttons = {0, 1431918389}, m_Hat = “UU\000”, m_GamepadDisconnected = 0 ‘\000’,
m_GamepadConnected = 0 ‘\000’}, m_IsGamepad = 1 ‘\001’, m_GamepadUnknown = 1 ‘\001’, m_GamepadDisconnected = 1 ‘\001’, m_GamepadConnected = 1 ‘\001’,
m_HasGamepadPacket = 1 ‘\001’, m_HasText = 1 ‘\001’, m_Pressed = 1 ‘\001’, m_Released = 1 ‘\001’, m_Repeated = 1 ‘\001’, m_PositionSet = 1 ‘\001’,
m_AccelerationSet = 1 ‘\001’, m_Consumed = 1 ‘\001’}
engine =
window_height =
input_buffer =
tc =
width_ratio =
height_ratio =
#1 0x0001ffff027f060b in ?? ()
No symbol table info available.
#2 0xffffffff0001ffff in ?? ()
No symbol table info available.
#3 0x0000079000000502 in ?? ()
No symbol table info available.
#4 0x027f039d027f039d in ?? ()
No symbol table info available.
#5 0x0001ffff0001ffff in ?? ()
No symbol table info available.
#6 0x000001780000066a in ?? ()
No symbol table info available.
#7 0x027f079700000225 in ?? ()
No symbol table info available.
#8 0x0000035a027f0797 in ?? ()
No symbol table info available.
#9 0xffffffff0000035a in ?? ()
No symbol table info available.
#10 0x0000065b00000014 in ?? ()
No symbol table info available.

It seems that the crash is input handling. I hope this helps.

Same with me for French, there was a warning about having to be part of the team, but I was able to select French from the language dropdown and click “request” anyway, it seemed to work? Would be nice to get some confirmation c’:

Many thanks! Created an issue in GH: Crash on GAMEPAD_CONNECTED · Issue #11459 · defold/defold · GitHub

2 Likes

I’ve tested the latest dev branch with the fix and can confirm it doesn’t segfault anymore. Thanks for your efforts :rocket:

4 Likes

Looks like the latest alpha fixed the crash on my system too. Thanks!

And now the hotfix is live in the regular 1.11.2 release as well.

4 Likes