Issue with Deleting State Graphs and creating nodes

IndieGameHustle 3 years ago updated by Lazlo Bonin (Lead Developer) 2 years ago 22 2 duplicates

I think there is a Bug when deleting or working with state graphs.

It happens off and on when I try to delete a node when I am in a state graph. it looks like it is not deleting also the same issue when I am trying to create a node or duplicate it does not show up but when I try to connnect a flow arrow all the nodes I tried to create appear. 

Its really slowing down things, I have to restart Unity just to remove nodes from the graph etc...

Bolt Version:
Unity Version:
Scripting Backend:
.NET Version (API Compatibility Level):

Duplicates 2

Tried to make a transition and got this error as well: 

This is when I tried to delete a node:


I am also getting the same issue. 

Bolt Version:1.4.1b3

Unity Version:2018.3.0f2

.NET Version:4.x


I have the same problem! Most likely with "Events blocks". But I can delete blocks in play mode, and sometimes blocks appears in graph when I'm trying to add simple block like "branch"

Bolt Version:1.4.1b3 / Unity Version:2018.3.0f2 / .NET Version:3.5

This is really not working very well I cant even use States, it will not allow me to delete or even create nodes anymore. 

Not sure what fixed it, other than restarting Unity a few times....I can now delete the States/Transitions that did not delete before. 

It is the same problem like here: https://support.ludiq.io/communities/5/topics/2601-issue-with-deleting-state-graphs-and-creating-nodes

Sometimes you can't add or delete nodes and after placing some basic nodes like "branch" .. everything can appear! 


It seems to work while in Play mode but not when the editor is not active. 

have same error

Pending Review

I'll look into it. Can any of you give me clear reproduction steps from an empty state graph? It would help speed up fix!

Hi Lazlo

Unity 2018.3.0f2 / Bolt Version:1.4.1b3 / .NET Version: 4 / 3.5

My steps are:

1) Create new project

2) Install Bolt

3) Create any prefab + add State Machine on it

4) Try to Add any Event unit - and all is working!

5) Click Play! and return to State

6) Try to Add any Event unit again! - and here is the bug:

7) Try to Delete Event unit:

sometimes, something changes and all is working back again. But then could return this bug (after clicking the Play button). If you don't see this try to do those steps inside the Flow state Inside the State Machine! 

Need hot fix - dramatically! :)

I think this happens when there are fairly larger state/flow graphs. After working on a flow within a state graph, it’s difficult to add/remove/duplicate Enter/update units. If I close the project and reopen, I can then duplicate/remove/add these units, but after a few edits, the problem occurs again.  

Good news, I managed to reproduce it, working on fix.

Fixed in Beta

Found the cause, will be fixed in v.1.4.1b4!

