I've written an installer maxscript that hooks the Team Elemental importers in a safe manner (one that doesn't involve clobbering the DSTK startup.ms file) It uses the macroscript housekeeping calls I put into DSTK that manage Add-Ons. There are three steps to follow: First: Make sure you have the three importer maxscripts: gmax/gamepacks/SiegeMax/Scripts/ASPImport.ms gmax/gamepacks/SiegeMax/Scripts/PRSImport.ms gmax/gamepacks/SiegeMax/Scripts/SNOImport.ms You can find these files in the zip file located in the zip archive located at: http://www.the-elemental.net/downloads/files/SiegeMaxUpdate-1.3.zip NOTE: You only extract these three files from the archive. None of the other files in the archive are required. If you have installed this update at some point in the past you need to be sure that none of the other files exist on your system as they can cause the DSTK1.5 menus to fail to work properly. In particular, make sure that you remove: gmax/gamepacks/UI/SiegeMaxQuadMenus.mnu gmax/gamepacks/Startup/MenuButtons.ms Second: Make sure the gmax/gamepacks/SiegeMax/Scripts/startup.ms is the clean and unmodified DSTK1.5 original. If you are unsure, running the DSTK 1.5 installer a second time will overwrite all the files, including startup.ms, with the defaults. Third: Create a new file that will add the installer menus cleanly, this file must be located in your 'Add-Ons' directory: gmax/gamepacks/SiegeMax/Scripts/Add-Ons/InstallLanceImporter.ms Copy everything that follows between the 'CUT HERE' lines into this new InstallLanceImporter.ms file Once you've create this new Add-On, you will need to restart SiegeMax. After the restart you will have three new quad menu items, one for each importer. If you are planning to add a feature to the DSTK, I strongly encourage you to look at how I've hooked this importer. If you use this technique I can guarantee that we won't break your scripts when we ship the next update! Leave the startup.ms alone, and don't use .mnu files! ----- 8< -- 8< --- CUT HERE --- 8< -- 8< ------------------------------- ---------------------------------------------------- -- -- FILE: InstallLanceImporter.ms -- AUTH: biddle -- -- Copy this file into the folder: -- -- gmax/gamepacks/SiegeMax/Scripts/Add-Ons -- -- to access the importer menu items it defines -- ---------------------------------------------------- ---------------------------------------------------- PrepareCategoryForHousekeeping "Lance Import Tools" -- Interpret files that define the importer rollouts -- You need to get these importers from Team Elemental scriptdir = GetDir #scripts fileIn (scriptdir+"/SNOImport.ms") fileIn (scriptdir+"/PRSImport.ms") fileIn (scriptdir+"/ASPImport.ms") ---------------------------------------------------- MacroScript LaunchSNOImporter ButtonText:"SNO Import" Category:"Lance Import Tools" Tooltip:"Launch SNO Importer" ( On isVisible return true On isEnabled return true On execute Do ( try ( lanceImportSNO() ) catch() return true ) ) ---------------------------------------------------- MacroScript LaunchPRSImporter ButtonText:"PRS Import" Category:"Lance Import Tools" Tooltip:"Launch PRS Importer" ( On isVisible return true On isEnabled return true On execute Do ( try ( lanceImportPRS() ) catch() return true ) ) ---------------------------------------------------- MacroScript LaunchASPImporter ButtonText:"ASP Import" Category:"Lance Import Tools" Tooltip:"Launch ASP Importer" ( On isVisible return true On isEnabled return true On execute Do ( try ( lanceImportASP() ) catch() return true ) ) ---------------------------------------------------- fn ExtendQuadMenus = ( fn FindSubMenuItemsByName m searchname = ( for smi = 1 to m.numItems() do ( local sm = m.getItem smi local smt = sm.gettitle() if smt == searchname then ( return sm ) ) return undefined ) local dvq ,qm, mn, smi, nsm, nmi dvq = menuMan.findQuadMenu "Default Viewport Quad" -- Delete old quad menu items tied to our context (if they exist) qm= dvq.getMenu 4 -- menu 4 is the lower left quad mn= FindSubMenuItemsByName qm ("Context "+"Lance Import Tools") if (mn!= undefined) then qm.RemoveItem mn -- Now add in the new quad menu item mn = menuMan.createMenu ("Context "+"Lance Import Tools") -- Create a sub menu item, so that we can add it smi = menuMan.createSubMenuItem "" mn smi.setDisplayFlat true qm.AddItem smi -1 -- Add in a separators nmi = menuMan.createSeparatorItem() mn.AddItem nmi -1 -- Make a sub-menu that calls the three importer launchers nsm = menuMan.createMenu "Lance Import Tools" nsmi = menuMan.createSubMenuItem "" nsm -- Create a sub-sub menu items mn.AddItem nsmi -1 nmi = menuMan.createActionItem "LaunchASPImporter" "Lance Import Tools" nsm.AddItem nmi -1 nmi = menuMan.createActionItem "LaunchPRSImporter" "Lance Import Tools" nsm.AddItem nmi -1 nmi = menuMan.createActionItem "LaunchSNOImporter" "Lance Import Tools" nsm.AddItem nmi -1 ) ---------------------------------------------------- -- Run the quad menu extender we just defined... ExtendQuadMenus() ----- 8< -- 8< --- CUT HERE --- 8< -- 8< ---------------------------------