Your comments

I think I hit this as well.  I'm not sure of the repro steps, but this is still alive as of A10.

I created this graph (there is nothing special) here



Trying to call this from another graph I get:



I recreated the function by literally copying the entire body of the function and rewired the inputs and outputs and it works.  The original function, however, still doesn't work and remains corrupted.

Easy for me to induce!


test.asset

Nothing funky, bare class with the function you see here.

I'll see what I can get tonight.  I haven't been able to create a graph variable successfully yet, so I should be able to create a repro.

We haven't removed any nodes (and take the same approach with obsoleting), but the user encountered an AOT problem and wanted to remove the Community nodes (some of which are in use).

If you have any ideas of how to improve things, let me know!

You'll always have a problem removing nodes that are in use in your project (and it's not something I can fix, out of my control), but I was referring to your original problem, where you had a problem with an AOT build.  I was wondering what nodes you had in your build that were interfering with an AOT Build.

The Defined Events are known to not be compatible, but they are separated into the separate DLL.  You had something in the Fundamentals package that wasn't compatible.

Do you remember what nodes where causing the build problems?  I don't have any interaction with AOT platforms, so I tend to only find out about these issues when users report them, and I can clean these up for future users.

If you're getting a deserialization failure, that means that you are using some of the Community nodes, and once removed, Bolt can't deserialize properly.  Unfortunately, I can't tell which node from those screenshots, so I can't tell you what to look for.  

What we can do, perhaps, is to add the nodes back in, but a special version of the dll that will exception as soon as one of the Community nodes executes.  This doesn't help your build, but it will help you to find them in your graphs, as you'll see the error in the console and red nodes in your graphs.  After you find and fix all the ones you encounter in normal playing, you can try a build again.  If the build works, then you've successfully removed the ones not compatible with an AOT platform.  Then you can try removing the dlls again.

Another approach might be to search your macros (with a find in files) for "Bolt.Addons.Community", as the serialized form should include the type names.  This will at least tell you which macros use the nodes, though it won't help with embed graphs.

Sorry for the hassle, AOT handling is something something we know the Defined Events aren't compatible with (which is why they're in a separate DLL, with warnings.  Sounds like you found another one in the base library.  :-(

It does accept the value, (if you select off of the function and then reselect it), but code gen does not.


Note that the call uses zero when defaulted, not the provided value.

Inspector block accessor mismatch.
Started PlanetGenerator (BoltClass).Generate#b63954ce#1898188800.parameterDefinitions, ended PlanetGenerator (BoltClass).Generate#b63954ce#1898188800.
UnityEngine.Debug:LogWarning(Object)
Ludiq.Inspector:EndBlock(Accessor) (at Assets/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:794)
Ludiq.Inspector:EndBlock() (at Assets/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:779)
Ludiq.Inspector:DrawControl(Rect) (at Assets/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:458)
Ludiq.Inspector:DrawControlLayout(Single) (at Assets/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:858)
Ludiq.Bolt.ExplorerWindow:_OnGUI() (at Assets/Ludiq/Bolt.Core/Editor/Exploration/ExplorerWindow.cs:518)
Ludiq.LudiqEditorWindow:OnGUI() (at Assets/Ludiq/Ludiq.Core/Editor/Windows/LudiqEditorWindow.cs:140)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
Inspector block accessor mismatch.
Started PlanetGenerator (BoltClass).Generate#b63954ce#1898188800.parameterDefinitions.0, ended PlanetGenerator (BoltClass).Generate#b63954ce#1898188800.parameterDefinitions.
UnityEngine.Debug:LogWarning(Object)
Ludiq.Inspector:EndBlock(Accessor) (at Assets/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:794)
Ludiq.Inspector:EndBlock() (at Assets/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:779)
Ludiq.Inspector:DrawField(Rect, GUIStyle) (at Assets/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:518)
Ludiq.ReflectedEditor:OnMemberGUI(Inspector, Rect) (at Assets/Ludiq/Ludiq.Core/Editor/Inspection/Special/ReflectedEditor.cs:198)
Ludiq.ReflectedEditor:OnFooterGUI(Rect) (at Assets/Ludiq/Ludiq.Core/Editor/Inspection/Special/ReflectedEditor.cs:176)
Ludiq.Bolt.GraphEditor:OnFooterFieldsGUI(Rect) (at Assets/Ludiq/Bolt.Core/Editor/Inspection/GraphEditor.cs:128)
Ludiq.Bolt.FlowGraphEditor:OnFooterFieldsGUI(Rect) (at Assets/Ludiq/Bolt.Flow/Editor/FlowGraphEditor.cs:67)
Ludiq.Bolt.GraphEditor:OnFooterGUI(Rect) (at Assets/Ludiq/Bolt.Core/Editor/Inspection/GraphEditor.cs:123)
Ludiq.Bolt.FlowGraphEditor:OnFooterGUI(Rect) (at Assets/Ludiq/Bolt.Flow/Editor/FlowGraphEditor.cs:50)
Ludiq.Editor:OnControlGUI(Rect) (at Assets/Ludiq/Ludiq.Core/Editor/Inspection/Editor.cs:242)
Ludiq.Inspector:DrawControl(Rect) (at Assets/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:456)
Ludiq.Inspector:DrawControlLayout(Single) (at Assets/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:858)
Ludiq.Bolt.ExplorerWindow:_OnGUI() (at Assets/Ludiq/Bolt.Core/Editor/Exploration/ExplorerWindow.cs:518)
Ludiq.LudiqEditorWindow:OnGUI() (at Assets/Ludiq/Ludiq.Core/Editor/Windows/LudiqEditorWindow.cs:140)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)