• Hi Guest!

    We are extremely excited to announce the release of our first Beta1.1 and the first release of our Public AddonKit!
    To participate in the Beta, a subscription to the Entertainer or Creator Tier is required. For access to the Public AddonKit you must be a Creator tier member. Once subscribed, download instructions can be found here.

    Click here for information and guides regarding the VaM2 beta. Join our Discord server for more announcements and community discussion about VaM2.
  • Hi Guest!

    VaM2 Resource Categories have now been added to the Hub! For information on posting VaM2 resources and details about VaM2 related changes to our Community Forums, please see our official announcement here.
Blooprints

Plugins + Scripts Blooprints

Download [1.24 MB]
You are an absolute MADMAN. This is incredible work. Thank you for sharing! I look forward to seeing what the community creates with this - but well done on what must have been a HUGE effort.
 
You are an absolute MADMAN. This is incredible work. Thank you for sharing! I look forward to seeing what the community creates with this - but well done on what must have been a HUGE effort.
Thanks man, appreciate that! Yeah, I've been working on this one quite a bit 😅
 
Wow, this seems like it could be very useful. Needs examples though. The example links in the description don't lead anywhere. Maybe they are private or something?
 
Woah, this is an insame piece of code you gave us there sir !
first bug report (yes I"m that guy :) )

the plugin doesn't like being in an atom contained in a subscene, UI breaks (awsome UI btw, you did an awsome job)
 
@cyberdelique Thanks for reporting! I can't reproduce the issue though, the UI seems to work fine for me in subscenes. Can you share more details about your subscene and what you mean by the "UI breaks"?
 
@cyberdelique Thanks for reporting! I can't reproduce the issue though, the UI seems to work fine for me in subscenes. Can you share more details about your subscene and what you mean by the "UI breaks"?
here is the error log

!> System.NullReferenceException: Object reference not set to an instance of an object
at everlaster.UX.AlternatePluginsList.PluginHandler.CreateMods () [0x00000] in <filename unknown>:0
at everlaster.LogBuilder.LogException()
at everlaster.LogBuilder.Exception(System.Exception e)
at everlaster.UX.AlternatePluginsList.PluginHandler.CreateMods()
at everlaster.UX.AlternatePluginsList.PluginHandler.ModifyUI()
at everlaster.UX.AlternatePluginsList.PluginHandler.Init()
at everlaster.UX.AlternatePluginsList.PluginHandler..ctor(everlaster.UX.AlternatePluginsList.AlternatePluginsList module, everlaster.UX.AlternatePluginsList.PluginManagerHandler managerHandler, UnityEngine.Transform pluginPanel, everlaster.LogBuilder logBuilder)
at everlaster.UX.AlternatePluginsList.PluginManagerHandler.AddNewPluginHandler(UnityEngine.Transform pluginPanel, Boolean updateRecent)
at everlaster.UX.AlternatePluginsList.PluginManagerHandler+<AddNewPluginHandlerWithWait>c__Iterator3.MoveNext()
at UnityEngine.SetupCoroutine.InvokeMoveNext(IEnumerator enumerator, IntPtr returnValueAddress)
at UnityEngine.MonoBehaviour.StartCoroutineManaged2(IEnumerator )
at UnityEngine.MonoBehaviour.StartCoroutine(IEnumerator routine)
at everlaster.UX.AlternatePluginsList.PluginManagerHandler+<OnAddPlugin>c__AnonStorey6.<>m__0()
at JSONStorableUrl.SetFilePathBrowseCallback(System.String path, Boolean didClose)
at uFileBrowser.FileBrowser.SelectButtonClicked()
at uFileBrowser.FileBrowser.SelectFile(uFileBrowser.FileButton fb)
at uFileBrowser.FileBrowser.OnFileClick(uFileBrowser.FileButton fb)
at uFileBrowser.FileButton.OnClick()
at UnityEngine.Events.InvokableCall.Invoke()
at UnityEngine.Events.UnityEvent.Invoke()
at UnityEngine.UI.Button.Press()
at UnityEngine.UI.Button.OnPointerClick(UnityEngine.EventSystems.PointerEventData eventData)
at UnityEngine.EventSystems.ExecuteEvents.Execute(IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData)
at UnityEngine.EventSystems.ExecuteEvents.Execute(UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor)
at LookInputModule.ProcessMousePressAlt(UnityEngine.EventSystems.MouseButtonEventData data)
at LookInputModule.ProcessMouseAlt(Boolean useCenterOfCamera)
at SuperController.ProcessUI()
at SuperController.Update()

OK it's everlaster UXplus that throws the error if another plugin is allready on slot 0 in the empty (tried to load blooprint as plugin#1)
tried in a empty one and it works OK
RESOLVED
 
Suggestion, when you pull off a link to an empty space in the grid, it would make sense if it opened the context menu with options which have a matching input. And if you select one of those options in the context menu it would then assign the link to the first matching input pin on the node.
 
Yes, great suggestion, just like in UE5 or Blender nodes. Thanks! I had something like this planned, but it's one of those QoL features that didn't make it into the first version 😅
 
Yes, for now no commercial use of any of my resources. I'm open to make exceptions though, and might change the license at some point anyway.
 
Well this is going to eat up my life.

Really looking forward to your example scenes, mate! And a commercial license down the road. o_O

Cheers, mate! This is insane!
 
@donkeykong69 @Thavus @Arachnut One of the packages with examples is published now: Skin Paint Basics

It has two Blooprints that listen to parameters of another plugin via callbacks, and change colors and animations of a CUA in response. The spray paint Blooprint also does some physics calculations to play SFX for shaking the CUA. Both Blooprints also expose some parameters in the script UI. The next package will have 7 more Blooprints, some of them quite complex.

Although the Blooprints in both packages are tailored quite specifically to implementing logic for those CUAs, I think a lot can be learned about how to do stuff with Blooprints in general. Once you understand how to get parameters from atoms and plugins, set their value, and listen to changes via callbacks, you can already do a lot.

More general purpose examples that focus on how to do one specific thing would probably be nice, but I didn't get to that yet. In the meantime, I'm always happy to answer questions!
 
rutheniumm said:
This is a good plugin however, im wondering how i can activate triggers via blooprints, do i have to use Callback? because i dont know, i can activate triggers that take in a float argument, but i dont know how to activate triggers with StringChooser types, im trying to trigger some params inside the VAMMoan2 plugin.
@rutheniumm Are you asking how to set the value of a string chooser parameter? If so, you should use the "Set Value" node like in the example below. Right now you must type in the value, I should make this a dropdown for string chooser params in a future version.

Example Blooprint to set the state of VAMMoan to Kissing

JSON:
{
   "Version" : "1.0.0.1",
   "Storables" : [
   ],
   "Graph" : {
      "Guid" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
      "variables" : [
      ],
      "nodes" : [
         {
            "Guid" : "03729e6a-e4eb-4454-842c-3a061098d055",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "inExecPins" : [
            ],
            "outExecPins" : [
               {
                  "Guid" : "5dd9f78a-acb1-43b4-b97c-e91f25fdeaa7",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "03729e6a-e4eb-4454-842c-3a061098d055",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
            ],
            "outDataPins" : [
            ],
            "displayName" : "OnEnable",
            "compactName" : "",
            "position" : {
               "x" : "-817.7578",
               "y" : "480.7813"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintOnEnable"
         },
         {
            "Guid" : "b56031b0-a515-4fec-b77b-5f879a4ea074",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "b9a6fecf-06f1-428b-b275-a182ab79846e",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "b56031b0-a515-4fec-b77b-5f879a4ea074",
                  "IsOutput" : "false",
                  "name" : "Atom",
                  "type" : "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "[CameraRig]",
                     "$type" : "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "06792e2c-d73d-4734-92cc-349f3c1b0262",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "b56031b0-a515-4fec-b77b-5f879a4ea074",
                  "IsOutput" : "false",
                  "name" : "Name",
                  "type" : "System.String",
                  "constraint" : {
                     "types" : [
                        "System.String"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "VAMMoan2TeaserPlugin.VAMMoan2Teaser",
                     "$type" : "System.String"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "418dfa72-722b-4619-9122-d85295b1af32",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "b56031b0-a515-4fec-b77b-5f879a4ea074",
                  "IsOutput" : "true",
                  "name" : "",
                  "type" : "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "FindPlugin",
            "compactName" : "",
            "position" : {
               "x" : "-563.9922",
               "y" : "315.957"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Atoms.PBNodeAtomsFindPlugin"
         },
         {
            "Guid" : "590dce1c-368e-4b6a-b438-381b30a2a8eb",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
            ],
            "outDataPins" : [
               {
                  "Guid" : "900abb06-81ed-4f0c-8d3b-6d15c3b27c1d",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "590dce1c-368e-4b6a-b438-381b30a2a8eb",
                  "IsOutput" : "true",
                  "name" : "Value",
                  "type" : "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "Owner",
            "compactName" : "Owner",
            "position" : {
               "x" : "-792.4766",
               "y" : "261.3398"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintOwner"
         },
         {
            "Guid" : "7560913e-334a-4e3c-85a1-6134144a00c5",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "3a2889ac-841e-4f0e-8004-4e72b76cff71",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "7560913e-334a-4e3c-85a1-6134144a00c5",
                  "IsOutput" : "false",
                  "name" : "Storable",
                  "type" : "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "3ce35db1-5ee4-429e-adfa-1f490c4370d2",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "7560913e-334a-4e3c-85a1-6134144a00c5",
                  "IsOutput" : "false",
                  "name" : "Name",
                  "type" : "System.String",
                  "constraint" : {
                     "types" : [
                        "System.String"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "Change State",
                     "$type" : "System.String"
                  },
                  "visibility" : [
                     "Name",
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "0c53c197-1f68-47d0-951e-cc872bfdfb2c",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "7560913e-334a-4e3c-85a1-6134144a00c5",
                  "IsOutput" : "true",
                  "name" : "",
                  "type" : "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "GetParam",
            "compactName" : "",
            "position" : {
               "x" : "138.9648",
               "y" : "315.2188"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesGetParam"
         },
         {
            "Guid" : "6629661f-57f6-4343-9c1e-58a9cc584345",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "inExecPins" : [
               {
                  "Guid" : "a28fc88e-8390-4cd2-81d3-381bf157e2ce",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "6629661f-57f6-4343-9c1e-58a9cc584345",
                  "IsOutput" : "false",
                  "name" : "Exec",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "outExecPins" : [
               {
                  "Guid" : "079472e5-830a-4288-a42d-bbbaf8d5ee10",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "6629661f-57f6-4343-9c1e-58a9cc584345",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
               {
                  "Guid" : "6a700970-c878-47ca-86d4-c48df71111e7",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "6629661f-57f6-4343-9c1e-58a9cc584345",
                  "IsOutput" : "false",
                  "name" : "Param",
                  "type" : "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableBool, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableVector3, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableString, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableUrl, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "e0f94973-3995-4617-9d3a-a0c1a8f1ef6f",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "6629661f-57f6-4343-9c1e-58a9cc584345",
                  "IsOutput" : "false",
                  "name" : "Value",
                  "type" : "System.String",
                  "constraint" : {
                     "types" : [
                        "System.Boolean",
                        "System.Single",
                        "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "System.String",
                        "HSVColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "Kissing",
                     "$type" : "System.String"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
            ],
            "displayName" : "SetValue",
            "compactName" : "",
            "position" : {
               "x" : "639.1289",
               "y" : "482.3672"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesSetValue"
         }
      ],
      "links" : [
         {
            "Guid" : "154a8995-0728-4dc9-9784-a32ab0e4758c",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "Output" : "900abb06-81ed-4f0c-8d3b-6d15c3b27c1d",
            "Input" : "b9a6fecf-06f1-428b-b275-a182ab79846e"
         },
         {
            "Guid" : "a1573566-e1fa-46a2-8816-b61dbf6a542d",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "Output" : "418dfa72-722b-4619-9122-d85295b1af32",
            "Input" : "3a2889ac-841e-4f0e-8004-4e72b76cff71"
         },
         {
            "Guid" : "4c629461-686e-4e01-a405-73a3ca7261f4",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "Output" : "5dd9f78a-acb1-43b4-b97c-e91f25fdeaa7",
            "Input" : "a28fc88e-8390-4cd2-81d3-381bf157e2ce"
         },
         {
            "Guid" : "58cffc8a-0c99-4dcf-bf21-73d9fd55e220",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "Output" : "0c53c197-1f68-47d0-951e-cc872bfdfb2c",
            "Input" : "6a700970-c878-47ca-86d4-c48df71111e7"
         }
      ],
      "redirectors" : [
      ]
   }
}
 
@rutheniumm Are you asking how to set the value of a string chooser parameter? If so, you should use the "Set Value" node like in the example below. Right now you must type in the value, I should make this a dropdown for string chooser params in a future version.

View attachment 570209
JSON:
{
   "Version" : "1.0.0.1",
   "Storables" : [
   ],
   "Graph" : {
      "Guid" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
      "variables" : [
      ],
      "nodes" : [
         {
            "Guid" : "03729e6a-e4eb-4454-842c-3a061098d055",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "inExecPins" : [
            ],
            "outExecPins" : [
               {
                  "Guid" : "5dd9f78a-acb1-43b4-b97c-e91f25fdeaa7",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "03729e6a-e4eb-4454-842c-3a061098d055",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
            ],
            "outDataPins" : [
            ],
            "displayName" : "OnEnable",
            "compactName" : "",
            "position" : {
               "x" : "-817.7578",
               "y" : "480.7813"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintOnEnable"
         },
         {
            "Guid" : "b56031b0-a515-4fec-b77b-5f879a4ea074",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "b9a6fecf-06f1-428b-b275-a182ab79846e",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "b56031b0-a515-4fec-b77b-5f879a4ea074",
                  "IsOutput" : "false",
                  "name" : "Atom",
                  "type" : "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "[CameraRig]",
                     "$type" : "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "06792e2c-d73d-4734-92cc-349f3c1b0262",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "b56031b0-a515-4fec-b77b-5f879a4ea074",
                  "IsOutput" : "false",
                  "name" : "Name",
                  "type" : "System.String",
                  "constraint" : {
                     "types" : [
                        "System.String"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "VAMMoan2TeaserPlugin.VAMMoan2Teaser",
                     "$type" : "System.String"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "418dfa72-722b-4619-9122-d85295b1af32",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "b56031b0-a515-4fec-b77b-5f879a4ea074",
                  "IsOutput" : "true",
                  "name" : "",
                  "type" : "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "FindPlugin",
            "compactName" : "",
            "position" : {
               "x" : "-563.9922",
               "y" : "315.957"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Atoms.PBNodeAtomsFindPlugin"
         },
         {
            "Guid" : "590dce1c-368e-4b6a-b438-381b30a2a8eb",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
            ],
            "outDataPins" : [
               {
                  "Guid" : "900abb06-81ed-4f0c-8d3b-6d15c3b27c1d",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "590dce1c-368e-4b6a-b438-381b30a2a8eb",
                  "IsOutput" : "true",
                  "name" : "Value",
                  "type" : "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "Owner",
            "compactName" : "Owner",
            "position" : {
               "x" : "-792.4766",
               "y" : "261.3398"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintOwner"
         },
         {
            "Guid" : "7560913e-334a-4e3c-85a1-6134144a00c5",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "3a2889ac-841e-4f0e-8004-4e72b76cff71",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "7560913e-334a-4e3c-85a1-6134144a00c5",
                  "IsOutput" : "false",
                  "name" : "Storable",
                  "type" : "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "3ce35db1-5ee4-429e-adfa-1f490c4370d2",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "7560913e-334a-4e3c-85a1-6134144a00c5",
                  "IsOutput" : "false",
                  "name" : "Name",
                  "type" : "System.String",
                  "constraint" : {
                     "types" : [
                        "System.String"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "Change State",
                     "$type" : "System.String"
                  },
                  "visibility" : [
                     "Name",
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "0c53c197-1f68-47d0-951e-cc872bfdfb2c",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "7560913e-334a-4e3c-85a1-6134144a00c5",
                  "IsOutput" : "true",
                  "name" : "",
                  "type" : "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "GetParam",
            "compactName" : "",
            "position" : {
               "x" : "138.9648",
               "y" : "315.2188"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesGetParam"
         },
         {
            "Guid" : "6629661f-57f6-4343-9c1e-58a9cc584345",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "inExecPins" : [
               {
                  "Guid" : "a28fc88e-8390-4cd2-81d3-381bf157e2ce",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "6629661f-57f6-4343-9c1e-58a9cc584345",
                  "IsOutput" : "false",
                  "name" : "Exec",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "outExecPins" : [
               {
                  "Guid" : "079472e5-830a-4288-a42d-bbbaf8d5ee10",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "6629661f-57f6-4343-9c1e-58a9cc584345",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
               {
                  "Guid" : "6a700970-c878-47ca-86d4-c48df71111e7",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "6629661f-57f6-4343-9c1e-58a9cc584345",
                  "IsOutput" : "false",
                  "name" : "Param",
                  "type" : "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableBool, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableVector3, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableString, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableUrl, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "e0f94973-3995-4617-9d3a-a0c1a8f1ef6f",
                  "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
                  "Node" : "6629661f-57f6-4343-9c1e-58a9cc584345",
                  "IsOutput" : "false",
                  "name" : "Value",
                  "type" : "System.String",
                  "constraint" : {
                     "types" : [
                        "System.Boolean",
                        "System.Single",
                        "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "System.String",
                        "HSVColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "Kissing",
                     "$type" : "System.String"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
            ],
            "displayName" : "SetValue",
            "compactName" : "",
            "position" : {
               "x" : "639.1289",
               "y" : "482.3672"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesSetValue"
         }
      ],
      "links" : [
         {
            "Guid" : "154a8995-0728-4dc9-9784-a32ab0e4758c",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "Output" : "900abb06-81ed-4f0c-8d3b-6d15c3b27c1d",
            "Input" : "b9a6fecf-06f1-428b-b275-a182ab79846e"
         },
         {
            "Guid" : "a1573566-e1fa-46a2-8816-b61dbf6a542d",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "Output" : "418dfa72-722b-4619-9122-d85295b1af32",
            "Input" : "3a2889ac-841e-4f0e-8004-4e72b76cff71"
         },
         {
            "Guid" : "4c629461-686e-4e01-a405-73a3ca7261f4",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "Output" : "5dd9f78a-acb1-43b4-b97c-e91f25fdeaa7",
            "Input" : "a28fc88e-8390-4cd2-81d3-381bf157e2ce"
         },
         {
            "Guid" : "58cffc8a-0c99-4dcf-bf21-73d9fd55e220",
            "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
            "Output" : "0c53c197-1f68-47d0-951e-cc872bfdfb2c",
            "Input" : "6a700970-c878-47ca-86d4-c48df71111e7"
         }
      ],
      "redirectors" : [
      ]
   }
}
Ah, I must've done something wrong to not get the same results you yielded in this response, common mistake XD. I appreciate the assistance on that. Now, as of right now Is it possible to make new atoms via blueprints? I also have a recommendation: you should add node groups so you can sort of organize your nodes, as well as node renaming. I would also appreciate it if you added more explanation on how to use callbacks; it seems a bit repetitive, and it seems like there could perhaps be a better way of implementing callbacks in this node system. But in the meantime, I think it would be helpful for me and any other users who come across this plugin that you added some more documentation, of course, that is a lot of work, but some minor documentation could work. You could basically make an auto-doc system yourself if you really wanted to, but when it comes to documentation, I think that would be a VERY helpful thing, as this plugin is already one of my favorites. I've been waiting for some logic/scripting like this for ages now. Adding on, your GPURaycast plugin, which you also recently released, is it able to be used with Blooprints? And finally, if you do add node grouping/renaming, you should allow for there to be custom nodes we can make when we bundle these nodes together, it could allow for a better way for people to make individual node addons to this plugin, and better yet it could eventually have its own section on the VAM Resources, and people can just easily download node extensions. Other than that, I'm very impressed with this, as it is one of your first few plugins released.
 
Now, as of right now Is it possible to make new atoms via blueprints?
No, there's no node for that at the moment.

I also have a recommendation: you should add node groups so you can sort of organize your nodes, as well as node renaming.
As someone who likes to keep my Blooprints tidy and organized myself, yes, that would be very useful, especially grouping.

I would also appreciate it if you added more explanation on how to use callbacks; it seems a bit repetitive, and it seems like there could perhaps be a better way of implementing callbacks in this node system.
Callbacks are used to do something whenever the value of a param changes. The example Blooprint below illustrates how to use callbacks. In this example the value of "Some Param" is logged whenever it's changed (e.g. via the slider in the UI, or using the SetValue node).

If you enable "Call Now" in the SetCallback node, the callback will not only be called whenever the value changes, but also once right now with the current value of the param. This is useful for initialization.

You can also use the SetCallback node with the "On" toggle disabled at a later point again, if you want to stop listening to changes. Callbacks will also automatically unsubscribed when Run is disabled.

If you want to manually run your callback logic, use the Call node. This will invoke your callback with the passed value, but not change the param value.

Also worth noting, you can use the same callback for multiple params.

As for the repetitiveness, it can be, yes. I plan to add dropdowns to the SetCallback node, that could already make it a bit smoother. For the "Param" pin all params of the Blooprint itself, and its callbacks in the "Callback" pin.

blooprints-callbacks.png

JSON:
{
   "Version" : "1.0.0.1",
   "Storables" : [
      {
         "name" : "Some Param",
         "hasUi" : "true",
         "uiRightSide" : "false",
         "defaultValue" : "0",
         "min" : "0",
         "max" : "1",
         "constrained" : "true",
         "wholeNumbers" : "false",
         "$type" : "perfectbloo.Core.Storables.DynamicFloatParam"
      }
   ],
   "Graph" : {
      "Guid" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
      "variables" : [
         {
            "Guid" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "name" : "My Callback",
            "Kind" : "Callback",
            "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
         }
      ],
      "nodes" : [
         {
            "Guid" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
               {
                  "Guid" : "0d92aae3-6777-4085-ba16-2e35dabb872b",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2",
                  "IsOutput" : "false",
                  "name" : "Exec",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "outExecPins" : [
               {
                  "Guid" : "8810fb1a-d4f2-40c8-b0fc-73d830fbcf15",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
               {
                  "Guid" : "c111d6ef-669c-4112-af5c-2864cc0a1976",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2",
                  "IsOutput" : "false",
                  "name" : "Message",
                  "type" : "System.Object",
                  "constraint" : {
                     "types" : [
                        "System.String",
                        "System.Object"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
            ],
            "displayName" : "Print",
            "compactName" : "",
            "position" : {
               "x" : "456.0703",
               "y" : "-48.97656"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Logging.PBNodeLoggingPrint"
         },
         {
            "Guid" : "1d0497d8-d237-404e-ba17-26b73b0eb72e",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
            ],
            "outDataPins" : [
               {
                  "Guid" : "e98016b7-9045-410c-9daa-7246be4e40ce",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1d0497d8-d237-404e-ba17-26b73b0eb72e",
                  "IsOutput" : "true",
                  "name" : "Value",
                  "type" : "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "Self",
            "compactName" : "Self",
            "position" : {
               "x" : "-94.99219",
               "y" : "375.1523"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintSelf"
         },
         {
            "Guid" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "011342fc-5ff5-49dc-b97a-a1e75207bb60",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1",
                  "IsOutput" : "false",
                  "name" : "Storable",
                  "type" : "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "b0d44046-dff5-4f35-8e7f-e6cafeea15d0",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1",
                  "IsOutput" : "false",
                  "name" : "Name",
                  "type" : "System.String",
                  "constraint" : {
                     "types" : [
                        "System.String"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "Some Param",
                     "$type" : "System.String"
                  },
                  "visibility" : [
                     "Name",
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "4765ba55-ce8e-42c7-91c4-052f23e7decc",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1",
                  "IsOutput" : "true",
                  "name" : "",
                  "type" : "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "GetParam",
            "compactName" : "",
            "position" : {
               "x" : "74.88281",
               "y" : "429.7383"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesGetParam"
         },
         {
            "Guid" : "b79c7a6f-25c4-4c52-8bcf-10eb250eda26",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "6140a4cf-0161-48c7-bd1b-ef4086f861a4",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "b79c7a6f-25c4-4c52-8bcf-10eb250eda26",
                  "IsOutput" : "false",
                  "name" : "Guid",
                  "type" : "System.Guid",
                  "constraint" : {
                     "types" : [
                        "System.Guid"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e",
                     "$type" : "System.Guid"
                  },
                  "visibility" : [
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "389a8c5e-a300-460d-834d-1227cd128ed1",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "b79c7a6f-25c4-4c52-8bcf-10eb250eda26",
                  "IsOutput" : "true",
                  "name" : "Value",
                  "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "GetCallback",
            "compactName" : "",
            "position" : {
               "x" : "93.84375",
               "y" : "195.6055"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintGetCallback"
         },
         {
            "Guid" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
               {
                  "Guid" : "3247826e-b087-4b7b-a435-919f45eade42",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
                  "IsOutput" : "false",
                  "name" : "Exec",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "outExecPins" : [
               {
                  "Guid" : "ef79c87f-fe5f-426d-b9cd-63637b16f2b3",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
               {
                  "Guid" : "77a06387-9739-4421-b44b-26341893eed1",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
                  "IsOutput" : "false",
                  "name" : "Param",
                  "type" : "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableBool, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableVector3, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableString, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableUrl, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableAction, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "32b73b0a-c4db-440b-a217-bbc31cf4a882",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
                  "IsOutput" : "false",
                  "name" : "Callback",
                  "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableBool+SetBoolCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableVector3+SetVector3Callback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableString+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableColor+SetHSVColorCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "6c179ba6-ecc0-4d2d-83e0-bc8c29b9703a",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
                  "IsOutput" : "false",
                  "name" : "On",
                  "type" : "System.Boolean",
                  "constraint" : {
                     "types" : [
                        "System.Boolean"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "true",
                     "$type" : "System.Boolean"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "c28390e4-5f9c-4878-81cf-e302be70595a",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
                  "IsOutput" : "false",
                  "name" : "CallNow",
                  "type" : "System.Boolean",
                  "constraint" : {
                     "types" : [
                        "System.Boolean"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "false",
                     "$type" : "System.Boolean"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
            ],
            "displayName" : "SetCallback",
            "compactName" : "",
            "position" : {
               "x" : "606.4766",
               "y" : "574.2344"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesSetCallback"
         },
         {
            "Guid" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
            ],
            "outExecPins" : [
               {
                  "Guid" : "c89a35ca-976d-43a9-980d-464ec6c0f2a4",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
               {
                  "Guid" : "dd229fa2-1076-49d9-8234-bf2d7f16684e",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
                  "IsOutput" : "false",
                  "name" : "CallbackVariable",
                  "type" : "System.Guid",
                  "constraint" : {
                     "types" : [
                        "System.Guid"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e",
                     "$type" : "System.Guid"
                  },
                  "visibility" : [
                     "None"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "96ebdba4-82df-49f0-a911-bfa1ca253ced",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
                  "IsOutput" : "false",
                  "name" : "Type",
                  "type" : "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType",
                  "constraint" : {
                     "types" : [
                        "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "Float",
                     "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType"
                  },
                  "visibility" : [
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "7bdaa97b-1fed-4d51-a456-d8d448a0c0ea",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
                  "IsOutput" : "false",
                  "name" : "Name",
                  "type" : "System.String",
                  "constraint" : {
                     "types" : [
                        "System.String"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "My Callback",
                     "$type" : "System.String"
                  },
                  "visibility" : [
                     "Name",
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "767e8c9a-c32d-4c7e-a7b7-08256251a615",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
                  "IsOutput" : "true",
                  "name" : "Value",
                  "type" : "System.Single",
                  "constraint" : {
                     "types" : [
                        "System.Single"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "0",
                     "$type" : "System.Single"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "Callback",
            "compactName" : "",
            "position" : {
               "x" : "-168.9844",
               "y" : "-50.07031"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintCallback"
         },
         {
            "Guid" : "0c5f0c87-e5ba-4de7-8595-15eb3e28830e",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
            ],
            "outExecPins" : [
               {
                  "Guid" : "e2a58551-64c6-4f5d-a09b-e9d192ca8781",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "0c5f0c87-e5ba-4de7-8595-15eb3e28830e",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
            ],
            "outDataPins" : [
            ],
            "displayName" : "OnEnable",
            "compactName" : "",
            "position" : {
               "x" : "-175.8555",
               "y" : "573.3008"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintOnEnable"
         },
         {
            "Guid" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
               {
                  "Guid" : "f72f8271-6ab4-48cb-a54f-9584cb4f8eb8",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
                  "IsOutput" : "false",
                  "name" : "Exec",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "outExecPins" : [
               {
                  "Guid" : "b5396bdf-5dc6-4e9b-a06d-7eb3739f8cf6",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
               {
                  "Guid" : "5a1a7d2a-2b8f-4f28-8690-0951f99ec0ac",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
                  "IsOutput" : "false",
                  "name" : "Callback",
                  "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableBool+SetBoolCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableVector3+SetVector3Callback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableString+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableColor+SetHSVColorCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "816ab479-484b-4277-a364-ee4702f94e79",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
                  "IsOutput" : "false",
                  "name" : "Value",
                  "type" : "System.Single",
                  "constraint" : {
                     "types" : [
                        "System.Boolean",
                        "System.Single",
                        "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "System.String",
                        "HSVColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "42",
                     "$type" : "System.Single"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
            ],
            "displayName" : "Call",
            "compactName" : "",
            "position" : {
               "x" : "1474.332",
               "y" : "565.8906"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesCall"
         },
         {
            "Guid" : "87eb0703-6112-4446-830e-9e9e108f0bea",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "a5131a80-8fda-4923-8291-dc33093ad2b1",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "87eb0703-6112-4446-830e-9e9e108f0bea",
                  "IsOutput" : "false",
                  "name" : "Guid",
                  "type" : "System.Guid",
                  "constraint" : {
                     "types" : [
                        "System.Guid"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e",
                     "$type" : "System.Guid"
                  },
                  "visibility" : [
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "86f2ccb2-f7f9-432e-bb53-b1ec367f2794",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "87eb0703-6112-4446-830e-9e9e108f0bea",
                  "IsOutput" : "true",
                  "name" : "Value",
                  "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "GetCallback",
            "compactName" : "",
            "position" : {
               "x" : "985.5586",
               "y" : "442.4023"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintGetCallback"
         }
      ],
      "links" : [
         {
            "Guid" : "c471cb0a-f392-4d80-b216-c0c70d2a723b",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "Output" : "4765ba55-ce8e-42c7-91c4-052f23e7decc",
            "Input" : "77a06387-9739-4421-b44b-26341893eed1"
         },
         {
            "Guid" : "3ab2bf25-b0c3-4ee2-b71f-685366da5b6e",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "Output" : "e98016b7-9045-410c-9daa-7246be4e40ce",
            "Input" : "011342fc-5ff5-49dc-b97a-a1e75207bb60"
         },
         {
            "Guid" : "8e90cc86-e181-4e53-9e61-848411354a06",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "Output" : "389a8c5e-a300-460d-834d-1227cd128ed1",
            "Input" : "32b73b0a-c4db-440b-a217-bbc31cf4a882"
         },
         {
            "Guid" : "88c3b13c-d3bb-4355-98f6-c41682544b70",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "Output" : "767e8c9a-c32d-4c7e-a7b7-08256251a615",
            "Input" : "c111d6ef-669c-4112-af5c-2864cc0a1976"
         },
         {
            "Guid" : "5fa6a0bc-5dbb-4947-82dc-ae6ac35ffb9f",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "Output" : "c89a35ca-976d-43a9-980d-464ec6c0f2a4",
            "Input" : "0d92aae3-6777-4085-ba16-2e35dabb872b"
         },
         {
            "Guid" : "f5784690-bfdc-4ad0-81ac-03be434d9a7a",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "Output" : "e2a58551-64c6-4f5d-a09b-e9d192ca8781",
            "Input" : "3247826e-b087-4b7b-a435-919f45eade42"
         },
         {
            "Guid" : "ec6ec363-fd23-46e0-8e96-3f01ecfaa6ef",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "Output" : "86f2ccb2-f7f9-432e-bb53-b1ec367f2794",
            "Input" : "5a1a7d2a-2b8f-4f28-8690-0951f99ec0ac"
         }
      ],
      "redirectors" : [
      ]
   }
}

But in the meantime, I think it would be helpful for me and any other users who come across this plugin that you added some more documentation, of course, that is a lot of work, but some minor documentation could work. You could basically make an auto-doc system yourself if you really wanted to, but when it comes to documentation, I think that would be a VERY helpful thing, as this plugin is already one of my favorites. I've been waiting for some logic/scripting like this for ages now.
I totally get that, documentation is very important for a tool like this. Just keep in mind, at this point this is an experimental release. For those that like to tinker and experiment themselves, and maybe even have some experience with other node based scripting tools like UE5. Knowing VaM plugin development can help a lot, too.

But yes, for now it would also be great to at least have examples with the basics to get started. I hope to gradually build the documentation, with the long-term goal to have tutorials and actually have some sort of auto-doc system with descriptions of each node. To provide in-game hints, and probably a web-based documentation as well.

Adding on, your GPURaycast plugin, which you also recently released, is it able to be used with Blooprints?
Technically it is, but not really convenient. It exposes an API you could access using the param, value, and call nodes. But no, there's no dedicated node for it.

And finally, if you do add node grouping/renaming, you should allow for there to be custom nodes we can make when we bundle these nodes together, it could allow for a better way for people to make individual node addons to this plugin, and better yet it could eventually have its own section on the VAM Resources, and people can just easily download node extensions.
Making reusable building blocks like custom nodes is definitely on the roadmap!

Other than that, I'm very impressed with this, as it is one of your first few plugins released.
Thanks for all your suggestions 🩵

Right now I'm noting down all the feedback I get, prioritize, see what will make it into the next major update, and gradually improve documentation. However, as probably most other creators I'm doing this in my free time, so please be patient. In the meantime, I'm always happy to answer questions!
 
No, there's no node for that at the moment.


As someone who likes to keep my Blooprints tidy and organized myself, yes, that would be very useful, especially grouping.


Callbacks are used to do something whenever the value of a param changes. The example Blooprint below illustrates how to use callbacks. In this example the value of "Some Param" is logged whenever it's changed (e.g. via the slider in the UI, or using the SetValue node).

If you enable "Call Now" in the SetCallback node, the callback will not only be called whenever the value changes, but also once right now with the current value of the param. This is useful for initialization.

You can also use the SetCallback node with the "On" toggle disabled at a later point again, if you want to stop listening to changes. Callbacks will also automatically unsubscribed when Run is disabled.

If you want to manually run your callback logic, use the Call node. This will invoke your callback with the passed value, but not change the param value.

Also worth noting, you can use the same callback for multiple params.

As for the repetitiveness, it can be, yes. I plan to add dropdowns to the SetCallback node, that could already make it a bit smoother. For the "Param" pin all params of the Blooprint itself, and its callbacks in the "Callback" pin.

View attachment 570290
JSON:
{
   "Version" : "1.0.0.1",
   "Storables" : [
      {
         "name" : "Some Param",
         "hasUi" : "true",
         "uiRightSide" : "false",
         "defaultValue" : "0",
         "min" : "0",
         "max" : "1",
         "constrained" : "true",
         "wholeNumbers" : "false",
         "$type" : "perfectbloo.Core.Storables.DynamicFloatParam"
      }
   ],
   "Graph" : {
      "Guid" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
      "variables" : [
         {
            "Guid" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "name" : "My Callback",
            "Kind" : "Callback",
            "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
         }
      ],
      "nodes" : [
         {
            "Guid" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
               {
                  "Guid" : "0d92aae3-6777-4085-ba16-2e35dabb872b",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2",
                  "IsOutput" : "false",
                  "name" : "Exec",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "outExecPins" : [
               {
                  "Guid" : "8810fb1a-d4f2-40c8-b0fc-73d830fbcf15",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
               {
                  "Guid" : "c111d6ef-669c-4112-af5c-2864cc0a1976",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2",
                  "IsOutput" : "false",
                  "name" : "Message",
                  "type" : "System.Object",
                  "constraint" : {
                     "types" : [
                        "System.String",
                        "System.Object"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
            ],
            "displayName" : "Print",
            "compactName" : "",
            "position" : {
               "x" : "456.0703",
               "y" : "-48.97656"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Logging.PBNodeLoggingPrint"
         },
         {
            "Guid" : "1d0497d8-d237-404e-ba17-26b73b0eb72e",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
            ],
            "outDataPins" : [
               {
                  "Guid" : "e98016b7-9045-410c-9daa-7246be4e40ce",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1d0497d8-d237-404e-ba17-26b73b0eb72e",
                  "IsOutput" : "true",
                  "name" : "Value",
                  "type" : "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "Self",
            "compactName" : "Self",
            "position" : {
               "x" : "-94.99219",
               "y" : "375.1523"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintSelf"
         },
         {
            "Guid" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "011342fc-5ff5-49dc-b97a-a1e75207bb60",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1",
                  "IsOutput" : "false",
                  "name" : "Storable",
                  "type" : "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "b0d44046-dff5-4f35-8e7f-e6cafeea15d0",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1",
                  "IsOutput" : "false",
                  "name" : "Name",
                  "type" : "System.String",
                  "constraint" : {
                     "types" : [
                        "System.String"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "Some Param",
                     "$type" : "System.String"
                  },
                  "visibility" : [
                     "Name",
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "4765ba55-ce8e-42c7-91c4-052f23e7decc",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1",
                  "IsOutput" : "true",
                  "name" : "",
                  "type" : "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "GetParam",
            "compactName" : "",
            "position" : {
               "x" : "74.88281",
               "y" : "429.7383"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesGetParam"
         },
         {
            "Guid" : "b79c7a6f-25c4-4c52-8bcf-10eb250eda26",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "6140a4cf-0161-48c7-bd1b-ef4086f861a4",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "b79c7a6f-25c4-4c52-8bcf-10eb250eda26",
                  "IsOutput" : "false",
                  "name" : "Guid",
                  "type" : "System.Guid",
                  "constraint" : {
                     "types" : [
                        "System.Guid"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e",
                     "$type" : "System.Guid"
                  },
                  "visibility" : [
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "389a8c5e-a300-460d-834d-1227cd128ed1",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "b79c7a6f-25c4-4c52-8bcf-10eb250eda26",
                  "IsOutput" : "true",
                  "name" : "Value",
                  "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "GetCallback",
            "compactName" : "",
            "position" : {
               "x" : "93.84375",
               "y" : "195.6055"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintGetCallback"
         },
         {
            "Guid" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
               {
                  "Guid" : "3247826e-b087-4b7b-a435-919f45eade42",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
                  "IsOutput" : "false",
                  "name" : "Exec",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "outExecPins" : [
               {
                  "Guid" : "ef79c87f-fe5f-426d-b9cd-63637b16f2b3",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
               {
                  "Guid" : "77a06387-9739-4421-b44b-26341893eed1",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
                  "IsOutput" : "false",
                  "name" : "Param",
                  "type" : "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableBool, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableVector3, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableString, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableUrl, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableAction, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "32b73b0a-c4db-440b-a217-bbc31cf4a882",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
                  "IsOutput" : "false",
                  "name" : "Callback",
                  "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableBool+SetBoolCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableVector3+SetVector3Callback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableString+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableColor+SetHSVColorCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "6c179ba6-ecc0-4d2d-83e0-bc8c29b9703a",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
                  "IsOutput" : "false",
                  "name" : "On",
                  "type" : "System.Boolean",
                  "constraint" : {
                     "types" : [
                        "System.Boolean"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "true",
                     "$type" : "System.Boolean"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "c28390e4-5f9c-4878-81cf-e302be70595a",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
                  "IsOutput" : "false",
                  "name" : "CallNow",
                  "type" : "System.Boolean",
                  "constraint" : {
                     "types" : [
                        "System.Boolean"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "false",
                     "$type" : "System.Boolean"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
            ],
            "displayName" : "SetCallback",
            "compactName" : "",
            "position" : {
               "x" : "606.4766",
               "y" : "574.2344"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesSetCallback"
         },
         {
            "Guid" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
            ],
            "outExecPins" : [
               {
                  "Guid" : "c89a35ca-976d-43a9-980d-464ec6c0f2a4",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
               {
                  "Guid" : "dd229fa2-1076-49d9-8234-bf2d7f16684e",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
                  "IsOutput" : "false",
                  "name" : "CallbackVariable",
                  "type" : "System.Guid",
                  "constraint" : {
                     "types" : [
                        "System.Guid"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e",
                     "$type" : "System.Guid"
                  },
                  "visibility" : [
                     "None"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "96ebdba4-82df-49f0-a911-bfa1ca253ced",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
                  "IsOutput" : "false",
                  "name" : "Type",
                  "type" : "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType",
                  "constraint" : {
                     "types" : [
                        "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "Float",
                     "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType"
                  },
                  "visibility" : [
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "7bdaa97b-1fed-4d51-a456-d8d448a0c0ea",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
                  "IsOutput" : "false",
                  "name" : "Name",
                  "type" : "System.String",
                  "constraint" : {
                     "types" : [
                        "System.String"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "My Callback",
                     "$type" : "System.String"
                  },
                  "visibility" : [
                     "Name",
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "767e8c9a-c32d-4c7e-a7b7-08256251a615",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
                  "IsOutput" : "true",
                  "name" : "Value",
                  "type" : "System.Single",
                  "constraint" : {
                     "types" : [
                        "System.Single"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "0",
                     "$type" : "System.Single"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "Callback",
            "compactName" : "",
            "position" : {
               "x" : "-168.9844",
               "y" : "-50.07031"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintCallback"
         },
         {
            "Guid" : "0c5f0c87-e5ba-4de7-8595-15eb3e28830e",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
            ],
            "outExecPins" : [
               {
                  "Guid" : "e2a58551-64c6-4f5d-a09b-e9d192ca8781",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "0c5f0c87-e5ba-4de7-8595-15eb3e28830e",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
            ],
            "outDataPins" : [
            ],
            "displayName" : "OnEnable",
            "compactName" : "",
            "position" : {
               "x" : "-175.8555",
               "y" : "573.3008"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintOnEnable"
         },
         {
            "Guid" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
               {
                  "Guid" : "f72f8271-6ab4-48cb-a54f-9584cb4f8eb8",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
                  "IsOutput" : "false",
                  "name" : "Exec",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "outExecPins" : [
               {
                  "Guid" : "b5396bdf-5dc6-4e9b-a06d-7eb3739f8cf6",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
               {
                  "Guid" : "5a1a7d2a-2b8f-4f28-8690-0951f99ec0ac",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
                  "IsOutput" : "false",
                  "name" : "Callback",
                  "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableBool+SetBoolCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableVector3+SetVector3Callback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableString+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableColor+SetHSVColorCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "816ab479-484b-4277-a364-ee4702f94e79",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
                  "IsOutput" : "false",
                  "name" : "Value",
                  "type" : "System.Single",
                  "constraint" : {
                     "types" : [
                        "System.Boolean",
                        "System.Single",
                        "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "System.String",
                        "HSVColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "42",
                     "$type" : "System.Single"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
            ],
            "displayName" : "Call",
            "compactName" : "",
            "position" : {
               "x" : "1474.332",
               "y" : "565.8906"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesCall"
         },
         {
            "Guid" : "87eb0703-6112-4446-830e-9e9e108f0bea",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "a5131a80-8fda-4923-8291-dc33093ad2b1",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "87eb0703-6112-4446-830e-9e9e108f0bea",
                  "IsOutput" : "false",
                  "name" : "Guid",
                  "type" : "System.Guid",
                  "constraint" : {
                     "types" : [
                        "System.Guid"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e",
                     "$type" : "System.Guid"
                  },
                  "visibility" : [
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "86f2ccb2-f7f9-432e-bb53-b1ec367f2794",
                  "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
                  "Node" : "87eb0703-6112-4446-830e-9e9e108f0bea",
                  "IsOutput" : "true",
                  "name" : "Value",
                  "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "GetCallback",
            "compactName" : "",
            "position" : {
               "x" : "985.5586",
               "y" : "442.4023"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintGetCallback"
         }
      ],
      "links" : [
         {
            "Guid" : "c471cb0a-f392-4d80-b216-c0c70d2a723b",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "Output" : "4765ba55-ce8e-42c7-91c4-052f23e7decc",
            "Input" : "77a06387-9739-4421-b44b-26341893eed1"
         },
         {
            "Guid" : "3ab2bf25-b0c3-4ee2-b71f-685366da5b6e",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "Output" : "e98016b7-9045-410c-9daa-7246be4e40ce",
            "Input" : "011342fc-5ff5-49dc-b97a-a1e75207bb60"
         },
         {
            "Guid" : "8e90cc86-e181-4e53-9e61-848411354a06",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "Output" : "389a8c5e-a300-460d-834d-1227cd128ed1",
            "Input" : "32b73b0a-c4db-440b-a217-bbc31cf4a882"
         },
         {
            "Guid" : "88c3b13c-d3bb-4355-98f6-c41682544b70",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "Output" : "767e8c9a-c32d-4c7e-a7b7-08256251a615",
            "Input" : "c111d6ef-669c-4112-af5c-2864cc0a1976"
         },
         {
            "Guid" : "5fa6a0bc-5dbb-4947-82dc-ae6ac35ffb9f",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "Output" : "c89a35ca-976d-43a9-980d-464ec6c0f2a4",
            "Input" : "0d92aae3-6777-4085-ba16-2e35dabb872b"
         },
         {
            "Guid" : "f5784690-bfdc-4ad0-81ac-03be434d9a7a",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "Output" : "e2a58551-64c6-4f5d-a09b-e9d192ca8781",
            "Input" : "3247826e-b087-4b7b-a435-919f45eade42"
         },
         {
            "Guid" : "ec6ec363-fd23-46e0-8e96-3f01ecfaa6ef",
            "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
            "Output" : "86f2ccb2-f7f9-432e-bb53-b1ec367f2794",
            "Input" : "5a1a7d2a-2b8f-4f28-8690-0951f99ec0ac"
         }
      ],
      "redirectors" : [
      ]
   }
}


I totally get that, documentation is very important for a tool like this. Just keep in mind, at this point this is an experimental release. For those that like to tinker and experiment themselves, and maybe even have some experience with other node based scripting tools like UE5. Knowing VaM plugin development can help a lot, too.

But yes, for now it would also be great to at least have examples with the basics to get started. I hope to gradually build the documentation, with the long-term goal to have tutorials and actually have some sort of auto-doc system with descriptions of each node. To provide in-game hints, and probably a web-based documentation as well.


Technically it is, but not really convenient. It exposes an API you could access using the param, value, and call nodes. But no, there's no dedicated node for it.


Making reusable building blocks like custom nodes is definitely on the roadmap!


Thanks for all your suggestions 🩵

Right now I'm noting down all the feedback I get, prioritize, see what will make it into the next major update, and gradually improve documentation. However, as probably most other creators I'm doing this in my free time, so please be patient. In the meantime, I'm always happy to answer questions!
Really appreciate you and your contribution to the VaM community, for now i wish you the best of luck on this project. Cheers.
 
I have to say, the plugin is sick, great work!

Unfortunately I have a bad news, there is a bug:
I tried to connect a blooprint with VamTimeline plugin to run an animation with callback, and it works fine whenever action callback selected from inside (like: owner > find plugin > get param > get value > call), but once the external param involved (img 1) and I try to "Set Callback" with "Call Now" flag enabled the blueprint cruches the game and after reload cannot be open again for editing (either cruches or shows error).
I've also tried to add "Delays" with condition "is not null" and\or time skip, but the behavior is either the same or there are no action at all.

So the issue with game crush is critical, hope it could be addressed any time soon, couse you can work on a big blueprint and find it completely broken by some tiny mistake.

I would also appreciate if there is sugestion around a Person plugins integration to be sure that atom and it plugins are initialized and ready to work. ("is CUA loaded" node thorows an error on a Person and I couldn't find analog for person).

p.s once again, great plugin with huge potential

1773316652879.png
 
I have to say, the plugin is sick, great work!
Thank you! 🩵

Unfortunately I have a bad news, there is a bug: [...]
I think this is not a bug, it looks like you've built an infinite loop in your Blooprint. You are using "Call" inside your callback to trigger the same parameter you are already listening to with "SetCallback". That means "OnPlayChange" will be called again and again, freezing and crashing VaM in the end. If you tell me more about what you're trying to achieve, I can help you with solving the problem.

I would also appreciate if there is sugestion around a Person plugins integration to be sure that atom and it plugins are initialized and ready to work. ("is CUA loaded" node thorows an error on a Person and I couldn't find analog for person).
This shouldn't really be necessary for any other atom than CUAs. By default "OnEnable" is called after the scene has finished loading. That means all other plugins should already be initialized. Since CUAs load asynchronously though, they might not be fully loaded at that point yet. That's what you can wait for with the "IsCuaLoaded" node, and it's really only necessary if you are trying to access something inside the loaded CUA.
 
I think this is not a bug, it looks like you've built an infinite loop in your Blooprint. You are using "Call" inside your callback to trigger the same parameter you are already listening to with "SetCallback". That means "OnPlayChange" will be called again and again, freezing and crashing VaM in the end. If you tell me more about what you're trying to achieve, I can help you with solving the problem.
I would consider it as a bug, or at least a problem, couse one clumsy move (cycling callbacks) may fuckup the whole blueprint, and there is no way to roll back that change.

Anyway, seems like I don't fully understand what "Call" is doing, I though it simply execute some method I give to it.
What I'm trying to do is simply execute some action once it chenged in dropdown (param) in UI of the blueprint. So if "play segment 1" action is selected for VamTimeline storable on a Person atom, I want to call that selected action from the param. Don't understand why it might trigger param change if I'm getting value from it not setting in.
 
I would consider it as a bug, or at least a problem, couse one clumsy move (cycling callbacks) may fuckup the whole blueprint, and there is no way to roll back that change.
Fair enough. You can still load the Blooprint though by disabling the "Run" toggle before loading the Blooprint again. Still, unsaved progress would be lost. I might explore in the future if adding some infinite loop safe guard is possible.

Anyway, seems like I don't fully understand what "Call" is doing, I though it simply execute some method I give to it.
What I'm trying to do is simply execute some action once it chenged in dropdown (param) in UI of the blueprint. So if "play segment 1" action is selected for VamTimeline storable on a Person atom, I want to call that selected action from the param. Don't understand why it might trigger param change if I'm getting value from it not setting in.
Ah I see, so if I understand correctly, you want to call the action once when it is selected in the dropdown. The issue with your Blooprint is that the param you pass to "SetCallback" is the action itself, e.g. in your example "Play Segment 1", not the param holding the dropdown value. "GetParamValue" is basically a shortcut for "Self -> GetParam -> GetValue", which in our example is "Self -> Action Param Dropdown -> Play Segment 1 Param". That means your callback actually was called whenever the animation is played, not when the dropdown value changes. I hope that explanation makes sense, this is actually one of the more complicated use cases.

Below is a Blooprint that should work for what you're trying to do. We use "GetParam" with "SetCallback" to listen to changes of the dropdown. In the callback we use "GetParamValue" to get the selected action param (e.g. "Play Segment 1"), and "GetValue" to get the params action we can call using the "Call" node.

JSON:
{
   "Version" : "1.0.0.1",
   "Storables" : [
      {
         "name" : "My Action",
         "hasUi" : "true",
         "uiRightSide" : "false",
         "defaultValue" : {
            "storable" : {
               "atom" : "[CameraRig]",
               "id" : "[CameraRig]"
            },
            "id" : "SaveToStore1"
         },
         "choices" : [
         ],
         "StorableChooser" : {
            "name" : "My Action_Storable",
            "hasUi" : "false",
            "uiRightSide" : "false",
            "defaultValue" : {
               "$value" : "[CameraRig]",
               "$type" : "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
            },
            "choices" : [
            ],
            "Atom" : {
               "name" : "My Action_Storable_Atom",
               "hasUi" : "false",
               "uiRightSide" : "false",
               "defaultValue" : "[CameraRig]",
               "choices" : [
               ],
               "filter" : "false"
            }
         },
         "$type" : "perfectbloo.Core.Storables.DynamicJsonStorableActionChooserParam"
      }
   ],
   "Graph" : {
      "Guid" : "4a73f179-1f04-4720-9ebb-291850453e26",
      "variables" : [
         {
            "Guid" : "9c1ffc45-d308-497c-af3c-ae61554236d1",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "name" : "On Action Changed",
            "Kind" : "Callback",
            "type" : "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
         }
      ],
      "nodes" : [
         {
            "Guid" : "45c68880-5017-4711-98f3-fec9b01a92e1",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "inExecPins" : [
            ],
            "outExecPins" : [
               {
                  "Guid" : "a4b046c6-9bb0-4aa2-a9f9-fc3c7b7d01e5",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "45c68880-5017-4711-98f3-fec9b01a92e1",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
            ],
            "outDataPins" : [
            ],
            "displayName" : "OnEnable",
            "compactName" : "",
            "position" : {
               "x" : "-225.3906",
               "y" : "537.4063"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintOnEnable"
         },
         {
            "Guid" : "3e7e09b9-88d0-4cff-afe0-50b26264f373",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "inExecPins" : [
               {
                  "Guid" : "82ad7dcb-a12b-483b-93ed-263993ef8b2a",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "3e7e09b9-88d0-4cff-afe0-50b26264f373",
                  "IsOutput" : "false",
                  "name" : "Exec",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "outExecPins" : [
               {
                  "Guid" : "5267eb75-33f3-43be-849c-54788c6c39b6",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "3e7e09b9-88d0-4cff-afe0-50b26264f373",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
               {
                  "Guid" : "1e8d709c-8b28-4581-b5f7-908d35c2546a",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "3e7e09b9-88d0-4cff-afe0-50b26264f373",
                  "IsOutput" : "false",
                  "name" : "Param",
                  "type" : "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableBool, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableVector3, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableString, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableUrl, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableAction, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "6b648089-07d7-4e5c-967c-8c75cb21f618",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "3e7e09b9-88d0-4cff-afe0-50b26264f373",
                  "IsOutput" : "false",
                  "name" : "Callback",
                  "type" : "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableBool+SetBoolCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableVector3+SetVector3Callback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableString+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableColor+SetHSVColorCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "a09c503c-536b-4699-b7e2-97341a9f762b",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "3e7e09b9-88d0-4cff-afe0-50b26264f373",
                  "IsOutput" : "false",
                  "name" : "On",
                  "type" : "System.Boolean",
                  "constraint" : {
                     "types" : [
                        "System.Boolean"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "true",
                     "$type" : "System.Boolean"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "da1a5d06-03d3-4a5d-932a-94bf4f44de72",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "3e7e09b9-88d0-4cff-afe0-50b26264f373",
                  "IsOutput" : "false",
                  "name" : "CallNow",
                  "type" : "System.Boolean",
                  "constraint" : {
                     "types" : [
                        "System.Boolean"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "true",
                     "$type" : "System.Boolean"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
            ],
            "displayName" : "SetCallback",
            "compactName" : "",
            "position" : {
               "x" : "77.14453",
               "y" : "536.5742"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesSetCallback"
         },
         {
            "Guid" : "cff01bf8-cd99-4900-affe-e9c3ec022ce1",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "inExecPins" : [
            ],
            "outExecPins" : [
               {
                  "Guid" : "28f4e9fd-815f-4aa3-bb5b-a5b6f93e9900",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "cff01bf8-cd99-4900-affe-e9c3ec022ce1",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
               {
                  "Guid" : "873cb83a-1c85-4011-8cb6-0f7005bcc06c",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "cff01bf8-cd99-4900-affe-e9c3ec022ce1",
                  "IsOutput" : "false",
                  "name" : "CallbackVariable",
                  "type" : "System.Guid",
                  "constraint" : {
                     "types" : [
                        "System.Guid"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "9c1ffc45-d308-497c-af3c-ae61554236d1",
                     "$type" : "System.Guid"
                  },
                  "visibility" : [
                     "None"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "433ad5d5-ff8e-43b8-b385-7437fea94fcf",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "cff01bf8-cd99-4900-affe-e9c3ec022ce1",
                  "IsOutput" : "false",
                  "name" : "Type",
                  "type" : "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType",
                  "constraint" : {
                     "types" : [
                        "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "StringChooser",
                     "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType"
                  },
                  "visibility" : [
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "c1a03ae7-fcdd-409d-bddf-142079732985",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "cff01bf8-cd99-4900-affe-e9c3ec022ce1",
                  "IsOutput" : "false",
                  "name" : "Name",
                  "type" : "System.String",
                  "constraint" : {
                     "types" : [
                        "System.String"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "On Action Changed",
                     "$type" : "System.String"
                  },
                  "visibility" : [
                     "Name",
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "a094beb1-1390-4ae6-9f5d-5ac7783cd5db",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "cff01bf8-cd99-4900-affe-e9c3ec022ce1",
                  "IsOutput" : "true",
                  "name" : "Value",
                  "type" : "System.String",
                  "constraint" : {
                     "types" : [
                        "System.String"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "False",
                     "$type" : "System.String"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "Callback",
            "compactName" : "",
            "position" : {
               "x" : "-656.0352",
               "y" : "-54.91797"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintCallback"
         },
         {
            "Guid" : "aaf8ccb5-83a2-4f6c-bd77-0a4fd9704540",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "c0dd0fb1-07da-4fb5-8d38-baac1927d75e",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "aaf8ccb5-83a2-4f6c-bd77-0a4fd9704540",
                  "IsOutput" : "false",
                  "name" : "Guid",
                  "type" : "System.Guid",
                  "constraint" : {
                     "types" : [
                        "System.Guid"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "9c1ffc45-d308-497c-af3c-ae61554236d1",
                     "$type" : "System.Guid"
                  },
                  "visibility" : [
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "19258f20-753a-4cc7-9d9e-9982336dacf7",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "aaf8ccb5-83a2-4f6c-bd77-0a4fd9704540",
                  "IsOutput" : "true",
                  "name" : "Value",
                  "type" : "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "GetCallback",
            "compactName" : "",
            "position" : {
               "x" : "-564.1602",
               "y" : "133.9258"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintGetCallback"
         },
         {
            "Guid" : "4a53d4e5-3d3f-423f-9cf9-f037f7e87e55",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "b4d49f9f-bc88-4173-bf8d-2d5050e871a1",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "4a53d4e5-3d3f-423f-9cf9-f037f7e87e55",
                  "IsOutput" : "false",
                  "name" : "Name",
                  "type" : "System.String",
                  "constraint" : {
                     "types" : [
                        "System.String"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "My Action",
                     "$type" : "System.String"
                  },
                  "visibility" : [
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "db56bcfa-8a89-4d01-826f-eb3a68e1aa67",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "4a53d4e5-3d3f-423f-9cf9-f037f7e87e55",
                  "IsOutput" : "true",
                  "name" : "Value",
                  "type" : "JSONStorableAction, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableAction, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "GetParamValue",
            "compactName" : "",
            "position" : {
               "x" : "-631.668",
               "y" : "-360.75"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintGetParamValue"
         },
         {
            "Guid" : "7c826e4c-9672-4d3e-a21e-5f6f34a06ab5",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "inExecPins" : [
               {
                  "Guid" : "93034606-38b4-4080-be91-65120ba31a63",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "7c826e4c-9672-4d3e-a21e-5f6f34a06ab5",
                  "IsOutput" : "false",
                  "name" : "Exec",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "outExecPins" : [
               {
                  "Guid" : "151b8ab0-b3fc-4a5e-aa68-e53d83f439e1",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "7c826e4c-9672-4d3e-a21e-5f6f34a06ab5",
                  "IsOutput" : "true",
                  "name" : "Then",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "inDataPins" : [
               {
                  "Guid" : "09f27f87-b443-4073-8d32-1370ffac3cb2",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "7c826e4c-9672-4d3e-a21e-5f6f34a06ab5",
                  "IsOutput" : "false",
                  "name" : "Callback",
                  "type" : "JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableBool+SetBoolCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableVector3+SetVector3Callback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableString+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableColor+SetHSVColorCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "9a9bb7dc-691c-4db1-bab0-6a83bc34572c",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "7c826e4c-9672-4d3e-a21e-5f6f34a06ab5",
                  "IsOutput" : "false",
                  "name" : "Value",
                  "type" : "System.Boolean",
                  "constraint" : {
                     "types" : [
                        "System.Boolean",
                        "System.Single",
                        "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "System.String",
                        "HSVColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "false",
                     "$type" : "System.Boolean"
                  },
                  "visibility" : [
                     "None"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
            ],
            "displayName" : "Call",
            "compactName" : "",
            "position" : {
               "x" : "456.293",
               "y" : "-52.58203"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesCall"
         },
         {
            "Guid" : "a9d87582-5b65-4857-bab5-92bea5455c5d",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "bc13401a-d531-49d6-a803-acc501690cca",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "a9d87582-5b65-4857-bab5-92bea5455c5d",
                  "IsOutput" : "false",
                  "name" : "Param",
                  "type" : "JSONStorableAction, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableBool, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableVector3, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableString, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableUrl, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableAction, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "f6ef9b31-4996-468a-8c67-8683a158e65f",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "a9d87582-5b65-4857-bab5-92bea5455c5d",
                  "IsOutput" : "true",
                  "name" : "",
                  "type" : "JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "System.Boolean",
                        "System.Single",
                        "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "System.String",
                        "HSVColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                        "JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "GetValue",
            "compactName" : "",
            "position" : {
               "x" : "21.10547",
               "y" : "-359.7266"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesGetValue"
         },
         {
            "Guid" : "547efd1a-1772-40ea-9988-6af119998d76",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "17ea975d-ef80-434f-8625-7316dcad8574",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "547efd1a-1772-40ea-9988-6af119998d76",
                  "IsOutput" : "false",
                  "name" : "Storable",
                  "type" : "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               },
               {
                  "Guid" : "358c3b64-f0d3-4107-b2d8-5e8da0b205a8",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "547efd1a-1772-40ea-9988-6af119998d76",
                  "IsOutput" : "false",
                  "name" : "Name",
                  "type" : "System.String",
                  "constraint" : {
                     "types" : [
                        "System.String"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "My Action",
                     "$type" : "System.String"
                  },
                  "visibility" : [
                     "Name",
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "870f770e-8fcb-44b5-8694-4ee2b3a1fdec",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "547efd1a-1772-40ea-9988-6af119998d76",
                  "IsOutput" : "true",
                  "name" : "",
                  "type" : "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "GetParam",
            "compactName" : "",
            "position" : {
               "x" : "-412.4375",
               "y" : "372.5039"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesGetParam"
         },
         {
            "Guid" : "cb7e4749-7e63-4dbe-8d84-2d5717f0d26f",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
            ],
            "outDataPins" : [
               {
                  "Guid" : "015acf0f-68ab-4477-bbe8-3f0556d27066",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "cb7e4749-7e63-4dbe-8d84-2d5717f0d26f",
                  "IsOutput" : "true",
                  "name" : "Value",
                  "type" : "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
                  "constraint" : {
                     "types" : [
                        "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Default"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "Self",
            "compactName" : "Self",
            "position" : {
               "x" : "-582.2266",
               "y" : "317.9258"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintSelf"
         },
         {
            "Guid" : "4be8a9f7-2392-4f38-be38-d9811eb60cec",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "inExecPins" : [
               {
                  "Guid" : "0042ed64-f66a-4f87-b628-369039b67b06",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "4be8a9f7-2392-4f38-be38-d9811eb60cec",
                  "IsOutput" : "false",
                  "name" : "Exec",
                  "constraint" : {
                     "types" : [
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
               }
            ],
            "outExecPins" : [
               {
                  "Guid" : "3335db97-99d1-495b-b005-ab858687a9df",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "4be8a9f7-2392-4f38-be38-d9811eb60cec",
                  "IsOutput" : "true",
                  "Min" : "0",
                  "Max" : "2147483647",
                  "name" : "Then",
                  "isLocked" : "true",
                  "autoIndex" : "false",
                  "constraint" : {
                     "types" : [
                        "System.Boolean"
                     ]
                  },
                  "type" : "System.Boolean",
                  "visibility" : [
                     "Pin",
                     "Name"
                  ],
                  "pins" : [
                     {
                        "Guid" : "42a90693-55c8-491b-9b39-916ff517b872",
                        "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                        "Node" : "4be8a9f7-2392-4f38-be38-d9811eb60cec",
                        "IsOutput" : "true",
                        "name" : "True",
                        "type" : "System.Boolean",
                        "constraint" : {
                           "types" : [
                              "System.Boolean"
                           ]
                        },
                        "defaultValue" : {
                           "$value" : "true",
                           "$type" : "System.Boolean"
                        },
                        "visibility" : [
                           "Pin",
                           "Name"
                        ],
                        "isAsync" : "false"
                     },
                     {
                        "Guid" : "65b54d8d-7fc0-4f8f-aed4-99c53e779b92",
                        "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                        "Node" : "4be8a9f7-2392-4f38-be38-d9811eb60cec",
                        "IsOutput" : "true",
                        "name" : "False",
                        "type" : "System.Boolean",
                        "constraint" : {
                           "types" : [
                              "System.Boolean"
                           ]
                        },
                        "defaultValue" : {
                           "$value" : "false",
                           "$type" : "System.Boolean"
                        },
                        "visibility" : [
                           "Pin",
                           "Name"
                        ],
                        "isAsync" : "false"
                     }
                  ],
                  "isAsync" : "false",
                  "$type" : "perfectbloo.Blooprints.Graphs.ExecPinGroup"
               }
            ],
            "inDataPins" : [
               {
                  "Guid" : "9c0568fd-9874-49bd-b562-71eb270eae0b",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "4be8a9f7-2392-4f38-be38-d9811eb60cec",
                  "IsOutput" : "false",
                  "name" : "Condition",
                  "type" : "System.Boolean",
                  "constraint" : {
                     "types" : [
                        "System.Boolean"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "false",
                     "$type" : "System.Boolean"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
            ],
            "displayName" : "If",
            "compactName" : "",
            "position" : {
               "x" : "47.58594",
               "y" : "-53.94531"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Flow.PBNodeFlowIf"
         },
         {
            "Guid" : "195658a3-8646-4e9f-94e9-496336f39429",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "inExecPins" : [
            ],
            "outExecPins" : [
            ],
            "inDataPins" : [
               {
                  "Guid" : "625f8079-d2fa-4e36-8ef2-8f745fb5f304",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "195658a3-8646-4e9f-94e9-496336f39429",
                  "IsOutput" : "false",
                  "name" : "Value",
                  "type" : "System.Object",
                  "constraint" : {
                     "types" : [
                        "System.Object"
                     ]
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "outDataPins" : [
               {
                  "Guid" : "b86af7e5-9bce-485e-9f70-25a09467791b",
                  "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
                  "Node" : "195658a3-8646-4e9f-94e9-496336f39429",
                  "IsOutput" : "true",
                  "name" : "",
                  "type" : "System.Boolean",
                  "constraint" : {
                     "types" : [
                        "System.Boolean"
                     ]
                  },
                  "defaultValue" : {
                     "$value" : "false",
                     "$type" : "System.Boolean"
                  },
                  "visibility" : [
                     "Pin",
                     "Name",
                     "Default",
                     "All"
                  ],
                  "$type" : "perfectbloo.Blooprints.Graphs.DataPin"
               }
            ],
            "displayName" : "IsNotNull",
            "compactName" : "",
            "position" : {
               "x" : "-232.4219",
               "y" : "-298.0234"
            },
            "$type" : "perfectbloo.Blooprints.Nodes.Compare.PBNodeCompareIsNotNull"
         }
      ],
      "links" : [
         {
            "Guid" : "a246ef4e-e88e-42f9-8a72-b07dab9cc8e0",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "Output" : "015acf0f-68ab-4477-bbe8-3f0556d27066",
            "Input" : "17ea975d-ef80-434f-8625-7316dcad8574"
         },
         {
            "Guid" : "4e6477a2-a813-45e8-aa06-5f4a9b1469fd",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "Output" : "19258f20-753a-4cc7-9d9e-9982336dacf7",
            "Input" : "6b648089-07d7-4e5c-967c-8c75cb21f618"
         },
         {
            "Guid" : "37eac14a-87a9-4f77-9b5c-960572a99d2a",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "Output" : "870f770e-8fcb-44b5-8694-4ee2b3a1fdec",
            "Input" : "1e8d709c-8b28-4581-b5f7-908d35c2546a"
         },
         {
            "Guid" : "de81aec5-9afd-4ad8-8f1c-9d730156281f",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "Output" : "28f4e9fd-815f-4aa3-bb5b-a5b6f93e9900",
            "Input" : "0042ed64-f66a-4f87-b628-369039b67b06"
         },
         {
            "Guid" : "c4691c6a-1130-4497-88df-e50fbbf45903",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "Output" : "db56bcfa-8a89-4d01-826f-eb3a68e1aa67",
            "Input" : "bc13401a-d531-49d6-a803-acc501690cca"
         },
         {
            "Guid" : "199c7a68-80c9-4f72-baba-454a00d51f4d",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "Output" : "f6ef9b31-4996-468a-8c67-8683a158e65f",
            "Input" : "09f27f87-b443-4073-8d32-1370ffac3cb2"
         },
         {
            "Guid" : "aaced027-cc44-49bc-86eb-cfa4068d84e9",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "Output" : "a4b046c6-9bb0-4aa2-a9f9-fc3c7b7d01e5",
            "Input" : "82ad7dcb-a12b-483b-93ed-263993ef8b2a"
         },
         {
            "Guid" : "f96c1ef9-2e83-4852-bd6f-a713a1abb5e3",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "Output" : "db56bcfa-8a89-4d01-826f-eb3a68e1aa67",
            "Input" : "625f8079-d2fa-4e36-8ef2-8f745fb5f304"
         },
         {
            "Guid" : "607d0673-cb70-435c-8593-8731d55121a6",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "Output" : "b86af7e5-9bce-485e-9f70-25a09467791b",
            "Input" : "9c0568fd-9874-49bd-b562-71eb270eae0b"
         },
         {
            "Guid" : "7682a592-d67d-4fb1-8f15-0557a617aca6",
            "Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
            "Output" : "42a90693-55c8-491b-9b39-916ff517b872",
            "Input" : "93034606-38b4-4080-be91-65120ba31a63"
         }
      ],
      "redirectors" : [
      ]
   }
}
blooprints-action-runner.png
 
Below is a Blooprint that should work for what you're trying to do. We use "GetParam" with "SetCallback" to listen to changes of the dropdown. In the callback we use "GetParamValue" to get the selected action param (e.g. "Play Segment 1"), and "GetValue" to get the params action we can call using the "Call" node.
Ah, I was so close. So I did all the same except the Callback type, I made it "Action" instead of "StringChooser", so it was throwing errors. Thank you for quick response
 
Back
Top Bottom