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.
 New in MAXScript in 3ds Max 2023.3 Update
New in MAXScript in 3ds Max 2023.3 Update| Missing Items | Several previously missing methods in the SkinOpsinterface are now documented. | 
| Deprecated Items | The qatInterface is deprecated and has been removed. | 
 New in MAXScript in 3ds Max 2023.2 Update
New in MAXScript in 3ds Max 2023.2 Update| Array Modifier | New Arraymodifier : ModifierMAXScript exposure | 
| Collapse Utility | The Collapse Utility functionality is now exposed in the new collapseinterface. | 
| Previously Undocumented Items | Previously undocumented functions are now documented: setNumberThreads(),isWorldSpaceObject()The #alloption formeshop.getverts()andmeshop.getfaces() | 
 New in MAXScript in 3ds Max 2023.1 Update
New in MAXScript in 3ds Max 2023.1 Update| SpaceWarp Objects Exposed Properties | Several missing properties on various SpaceWarp objects have been exposed: SpaceBend: .fromToand.bendAxisSpaceNoise: .animateand.frequencySpaceSkew: .axisand.limitSpaceStretch: .axisand.limitSpaceTaper: .primaryAxis,.effectAxis, and.limitSpaceTwist: .axisand.limit | 
| Suppressing Scene Converter Warnings | New methods have been added to the SceneConverter Interfaceto register / de-register object types by class ID to prevent warnings when they are missing in converted scene files:AddSilentClassID(),ClearSilentClassIDs()andIsSilentClassID(). | 
| 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(), andsme.SaveMtlLibAs(). | 
| File loading and XRefs | The loadMaxFile()method takes a newskipXRefs:<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
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 CommonBakeMapandCommonBakeMapOperatorclasses. | 
| Autobackup | Several new properties and methods have been added to the autosaveinterface 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() functiontakes a new keyword argumentautobackupRequired:<boolean>, that indicates whether an autobackup operation is required. | 
| windowsStruct | The windowsstruct 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|falsehas been added to thereverse()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 argumentstepNamethat provides additional information to the user. TheprogressStart()function takes a new keyword argumentallowCancel:<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 meshopandpolyopnow have functions to return an array of vertices or faces that match a specified material ID:meshop.getFacesByMatId(),meshop.getVertsByMatId(),polyop.getFacesByMatId()andpolyop.getVertsByMatId(). | 
| File Attribute Access Improvements | Additional file attribute names have been added for external files, as well as new functions getFileAttributeNames(),getFileAttributes(), andisFileAttributeSettable(). | 
| OLE Automation | The register_OLE_bridge.msscript for setting up MAXScript OLE Automation is now shipped in the 3ds Max installscripts/OLEAutomationdirectory. | 
| glTF Export | The new GLTF_Export pluginandglTFMaterialclasses expose the glTF export workflow to MAXScript. | 
| Snap Pivot | The SnapPivotinterface 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()andIsSafeScriptAssetExecutionEnabled(). | 
| manip interface | Two new methods on the manipinterface control the new manipulators display setting:getObjectManipulatorDisplayMode()andsetObjectManipulatorDisplayMode(). | 
| File Saving | The new maxOpsmethodisSavingToFile()returns true if 3ds Max is currently saving a file. | 
| Hide By Category | The hideByCategorystruct has a new property,.nonrenderables, which controls the show/hide status for non-renderable objects. | 
| Previously undocumented items | The snippetargument for the createPreview() function is now documented.The viewportFilterinterface introduced in 3ds Max 2022.3 Update is now documented. | 
| Deprecated | The ContainerPreferences.saveAsPreviousAccessTypeis deprecated, setting this property has no effect.With the deprecation of Quicktime, Combustion : TextureMapandCombustion.coordinates : MAXObjecthave been removed from MAXScript. |