A visual block style scripting for Godot 4.
Blockflow is a visual scripting plugin for Godot, made to create sequential instructions that are executed one by one, easy to implement and highly customizable, allowing you to execute code fragments in order according to the conditions you give it.
It helps in scenarios where you require a controlled execution of steps in your games, such as a dialog system or the creation of cutscenes, without the need to recreate an entire sequence by code.
Supports any Godot 4 version.
Blockflow is a Godot plugin, it can be installed normally as official Godot documentation guides:
- Download the plugin from the latest release.
- Extract the folder under your project
addons
folder (if the folder doesn't exist, create one). - Go to Project -> Project Settings -> Plugins and mark
Blockflow
checkbox.
If everything works, you'll see Blockflow
button at the top of Godot editor, next to 2D/3D/AssetLib buttons.
You can install this repository as a submodule from your project root folder:
git submodule add https://github.com/AnidemDex/Blockflow addons/blockflow
AssetLib submission is still pending, so it'll not appear for the moment.
- Search for
Blockflow
onAseetLib
screen in Godot editor. - Select the plugin.
- Click on install.
To update the plugin manually:
- Close Godot editor.
- Remove
blockflow
folder. - Add the new
blockflow
folder. - Open Godot editor.
If you present any error when updating, open a new issue.
Blockflow consists on two main objects: Collection
and Processor. Collections (specifically CommandCollection
) contains data about the steps that it will take, and Processor execute those steps.
First, create a new Scene and create a CommandProcessor
node, that node will be our Processor node.
Go to Blockflow
screen and select New Collection
. Save it with any name you like, for this example we'll name it example_collection.tres
.
Add a command to it, any command. On this example, we'll use a single Print
command. Is a command that will print the comment in console.
Experiment a little, add many commands as you like. You can see more information about commands on the Command readme.
Once you're done, select again your CommandProcessor
node in scene, and set Initial Collection
with the command collection you created. Make sure to mark Start on Ready
too.
Due to a Godot bug we are not able to edit CommandCollections that are created directly on the node.
Hit Run Current Scene
button and see your message printed in console.
Congratulations, that's the basic usage of Blockflow editor and processor.
Blockflow doesn't expose many commands by its own, only very basic and commonly done in code are included, but you can extend its usage and behavior to create custom commands that implements the custom functionality you want.
A visual tool for viewing and editing sequences of commands and each individual propery of the command as well.
See, edit and control commands in the CommandCollection. The commands will be executed in order, one by one.
Where specific instructions are executed. Create and modify your own commands, making them do exactly what you want them to do anywhere in the game.
A node which is only a unique purpose is to run your CommandCollection, executing the commands one by one, according your specifications.
You don't need to worry about managing the Collection, only about when is the moment to go to the next command.
Thanks to the new Godot 4 features, we can make use of the internal documentation generation of all the tools that this plugin exposes to you, so you can consult the documentation directly from the editor.
We are still working on it. Sorry for the inconvenience ๐
Some extra documentation is also added on each folder when is relevant (specially tutorials). See OVERVIEW file for more information.
We are still working on it. Sorry for the inconvenience ๐
We added some example scenes in particular cases that we found very good situations to use the plugin under addons/examples
folder.
This plugin is fully open source, feel free to dive into the code and adapt every aspect to it to your needs.
If you find a bug, want a new feature or something is not properly explained, please open a new issue.
You can join us on the discord server https://discord.gg/6HEwxHCTaK to discuss about features and bugs or send me a direct message on X/Twitter @anidemdex
too.
See LICENSE.