<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Recently Active Topics]]></title><description><![CDATA[A list of topics that have been active within the past 24 hours]]></description><link>http://developers.maxon.net/forum/recent</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 16:01:58 GMT</lastBuildDate><atom:link href="http://developers.maxon.net/forum/recent.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Apr 2026 11:29:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Using the Bridge Tool]]></title><description><![CDATA[<p dir="auto">Hello, I'm trying to use the Bridge Tool with the SendModelingCommand but I'm having trouble as there are attributes I don't know how to use. Could someone explain to me what these are for ?</p>
<p dir="auto">MDATA_BRIDGE_ELEMENT1				= 1100, //LONG<br />
MDATA_BRIDGE_ELEMENT2				= 1101, //LONG<br />
MDATA_BRIDGE_ELEMENT3				= 1102, //LONG<br />
MDATA_BRIDGE_ELEMENT4				= 1103, //LONG<br />
MDATA_BRIDGE_OBJINDEX1			= 1104, //LINK<br />
MDATA_BRIDGE_OBJINDEX2			= 1105, //LINK<br />
MDATA_BRIDGE_OBJINDEX3			= 1106, //LINK<br />
MDATA_BRIDGE_OBJINDEX4			= 1107, //LINK<br />
MDATA_BRIDGE_DELETE					= 1108, //BOOL<br />
MDATA_BRIDGE_ISO						= 1109, //BOOL</p>
<p dir="auto">Also, given  the type of elements I'm bridging and subsequently the modeling mode in which I will be using the Tool should I look out for specific things like the sequence of edges or points between the two parts to be connected ? Should I be treating Edge Selections like a sequence of point IDs or can I use them with their own IDs ?</p>
<p dir="auto">Thank you for your time.</p>
]]></description><link>http://developers.maxon.net/forum/topic/16404/using-the-bridge-tool</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16404/using-the-bridge-tool</guid><dc:creator><![CDATA[Dimitris_Derm.]]></dc:creator><pubDate>Fri, 17 Apr 2026 11:29:19 GMT</pubDate></item><item><title><![CDATA[Maxon One 2026.2 SDK Release]]></title><description><![CDATA[<p dir="auto">Dear development community,</p>
<p dir="auto">On April the 15th, 2026, Maxon Computer released Maxon One 2026.2. For an overview of the new features please refer to the <a href="https://support.maxon.net/hc/en-us/categories/4405723856402" target="_blank" rel="noopener noreferrer nofollow ugc">end user release notes</a>.</p>
<p dir="auto">Alongside this release, existing APIs have been updated. For a detailed overview, please see the <a href="https://developers.maxon.net/docs/cpp/2026_2_0/page_change_notes.html" target="_blank" rel="noopener noreferrer nofollow ugc">Cinema 4D C++ SDK</a> and the <a href="https://developers.maxon.net/docs/py/2026_2_0/misc/whatisnew.html" target="_blank" rel="noopener noreferrer nofollow ugc">Cinema 4D Python SDK</a> change notes.</p>
<h1>Cinema 4D</h1>
<h4>C++ API</h4>
<ul>
<li>Updated <code>RenderDocument</code> workflow to offer a more streamlined experience when rendering OCIO documents.</li>
<li>Also added two new rendering related code examples and updated older examples.</li>
</ul>
<h4>Python API</h4>
<ul>
<li>Updated <code>c4d.documents.RenderDocument</code> workflow to offer a more streamlined experience when rendering modern OCIO documents which is explained in a suite of new rendering examples.</li>
<li>Added the ability to read and write SDS weighting data through the new <code>c4d.HNWeightTag</code> class.</li>
<li>Added the ability to do efficient nearest neighbor searches through the new <code>c4d.utils.KDTree</code> and <code>c4d.utils.KDTreeQuery</code> classes.</li>
<li>Added multiple new code examples, mostly revolving around rendering.</li>
</ul>
<h1>ZBrush</h1>
<p dir="auto">The ZBrush Python SDK has not been updated for this release.</p>
<p dir="auto">Head to our <a href="https://developers.maxon.net/downloads/" target="_blank" rel="noopener noreferrer nofollow ugc">download section</a> to grab the newest SDK downloads.</p>
<p dir="auto">Happy rendering and coding,<br />
the Maxon SDK Team</p>
<blockquote>
<p dir="auto"><img src="http://developers.maxon.net/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/2139.png?v=0b8ddba251d" class="not-responsive emoji emoji-android emoji--information_source" style="height:23px;width:auto;vertical-align:middle" title=":information_source:" alt="ℹ" /> We are aware that the notifications are currently malfunctioning on the forum.<br />
<img src="http://developers.maxon.net/forum/assets/plugins/nodebb-plugin-emoji/emoji/android/2139.png?v=0b8ddba251d" class="not-responsive emoji emoji-android emoji--information_source" style="height:23px;width:auto;vertical-align:middle" title=":information_source:" alt="ℹ" />  Cloudflare unfortunately still does interfere with our server cache. You might have to refresh your cache manually to see new data when you read this posting within 24 hours of its release.</p>
</blockquote>
]]></description><link>http://developers.maxon.net/forum/topic/16403/maxon-one-2026.2-sdk-release</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16403/maxon-one-2026.2-sdk-release</guid><dc:creator><![CDATA[ferdinand]]></dc:creator><pubDate>Wed, 15 Apr 2026 16:00:58 GMT</pubDate></item><item><title><![CDATA[Load *.py scripts on startup.]]></title><description><![CDATA[Hi @diegoev2026
Welcome to the Maxon developers forum and its community, it is great to have you with us!
Getting Started
Before creating your next postings, we would recommend making yourself accustomed with our forum and support procedures. You did not do anything wrong, we point all new users to these rules.

