Dups Instancer

95 votes
Date Updated: 
Author Name: 

Instance duplicate nodes, materials, texture maps, modifiers, controllers.

Dups Instancer

After series of boring coding similar tasks (instancing) I decide to find some major solution and end with this script. With Dups Instancer you can instance any kind of parametric nodes (such as geometry, shapes, lights, cameras, ...), any texture map or material, modifiers and controllers. The script look for exact similarity (all properties must be identical). Maybe in the next version (to-do list) I'll add dynamic menu where to build your own custom similarity filters.

Additional Info: 

Usage Notes:
Start as usual (MAXScript > Run Script). Select the type. Each type has its own pick button. After picking, if there is something to proceed, the main button will be enabled. The script not operate on references (only on unique objects), but its an easy to make one or multiple objects unique (without script) by right click over the mods stack and choose "Make Unique".

Keep in mind that not all objs, mods, mats, and so on are acceptable for MAXScript. Some of them are partial exposed, others quite inaccessible. To make the script more safety, it skip inaccessible, but operate on fully and partial exposed objs. Also, the instance procedure is not undoable (!) to make the script more stable. There is why I recommend to backup your scene before "pull the trigger".

When pick a material or texture map, I show in the video to use an Instance. There is nothing wrong to choose a Copy as well. The copy itself is temporal and 'live' until the dialog is still open, so, why to process one more copy for nothing, right?

Well, the base usage is shown in the video.
The YouTube's video is too blurred, but you can get better video copy from my web site.

Version Requirement: 
3ds max 2008 and higher (or [AVG] for 3ds Max 9 SP2)
Video URL: 
dupsinstancer.mse4.83 KB


Comment viewing options

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

Hi Adrian

The AVGuard is a free plugin extension for 3ds Max that add many new script functions to MaxScript for the older Max'es, you can find it here at ScriptSpot, just search for AVG ;-)

my recent MAXScripts RSS (archive here)

adriandw3's picture

working with 3ds Max 9

Hello Anubis

Thanks for the script

Can you explain what you mean by [AVG]

when you say:

(or [AVG] for 3ds Max 9 SP2)

I have tried with Max 9 (64bit) and received an error message
--Syntax error: at bad, expected
-- In line: -


A D Williams

Anubis's picture

I'm with Max 2009 and can't

I'm with Max 2009 and can't open the scene file.
Can you save it with Max 2009 or older version?
And send the file to my email: anubiss @ abv.bg

my recent MAXScripts RSS (archive here)

jinj's picture

anyway here is the file....

anyway here is the file.... the geometries in it are nurbs obj.

i also try to export from rhino as *.3ds but after importing the script is unable to istance none of them. while it's able to istance them as nurbs.
i'll appreciate a lot your help with this.
thank you

cuciture.rar 5.08 MB
jinj's picture

btw... i can post the

i can post the geometry that i need to istance in max.
let me know.

jinj's picture

Hi Anubis, thank you for your

Hi Anubis,

thank you for your interest.
i'm running max 2012.. and the behavior is still present. as i know most plugin must be partially rewrited for max 2012... so it can be possible that some script setting are skipped while istancing. or maybe it's related to the nurbs obj. i know most max user don't use nurbs.. most hate them :)

Anubis's picture

whats your Max version?

Ah, I see. I has network troubles last few days but now read more careful your comment, and looks like you end with instanced controllers, but that's not normal, never happens to me. Maybe its a specific Max version issue? If this still happens to you, you should do extra coding work to fix it:

1. backup transforms values (collect them to array)
2. use the script to instance your objects
3. make the controllers of the new instances unique
4. restore original transform (from the array)

If you need help on this, just let me know ;)

my recent MAXScripts RSS (archive here)

jinj's picture

heh... that's hard. i use

heh... that's hard.
i use your script to import from rhinocheros exported nurbs...
the imported nurbs loss all info.. also the istance one...
yor script works very well also on nurbs obj ;)

but what i meant is: take for example the seconds on a watch dials... they are all the same... only difference is their position... they are an polar array.

well if i pick one of the seconds as reference obj... all other 59 seconds.. will stai on the same position but rotated and oriented like the reference one.

Anubis's picture

Hi Jinj

In the meaning of instance you can't achieve that.
Search for some copy/paste transform scripts instead ;)

my recent MAXScripts RSS (archive here)

jinj's picture

the script is good! but i

the script is good!

but i have a problem.... how to avoid that the script reset the orientation of the obj in the scene? it apply the same pivot position to all.

is there a way to do that the script don't affect the position and orientations of the objs in the scene?

anyway thanks the script is great... i'm working with imported nurbs obj.

Comment viewing options

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