Is anyone even using Bolt?

I just created a new project in 2021.2.6f1, installed Bolt via Package Manger, but can’t even get through the setup wizard. It ends with this in the console:

NullReferenceException: Object reference not set to an instance of an object
Ludiq.Icons.GetScriptTypeIcon (System.String scriptName) (at <af5e15b3589540ac94baeb6e74576eac>:0)
Ludiq.Icons.GetCustomTypeIcon (System.Type type, System.Boolean inherit) (at <af5e15b3589540ac94baeb6e74576eac>:0)
Ludiq.Icons.Type (System.Type type) (at <af5e15b3589540ac94baeb6e74576eac>:0)
Ludiq.Icons.Icon (System.Type type) (at <af5e15b3589540ac94baeb6e74576eac>:0)
Bolt.LiteralDescriptor.DefinedIcon () (at <ed846bfb09c14080abb024b81e14cfae>:0)
Bolt.UnitDescriptor`1[TUnit].Icon () (at <ed846bfb09c14080abb024b81e14cfae>:0)
Bolt.UnitOption`1[TUnit].Icon () (at <ed846bfb09c14080abb024b81e14cfae>:0)
Bolt.LiteralOption.Icon () (at <ed846bfb09c14080abb024b81e14cfae>:0)

So it doesn’t work at all, it doesn’t show anything in the search naturally since the setup didn’t finish, or so I guess. The only things I see in the search graph is this:


This is nowhere close to be production ready. Seriously, for a scripting solution one would expect something stable.

And I’m uninstalling it again … I don’t even want to think of using this with a beta when I see DLLs. What’s the point?

Here’s the full stacktrace in case anyone wants to fix this:

