Donations highly appreciated!

Below are scripts I wrote to be used with 3D Studio Max. Some tools I use extensively and fine very useful, while others are small tools which migth not fit most people's needs.

I haven't tested these out with all versions of Max but I try to note which versions I did test these on.

Feel free to use them - however - if you modify or distribute these - please maintain all proper credit.





Max File Version

This VB-compiled tool serves just to test which version of Max was used to create the saved Max file. Since 3DSMax doesn't do a good job at writing its version in the file's properties - I use this tool to find out what version it was created in so I can go back to the proper 3DSMax to edit the file.

If you have multiple versions of Max installed and want to know what version you used on an old project - use this tool to find out.

Tested on 3DSMax 2015 and below. Will not correctly show versions below 2008.



(with the help of Yoav Assa and Michael Levin)





Converts angle measurments between a 360 scale and 255 (8bit).

Used primarily for game engine calculations. Ubertool values range between -180 to 180. Calculations work both ways.


Tested on 3DSMax 7-2008.



Copies horizontal position of the biped onto the root object and links the biped to the root.

Two useful uses for this script:

  1. Use it to create a root for your biped (using the Static Root option) - so you can place your biped with animation anywhere in the scene without adding extra keyframes. Simply move the root instead of the biped itself.
  2. Some game engines require a moving root to calculate biped's position in the game environment space. With a moving root the biped itself actually stays in place and only the root moves.

(if the biped does not match the root's position - use the Fix Root button. The script is undoable in case things don't work out)


Tested on 3DSMax 7-2008.



Automatically or manually adds blinks to a blink morph-target.

Define your head that has a morpher modifier on it and name the morph-target's name of the blink. If you have a long animation you can add auto-blinks to your head. You can also add single blinks at the current time.


Tested on 3DSMax 7-2008.



Used to quickly switch between two given frames.

This is very useful if you want to compare two states between two frames (i.e. - character's pose on one frame and another). Simply press the Switch button continuously to switch between the two frames.


Tested on 3DSMax 7-2008.



Converts frames to milliseconds or milliseconds to frames.


Tested on 3DSMax 7-2008.



Cleans the history from selected objects (helps to reduce Max file size).

Sometimes objects retain unnecessary data during modelling - causing the file size to grow and slows down Max. This tool resets your models.


Tested on 3DSMax 7-2008.



Exports or imports morpher data to or from a morpher.

Useful for copying morpher information from one file to another or from one head to another.


Tested on 3DSMax 7-2008.



Place on your toolbar and toggle the button to view hierarchy links. Shows your links like a skeleton.


Tested on 3DSMax 7-2008.



Parses through folders and exports Max files to desired format.

(uses default exporter and settings as set by Max)


Tested on 3DSMax 7-2008.



Extracts all morph targets from a morpher, applying current changes from other morph targets.

Helpful use: Modify all your morph targets to have the same change. Create a new target with the change you want (say - having horns on a head) and add it to your main object at 100 percent on. Now use this tool and it will extract all your targets with the additional change. Now you can reload them all back to your main object with the change you wanted.


Tested on 3DSMax 7-2008.



This was used for a game engine that had specific needs on the placement of the morpher modifier in the stack.

Moves the Morpher modifier on all "Face_0" objects above and below Physique. Morphers should be above for export, and below for in-Max editing.


Tested on 3DSMax 7-2008.


Realtime Color Pick

Simple color picker window to interactively, in real-time, change the color of selected objects


Tested on 3DSMax 2008-2014.



Switches quickly between two selections (objects or sets).

Useful for any type of jumping back and forth between two objects - like in alignments.


Tested on 3DSMax 7-2008.



Imports subtitles code into vignettes.

This is a specific tool for a game engine that would place subtitles in the animation timeline. The subtitles don't show up in Max but used only for the export. Subtitles get imported into a Note Track.


Tested on 3DSMax 7-2008.


Tag n' Possess

Lists objects in the scene that are tagged and/or taggable, for export. Possess, DePossess, Tag, unTag, Add and delete Camera Cuts. Used specifically for the Ubertool game engine.


Tested on 3DSMax 7-2008.



Sets up time-ranges in Max and embeds it to the max file.

Very useful tool when you have multiple time-ranges in your single animation file. Mostly used for games - but can be used for many other purposes as well.

Sometimes it's useful to have many animations of a character in one file - so its start and end positions match between the different animations. TimeRanger lets you choose which section of the animation to show in the timeline.

Exporting to games often exports the viewed time-range only - so you can easily export multiple time-ranges using TimeRanger. Time ranges can overlap and you can have as many as you need.

  1. Edit button - You can edit the time ranges and set up your own view per time range (camera or viewport). View Editor below.
  2. Insert - place the TimeRange code into the file - so when the file opens TimeRanger pops up with the corresponding time ranges. After Inserting you need to save the file.
  3. Remove - removes the code form the file. Save to take affect.
  4. Load - closes the current TimeRange and loads up the currently embedded time-ranges that are saved in the file.
  5. Export - exports Time-Ranger as a new Maxscript with the new Time-Ranger list.

Time-Ranger Editor:

  1. Choose a Time Range. You can replace the chosen one, delete it, or add a new one after the selected one.
  2. Add a description to your Time-Range (i.e. - Walk)
  3. Start and End frames of your Time-Range.
  4. Desired viewport or camera.
  5. Add a new Time-Range
  6. Replace the currently selected Time-Range with the new name or frame numbers
  7. Delete the currently selected Time-Range
  8. Sort the list of Time-Ranger by frames.
  9. Apply changes and go back to the main window. Insert and Save the file for changes to occur.


Tested on 3DSMax 7-9. Partly on 2008-2011 - needs to be updated.



Create camera from viewport. Not really needed these days since Max has this option in its menus by now.


Tested on 3DSMax 5-2008.





Parses through a directory and converts all files to the desired framerate.

Tested on 3DSMax 7-9.


Multi AI Importer v1.1

Written for the purpose of importing multiple AI (Illustrator) files coming out of Photoshop along with corresponding JPG images as textures. The script imports all, or selected, ai files, converts to polys, applies UVW maps, points to corresponding texture map, and collapses if needed.

JPG textures should be named the same as the AI files to work correctly

Tested on 3DSMax 2008-2014.



Finds objects by name string in a directory of max files

Tested on 3DSMax 5-9.


Creates a hierarchy of bones where there's a hierarchy of objects.

(These days you can skin objects as bones - so this tool may not be needed any more - unless you need bones instead of objects)

Tested on 3DSMax 5-2008.


Selects every Nth number of a sub-object's component. Useful for random face selections.

(new Max modelling tools have similar selection by now)

Uses "EditMesh_24i.bmp". Place together with script.


Tested on 3DSMax 5-2008.



Download all MaxScripts:

Donations are appreciated!