Home

Awesome

godot-next

Description

Godot Node Extensions, AKA Godot NExt, is a Godot 3.1+ repository dedicated to collecting basic script classes that are currently unavailable in vanilla Godot.

As you might have noticed, Godot Engine's initial node offerings are general purpose and are intentionally not oriented towards particular types of games.

This repository's purpose is to create classes that fulfill a particular function and work out-of-the-box. Users should be able to use your class immediately after creating it. For nodes, don't be afraid to design ones that have an array of dynamically generated children. ;-)

Note: The repository is named after Nodes, but ultimately any general-purpose type is welcome here (References, Resources, etc.).

If you like the project, please star it. If you'd like to support its development, please send tips to my Kofi.

Jump to Class List

How to Use

  1. Download the repo directly (the AssetLib version is no longer maintained)

  2. Copy the addons directory to any project you would like to use them in

  3. Open Project Settings and go to the Plugins tab.

  4. Find the godot-next plugin and select "Active" from the dropdown on the right-hand side.

  5. You should now be able to create each new type of node in your project!

How to Contribute

Ideas

If you have an idea for a node that you would like to have added to the repository, create a new Issue.

Scripts

All scripts must be script classes, i.e. scripts with registered names.

All scripts must have the author's name at the top.

All credits related to any associated script code or icons should be kept in the ATTRIBUTIONS.md file.

All scripts must adhere to the relevant language's styling conventions, modeled after Godot Docs examples and the Godot Engine source code.

All C# scripts must be submitted to a separate addons/godot-next-cs folder. This is to ensure that users who aren't using the Mono-enabled version of Godot do not have C# scripts present.

Submissions are encouraged to do the following:

  1. Provide a 16x16 SVG icon for each submitted script.
  2. Use statically-typed GDScript if submitting GDScript files.
  3. Create mirrored versions of GDScript and C# scripts between folders.
  4. Add your node(s)' information to the bottom of the README, if possible (less work for maintainers).

That's it! I hope you've got ideas of what you'd like to share with others.

Classes

Linkable Node NameDescriptionLanguages
Array2DA 2D Array class.GDScript
ArrayMapA Resource that maps String keys to Variants in an Array for fast iteration. Serializes all data as individual properties to avoid storage bugs in Godot 3.x.GDScript
BitFlagA class that allows abstracts away the complexity of handling bit flag enum types.GDScript
BitsetA class that allows for easily manipulated bitmasks of any size.GDScript
BehaviorA Resource type that automatically calls Node-like notification methods when paired with the CallbackDelegator class.GDScript
CallbackDelegatorA Node that manages a ResourceSet of resources and delegates Node callbacks to each instance.GDScript
ClassTypeA class abstraction, both for engine and user-defined types.GDScript
CSVFileSimilar to ConfigFile, parses a .csv file. Can generate a key-value store from rows. Supports .tsv files.GDScript
CycleCycles through child nodes without any visibility or container effects.GDScript
DebugLabelA label which displays a list of property values in any Object-derived instance at run-time for debugging purposes.GDScript
EditorToolsA utility for any features useful in the context of the Editor.GDScript
FileSearchA utility with helpful methods to search through one's project files (or any directory).GDScript
FileSystemLinkA utility for creating links (file/directory, symbolic/hard).GDScript
Geometry2DA utility that draws a Shape2D using CollisionShape2D's editor plugin handles.GDScript, C#
InflectorA vocabulary wrapper of inflection tools to pluralize and singularize strings.GDScript
InspectorControlsA utility for creating data-editing GUI elements.GDScript
MessageDispatcherA base object that handles signaling for non predetermined signals.GDScript
PhysicsLayersA Utility class which allows easy access to your physics layers via their names in the project settings.GDScript
ProjectToolsA utility for any features useful in the context of a Godot Project.GDScript
PropertyInfoA wrapper and utility class for generating PropertyInfo Dictionaries, for use in Object._get_property_list().GDScript
ResourceArrayA ResourceCollection implementation that manages an Array of Resources.GDScript
ResourceCollectionAn abstract base class for data structures that store Resource objects.GDScript
ResourceSetA ResourceCollection implementation that manages a Set of Resources.GDScript
SingletonsA utility for caching Reference-derived singletons. Resources with a SELF_RESOURCE constant with a path to a *.tres file will be automatically loaded when accessed.GDScript
Trail2DCreates a variable-length trail that tracks a "target" node.GDScript, C#
Trail3DCreates a variable-length trail on an ImmediateGeometry node.GDScript, C#
Tween SequenceA helper class for easier management and chaining of Tweens dynamically from code.GDScript
Vec2Adds more constants for Vector2.GDScript, C#
Vec3Adds more constants for Vector3.GDScript, C#
VectorDisplay2DDisplays Vector2 members in the editor via Position2D nodes.GDScript
VectorDisplay3DDisplays Vector3 members in the editor via Position3D nodes.GDScript
VariantA utility class for handling Variants (the type wrapper for all variables in Godot's scripting API).GDScript
VBoxItemListCreates a vertical list of items that can be added or removed. Items are a user-specified Script or Scene Control.GDScript
DiscreteGradientTextureCreates a not interpolated texture for a gradient.GDScript