Your comments

Cool cool, good to now.  I discovered the "Once" unit, so at least there is a simple workaround.

I agree with TowerCrow, it's a tough thing to deal with since the purpose of bolt is to be open and capable of doing anything unity can, not just what the devs say you can in their closed environment.  Learning a bit of code, and getting used to looking up things in the Unity manual is a good idea for anyone using Unity to do anything complex.

That being said, I also agree that more bread and butter units are always a good thing.  I believe the macro system is supposed to fill that need, as users can upload their creations to simplify complex actions.  This is one area probuilder excels, by having a built in explorer to search and download third party units.  With Bolt, you have to go to the macro section of this site manually.

Just bumping as Im also interested in this.  Right now I maintain a list of potential Bolt machines and iterate through it when I need to send global messages.  Having a built in system would make things a lot easier, especially when dealing with cross communication through multiple scenes.

Oh wow, I didn't know I could make multiple Start states, I see now that I can duplicate it!  Hoe does one normally add a start state?  I don't see it on the right click menu.

Good to hear!

Thanks for the tip, what would be the easiest way to transition as soon as a state executes?

If knowing my use case helps, I tied Bolt into my messaging system.  I have nodes that will subscribe the StateMachine to a specific message, and nodes that will unsubscribe it.  I use the Any State so I can ensure that the graph can be unsubscribed no matter what the rest of it is currently doing (if it gets destroyed, for instance).  Since I cant place nodes directly in the AnyState, I just have it transition as soon as it activates.

Hey Lazlo, here are my steps.  Worst case I can send the Repo! 

So I create an Embedded StateMachine.  The transitions are simple "OnEnter"s.

The FlowStates look like this inside:

I hit play and check/uncheck the gameobject a few times.  Notice that the "AnyState" only fires on Play and the very first Disable, but after that only the "Start" graph functions:

Been a few days on the new Beta, and so far all good!

Not sure if it helps, but here is the error:

[Serialization] System.ArgumentNullException: Value cannot be null.
Parameter name: unityObject
  at Sirenix.Serialization.UnitySerializationUtility.SerializeUnityObject (UnityEngine.Object unityObject, Sirenix.Serialization.SerializationData& data, System.Boolean serializeUnityFields, Sirenix.Serialization.SerializationContext context) [0x00009] in D:\Repositories\SirenixFramework\OdinSerializer\OdinSerializer\Unity Integration\UnitySerializationUtility.cs:382 
  at Sirenix.OdinInspector.SerializedScriptableObject.UnityEngine.ISerializationCallbackReceiver.OnBeforeSerialize () [0x00000] in D:\Repositories\SirenixFramework\OdinSerializer\OdinSerializer\Unity Integration\SerializedUnityObjects\SerializedScriptableObject.cs:40 
  at Ludiq.FullSerializer.fsSerializationCallbackReceiverProcessor.OnBeforeSerialize (System.Type storageType, System.Object instance) [0x00004] in C:\Users\lazlo\Projects\Bolt1\Package\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsISerializationCallbacks.cs:116 
  at Ludiq.FullSerializer.fsSerializer.Invoke_OnBeforeSerialize (System.Collections.Generic.List`1[T] processors, System.Type storageType, System.Object instance) [0x00004] in C:\Users\lazlo\Projects\Bolt1\Package\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:1153 
  at Ludiq.FullSerializer.fsSerializer.TrySerialize (System.Type storageType, System.Type overrideConverterType, System.Object instance, Ludiq.FullSerializer.fsData& data) [0x00013] in C:\Users\lazlo\Projects\Bolt1\Package\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:437 

UnityEngine.Debug:LogWarning(Object, Object)
Ludiq.Serialization:HandleResult(String, fsResult, Object) (at C:/Users/lazlo/Projects/Bolt1/Package/Ludiq.Core/Runtime/Serialization/Serialization.cs:190)
Ludiq.Serialization:SerializeJson(fsSerializer, Object, Boolean) (at C:/Users/lazlo/Projects/Bolt1/Package/Ludiq.Core/Runtime/Serialization/Serialization.cs:155)
Ludiq.Serialization:Serialize(Object, Boolean) (at C:/Users/lazlo/Projects/Bolt1/Package/Ludiq.Core/Runtime/Serialization/Serialization.cs:80)
Ludiq.LudiqBehaviour:UnityEngine.ISerializationCallbackReceiver.OnBeforeSerialize() (at C:/Users/lazlo/Projects/Bolt1/Package/Ludiq.Core/Runtime/Unity/LudiqBehaviour.cs:23)

Still having the issue. Doesnt seem to affect standard scriptable objects, and happens on a fresh bolt install in an empty project in 2018.3.

Heya, I think Im having a related issue.  My state machines randomly drop references to Odin SerializableScriptableObject and return standard Bolt "Value cannot be null" errors.

Seems to happen randomly when I make and compile code changes (arbitrarily, not to the object itself) and it doesn't drop all references, just some of them (even though they are assets generated from the same code).

My test setup uses a chain of states like this: