Every now and then, I stumbled upon an undocumented command or optional keyword. Some of them were later added to the documentation, many of them are still undocumented. Some of those are listed in this article (I'm skipping a lot of stuff I don't find useful like the non-creatable MEditBkgnd texture map, creatable PFlow related classes etc).

Box3 Values

Box3

getNodeBBox

Constructor

Box3 () Box3 < min_point3 > < max_point3 >

Properties

< Box3 > . min : < Box3 > . max : < Box3 > . center :

Methods

contains < Box3 > < point3 > intersects < Box3 > < Box3 > translate < Box3 > < point3 > scale < Box3 > < point3 > enlargeBy < Box3 > < float > rectify < Box3 > makeCube < Box3 > < point3 > < float > empty < Box3 > isEmpty < Box3 > getNodeBBox < node > getModContextBBox < node > < modifier >

Missing Render Dialog Variables

rendLockImageAspectRatio : rendImageAspectRatio : rendPixelAspectRatio : rendUseImgSeq : rendImgSeqType : rendViewID :

Multiplier Curve and Ease Curve Access

getMultiplierCurve < controller > < index > getEaseCurve < controller > < index >

High-precision Matrix Inverse

inverseHighPrecision < matrix3 >

Xref Scene Overlay

< XRefScene >. overlay Boolean

Primitive -> BodyObject Conversion

convertToBody < node > convertToJoinBodies < node > convertToBodyCutter < node >

Editable Poly Current CommandMode

< enum > < EditablePoly > . getCommandMode ()

Edit Poly Ready to Bridge

<EditablePoly>.ReadyToBridgeFlagged()

editPolyModReadyToBridge ()

Edit Poly Methods

< void > setVert < &bitArray > vertSet < &point3 > point node : < node > < void > getVertsUsingFace < &bitArray > vertSet < &bitArray > faceSet node : < node > < void > getVertsUsingEdge < &bitArray > vertSet < &bitArray > edgeSet node : < node > < void > getFacesUsingEdge < &bitArray > faceSet < &bitArray > edgeSet node : < node > < void > getEdgesUsingVert < &bitArray > edgeSet < &bitArray > vertSet node : < node > < void > getFacesUsingVert < &bitArray > faceSet < &bitArray > vertSet node : < node > < void > getElementsUsingFace < &bitArray > elementSet < &bitArray > faceSet < &bitArray > fenceSet node : < node > < point3 by value > GetFaceNormal < index > faceID node : < node > < point3 by value > GetFaceCenter < index > faceID node : < node > < float > GetFaceArea < index > faceID node : < node > < bitArray > GetOpenEdges node : < node > < integer > getVertexFlags < index > vertexID node : < node > < integer > getEdgeFlags < index > edgeID node : < node > < integer > getFaceFlags < index > faceID node : < node > < void > setVertexFlags < &bitArray > vertexSet < DWORD > flagsToSet flagMask : < DWORD > generateUndoRecord : < bool > node : < node > < void > setEdgeFlags < &bitArray > edgeSet < DWORD > flagsToSet flagMask : < DWORD > generateUndoRecord : < bool > node : < node > < void > setFaceFlags < &bitArray > faceSet < DWORD > flagsToSet flagMask : < DWORD > generateUndoRecord : < bool > node : < node > < bool > getVerticesByFlag < &bitArray > vertexSet < DWORD > flagsRequested flagMask : < DWORD > node : < node > < bool > getEdgesByFlag < &bitArray > edgeSet < DWORD > flagsRequested flagMask : < DWORD > node : < node > < bool > getFacesByFlag < &bitArray > faceSet < DWORD > flagsRequested flagMask : < DWORD > node : < node > < bool > SmGrpFloaterVisible () < void > SmGrpFloater () < bool > MatIDFloaterVisible () < void > MatIDFloater () < void > CommitPaintDeform () < void > CancelPaintDeform ()

Just like the documented Box2 class, only in 3D. Pretty handy, usingreturned by themethod is much more flexible than the min+max array that's usually used instead. Edit: now documented, see Box3 Values The following variables are missing from the Render Scene Dialog Global System Variables listing.Edit: now documented, see Controller Ease and Multiplier Curves Used for example by the CreateCameraFromView function.As mentioned by Eric Craft in the Undocumented MAXScript Features thread.Sphere, Torus, Cylinder etc. convert nicely, Teapot doesn't.See the corresponding method in the Edit Poly chapter.Similar to, only for Edit Poly modifier.A categorized index of some of these with descriptions and sample code is available on the IllusionCatalyst website . For sample usage and a wrapper in the style of polyop methods, see the polyModOp struct

