menuMan in 3ds Max 2025

I'm used to install some scripts directly in the Quad Menu but since max 2025 it seems like they've removed "menuMan" functionality, even it's page on the documentation it's gone (I was used to refeer to this: https://help.autodesk.com/view/MAXDEV/2024/ENU/?guid=GUID-258F6015-6B45-... )

Anyone else has encountred this problem or it's just me? And have anybody figured out how to access the quad menu via maxscript?

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
SimonBourgeois's picture

Hi

The menu system has been updated in 2025, you need to go to customize/Menu Editor then Quad tabs, you will find the available script by their category names, you have three columns "Action","Group" and "Category", you can sort the Category columns by clicking on "Category" then scroll til you find your script category then you drag it into the quad menu on the right as with previous 3dsmax version, same with Keyboard shortcuts (Customize/HotKey Editor)

Visuali Studio's picture

Hi Simon

This was clear to me, my concern is about the "menuMan" functionality via Maxscript that until version 2024 allowed to access and modify the menus. Now it is not clear how to add items to the menus via maxscript.

SimonBourgeois's picture

Hi,

Have you read this : https://help.autodesk.com/view/MAXDEV/2025/ENU/?guid=GUID-FF48D0EC-6669-... and https://help.autodesk.com/view/MAXDEV/2025/ENU/?guid=GUID-FFE6591D-2FA7-...
The new system seems much more complicated, i've copied the provided example for the quad menu in script/startup folder and after rebooting i was able to access the new quad menu by control+shift+rightclick.
to get your own script loaded you need to edit line " menu.CreateAction (genGUID()) 647394 "MXS_Demo_Action_Item`Menu Demo Category"",
"MXS_Demo_Action_Item`Menu Demo Category" need to be replaced by "yourScriptName`yourScriptCategory"
I've made a simplified example:

function quadMenuCallback =
(
 
	local quadMenuMgr = callbacks.notificationParam() 
	local viewportContextId = "ac7c70f8-3f86-4ff5-a510-e4fd6a9c368e" 
	local viewportContext = quadMenuMgr.GetContextById viewportContextId
	local mxsQuad = viewportContext.CreateQuadMenu "7A021F1D-3AEC-4398-9C84-60E48EE81F83" "SimonScriptQuad"
	viewportContext.SetRightClickModifiers mxsQuad #shiftAndControlPressed
	local topRightMenu = mxsQuad.CreateMenu "2B5DCB81-E4D5-49B6-B693-2213E594B557" "SimonScriptQuad" #TopRight
	topRightMenu.CreateAction (genGUID()) 647394 "ImportAI`SimonScripts"--replace "ImportAI" by your script name and "SimonScripts" by your script category
)
callbacks.removeScripts id:#quadMenuDemo
callbacks.addScript #cuiRegisterQuadMenus quadMenuCallback id:#quadMenuDemo

Note that the script need to be launch at 3dsmax start up so copy it to Autodesk\3ds Max 2025\scripts\Startup, and the called script (your own script macro) must be installed.
This script will add a new quad menu accessible with Ctrl+Shift+right click, i still have to figure out how to add item to existing quad menu...
Also it would be better to generate an ID and use it instead of generatring an ID each time (with genGUID()), use "print (genGUID())" to generate an ID and replace "genGUID()"with the result to always use the same ID.
you can also find additional info here:
https://forums.autodesk.com/t5/3ds-max-programming/poor-documenation-for...
and for main menus (not for quadmenus) here:
https://forums.autodesk.com/t5/3ds-max-programming/3ds-max-2025-the-menu...

Edit:
I've been able to add a script to the existing main viewport right click quad menu:

function quadMenuCallback =
(
	local quadMenuMgr = callbacks.notificationParam() 
	local viewportContextId = "ac7c70f8-3f86-4ff5-a510-e4fd6a9c368e" 
	local viewportContext = quadMenuMgr.GetContextById viewportContextId
 
	local mxsQuad = viewportContext.GetRightClickMenuByModifiers #nonePressed
 
	local topLeftMenu = mxsQuad.GetMenuByPos #TopLeft
	topLeftMenu.CreateAction (genGUID()) 647394 "ImportAI`SimonScripts"
	topLeftMenu.CreateSeparator (genGUID())
	topLeftMenu.CreateAction (genGUID()) 647394 "VrayToolBox`SimonScripts"
)
 
callbacks.removeScripts id:#quadMenuDemo
callbacks.addScript #cuiRegisterQuadMenus quadMenuCallback id:#quadMenuDemo

or an other one that also add to existing quad menu on different menu (top left and top right):

function quadMenuCallback =
(
	local quadMenuMgr = callbacks.notificationParam() 
	local viewportContextId = "ac7c70f8-3f86-4ff5-a510-e4fd6a9c368e" 
	local viewportContext = quadMenuMgr.GetContextById viewportContextId
 
	local mxsQuad = viewportContext.GetRightClickMenuByModifiers #nonePressed
 
	local topLeftMenu = mxsQuad.GetMenuByPos #TopLeft
	topLeftMenu.CreateAction "5D026A9A-3231-4CAB-BA11-F472A29B6B29" 647394 "ImportAI`SimonScripts"
	topLeftMenu.CreateSeparator "733EBD00-6DC9-4C16-8B50-04FF44DF0B13"
	topLeftMenu.CreateAction "EECFEC25-426C-47D1-BF73-BF39CBF78232" 647394 "VrayToolBox`SimonScripts"
 
	local topRightMenu = mxsQuad.GetMenuByPos #TopRight
	topRightMenu.CreateSeparator "F277045D-5366-4127-9482-2567584A945E"
	topRightMenu.CreateAction "93C83ECC-DBE0-43DD-BA34-BFC6F1901A36" 647394 "GroupIt_no_UI`SimonScripts"
	topRightMenu.CreateAction "F35FDDD6-C0BF-4271-A99E-731A02187E0D" 647394 "BaseObjSubLvl1`SimonScripts"
)
 
callbacks.removeScripts id:#quadMenuDemo
callbacks.addScript #cuiRegisterQuadMenus quadMenuCallback id:#quadMenuDemo

In this example i replace the genGUID() by actual ID (pré-generated with "print ( genGUID())").
If you need other menu (bottom left or bottom right) use #BottomRight or #BottomLeft, for additional info check here: https://help.autodesk.com/view/MAXDEV/2025/ENU/?guid=GUID-B815B3FC-6C5A-...

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.