(Live graph instantiation logic is brain melting, sorry for all these small issues -- that's why we have so many beta cycles!)

Thanks for all the hard work.Bolt is awesome despite these tiny issues.


Same setup, same issue (though .Net 4). 

Steps to reproduce for me are:

  1. Open Macro and edit at runtime.  In my case, add Lifetime>Start node.  Works as expected.
  2. Stop Playback.  Edit is saved as expected.
  3. Make edit at edit time, edit fails to render.  Again, Start Node

From here, adding certain types of nodes will work as expected, and will additionally cause the un-rendered node to render.  In my case, adding a Branch node works now.  I'm able to make edits to other graphs without restarting with no issues - only the macro is impacted until a Unity restart.  Reimporting that macro also does not fix the issue, neither does closing/reopening the graph editor window. 

Here's the stack trace for trying to add the Start node:

GraphPointerException: Missing graph element data for FlowState#67758....
[ (Destroyed) > SuperState#23158... ]
Ludiq.GraphPointer.GetElementData[T] (Ludiq.IGraphElementWithData element) (at C:/Users/lazlo/Projects/Bolt1/Package/Ludiq.Graphs/Runtime/GraphPointer.cs:356)
Bolt.FlowState.IsListening (Ludiq.GraphPointer pointer) (at C:/Users/lazlo/Projects/Bolt1/Package/Bolt.State/Runtime/FlowState.cs:68)
Bolt.XGraphEventListener.IsHierarchyListening (Ludiq.GraphReference reference) (at C:/Users/lazlo/Projects/Bolt1/Package/Bolt.Core/Runtime/Events/IGraphEventListener.cs:45)
Bolt.Unit.StartListening (Ludiq.GraphReference instance) (at C:/Users/lazlo/Projects/Bolt1/Package/Bolt.Flow/Runtime/Unit.cs:58)
Ludiq.GraphElement`1[TGraph].Instantiate (Ludiq.GraphReference instance) (at C:/Users/lazlo/Projects/Bolt1/Package/Ludiq.Graphs/Runtime/GraphElement.cs:38)
Ludiq.GraphElement`1[TGraph].AfterAdd () (at C:/Users/lazlo/Projects/Bolt1/Package/Ludiq.Graphs/Runtime/GraphElement.cs:58)
Bolt.Unit.AfterAdd () (at C:/Users/lazlo/Projects/Bolt1/Package/Bolt.Flow/Runtime/Unit.cs:46)
Ludiq.GraphElementCollection`1[TElement].AfterAdd (TElement element) (at C:/Users/lazlo/Projects/Bolt1/Package/Ludiq.Graphs/Runtime/GraphElementCollection.cs:46)
Ludiq.GraphElementCollection`1[TElement].InsertItem (System.Int32 index, TElement element) (at C:/Users/lazlo/Projects/Bolt1/Package/Ludiq.Graphs/Runtime/GraphElementCollection.cs:77)
System.Collections.ObjectModel.Collection`1[T].Add (T item) (at :0)
Bolt.FlowCanvas.AddUnit (Bolt.IUnit unit, UnityEngine.Vector2 position) (at C:/Users/lazlo/Projects/Bolt1/Package/Bolt.Flow/Editor/FlowCanvas.cs:195)
Bolt.FlowCanvas+<>c__DisplayClass15_1.b__1 (System.Object _option) (at C:/Users/lazlo/Projects/Bolt1/Package/Bolt.Flow/Editor/FlowCanvas.cs:239)
Ludiq.LudiqGUI+<>c__DisplayClass83_0.b__0 (Ludiq.IFuzzyOption option) (at C:/Users/lazlo/Projects/Bolt1/Package/Ludiq.Core/Editor/Interface/LudiqGUI.cs:1479)
Ludiq.FuzzyWindow.SelectChild (Ludiq.FuzzyOptionNode node) (at C:/Users/lazlo/Projects/Bolt1/Package/Ludiq.Core/Editor/Interface/Fuzzy/FuzzyWindow.cs:417)
Ludiq.FuzzyWindow.OnOptionsGUI (Ludiq.FuzzyOptionNode parent, System.Single scrollViewHeight) (at C:/Users/lazlo/Projects/Bolt1/Package/Ludiq.Core/Editor/Interface/Fuzzy/FuzzyWindow.cs:928)
Ludiq.FuzzyWindow.OnLevelGUI (System.Single anim, Ludiq.FuzzyOptionNode parent, Ludiq.FuzzyOptionNode grandParent) (at C:/Users/lazlo/Projects/Bolt1/Package/Ludiq.Core/Editor/Interface/Fuzzy/FuzzyWindow.cs:780)
Ludiq.FuzzyWindow.OnGUI () (at C:/Users/lazlo/Projects/Bolt1/Package/Ludiq.Core/Editor/Interface/Fuzzy/FuzzyWindow.cs:647)
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at :0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at :0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at :0)
UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at /Users/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:342)
UnityEditor.HostView.Invoke (System.String methodName) (at /Users/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:336)
UnityEditor.HostView.OldOnGUI () (at /Users/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:129)
UnityEngine.Experimental.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:266)
UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:438)
UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:421)
UnityEngine.Experimental.UIElements.IMGUIContainer.HandleEvent (UnityEngine.Experimental.UIElements.EventBase evt) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:401)
UnityEngine.Experimental.UIElements.EventDispatcher.PropagateEvent (UnityEngine.Experimental.UIElements.EventBase evt) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:754)
UnityEngine.Experimental.UIElements.EventDispatcher.ProcessEvent (UnityEngine.Experimental.UIElements.EventBase evt, UnityEngine.Experimental.UIElements.IPanel panel) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:599)
UnityEngine.Experimental.UIElements.EventDispatcher.Dispatch (UnityEngine.Experimental.UIElements.EventBase evt, UnityEngine.Experimental.UIElements.IPanel panel, UnityEngine.Experimental.UIElements.DispatchMode dispatchMode) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:307)
UnityEngine.Experimental.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.Experimental.UIElements.EventBase e, UnityEngine.Experimental.UIElements.DispatchMode dispatchMode) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/Panel.cs:176)
UnityEngine.Experimental.UIElements.UIElementsUtility.DoDispatch (UnityEngine.Experimental.UIElements.BaseVisualElementPanel panel) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:245)
UnityEngine.Experimental.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:68)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at /Users/builduser/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)

Additionally, having the macro open in the graph editor during a play/stop cycle will cause this, even without editing.  As a work around, I just found that you can convert that Macro to Embedded, then back to Macro (saving over the original Macro asset), and it resets the state completely. 

Pending Review

Hi Alexey, Greg,

This bug was introduced in 1.4.1b3 and reported earlier this week and will be fixed in v.1.4.1b4.

I'm merging your thread!

Just downloaded the new beta, working great!  

I concur. b4 is working! The issue is not appearing for me anymore. Fantastic work!