I know a lot of 3dsMax users uses maxstart.max to set their default working environment. While that is certainly a convenient method. I haven’t used that for more than 10 years. Here is why.
- It replaces everything. It is a load/save. I can’t pick and choose what to set. For example, all the renderer settings are saved and loaded. If the renderer developer changes some default value for their new feature. Your maxstart.max from the older version will override all that settings.
- It is hard to know what you actually have set. There is no trace whatsoever what you have changed. If someone accidently changed settings and overwrote the file, there is no way to know until someone has an issue. This is actually the most important reason for me to switch to startup script.
- Obviously there are settings that aren’t stored in a max file.
- It is rare and probably ok now. But, back in the day, there was a bug that maxstart.max was loaded AFTER I already loaded a max file.
This is a sample startup template that you can use as a starter point. This include the #script and #userscripts folder setup that I posted in another post. Now I just throw this script in my “ADSK_3DSMAX_STARTUPSCRIPTS_ADDON_DIR” folder and good to go forever!
setdir #scripts @"D:\PROJECT\_maxDefault\scripts\" setdir #userscripts @"D:\PROJECT\_maxDefault\scripts\" -- system unit DisplayType = #Generic units.SystemType = #Inches units.SystemScale = 1 -- animation frameRate = 24 animationRange = interval 1 72 maxOps.autoKeyDefaultKeyOn = true maxOps.autoKeyDefaultKeyTime = 1 -- gamma IDisplayGamma.colorCorrectionMode = #gamma IDisplayGamma.affectMEdit = true IDisplayGamma.affectColorPickers = true displayGamma = 2.2 fileInGamma = 2.2 fileOutGamma = 2.2 -- renderer if vray == undefined then ( renderers.current = Arnold() ) else( renderers.current = VRay() ) -- autoback autosave.Enable = true autosave.NumberOfFiles = 20 autosave.Interval = 10.0 -- UI -- hide viewcube ViewCubeOps.Visibility = false -- hide Sign In qtmax = python.import "qtmax" (((qtmax.GetQMaxMainWindow()).menuBar()).children() as array)[2].close() -- Viewport -- Set all viewport background as solid actionMan.executeAction 0 "618" callbacks.removeScripts id:#startup4reset callbacks.addScript #systemPostReset filename:(getSourceFileName()) id:#startup4reset callbacks.removeScripts id:#startup4new callbacks.addScript #systemPostNew filename:(getSourceFileName()) id:#startup4new – To prevent “Do you want to savr?” dialog after fresh start setSaveRequired false format "startup script is loaded\n"