Forum Overview: Provides a broad overview of the fundamental structure and rules of this forum, such as the purpose of the different sub-forums or the fact that we will ban users who engage in hate speech or harassment.
Support Procedures: Provides a more in detail overview of how we provide technical support for APIs here. This topic will tell you how to ask good questions and limits of our technical support.
Forum Features: Provides an overview of the technical features of this forum, such as Markdown markup or file uploads.

It is strongly recommended to read the first two topics carefully, especially the section Support Procedures: How to Ask Questions.
About your Question
Good question, and indeed we wouldn’t recommend modifying the init.py file in the installation directory.
Instead, ZBrush provides a dedicated folder for this type of user customization, you can quickly navigate to it from the ZBrush menu: Preferences &gt; Asset Directory &gt; Open Directory.
You can find more details about that here, if you are looking for further detail : https://help.maxon.net/zbr/en-us/Content/html/user-guide/customizing-zbrush/user-content/user-content.html
In order to execute your own script at startup, it should be sufficient to replicate the setup you see in the ZBrush directory by creating a Python directory inside your asset directory with an init.py in it.
If you are using the default location for the asset directory, the path would look something like C:\Users\[UserName]\AppData\Roaming\Maxon\ZBrush_[HashValue]\Python\init.py.
On top of the init.py scripts, ZBrush also allows running Python scripts as plugins from a directory you can configure through the environment variable in ZBRUSH_PLUGIN_PATH. You can find more details on how to set those up here: https://developers.maxon.net/docs/zbrush/py/2026_1_0/manuals/python_environment.html#zbrush-plugin-path
The user asset directory I mentioned above is also part of the ZBRUSH_PLUGIN_PATH by default, meaning you can just drop your plugins in there.
Let us know if you need any further clarification!
Regards,
Davide
]]></description><link>http://developers.maxon.net/forum/topic/16402/load-.py-scripts-on-startup.</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16402/load-.py-scripts-on-startup.</guid><dc:creator><![CDATA[davide]]></dc:creator><pubDate>Wed, 15 Apr 2026 08:37:40 GMT</pubDate></item><item><title><![CDATA[Tile rendering with Cinema 4D]]></title><description><![CDATA[Hey,
just as an FYI, I added this as an example to the 2026.2 rendering examples. You will be able to find it under \scripts\04_3d_concepts\rendering\render_document_tiles_2026_2.py. Since the script will use some 2026.2 features, it does not make much sense to post a preview here, as you will not be able to run it right now. The example also does the kernel border thing we discussed here.
Cheers,
Ferdinand
]]></description><link>http://developers.maxon.net/forum/topic/16386/tile-rendering-with-cinema-4d</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16386/tile-rendering-with-cinema-4d</guid><dc:creator><![CDATA[ferdinand]]></dc:creator><pubDate>Thu, 09 Apr 2026 12:08:20 GMT</pubDate></item><item><title><![CDATA[Reading Immutable Selection Tags]]></title><description><![CDATA[Ah ! They are called Proxy Tags and I can see the actual tag with the MSG_GETREALTAGDATA ! Thank you ️
]]></description><link>http://developers.maxon.net/forum/topic/16398/reading-immutable-selection-tags</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16398/reading-immutable-selection-tags</guid><dc:creator><![CDATA[Dimitris_Derm.]]></dc:creator><pubDate>Wed, 08 Apr 2026 08:43:48 GMT</pubDate></item><item><title><![CDATA[How to select multiple files using &quot;c4d.storage.LoadDialog()&quot;?]]></title><description><![CDATA[Your approach is not necessarily worse, one could even argue that it is better. I personally would always avoid manually binding to an OS DLL via ctypes, but that is more a personal preference.
]]></description><link>http://developers.maxon.net/forum/topic/16400/how-to-select-multiple-files-using-c4d.storage.loaddialog</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16400/how-to-select-multiple-files-using-c4d.storage.loaddialog</guid><dc:creator><![CDATA[ferdinand]]></dc:creator><pubDate>Tue, 07 Apr 2026 15:49:06 GMT</pubDate></item><item><title><![CDATA[Is it okay to release a free plugin that overlaps with paid alternatives?]]></title><description><![CDATA[@ferdinand Thanks for the encouragement, much appreciated!
]]></description><link>http://developers.maxon.net/forum/topic/16401/is-it-okay-to-release-a-free-plugin-that-overlaps-with-paid-alternatives</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16401/is-it-okay-to-release-a-free-plugin-that-overlaps-with-paid-alternatives</guid><dc:creator><![CDATA[Anlv]]></dc:creator><pubDate>Tue, 07 Apr 2026 15:28:52 GMT</pubDate></item><item><title><![CDATA[Effector Objects written in Python]]></title><description><![CDATA[Hey @Dimitris_Derm. ,
no there is currently no dedicated plugin class for MoGraph effectors and fields in Python, only the scripting objects exist at the moment.
Cheers,
Ferdinand
]]></description><link>http://developers.maxon.net/forum/topic/16399/effector-objects-written-in-python</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16399/effector-objects-written-in-python</guid><dc:creator><![CDATA[ferdinand]]></dc:creator><pubDate>Tue, 07 Apr 2026 12:43:21 GMT</pubDate></item><item><title><![CDATA[Can I have access to the Loop and Ring Selection algorithm ?]]></title><description><![CDATA[Hey,
well, "intended" would be the wrong word, but I am aware. The whole resource parsing situation is a bit of a mess at the moment, both in C++ and the Python API.
Why is it like this?
A description is defined by a res file (more or less its GUI declaration) and an h file which declares symbols for parameter IDs. The resource for the loop tool looks like this:
CONTAINER ToolLoopSelection
{
	NAME ToolLoopSelection;
	INCLUDE ToolBase;
	GROUP MDATA_MAINGROUP
	{
		BOOL MDATA_LOOP_SEL_STOP_AT_SELECTIONS { }
		BOOL MDATA_LOOP_SEL_STOP_AT_NON_QUADS { }
		BOOL MDATA_LOOP_SEL_STOP_AT_POLES { }
	}
	HIDE MDATA_COMMANDGROUP;
}

