SOLVED Cinema 4D R2023 - c4d.plugins.RegisterObjectPlugin issue

Windows users reports that C4D R2023.1 my python plugins are throw issues into console:
OSError:cannot handle more than 50 object plugins from c4d.plugins.RegisterObjectPlugin(...) line.

C4D R26 has no such issue with same plugin.

Hi @baca there was always the limitation of 50 python plugins by plugin types. So the only solution is to remove some. This topic have been already discussed here.

Cheers,
Maxime.

Hi @m_adam, thanks I seen this thread.

So issue is relates to the total python plugins amount installed in user's plugins folder?
My customer argues that in R26 there're even more plugins are installed, but it works fine...

As explained in the post I linked the limitation is about Python and for each plugin type you have a limitation of 50 (call to RegisterXXXPlugin), wherever they are installed.
So you can have 50 ObjectData and 50 TagData. But you can't have 51 ObjectData (the number of C++ plugins does not count).
And there is no workaround.

The limitation is there since R11.
Cheers,
Maxime.

@m_adam said in Cinema 4D R2023 - c4d.plugins.RegisterObjectPlugin issue:

As explained in the post I linked the limitation is about Python and for each plugin type you have a limitation of 50 (call to RegisterXXXPlugin), wherever they are installed.
So you can have 50 ObjectData and 50 TagData. But you can't have 51 ObjectData (the number of C++ plugins does not count).
And there is no workaround.

The limitation is there since R11.

Thanks Maxime,

Any suggestion how to properly handle that kind of issues --
just catch exception and warn user using message box somehow?

Would it be reasonable to switch to NodeData from ObjectData --
does RegisterNodePlugin has separate 50 plugins registrations?

What's the logic behind plugin initialization order -- alphabetical, date-based, random?

@baca said in Cinema 4D R2023 - c4d.plugins.RegisterObjectPlugin issue:

Any suggestion how to properly handle that kind of issues --
just catch exception and warn user using message box somehow?

Correct you can catch the OsError and check if there is the word 50 in the exception message.

Would it be reasonable to switch to NodeData from ObjectData --
It depends of your plugin if this is at the end an ObjectData then it's irrelevant, if this is just an object that you store in a list in memory or in a custom GeListHead then NodeData is perfectly relevant.

does RegisterNodePlugin has separate 50 plugins registrations?

Yes each type have 50 plugins.

What's the logic behind plugin initialization order -- alphabetical, date-based, random?

Folders from g_additionalModulePath are iterated by alphabetical order and each files are then iterated by alphabetical order too.

Cheers,
Maxime.