2d Essentials Versions Save

Godot 2D essentials is a collection of production ready components to speed up the development of your 2d games. This components handles basic behaviours without affecting the particular logic of your game.

v1.7.6

7 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/godotessentials/2d-essentials/compare/v1.7.5...v1.7.6

v1.7.5

7 months ago

In this release two new singletons have been implemented to handle environment variables and achievements locally in your game. Few minor bugfixes in the code and a new helper to generate random strings and validate urls.

  • GodotEssentialsEnvironment was initially a separated plugin but as it's not specially complex I decide to move into this plugin as singleton.
  • GodotEssentialsAchievements allow interact with achievements in your reading from a template source and using minimal security implementation like encryption files to track locally the achievement progress of the player
  • GodotEssentialsHelpers have 2 new functions, generate_random_string() and is_valid_url()
  • Contributing guidelines has been implemented to start receiving contributions from others in a standardised way for everyone

A settings section for the plugin has been created for this new singletons, I expected to expand with more parameters in the future: image

v1.7.0

7 months ago

This version continues expanded the available functionality to make our life easier, in this time an AudioManager and a SceneTransitioner are being implemented to handle the repetitive things around this topics.

  • All the singleton or components available now have standardized prefix "GodotEssentials" so for example the AudioManager can be accessed as GodotEssentialsAudio. This is to avoid any collision with existing class names in your project.
  • GodotEssentialsAudio documentation shows what can be done, at the moment changing the volume as well as accessing this value of the different buses in your project.
  • GodotEssentialsSceneTransitioner was created with the aim to manage the transitions of your game in an easy way without leaving out customisation. It applies the normal flow of scene changes as well as loading screens. Create your scenes, transition them with this tool
  • Removed files and scenes that were not being used inside the plugin
  • Error and warning messages that comes from the plugin now have the prefix "Godot2DEssentialsPlugin:" prefix to know that they come from here

v1.6.3

8 months ago
  • Bugfix in the return of information from the get_health_percent function used in HealthComponent. #2
  • Some adjustments in the internal logic of the HealthComponent to keep the parameters within the action range of the defined maximum and overflow values.
  • New function in Helpers to generate random strings, more detail in the official documentation

v1.6.1

8 months ago

This release was focused in supporting the plugin and fixing those little bugs while I was creating the examples of the components in action.

  • New examples have been added to README.md.
  • Minor bugs, primarily in motion components, have been fixed.
  • The finite state machine can now enable a states stack and pass external parameters between state changes.

v1.5.9

8 months ago

I acknowledge that this latest release may potentially introduce challenges for projects currently utilizing older versions of the plugin.

My decision to proceed with this update stems from the improved manageability it offers in handling diverse movements and functionalities. Additionally, given that the plugin may not be widely adopted for serious use, I believe this transition will be relatively smooth and I don't want to change the major version yet to 2.0.

I extend my apologies in advance to anyone who might have been using the previous version and is planning to upgrade to the new release.

The modifications primarily affect the VelocityComponent2D which has now been divided into three distinct components, all sharing a common base:

The functions are named the same but called from different components. All the changes and new components are documented in the updated version of the official documentation.

I intend to continue maintaining this plugin, allocating a few hours each week to its upkeep. This effort not only supports my personal projects but also allows me to refine it based on the limitations I encounter while using myself this components.


  • Examples folder has been removed from the repository as im building game examples using the components into separate repositories to make it more comfortable and with a focus on the functionality I want to expose. This repositories will be uploaded into the godotessentials organization.
  • VelocityComponent2D has been deleted
  • Extracted the common motion functions and parameters to share between components related with movement, more details here
  • A new GridMovementComponent has been added to facilitate movement in such systems, this is a very basic version.
  • A new ProjectileComponent to manage the common things when developing projectiles. It is in an alpha version and I will probably make some changes in the future while developing the example top-down shooter.
  • A finite state machine node has been created along with a State node to. This finite state machine is designed to cover 95% of use cases, providing essential functionality and a basic State node that can be extended.
  • Some new functions added into Helpers singleton to handle normalization and detect diagonal vectors
  • Overall improvements have been made to the entire code, along with the resolution of some minor bugs that could occur in certain situations.

