Changes in R20

Changes in R20.011

Introduction of the MAXON API

With R20 the new MAXON API is introduced. This new API extends the existing "classic" API defined in cinema.framework. See Introduction.

For information on how to adapt existing code see API Transition.

C.O.F.F.E.E. Removed

The COFFEE programming language and all related functions and header files were removed.


Most enumerations were refactored to use enumeration classes. For instance, EXECUTIONFLAGS_ANIMATION was changed to EXECUTIONFLAGS::ANIMATION.

Also enumeration value with the name 0 were renamed to NONE. For instance, DESCFLAGS_SET_0 was changed to DESCFLAGS_SET::NONE.

The macro ENUM_END_FLAGS() has been removed and replaced with MAXON API counterparts like MAXON_ENUM_LIST(). See enumflags.h in core.framework.


The classic String class is now a sub-class of the new maxon::String. The API was refactored to use this new maxon::String wherever possible.

Replaced Functionality

Functions and classes of the "classic" API were replaced with new MAXON API functions. See Replacements.

String Resources

The string resource folder naming scheme was changed. See Plugin Resources.


Cinema 4D R20 introduces new classes and tools to handle volumes. See Volumes Overview.

MoGraph Fields

Cinema 4D R20 comes out with the new MoGraph fields system that replaces the existing falloff system. See MoGraph Overview.

Cinema 4D deformer now use fields instead of falloffs. If a deformer instance is created by a plugin, one must send the message MSG_MENUPREPARE to that deformer to correctly initialize the internal field.


Cinema 4D R20 extends the existing Instance object. See InstanceObject Manual.

Mesh Attributes

The Mesh Attribute system allows to add arbitrary data for polygon mesh objects. See Mesh Attributes Interfaces and CustomDataTag Manual.

New Console

A new console window and logger system were introduced. See LoggerInterface Manual.

Color Swatches

The color swatches system was reworked. It uses now maxon::ColorA data and can handle multiple groups in both the document and application. See ColorSwatchData Manual.

Spline GUI

The following flags of the spline GUI (CUSTOMGUI_SPLINE / SplineCustomGui) have been removed:


API Changes in R20.011

See API Changes in R20.011 for the detailed list.

Changes in R20.026

Module IDs

Previously, the internal IDs of plugins, modules and frameworks has been generated automatically. With the R20 SP1 it is now required to manually define the "ModuleId" parameter in the projectdefinition.txt file. Third party must not use the "net.maxon.*" namespace for their IDs.

Because of these changes plugins for Cinema 4D R20 must be build with SP1 or later.

See General Settings.

Commands API

The CommandContextInterface has been renamed to CommandDataInterface. Accordingly, CommandContextClasses has been renamed to CommandDataClasses etc.

See Commands Manual.

Image Format Settings

Image format settings are stored in a maxon::DataDicitionary. It is possible to store these settings in a BaseContainer using GetImageSettingsDictionary() and SetImageSettingsDictionary().

See RenderData Manual.


The AutoLocker class was re-added. It is needed to use MoData::GetAutoLock().

API Changes in R20.026

See API Changes in R20.026 for the detailed list.

Changes in R20.028

This hotfix for Cinema 4D R20 SP1 did not change any API functionality.

Changes in R20.030

This hotfix for Cinema 4D R20 SP1 did not change any API functionality.