Defold 1.2.190 has been released

Release Notes

This sprint we’ve made a lot of fixes in everything from the editor, the build pipeline and the engine.
We’ve worked on stability, and also added some new functionality to the gui.

A major improvement to the Gui is that the component now supports the material, fonts and textures resource properties.

You can get/set them using go.set()/go.get() using the new support feature of indexing using a key (documentation):

go.set("#gui", “fonts”, self.my_font, {key = “my_font”})

You can now also use the alpha directly on the gui nodes via gui.set_alpha(node, a)/gui.get_alpha(node)



Our work on stabilizing the performance on the Android platform continues, and this sprint we have two more potential fixes that should hopefully bring down the number of ANR’s even further.

Development app

In order to keep our own code base clean, we’ve moved the development app dmengine.apk into a separate project and we have also updated its documentation.

Native extensions

If you were using dmExtension::RegisterAndroidOnActivityResultListener, we’ve made a bug fix for it, and the function signature is slightly different.
It has moved to an Android specific namespace dmAndroid::RegisterOnActivityResultListener() and is added in dmsdk/android.h (source)
You are unlikely so use it directly yourself, but you need to update these extensions:

We’ve also added the dmSpinlock to the dmsdk, which allows for lower cost scope locks (compared to dmMutex)


  • Issue-3775 - Fixed: Slow moving collision objects get stuck on collision
  • Issue-5791 - Fixed: gui.animate doesn’t set value if duration = 0 and delay > 0
  • Issue-6089 - Fixed: go.set now supports setting resource properties in gui scenes (material, textures and fonts)
  • Issue-6148 - Fixed: Build Cache Server: Check for resource key in both local and remote cache
  • Issue-6159 - Fixed: Build Cache Server: Ignore some project options when calculating cache key
  • Issue-6151 - Fixed: Gui: Template override with layouts bug
  • Issue-6156 - Fixed: HTML5: Break out of loop when printing stack trace
  • Issue-6160 - Fixed: Android: Possible ANR fix #1: Fixed timeout for polling event from Android OS
  • Issue-6172 - Fixed: Android: Possible ANR fix #2: Force close application when Android OS requests it
  • Issue-6138 - Fixed: The macOS window title now uses UTF8
  • Issue-6171 - Fixed: NE: New onCreate hook for Android in dmSDK (and breaking change for RegisterAndroidOnActivityResultListener)
  • Issue-6178 - Fixed: Mesh Component: Create vertex declarations first time a custom buffer is set
  • Issue-6186 - Fixed: NE: Fixed issue of missing app manifest when building engine from editor
  • Issue-6189 - Fixed: NE: Added dmSpinlock to dmSDK
  • Issue-6192 - Fixed: Optimization/Bob: Added support for ABGR in texc, to skip a java data copy loop
  • Issue-6197 - Fixed: Input initialization correctness cleanup. (Avoid memset on non-POD struct)
  • Issue-6199 - Fixed: Crash: Fixed issue of getting/setting render constants on label
  • Issue-6202 - Fixed: NE: Updated plugin build rules to work for macOS/Win32/Linux
  • Issue-6204 - Fixed: Script: Concatenating vmath types and text outputs truncated text
  • Issue-6208 - Fixed: Android: Remove mobile dev app
  • Issue-6209 - Fixed: NE: Fix implicit cast of jobject to ANativeActivity
  • Issue-6210 - Fixed: Fix when setting more than 4 render constants
  • Issue-6212 - Fixed: Added documentation example for gui.get_font_resource()
  • Issue-6218 - Fixed: Add function gui.set_alpha() and gui.get_alpha()
  • Issue-6220 - Fixed: Added missing documentation for indices/keys in go.get/set


  • Issue-6175 - Fixed: Updated splash with new games
  • Issue-6194 - Fixed: Updated JavaFX from 15-ea+8 to 18-ea+6


  • We’ve updated extension-gpgs with a new release that is using the updated dmAndroid::RegisterOnActivityResultListener().

Does this mean that you can use Layouts and Templates together now, and running from the editor works?


This particular issue was about wrong order of overrides applying.
In the editor everything was fine and it applies template fields, then the Default layout fields and then custom layout fields.

But in case when template had custom layout Bob just ignored overrides from Default layout. It was easy to miss this missbehaviour, because the editor showed everything right, and it was broken only in when bundle.

Now bob applies override the same way as the Editor does and applies Default overrides all the time before any overrides from custom layouts.


I have noticed the editor is faster. Infact exponentially faster. Is this what caused it? :grinning_face_with_smiling_eyes:


Yes, that seems like a likely explanation! Happy to hear it!