I.e., it indeed only defines three parameters. But the header file looks like this:
#ifndef TOOLLOOPSELECTION_H__
#define TOOLLOOPSELECTION_H__

enum
{
	MDATA_LOOP_SEL_STOP_AT_SELECTIONS	= 1100, // BOOL
	MDATA_LOOP_SEL_STOP_AT_NON_QUADS	= 1110, // BOOL
	MDATA_LOOP_SEL_STOP_AT_POLES			= 1120, // BOOL
	MDATA_LOOP_FIRST_VERTEX						= 1130, // LONG
	MDATA_LOOP_SECOND_VERTEX					= 1131, // LONG
	MDATA_LOOP_POLYGON_INDEX					= 1132, // LONG
	MDATA_LOOP_BOTH_SIDES							= 1133, // BOOL
	MDATA_LOOP_SWAP_SIDES							= 1134, // BOOL
	MDATA_LOOP_SELECTION_TYPE					= 1140, // LONG (must be SELECTION_NEW, SELECTION_ADD or SELECTION_SUB)
	MDATA_LOOP_SEL_POLYGON_OBJECT			= 1150, // LINK
};

#endif // TOOLLOOPSELECTION_H__

I.e., it not only defines these three parameters, but also all the others. Because there are all these "hidden" parameters which are written into the data container of the tool, but never show up in the GUI. What collides here is (a) the a bit irregular (but not illegal) behavior of a resource to define more parameters in its header file than are used in the resource and (b) the questionable decision of our resource parser to ignore hidden parameters.
Our resource parsing is automated, i.e., I cannot just go into a file and just add these parameters for a docs build. I could touch the resource parsers for Python and C++, but I do not have the time for that right now as they has been written in a very opaque manner.
My advice is simply what the docs suggest: Search in the header files directly. Go to your Cinema folder, make sure that the resource.zip is either unpacked to the local folder (the folder existing does not mean necessarily that it has been fully unpacked) or an external folder of your choice. And then simply search in that folder with an editor of your choice.
[image: 1775557617243-c122abc5-8cfc-40da-90be-534532600b4a-image-resized.png]
At some point I will replace the resource and symbols parsing for Python and C++, because we made there quite a mess in the past with questionable parsers and manually curated lists. But for now this cannot be changed and using the files directly is the way to go when you want to look at descriptions.
Cheers,
Ferdinand
PS: The C++ docs are NOT inherently better in that regard. The parser shares there the same flaws. The reason why you find some symbols there is because developers have duplicated them from the resources into the frameworks.
]]></description><link>http://developers.maxon.net/forum/topic/16397/can-i-have-access-to-the-loop-and-ring-selection-algorithm</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16397/can-i-have-access-to-the-loop-and-ring-selection-algorithm</guid><dc:creator><![CDATA[ferdinand]]></dc:creator><pubDate>Tue, 07 Apr 2026 10:35:49 GMT</pubDate></item><item><title><![CDATA[GetEffectiveRenderData does not return per-take overrides for RDATA_FRAMEFROM &#x2F; RDATA_FRAMETO]]></title><description><![CDATA[Hello @vaishhg,
Thank you for reaching out to us and your comprehensive yet sparse problem description, this really makes things easier for us.
The problem is a bit that you somewhat forgot a crucial part: The scene data :). You provided this:

