What was New in MAXScript in 3ds Max 7

The following pages will give you a quick overview of the MAXScript language changes and improvements in 3ds Max 7. For details on each feature, please follow the links to the respective documentation pages.


Editable_Poly Properties

New properties added to the Editable_Poly geometry class providing access to the Paint Soft Selections and Paint Deformations functionality.

Interface: EditablePoly

New methods added to the EditablePoly Interface, providing access to Bridge, MakePlanarIn and Relax functionality.

Editable_Mesh : GeometryClass and TriMesh : Value

New mesh: construction parameter added to the mesh constructor to allow creation of Editable_Mesh objects from existing TriMesh values.

NURBSCurveshape : Shape

Added access to the following parameters: #angle, #renderable, #mapCoords, #thickness, #sides, #viewport_thickness, #viewport_sides, #viewport_angle, #displayRenderMesh, #useViewportSettings, #displayRenderSettings


ExposeTm : Helper

This new Helper can be used to extract position and rotation data from any scene nodes to be used as input for scripted controllers, wire controllers etc. It simplifies significantly the creation of custom animation rigs.



Edit_Poly : Modifier

The new Edit_Poly modifier implements the Editable Poly modeling tools in a modifier that can be added to the stack and allow for non-destructive editing and animation.

EmptyModifier : Modifier

Replaces the previous implementation of the EmptyModifier which is now EmptyModifier_Old. Can be used as an Custom Attributes holder.

Poly_Select : modifier

New properties controlling the Soft Selection Painting added to the existing modifier.

Projection : Modifier

Project_Mapping_Holder : Modifier

Project_Mapping : ReferenceTarget

The new Projection modifiers provide means to copy UVW coordinates between high-resolution meshes and low-resolution meshes necessary for Normal Map baking.

Renderable_Spline : Modifier

The new Renderable_Spline modifier provides a procedural way to turn a spline into a mesh in the renderer and the viewports. It is also used when transferring data between 3ds Max and other Autodesk products.

Skin_Morph : Modifier

The new Skin_Morph modifier...

Skin_Wrap : Modifier

The new Skin_Wrap modifier....

Skin_Wrap_Patch : Modifier

The new Skin_Wrap_Patch modifier...

TurboSmooth : Modifier

The new TurboSmooth modifier is an optimized and very fast subdivision modifier.

Unwrap_UVW - Unwrap_4_Interface

The new Unwrap_UVW Interface provides additional methods to control the Unwrap_UVW modifier, including Open Edges display in the Editor and the Viewports, Flatten Map By Material IDs, access to geometry and UVW Area calculations for selected faces, Relative/Absolute type-in mode, and adding maps to the maps list of the Editor.

VertexPaint : Modifier

New .radiosityOption property added to the existing modifier.

Custom Attributes

MSCustAttribDef Class

New properties .isPB2Based , .isMSPluginClass and .isMSCustAttribClass added to the Custom Attributes definition class.


The new custAttributes.getOwner method returns the object the Custom Attribute is applied to.

Interface: custAttribCollapseManager

This new interface controls whether Custom Attributes will survive collapsing the modifier stack or not.

Materials and Texture Maps

Camera_Map_Per_Pixel : textureMap

The new per-pixel camera mapping texture map yields precise results on any geometry at any viewing angle.

DirectX_9_Shader : Material

New properties .lightDir, .k_a, .k_d, .k_s, .n added to the existing DirectX_9_Shader material. Some obsolete properties were retired from the material.

New methods added to the existing DirectX_9_Shader material.

ViewportManagerCustAttrib : CustAttrib

New properties and methods controlling the DirectX Standard Material shader and saving of FX files added to the existing ViewportManagerCustAttrib class and its interface.

Normal_Bump : textureMap

The new Normal_Bump texture map is used as the host for baked normal maps.

Ambient_Reflective_Occlusion__base : textureMap

A new mental ray texture map.

Bake Elements

HeightMap : BakeElement

The new HeightMap BakeElement can be used to bake geometry into Height Maps textures.

NormalsMap : BakeElement

Two new properties added to the existing BakeElement: .useHeightAsAlpha and .useNormalBump.

mental ray

mental_ray_Shadow_Map : Shadow

New properties added to the existing shader which is now officially supported in 3ds Max 7.

mental_ray_renderer : RendererClass

New properties added to the existing renderer class, some obsolete properties removed.

Sub-Surface Scattering - mental ray Shaders

New shaders implementing both physically-correct and fast Sub-Surface Scattering (SSS) added. Note that these classes are not officially supported in MAXScript.

Utility Plug-ins

Object_Display_Culling : UtilityPlugin

New Utility Plug-in to maintain user-defined frame rates in the viewports through view-dependent objects culling.



This new callback is sent when a scene node name is set or changed. It is more reliable to use this callback type than the #nodeRenamed callback. callbacks.notificationParam() will return a 3 element array for this callback type, containing the old name, the new name, and the node.

#filePreOpen and #filePostOpen

callbacks.notificationParam() will now return an integer value of 2 if a Render Presets file is being opened, undefined otherwise.

Trackbar Interface

New methods for registering and managing trackbar key filter functions added.

The two new topics

Exploring the Trackbar Filter Callback Functions

Trackbar Filter Callback Function Examples

discuss the functionality and possible custom filter functions.


Interface: FrameTagManager

The new FrameTagManager Interface provides access to the Time Tags feature. See also

Interface: ParamCollectorOps

The new ParamCollectorOps Interface provides access to the Parameter Collector dialog.

Interface: reactionMgr

The new reactionMgr Interface provides access to the Reaction Manager dialog.

