Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    plugins folder, now you see me, now you don't.

    General Talk
    4
    16
    11.3k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • CairynC
      Cairyn
      last edited by

      @C4DS said in plugins folder, now you see me, now you don't.:

      Now R21.026 does also create a plugins folder in the user's location (again: Nice!), and when this path is added to the preferences it doesn't complain about colliding pluginIDs. When removing the path from preferences the plugins still get loaded. Just as with R20.057 it seems to internally know about this "default" path, and ignores the duplicate when it's added by the user.

      Well, I am probably not of much use here, but I can at least confirm that R21 does know about some plugin paths internally. Actually, when you start C4D in debug mode, you will see the current plugin paths in one of the debug outputs: first come the two plugin folders from the installation directory and the user directory (whether they exist or not - I do not have a plugin folder in the installation directory), then the ones that are set manually in the preferences. I don't have issues with duplicate loads either, so obviously the paths are collated before C4D tries to load anything.

      1 Reply Last reply Reply Quote 0
      • r_giganteR
        r_gigante
        last edited by

        Hi Daniel, thanks for reaching out us.
        I've spent some time to see how the different builds behaved and these are my findings.
        The following builds have been run with a clean installation (their respective preferences folder were deleted) both on macOS and Windows

        • 20.011_RB245938
        • 20.026_RB251664 (SP1)
        • 20.028_RB255810 (SP1HF01)
        • 20.030_RB257898 (SP1HF01)
        • 20.057_RB269127 (SP2HF01)
        • 20.059_RB272827 (SP2HF02)
        • 21.022_RB288344 (RC)
        • 21.026_RB290015 (RCHF01)

        They ALL showed the following behaviors:

        • the plugins folder is created in the user preference folder at the first start of the application;
        • the plugins found inside the <user prefs>/plugins are loaded automatically without the need to specify the search path inside Preferences -> Plugins;

        The sole different behaviors have been spotted when the <user prefs>/plugins is included in the search path in Preferences -> Plugins:

        • in R20.xxx no plugin is loaded twice resulting in no duplicated IDs;
        • in R21.xxx plugins are loaded twice resulting in duplicated IDs;

        Unfortunately the above behaviors, and I can't explain why, are pretty different compared to yours and this might require a deeper discussion to understand what's causing this.

        With regard to your initial question on where/how to install a plugin our recommendations are:

        • do not install a plugin in the Cinema 4D application folder
        • do not install a plugin in the Cinema 4D user's preferences folder
        • do install a plugin in a custom folder where the user has proper access rights;
        • modify the search path in Preferences -> Plugins (in R21 a plugins.json file is created in the user preference folder to programmatically achieve this)

        Final, and personal, recommendation is to take advantage of installation scripts/tools, rather than of simply unzipping an archive, to:

        • install different plugin versions for different Cinema versions by shipping a single package;
        • check for elevated rights during installation
        • suggest initial path where the plugin can be installed
        • perform post-installation scripts to finalize the installation process by setting paths, flags or creating links.

        Best, Riccardo

        C4DSC 1 Reply Last reply Reply Quote 0
        • C4DSC
          C4DS @r_gigante
          last edited by

          @r_gigante
          Thanks for taking the time to perform all these tests.

          From this I have at least learned that the plugin folder is created during the first launch of the application. It can thus be after the installation of the original R20.0xx (apparently R20.011) I had been looking for a plugins folder in order to already "install"plugins, prior to launching the application.

          I am sorry that all this time spent doesn't provide for a conclusive answer, since both our findings are contradicting. I will spend some time rechecking my findings, just to make sure ...

          However, the recommendations for plugin installation is quite a surprise, in particular the second bullet:
          "do not install a plugin in the Cinema 4D user's preferences folder".
          That is exactly the location where the plugin folder gets created at first launch of the application, so I am confused this location is not recommended.

          1 Reply Last reply Reply Quote 0
          • C4DSC
            C4DS
            last edited by C4DS

            Further testing.

            R20.059
            Step 1.

            • plugins available in <user_prefs>\plugins and copied to D:\R20plugins
            • preferences has paths to both, both checkboxes enabled.
              Relaunch Cinema 4D, which reports colliding pluginIDs in the console window

            Step 2

            • plugins available in <user_prefs>\plugins and in D:\R20plugins
            • preferences has paths to both, <user_prefs>\plugins unchecked, D:\R20plugins checked
              Relaunch Cinema 4D, plugins loaded, no collisions reported in console

            Step 3

            • plugins available in <user_prefs>\plugins and in D:\R20plugins
            • preferences has paths to both, <user_prefs>\plugins checked, D:\R20plugins unchecked
              Relaunch Cinema 4D, plugins loaded, no collisions reported in console

            Step 4

            • plugins available in <user_prefs>\plugins and in D:\R20plugins
            • preferences has paths to both, both unchecked
              Relaunch Cinema 4D, plugins loaded, no collisions reported in console

            R21.026
            Step 1

            • plugins available in <user_prefs>\plugins and in D:\R21plugins
            • preferences has paths to both, both checkboxes enabled.
              Relaunch Cinema 4D, colliding pluginIDs reported in console

            Step 2

            • plugins available in <user_prefs>\plugins and in D:\R21plugins
            • preferences has paths to both, <user_prefs>\plugins unchecked, D:\R21plugins checked
              Relaunch Cinema 4D, colliding pluginIDs reported in console

            Step 3

            • plugins available in <user_prefs>\plugins and in D:\R21plugins
            • preferences has paths to both, <user_prefs>\plugins checked, D:\R20plugins unchecked
              Relaunch Cinema 4D, plugins loaded, no collisions reported in console

            Step 4

            • plugins available in <user_prefs>\plugins and in D:\R20plugins
            • preferences has paths to both, both unchecked
              Relaunch Cinema 4D, plugins loaded, no collisions reported in console

            Current results of R21 seem to fit your findings, I must have mixed up results of R21.026 with those of R20.059
            Meaning that, indeed, R20.057 (on one machine) matches with the results of R20.059 (on the other machine), no collisions when duplicate paths.

            However, I don't understand step 3 on R21.026 doesn't report colliding pluginIDs.
            I just don't get it.

            1 Reply Last reply Reply Quote 0
            • r_giganteR
              r_gigante
              last edited by

              Hi Daniel, thanks for following up.

              I've reproduced your cases and I warmly encourage you to test them again since I found a few discrepancies.

              • R20.059
                • case 1: behavior confirmed
                • case 2: behavior not confirmed: I got collision since the plugins are loaded by default from the <user prefs>/plugins folder (even though unchecked) and from the <whatever>/R20plugins folder still checked in the search path. This behavior is consistent with the finding in my previous post since R20.xxx loads by default anything it finds in the <user prefs>/plugins folder
                • case 3: behavior confirmed
                • case 4: behavior confirmed
              • R21.026
                • case 1: behavior confirmed although I see two collisions for every plugin. This is correct since Cinema loads the plugins 3 times, the first by default from <user prefs>/plugins, the second because of the presence of the <user prefs>/plugins in the search path, the third because of the presence of the <whatever>/R21plugins in the search path
                • case 2: behavior confirmed
                • case 3: behavior not confirmed: I got collision since the plugins are loaded by default from the <user prefs>/plugins folder (even though unchecked) and from the <user prefs>/plugins folder still checked in the search path. This behavior is consistent with the finding in my previous post since R21.xxx doesn't exclude the <user prefs>/plugins folder if is specified in the search path
                • case 4: behavior confirmed

              Finally with regard to

              However, the recommendations for plugin installation is quite a surprise, in particular the second bullet:
              "do not install a plugin in the Cinema 4D user's preferences folder".
              That is exactly the location where the plugin folder gets created at first launch of the application, so I am confused this location is not recommended.

              we think that plugins preferences or user-dependent plugin files might be stored in the <user prefs>/plugins while the actual plugin should be stored in a more convenient location. Last but not least although not planned in the short future, the <user prefs> folder might change in structure and location (usually it depends on OS) and this might cause side effects to plugins stored over there.

              Best, Riccardo

              C4DSC 1 Reply Last reply Reply Quote 0
              • C4DSC
                C4DS @r_gigante
                last edited by

                @r_gigante

                Tested again, same results.

                R20.059
                case 2: <user_prefs>\plugins unchecked, D:\R20plugins checked
                -> restart -> no collision

                R21.026
                case 3: <user_prefs>\plugins checked -> no collision.
                I really don't get this as I remember having had collisions when I first tried this.

                I have tried following:
                Removed all paths from the preferences, restart Cinema 4D. Obviously, plugins are loaded due to the default folder, and no collisions since no other path is defined.
                I then add the <user_prefs>\plugin folder again, checkbox enabled. Restart -> no collisions.

                Went a step further:
                I had the <user_prefs>\plugins folder added, then added the <user_prefs> folder (without the "plugins" subfolder) -> restart -> no collision

                Went even crazier:
                With above 2 paths available (and enabled), I added D:\R21plugins
                -> restart -> collisions !!!

                Final case:
                removed the D:R21plugins, then copied the plugins in the <user_prefs>
                resulting in
                <user_prefs>\plugins
                <user_prefs>\plugins - Copy
                Added both paths to the preferences, both enabled -> restart -> collisions
                Removed the copy path from the preferences keeping only <user_prefs>\plugins
                -> restart -> no collision

                Cannot explain the behavior.

                I think I will stop the whole topic here, it seems to make no sense at all.

                1 Reply Last reply Reply Quote 0
                • r_giganteR
                  r_gigante
                  last edited by

                  I'm sorry Daniel you're giving it up here, but I dunno how I can be of any further help. I will ask today to one of the other members of the team to replicate the same steps on his system to see if they are consistent with my findings or yours to grant information correctness for those coming in the future and reading the post.

                  Best, R.

                  C4DSC 1 Reply Last reply Reply Quote 0
                  • ManuelM
                    Manuel
                    last edited by

                    hello,

                    I've tested with R20.059 and 21.026 and the behavior are the same than @r_gigante. (we talked about it to be sure)

                    Cheers,
                    Manuel

                    MAXON SDK Specialist

                    MAXON Registered Developer

                    1 Reply Last reply Reply Quote 0
                    • C4DSC
                      C4DS @r_gigante
                      last edited by

                      @r_gigante
                      I am not actually giving up, just mentioning that it doesn't seem to make sense pursuing with this topic. As it seems we're not experiencing the same behaviour, as if we're using a different version (although it seems to be the same version number) or we're performing different actions.

                      Now, I added a new plugin and could not reproduce my previous result with R20.059, as it now always seem to collide whatever I try.
                      However, with R21 -which was mentioned should always collide- ... well now I get no collisions. According to the printscreen I made you can notice the only path added to the preferences is the <user_prefs>\plugins, exactly the same as the "internal default", still the console shows no collisions.

                      According to both of you, this is not reproducible at your end. Still I am getting this result. I must then have done something differently than both of you?
                      Note, the screenshot is right after launching Cinema 4D, and opening the console window and the preference window. No changes performed, simply opening the windows.

                      R21 plugins not colliding.png

                      1 Reply Last reply Reply Quote 0
                      • ManuelM
                        Manuel
                        last edited by

                        hello,

                        with the same parameters, I got collision. Would it be possible to test with our sdk ?
                        (it should not be different but at least you would test with the same plugin than us)

                        Cheers,
                        Manuel

                        MAXON SDK Specialist

                        MAXON Registered Developer

                        C4DSC 1 Reply Last reply Reply Quote 0
                        • C4DSC
                          C4DS @Manuel
                          last edited by C4DS

                          @m_magalhaes

                          I have built the sdk samples and copied the res folder and the created xdl64 file into
                          C:\Users\Daniel\AppData\Roaming\Maxon\Maxon Cinema 4D R21_64C2B3BD\plugins\sdk

                          Starting Cinema 4D without any paths in the preferences and plugins get loaded. No message in the console.

                          Then adding the path:
                          C:\Users\Daniel\AppData\Roaming\Maxon\Maxon Cinema 4D R21_64C2B3BD\plugins
                          to the preferences, restarting Cinema 4D ...
                          Plugins get loaded, no message in the console window. Thus no collision.

                          1 Reply Last reply Reply Quote 0
                          • r_giganteR
                            r_gigante
                            last edited by r_gigante

                            Hi Daniel, thanks for following up again.

                            Just to be sure nothing get's neglected I've recorded a video showing that also doing your steps is consistent with what me and Manuel have reported with regard to R21
                            You can see the video here.

                            Best, Riccardo

                            1 Reply Last reply Reply Quote 0
                            • C4DSC
                              C4DS
                              last edited by

                              Thanks for video.
                              I have a slight suspicion about the reason we have different results. Similar to that other discussion point about memory leaks that you guys also can't seem to replicate.
                              But to figure this all out I will need to purchase some extra hardware ... might take a while before I get the funds collected. I will then report back, in both topics.

                              1 Reply Last reply Reply Quote 0
                              • C4DSC
                                C4DS
                                last edited by

                                I now have upgraded the original laptop which was running R20.057, and now have Windows 10.
                                As such with a clean install, I have now R20.059 installed (clean, not updated) and R21.026 (also clean, not updated from 21.022).
                                Both versions have plugins installed in the <user_prefs>/plugins folder. Without any path added to the Cinema 4D preferences they both load the plugins as is.

                                For testing purposes I have added the path to this folder in both releases.
                                With R20.059 I get collisions, which I didn't get with R20.057 on this same laptop running Windows 8.1
                                With R21.026 I do not get collisions

                                I thus experience the same results as those I had with the original installs on "the NUC" (see the memory-leak topic). I had hoped the results would be different, as was clarified by the memory-leak topic, but alas the presence of a dedicated/discrete graphic card has no impact on the result this time.

                                But still, I now have 2 machines which both have clean installs and provide same results as to collisions/no-collisions, and still contradict the results you both have experienced. And this for both R20.059 and R21.026.

                                I am not sure were to go from here?

                                1 Reply Last reply Reply Quote 0
                                • ManuelM
                                  Manuel
                                  last edited by

                                  hello,

                                  I confirm it's strange.

                                  Could you use the g_console=true and g_logfile=d:\logfile.txt as said in this page
                                  (both will contain the same lines)

                                  Send us the logfile ([email protected]) if you don't want to share that in public.

                                  Cheers,
                                  Manuel

                                  MAXON SDK Specialist

                                  MAXON Registered Developer

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post