Create a Cinema 4D scene with a Main take (frame range 0-6)
Create child takes (V, E, R, A) and override the render data's frame range on each (e.g., V: 0-9, E: 0-23, R: 0-13, A: 0-17)

But I cannot recreate a scene with these instructions, unless you meant the second step in a rather metaphorical way (switching the render data itself via takes). I also talked with some of our support specialists, and the consensus seems to be that what you claim to be the case - a scene with take overwritten FROM/TO values - is not possible. What you can do, is create multiple render settings and then activate them via takes.
But Takes are a tricky subject, and I would not rule out that you somehow found a way to create take overrides for parameters of a render data instance. If so, please share the scene. Find also a scene attached which demonstrates what I discussed above: A scene that switches the active render data based on takes. It will print this with your script:
Take 'Main': FRAMEFROM=0, FRAMETO=90
Take '0_45': FRAMEFROM=0, FRAMETO=45
Take '0_90': FRAMEFROM=0, FRAMETO=90

take_renderdata.c4d
So, to formally answer your main question: When my assumptions above are true, your scene is printing the same values because each take does have the same values, as these two parameters are not directly overridable.
Cheers,
Ferdinand
]]></description><link>http://developers.maxon.net/forum/topic/16395/geteffectiverenderdata-does-not-return-per-take-overrides-for-rdata_framefrom-rdata_frameto</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16395/geteffectiverenderdata-does-not-return-per-take-overrides-for-rdata_framefrom-rdata_frameto</guid><dc:creator><![CDATA[ferdinand]]></dc:creator><pubDate>Mon, 30 Mar 2026 09:45:25 GMT</pubDate></item><item><title><![CDATA[NETWORK_CONNECTTIMEOUT with SSL]]></title><description><![CDATA[For now I am good. If I need further help, I will send the endpoint and function by email.
]]></description><link>http://developers.maxon.net/forum/topic/16394/network_connecttimeout-with-ssl</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16394/network_connecttimeout-with-ssl</guid><dc:creator><![CDATA[Rox]]></dc:creator><pubDate>Thu, 19 Mar 2026 11:17:45 GMT</pubDate></item><item><title><![CDATA[Create Motion Clip Source with Python API]]></title><description><![CDATA[Hi @ferdinand, and thank you!
Your proof-of-concept and pointing me toward mxutils.GetSceneGraphString() was exactly what I needed to solve this.
By using the scene graph dumper on a native UI-generated Motion Source from a rigged character, I realized it's just a standard Ojoint hierarchy with normal CTrack objects.
I used GetClone(c4d.COPYFLAGS_NO_HIERARCHY) to perfectly replicate the Ojoint skeleton and injected the time variables into the container, and it maps and plays back perfectly. Thanks again.
]]></description><link>http://developers.maxon.net/forum/topic/16392/create-motion-clip-source-with-python-api</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16392/create-motion-clip-source-with-python-api</guid><dc:creator><![CDATA[jaroslavnovotny]]></dc:creator><pubDate>Wed, 18 Mar 2026 11:00:09 GMT</pubDate></item><item><title><![CDATA[Command to create a Nodes Modifier]]></title><description><![CDATA[@ferdinand Thanks for the reply. This will help immensely thank you.
]]></description><link>http://developers.maxon.net/forum/topic/16393/command-to-create-a-nodes-modifier</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16393/command-to-create-a-nodes-modifier</guid><dc:creator><![CDATA[ImperfectLink]]></dc:creator><pubDate>Tue, 17 Mar 2026 15:48:50 GMT</pubDate></item><item><title><![CDATA[Best way to hide a child and get best perfomance]]></title><description><![CDATA[Here's my prototype, if you are interested in my goal
Right now, everything works as expected, but only with these lines of code.
profile = GetCloneSpline(profile_orig)
path = GetCloneSpline(path_orig)

