{"id":2,"date":"2023-06-08T18:19:36","date_gmt":"2023-06-08T18:19:36","guid":{"rendered":"https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/?page_id=2"},"modified":"2025-02-13T22:06:18","modified_gmt":"2025-02-13T21:06:18","slug":"home","status":"publish","type":"page","link":"https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/","title":{"rendered":"Home"},"content":{"rendered":"\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-cover alignfull has-base-color has-text-color has-link-color wp-elements-4eaef9d1ce1523a20c27464bff9ebf9f\" style=\"min-height:600px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-custom-crimson-red-background-color has-background-dim\"><\/span><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1440\" src=\"https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-content\/uploads\/2023\/06\/pexels-steve-johnson-13129480-2-mfrh-original-scaled.webp\" class=\"wp-block-cover__image-background wp-post-image\" alt=\"pexels steve johnson\" data-object-fit=\"cover\" srcset=\"https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-content\/uploads\/2023\/06\/pexels-steve-johnson-13129480-2-mfrh-original-scaled.webp 2560w, https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-content\/uploads\/2023\/06\/pexels-steve-johnson-13129480-2-mfrh-original-300x169.webp 300w, https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-content\/uploads\/2023\/06\/pexels-steve-johnson-13129480-2-mfrh-original-1024x576.webp 1024w, https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-content\/uploads\/2023\/06\/pexels-steve-johnson-13129480-2-mfrh-original-768x432.webp 768w, https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-content\/uploads\/2023\/06\/pexels-steve-johnson-13129480-2-mfrh-original-1536x864.webp 1536w, https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-content\/uploads\/2023\/06\/pexels-steve-johnson-13129480-2-mfrh-original-2048x1152.webp 2048w, https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-content\/uploads\/2023\/06\/pexels-steve-johnson-13129480-2-mfrh-original-600x338.webp 600w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<h1 class=\"wp-block-heading has-text-align-center\" style=\"margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;font-size:clamp(1.743rem, 1.743rem + ((1vw - 0.2rem) * 2.285), 3rem);text-transform:capitalize\">Welcome to GD Extensions<\/h1>\n\n\n\n<p class=\"has-text-align-center has-small-font-size\">A place where I upload my GDevelop Extensions<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-254f1302 wp-block-group-is-layout-constrained\" id=\"easyfullscreen\" style=\"min-height:512px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-columns alignfull wp-container-content-9cfa9a5a is-layout-flex wp-container-core-columns-is-layout-0ebe689f wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-column is-vertically-aligned-stretch has-base-color has-contrast-background-color has-text-color has-background has-link-color wp-elements-a3dac628f80f1ddb8fc92583a1cc7b5f is-layout-flow wp-container-core-column-is-layout-f8561097 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-bc752035 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60);padding-top:0;padding-right:var(--wp--preset--spacing--60);padding-bottom:0;padding-left:var(--wp--preset--spacing--60)\">\n<h2 class=\"wp-block-heading\">EasyFullscreen<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-dots\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30)\"\/>\n\n\n\n<p class=\"has-text-align-center\">The &#8220;EasyFullscreen&#8221; extension for GDevelop simplifies the process of toggling between windowed and fullscreen modes in your game. Instead of manually coding the fullscreen functionality, this extension provides a single action that you can trigger with a key press.<\/p>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-7ea49b0b wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75 is-style-fill\"><a class=\"wp-block-button__link has-base-color has-text-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.ulisesfreitas.com\/gdevelop-extensions\/EasyFullscreen.zip\" style=\"border-radius:0px;background-color:#d30000\" target=\"_blank\" rel=\"# noopener noreferrer noopener\">Download<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-9517baca wp-block-group-is-layout-constrained\">\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"GDevelop Extension - EasyFullscreen extension to allow you to toggle between windowed and fullscreen\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/_3OYLCOOQs8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n<\/div>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center has-global-padding is-layout-constrained wp-container-core-column-is-layout-6b463d9c wp-block-column-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-c642ffe7 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--40)\">\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">Easy way to toggle Full screen in GDevelop<\/h3>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n\n\n\n<p>Key features and how it works:<\/p>\n\n\n\n<p>__PARAM1__ represent the key you want to use to toggle fullscreen.<\/p>\n\n\n\n<p><strong>Toggling with a Key:<\/strong> You can specify a key (e.g., &#8220;F&#8221; by default, or any key you choose) that the player can press to switch between windowed and fullscreen modes.<\/p>\n\n\n\n<p><strong>Scene Variable:<\/strong> The extension uses a scene variable named <code>__EasyFullscreen_fullscreen<\/code> (a boolean value) to keep track of whether the game is currently in fullscreen mode.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If\u00a0<code>__EasyFullscreen_fullscreen<\/code>\u00a0is\u00a0<code>true<\/code>, the game is in fullscreen.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If\u00a0<code>__EasyFullscreen_fullscreen<\/code>\u00a0is\u00a0<code>false<\/code>, the game is in windowed mode.<\/li>\n<\/ul>\n\n\n\n<p><strong>How to Use:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Import the &#8220;EasyFullscreen&#8221; extension into your GDevelop project.<\/li>\n\n\n\n<li>Use the &#8220;Go fullscreen with this key: _PARAM1_ or (default: f)&#8221; action in your events.<\/li>\n\n\n\n<li>__PARAM1__ represent the key you want to use to toggle fullscreen.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-254f1302 wp-block-group-is-layout-constrained\" id=\"easysave\" style=\"min-height:512px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-columns alignfull reverse wp-container-content-9cfa9a5a is-layout-flex wp-container-core-columns-is-layout-0ebe689f wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-column is-vertically-aligned-center has-global-padding is-layout-constrained wp-container-core-column-is-layout-6b463d9c wp-block-column-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-36a7ff8f wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30);padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\">\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">Streamlined way to save and load game data in GDevelop<\/h3>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n\n\n\n<p><strong>Functiona<\/strong>Key Features and How It Works:<\/p>\n\n\n\n<p><strong>Local Storage:<\/strong> The extension stores data in the browser&#8217;s local storage, allowing data to persist between game sessions.<strong>lity:<\/strong><\/p>\n\n\n\n<p><strong>Simplified Saving and Loading:<\/strong> &#8220;EasySave&#8221; offers simple actions to save and load data without requiring manual variable creation or complex storage management.<\/p>\n\n\n\n<p><strong>Data Types:<\/strong> The extension supports saving and loading both strings (text) and numbers (numerical values).<\/p>\n\n\n\n<p><strong>EasySaveData Variable:<\/strong> The extension uses a scene variable named &#8220;EasySaveData&#8221; (a structure) to store loaded data. You can access the saved values using dot notation (e.g., <code>EasySaveData.playerName<\/code>, <code>EasySaveData.score<\/code>).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Key Actions:<\/strong><\/li>\n\n\n\n<li><strong>Init:<\/strong>\u00a0Initializes the EasySave manager. This should typically be called at the beginning of the scene.<\/li>\n\n\n\n<li><strong>Load All:<\/strong>\u00a0Loads all saved data from local storage and populates the &#8220;EasySaveData&#8221; scene variable.<\/li>\n\n\n\n<li><strong>Delete:<\/strong>\u00a0Deletes all saved data from local storage and clears the &#8220;EasySaveData&#8221; variable.<\/li>\n\n\n\n<li><strong>SaveString:<\/strong>\u00a0Saves a string value under a specified key (name).<\/li>\n\n\n\n<li><strong>SaveNumber:<\/strong>\u00a0Saves a numerical value under a specified key (name).<\/li>\n\n\n\n<li><strong>LoadString:<\/strong>\u00a0Loads a string value from local storage into the &#8220;EasySaveData&#8221; variable, associated with a specified key (name).<\/li>\n\n\n\n<li><strong>LoadNumber:<\/strong>\u00a0Loads a numerical value from local storage into the &#8220;EasySaveData&#8221; variable, associated with a specified key (name).<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-stretch has-base-color has-contrast-background-color has-text-color has-background has-link-color wp-elements-371794d1c81ec0e7070bf625b9178181 is-layout-flow wp-container-core-column-is-layout-f8561097 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-79b24685 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--50)\">\n<h2 class=\"wp-block-heading\">EasySave<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-dots\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30)\"\/>\n\n\n\n<p class=\"has-text-align-center\">The &#8220;EasySave&#8221; extension for GDevelop provides a user-friendly way to implement data saving and loading in your games. It abstracts away the complexities of managing variables and storage, allowing you to easily save and retrieve game data such as player progress, scores, settings, and more.<\/p>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-9517baca wp-block-group-is-layout-constrained\">\n<ul class=\"wp-block-list\">\n<li><strong>Usage:<\/strong><\/li>\n\n\n\n<li>Import the &#8220;EasySave&#8221; extension into your GDevelop project.<\/li>\n\n\n\n<li>Use the &#8220;Init&#8221; action at the start of your scene to initialize the system.<\/li>\n\n\n\n<li>Use the &#8220;SaveString&#8221; and &#8220;SaveNumber&#8221; actions to save data. Specify a name (key) for each value you want to save.<\/li>\n\n\n\n<li>Use the &#8220;LoadAll&#8221; action to load all saved data into the &#8220;EasySaveData&#8221; scene variable.<\/li>\n\n\n\n<li>Access the loaded data using\u00a0<code>VariableString(EasySaveData.yourKey)<\/code>\u00a0for strings and\u00a0<code>Variable(EasySaveData.yourKey)<\/code>\u00a0for numbers.<\/li>\n\n\n\n<li>Use the Delete Action to clear all data saved.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-7ea49b0b wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-base-color has-custom-crimson-red-background-color has-text-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.ulisesfreitas.com\/gdevelop-extensions\/EasySaveExtension.zip\" style=\"border-radius:0px\" target=\"_blank\" rel=\"# noopener noreferrer noopener\">Download Extension<\/a><\/div>\n\n\n\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-base-color has-custom-crimson-red-background-color has-text-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.ulisesfreitas.com\/gdevelop-extensions\/EasySaveExample.zip\" style=\"border-radius:0px\" target=\"_blank\" rel=\"# noopener noreferrer noopener\">Download Example<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-254f1302 wp-block-group-is-layout-constrained\" id=\"fancyscore\" style=\"min-height:512px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-columns alignfull wp-container-content-9cfa9a5a is-layout-flex wp-container-core-columns-is-layout-0ebe689f wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-column is-vertically-aligned-stretch has-base-color has-contrast-background-color has-text-color has-background has-link-color wp-elements-80a7fd1aa9355af2adc919c8ad37e074 is-layout-flow wp-container-core-column-is-layout-f8561097 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-bc752035 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60);padding-top:0;padding-right:var(--wp--preset--spacing--60);padding-bottom:0;padding-left:var(--wp--preset--spacing--60)\">\n<h2 class=\"wp-block-heading\">Fancy Score<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-dots\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30)\"\/>\n\n\n\n<p class=\"has-text-align-center\">The &#8220;FancyScore&#8221; extension for GDevelop is designed to enhance the presentation of scores in your games. It provides an easy way to format scores by allowing you to set a specific length and padding, making the scores look more visually appealing.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-7ea49b0b wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-base-color has-custom-crimson-red-background-color has-text-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.ulisesfreitas.com\/gdevelop-extensions\/FancyScoreAll.zip\" style=\"border-radius:0px\" target=\"_blank\" rel=\"# noopener noreferrer noopener\">Download Extension and Example<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-9517baca wp-block-group-is-layout-constrained\">\n<p><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"[GDevelop Extension] Fancy Score\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/9rG5a04pkyo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center has-global-padding is-layout-constrained wp-container-core-column-is-layout-6b463d9c wp-block-column-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-c642ffe7 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--40)\">\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">Straightforward way to format and display scores in GDevelop games<\/h3>\n\n\n\n<p class=\"has-text-align-center\">Simple and easy to use with shortcodes<\/p>\n\n\n\n<p>Key Features and How It Works:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Score Formatting:<\/strong>\u00a0The extension allows you to convert scores like &#8220;Gold x 1&#8221; into formats like &#8220;Gold x 0001&#8221; by padding the numbers with leading zeros.<\/li>\n\n\n\n<li><strong>Two Display Options:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Text Object:<\/strong>\u00a0Use a standard Text object to display the formatted score.<\/li>\n\n\n\n<li><strong>Bitmap Text Object:<\/strong>\u00a0Alternatively, use a Bitmap text object for a more stylized appearance.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Setting Length:<\/strong>\u00a0You can specify the total number of digits for the score. For example, if you set the length to 4, a score of 1 would be displayed as 0001.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Usage:<\/strong><\/li>\n\n\n\n<li><strong>Import the Extension:<\/strong>\u00a0Add the &#8220;FancyScore&#8221; extension to your GDevelop project.<\/li>\n\n\n\n<li><strong>Use in Events:<\/strong>\u00a0Utilize the provided actions in your event sheets to format scores. There are two actions available:<\/li>\n\n\n\n<li><strong>Set score for this Text:<\/strong>\u00a0This action formats the score for a standard Text object.<\/li>\n\n\n\n<li><strong>Set score for this Bitmap Text:<\/strong>\u00a0This action formats the score for a Bitmap text object.<br><strong>Parameters Needed:<\/strong><\/li>\n\n\n\n<li><strong>Text\/BMF Text Object:<\/strong>\u00a0Select the Text or Bitmap Text object where you want to display the score.<\/li>\n\n\n\n<li><strong>Length:<\/strong>\u00a0Specify the desired length for the score display.<\/li>\n\n\n\n<li><strong>Score:<\/strong>\u00a0Provide the score value that you wish to format.<\/li>\n\n\n\n<li><strong>Example Usage:<\/strong>\u00a0If you want to display a gold score of 10 with a length of 4, the text displayed will be &#8220;0010&#8221; (if using the default text).<br><br><\/li>\n<\/ul>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-254f1302 wp-block-group-is-layout-constrained\" id=\"getpropertiesdata\" style=\"min-height:512px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-columns alignfull reverse wp-container-content-9cfa9a5a is-layout-flex wp-container-core-columns-is-layout-0ebe689f wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-column is-vertically-aligned-center has-global-padding is-layout-constrained wp-container-core-column-is-layout-6b463d9c wp-block-column-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-36a7ff8f wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30);padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\">\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">Easy way to expose game properties in GDevelop<\/h3>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-9517baca wp-block-group-is-layout-constrained\">\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"[GDevelop Extension][Official] - Game Properties Data\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/rCuPJYjtje8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-stretch has-base-color has-contrast-background-color has-text-color has-background has-link-color wp-elements-8b0273c27bc3902abbb3468c19a5c20b is-layout-flow wp-container-core-column-is-layout-f8561097 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-79b24685 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--50)\">\n<h2 class=\"wp-block-heading has-text-align-center\">Get Properties Data<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-dots\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30)\"\/>\n\n\n\n<p class=\"has-text-align-center\">You can get the extension from GDevelop, just searh for GetPropertiesData inside GDevelop<\/p>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-7ea49b0b wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-base-color has-custom-crimson-red-background-color has-text-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.ulisesfreitas.com\/gdevelop-extensions\/GetPropertiesData.zip\" style=\"border-radius:0px\" target=\"_blank\" rel=\"noreferrer noopener\">Download Example<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-254f1302 wp-block-group-is-layout-constrained\" id=\"limitdraganddrop\" style=\"min-height:512px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-columns alignfull wp-container-content-9cfa9a5a is-layout-flex wp-container-core-columns-is-layout-0ebe689f wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-column is-vertically-aligned-stretch has-base-color has-contrast-background-color has-text-color has-background has-link-color wp-elements-f818b0bc3e19b29420bbd9402659be00 is-layout-flow wp-container-core-column-is-layout-f8561097 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-bc752035 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60);padding-top:0;padding-right:var(--wp--preset--spacing--60);padding-bottom:0;padding-left:var(--wp--preset--spacing--60)\">\n<h2 class=\"wp-block-heading has-text-align-center\"><strong>Limit Drag &amp; Drop<\/strong> extension<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-dots\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30)\"\/>\n\n\n\n<p class=\"has-text-align-center\">The <strong>Limit Drag &amp; Drop<\/strong> extension is designed for game development purposes, particularly within environments that allow for drag-and-drop functionality. This extension enables developers to restrict the movement of draggable objects to either horizontal or vertical directions, enhancing control over object behavior during gameplay.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-7ea49b0b wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-base-color has-custom-crimson-red-background-color has-text-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.ulisesfreitas.com\/gdevelop-extensions\/LimitDragAndDropExample.zip\" style=\"border-radius:0px\" target=\"_blank\" rel=\"# noopener noreferrer noopener\">Download Example<\/a><\/div>\n\n\n\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-base-color has-custom-crimson-red-background-color has-text-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.ulisesfreitas.com\/gdevelop-extensions\/LimitDragAndDropExtension.zip\" style=\"border-radius:0px\" target=\"_blank\" rel=\"# noopener noreferrer noopener\">Download Extension<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-9517baca wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Actions Provided by the Extension:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>onCreated<\/strong>: This action is triggered when the object is created, storing its initial <code>X<\/code> and <code>Y<\/code> positions (StartX and StartY) for reference.<\/li>\n\n\n\n<li><strong>LimitHorizontal<\/strong>: When invoked, if the object is currently being dragged, this action sets the object\u2019s <code>Y<\/code> position back to its original <code>StartY<\/code>, effectively locking its vertical movement.<\/li>\n\n\n\n<li><strong>LimitVertical<\/strong>: Similar to the horizontal limitation, this action resets the object&#8217;s <code>X<\/code> position back to its original <code>StartX<\/code> if dragged, restricting movement to vertical only.<\/li>\n\n\n\n<li><strong>doStepPostEvents<\/strong>: This action updates the object&#8217;s starting position variables (StartX and StartY) after the events have been processed, allowing for continuous tracking during movement.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center has-global-padding is-layout-constrained wp-container-core-column-is-layout-6b463d9c wp-block-column-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-c642ffe7 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--40)\">\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">Limit movement directions<\/h3>\n\n\n\n<p>Key Features:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Limit Movement Directions<\/strong>: Developers can limit the movement of objects using this extension to only allow them to move on either the <strong>X-axis (horizontal)<\/strong> or the <strong>Y-axis (vertical)<\/strong>, preventing diagonal dragging and thus simplifying the interaction for users.<\/li>\n\n\n\n<li><strong>Behavior Integration<\/strong>: The extension requires the object to have a draggable behavior already applied. This ensures that the objects can be interacted with using drag-and-drop mechanics.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">How to Use This Extension:<\/h3>\n\n\n\n<p><strong>Limit to Move Only Vertically<\/strong>: This action will allow the object to move up and down, while its horizontal position remains constant.<\/p>\n\n\n\n<p><strong>Add Behavior<\/strong>: First, you need to attach the <code>LimitDragAndDrop<\/code> behavior to any object that you want to restrict movement for.<\/p>\n\n\n\n<p><strong>Set Movement Limit<\/strong>: In your events, you can choose one of two actions to trigger:<\/p>\n\n\n\n<p><strong>Limit to Move Only Horizontally<\/strong>: This action will constrain the object to move left and right, while maintaining its vertical position fixed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Practical Applications:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Puzzle Games<\/strong>: Ideal for games where objects need to be aligned, such as puzzle games where pieces should be arranged in a certain order.<\/li>\n\n\n\n<li><strong>UI Elements<\/strong>: Useful in user interface design where specific controls (like sliders or switches) should only move in one direction, enhancing usability.<\/li>\n\n\n\n<li><strong>Constraints in Games<\/strong>: In gaming scenarios where physics constraints are important, such as keeping characters on a platform or restricting enemies to move within certain bounds.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-254f1302 wp-block-group-is-layout-constrained\" id=\"listscroll\" style=\"min-height:512px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-columns alignfull reverse wp-container-content-9cfa9a5a is-layout-flex wp-container-core-columns-is-layout-0ebe689f wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-column is-vertically-aligned-center has-global-padding is-layout-constrained wp-container-core-column-is-layout-6b463d9c wp-block-column-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-36a7ff8f wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30);padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\">\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">Create and manage your customers and invoices<\/h3>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n\n\n\n<p>Key Functionalities<\/p>\n\n\n\n<p><code>BaseObject<\/code>: The object to which\u00a0<code>Object<\/code>\u00a0might be pinned.<\/p>\n\n\n\n<p><strong><code>IsPinned<\/code> Condition:<\/strong><\/p>\n\n\n\n<p><strong>Description:<\/strong>\u00a0Checks whether an object (<code>Object<\/code>) is pinned to another object (<code>BaseObject<\/code>) using the\u00a0<code>PinTo<\/code>\u00a0behavior.<\/p>\n\n\n\n<p><strong>Usage:<\/strong>\u00a0Allows event-driven logic based on whether an object is currently linked or &#8220;stuck&#8221; to another, enabling dynamic game responses based on object relationships.<\/p>\n\n\n\n<p><strong>Parameters:<\/strong><\/p>\n\n\n\n<p><code>Object<\/code>: The object being checked for pinning.<\/p>\n\n\n\n<p><code>Behavior<\/code>: Specifies the\u00a0<code>PinTo<\/code>\u00a0behavior attached to the object.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong><code>PinTo<\/code> Behavior:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Description:<\/strong>\u00a0This behavior allows an object to be &#8220;stuck&#8221; or &#8220;pinned&#8221; to another object, maintaining a relative position, angle, width, and height. It facilitates movement and transformation synchronization between the pinned object and its base object.<\/li>\n\n\n\n<li><strong>Functions:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong><code>onCreated<\/code>\u00a0Action:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Description:<\/strong>\u00a0Initializes the behavior upon object creation. It sets up scene and behavior-specific methods to manage pinned objects and their updates.<\/li>\n\n\n\n<li><strong>Functionality:<\/strong>\u00a0Manages deletion of base objects to automatically unstick related &#8220;pinto&#8221; objects, preventing dangling references and maintaining scene integrity.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><code>doStepPreEvents<\/code>\u00a0Action:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Description:<\/strong>\u00a0Executed before each event step to reset the\u00a0<code>followingDone<\/code>\u00a0flag, ensuring objects are ready for base object updates.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><code>doStepPostEvents<\/code>\u00a0Action:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Description:<\/strong>\u00a0Follows the base object by updating the position, angle, width, and height of the pinned object.<\/li>\n\n\n\n<li><strong>Functionality:<\/strong>\u00a0Uses the\u00a0<code>followBaseObject<\/code>\u00a0method to synchronize with the base object, updating relative coordinates and transformations.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><code>Stick<\/code>\u00a0Action:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Description:<\/strong>\u00a0Pins an object to a specified base object.<\/li>\n\n\n\n<li><strong>Functionality:<\/strong>\u00a0Establishes the relationship between the pinned object and its base, updating the coordinates and transformations to maintain synchronization.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><code>Unstick<\/code>\u00a0Action:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Description:<\/strong>\u00a0Removes the pinning, detaching the object from its base.<\/li>\n\n\n\n<li><strong>Functionality:<\/strong>\u00a0Breaks the relationship between the pinned object and its base, allowing it to move independently.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><code>onDestroy<\/code>\u00a0Action:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Description:<\/strong>\u00a0Cleans up the pinned object when it is destroyed.<\/li>\n\n\n\n<li><strong>Functionality:<\/strong>\u00a0Removes the behavior from the list of pinned objects, preventing memory leaks and ensuring proper garbage collection.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Property Descriptors:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong><code>OnlyFollowPosition<\/code>:<\/strong>\u00a0Boolean property that, when true, only follows the position of the base object, ignoring angle and dimensions.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-stretch has-base-color has-contrast-background-color has-text-color has-background has-link-color wp-elements-1fcb5954fe01f65398072f1582d6d52f is-layout-flow wp-container-core-column-is-layout-f8561097 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-79b24685 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--50)\">\n<h2 class=\"wp-block-heading has-text-align-center\"><code>ListScroll<\/code> extension<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-dots\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30)\"\/>\n\n\n\n<p>(This code is for learning purposes)<\/p>\n\n\n\n<p class=\"has-text-align-center\">The <code>ListScroll<\/code> extension is designed to implement a scrolling list functionality in a game development environment, enabling a more dynamic and interactive user interface. It incorporates a <code>PinTo<\/code> behavior to manage object positioning relative to a base object, facilitating the creation of scrolling lists.<\/p>\n\n\n\n<p class=\"has-text-align-center\">Usage Scenarios<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scrolling Lists:<\/strong> The <code>ListScroll<\/code> extension can create scrolling lists where list items (objects with the <code>PinTo<\/code> behavior) are pinned to a &#8220;viewport&#8221; object. As the viewport moves, the list items follow, creating a scrolling effect.<\/li>\n\n\n\n<li><strong>Dynamic UI:<\/strong> Allows for creating user interfaces where elements are dynamically linked and move together, providing a cohesive user experience.<\/li>\n\n\n\n<li><strong>Complex Object Relationships:<\/strong> Enables the creation of complex object relationships where the behavior of one object influences others, leading to more sophisticated gameplay mechanics.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Summary<\/h3>\n\n\n\n<p class=\"has-text-align-center\">The <code>ListScroll<\/code> extension, through the <code>PinTo<\/code> behavior and associated functions, facilitates dynamic object relationships and scrolling effects. By enabling objects to stick to each other and maintain relative transformations, it enhances the development of complex and interactive game elements.<\/p>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-space-between is-nowrap is-layout-flex wp-container-core-buttons-is-layout-eeda8eba wp-block-buttons-is-layout-flex\" style=\"margin-top:0;margin-bottom:0\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-50\"><a class=\"wp-block-button__link has-base-color has-custom-crimson-red-background-color has-text-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.ulisesfreitas.com\/gdevelop-extensions\/Listscroll-Example.zip\" style=\"border-radius:0px\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Download Example<\/a><\/div>\n\n\n\n<div class=\"wp-block-button has-custom-width wp-block-button__width-50\"><a class=\"wp-block-button__link has-base-color has-custom-crimson-red-background-color has-text-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.ulisesfreitas.com\/gdevelop-extensions\/ListScrollExtension.zip\" style=\"border-radius:0px\" target=\"_blank\" rel=\"noreferrer noopener\">Download Extension<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-254f1302 wp-block-group-is-layout-constrained\" id=\"movingplatforms\" style=\"min-height:512px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-columns alignfull wp-container-content-9cfa9a5a is-layout-flex wp-container-core-columns-is-layout-0ebe689f wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-column is-vertically-aligned-stretch has-base-color has-contrast-background-color has-text-color has-background has-link-color wp-elements-ea2ca5e39b99288b3c5fbb2b374481db is-layout-flow wp-container-core-column-is-layout-f8561097 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-bc752035 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60);padding-top:0;padding-right:var(--wp--preset--spacing--60);padding-bottom:0;padding-left:var(--wp--preset--spacing--60)\">\n<h2 class=\"wp-block-heading\">Moving Platforms<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-dots\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30)\"\/>\n\n\n\n<p class=\"has-text-align-center\">The <code>MovingPlatform<\/code> extension facilitates the creation of moving platforms in a game environment. It allows platforms to move vertically (Up\/Down) or horizontally (Left\/Right) between designated points. Here&#8217;s a breakdown of its functionality:<\/p>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-7ea49b0b wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-base-color has-custom-crimson-red-background-color has-text-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.ulisesfreitas.com\/gdevelop-extensions\/MovingPlatform.json.zip\" style=\"border-radius:0px\" target=\"_blank\" rel=\"# noopener noreferrer noreferrer noopener\">Download Example<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-9517baca wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Key Features and Actions<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>(Moving Platform) Add moving platform Behavior:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Description:<\/strong>\u00a0This is the core behavior added to the base sprite, enabling it to manage the creation and movement of the moving platforms.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Create Moving Platforms Action:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Functionality<\/strong>: Creates multiple moving platforms based on the defined base sprite, number of platforms, and direction.<\/li>\n\n\n\n<li><strong>Parameters<\/strong>:\n<ul class=\"wp-block-list\">\n<li><code>Object<\/code>: The base sprite that contains the movement points.<\/li>\n\n\n\n<li><code>Behavior<\/code>: Refers to the\u00a0<code>MovingPlatform<\/code>\u00a0behavior attached to the base sprite.<\/li>\n\n\n\n<li><code>MovingPlatform<\/code>: The sprite object that will serve as the moving platform.<\/li>\n\n\n\n<li><code>Platform<\/code>: The PlatformBehavior to enable the moving platform.<\/li>\n\n\n\n<li><code>Quantity<\/code>: Specifies how many moving platforms to create.<\/li>\n\n\n\n<li><code>Direction<\/code>: The direction of movement (&#8220;Up&#8221;, &#8220;Down&#8221;, &#8220;Left&#8221;, &#8220;Right&#8221;).<\/li>\n\n\n\n<li><code>Debug<\/code>: A text object for displaying debug information.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Operational Logic<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Calculates the spacing between platforms based on the base sprite&#8217;s dimensions and the specified quantity.<\/li>\n\n\n\n<li>Iterates through the specified quantity to create each moving platform.<\/li>\n\n\n\n<li>Positions each platform based on the &#8220;Top,&#8221; &#8220;Bottom,&#8221; &#8220;Left,&#8221; or &#8220;Right&#8221; points of the base sprite, depending on the chosen direction.<\/li>\n\n\n\n<li>Links the created\u00a0<code>MovingPlatform<\/code>\u00a0object to the base\u00a0<code>Object<\/code>\u00a0using the\u00a0<code>LinkedObjects<\/code>\u00a0behavior.<\/li>\n\n\n\n<li>Sets an object variable\u00a0<code>__MovingPlatformDirection__<\/code>\u00a0on the\u00a0<code>MovingPlatform<\/code>\u00a0to indicate its movement direction.<\/li>\n\n\n\n<li>Alternates the\u00a0<code>__MovingPlatformWalkable__<\/code>\u00a0variable to\u00a0<code>True<\/code>\u00a0or\u00a0<code>False<\/code>\u00a0every other platform. This determines whether the platform is initially active.<\/li>\n\n\n\n<li>Activates or deactivates the Platform behavior based on the\u00a0<code>__MovingPlatformWalkable__<\/code>\u00a0variable.<\/li>\n\n\n\n<li>Adjusts the Z order (layer) of the moving platforms for visual layering.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center has-global-padding is-layout-constrained wp-container-core-column-is-layout-6b463d9c wp-block-column-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-c642ffe7 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--40)\">\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">Easy way to create moving platforms in GDevelop<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">Core Functionality<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Moving Platform Creation<\/strong>:\n<ul class=\"wp-block-list\">\n<li>The extension utilizes two primary sprites:\n<ul class=\"wp-block-list\">\n<li><strong>Base Sprite<\/strong>: This sprite serves as the foundation for the moving platforms. It requires specific points named &#8220;Top&#8221; and &#8220;Bottom&#8221; for vertical movement, or &#8220;Left&#8221; and &#8220;Right&#8221; for horizontal movement.<\/li>\n\n\n\n<li><strong>Moving Platform Sprite<\/strong>: This is the actual platform that will be moving.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Directional Movement<\/strong>:\n<ul class=\"wp-block-list\">\n<li>The platforms can move in four directions: Up, Down, Left, and Right. The direction is determined during platform creation.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Move Platforms Action:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Functionality<\/strong>: Initiates the movement of the created platforms.<\/li>\n\n\n\n<li><strong>Parameters<\/strong>:\n<ul class=\"wp-block-list\">\n<li><code>Object<\/code>: The base sprite managing the moving platforms.<\/li>\n\n\n\n<li><code>Behavior<\/code>: The\u00a0<code>MovingPlatform<\/code>\u00a0behavior.<\/li>\n\n\n\n<li><code>MovingPlatform<\/code>: The moving platform sprite.<\/li>\n\n\n\n<li><code>Platform<\/code>: PlatformBehavior to move the platform.<\/li>\n\n\n\n<li><code>Speed<\/code>: The speed at which the platforms move (in pixels per second).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Operational Logic<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Applies a force to each platform based on its\u00a0<code>__MovingPlatformDirection__<\/code>\u00a0variable.<\/li>\n\n\n\n<li>Uses collision checks with the base object&#8217;s points to change platform direction.<\/li>\n\n\n\n<li>Toggles the\u00a0<code>__MovingPlatformWalkable__<\/code>\u00a0variable and updates the Z order when a collision is detected.<\/li>\n\n\n\n<li>Activates or deactivates the Platform behavior based on the\u00a0<code>__MovingPlatformWalkable__<\/code>\u00a0variable.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<div style=\"height:41px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-29cb0303\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Required Setup<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Base Sprite Points<\/strong>: The base sprite must have specific points defined:\n<ul class=\"wp-block-list\">\n<li>For vertical movement: &#8220;Top&#8221; and &#8220;Bottom.&#8221;<\/li>\n\n\n\n<li>For horizontal movement: &#8220;Left&#8221; and &#8220;Right.&#8221;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Moving Platform Sprite<\/strong>: This sprite represents the actual moving platform and should have the Platformer Behavior.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">How It Works<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The extension creates moving platforms linked to a base object and moves them in specified directions.<\/li>\n\n\n\n<li>Collision detection with the base object&#8217;s defined points triggers a change in the platform\u2019s movement direction.<\/li>\n\n\n\n<li>The\u00a0<code>__MovingPlatformWalkable__<\/code>\u00a0variable controls whether the platform is active and passable.<\/li>\n\n\n\n<li>The platform\u2019s Z order changes when the direction is toggled, affecting its visual layering in the scene.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Use Cases<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Platformer Games<\/strong>: Creating dynamic and interactive levels with moving platforms.<\/li>\n\n\n\n<li><strong>Puzzle Games<\/strong>: Designing puzzles that require players to navigate moving platforms.<\/li>\n\n\n\n<li><strong>Interactive Environments<\/strong>: Adding moving elements to create a more engaging and dynamic game world.<\/li>\n<\/ul>\n\n\n\n<p>In summary, the <code>MovingPlatform<\/code> extension simplifies the creation and management of moving platforms by automating the setup, movement, and collision handling, making it a valuable tool for game developers.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-254f1302 wp-block-group-is-layout-constrained\" id=\"rotatingplatforms\" style=\"min-height:512px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-columns alignfull wp-container-content-9cfa9a5a is-layout-flex wp-container-core-columns-is-layout-0ebe689f wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-column is-vertically-aligned-center has-global-padding is-layout-constrained wp-container-core-column-is-layout-6b463d9c wp-block-column-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-c642ffe7 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--40)\">\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">Easy way to create rotating platforms in GDevelop<\/h3>\n\n\n\n<p><strong>How it Works:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Attaching the Behavior:<\/strong>\u00a0You attach the\u00a0<code>RotatingPlatforms<\/code>\u00a0behavior to a sprite object (the base).<\/li>\n\n\n\n<li><strong>Defining Rotation Points:<\/strong>\u00a0Crucially, you need to add\u00a0<em>points<\/em>\u00a0to your base sprite in the sprite editor. The extension will create a rotating platform sprite at each of these points. The name of these points must follow a pattern: &#8220;Point1&#8221;, &#8220;Point2&#8221;, &#8220;Point3&#8221;, etc.<\/li>\n\n\n\n<li><strong>Initialization:<\/strong>\u00a0You use the &#8220;Init&#8221; action to create the rotating platform sprites at the specified points around the base sprite.<\/li>\n\n\n\n<li><strong>Rotation Control:<\/strong>\u00a0You use the &#8220;SetSpeed&#8221; action to define the rotation speed and direction, and the &#8220;Rotate&#8221; and &#8220;Stop&#8221; actions to start and stop the rotation.<\/li>\n<\/ol>\n\n\n\n<p><strong>In Summary:<\/strong><\/p>\n\n\n\n<p>This GDevelop extension simplifies the creation of rotating platforms by handling the instantiation, positioning, and rotation logic for you. You just need to provide the sprites, define the rotation points on the base sprite, and control the rotation speed and start\/stop actions. The <code>_RotatingPlatform_CanStop_<\/code> variable provides individual control over whether specific platforms can be stopped.<\/p>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-stretch has-base-color has-contrast-background-color has-text-color has-background has-link-color wp-elements-2404a8783963629317405f93af7c5b49 is-layout-flow wp-container-core-column-is-layout-f8561097 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-bc752035 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60);padding-top:0;padding-right:var(--wp--preset--spacing--60);padding-bottom:0;padding-left:var(--wp--preset--spacing--60)\">\n<h2 class=\"wp-block-heading has-text-align-center\">Rotating Platforms<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-dots\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30)\"\/>\n\n\n\n<p class=\"has-text-align-center\">This extension provides a behavior to create rotating platforms using two sprites:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><\/li>\n<\/ol>\n\n\n\n<p class=\"has-text-align-center\"><strong><br>Base Sprite:<\/strong>\u00a0This is the central sprite around which the platforms will rotate. You add &#8220;points&#8221; to this sprite, which act as locations where the rotating platforms will be created.<\/p>\n\n\n\n<p><strong>Rotating Platform Sprite:<\/strong>\u00a0This is the sprite that will actually rotate around the base.<\/p>\n\n\n\n<p>The extension allows you to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Set the rotation speed, determining the direction (clockwise or counterclockwise) and speed of rotation.<\/li>\n\n\n\n<li>Start or stop all rotating platforms.<\/li>\n\n\n\n<li>Control in the game if a rotating platform is allowed to be stopped or not using a variable\u00a0<code>_RotatingPlatform_CanStop_<\/code><\/li>\n<\/ul>\n\n\n\n<p><strong>Key Features &amp; Functionality:<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>Stop (Stop all rotating platforms):<\/strong>\u00a0Stops the rotation of\u00a0<em>all<\/em>\u00a0platforms using the behavior.<\/p>\n\n\n\n<p><strong>RotatingPlatform Behavior:<\/strong>\u00a0This is the core behavior you attach to your base sprite.<\/p>\n\n\n\n<p><strong>Object Variables:<\/strong>\u00a0It introduces a Boolean object variable called\u00a0<code>_RotatingPlatform_CanStop_<\/code>. This variable is initialized to\u00a0<code>True<\/code>\u00a0at the beginning of the scene for all instances of the object with the behavior. You can change this variable during the game to control whether a specific rotating platform can be stopped or not.<\/p>\n\n\n\n<p><strong>Actions:<\/strong>\u00a0The extension provides the following actions that you can use in your events:<\/p>\n\n\n\n<p><strong>Init (Create a rotating platform):<\/strong>\u00a0This action creates the rotating platforms around the base sprite. You specify:<\/p>\n\n\n\n<p>The base sprite.<\/p>\n\n\n\n<p>The sprite to use for the rotating platforms.<\/p>\n\n\n\n<p>The number of platforms to create (quantity). The number of points that contains the base sprite are the quantity of rotating platforms that are going to be created.<\/p>\n\n\n\n<p><strong>Run:<\/strong>\u00a0This action starts the rotation of the platforms<\/p>\n\n\n\n<p><strong>SetSpeed:<\/strong>\u00a0This action sets the rotation speed (in seconds). A negative value rotates counter-clockwise, and a positive value rotates clockwise.<\/p>\n\n\n\n<p><strong>Rotate (Start all rotating platforms):<\/strong>\u00a0Starts the rotation of\u00a0<em>all<\/em>\u00a0platforms using the behavior.<\/p>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-7ea49b0b wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-base-color has-custom-crimson-red-background-color has-text-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.ulisesfreitas.com\/gdevelop-extensions\/RotatingPlatformsExample.zip\" style=\"border-radius:0px\" target=\"_blank\" rel=\"# noopener noreferrer noopener\">Download Example<\/a><\/div>\n\n\n\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-base-color has-custom-crimson-red-background-color has-text-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.ulisesfreitas.com\/gdevelop-extensions\/RotatingPlatformExtension.zip\" style=\"border-radius:0px\" target=\"_blank\" rel=\"# noopener noreferrer noopener\">Download Extension<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-254f1302 wp-block-group-is-layout-constrained\" id=\"spikestrap\" style=\"min-height:512px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-columns alignfull wp-container-content-9cfa9a5a is-layout-flex wp-container-core-columns-is-layout-0ebe689f wp-block-columns-is-layout-flex\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<div class=\"wp-block-column is-vertically-aligned-stretch has-base-color has-contrast-background-color has-text-color has-background has-link-color wp-elements-b6ecbf4ab601a3106eceb5944c71fb16 is-layout-flow wp-container-core-column-is-layout-f8561097 wp-block-column-is-layout-flow\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-bc752035 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60);padding-top:0;padding-right:var(--wp--preset--spacing--60);padding-bottom:0;padding-left:var(--wp--preset--spacing--60)\">\n<h2 class=\"wp-block-heading has-text-align-center\"><strong>SpikesTrap<\/strong> extension<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-dots\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30)\"\/>\n\n\n\n<p class=\"has-text-align-center\">This GDevelop extension is called &#8220;SpikesTrap&#8221; and its primary function is to create a timed spike trap in a game. Here&#8217;s a breakdown of its functionality:<\/p>\n\n\n\n<p class=\"has-text-align-center\">The extension allows you to set up a trap that triggers when a player collides with it. The trap consists of two parts:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><\/li>\n<\/ol>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-7ea49b0b wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-base-color has-custom-crimson-red-background-color has-text-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.ulisesfreitas.com\/gdevelop-extensions\/SpikesTrap.zip\" style=\"border-radius:0px\" target=\"_blank\" rel=\"# noopener noreferrer noopener\">Download Extension<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-9517baca wp-block-group-is-layout-constrained\">\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"GDevelop Unofficial Extension Spikes Trap\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/I4QKhhLoN-A?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n<\/div>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center has-global-padding is-layout-constrained wp-container-core-column-is-layout-6b463d9c wp-block-column-is-layout-constrained\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;flex-basis:50%\">\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-c642ffe7 wp-block-group-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--40)\">\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">Create spike traps in GDevelop<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Base<\/strong>: A sprite that serves as the base for the spikes.<\/li>\n\n\n\n<li><strong>Spikes<\/strong>: A sprite that represents the spikes.<\/li>\n<\/ol>\n\n\n\n<p><strong>Behavior:<\/strong><\/p>\n\n\n\n<p>When the player collides with the base sprite, the spikes sprite will move up to a certain position, wait for a specified cooldown time, and then move back down to its original position.<\/p>\n\n\n\n<p><strong>Parameters:<\/strong><\/p>\n\n\n\n<p>The extension has several parameters that can be configured to customize its behavior:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Player<\/strong>: The player object that will trigger the trap.<\/li>\n\n\n\n<li><strong>SpikesTrapBase<\/strong>: The base sprite that serves as the foundation for the spikes.<\/li>\n\n\n\n<li><strong>Spikes<\/strong>: The spikes sprite that will move up and down.<\/li>\n\n\n\n<li><strong>Tween<\/strong>: A tween behavior that controls the movement of the spikes.<\/li>\n\n\n\n<li><strong>MoveUpTime<\/strong>: The duration of the upward movement of the spikes in milliseconds.<\/li>\n\n\n\n<li><strong>MoveDownTime<\/strong>: The duration of the downward movement of the spikes in milliseconds.<\/li>\n\n\n\n<li><strong>MoveAnimation<\/strong>: The animation to use for the spikes&#8217; movement (e.g., linear, easeInQuad, etc.).<\/li>\n\n\n\n<li><strong>Cooldown<\/strong>: The time in seconds between upward and downward movements of the spikes.<\/li>\n<\/ol>\n\n\n\n<p><strong>How it works:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>When the player collides with the base sprite, the extension checks if the spikes sprite is already moving up or down.<\/li>\n\n\n\n<li>If it&#8217;s not moving, it creates a tween behavior to move the spikes sprite up to a certain position.<\/li>\n\n\n\n<li>After a specified cooldown time, it removes the tween behavior and creates a new one to move the spikes sprite back down to its original position.<\/li>\n\n\n\n<li>The process repeats indefinitely until the player stops colliding with the base sprite.<\/li>\n<\/ol>\n\n\n\n<p>Overall, this extension provides a simple and customizable way to create timed spike traps in GDevelop games.<\/p>\n\n\n\n<div style=\"height:40px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-28f0cd9b\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50)\">\n<p><\/p>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-7ea49b0b wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-base-color has-custom-crimson-red-background-color has-text-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/www.ulisesfreitas.com\/gdevelop-extensions\/\" style=\"border-radius:0px\" target=\"_blank\" rel=\"# noopener noreferrer noopener\">You want the old site is here<\/a><\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>EasyFullscreen The &#8220;EasyFullscreen&#8221; extension for GDevelop simplifies the process of toggling between windowed and fullscreen modes in your [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":429,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-json\/wp\/v2\/pages\/2","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-json\/wp\/v2\/comments?post=2"}],"version-history":[{"count":141,"href":"https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-json\/wp\/v2\/pages\/2\/revisions"}],"predecessor-version":[{"id":2216,"href":"https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-json\/wp\/v2\/pages\/2\/revisions\/2216"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-json\/wp\/v2\/media\/429"}],"wp:attachment":[{"href":"https:\/\/www.ulisesfreitas.com\/wp-gd-extensions\/wp-json\/wp\/v2\/media?parent=2"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}