tag:github.com,2008:https://github.com/DAndrewBox/GML-Extended/releasesRelease notes from GML-Extended2025-09-19T07:40:35Ztag:github.com,2008:Repository/566505655/v1.5.32025-09-19T07:46:16Zgml-extended-v1.5.3<h1>GML Extended <a target="_blank" rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/b75c862ed35546341b1f2ec25454032c9701d799a69430523d5f412a727ff2ff/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76312e352e332d3563643362343f7374796c653d666c6174"><img src="https://camo.githubusercontent.com/b75c862ed35546341b1f2ec25454032c9701d799a69430523d5f412a727ff2ff/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76312e352e332d3563643362343f7374796c653d666c6174" alt="" data-canonical-src="https://img.shields.io/badge/v1.5.3-5cd3b4?style=flat" style="max-width: 100%;"></a></h1>
<p>This release primarily updates in-engine documentation for all core and optional functions, focusing on improving type consistency, clarifying function descriptions, removing most Feather suggestions, warnings and errors, while adding new features.</p>
<h2>Major changes</h2>
<h3>Core > Snippets</h3>
<div class="markdown-alert markdown-alert-warning"><p class="markdown-alert-title"><svg class="octicon octicon-alert mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Warning</p><p><code>Core > Shortcuts</code> library has been renamed to <code>Core > Snippets</code>. If you import this release into a project with a previous version of GML-Extended you need to also remove the <code>Libraries > GML-Extended > Functions > Core > Shortcuts</code> folder too!</p>
</div>
<ul>
<li>Added new wrapper functions for <code>asset_get_index()</code> return types in Feather:
<ul>
<li><code>sprite_get_index</code>: A wrapper for <code>asset_get_index</code> that gets the index of a sprite by its name and return the sprite with the correct type to use when Feather is enabled.</li>
<li><code>object_get_index</code>: A wrapper for <code>asset_get_index</code> that gets the index of an object by its name and return the object with the correct type to use when Feather is enabled.</li>
<li><code>room_get_index</code>: A wrapper for <code>asset_get_index</code> that gets the index of a room by its name and return the room with the correct type to use when Feather is enabled.</li>
<li><code>font_get_index</code>: A wrapper for <code>asset_get_index</code> that gets the index of a font by its name and return the font with the correct type to use when Feather is enabled.</li>
<li><code>sound_get_index</code>: A wrapper for <code>asset_get_index</code> that gets the index of a sound by its name and return the sound with the correct type to use when Feather is enabled.</li>
</ul>
</li>
<li>Add new wrappers for <code>random</code> functions:
<ul>
<li><code>rand</code>: Snippet for <code>random</code> and <code>random_range</code>. If only one argument is provided, <code>random</code> is used, if two parameters are provided, it uses <code>random_range</code>.</li>
<li><code>irand</code>: Snippet for <code>irandom</code> and <code>irandom_range</code>. If only one argument is provided, <code>irandom</code> is used, if two parameters are provided, it uses <code>irandom_range</code>.</li>
<li><code>rand_linear</code>: Snippet for <code>random_linear</code> and <code>random_linear_range</code>. If only one argument is provided, <code>random_linear</code> is used, if two parameters are provided, it uses <code>random_linear_range</code>.</li>
</ul>
</li>
</ul>
<h3>Core > Math</h3>
<ul>
<li>Added new function:
<ul>
<li><code>random_range_linear</code>: Returns a random value with a linear distribution within a range. This is more random than <code>random_range()</code>.</li>
</ul>
</li>
</ul>
<h3>Optional > Game</h3>
<ul>
<li>Added new function:
<ul>
<li><code>game_get_framerate</code>: Returns the current game set framerate.</li>
</ul>
</li>
</ul>
<h3>Optional > Layers</h3>
<ul>
<li>Added new function
<ul>
<li><code>layer_set_depth</code>: Sets the depth of a layer by using jus the name of the layer. This is useful when you don't have the layer id stored in a variable or want to check the depth of a layer by its name.</li>
</ul>
</li>
</ul>
<h2>Minor changes</h2>
<h3>Core > Arrays</h3>
<ul>
<li>Removed function <code>array_create_ext</code> since GameMaker had this function since <code>v2022.11</code> and was causing issues with some user using GM v2022.9 and previous. I wasn't aware of that, but this change should not affect anybody using GM versions after v2022.11. (Sorry if it caused conflicts to anybody 😓 )</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Standardized type annotations for arguments and return values across array, color, and file functions, replacing generic types like <code>array</code> and <code>ds_list</code> with more precise Feather types such as <code>Array</code> and <code>Id.DsList</code>.</li>
<li>Added in-engine documentation to clarify behavior of functions and methods.</li>
<li>Reorganized and corrected the documentation for file functions in <code>Docs/Core/Files.md</code>, including swapping the order of <code>file_text_get_lines_array</code>, <code>file_text_read_whole</code>, and <code>file_json_read</code>, updating their examples and descriptions, and clarifying return types.</li>
<li>Added documentation for the following functions added in previous versions:
<ul>
<li><code>instance_first</code>: Returns the first created instance of the object passed as argument.</li>
<li><code>instance_last</code>: Returns the last created instance of the object passed as argument.</li>
</ul>
</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>Tried to fix most (if not all) Feather related issues!</li>
</ul>
<a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/51156767/491448937-78a3d696-9250-4243-9344-fd767e4f3d78.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQxMTUzODUsIm5iZiI6MTc3NDExNTA4NSwicGF0aCI6Ii81MTE1Njc2Ny80OTE0NDg5MzctNzhhM2Q2OTYtOTI1MC00MjQzLTkzNDQtZmQ3NjdlNGYzZDc4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzIxVDE3NDQ0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTljZjI2MmQ5MzA1YmNhOWM2MWU1YjljNjY4NzBlMTQwNTA0NTJlNmExMDYzMmU2Zjk4OGYzMGVhOGQzNzRiY2EmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.5hbUxm7jZInmNO-gTnkPWr3NpbR6E-PVC4_B48AD7PY"><img width="498" height="165" alt="image" src="https://private-user-images.githubusercontent.com/51156767/491448937-78a3d696-9250-4243-9344-fd767e4f3d78.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQxMTUzODUsIm5iZiI6MTc3NDExNTA4NSwicGF0aCI6Ii81MTE1Njc2Ny80OTE0NDg5MzctNzhhM2Q2OTYtOTI1MC00MjQzLTkzNDQtZmQ3NjdlNGYzZDc4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzIxVDE3NDQ0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTljZjI2MmQ5MzA1YmNhOWM2MWU1YjljNjY4NzBlMTQwNTA0NTJlNmExMDYzMmU2Zjk4OGYzMGVhOGQzNzRiY2EmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.5hbUxm7jZInmNO-gTnkPWr3NpbR6E-PVC4_B48AD7PY" content-type-secured-asset="image/png" style="max-width: 100%; height: auto; max-height: 165px;"></a>
<hr>
<h3>If you have any feature request, issue, comment or suggestion, please let me know in the <a href="https://github.com/DAndrewBox/GML-Extended/issues">issues</a> tab!</h3>
<hr>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/DAndrewBox/GML-Extended/compare/v1.5.1...v1.5.3"><tt>v1.5.1...v1.5.3</tt></a></p>DAndrewBoxtag:github.com,2008:Repository/566505655/v1.5.22025-08-30T07:51:06Zgml-extended-v1.5.2<h1>GML Extended <a target="_blank" rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/70a3f64e18529dc50ef3e25528311600b25b2a7c009f9d1ec4d93edd23f27053/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76312e352e322d3563643362343f7374796c653d666c6174"><img src="https://camo.githubusercontent.com/70a3f64e18529dc50ef3e25528311600b25b2a7c009f9d1ec4d93edd23f27053/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76312e352e322d3563643362343f7374796c653d666c6174" alt="" data-canonical-src="https://img.shields.io/badge/v1.5.2-5cd3b4?style=flat" style="max-width: 100%;"></a></h1>
<h2>Major changes</h2>
<p><em>No major changes introduced in this update</em></p>
<h2>Minor changes</h2>
<p>Vastly improved documentation and added badges to identify which versions have which functions. And moved multiple functions from the <strong>Experimental</strong> status to <strong>Core</strong>.</p>
<div class="markdown-alert markdown-alert-warning"><p class="markdown-alert-title"><svg class="octicon octicon-alert mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Warning</p><p>Is important that you rename the following experimental functions from their previous experimental name if you used these and decide to update since the older names are no longer supported and could crash your project.</p>
</div>
<h3>Core > Colors</h3>
<ul>
<li>
<p><strong>The following functions were added in v1.5.1 but now are properly documented:</strong></p>
<ul>
<li><code>color_get_rgb_normalized</code></li>
<li><code>color_get_hsv_normalized</code></li>
</ul>
</li>
<li>
<p><strong>The following functions are no longer experimental:</strong></p>
<ul>
<li><code>color_to_hex_rgb</code> : Previously part of <code>Experimental > dec2hex</code></li>
<li><code>color_to_hex_rgba</code> : Previously <code>Experimental > rgba_dec2hex</code></li>
<li><code>color_hex_rgba_to_abgr</code> : Previously <code>Experimental > hex_rgba2abgr</code></li>
<li><code>color_rgba_get_alpha</code> : Previously <code>Experimental > color_rgba_get_alpha</code></li>
</ul>
</li>
</ul>
<h3>Core > Math</h3>
<ul>
<li><strong>The following function is no longer experimental:</strong>
<ul>
<li><code>dec2hex</code></li>
</ul>
</li>
</ul>
<h3>Core > Structs</h3>
<ul>
<li><strong>The following function was added:</strong>
<ul>
<li><code>struct_entries</code></li>
</ul>
</li>
</ul>
<h3>Experimental > Colors</h3>
<ul>
<li><strong>The following functions were renamed and released from experimental to core:</strong>
<ul>
<li><code>dec2hex</code></li>
<li><code>rgba_dec2hex</code></li>
<li><code>hex_rgba2abgr</code></li>
<li><code>color_rgba_get_alpha</code></li>
</ul>
</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>Fix most of feather issues introduced in the last versions.</li>
</ul>
<hr>
<h3>If you have any feature request, issue, comment or suggestion, please let me know in the <a href="https://github.com/DAndrewBox/GML-Extended/issues">issues</a> tab!</h3>
<hr>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/DAndrewBox/GML-Extended/compare/v1.5.1...v1.5.2"><tt>v1.5.1...v1.5.2</tt></a></p>DAndrewBoxtag:github.com,2008:Repository/566505655/v1.5.12025-08-30T07:03:18Zgml-extended-v1.5.1<h1>GML Extended <a target="_blank" rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/12334963a3447ed1b568fd189bfe50908f46bdfee4840e41f1d0a578e0aeee7b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76312e352e312d3563643362343f7374796c653d666c6174"><img src="https://camo.githubusercontent.com/12334963a3447ed1b568fd189bfe50908f46bdfee4840e41f1d0a578e0aeee7b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76312e352e312d3563643362343f7374796c653d666c6174" alt="" data-canonical-src="https://img.shields.io/badge/v1.5.1-5cd3b4?style=flat" style="max-width: 100%;"></a></h1>
<h2>Small release fixing issues with compatibility scripts on some targets and issues with <code>instance_create_*</code> custom scripts.</h2>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/DAndrewBox/GML-Extended/compare/v1.5.0...v1.5.1"><tt>v1.5.0...v1.5.1</tt></a></p>DAndrewBoxtag:github.com,2008:Repository/566505655/v1.5.02025-08-30T07:02:09Zgml-extended-v1.5.0<h1>GML-Extended <a target="_blank" rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/ca5499c67e4b3357266381e954714e5e4c831f3a5e830e2b0f42067af32bff26/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76312e352e302d3563643362343f7374796c653d666c6174"><img src="https://camo.githubusercontent.com/ca5499c67e4b3357266381e954714e5e4c831f3a5e830e2b0f42067af32bff26/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76312e352e302d3563643362343f7374796c653d666c6174" alt="" data-canonical-src="https://img.shields.io/badge/v1.5.0-5cd3b4?style=flat" style="max-width: 100%;"></a> - <strong>The Compatibility Update!</strong></h1>
<h2>Release Notes:</h2>
<h3>Compatibility!</h3>
<p>As one fo the (probably) latest updates of the library, this library is now compatible with GameMaker versions from v2.3.7 to v2024.4 using the compatibility scripts that can be imported into the project!</p>
<h3>Draw Profiles</h3>
<p>You can now create draw profiles with custom properties, so everytime you need to use the same draw configurations, you can now just call a profile! i.e: When drawing texts maybe you have different fonts and colors defined for those fonts, like titles always on center and with color c_orange, so now instead of having to setup the draw functions to set color, alpha, font, align, and more, you can now just create a profile with <code>draw_create_profile()</code>, and the call the profile in your draw event with the function <code>draw_set_profile()</code>. More explaination in the documentation (<code>Optional > Draw > draw_create_profile</code>)</p>
<h3>New Libraries</h3>
<p><strong>Compatibility</strong></p>
<ul>
<li>Library contains scripts to make all the other functions compatible with older versions of GameMaker from 2.3.7!</li>
</ul>
<p><strong>Core > Types</strong></p>
<ul>
<li>Library contains new functions to get and define types for your variables. Know more on the Types documentation!</li>
</ul>
<p><strong>Optional > GUI</strong></p>
<ul>
<li>Library for some GUI manipulation and aspects. Contains some previously core shortcuts that weren't used as often.</li>
</ul>
<p><strong>Experimental > Colors</strong></p>
<ul>
<li>Moved some of the functions that weren't working that well on previous versions to this library.</li>
</ul>
<p><strong>Experimental > Files</strong></p>
<ul>
<li>New library with functions to manipulate .yy room files.</li>
</ul>
<h3>New functions</h3>
<p><strong>lib_datetime</strong></p>
<ul>
<li><strong>current_week()</strong>: Returns the current week of the year.</li>
<li><strong>current_day_of_the_year()</strong>: Returns the current day of the year.</li>
</ul>
<p><strong>lib_math</strong></p>
<ul>
<li><strong>percentage()</strong>: Return a percentage number from the given values.</li>
</ul>
<p><strong>lib_shortcuts</strong><br>
-<strong>contains()</strong>: Checks if an element is inside a container.</p>
<p><strong>lib_strings</strong></p>
<ul>
<li><strong>string_percentage()</strong>: Returns a string with the percentage of the given values.</li>
</ul>
<p><strong>lib_types</strong></p>
<ul>
<li>New macros for gm_types.</li>
<li><strong>str()</strong>: Converts a value to string.</li>
<li><strong>int()</strong>: Converts a value to an int with no decimals.</li>
<li><strong>int8()</strong>: Coverts a value to an 8-bit int.</li>
<li><strong>int16()</strong>: Coverts a value to an 16-bit int.</li>
<li><strong>int8s()</strong>: Coverts a value to a signed 8-bit int.</li>
<li><strong>int16s()</strong>: Coverts a value to a a signed 16-bit int.</li>
<li><strong>is_type()</strong>: Checks if a value corresponds to a gm_type.</li>
</ul>
<p><strong>lib_draw</strong></p>
<ul>
<li>New macros for current draw state.</li>
<li><strong>draw_surface_from_center()</strong>: Draw a surface from center x,y coordinates and can include rotation.</li>
<li><strong>draw_set_gui_scale()</strong>: Sets GUI draw scale.</li>
<li><strong>draw_set_blendmode()</strong>: Sets blendmode. It's like a shortcut for gpu_set_blendmode() and gpu_set_blendmode_ext() functions.</li>
<li><strong>draw_reset_blendmode()</strong>: Resets blendmode to bm_normal.</li>
<li><strong>surface_clear()</strong>: Works as draw_clear_alpha() for surfaces.</li>
<li><strong>draw_set_depth()</strong>: Works as gpu_set_depth().</li>
<li><strong>draw_reset_depth()</strong>: Resets depth to object depth.</li>
<li><strong>draw_reset_alpha()</strong>: Resets alpha to 1.</li>
<li><strong>draw_reset_color()</strong>: Resets color to c_white.</li>
<li><strong>draw_create_profile()</strong>: Creates a draw profile to setup recurrent draw setup calls.</li>
<li><strong>draw_set_profile()</strong>: Sets a created profile.</li>
</ul>
<p><strong>lib_ease</strong></p>
<ul>
<li>Library is no longer experimental and is now optional.</li>
<li>Last 2 arguments changed from <code>min, max</code> to <code>factor</code>, so instead of defining min and max value, you just multiply it for a factor.</li>
</ul>
<p><strong>lib_images</strong></p>
<ul>
<li><strong>image_set()</strong>: Sets built-in variables from an image in one line.</li>
<li><strong>image_set_scale()</strong>: Set image xscale and yscale in one line.</li>
<li><strong>image_smooth_rotate()</strong>: Rotate the sprite smoothly to a direction given.</li>
</ul>
<p><strong>lib_layers</strong></p>
<ul>
<li>
<p>New macros for layer element types to setup for future functions.</p>
</li>
<li>
<p><strong>layer_get_background()</strong>: A way to get the background of a layer using the ID or the name of the layer in one line.</p>
</li>
<li>
<p><strong>layer_get_tileset()</strong>: A way to get the tileset of a layer using the ID or the name of the layer in one line.</p>
</li>
<li>
<p>And a lot more related to the experimental library on the docs!</p>
</li>
</ul>
<h3>Misc changes</h3>
<ul>
<li>Some functions from library "Core > Shortcuts" were moved to new library "Optional > GUI".</li>
<li>Fixed <code>@param</code> definition for functions so feather shouldn't give any new errors now.</li>
<li>Added new demo rooms for draw events and easing.</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/DAndrewBox/GML-Extended/compare/v1.3...v1.5.0"><tt>v1.3...v1.5.0</tt></a></p>DAndrewBoxtag:github.com,2008:Repository/566505655/v1.4b2023-06-17T00:33:51Zgml-extended-v1.4.0b<p>Fixed some issues with structs</p>DAndrewBoxtag:github.com,2008:Repository/566505655/v1.42023-06-17T00:30:27Zgml-extended-v1.4.0<h1>Changelog</h1>
<h2>Extension Updates</h2>
<ul>
<li><strong>Divided and re-organized functions on "Core", "Optional" & "Experimental"</strong></li>
<li><strong>Added easing demo room</strong></li>
<li><strong>Some optimization updates</strong></li>
</ul>
<h2>lib_files</h2>
<h3>Added</h3>
<ul>
<li><code>json2yy</code></li>
</ul>
<h2>lib_shortcuts</h2>
<h3>Added</h3>
<ul>
<li><code>int</code></li>
</ul>
<h3>Removed</h3>
<ul>
<li><code>rgb</code></li>
<li><code>hsv</code></li>
<li><code>color_get_rbg</code></li>
<li><code>color_get_hsv</code></li>
</ul>
<h2>lib_structs</h2>
<h3>Added</h3>
<ul>
<li><code>struct_equal</code></li>
</ul>
<h2>lib_math</h2>
<h3>Added</h3>
<ul>
<li><code>random_linear</code></li>
<li><code>uuid_v4</code></li>
</ul>
<h2>lib_colors</h2>
<h3>Added new library to work with colours</h3>
<h2>lib_ease</h2>
<h3>Added new library to work with easing animations</h3>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/DAndrewBox/GML-Extended/compare/v1.3...v1.4"><tt>v1.3...v1.4</tt></a></p>DAndrewBoxtag:github.com,2008:Repository/566505655/v1.32023-03-06T20:20:59Zgml-extended-1.3.0<h1>Changelog</h1>
<h2>lib_files</h2>
<h3>Added</h3>
<ul>
<li><code>json2file</code></li>
</ul>
<h3>Modified</h3>
<ul>
<li>Renamed from <code>file_to_json</code> to <code>file_json_read</code></li>
</ul>
<h2>lib_shortcuts</h2>
<h3>Added</h3>
<ul>
<li><code>str</code> macro</li>
<li><code>rgb</code></li>
<li><code>hsv</code></li>
<li><code>color_get_rbg</code></li>
<li><code>color_get_hsv</code></li>
<li><code>view_get_x</code></li>
<li><code>view_get_y</code></li>
<li><code>gui_mouse_x</code></li>
<li><code>gui_mouse_y</code></li>
<li><code>gui_width</code></li>
<li><code>gui_height</code></li>
</ul>
<h2>lib_strings</h2>
<h3>Added</h3>
<ul>
<li><code>string_pad_left</code></li>
<li><code>string_pad_right</code></li>
</ul>
<h3>Removed</h3>
<ul>
<li><code>string_fill_zero</code></li>
</ul>
<h2>lib_structs</h2>
<h3>Added</h3>
<ul>
<li><code>struct_key_exists</code></li>
</ul>
<h2>lib_time</h2>
<h3>Added</h3>
<ul>
<li><code>time_performance</code></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/DAndrewBox/GML-Extended/compare/v1.2.3...v1.3"><tt>v1.2.3...v1.3</tt></a></p>DAndrewBoxtag:github.com,2008:Repository/566505655/v1.2.32023-01-24T20:23:12Zgml-extended-v1.2.3<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" aria-label="Completed task" checked=""> Arranged folders</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" aria-label="Completed task" checked=""> Added new functions</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" aria-label="Completed task" checked=""> Added shaders</li>
</ul>
<h2>New shaders</h2>
<ul>
<li>Recolor shader (shd_gml_ext_recolor)</li>
<li>Gauss Blur shader (shd_gml_ext_blur_gauss)</li>
</ul>
<h2>New functions</h2>
<ul>
<li>draw_sprite_recolor</li>
<li>draw_sprite_blur</li>
<li>draw_surface_recolor</li>
<li>draw_surface_blur</li>
<li>instance_get_if</li>
<li>trace</li>
<li>alert</li>
<li>alert_async</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/DAndrewBox/GML-Extended/compare/v1.2.2...v1.2.3"><tt>v1.2.2...v1.2.3</tt></a></p>DAndrewBoxtag:github.com,2008:Repository/566505655/v1.2.22023-01-06T22:21:57Zgml-extended-v1.2.2<h3>Release notes</h3>
<ul>
<li>Added additional arguments <code>xscale</code>, <code>yscale</code>, <code>angle</code> to functions <code>draw_text_outline</code> & <code>draw_text_shadow</code>.</li>
<li>Added new functions <code>file_text_get_lines_array</code>, <code>instance_get_all</code>, <code>instance_number_if</code>, <code>string_title</code>.</li>
<li>Refactor <code>array_shuffle</code> function for readability.</li>
<li>Removed <code>msgType</code> unnecessary expression on <code>http_async_get_message</code> function.</li>
<li>Solved some issues & bugs from previous versions.</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/DAndrewBox/GML-Extended/compare/v1.2.1...v1.2.2"><tt>v1.2.1...v1.2.2</tt></a></p>DAndrewBoxtag:github.com,2008:Repository/566505655/v1.2.12022-12-06T20:47:26Zgml-extended-v1.2.1<p>A bunch of functions added related to <strong>Draw</strong>, <strong>Game Params</strong>, <strong>Instances & Events</strong>, <strong>Layers</strong> and <strong>Images</strong>. The function are the following:</p>
<ul>
<li>draw_self_ext</li>
<li>draw_figure</li>
<li>draw_quad</li>
<li>draw_rectangle_width</li>
<li>draw_rectangle_rotated</li>
<li>draw_text_outline</li>
<li>draw_text_shadow</li>
<li>draw_text_size</li>
<li>draw_fps</li>
<li>draw_fps_real</li>
<li>draw_set_align</li>
<li>gpu_set_alpha_overwrite</li>
<li>game_params</li>
<li>game_get_param_value</li>
<li>game_get_param_exists</li>
<li>game_throw_error</li>
<li>instance_create</li>
<li>instance_create_unique</li>
<li>instance_any_exists</li>
<li>instance_in_room</li>
<li>del</li>
<li>event_user_exec</li>
<li>layer_get_element_ids_fixed</li>
<li>image_loop_index</li>
</ul>
<p>As for the version, this version 1.2.1 is specifically recommended for GameMaker versions 2022.11+ but can bu used on older versions.</p>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/DAndrewBox/GML-Extended/compare/v1.2.0...v1.2.1"><tt>v1.2.0...v1.2.1</tt></a></p>DAndrewBox