I'm happy with the current result. So, I'd love to get some additional advice on correctness and optimization. I think your previous answer was comprehensive enough, so I'll try to integrate some of it.
But I'd also be very grateful if you could take a look at my plugin and perhaps give me some more specific optimization tips. If that's not too much trouble, of course!  

@ferdinand @ThomasB
Anyway, thanks for your replies and advices!
]]></description><link>http://developers.maxon.net/forum/topic/16391/best-way-to-hide-a-child-and-get-best-perfomance</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16391/best-way-to-hide-a-child-and-get-best-perfomance</guid><dc:creator><![CDATA[Tpaxep]]></dc:creator><pubDate>Thu, 12 Mar 2026 17:42:13 GMT</pubDate></item><item><title><![CDATA[Batching Slider messages]]></title><description><![CDATA[Thank you.  MSG_DESCRIPTION_USERINTERACTION_END is just what was needed.
]]></description><link>http://developers.maxon.net/forum/topic/16390/batching-slider-messages</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16390/batching-slider-messages</guid><dc:creator><![CDATA[SteveHill3D]]></dc:creator><pubDate>Wed, 04 Mar 2026 19:56:44 GMT</pubDate></item><item><title><![CDATA[Advice on implementing undo&#x2F;redo in a Tool]]></title><description><![CDATA[Hey @SteveHill3D,
Storing a tool state in a tag is possible, but a bit unusual. But generally you are on the right track. Tags are also internally often used as hidden data containers. When you write a modelling tool, you probably already found out that points and polygons are are actually stored in hidden tags on objects.
I am not sure though if using tags in tools is a good advice, as injecting all that data all the time into the scene graph is probably not the fastest. It depends a bit on what you are doing, but in general the solution is a bit unusual.
Cheers,
Ferdinand
]]></description><link>http://developers.maxon.net/forum/topic/16388/advice-on-implementing-undo-redo-in-a-tool</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16388/advice-on-implementing-undo-redo-in-a-tool</guid><dc:creator><![CDATA[ferdinand]]></dc:creator><pubDate>Wed, 04 Mar 2026 16:57:24 GMT</pubDate></item><item><title><![CDATA[How to detect Global Illumination state via Python API?]]></title><description><![CDATA[@ferdinand
Hey @ferdinand,
Thank you again for the clarification — checking the Video Post list was indeed the right direction.
Just to share what worked on my side (Standard/Physical renderer), I check the presence of the GI Video Post and use its BIT_VPDISABLED state to determine whether it’s enabled.
Here’s the small helper function I’m using:
def is_gi_active(doc):
    rd = doc.GetActiveRenderData()
    if not rd:
        return False

    # GI Video Post IDs (verified on C4D 2024)
    GI_IDS = [
        1021096,    # Global Illumination Video Post (C4D 2024)
        300001038,  # VPglobalillumination (older versions)
    ]

    vp = rd.GetFirstVideoPost()
    while vp:
        if vp.GetType() in GI_IDS:
            return not vp.GetBit(c4d.BIT_VPDISABLED)
        vp = vp.GetNext()

    return False

