Enrico Gullotti
earnest wonderer
earnest wonderer
General events detection
3ds Max fires a large quantity of events when changes happen or processes start or end. It's often difficult to know what's the exact type of callback an event will activate. The following functions help to recognize the specific event searched.
Add / Remove Callback Bell <void> addBell()
<void> remBell() Add and remove all the available callbacks to trace events. To find the right callback type, call addBell(), look event names and potential notification parameters in the listener, then call remBell() to stop monitoring events. The event name is preceded by an incrementing number to help readability.
3ds Max fires a large quantity of events when changes happen or processes start or end. It's often difficult to know what's the exact type of callback an event will activate. The following functions help to recognize the specific event searched.
Add / Remove Callback Bell <void> addBell()
<void> remBell() Add and remove all the available callbacks to trace events. To find the right callback type, call addBell(), look event names and potential notification parameters in the listener, then call remBell() to stop monitoring events. The event name is preceded by an incrementing number to help readability.
tollCount = 0 -------------------------------------------------------------------------------- function bellToll nType = ( with printAllElements on ( if (callbacks.notificationParam() == undefined) then format "% - %\n" tollCount nType else format "% - %, %\n" tollCount nType (callbacks.notificationParam()) ) tollCount += 1 ) -------------------------------------------------------------------------------- function addBell = ( callbacks.addScript #animateOff "bellToll #animateOff" id:#callBell callbacks.addScript #animateOn "bellToll #animateOn" id:#callBell callbacks.addScript #animationRangeChange "bellToll #animationRangeChange" id:#callBell callbacks.addScript #tabbedDialogCreated "bellToll #tabbedDialogCreated" id:#callBell callbacks.addScript #tabbedDialogDeleted "bellToll #tabbedDialogDeleted" id:#callBell callbacks.addScript #renderParamsChanged "bellToll #renderParamsChanged" id:#callBell callbacks.addScript #preRendererChange "bellToll #preRendererChange" id:#callBell callbacks.addScript #postRendererChange "bellToll #postRendererChange" id:#callBell callbacks.addScript #preRender "bellToll #preRender" id:#callBell callbacks.addScript #postRender "bellToll #postRender" id:#callBell callbacks.addScript #preRenderEval "bellToll #preRenderEval" id:#callBell callbacks.addScript #preRenderFrame "bellToll #preRenderFrame" id:#callBell callbacks.addScript #postRenderFrame "bellToll #postRenderFrame" id:#callBell callbacks.addScript #beginRenderingReflectRefractMap "bellToll #beginRenderingReflectRefractMap" id:#callBell callbacks.addScript #beginRenderingActualFrame "bellToll #beginRenderingActualFrame" id:#callBell callbacks.addScript #beginRenderingTonemappingImage "bellToll #beginRenderingTonemappingImage" id:#callBell callbacks.addScript #fileLinkPreAttach "bellToll #fileLinkPreAttach" id:#callBell callbacks.addScript #fileLinkPostAttach "bellToll #fileLinkPostAttach" id:#callBell callbacks.addScript #fileLinkPreBind "bellToll #fileLinkPreBind" id:#callBell callbacks.addScript #fileLinkPostBind "bellToll #fileLinkPostBind" id:#callBell callbacks.addScript #fileLinkPreDetatch "bellToll #fileLinkPreDetatch" id:#callBell callbacks.addScript #fileLinkPostDetatch "bellToll #fileLinkPostDetatch" id:#callBell callbacks.addScript #fileLinkPreReload "bellToll #fileLinkPreReload" id:#callBell callbacks.addScript #fileLinkPostReload "bellToll #fileLinkPostReload" id:#callBell callbacks.addScript #filelinkPostReloadPrePrune "bellToll #filelinkPostReloadPrePrune" id:#callBell callbacks.addScript #filePreOpen "bellToll #filePreOpen" id:#callBell callbacks.addScript #filePostOpen "bellToll #filePostOpen" id:#callBell callbacks.addScript #filePreOpenProcess "bellToll #filePreOpenProcess" id:#callBell callbacks.addScript #filePostOpenProcess "bellToll #filePostOpenProcess" id:#callBell callbacks.addScript #filePreSave "bellToll #filePreSave" id:#callBell callbacks.addScript #filePostSave "bellToll #filePostSave" id:#callBell callbacks.addScript #filePreSaveProcess "bellToll #filePreSaveProcess" id:#callBell callbacks.addScript #filePostSaveProcess "bellToll #filePostSaveProcess" id:#callBell callbacks.addScript #filePreSaveOld "bellToll #filePreSaveOld" id:#callBell callbacks.addScript #filePostSaveOld "bellToll #filePostSaveOld" id:#callBell callbacks.addScript #filePreMerge "bellToll #filePreMerge" id:#callBell callbacks.addScript #filePostMerge "bellToll #filePostMerge" id:#callBell callbacks.addScript #filePostMergeProcess "bellToll #filePostMergeProcess" id:#callBell callbacks.addScript #preImport "bellToll #preImport" id:#callBell callbacks.addScript #postImport "bellToll #postImport" id:#callBell callbacks.addScript #importFailed "bellToll #importFailed" id:#callBell callbacks.addScript #preExport "bellToll #preExport" id:#callBell callbacks.addScript #postExport "bellToll #postExport" id:#callBell callbacks.addScript #exportFailed "bellToll #exportFailed" id:#callBell callbacks.addScript #objectXrefPreMerge "bellToll #objectXrefPreMerge" id:#callBell callbacks.addScript #objectXrefPostMerge "bellToll #objectXrefPostMerge" id:#callBell callbacks.addScript #sceneXrefPreMerge "bellToll #sceneXrefPreMerge" id:#callBell callbacks.addScript #sceneXrefPostMerge "bellToll #sceneXrefPostMerge" id:#callBell callbacks.addScript #layerCreated "bellToll #layerCreated" id:#callBell callbacks.addScript #layerDeleted "bellToll #layerDeleted" id:#callBell callbacks.addScript #nodeLayerChanged "bellToll #nodeLayerChanged" id:#callBell callbacks.addScript #manipulateModeOn "bellToll #manipulateModeOn" id:#callBell callbacks.addScript #manipulateModeOff "bellToll #manipulateModeOff" id:#callBell callbacks.addScript #modPanelObjPreChange "bellToll #modPanelObjPreChange" id:#callBell callbacks.addScript #modPanelObjPostChange "bellToll #modPanelObjPostChange" id:#callBell callbacks.addScript #modPanelSelChanged "bellToll #modPanelSelChanged" id:#callBell callbacks.addScript #ModPanelSubObjectLevelChanged "bellToll #ModPanelSubObjectLevelChanged" id:#callBell callbacks.addScript #preModifierAdded "bellToll #preModifierAdded" id:#callBell callbacks.addScript #postModifierAdded "bellToll #postModifierAdded" id:#callBell callbacks.addScript #preModifierDeleted "bellToll #preModifierDeleted" id:#callBell callbacks.addScript #postModifierDeleted "bellToll #postModifierDeleted" id:#callBell callbacks.addScript #mtlLibPreOpen "bellToll #mtlLibPreOpen" id:#callBell callbacks.addScript #mtlLibPostOpen "bellToll #mtlLibPostOpen" id:#callBell callbacks.addScript #mtlLibPreSave "bellToll #mtlLibPreSave" id:#callBell callbacks.addScript #mtlLibPostSave "bellToll #mtlLibPostSave" id:#callBell callbacks.addScript #mtlLibPreMerge "bellToll #mtlLibPreMerge" id:#callBell callbacks.addScript #mtlLibPostMerge "bellToll #mtlLibPostMerge" id:#callBell callbacks.addScript #mtlRefAdded "bellToll #mtlRefAdded" id:#callBell callbacks.addScript #mtlRefDeleted "bellToll #mtlRefDeleted" id:#callBell callbacks.addScript #nodeCreated "bellToll #nodeCreated" id:#callBell callbacks.addScript #nodeCloned "bellToll #nodeCloned" id:#callBell callbacks.addScript #sceneNodeAdded "bellToll #sceneNodeAdded" id:#callBell callbacks.addScript #nodeFreeze "bellToll #nodeFreeze" id:#callBell callbacks.addScript #nodeUnfreeze "bellToll #nodeUnfreeze" id:#callBell callbacks.addScript #nodeHide "bellToll #nodeHide" id:#callBell callbacks.addScript #nodeUnhide "bellToll #nodeUnhide" id:#callBell callbacks.addScript #nodeLinked "bellToll #nodeLinked" id:#callBell callbacks.addScript #nodeUnlinked "bellToll #nodeUnlinked" id:#callBell callbacks.addScript #nodePreDelete "bellToll #nodePreDelete" id:#callBell callbacks.addScript #nodePostDelete "bellToll #nodePostDelete" id:#callBell callbacks.addScript #nodePreMaterial "bellToll #nodePreMaterial" id:#callBell callbacks.addScript #nodePostMaterial "bellToll #nodePostMaterial" id:#callBell callbacks.addScript #nodeRenamed "bellToll #nodeRenamed" id:#callBell callbacks.addScript #nodeNameSet "bellToll #nodeNameSet" id:#callBell callbacks.addScript #preNodeBonePropChanged "bellToll #preNodeBonePropChanged" id:#callBell callbacks.addScript #postNodeBonePropChanged "bellToll #postNodeBonePropChanged" id:#callBell callbacks.addScript #preNodeGeneralPropChanged "bellToll #preNodeGeneralPropChanged" id:#callBell callbacks.addScript #postNodeGeneralPropChanged "bellToll #postNodeGeneralPropChanged" id:#callBell callbacks.addScript #preNodeGiPropChanged "bellToll #preNodeGiPropChanged" id:#callBell callbacks.addScript #postNodeGiPropChanged "bellToll #postNodeGiPropChanged" id:#callBell callbacks.addScript #preNodeMentalrayPropChanged "bellToll #preNodeMentalrayPropChanged" id:#callBell callbacks.addScript #postNodeMentalrayPropChanged "bellToll #postNodeMentalrayPropChanged" id:#callBell callbacks.addScript #preNodesCloned "bellToll #preNodesCloned" id:#callBell callbacks.addScript #postNodesCloned "bellToll #postNodesCloned" id:#callBell callbacks.addScript #preNodeUserPropChanged "bellToll #preNodeUserPropChanged" id:#callBell callbacks.addScript #postNodeUserPropChanged "bellToll #postNodeUserPropChanged" id:#callBell callbacks.addScript #preMirrorNodes "bellToll #preMirrorNodes" id:#callBell callbacks.addScript #postMirrorNodes "bellToll #postMirrorNodes" id:#callBell callbacks.addScript #selectedNodesPreDelete "bellToll #selectedNodesPreDelete" id:#callBell callbacks.addScript #selectedNodesPostDelete "bellToll #selectedNodesPostDelete" id:#callBell callbacks.addScript #selectionSetChanged "bellToll #selectionSetChanged" id:#callBell callbacks.addScript #postSystemStartup "bellToll #postSystemStartup" id:#callBell callbacks.addScript #systemPreNew "bellToll #systemPreNew" id:#callBell callbacks.addScript #systemPostNew "bellToll #systemPostNew" id:#callBell callbacks.addScript #systemPreReset "bellToll #systemPreReset" id:#callBell callbacks.addScript #systemPostReset "bellToll #systemPostReset" id:#callBell callbacks.addScript #systemPreDirChange "bellToll #systemPreDirChange" id:#callBell callbacks.addScript #systemPostDirChange "bellToll #systemPostDirChange" id:#callBell callbacks.addScript #preSystemShutdown "bellToll #preSystemShutdown" id:#callBell callbacks.addScript #postSystemShutdown "bellToll #postSystemShutdown" id:#callBell callbacks.addScript #pluginLoaded "bellToll #pluginLoaded" id:#callBell callbacks.addScript #radiosityPluginChanged "bellToll #radiosityPluginChanged" id:#callBell callbacks.addScript #radiosityProcessDone "bellToll #radiosityProcessDone" id:#callBell callbacks.addScript #radiosityProcessReset "bellToll #radiosityProcessReset" id:#callBell callbacks.addScript #radiosityProcessStart "bellToll #radiosityProcessStart" id:#callBell callbacks.addScript #radiosityProcessStopped "bellToll #radiosityProcessStopped" id:#callBell callbacks.addScript #sceneUndo "bellToll #sceneUndo" id:#callBell callbacks.addScript #sceneRedo "bellToll #sceneRedo" id:#callBell callbacks.addScript #svSelectionSetChanged "bellToll #svSelectionSetChanged" id:#callBell callbacks.addScript #svDoubleClickGraphNode "bellToll #svDoubleClickGraphNode" id:#callBell callbacks.addScript #svPreLayoutChange "bellToll #svPreLayoutChange" id:#callBell callbacks.addScript #svPostLayoutChange "bellToll #svPostLayoutChange" id:#callBell callbacks.addScript #assetBrowserPreNavigate "bellToll #assetBrowserPreNavigate" id:#callBell callbacks.addScript #NamedSelSetCreated "bellToll #NamedSelSetCreated" id:#callBell callbacks.addScript #NamedSelSetDeleted "bellToll #NamedSelSetDeleted" id:#callBell callbacks.addScript #NamedSelSetRenamed "bellToll #NamedSelSetRenamed" id:#callBell callbacks.addScript #D3DPreDeviceReset "bellToll #D3DPreDeviceReset" id:#callBell callbacks.addScript #D3DPostDeviceReset "bellToll #D3DPostDeviceReset" id:#callBell callbacks.addScript #bitmapChanged "bellToll #bitmapChanged" id:#callBell callbacks.addScript #colorChanged "bellToll #colorChanged" id:#callBell callbacks.addScript #customDisplayFilterChanged "bellToll #customDisplayFilterChanged" id:#callBell callbacks.addScript #lightingUnitDisplaySystemChange "bellToll #lightingUnitDisplaySystemChange" id:#callBell callbacks.addScript #spacemodeChange "bellToll #spacemodeChange" id:#callBell callbacks.addScript #timeunitsChange "bellToll #timeunitsChange" id:#callBell callbacks.addScript #unitsChange "bellToll #unitsChange" id:#callBell callbacks.addScript #viewportChange "bellToll #viewportChange" id:#callBell callbacks.addScript #mainWindowEnabled "bellToll #mainWindowEnabled" id:#callBell callbacks.addScript #heightMenuChanged "bellToll #heightMenuChanged" id:#callBell callbacks.addScript #preProgress "bellToll #preProgress" id:#callBell callbacks.addScript #postProgress "bellToll #postProgress" id:#callBell ) -------------------------------------------------------------------------------- function remBell = ( callbacks.removeScripts id:#callBell )