{"id":1620,"date":"2024-09-02T20:57:26","date_gmt":"2024-09-02T20:57:26","guid":{"rendered":"https:\/\/dragondreams.ch\/?page_id=1620"},"modified":"2025-10-09T15:52:28","modified_gmt":"2025-10-09T15:52:28","slug":"changelog-release-1-23","status":"publish","type":"page","link":"https:\/\/dragondreams.ch\/index.php\/changelog-release-1-23\/","title":{"rendered":"Changelog Release 1.23"},"content":{"rendered":"<div id=\"pl-1620\"  class=\"panel-layout\" ><div id=\"pg-1620-0\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-1620-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-1620-0-0-0\" class=\"so-panel widget widget_sow-editor panel-first-child panel-last-child\" data-index=\"0\" ><div\n\t\t\t\n\t\t\tclass=\"so-widget-sow-editor so-widget-sow-editor-base\"\n\t\t\t\n\t\t>\n<div class=\"siteorigin-widget-tinymce textwidget\">\n\t<h1>Drag[en]gine Release 1.23<\/h1>\n<div><em>Released: 2024-09-02<\/em><\/div>\n<h3 style=\"margin-top: 1em;\"><span style=\"color: #008000;\">Drag[en]gine<\/span><\/h3>\n<ul>\n<li>Added Service Module \"Mod.io\". Supports \"user\" and \"mods\"<\/li>\n<li>Added Service Module \"Microsoft GDK\". Supports \"user\" and \"achievements\"<\/li>\n<li>Added Service Module \"EOS SDK\". Supports \"user\" and \"achievements\"<\/li>\n<li>Added Service Module \"Steam SDK\". Supports \"user\" and \"achievements\"<\/li>\n<li>Added modification management UI classes: MMWindowModManagement, MMPanelModManagement and more.<\/li>\n<li>Added Service Interface \"mods\".<\/li>\n<li>Added Service Interface \"user\".<\/li>\n<li>Added Service Interface \"achievements\".<\/li>\n<li>Added Service Module System.<\/li>\n<li>Moved external sources for building game engine to external cloud drive to reduce repository size.<\/li>\n<li>Adding support to drop input events temporarily, for example while services show overlays capturing input.<\/li>\n<li>Added Android as build target covered in Github nightly builds.<\/li>\n<li>Fixed decString 'long' related conversation functions incorrectly using strtol instead of strtoll cutting of values above int32.<\/li>\n<li>Fixing threading problem with event queue.<\/li>\n<li>Added decBase64 encode\/decode.<\/li>\n<li>Added EnableAuralization parameter to Microphone resource.<\/li>\n<\/ul>\n<h3 style=\"margin-top: 1em;\"><span style=\"color: #008000;\">DragonScript<\/span><\/h3>\n<ul>\n<li>Added hiding of script directory from scripts to avoid foreign mod scripts browsing and reading game scripts.<\/li>\n<li>Modified ECBehaviorTriggered to include broken trigger expression in exception message.<\/li>\n<li>Hardened WindowDialog.show().<\/li>\n<li>Added support for automatic initialization of supported service modules using BaseGameServices.<\/li>\n<li>Clarified attachable behavior setElement() function and ensured setElement() is called while reading element.<\/li>\n<li>Fixed exception in tooltip manager on dispose if visible.<\/li>\n<li>Added Attachable Element Behavior support.<\/li>\n<li>Added VRHandPose debug attachable behavior.<\/li>\n<li>Added support to ImageDesigner to define image resource using designer overriding widget image.<\/li>\n<li>Added support to VideoDesigner to define video resource using designer overriding widget video.<\/li>\n<li>Improvements on handling load-fail elements.<\/li>\n<li>Hardened persisting dynamic element data in game world.<\/li>\n<li>Small fix to ensure windows are layouted on show time.<\/li>\n<li>Added documentation how to create generic scrollable panels to ScrollPanel class documentation since this situation happens often and is tricky to get working correctly.<\/li>\n<li>Added Widget.getLocalMouseLoccation() to simplify finding the mouse location relative to a widget.<\/li>\n<li>Added formatting helper class.<\/li>\n<li>Fixed stack overflow problem with bordered designers.<\/li>\n<li>Improved design call performance by adding block layoutParent() support similar to block doLayout().<\/li>\n<li>Fixed TitledTwoColorBorder missing text.<\/li>\n<li>Modified clicked action listener to clear clicked position after onAction() is called so subclass knows where the click happened.<\/li>\n<li>Added support for restarting without exiting the application (warm restart).<\/li>\n<li>Fixed bug in ParameterTableEntry writing string without length.<\/li>\n<li>Remove Array.remove(int) which should not have existed anymore and fixed code incorrectly using it.<\/li>\n<li>Added missing getter\/setter to CodecPropertyString for the separator parameters.<\/li>\n<li>Hardened against modify-file-iterator in enterFrame list.<\/li>\n<li>Fixed decodeStringDictionary to support values containing separator token.<\/li>\n<li>Fixed CodecPropertyString.decodeStringDictionary to use quoting across the entire key:value pair instead of key and value separately.<\/li>\n<li>Added convenience calls to BehaviorElementClass.<\/li>\n<li>Added StubElement.getMatrix() convenience function.<\/li>\n<li>Added overload for EasyXML.new() and BaseXmlLoader.loadAndParseRootTag() supporting individually disabling parsing comments and cleaning character data.<\/li>\n<li>Fixed bug in ECBehaviorRenderablePanel skip creating content using listeners if solidity renderable name is empty.<\/li>\n<li>Added support for BehaviorPreventCreation.<\/li>\n<li>Added ECBehaviorRandomizeGeometry.<\/li>\n<\/ul>\n<h3 style=\"margin-top: 1em;\"><span style=\"color: #008000;\">OpenGL<\/span><\/h3>\n<ul>\n<li>Fix for segfault in GI code if component switches model in a way the old model is released.<\/li>\n<li>Fixed vr-camera not properly dropping reference causing segfault with restarting.<\/li>\n<li>Fixed renderthread potentially deadlocking due to missing vr-camera semaphore signal.<\/li>\n<li>Fixed bug in component world-compute element not counting required geometry slots correctly in the prepare function.<\/li>\n<\/ul>\n<h3 style=\"margin-top: 1em;\"><span style=\"color: #008000;\">OpenXR<\/span><\/h3>\n<ul>\n<li>Small fixes on passthrough extension to not get in the way until finished.<\/li>\n<li>Modified vr hand controller pose calculation to get a predictable pose (combine grip and aim pose).<\/li>\n<li>Adding hand interaction support: XR_EXT_hand_interaction, XR_HTC_hand_interaction.<\/li>\n<\/ul>\n<h3 style=\"margin-top: 1em;\"><span style=\"color: #008000;\">XInput<\/span><\/h3>\n<ul>\n<li>Added partial protection against audio devices suddenly showing up as input devices with libevdev.<\/li>\n<\/ul>\n<h3 style=\"margin-top: 1em;\"><span style=\"color: #008000;\">DEIGDE<\/span><\/h3>\n<ul>\n<li>Fixed edit raw property value not triggering update notification properly.<\/li>\n<li>Fixed bug in merging XML element classes in game definition overwriting sub components if element class and an inherited class contained components.<\/li>\n<\/ul>\n<h3 style=\"margin-top: 1em;\"><span style=\"color: #008000;\">World Editor<\/span><\/h3>\n<ul>\n<li>Added support to select a background object. Replaces the need for using VirtualElement in worlds that are used as content for another element.<\/li>\n<\/ul>\n<h3 style=\"margin-top: 1em;\"><span style=\"color: #008000;\">Conversation Editor<\/span><\/h3>\n<ul>\n<li>Modified to not switch to conversation camera automatically.<\/li>\n<\/ul>\n<h3 style=\"margin-top: 1em;\"><span style=\"color: #008000;\">Skin Editor<\/span><\/h3>\n<ul>\n<li>Added support to remember last import skin path for faster workflow.<\/li>\n<\/ul>\n<h3 style=\"margin-top: 1em;\"><span style=\"color: #008000;\">Blender<\/span><\/h3>\n<ul>\n<li>Fixed homogenize materials not setting materials only adjusting slot order.<\/li>\n<li>Fixed export merger problems with linked objects.<\/li>\n<li>Modified extension to be compatible with Blender 4.2 Extension support.<\/li>\n<li>Modified extension to allowed embedding in other extensions.<\/li>\n<\/ul>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Drag[en]gine Release 1.23 Released: 2024-09-02 Drag[en]gine Added Service Module &#8220;Mod.io&#8221;. Supports &#8220;user&#8221; and &#8220;mods&#8221; Added Service Module &#8220;Microsoft GDK&#8221;. Supports &#8220;user&#8221; and &#8220;achievements&#8221; Added Service Module &#8220;EOS SDK&#8221;. Supports &#8220;user&#8221; and &#8220;achievements&#8221; Added Service Module &#8220;Steam SDK&#8221;. Supports &#8220;user&#8221; and &#8220;achievements&#8221; Added modification management UI classes: MMWindowModManagement, MMPanelModManagement and more. Added Service Interface &#8220;mods&#8221;. Added [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"page-category":[10],"class_list":["post-1620","page","type-page","status-publish","hentry","page-category-dragengine-change-log","post"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Changelog Release 1.23 - DragonDreams<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dragondreams.ch\/index.php\/changelog-release-1-23\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Changelog Release 1.23 - DragonDreams\" \/>\n<meta property=\"og:description\" content=\"Drag[en]gine Release 1.23 Released: 2024-09-02 Drag[en]gine Added Service Module &quot;Mod.io&quot;. Supports &quot;user&quot; and &quot;mods&quot; Added Service Module &quot;Microsoft GDK&quot;. Supports &quot;user&quot; and &quot;achievements&quot; Added Service Module &quot;EOS SDK&quot;. Supports &quot;user&quot; and &quot;achievements&quot; Added Service Module &quot;Steam SDK&quot;. Supports &quot;user&quot; and &quot;achievements&quot; Added modification management UI classes: MMWindowModManagement, MMPanelModManagement and more. Added Service Interface &quot;mods&quot;. Added [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dragondreams.ch\/index.php\/changelog-release-1-23\/\" \/>\n<meta property=\"og:site_name\" content=\"DragonDreams\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-09T15:52:28+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@DragonDreamsGD\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dragondreams.ch\\\/index.php\\\/changelog-release-1-23\\\/\",\"url\":\"https:\\\/\\\/dragondreams.ch\\\/index.php\\\/changelog-release-1-23\\\/\",\"name\":\"Changelog Release 1.23 - DragonDreams\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dragondreams.ch\\\/#website\"},\"datePublished\":\"2024-09-02T20:57:26+00:00\",\"dateModified\":\"2025-10-09T15:52:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dragondreams.ch\\\/index.php\\\/changelog-release-1-23\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dragondreams.ch\\\/index.php\\\/changelog-release-1-23\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dragondreams.ch\\\/index.php\\\/changelog-release-1-23\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/dragondreams.ch\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Changelog Release 1.23\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dragondreams.ch\\\/#website\",\"url\":\"https:\\\/\\\/dragondreams.ch\\\/\",\"name\":\"DragonDreams\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/dragondreams.ch\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dragondreams.ch\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/dragondreams.ch\\\/#organization\",\"name\":\"DragonDreams\",\"url\":\"https:\\\/\\\/dragondreams.ch\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/dragondreams.ch\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/dragondreams.ch\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/banner_small.png\",\"contentUrl\":\"https:\\\/\\\/dragondreams.ch\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/banner_small.png\",\"width\":500,\"height\":236,\"caption\":\"DragonDreams\"},\"image\":{\"@id\":\"https:\\\/\\\/dragondreams.ch\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/DragonDreamsGD\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCFSpIFFU3CsZGqhtlkXtgnA\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Changelog Release 1.23 - DragonDreams","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dragondreams.ch\/index.php\/changelog-release-1-23\/","og_locale":"en_US","og_type":"article","og_title":"Changelog Release 1.23 - DragonDreams","og_description":"Drag[en]gine Release 1.23 Released: 2024-09-02 Drag[en]gine Added Service Module \"Mod.io\". Supports \"user\" and \"mods\" Added Service Module \"Microsoft GDK\". Supports \"user\" and \"achievements\" Added Service Module \"EOS SDK\". Supports \"user\" and \"achievements\" Added Service Module \"Steam SDK\". Supports \"user\" and \"achievements\" Added modification management UI classes: MMWindowModManagement, MMPanelModManagement and more. Added Service Interface \"mods\". Added [&hellip;]","og_url":"https:\/\/dragondreams.ch\/index.php\/changelog-release-1-23\/","og_site_name":"DragonDreams","article_modified_time":"2025-10-09T15:52:28+00:00","twitter_card":"summary_large_image","twitter_site":"@DragonDreamsGD","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dragondreams.ch\/index.php\/changelog-release-1-23\/","url":"https:\/\/dragondreams.ch\/index.php\/changelog-release-1-23\/","name":"Changelog Release 1.23 - DragonDreams","isPartOf":{"@id":"https:\/\/dragondreams.ch\/#website"},"datePublished":"2024-09-02T20:57:26+00:00","dateModified":"2025-10-09T15:52:28+00:00","breadcrumb":{"@id":"https:\/\/dragondreams.ch\/index.php\/changelog-release-1-23\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dragondreams.ch\/index.php\/changelog-release-1-23\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dragondreams.ch\/index.php\/changelog-release-1-23\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dragondreams.ch\/"},{"@type":"ListItem","position":2,"name":"Changelog Release 1.23"}]},{"@type":"WebSite","@id":"https:\/\/dragondreams.ch\/#website","url":"https:\/\/dragondreams.ch\/","name":"DragonDreams","description":"","publisher":{"@id":"https:\/\/dragondreams.ch\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dragondreams.ch\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dragondreams.ch\/#organization","name":"DragonDreams","url":"https:\/\/dragondreams.ch\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dragondreams.ch\/#\/schema\/logo\/image\/","url":"https:\/\/dragondreams.ch\/wp-content\/uploads\/2023\/10\/banner_small.png","contentUrl":"https:\/\/dragondreams.ch\/wp-content\/uploads\/2023\/10\/banner_small.png","width":500,"height":236,"caption":"DragonDreams"},"image":{"@id":"https:\/\/dragondreams.ch\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/DragonDreamsGD","https:\/\/www.youtube.com\/channel\/UCFSpIFFU3CsZGqhtlkXtgnA"]}]}},"_links":{"self":[{"href":"https:\/\/dragondreams.ch\/index.php\/wp-json\/wp\/v2\/pages\/1620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dragondreams.ch\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dragondreams.ch\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dragondreams.ch\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dragondreams.ch\/index.php\/wp-json\/wp\/v2\/comments?post=1620"}],"version-history":[{"count":1,"href":"https:\/\/dragondreams.ch\/index.php\/wp-json\/wp\/v2\/pages\/1620\/revisions"}],"predecessor-version":[{"id":1621,"href":"https:\/\/dragondreams.ch\/index.php\/wp-json\/wp\/v2\/pages\/1620\/revisions\/1621"}],"wp:attachment":[{"href":"https:\/\/dragondreams.ch\/index.php\/wp-json\/wp\/v2\/media?parent=1620"}],"wp:term":[{"taxonomy":"page-category","embeddable":true,"href":"https:\/\/dragondreams.ch\/index.php\/wp-json\/wp\/v2\/page-category?post=1620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}