Plugins

  • GECS
    4.0
    GECS
    122
    v3.5.1Scripts

    GECS - Godot Entity Component System A lightweight and performant ECS framework that integrates seamlessly with Godot 4.x, built to leverage Godot’s node system. It supports: - Full integration with Godot’s node system - Query-based filtering of entities with optimized component indexing - System groups for organized processing - Component resources that work in the editor - Straightforward setup with automatic node management - Clear examples (Zombies Ate My Neighbors, a 2D Breakout clone) OVERVIEW GECS follows the Entity Component System (ECS) pattern: - Entity: A container (a node extending Entity) representing an object. - Component: A data container resource (extends Component) with properties but no logic. - System: A node (extends System) that defines a query for relevant entities and the logic to run on them. - World: A central node (extends World) that manages entities and systems. FEATURES - Components: Simple resources, easy to edit in the Godot inspector. - Entities: Node scenes that extend Entity and automatically synchronize component data. - Systems: Nodes that define queries (for example using with\_all, with\_any) and process matching entities. - System Groups: Specify a group name such as "physics" or "gameplay" to organize and process systems at different times. - ECS Singleton: Global access to your current World, allowing you to call ECS.process(delta, group). - Relationship Support: Use relationships as specialized resources to link entities. - Advanced Queries: Use with\_relationship, with\_reverse\_relationship, and various conditions to refine your entity matching. WHY USE GECS - Improved code organization and maintainability - Clean separation of data (components) and logic (systems) - Intuitive queries for selecting and managing entities - Works naturally with Godot’s scene and node structure GETTING STARTED 1. Place the GECS addon in your project’s addons folder. 2. Enable the plugin in Project Settings > Plugins. 3. Ensure ECS.gd is autoloaded (done automatically when enabling the plugin). 4. Create your own entities, components, and systems. 5. Place a World node, attach your systems and entities, then call ECS.process(delta, group) as needed. SIMPLE STEPS - Create Components, for example Velocity or Bounce, each with exported properties. - Create Entities, adding the desired components in the inspector. - Create Systems, define queries such as with\_all, and implement the logic. - Add Systems to your World node, optionally setting a group. - Process them via ECS.process(delta, "group\_name"). USE CASES - 2D and 3D games needing modular and scalable code - Clean separation of concerns in larger projects - Editor-based design of components without heavy scripting - Simplified debugging of component data SPECIAL FEATURES - Relationship-based queries for advanced linking of entities - System groups for controlling update order - Resource-based components that can be instanced or shared - Editor support for exporting component properties CONCLUSION GECS streamlines development with a concise Entity Component System approach that fits naturally into Godot’s node structure. Build maintainable, modular games with flexible queries, reusable data containers, and powerful system organization.

    By: csprance
  • Atmosphere shader
    3.2
    v0.1Shaders

    This contains a simple atmosphere shader usable on planets. I developped this for a tech demo I'm working on, so I thought of making it an addon. - Not realistic, but fast (no nested for loops) - Gradients of two colors for each side of the planet - Can be seen from inside like regular fog if you want to land on the planet - Switches to a cube mesh when seen from far away so multiple atmospheres can be drawn at lower cost

    By: Zylann
  • Atmosphere shader
    4.0
    v0.4Shaders

    This contains a simple atmosphere shader usable on planets. I developped this for a tech demo I'm working on, so I thought of making it an addon. - Comes in two versions, one with fake colors and another with light scattering - Can be seen from inside like regular fog if you want to land on the planet - Switches to a cube mesh when seen from far away so multiple atmospheres can be drawn at lower cost - Includes experimental volumetric clouds Changes in 0.4: - Added `force_fullscreen` option to allow previewing the inside of the atmosphere in the editor - Added atmosphere ambient color to v2 atmosphere so nights are no longer pitch black - Added `*_shader_parameter()` methods, deprecated `*_shader_param` methods - Slightly improved clouds alpha blending - Decoupled alpha from color in v2 atmosphere so it no longer stops rendering in the dark side of planets - Fixed properties list not updating when setting a different shader Changes in 0.3: - Added more realistic atmosphere model based on Sebastian Lague's Coding Adventure - Added automatic optical depth baking using a viewport (Vulkan renderer not needed) - Added raymarched and animated clouds (current version is imperfect due to tradeoffs) - Added NoiseCubemap resource to generate procedural cloud coverage textures - Added small demo Changes in 0.2: - Ported to Godot 4 - Added option to blend ground depth with a sphere, to hide precision lost at high distances

    By: Zylann
  • Discord.gd
    3.3
    v1.2.1Scripts

    Interact with the Discord Bot API. Make Discord Bots in Godot! Supports embeds, files, buttons, menus and more. Support Application commands aka Slash Commands Note: Works on Godot 3.x For the latest version check the Github repo. Found a bug? Report it on the Github issues page or in the Discord server. Docs: https://3ddelano.github.io/discord.gd/

    By: 3ddelano
  • GodoTeX 3
    3.5
    v0.0.22D Tools

    Renders Latex in Godot Mono! Usage Instructions: 1.Create a Godot Mono project and build a C#-script. 2. Install from the Godot Asset Store from inside the Engine or by cloning. When including in an existing project, you won't need the *.godot and *.sln. 3. The add-on depends on CSharpMath.SkiaSharp, licensed under MIT, as a nuget package. You to integrate this into your existing Godot Mono project by copying the <ItemGroup>-tags into your project's .csproj-file from GodoTeX.csproj. 4. Enable the addon in the settings, as usual. You can now create a LaTeX node and start your math excapades!

    By: fi-le
  • GodoTeX
    4.1
    v0.0.3Tools

    Renders Latex in Godot Mono! Usage Instructions: 1.Create a Godot Mono project and build a C#-script. 2. Install from the Godot Asset Store from inside the Engine or by cloning. When including in an existing project, you won't need the *.godot and *.sln. 3. The add-on depends on CSharpMath.SkiaSharp, licensed under MIT, as a nuget package. You to integrate this into your existing Godot Mono project by copying the <ItemGroup>-tags into your project's .csproj-file from GodoTeX.csproj. 4. Enable the addon in the settings, as usual. You can now create a LaTeX node and start your math excapades!

    By: fi-le
  • ThemeGen
    4.0
    v1.3.1Tools

    ThemeGen — Possibly the best theming solution for Godot to date, setting a new standard to keep you sane while developing themes for complex user interfaces. ThemeGen is a tool for Godot that allows you to easily create themes using GDScript code. The advantage over the UI theme editor is that you can reuse styles, recombine them, and effortlessly reuse and share colours between components. It can also help you to use semantic colours, and to create multiple theme variations, e.g. a dark theme and a light theme. Thanks to the live preview feature, the theme is automatically regenerated whenever the input script is modified, and the changes are immediately reflected in the editor’s preview. This allows for a seamless and real-time development experience. For usage instructions, please see the README: https://github.com/Inspiaaa/ThemeGen

    By: Inspiaaa
  • 2D Train/Railroad Demo
    3.5
    v0.5Demos

    Train tracks, switches, and vehicles plus an example demo implementation to show how to use them.

    By: Moonbench
  • 2D Train/Railroad Demo
    4.2
    v0.2.0Demos

    Train tracks, switches, and vehicles plus an example demo implementation to show how to use them.

    By: Moonbench
  • Text Database
    3.4
    v1.0Scripts

    Advanced loader for text data files (JSON, CFG). It can load your files and perform a complex data validation. If you like keeping your data in text files, this will be useful as it ensures that your data is correct, i.e. without typos. Data collections in TextDatabase are arrays of dictionaries. You can e.g. store items, enemy data, or level metadata etc. in a JSON or CFG files, where each item/enemy/level/etc is a Dictionary with some properties. You can define fields for your data, which can be either mandatory, or just allowed, and the loader will ensure that your fields are correct. Example usage: var database = TextDatabase.new() database.add_mandatory_property("price") database.add_valid_property("attack") database.load("res://items.json) var data = database.get_array() Example valid file: [ { "name": "Sword", "price": 100, "attack": 5 } ] Example invalid file: [ { "name": "Shield", "defense": 1 } ] It's missing "price" and "defense" is not a defined property, so the file won't load. You can catch errors like this, so you can avoid unexpected behaviors due to data typos. btw, ConfigFiles (CFG) are much better than JSON. Here's the Sword example as CFG: [Sword] price = 100 attack = 5 You can store multiple items in one file and load multiple files into database. Just use load() multiple times on one database and then get_array() will return data from all files. Or you can use get_dictionary() instead and access the entries by name. Explaining all functionality would be very long, so just read the README, which you can find in the asset's repository (: You can also find an example project in there.

    By: KoBeWi
  • Text Database
    4.0
    v1.3Scripts

    Advanced loader for text data files (JSON, CFG). It can load your files and perform a complex data validation. If you like keeping your data in text files, this will be useful as it ensures that your data is correct, i.e. without typos. Data collections in TextDatabase are arrays of dictionaries. You can e.g. store items, enemy data, or level metadata etc. in a JSON or CFG files, where each item/enemy/level/etc is a Dictionary with some properties. You can define fields for your data, which can be either mandatory, or just allowed, and the loader will ensure that your fields are correct. Example usage: var database = TextDatabase.new() database.add_mandatory_property("price") database.add_valid_property("attack") database.load_from_path("res://items.json) var data = database.get_array() Example valid file: [ { "name": "Sword", "price": 100, "attack": 5 } ] Example invalid file: [ { "name": "Shield", "defense": 1 } ] It's missing "price" and "defense" is not a defined property, so the file won't load. You can catch errors like this, so you can avoid unexpected behaviors due to data typos. btw, ConfigFiles (CFG) are much better than JSON. Here's the Sword example as CFG: [Sword] price = 100 attack = 5 You can store multiple items in one file and load multiple files into database. Just use load() multiple times on one database and then get_array() will return data from all files. Or you can use get_dictionary() instead and access the entries by name. Explaining all functionality would be very long, so just read the README, which you can find in the asset's repository (: You can also find an example project in there.

    By: KoBeWi
  • FSM (Finite State Machine)
    3.5
    v1.0.5 alphaTools

    Finite state machine plugin for Godot. It allows you to setup your states easily inside your project. Basically it consist of "Finite state machine" node which is able to hold child nodes that are representing individual states and transitions. It's created with the ease of additional states creation in mind, it will create for you script files for states and transitions. The file will be created in special "FSM" folder inside directory that's holding currently edited scene. This plugin have also visual graph tool for creating fast fast prototyping :) For more info check Video, Github and FSM.gd readme section. If you are not sure what Finite Machine state is, you can read about them here: http://www.gameprogrammingpatterns.com/state.html KEEP IN MIND that while we are using this plugin and it should be well tested, we take no responsibility for any damage caused by this code. You should always use Version control systems in your project.

    By: kubecz3k
  • Visual Behavior Tree
    3.2
    v1.1.9Tools

    You can create behavior tree in editor visually, debug it and enjoy your life. Please read the instruction in the Github wiki. or read this : 1. your parent of BT must have a script 2. your script must not error 3. to create a task or while or priority_condition node your parent script must have function with name start with task_ and accept one and only one argument as control_flow. 4. to success a task you must call succeed() in control_flow 5. to failed a task you must call failed() in control_flow 6. if you not calling anything control_flow will stay as running state until you call succeed() or failed(). 1.1.6 * new feature hot reload your tree when connected to debugger for faster prototyping. * various bug fixing and usability improvement. 1.1.7 * new feature jump to source code from BTEditor * undo redo functionality in BTEditor 1.1.9 * is_init function is added for control flow. * quality of life update

    By: fian46
  • Card Framework
    4.3
    v1.0.02D Tools

    Card Framework is a lightweight, extensible toolkit for creating 2D card games in the Godot Engine. Whether you're building a classic Solitaire, a TCG (Trading Card Game), or a deck-building roguelike, the Card Framework provides flexible card handling and UI structures to speed up development. Use this framework as a starting point for card-based gameplay in any 2D project.

    By: chunuiyu
  • Wiggly Appendage (3.x)
    3.5
    v1.02D Tools

    A node for adding long dynamic appendages like tails, loose ropes and antennas to characters and other moving objects. These appendages don't use realistic physics, instead they use a simplified approximation of physics that's designed to look good visually and naturally handle a lot of types of movement, including discontinuous movement. They also support being scaled and flipped.

    By: Tameno
  • Wiggly Appendage (4.x)
    4.0
    v2.02D Tools

    A node for adding long dynamic appendages like tails, loose ropes and antennas to characters and other moving objects. These appendages don't use realistic physics, instead they use a simplified approximation of physics that's designed to look good visually and naturally handle a lot of types of movement, including discontinuous movement. They also support being scaled and flipped.

    By: Tameno
  • MarkdownLabel
    4.2
    v1.3.02D Tools

    A custom node that extends RichTextLabel to use Markdown instead of BBCode. # Usage: Simply add a MarkdownLabel node to the scene and write its ``markdown_text`` field in Markdown format. In the RichTextLabel properties: - ``bbcode_enabled`` property must be enabled. - Do not touch the ``text`` property, since it's internally used by MarkdownLabel to properly format its text. - You can use the rest of its properties as normal. You can still use BBCode tags that don't have a Markdown equivalent, such as ``[color=green]underlined text[/color]``, allowing you to have the full functionality of RichTextLabel with the simplicity and readibility of Markdown. For more detailed info, check out the README file in the Github repository.

    By: daenvil
  • Escoria Core Addon
    3.3
    vv4.0.0-alphMisc

    The core addon of the Escoria framework

    By: escoria