What's New in MAXScript in 3ds Max 2023 and Updates
This topic will give you a quick overview of the MAXScript language changes and improvements in 3ds Max 2023 and updates. For details on each feature, please follow the links to the respective documentation pages.
Note:
New in MAXScript in 3ds Max 2023.3 Update
Missing Items | Several previously missing methods in the SkinOps interface are now documented. |
Deprecated Items | The qat Interface is deprecated and has been removed. |
New in MAXScript in 3ds Max 2023.2 Update
Array Modifier | New Arraymodifier : Modifier MAXScript exposure |
Collapse Utility | The Collapse Utility functionality is now exposed in the new collapse interface. |
Previously Undocumented Items | Previously undocumented functions are now documented: setNumberThreads() , isWorldSpaceObject() The #all option for meshop.getverts() and meshop.getfaces() |
New in MAXScript in 3ds Max 2023.1 Update
SpaceWarp Objects Exposed Properties | Several missing properties on various SpaceWarp objects have been exposed: SpaceBend: .fromTo and .bendAxis SpaceNoise: .animate and .frequency SpaceSkew: .axis and .limit SpaceStretch: .axis and .limit SpaceTaper: .primaryAxis , .effectAxis , and .limit SpaceTwist: .axis and .limit |
Suppressing Scene Converter Warnings | New methods have been added to the SceneConverter Interface to register / de-register object types by class ID to prevent warnings when they are missing in converted scene files: AddSilentClassID() , ClearSilentClassIDs() and IsSilentClassID() . |
Material Library Previous Version Support | Methods that save material libraries now take an optional saveAsVersion:<integer> parameter to specify a previous version of 3ds Max that the library can be compatible with: saveTempMaterialLibrary() , saveMaterialLibrary() , sme.SaveMtlLib() , and sme.SaveMtlLibAs() . |
File loading and XRefs | The loadMaxFile() method takes a new skipXRefs:<boolean> parameter that allows you to disable xrefs on load to speed file loading. |
SVG Icon Support | You can now use SVG format icons for custom icons, both as individual .svg files and compiled into .rcc archives in Macro Scripts. |
New in MAXScript in 3ds Max 2023
Bake To Texture Common Map | You can now create scripted Bake To Texture Map plug-ins using the CommonBakeMap and CommonBakeMapOperator classes. |
Autobackup | Several new properties and methods have been added to the autosave interface to expose new features and improvements in autobackup: .prependSceneName , .finalCountdownInterval , .Compress , .tempDisable , <void>loadSettings() and <void>saveSettings() .The autobackup interval is now specified as an integer, which changes these properties from a float to an integer: autosave.interval , autobackup.time .The setSaveRequired() function takes a new keyword argument autobackupRequired:<boolean> , that indicates whether an autobackup operation is required. |
windows Struct |
The windows struct contains a new member, isWindowEnabled HWND , that returns true if the specified window is enabled (able to recieve mouse and keyboard inputs).The new getFocus() function returns the HWND of the window that currently has focus. |
Spline Reverse | A new optional keyword parameter keepFirstKnot:true|false has been added to the reverse() function for SplineShape, which preserves the location of the first knot in closed splines. |
Progress Bar | The progress bar progressUpdate() function takes a new keyword argument stepName that provides additional information to the user. The progressStart() function takes a new keyword argument allowCancel:<bool> that controls the display of the cancel button. |
pluginManager Interface | The pluginManager.pluginDllDirectory() function now returns just the directory path, not the full path including the plugin filename. |
Vertex and Face Access by Material ID | Both meshop and polyop now have functions to return an array of vertices or faces that match a specified material ID: meshop.getFacesByMatId() , meshop.getVertsByMatId() , polyop.getFacesByMatId() and polyop.getVertsByMatId() . |
File Attribute Access Improvements | Additional file attribute names have been added for external files, as well as new functions getFileAttributeNames() , getFileAttributes() , and isFileAttributeSettable() . |
OLE Automation | The register_OLE_bridge.ms script for setting up MAXScript OLE Automation is now shipped in the 3ds Max install scripts/OLEAutomation directory. |
glTF Export | The new GLTF_Export plugin and glTFMaterial classes expose the glTF export workflow to MAXScript. |
Snap Pivot | The SnapPivot interface exposes some of the functionality of the new Working Pivot improvements. |
Real-Time Exporter | The Real-Time Exporter dialog can now be closed using GameExporterHideDialog() |
SceneScriptSecurityManager | New functions on the SceneScriptSecurityManager Interface expose locked settings: AreSettingsLocked() , GetCauseOfLock() and IsSafeScriptAssetExecutionEnabled() . |
manip interface | Two new methods on the manip interface control the new manipulators display setting: getObjectManipulatorDisplayMode() and setObjectManipulatorDisplayMode() . |
File Saving | The new maxOps method isSavingToFile() returns true if 3ds Max is currently saving a file. |
Hide By Category | The hideByCategory struct has a new property, .nonrenderables , which controls the show/hide status for non-renderable objects. |
Previously undocumented items | The snippet argument for the createPreview() function is now documented. The viewportFilter interface introduced in 3ds Max 2022.3 Update is now documented. |
Deprecated | The ContainerPreferences.saveAsPreviousAccessType is deprecated, setting this property has no effect. With the deprecation of Quicktime, Combustion : TextureMap and Combustion.coordinates : MAXObject have been removed from MAXScript. |