Deployment Issue: Maintaining Rhino 5 + 6 GHAs concurrently

Recently we started rolling out our Rhino 6 licenses to several hundred designers, and it has gone relatively smoothly with a few exceptions. One of them is that some Grasshopper GHAs have released fixes for compatibility with Rhino 6/GH1 (for instance, @andheum’s Human plugin). The challenge is that we need to be able to support Rhino 5 + 6 side by side, since some project teams will be slower to migrate than others, and we need backward compatibility for at least a transition period. When you install a GH1 gha, you have a couple options, none of which are ideal:

  • Overwrite the GHA in the standard libraries folder: Works great in GH1, throws error in Rh5/0.9.0076
  • Add the new GHA to the /6/Libraries subfolder: Shows conflict message in both Rh 5/Rh 6

Even if the conflict messages are only presented to the user once, this is a big issue for us, because our GHAs are handled programmatically with our in-house dependency management solution, and many of our users will freeze like a deer in the headlights when presented with the conflict, or just close their eyes and click blindly, resulting in potential problems.

So, long story short – is there a way for GH to identify whether two versions of a GHA are built for Rhino 5 vs 6 and automatically load the correct GHA? Whether that be through an ID in the GHA itself, or just a best practice folder hierarchy that Rhino 6 can recognize?


There’s two entirely different mechanisms for hiding plugins from GH 0.9 and GH 1.0.

To make a plugin not load in Rhino5/GH0.9 you can put it in the \6\Libraries folder (as you mentioned).
To make a plugin not load in Rhino6/GH1.0 you can put a similarly named file next to it with the extension *.no6.

So assuming there’s a plugin called wombat.gha which has conflicting versions for 0.9 and 1.0, you’d have:





well i’ll be damned! that’s awesome

1 Like

That’s great!


Wow! This is great. I wish this had been publicly announced in a better way. I even called McNeel and talked to both a tech and sales about this exact situation and they couldn’t help me last month. It’s been very annoying to have multiple pop-up errors come up every time I start 5 or 6 and this was going to be a deal breaker for our university upgrading to Rhino6 if I couldn’t figure it out.

1 Like

Hi, I also had the same problem as above, but the difference with my problem is that it is “.ghlink” rather than “.gha”.

“.ghlink” file created for Rhino 6,
% appdata% \ Grasshopper \ 6 \ Libraries \ …
If I put it in, it is not recognized from Rhino6.

It works correctly when placed in
% appdata% \ Grasshopper \ Libraries
(but it will be recognized from Rhino5 too).