NullReferenceException: Object reference not set to an instance of an object
Ludiq.Icons.GetScriptTypeIcon (System.String scriptName) (at <af5e15b3589540ac94baeb6e74576eac>:0)
Ludiq.Icons.GetCustomTypeIcon (System.Type type, System.Boolean inherit) (at <af5e15b3589540ac94baeb6e74576eac>:0)
Ludiq.Icons.Type (System.Type type) (at <af5e15b3589540ac94baeb6e74576eac>:0)
Ludiq.Icons.Icon (System.Type type) (at <af5e15b3589540ac94baeb6e74576eac>:0)
Bolt.LiteralDescriptor.DefinedIcon () (at <ed846bfb09c14080abb024b81e14cfae>:0)
Bolt.UnitDescriptor`1[TUnit].Icon () (at <ed846bfb09c14080abb024b81e14cfae>:0)
Bolt.UnitOption`1[TUnit].Icon () (at <ed846bfb09c14080abb024b81e14cfae>:0)
Bolt.LiteralOption.Icon () (at <ed846bfb09c14080abb024b81e14cfae>:0)
Bolt.UnitOption`1[TUnit].<FillFromUnit>b__28_0 () (at <ed846bfb09c14080abb024b81e14cfae>:0)
Ludiq.UnityAPI.Async (System.Action action) (at <af5e15b3589540ac94baeb6e74576eac>:0)
Bolt.UnitOption`1[TUnit].FillFromUnit () (at <ed846bfb09c14080abb024b81e14cfae>:0)
Bolt.LiteralOption.FillFromUnit () (at <ed846bfb09c14080abb024b81e14cfae>:0)
Bolt.UnitOption`1[TUnit]..ctor (Bolt.Literal unit) (at <ed846bfb09c14080abb024b81e14cfae>:0)
Bolt.LiteralOption..ctor (Bolt.Literal unit) (at <ed846bfb09c14080abb024b81e14cfae>:0)
System.Reflection.RuntimeConstructorInfo.InternalInvoke (System.Object obj, System.Object[] parameters, System.Boolean wrapExceptions) (at <31c0f51ac5a24a22ba784db24f4ba023>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.RuntimeConstructorInfo.InternalInvoke (System.Object obj, System.Object[] parameters, System.Boolean wrapExceptions) (at <31c0f51ac5a24a22ba784db24f4ba023>:0)
System.Reflection.RuntimeConstructorInfo.DoInvoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <31c0f51ac5a24a22ba784db24f4ba023>:0)
System.Reflection.RuntimeConstructorInfo.Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <31c0f51ac5a24a22ba784db24f4ba023>:0)
System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters) (at <31c0f51ac5a24a22ba784db24f4ba023>:0)
Ludiq.TypeUtility+<>c__DisplayClass8_0.<Instantiator>b__1 (System.Object[] args) (at <2050131b58a64bd6a8458ea32ce5ee1c>:0)
Ludiq.TypeUtility.Instantiate (System.Type type, System.Boolean nonPublic, System.Object[] args) (at <2050131b58a64bd6a8458ea32ce5ee1c>:0)
Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].CreateDecorator (System.Type decoratorType, TDecorated decorated) (at <af5e15b3589540ac94baeb6e74576eac>:0)
Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].CreateDecorator (TDecorated decorated) (at <af5e15b3589540ac94baeb6e74576eac>:0)
Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].GetDecorator (TDecorated decorated) (at <af5e15b3589540ac94baeb6e74576eac>:0)
Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].GetDecorator[T] (TDecorated decorated) (at <af5e15b3589540ac94baeb6e74576eac>:0)
Bolt.XUnitOptionProvider.Option (Bolt.IUnit unit) (at <ed846bfb09c14080abb024b81e14cfae>:0)
Bolt.UnitBase+<GetTypeOptions>d__12.MoveNext () (at <ed846bfb09c14080abb024b81e14cfae>:0)
Bolt.UnitBase+<GetStaticOptions>d__10.MoveNext () (at <ed846bfb09c14080abb024b81e14cfae>:0)
System.Collections.Generic.HashSet`1[T].UnionWith (System.Collections.Generic.IEnumerable`1[T] other) (at <19f157554c514bbc99588e176244e375>:0)
System.Collections.Generic.HashSet`1[T]..ctor (System.Collections.Generic.IEnumerable`1[T] collection, System.Collections.Generic.IEqualityComparer`1[T] comparer) (at <19f157554c514bbc99588e176244e375>:0)
System.Collections.Generic.HashSet`1[T]..ctor (System.Collections.Generic.IEnumerable`1[T] collection) (at <19f157554c514bbc99588e176244e375>:0)
Bolt.UnitBase.Build () (at <ed846bfb09c14080abb024b81e14cfae>:0)
Bolt.TypeOptionsPage.Complete () (at <ed846bfb09c14080abb024b81e14cfae>:0)
Bolt.TypeOptionsPage.OnContentGUI () (at <ed846bfb09c14080abb024b81e14cfae>:0)
Ludiq.Page.DrawContent () (at <af5e15b3589540ac94baeb6e74576eac>:0)
Ludiq.Wizard.OnGUI () (at <af5e15b3589540ac94baeb6e74576eac>:0)
Ludiq.WrappedEditorWindow.OnGUI () (at <af5e15b3589540ac94baeb6e74576eac>:0)
UnityEditor.HostView.OldOnGUI () (at <52409df47eec4ff4a3e5a5be37682d54>:0)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Boolean canAffectFocus) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUIRaw (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUI (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.CallbackEventHandler.HandleEventAtTargetPhase (UnityEngine.UIElements.EventBase evt) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.MouseCaptureDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEventQueue () (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.EventDispatcher.OpenGate () (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.EventDispatcherGate.Dispose () (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at <7b8bd44f4be74e768cd65ac1425c4485>:0)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <c32c29e6e8d6415eb40bba0e41229e50>:0)

Just making sure, you’re installing the package called “Visual Scripting”, right?

No. This one. And thanks, I just saw the text, I only looked at the publisher name Unity Technologies and the date of 2021 and supported Unity Versions 2019.4.22 or higher and thought it would be current. So it’s a usability issue :frowning:

7746000--974181--bolt.jpg

Bolt is not supported past 2020LTS. You’re supposed to use Visual Scripting that ships with the engine from 2021 and up. Unity’s Visual Scripting is basically reskinned Bolt, more or less the same thing.

EDIT: Bolt is in maintenance mode and not developed anymore. In a couple of years it’ll be deprecated entirely once 2020LTS support ends. There’s no reason to use Bolt over Visual Scripting.

Just use the Visual Scripting package, it’s Bolt rebranded as Visual Scripting, with some more work done to it. I have no idea if it’s actually good or not, but AFAIK it should at least “work”.

Yes, that works. But it’s not my type of thing. Here’s e. g. a simple raycast of a sphere with logging a string to the console:


That’s way too many nodes. Physics.Raycast has true/false as return value. That should be directly in the raycast node and not a separate If node. Same for the log message. I have to create a new node instead of writing the text directly into the Log node. Well, unless I’m doing something wrong.

I’m pretty sure you can plug the Raycast output bool straight into a Debug node since the Debug input is of type object and it’ll auto cast it to a string.

The reason you can’t type on the node itself is also because the input is not a string but “object”.

You could also wrap the Debug.Log node in a superunit (asset subgraph) with a input string that has a default value checkbox marked. This would let you write a string on the node itself for the Debug Log node.

Have often thought setting up a Debug.Log string/default value might be useful for those quick debug tests. Alot of things could save using 2 or more nodes for 1 thing (or in code way, 1 shorter line of code)

NullReferenceException: Object reference not set to an instance of an object
Ludiq.Icons.GetScriptTypeIcon (System.String scriptName) (at :0)
Ludiq.Icons.GetCustomTypeIcon (System.Type type, System.Boolean inherit) (at :0)
Ludiq.Icons.Type (System.Type type) (at :0)
Ludiq.Icons.Icon (System.Type type) (at :0)
Bolt.LiteralDescriptor.DefinedIcon () (at <06519a35423d49f79727c0908c3fba0c>:0)
Bolt.UnitDescriptor1[TUnit].Icon () (at <06519a35423d49f79727c0908c3fba0c>:0) Bolt.UnitOption1[TUnit].Icon () (at <06519a35423d49f79727c0908c3fba0c>:0)
Bolt.LiteralOption.Icon () (at <06519a35423d49f79727c0908c3fba0c>:0)
Bolt.UnitOption1[TUnit].<FillFromUnit>b__28_0 () (at <06519a35423d49f79727c0908c3fba0c>:0) Ludiq.UnityAPI.Async (System.Action action) (at <c035ff5b7e8e4d1fb53cfb1d8cdb2f14>:0) Bolt.UnitOption1[TUnit].FillFromUnit () (at <06519a35423d49f79727c0908c3fba0c>:0)
Bolt.LiteralOption.FillFromUnit () (at <06519a35423d49f79727c0908c3fba0c>:0)
Bolt.UnitOption1[TUnit]..ctor (Bolt.Literal unit) (at <06519a35423d49f79727c0908c3fba0c>:0) Bolt.LiteralOption..ctor (Bolt.Literal unit) (at <06519a35423d49f79727c0908c3fba0c>:0) System.Reflection.RuntimeConstructorInfo.InternalInvoke (System.Object obj, System.Object[ ] parameters, System.Boolean wrapExceptions) (at <c2a97e0383e8404c9fc0ae19d58f57f1>:0) Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation. System.Reflection.RuntimeConstructorInfo.InternalInvoke (System.Object obj, System.Object[ ] parameters, System.Boolean wrapExceptions) (at <c2a97e0383e8404c9fc0ae19d58f57f1>:0) System.Reflection.RuntimeConstructorInfo.DoInvoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[ ] parameters, System.Globalization.CultureInfo culture) (at <c2a97e0383e8404c9fc0ae19d58f57f1>:0) System.Reflection.RuntimeConstructorInfo.Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[ ] parameters, System.Globalization.CultureInfo culture) (at <c2a97e0383e8404c9fc0ae19d58f57f1>:0) System.Reflection.ConstructorInfo.Invoke (System.Object[ ] parameters) (at <c2a97e0383e8404c9fc0ae19d58f57f1>:0) Ludiq.TypeUtility+<>c__DisplayClass8_0.<Instantiator>b__1 (System.Object[ ] args) (at <afc846f684364b38be7b9624a972dc39>:0) Ludiq.TypeUtility.Instantiate (System.Type type, System.Boolean nonPublic, System.Object[ ] args) (at <afc846f684364b38be7b9624a972dc39>:0) Ludiq.SingleDecoratorProvider3[TDecorated,TDecorator,TAttribute].CreateDecorator (System.Type decoratorType, TDecorated decorated) (at :0)
Ludiq.SingleDecoratorProvider3[TDecorated,TDecorator,TAttribute].CreateDecorator (TDecorated decorated) (at <c035ff5b7e8e4d1fb53cfb1d8cdb2f14>:0) Ludiq.SingleDecoratorProvider3[TDecorated,TDecorator,TAttribute].GetDecorator (TDecorated decorated) (at :0)
Ludiq.SingleDecoratorProvider3[TDecorated,TDecorator,TAttribute].GetDecorator[T] (TDecorated decorated) (at <c035ff5b7e8e4d1fb53cfb1d8cdb2f14>:0) Bolt.XUnitOptionProvider.Option (Bolt.IUnit unit) (at <06519a35423d49f79727c0908c3fba0c>:0) Bolt.UnitBase+<GetTypeOptions>d__12.MoveNext () (at <06519a35423d49f79727c0908c3fba0c>:0) Bolt.UnitBase+<GetStaticOptions>d__10.MoveNext () (at <06519a35423d49f79727c0908c3fba0c>:0) System.Collections.Generic.HashSet1[T].UnionWith (System.Collections.Generic.IEnumerable1[T] other) (at <93223d662c2546d4b5d1784737504095>:0) System.Collections.Generic.HashSet1[T]…ctor (System.Collections.Generic.IEnumerable1[T] collection, System.Collections.Generic.IEqualityComparer1[T] comparer) (at <93223d662c2546d4b5d1784737504095>:0)
System.Collections.Generic.HashSet1[T]..ctor (System.Collections.Generic.IEnumerable1[T] collection) (at <93223d662c2546d4b5d1784737504095>:0)
Bolt.UnitBase.Build () (at <06519a35423d49f79727c0908c3fba0c>:0)
Bolt.TypeOptionsPage.Complete () (at <06519a35423d49f79727c0908c3fba0c>:0)
Bolt.TypeOptionsPage.OnContentGUI () (at <06519a35423d49f79727c0908c3fba0c>:0)
Ludiq.Page.DrawContent () (at :0)
Ludiq.Wizard.OnGUI () (at :0)
Ludiq.WrappedEditorWindow.OnGUI () (at :0)
UnityEditor.HostView.OldOnGUI () (at <33518779906b403ba9f96eccba6a861b>:0)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Boolean canAffectFocus) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUIRaw (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUI (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.CallbackEventHandler.HandleEventAtTargetPhase (UnityEngine.UIElements.EventBase evt) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.MouseCaptureDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEventQueue () (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.EventDispatcher.OpenGate () (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.EventDispatcherGate.Dispose () (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at <7f157a18f174494d95b4f32b68f44272>:0)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <45a3ca8ab7454d7689470d39a3e915d0>:0)

Are we able to go through this same Tutorial (Bolt) using Unity version 2021 and later or is our only option to use Unity’s Visual Scripting Tutorial?

Bolt and visual scripting are practically identical. It’s just branches are called its. And some other stuff