Godot 4.3 had seen a big change with GraphEdits and GraphNodes, and as part of that, a new node has been introduced, but since it's not marked as internal, it will also return in GetChildren(), resulting in the important node being deleted, and subsequently attempting to write to invalid memory space, causing Godot to crash via a SIGSEGV signal.
This will fix issue #6 by providing the following workaround:
When evaluating children to remove in DialogueGraph.ClearTree(), filter out _connection_layer
When reconnecting nodes after loading data from the file system, check child indices in a list excluding _connection_layer
This has been tested with Start/Switch/Output Dialogue nodes, but not tested further with other nodes, and regression may be introduced in certain use cases.
Thanks so much for figuring out what was causing this issue! I'm going to be starting up development on this plugin again, so I'll probably implement a similar fix and submit everything to the asset library soon.
Godot 4.3 had seen a big change with GraphEdits and GraphNodes, and as part of that, a new node has been introduced, but since it's not marked as internal, it will also return in
GetChildren()
, resulting in the important node being deleted, and subsequently attempting to write to invalid memory space, causing Godot to crash via a SIGSEGV signal.This will fix issue #6 by providing the following workaround:
DialogueGraph.ClearTree()
, filter out_connection_layer
_connection_layer
This has been tested with Start/Switch/Output Dialogue nodes, but not tested further with other nodes, and regression may be introduced in certain use cases.