MAXScript Changes in 3ds Max 5.1

Undo System


Exposes public SDK methods to access the Undo/Redo system at a low level.

Modify Panel


Documenation change: Added a previously undocumented switch ui:<boolean>


Added new method which returns true if Modify panel is open, one or more nodes are selected, and the specified modifier is applicable to all the nodes at their current edit level in the stack.

getSelectionLevel and setSelectionLevel

New methods added for getting/setting the sub-object selection level.


The .baseobject property of a node is now write-able.

Interface: maxOps

The new maxOps.pivotMode property lets you get / set the Affect Pivot mode buttons in the Hierarchy panel. Possible values are #none, #pivotOnly, #objectOnly, #hierarchyOnly


Interface: LayerManager

New method deleteLayerByName has been added to the LayerManager Core Interface.

Interface: LayerProperties

A number of new properties have been added to the LayerProperties Interface:

.renderable, .inheritVisibility, .primaryVisibility, .secondaryVisibility, .receiveshadows, .castShadows, .applyAtmospherics, .renderOccluded, .ishidden, .isfrozen, .boxmode, .backfacecull, .alledges, .vertexTicks, .showTrajectory, .xray, .ignoreExtents, .showFrozenInGray, .showVertexColors, .vertexColorsShaded, .visibility, .imageMotionBlurMultiplier, .motionBlurOn, .motionblur, .display, .INodeGIProperties

Interface: trackviews

If you supply a height and width argument to, it only has effect the first time the track view is opened. After that the user defined size takes effect. This makes it possible to specify a size when scripting the opening of track view, but still allow users to change the size and have the new size remembered.

Interface: tmGizmos

More TransformGizmo properties have been exposed to MAXScript: .ShowMultipleTransformGizmos, .moveGizmoRelativeSize, .rotateGizmoRelativeSize, .scaleGizmoRelativeSize, .intersectMode, .perpsectiveSensitivity, .rotationIncrement, .arcRotateSnapAngle

SetKey Filters

Interface: maxOps

New maxOps.setKeyMode, maxOps.setKeySuspend, maxOps.setKeyFilters, maxOps.setKeyNodeSets, maxOps.setKeyNodeSetCurrent properties provide access to SetKey Mode, Filters and NodeSets. New GetSetKeyFilterState, setSetKeyFilterState methods for getting and setting the SetKey filter state.

Controller Common Properties, Operators, and Methods

New setKey-related controller properties .supportsKeys, .keyable and .isHSV

Custom Attributes

Access to Custom Attributes Virtual Array

MAXScript Custom Attributes for any Max object, new Custom Attributes virtual array class and .custAttribute property.

Scripted Custom Attributes

The custAttributes methods that take an object as an argument (add, delete, count, get, makeUnique, getDef, getDefs) can now be applied to the node itself. In the past, they operated only on the base object. New optional keyword argument baseObject:<bool> has been added to these methods.

Rollouts and Dialogs

Utility and Rollout Properties, Methods, and Event Handlers

Added new .name and .title and streamlined existing properties of rollouts and rollout floaters.


TabChanged Paramblock event handlers exposed to MAXScript.

Scripted Plug-in Rollouts_and_related_Event_Handlers

Documenation change: Added previously undocumented scripted plug-ins rollout event handlers 'on <rollout> reload do' and 'on <rollout> setTime <val> do'.

cui.RegisterDialogBar and cui.UnRegisterDialogBar

When the new #cui_max_sized DialogBar Style flag is specified, docking the DialogBar on the top causes the DialogBar to expand to the full window width, docked to bottom it expands to full window width minus command panel width.

ActiveX Controls


Documenation change: Added two previously undocumented options in ActiveXControl UI element - setupEvents:<boolean> and releaseOnClose:<boolean>

ActiveX by-reference arguments for methods and events

ActiveX now supports by-reference arguments for methods and events.

Materials and Maps


The .Mat_1 to .Mat_100 and .base are now standard properties and are accessible before materials have been assigned to these tracks.


.Bricks_Map and .Mortar_Map properties are now standard properties and are accessible before materials have been assigned to these tracks.


Render() cancelled argument

Added cancelled argument to the render method.


FilePreSave and FilePostSave

New callbacks.notificationParam parameters: #filePreSave and #filePostSave

Viewport Background


New method causes all viewport backgrounds to be invalidated and updated.

See also

What's new in MAXScript in 3ds Max 5

MAXScript Documentation Changes in 3ds Max 5.1.1 (Particle Flow Update)

Particle Flow and MAXScript