v1.3.0

8 months ago

This update introduces changes to the license, shifting from GPLv3 to MIT, and includes new functionalities and modifications to the internal API of the health component.

  • The license has been updated to MIT.
  • The HealthComponent now features additional exported variables: max_health_overflow and health_overflow_percentage. These variables enable extending the maximum health limit to simulate behaviors such as shields and buffs. The health_overflow_percentage can be adjusted at any time, as it is dependent on the computed max_health_overflow variable.
  • The get_health_percent() function now provides more comprehensive information by returning a dictionary with the current health percentage, overflow health percentage, and overflow health value.
  • Refactor: The invulnerability_changed signal now activates through the Godot set on the boolean variable is_invulnerable.

v1.2.4

8 months ago
  • Coyote Time now deactivates gravity while active, preventing the node from falling due to gravity even if a jump is initiated within this time range.
  • Signals have been enhanced by self-connecting to toggle boolean variables associated with gravity, wall climbing, jumping, dashing, etc.
  • Improvements have been made to the Acceleration and Deceleration functions, allowing you to apply them exclusively to the x-axis or make them instantaneous.
  • reset_jump_queue and reset_dash_queue no longer perform checks; resets now occur unconditionally, while conditions are moved outside.
  • Introducing a new function: suspend_gravity_for_duration(duration: float). Temporarily disables gravity force for the specified duration, resulting in gravity_enabled being set to false.
  • A new signal, coyote_time_started, is emitted upon activation of this time interval.

v1.2.0

8 months ago

This release focuses on providing a working version of the main components, fixing some bugs in the movement that now allow to create a more accurate movement.

  • Fixes multiple issues with dash, jump and detecting walls on VelocityComponent2D that unleashed unwanted behaviours

  • Now the values from jump height, jump time to peak and jump time to fall can be changed dinamically and will update the other parameters (jump velocity, jump gravity and fall gravity) in runtime

  • Added new exported parameters and updated the comments to show in the Godot Editor for VelocityComponent2D

  • VelocityComponent2D connects to his own signals to activate and deactivate values in a fluid way without relying on conditionals within some functions that do not correspond to them.

  • Dash speed multipler minimum value now it's 1 to avoid working with lower values and reduce the speed instead of increasing it.

  • Dash now decelerate the previous velocity to prevent speed accumulation and exceeding the set limit.

  • cancel_dash() it's now available to cancel active dashing in at any point in time.

  • Air friction factor is available and can be used through the function apply_air_friction(). This factor is automatically used on dash, keep this value on 1 to prevent it from applying a brake.

  • Wall slide and wall climb signals are now emitted using Godot's get-set mechanism, ensuring more reliable broadcasting.

  • Wall jump now sets the facing direction variable based on wall normal.

  • Wall jumped signal now comes with the normal vector as a parameter.

  • The default VelocityComponent2D exported values has been adjusted for a better for a more comfortable start-up when adding the component for the first time

  • @tool notation it's only on that components that would be interesting to have running on the editor like RotatorComponent

  • HealthComponent now connects to his own signal died to interrupt the active invulnerability or health regen that could be active

  • Self update notifier on godot plugin use a better resolution on the GUI to make the experience more enjoyable. Automatically checks if there is a new release and displays a confirmation screen to download the new update.

  • New Example Utilizing Finite State Machine for Movement Management

The official documentation has been updated with the latest release changes

v1.1.2

9 months ago

This beta version contains:

  • Self update notificator
  • Functional VelocityComponent2D
  • HealthComponent
  • RotatorComponent
  • ShakeCameraComponent
  • Global Helpers singleton

Multiple examples with use cases, they will be expanded on the next weeks with tutorials in more detail. OscilatorComponent work in progress