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.
Missing Items | Several previously missing methods in the SkinOps interface are now documented. |
Deprecated Items | The qat Interface is deprecated and has been removed. |
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() |
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. |
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. |