Hi.
During years I work on 3ds Max, I have collected and written more scripts than I can organize and run easily. By time my UI filled up with some randomly named macros and unorganized toolbars.Then there were the version migrations, in that case I had to redefine that toolbars and macros in each version change. So I gave up using macros. Every time I needed to run a script, I had to look into my folders and try bunch of others before finding the right one. Then some where in this mess, a light bulb shined. I organized those hundred something scripts in to categories and created the first ancestor of the "TheDuck". With the introduction of Python 3.7 in 3ds max, that ancestor evolved to what we have here now. A toolbar that converts folders in to tabs and scripts into buttons. Any MAXScript in .ms or .mse format, or a Max Python code in .py format in your folders, will be rendered as a button in this functional toolbar. It is a handy tool to organize and run your regularly used scripts inside of 3ds MAX's ui. You can quickly navigate between your tabs, and run your scripts easily by pressing the button corresponding to that script. While tabs get their titles from folder names, buttons get their titles from script names. Then you can prepare some .txt files in which you can write your little help notes about a script, so that whenever you wait with your mouse on a button for a short period, you will get the contends of this .txt file as a quick reminder as a tooltip.
Caution!
Script now has two versions: v1_01_Py27 which runs on Python 2.7 on 3ds Max versions 2018 and newer, and 1_00_Py37 runs on python 3.7 on 3ds Max version 2021 and newer. I couldn't test the script on Max 2018 and 2019 but should run without any serious problems. If you buy it and test it on 2018 or 2019 please inform me about the result so I can remove this notification or fix the problem. If you don't have more than 20 scripts in your arsenal, you probably don't need the TheDuck.
Help:
Prepare your script folders as immediate children of a main folder. Your script folders will appear as tabs in the UI with the same title. Beware that any script in main folder, or in any sub-folder inside a primary child folder of the main will be ignored.
If you needed small help for remembering what your script file does, ".txt" documents can be prepared for every script file. These text files must have the same name with the script file they provide help about. unless there are some special characters in the .txt file, what you write inside will show up when you wait over your buttons. For example:
If folder 'FolderA' has a script named "ScriptA1.mse" (or .py or .ms), you should create a text document named "ScriptA1.txt", and write a few lines of explanation for the script.In these .txt files try to write as short lines instead of writing in a long single line.The TheDuck will recognize line breaks but does not have a word-wrap function. Keep in mind, using special characters like a quotation mark (") or backslash (\)or any Non-Unicode characters, is not advised both in script name and inside the .txt file. These special characters can break the main code that generates TheDuck toolbar. It is better if you avoid using them. If you get any errors upon pressing the "Install TheDuck", primary reason would be: there are some characters in one of your .txt files that installation script or the TheDuck can not handle. Creation of .txt files is not mandatory. They are there only for providing a short help for any corresponding button. TheDuck can run without them.
TheDuck closes the "Viewport Layout Tabs" toolbar. The toolbar's functions are kept in the "Viewports Tab" in the TheDuck. The reasons for replacement are to save space in the main UI and to prevent ugly vertical stacking of the two upon TheDuck's creation. In a need the "Viewport Layouts Tab" can be reopened with a right click on any toolbar.
TheDuck is not a dynamic script (yet). which means that it will not update according to any changes in your script folder. If there is a change in your folder or script names the TheDuck, an additional script, the TheDuck will not recognize the changed folders, scripts or new additions. In case of a removal of a script file, the corresponding button will simply give a message in the output of the MXS listener window, will not function. You have to reinstall TheDuck if there are changes in your script folder.
Known issues:
On v1.01_Py27 "Viewport Layouts Tab" fails to close on installation
Here is a quick video guide on installation of TheDuck.
Release Notes
Updated installer to a .mzp file.
The macro called "Restart TheDuckV2" under "Savas" category resets theDuckV2, so that any changes made in the folder are reflected on the tab bar. First you must assign it to a toolbar button or a shortcut to use it.
Though not tested, TheDuckV2_Py27 version of the script is for Max versions from 2018 up to (including) 2020.
Please inform me for any bugs of this version.
TheDuckV2_Py37 is for Max versions 2021 an up.
Cheers