Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware 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

    Where Can I Find Documentation for Licensing a Python Plugin?

    Cinema 4D SDK
    python
    4
    6
    967
    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.
    • ?
      A Former User
      last edited by A Former User

      Hello,
      I'm looking for information on licensing a Cinema 4D plugin written in Python. I'd like to understand how to register the plugin in Cinema 4D's registration screen (similar to others I've used like X-Particles, UV Vonc, Riptide Pro, etc.)
      Registration_Screen.jpg

      I have a few questions:

      • Can this be done with a Python plugin?
      • If so, does a guide exist somewhere online explaining how this is done in Python? I found this article from 2012, but the code samples are in C++:
        Licensing Plugins – Part I – Basics[URL-REMOVED]. I also found this, but it's in C++ too:
        Plugin Licensing Manual
      • Do Python code samples for licensing exist somewhere?
      • I see that there were changes to the Python API for getting the user's product information (c4d.ExportLicenses(), c4d.GetGeneralLicensingInformation()). To support R20 and below, will I need to implement two methods for getting the user's licensing details?
      • For those with experience in this, is there a more friction-less plugin licensing model where you don't need to generate tons of new serial numbers every time a new version of Cinema 4D is released?

      Thanks for reading!


      [URL-REMOVED] @maxon: This section contained a non-resolving link which has been removed.

      1 Reply Last reply Reply Quote 0
      • ferdinandF
        ferdinand
        last edited by ferdinand

        Hi,

        I cannot say much about licensing, because I have never done it. But there is a R21 example on github [1]. And if I am not mistaken, you are binding your plugin to user IDs (at least that is an option) now and not serials, which should be persistent.

        Cheers
        zipit

        [1] https://github.com/PluginCafe/cinema4d_py_sdk_extended/blob/c7116c37eb7bb357294d60dd009aebb7e044153f/plugins/py-licensing_example_r21/py-licensing_example_r21.pyp

        MAXON SDK Specialist
        developers.maxon.net

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

          Hello,

          The screen you are showing was only available in c++ using SNHookClass

          With R21 we introduced a new licence system for Cinema4D and we have included new functions to retrieve the user information about his licence.

          We have this manual about the new licencing system.
          Functions exist also in python like ExportLicences

          As @zipit said we have a simple example on github, but you have to come with your own solution, it could be a licence file, a dialog box with a simple serial etc.

          If you have any questions feel free to ask of course.

          Cheers,
          Manuel

          MAXON SDK Specialist

          MAXON Registered Developer

          1 Reply Last reply Reply Quote 1
          • ?
            A Former User
            last edited by A Former User

            Hi all,
            Thank you for your responses. @zipit , thank you for this example! That was very helpful. I am on R20, though, so I will need a solution that works for it too.

            @m_magalhaes , I appreciate you letting me know that I cannot use the registration view with Python. I don't know if you saw in my original post, but I was already aware of the Plugin Licensing manual and ExportLicenses.

            One of my questions is still unanswered: I'd like to develop a Python licensing system that works for both R21 and R20 and below. Would I be able to use the user's C4D serial number to create a plugin serial by this method? GeGetSerialInfo

            The documentation says not to use it, but I don't have R21.

            Thank you.

            1 Reply Last reply Reply Quote 0
            • kbarK
              kbar
              last edited by kbar

              Hi,

              Yes you can create a system that works for R20 and R21. For R20 just create a hash key against the serial number, the last 5 digits is usually good enough, which you can get from the call you mentioned GeGetSerialInfo. Then for R21 just use their UserID or SystemID as mentioned in the other docs.

              You can then create a license file for each user if they manually send you these keys (serial or user id), and they could place it in the folder for their plugin. You could also automate the generation of this license file depending on who you are selling with.

              Most important however is that you encrypt your plugins so that they can't see how you are licensing them. I am not sure how well this works with python however.

              Cheers,
              Kent

              https://www.gamelogicdesign.com
              https://www.plugins4d.com

              ? 1 Reply Last reply Reply Quote 0
              • ?
                A Former User @kbar
                last edited by

                @kbar Thank you for your response. That's really helpful, thank you.

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