There's also a method that's listed with no description:

< void > List node : < node >

It outputs the complete printout of the operations stored by the Edit Poly into the Macro Recorder window. To use it, open the MAXScript Listener window, make sure Macro Recorder is active, and with the Edit Poly modifier active in the stack run:

( modPanel . getCurrentObject ()). List ()

An example printout in the MacroRecorder window might look like this:

-- Describing all Edit Poly Operations: subobjectLevel = 2 $.modifiers[#Edit_Poly].SetSelection #Edge #{1, 5, 13, 20, 25, 29, 35, 40, 44, 50, 56, 59, 64, 70, 74, 77, 83, 88, 93, 96, 99, 104, 107, 110, 141, 145, 149, 152, 159, 163, 166..167} $.modifiers[#Edit_Poly].extrudeEdgeHeight = 1.8 $.modifiers[#Edit_Poly].extrudeEdgeWidth = 0.49 $.modifiers[#Edit_Poly].ButtonOp #ExtrudeEdge subobjectLevel = 2 $.modifiers[#Edit_Poly].SetSelection #Edge #{1, 5, 13, 20, 25, 29, 35, 40, 44, 50, 56, 59, 64, 70, 74, 77, 83, 88, 93, 96, 99, 104, 107, 110, 141, 145, 149, 152, 159, 163, 166..167} $.modifiers[#Edit_Poly].chamferEdgeAmount = 1 $.modifiers[#Edit_Poly].chamferEdgeOpen = off $.modifiers[#Edit_Poly].edgeChamferSegments = 1 $.modifiers[#Edit_Poly].edgeChamferTension = 0.5 $.modifiers[#Edit_Poly].edgeChamferInvert = off $.modifiers[#Edit_Poly].edgeChamferType = 0 $.modifiers[#Edit_Poly].edgeChamferSmooth = off $.modifiers[#Edit_Poly].edgeChamferSmoothType = 0 $.modifiers[#Edit_Poly].edgeChamferSmoothThreshold = 30 $.modifiers[#Edit_Poly].edgeChamferQuadIntersections = off $.modifiers[#Edit_Poly].ButtonOp #ChamferEdge subobjectLevel = 1 $.modifiers[#Edit_Poly].SetSelection #Vertex #{1, 3, 5, 7, 15, 22, 24, 26..28, 30, 33, 36, 39, 41..42, 45..46, 49..50, 53, 56, 60, 70, 77..78, 80..81, 84..85, 91, 94, 163..194} $.modifiers[#Edit_Poly].relaxAmount = 0.5 $.modifiers[#Edit_Poly].relaxIterations = 5 $.modifiers[#Edit_Poly].relaxHoldBoundaryPoints = off $.modifiers[#Edit_Poly].relaxHoldOuterPoints = off $.modifiers[#Edit_Poly].ButtonOp #Relax

MeshOp Methods

meshop . getNumVelocity < mesh > meshop . getVelocity < mesh > < vertex > meshop . deleteIsoMapVerts < mesh > < mapChannel >

MeshOps Methods

meshOps . clearAllSG < editable_mesh_node_or_modifier > meshOps . selectBySG < editable_mesh_node_or_modifier > meshOps . selectByColor < editable_mesh_node_or_modifier > meshOps . showNormal < editable_mesh_node_or_modifier > meshOps . autoSmooth < editable_mesh_node_or_modifier > meshOps . selectByID < editable_mesh_node_or_modifier > meshOps . attachList < editable_mesh_node_or_modifier >

PolyOp Methods

polyop . checkTriangulation < poly > polyop . makeVertsPlanar < poly > < vertlist >

PolyOps Methods

polyOps . startDivideFace < editable_poly_node > polyOps . makePlanar < editable_poly_node > polyOps . startCreateFace < editable_poly_node > polyOps . weld < editable_poly_node > polyOps . startCreateVertex < editable_poly_node > polyOps . resetPlane < editable_poly_node > polyOps . startWeldTarget < editable_poly_node > polyOps . autoSmooth < editable_poly_node > polyOps . break < editable_poly_node > polyOps . delete < editable_poly_node > polyOps . startCutEdge < editable_poly_node > polyOps . selectByID < editable_poly_node > polyOps . attachList < editable_poly_node > polyOps . startSlicePlane < editable_poly_node > polyOps . retriangulate < editable_poly_node > polyOps . cap < editable_poly_node > polyOps . startChamferEdge < editable_poly_node > polyOps . tessellate < editable_poly_node > polyOps . namedSelCopy < editable_poly_node > polyOps . startExtrudeFace < editable_poly_node > polyOps . removeIsolatedVerts < editable_poly_node > polyOps . hide < editable_poly_node > polyOps . startEditTri < editable_poly_node > polyOps . startExtrudeVertex < editable_poly_node > polyOps . gridAlign < editable_poly_node > polyOps . startDivideEdge < editable_poly_node > polyOps . createShapeFromEdges < editable_poly_node > polyOps . startCreateEdge < editable_poly_node > polyOps . slice < editable_poly_node > polyOps . clearAllSG < editable_poly_node > polyOps . collapse < editable_poly_node > polyOps . startCutFace < editable_poly_node > polyOps . selectBySG < editable_poly_node > polyOps . split < editable_poly_node > polyOps . startCutVertex < editable_poly_node > polyOps . flipNormal < editable_poly_node > polyOps . detach < editable_poly_node > polyOps . startBevel < editable_poly_node > polyOps . selectByColor < editable_poly_node > polyOps . update < editable_poly_node > polyOps . namedSelPaste < editable_poly_node > polyOps . startChamferVertex < editable_poly_node > polyOps . meshSmooth < editable_poly_node > polyOps . unhide < editable_poly_node > polyOps . startExtrudeEdge < editable_poly_node > polyOps . viewAlign < editable_poly_node >

SplineOps Missing Methods

splineOps . startCrossSection < editable_spline_or_line_node_or_modifier > splineOps . startIntersect < editable_spline_or_line_node_or_modifier >

GUID Generator

genGUID ()

ToolTip Customization

viewport . appendTooltip < tooltip_def > tipSystem . showTip < integer > elapsedTime < string > tipContent < float > xRatio < float > yRatio < HWND > hParent

Other Viewport Methods

viewport . getClipScale () viewport . setClipScale < float > scale

Display Manager

DisplayManager . IsEnabled ()

MaxOps Methods and Properties

< bool > maxOps . affectChildren < void > maxOps . activateSetKeyMode < void > onOff < matrix3 > maxOps . getTransformGizmoTM () < TSTR by value > maxOps . incrementFileName < TSTR by value > fileName versionSeparatorString :< TSTR by value =""> < TSTR by value > maxOps . incrementSceneFileName < TSTR by value > fileName < TSTR by value > maxOps . incrementImageFileName < TSTR by value > fileName < bool > maxOps . useCodePageSpecifiedInSceneFile < bool > maxOps . legacyFilesCanBeStoredUsingUTF8 < enum > maxOps . languageToUseForFileIO < void > maxOps . persistFileLanguageSettings ()

The Painter Interface Spline Constraint

< bool > thePainterInterface . useSplineConstraint < bool > thePainterInterface . setSplineConstraintNode < node > node < bool > thePainterInterface . isSplineConstraintNodeValid ()

SceneExplorerManager Methods

SceneExplorerManager . GetActiveExplorer () SceneExplorerManager . SetActiveExplorer < &TSTR > explorerName SceneExplorerManager . CreateLayerManager < &TSTR > explorerName SceneExplorerManager . IsDefaultLayer < RefTarget > layer

SimpleManipulator Flags

addGizmoMesh

ManipulatorGizmo::mGizmoSize

getGizmoSize/setGizmoSize

Missing and Deprecated colorMan Flags

# BackgroundOdd # BackgroundEven # Button # ButtonText # FocusBorder # UIBorder # ToolTipUIBackground # ToolTipUIText # ToolTipViewportBackground # ToolTipViewportText # PreviewHighlights # SelectionHighlights # AnimationKeyBrackets # ManipulatorsActive # ManipulatorsSelected # ManipulatorsInactive # ViewportGradientBackgroundTop # ViewportGradientBackgroundBottom # PressedHierarchyButton # ImageViewerBackground # TrackViewBackground # TrackViewInactiveBackground # TrackbarCacheLine # TrackbarCachedLine # AssemblyOutline # AdapDegActive # OutOfRangeLow # OutOfRangeHigh # iRenderProgHoriz # iRenderProgVert

# Background # Window # WindowText # Hilight # Shadow

Missing Callback Event Names

# filePostOpenProcessFinalized # filePostMergeProcessFinalized # preProjectFolderChange # postProjectFolderChange

Profiler Methods

getEnableProfiling () setEnableProfiling ()

Custom Attributes Version Handling

custAttributes . getSceneLoadVersionHandlingBehavior () custAttributes . setSceneLoadVersionHandlingBehavior < behavior_name > custAttributes . getSceneMergeVersionHandlingBehavior () custAttributes . setSceneMergeVersionHandlingBehavior < behavior_name >

behavior_name

# neverUpdate # alwaysUpdate # updateWhenLoadVersionGreaterThanCurrentVersion # updateWhenLoadVersionGreaterThanOrEqualToCurrentVersion

Schematic View Missing Methods

schematicView . numSchematicViews () schematicView . getSchematicViewName < int > index schematicView . open < string > name schematicView . zoomSelected < string > name schematicView . close < string > name

Assert Display Getter

getMaxAssertDisplay ()

Assert Equal for Point2 & Point4

assert_point2_equal < point2 > expected < expression > actual [ tolerance :< float >] [ message :< string >] assert_point4_equal < point4 > expected < expression > actual [ tolerance :< float >] [ message :< string >]

MxsUnitResults

< integer > MxsUnitResults . GetAssertFailCount () < integer > MxsUnitResults . GetExceptionCount () < integer > MxsUnitResults . GetMessageCount () < string > MxsUnitResults . GetAssertFailure < index > index < string > MxsUnitResults . GetExceptionFailure < index > index < string > MxsUnitResults . GetMessage < index > index < string > MxsUnitResults . GetUserData () < void > MxsUnitResults . Clear ()

TMCache Switch

preferences . enableTMCache = off

DontRepeatMessages Context

with dontRepeatMessages off ...

Convert to Integer

as integer

int < number >

IndirectRefTargContainer

IndirectRefTargContainer ..

NodeMonitor

nodeMonitor < node >

SnapshotAsMesh Optional RenderMesh Keyword

snapshotAsMesh < node > [ renderMesh :< boolean > ]

RenderPresets Optional loadNodes Argument

< boolean > renderPresets . Load < integer > which < filename > file < bitArray > categories [ loadNodes : < enum : {# Yes |# No |# Cancel |# Prompt } > ]

loadNodes

#Yes

#No

#Cancel

#Prompt

loadNodes

Optional Keyword Arguments for Cloned Objects

createInstance

copy obj transform:TM

copy < MAXWrapper_object > [ keyarg1 : v ] [ keyarg2 : v ] .. instance < MAXWrapper_object > [ keyarg1 : v ] [ keyarg2 : v ] .. reference < MAXWrapper_object > [ keyarg1 : v ] [ keyarg2 : v ] ..

CreateInstance Optional ForceCreate Argument

Runtime error: Not creatable

createInstance < MAXClass > forceCreate :< boolean = false > [ keyarg1 : v ] [ keyarg2 : v ] ...

Scripted SimpleSpline Plug-in

mesh

bezierShape

plugin simpleSpline ... on buildShape do < expr >

Similar Nodes

getSimilarNodes < node >

Current Selection Set Name

"Create Selection"

getCurNameSelSet ()

FromattedPrint String Type

's'

formattedPrint "string" format : "10s"

c/C

a/A

[−]0xh.hhhh p/P±dd

p

Display Filter

registerDisplayFilterCallback < filterFunction > < name > unregisterDisplayFilterCallback < filterFunction >

SkinOps Missing Arguments and Methods

skinOps . getVertexDQWeight < Skin > < vertexID > skinOps . setVertexDQWeight < Skin > < vertexID > < weight > skinOps . WeightTable < Skin >

Unwrap Globals

mapPath : uvChecker_mtl :

Network Render

isNetworkRenderServer ()

Is Undo Disabled

enableUndo

isUndoDisabled ()

TheHold Methods

theHold.Begin()

theHold . isUndoDisabled () theHold . getBeginDepth ()

Other Aliases

productAppID : playbackLoop :

Subscription

systemTools . isSubscription ()

Animatable Pointer

refs.getAddr

getAnimPointer < MAXWrapper_object >

ShowDialog

showDialog < rollout > < boolean >

Dialog Visibility

isChecked

<rollout>.inDialog

isDialogVisible < rollout >

Windows Struct Methods

windows . getParentHWND < IntegerPtr > hWnd

Numbered String

createNumberedFilename < name > < frameNr >

Biped Methods

< integer > biped . numCopies < collection_value > (# pose |# posture |# track ) < ICP_MXBipedCopy > biped . getCopy < collection_value > (# pose |# posture |# track ) < index > biped . deleteCopy < collection_value > (# pose |# posture |# track ) < index > biped . deleteAllCopies < collection_value > (# pose |# posture |# track )

Is Particle System

isParticleSystem < node >

Direct 3D Cache Allocation

setD3DMeshCacheSize < number >

< bool >< EditablePoly >. GetCache_SystemOn () < void >< EditablePoly >. SetCache_SystemOn < bool > on < bool >< EditablePoly >. GetCache_SuspendDXCache () < void >< EditablePoly >. SetCache_SuspendDXCache < bool > suspend < integer >< EditablePoly >. GetCache_Cutoff () < void >< EditablePoly >. SetCache_Cutoff < integer > count

Link Constraint Methods

Link_Control

LinkCtrl . getLinkCount < controller > LinkCtrl . getLinkTime < controller > < index > LinkCtrl . setLinkTime < controller > < index > < time > LinkCtrl . getLinkNode < controller > < index > LinkCtrl . setLinkNode < controller > < index > < node > LinkCtrl . addLink < controller > < node > < time > LinkCtrl . deleteLink < controller > < index >

Commiting/Reverting Temporary 'Set Key animation mode' Buffers

SetKey . commitBuffer < MAXWrapper_object > SetKey . bufferPresent < MAXWrapper_object > SetKey . revertBuffer < MAXWrapper_object > SetKey . subAnimRevertBuffer < MAXWrapper_object > < index > SetKey . subAnimCommitBuffer < MAXWrapper_object > < index > SetKey . subAnimBufferPresent < MAXWrapper_object > < index >

< bool > maxOps . allTracksCommitSetKeyBuffer () < void > maxOps . allTracksRevertSetKeyBuffer () < void > maxOps . allTracksSetKeyBufferPresent ()

Visual Leak Detector

VLD . Disable () VLD . Enable () VLD . Restore () VLD . ReportLeaks () VLD . RefreshModules () VLD . ResolveCallstacks () VLD . EnableModule < unused > VLD . DisableModule < unused > VLD . TestLeakMemory < int_amount >

Exchange Store Plugin Paths

pathConfig . getExchangeStorePlugInInstallPath < string > plugin

Templates and Workspaces

StartupTemplate . ShowUI () StartupTemplate . ShowNewSceneUI () StartupTemplate . GetAllNames () StartupTemplate . GetAvailWorkspaces () StartupTemplate . Activate < string > StartupTemplate . GetWorkspace < string > StartupTemplate . SetWorkspace < string > < string > StartupTemplate . GetScene < string > StartupTemplate . GetName < string > StartupTemplate . GetDescription < string > StartupTemplate . GetProjectFolder < string > StartupTemplate . GetThumbnail < string > StartupTemplate . SelectProjectFolder < string > StartupTemplate . SelectThumbnail < string > StartupTemplate . SelectScene < string > StartupTemplate . SetScene < string > < string > StartupTemplate . SetName < string > < string > StartupTemplate . SetDescription < string > < string > StartupTemplate . SetProjectFolder < string > < string > StartupTemplate . GetViewSettings < string > StartupTemplate . GetViewCubeConfig < string > StartupTemplate . GetRollupConfig < string > StartupTemplate . GetUIColorSettings < string > StartupTemplate . GetUserPaths < string > StartupTemplate . SnapshotViewSettings < string > StartupTemplate . SnapshotViewCubeConfig < string > StartupTemplate . SnapshotRollupConfig < string > StartupTemplate . SnapshotUIColorSettings < string > StartupTemplate . SnapshotUserPaths < string > StartupTemplate . Delete < string > StartupTemplate . Import < filename > StartupTemplate . Export < string > < filename > StartupTemplate . Load < filename > StartupTemplate . LoadAll < ??? > StartupTemplate . Save < string > < filename > StartupTemplate . SaveAll < ??? >

PolyB*

DISCLAIMER: All scripts and snippets are provided as is under Creative Commons Zero (public domain, no restrictions) license. The author and this blog cannot be held liable for any loss caused as a result of inaccuracy or error within these web pages. Use at your own risk.