I’m working on a client’s project where we are taking existing GH scripts, adding a UI, and compiling them into a YAK plugin.
The current architecture of the client’s codebase is built around master GH scripts that call HOPS-based GH “Helper Components”.
I’ve been working on migrating these Helper Components from HOPS into a custom GH plugin, which has actually been relatively straightforward because the Helper Components already have properly configured Context Inputs and Outputs.
However, I’ve hit an unexpected issue once the new custom plugin is compiled and installed.
One or more of these scripts references a component from Pufferfish version 3.0.0.0. I have the correct version installed locally, but now every time I open Grasshopper I get:
“Plugin not found - please download Pufferfish 3.0.0.0”
even though it is already installed and working.
My assumption is that the new custom plugin is being loaded before Pufferfish, and Grasshopper is validating dependencies too early during startup.
Has anyone run into this before?
Would it make sense for Grasshopper to “look ahead” in the load sequence and defer missing-plugin warnings until all plugins have completed loading, rather than immediately triggering the Package Manager lookup?
Or alternatively, is there a recommended way to delay dependency resolution / component registration inside a compiled GH assembly?
Of course I already have the correct version of Pufferfish installed, as that is how I created the new plugin. If I cancel out of the dialogue everything works fine.
To check if perhaps GH is loading plugins in alphabetical order, I made a new plugin (new GUID) called:
zz_plugin_with_plugin
I uninstalled the AA version and installed the ZZ version AND - the problem disappeared.
If Pufferfish loads before my plugin that contains Pufferfish, all is good, but this is not a solution - could someone have a look at the dependency resolution / component registration on GH start up?
You are not alone.
I had the same problem : a new GH component type HOPS compiled with Script Editor that contains a non-native GH component (elefront for example) will cause the missing plug-in error.
GH1 no longer complains about missing plugins when loading script-editor-published plugins
When dropping a new published component on the canvas, GH will complain about missing plugins, if any. When plugins are installed it continues to run normally.
Published component with missing plugins will show error message with plugin info:
It has caused quite a bit of headaches here. In my team we have some internal (standard C# SDK) plugins that depend on each other and having to deal with them loading and initializing out of order adds uneccessary level of complexity.