Copy plug from one node to another

Hi all,

Say I have a random plug on a random node somewhere within a dense network, and I want to drive that plug from a centralised control node, where I can easily view all my parametres. However, I have no easy guarantee of what type that plug will be, if it will have limits, enum entries, etc.

Is there an elegant way to completely copy a node’s attribute, and add that copy on to another node? I’ve tried using the MPlugs, but literally everything I tried led to “kInternalFailure” errors, which were not helpful. I can easily brute force it with separate cases for each type, but I wondered if anyone here had come up against the same issue.


This sounds like good usecase for “proxy” attributes.

It’ll let you assign an attribute to act as a proxy to another, without actually making a connection (i.e. without locking the source attribute). Good for centralised access. It does have a few caveats; mainly that if the source goes away, your proxy will remain behind and appear to be working, but do nothing. As there is no connection, that can get hard to track down without losing much of your hair.

Do proxy attributes actually work now? Last I tried them there were huge stability issues when opening/importing scenes, loading references, compound attrs, it was a nightmare. They’re an awesome idea, but I really don’t want to go back down that route unless the issues are ironed out. I’ll give them a shot, thanks!

Some bugs at least were fixed in 2019.
“Animation layers break with proxy attributes MAYA-77709”

All bugs? Not sure. We’re avoiding 2019 for other new bugs for now.