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.
How to Use
-
Download the repo directly (the AssetLib version is no longer maintained)
-
Copy the addons directory to any project you would like to use them in
-
Open Project Settings and go to the Plugins tab.
-
Find the
godot-next
plugin and select "Active" from the dropdown on the right-hand side. -
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:
- Provide a 16x16 SVG icon for each submitted script.
- Use statically-typed GDScript if submitting GDScript files.
- Create mirrored versions of GDScript and C# scripts between folders.
- 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 Name | Description | Languages |
---|---|---|
Array2D | A 2D Array class. | GDScript |
ArrayMap | A 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 |
BitFlag | A class that allows abstracts away the complexity of handling bit flag enum types. | GDScript |
Bitset | A class that allows for easily manipulated bitmasks of any size. | GDScript |
Behavior | A Resource type that automatically calls Node-like notification methods when paired with the CallbackDelegator class. | GDScript |
CallbackDelegator | A Node that manages a ResourceSet of resources and delegates Node callbacks to each instance. | GDScript |
ClassType | A class abstraction, both for engine and user-defined types. | GDScript |
CSVFile | Similar to ConfigFile, parses a .csv file. Can generate a key-value store from rows. Supports .tsv files. | GDScript |
Cycle | Cycles through child nodes without any visibility or container effects. | GDScript |
DebugLabel | A label which displays a list of property values in any Object -derived instance at run-time for debugging purposes. |
GDScript |
EditorTools | A utility for any features useful in the context of the Editor. | GDScript |
FileSearch | A utility with helpful methods to search through one's project files (or any directory). | GDScript |
FileSystemLink | A utility for creating links (file/directory, symbolic/hard). | GDScript |
Geometry2D | A utility that draws a Shape2D using CollisionShape2D's editor plugin handles. | GDScript, C# |
Inflector | A vocabulary wrapper of inflection tools to pluralize and singularize strings. | GDScript |
InspectorControls | A utility for creating data-editing GUI elements. | GDScript |
MessageDispatcher | A base object that handles signaling for non predetermined signals. | GDScript |
PhysicsLayers | A Utility class which allows easy access to your physics layers via their names in the project settings. | GDScript |
ProjectTools | A utility for any features useful in the context of a Godot Project. | GDScript |
PropertyInfo | A wrapper and utility class for generating PropertyInfo Dictionaries, for use in Object._get_property_list() . |
GDScript |
ResourceArray | A ResourceCollection implementation that manages an Array of Resources. | GDScript |
ResourceCollection | An abstract base class for data structures that store Resource objects. | GDScript |
ResourceSet | A ResourceCollection implementation that manages a Set of Resources. | GDScript |
Singletons | A 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 |
Trail2D | Creates a variable-length trail that tracks a "target" node. | GDScript, C# |
Trail3D | Creates a variable-length trail on an ImmediateGeometry node. | GDScript, C# |
Tween Sequence | A helper class for easier management and chaining of Tweens dynamically from code. | GDScript |
Vec2 | Adds more constants for Vector2. | GDScript, C# |
Vec3 | Adds more constants for Vector3. | GDScript, C# |
VectorDisplay2D | Displays Vector2 members in the editor via Position2D nodes. | GDScript |
VectorDisplay3D | Displays Vector3 members in the editor via Position3D nodes. | GDScript |
Variant | A utility class for handling Variants (the type wrapper for all variables in Godot's scripting API). | GDScript |
VBoxItemList | Creates a vertical list of items that can be added or removed. Items are a user-specified Script or Scene Control. | GDScript |
DiscreteGradientTexture | Creates a not interpolated texture for a gradient. | GDScript |