Thanks again for your help.
Best regards,
Mustapha
]]></description><link>http://developers.maxon.net/forum/topic/16387/how-to-detect-global-illumination-state-via-python-api</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16387/how-to-detect-global-illumination-state-via-python-api</guid><dc:creator><![CDATA[mfersaoui]]></dc:creator><pubDate>Sat, 28 Feb 2026 01:06:34 GMT</pubDate></item><item><title><![CDATA[2025 SDKs missing files]]></title><description><![CDATA[Hello @atg,
Welcome to the Maxon developers forum and its community, it is great to have you with us!
Getting Started
Before creating your next postings, we would recommend making yourself accustomed with our forum and support procedures. You did not do anything wrong, we point all new users to these rules.

Forum Overview: Provides a broad overview of the fundamental structure and rules of this forum, such as the purpose of the different sub-forums or the fact that we will ban users who engage in hate speech or harassment.
Support Procedures: Provides a more in detail overview of how we provide technical support for APIs here. This topic will tell you how to ask good questions and limits of our technical support.
Forum Features: Provides an overview of the technical features of this forum, such as Markdown markup or file uploads.

It is strongly recommended to read the first two topics carefully, especially the section Support Procedures: How to Ask Questions.
About your First Question
I can see why would think that, but you mixed things there a bit up. The CMake SDK build system was introduced with 2025.2.0 and became the standard with 2026.0.0. Between 2025.2 and 2025.3 we supported both build systems as a grace period for developers to get accustomed.
Chances are very good, that you can just copy the CMake setup, i.e., the cmake folder and files such as CMakeLists.txt, CMakePresets.json, and sdk_modules.txt to a 2025.0 folder and it will generate a correct build system for you.
But the supported range is only 2025.2+. For older projects you would have to use the old project tool based build system. Since I know what you are trying to do, I would recommend trying copying before you get into the old build system of ours.

2025.2 Release Notes
2025.2 Build System Docs (which covered both the old Project Tool and CMake)

Cheers,
Ferdinand
edit: You will only find the old project tool tooling in old extended SDKs which supported it, such as 2025.2 or 2025.0.1
]]></description><link>http://developers.maxon.net/forum/topic/16389/2025-sdks-missing-files</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16389/2025-sdks-missing-files</guid><dc:creator><![CDATA[ferdinand]]></dc:creator><pubDate>Fri, 27 Feb 2026 16:18:16 GMT</pubDate></item><item><title><![CDATA[CUSTOMGUI_QUICKTAB trigger twice when click]]></title><description><![CDATA[hey @Gene,
So, you were just trying to add information for future readers? That is of course very welcome and explains my inability to extract a question from your posting.
I would not have been that generous with the word bug either. Since this has never been fixed, chances are high that we came to the same conclusion internally.
In general, you should not expect Command calling patterns to make perfect sense in every case. There are multiple cases where Command is triggered more often than one would think at first glance. I would also not try to interpret some deeper sense into all that.
Cheers,
Ferdinand
]]></description><link>http://developers.maxon.net/forum/topic/14517/customgui_quicktab-trigger-twice-when-click</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/14517/customgui_quicktab-trigger-twice-when-click</guid><dc:creator><![CDATA[ferdinand]]></dc:creator><pubDate>Thu, 26 Feb 2026 13:05:12 GMT</pubDate></item><item><title><![CDATA[C++ SDK Matrix object style distribution]]></title><description><![CDATA[Thank you so much Ferdinand!
I have a way forward now for my plugin using the EffectorData ModifyPoints() method.
Kind regards
Fredrik
]]></description><link>http://developers.maxon.net/forum/topic/16380/c-sdk-matrix-object-style-distribution</link><guid isPermaLink="true">http://developers.maxon.net/forum/topic/16380/c-sdk-matrix-object-style-distribution</guid><dc:creator><![CDATA[dex]]></dc:creator><pubDate>Wed, 11 Feb 2026 19:50:44 GMT</pubDate></item></channel></rss>