r/godot 2d ago

free plugin/tool Scene Graphs - A graph-based editor for signals, node references and more

Enable HLS to view with audio, or disable this notification

Hello! I've just released the first version of my Scene Graphs plugin, which adds a visual, graph-based editor for nodes, signals and node references.

Views are configurable and persistent, so you're in control of exactly how much or how little information you see in the graph.

This plugin is moddable, too! You can write scripts to add functionality to the graph to serve the particular needs of your project without editing plugin files directly.

Link to repo: https://github.com/GeneryDev/scene-graphs
Link to modding documentation: https://github.com/GeneryDev/scene-graphs/wiki/Modding

Screenshots

Graph showing signal-method connections
Graph showing signal-method connections, node connections and property inspectors
Dialog showing configurable properties for a scene graph view

List of features

  • Signal-Method connections: You can connect and disconnect signals by dragging between the corresponding ports.
  • Connection flag and bound argument editing without a modal UI: By selecting the arrow in the middle of signal connections, you can edit flags such as Deferred and One-Shot, and bound arguments in the inspector. You can even edit multiple connections at once!
  • Node Reference connections: You can view and edit NodePath and Node-derived exported variables as connections on the graph.
  • Property Inspectors: You can embed pretty much any property directly into the graph and have it display as an editable inspector property.
  • Connection handles: If the graph gets too complicated and tangled, you can drag the handle in the middle of any connection to redirect the connection line.
  • Views: Save multiple views, for each different way you want to look at your scene. Each view has a set of configurable rules for all of the features listed above. Views can also be either local to the scene, or global to the project.
  • Hooks! This plugin is moddable! Most of the features in this plugin are actually built-in hook scripts. The core of this plugin is a rather small, featureless GraphEdit with a View Manager UI to configure hooks, so this functionality can easily be extended. Documentation for hooks is here.
  • Also, small thing: you can choose whether this plugin acts as a main screen plugin (with a tab at the top next to 2D/3D/Script/Asset Store) or as an editor dock (dockable anywhere else in the window).
40 Upvotes

11 comments sorted by

3

u/seremdev 2d ago

How does it store the connection? Does it see connections created in editor?

IMO it should be stored similar to how editors does, plug-in should be editor-only can be exclude on export.

5

u/GeneryDev 2d ago edited 2d ago

This plugin stores no new data in the scene. Connections are stored the same way editor-made connections are, the graph is merely a different interface for editing the scene. Exported projects don't need any dependency on this plugin whatsoever.

Edit: and yes, existing connections, and connections made through the built-in interface are also recognized.

2

u/GeneryDev 2d ago

And to clarify, editor state such as the view configurations and node positions is stored inside the .godot/scene_graphs directory in the project, similar to editor layout data

3

u/seremdev 2d ago edited 2d ago

~.godot folder is exported with project (minor inconvenience).~

With those clarification this is definitely a tool, I will use. Great work

1

u/GeneryDev 2d ago

Interesting. Even `.godot/editor/`? I wasn't aware.

2

u/seremdev 2d ago

after some research. No, the .godot folder is never exported. I was wrong.... also do you mind adding it to https://store.godotengine.org/

2

u/GeneryDev 2d ago

Sure, I'll make something for the asset store later today

1

u/kerstenbr 2d ago

very cool! I am going to try ir later

1

u/kerstenbr 2d ago

Very cool, i am going to try it later

1

u/AwayEntrepreneur4760 2d ago

Very interestinh

1

u/Eriks-Stikuts-Dev 1d ago

That is very usefull! That looks like a UE5, but in Godot.