Interface: walkThroughOps

The new walkThroughOps Interface provides access to the Walkthrough viewport navigation mode.

Interface: INodeBakeProjProperties

The new INodeBakeProjProperties Interface implements the projection mapping process using the new Projection : Modifier and Project_Mapping_Holder : Modifier modifiers.

Interface : thePainterInterface

New .hitNode method added to the existing Interface.

New properties .dragStrLimitMin and .dragStrLimitMax added to the existing Interface.

Interface: LayerManager

New .closeDialog and .isDialogOpen methods added to the existing Interface.

Interface: ChannelInfo

New .closeDialog and .isChecked methods added to the existing Interface.

Interface: maxOps

New .paintSelBrushSize property controlling the size of the new Paint Selection Brush option added to the existing Interface.

New deleteSelectedAnimation() method added to the existing Interface.

Command Panel

Command Panels

New SuspendEditing and ResumeEditing methods added.

The syntax of SetCommandPanelTaskMode was modified so that the panel name to switch to can either be specified as the mode keyword argument, or simply as the argument to the method.


Accessing Active Viewport Info, Type, and Transforms

New method viewport.isWire() added.

New methods viewport.GetRenderLevel(), viewport.SetRenderLevel() added.

New methods viewport.GetShowEdgeFaces(), viewport.SetShowEdgeFaces() added.

New methods viewport.GetTransparencyLevel(), viewport.SetTransparencyLevel() added.

New method viewport.GetFOV() added.

New method viewport.GetScreenScaleFactor() added.

New method viewport.IsEnabled() added.

New method viewport.IsPerspView() added.

New system global viewport.DispBkgImage added.



Many new properties added to the existing Struct, providing full access to Snap options and results.


3ds Max System Globals

New preferences.spinnerPrecision, preferences.spinnerSnap and preferences.useSpinnerSnap system globals corresponding to the controls in the Customize > Preferences > General > Spinner group added.

Track View Pick Dialog

Track View Pick Dialog

New optional filter_function and new optional keyword options: added to the existing TrackView.pickTrackDlg function.

User Interface Controls


New labelOnTop keyword option in EditText UI controls. If true, the caption is placed above the edit text box. If false or not specified, the caption is placed to the left of the edit text box.


New readOnly keyword option in ListBox UI controls. If true, the user cannot pick items from the list. NOT exposed as a property.


New autoDisplay keyword option in Pickbutton UI controls. If true, the name of the picked object will be placed on the button automatically.

The .object property has been fixed to accept undefined as a valid value assignment.






.height and .width are now exposed as read/write properties of the these UI controls.

For ComboBox, DropdownList, and ListBox, these properties get/set the height/width of the list window in pixels.


that as constructor parameter, the height specifies the height in lines of text!

For ComboBox and Dropdownlist, the height property does not include the height of the edit-text box. For ComboBox, the minimum height setting is clamped at 0 pixels, for DropdownList at 1 pixel.


Two new methods to get and set the dialog's background bitmap added.

Utility and Rollout Properties, Methods, and Event Handlers

New read-only property .isDisplayed added to rollouts.

MacroScript Handlers

closeDialogs MacroScript handler

This new macroScript handler allows the implementation of macroScript toggling on and off in conjunction with the isChecked handler. When the isChecked handler returns true and the button is pressed again, the closeDialogs handler will be called instead of the on execute handler.

Scripted Plugins

Scripted Cameras

Scripted Helper Plug-ins

New on getDisplayMesh handler lets the developer replace the default viewport display mesh of the delegate with a custom viewport mesh.

Scripted Plug-in Clauses

ListBox user interface controls are now supported as a valid association with type:#integer parameters in scripted plugins.


New superclass 'SoundClass' added. The default sound object class belongs to this superclass. Explicit declaration of 'Default_Sound' class added.

Class and Object Inspector Functions


This new method returns true if the property is animatable, false if the property is not found or is not animatable.


This new method returns an array of all instances of specified class that exist in the scene.


This new method prints in the Listener all installed macroscripts including ID, name, category and source path.

Value Common Properties, Operators, and Methods

New methods isMSCustAttrib(), isMSCustAttribClass(), isMSPlugin(), isMSPluginClass() for checking whether a value is a scripted plugin or custom attribute class or instance.


MAXWrapper Common Properties, Operators, and Methods

New method isValidObj returns true if the argument points to a MAXWrapper that has not been deleted.

New method getClassName returns the class name of the MAXWrapper as a string.

New optional explicitNames keyword added to the existing ExprForMaxObject method.

New immediateOnly keyword added to refs.dependents method. If true, only the immediate dependents of the specified object are returned.

New refs.dependencyLoopTest method added to the existing refs struct.

Indexed Access to Animatable Properties in 3ds Max Objects

New .name read-only property added to SubAnim class.

New optional asString keyword added to the existing getSubAnimName method.



New getSuperLevel method added.

Miscellaneous Functions


This new method returns the position of the 3ds Max window in relation to the upper left corner of the desktop.

Character Studio Extensions

MAXScript Extensions in character studio

Character Studio is now part of 3ds Max 7.

Mixer MAXScript Extensions

Added documentation of the Character Studio Motion Mixer properties and methods.

Biped Animation Manipulation and Clearing

Additional methods to clear animation in single body parts or whole bipeds.

Setting and Resetting Biped IK Keys

Additional methods related to IK access.

Biped Miscellaneous Methods

Additional general Biped-related methods.

Biped Load and Save

The Biped Load and Save function have been extended to specify objects and subAnim tracks to be loaded and saved.



See also

New in MAXScript