Updated: Apr 7th 2018
you like to be notified the next time I add scripts to this page?
Join the SoulburnScripts Mailing List!
SoulburnScripts Pack For 3dsMax
version 108, compatible with max 2013-2019
Updated Scripts: instanceFinder, twoDPlanView
Extra Notes: Updated for Max 2019
SoulburnScripts Pack For 3dsMax
version 107, compatible with max 2013-2018
Updated Scripts: sLib, bitmapCollector, blendedBoxMapMaker, blendedCubeProjectionMaker, cameraMapTemplateRenderer, curvatureMaker, curvatureManager
SoulburnScripts Pack For 3dsMax
version 106, compatible with max 2013-2018
Updated Scripts: circleArrayMaker, pipeMaker
Extra Notes: Updated for Max 2018
|Old Script Packs
|SoulburnScriptsPack_3dsMax_v088_R9toR2012.zip||12/14/14||An older pack that's compatible with 3dsmax 9 to 3dsmax 2012.|
||An older pack that's compatible with 3dsmax 8.|
|Scripts (85 scripts total)
||Aligns one object to
another. Similar to the Align tool in max, but optimized to allow a
variety of aligns with the least number of mouse clicks necessary.
||Aligns the viewport to
the selected face.
|bitmapCollector||Collects all the scene
bitmaps and places them into a single directory, updating your scene to
point to their new home.
|blendedBoxMapMaker||Creates a Blended Box Map
for your selected objects. Basically, it's box mapping, but the edges
of the box are blended so you can place the map on a curved surface and
not have horrible seams.
||Lets you change
parameters to any Blended Box Map inside the material you currently
have active or the objects you have selected.
|blendedCubeProjectionMaker||Applies 6 projections
(Front, Back, Left, Right, Top, Bottom) to the selected objects, hooks
the projections up to 6 maps, and then blends between each map. Great
for projecting details onto a set of objects, like box mapping, but
each side can be a seperate map, and the edges of the box are blended
so you can place the map on a curved surface and not have horrible
|blendedCubeProjectionManager||Lets you change
parameters to any Blended Cube Projection inside the material you
currently have active or the objects you have selected.
||Launches the calculator.
Great for having quick access to the calculator from inside the max
interface, assign it to a hotkey.
|cameraFromPerspView||Changes an active perspective viewport into a camera viewport.|
||Lets you set the lenses
(Focal Length) on all scene or selected cameras based on 9 presets. The
supplied presets are for a Panavision C Series Anamorphic Lens Package,
but you can modify the presets to be your favorite values.
||Will render out templates
for all selected cameras or all cameras associated with a single
cameraMapGemini modifier. Automates the process so you're not stuck
rendering a lot of cameras and changing lots of render resolutions by
|circleArrayMaker||Similar to array, but
always rotates your objects to make a complete circle.
||Selects edges of a mesh
based on the angle between adjacent faces, and then converts them to a
vertex map. For example, you can select all the corner edges of a mesh
and then convert them to a vertex map for use with a bump map or a mask
to blend between textures.
||Lets you change
parameters of any Curvature Data Channel on your selected objects. Also
lets you propagate an existing curvature modifier to all selected
objects. So say you have 3 objects that have a curvature Data Channel
modifier and you add 2 objects to your model, propagating will copy and
paste that modifier to all 5 objects.
|customAttributeRemover||Delete all Custom
Attributes from selected or all scene objects.
|edgeDivider||Splits an Edge you select
in an Editable Poly into equal parts.
|edgeSelectByAngle||Selects edges of a mesh
based on the angle between adjacent faces. For example, you can select
all the edges of a mesh for chamfer by placing a value of 90.
||Once you've selected a
face of an Editable Poly, it will select the entire element the face is
associated with. Great for selecting elements without having to leave
||Chooses a % of vertexes
in an object and moves them around randomly. Good for adding subtle
bangs and bumps to your geometry. The advantage this has over say the
Noise modifier is it only affect some verts, which will give a more
realistic result. Object Size Compensation tries to bang smaller
objects less, and large objects more.
||Takes selected objects
and groups or ungroups them by linking them to a point helper instead
of using the max group method. Very similar to the way maya handles
||Takes all selected
objects and applies a material modifier, modifies their object ID, or
modifies their User Defined Properties to either a random ID between
the high and low value, or a sequential set of IDs based on selection
||Creates a set of 2d image
planes you can use to create a 3d model.
||Finds instances of the selected object and does various things to them such as selecting them, printing their names, isolating them, etc.|
||Takes a selection and
reduces the selection to include only a single instance from each set
||Deletes all empty layers
from your scene.
|materialFromSelectedObject||Gets the material from the currently selected object and places it in the material editor. If multiple objects are selected, chooses the material from the first selected object.|
|materialInfoDisplayer||Displays various pieces
of information regarding material properties of selected objects or the
active material (such as the name of the Material on the selected
object, the used MatIDs on the selected object, the map channels the
active material is currently using, etc).
||Lets you move materials
from one place to another. Some common uses: apply a flat grey material
(standard, Raytrace, Brazil, mentalray, etc) to all scene objects in
one button press. Clear out your material editor with blank materials.
Move all the scene materials into the material editor. Move all scene
materials to a matlib. Assign a random material from the material
editor to a set of scene objects.
|materialRemover||Removes the materials from the selected objects.|
|maxfileOldVersionSaver||Collects all of the max
files in a directory and its subdirectories and saves them as max files
for older versions of max.
||Mirrors the selected
object along the X, Y or Z world axis, with options for copy or
instance. Like the mirror tool, but lets you do some common mirror
operations with far fewer mouseclicks.
||Sets up your model to
have materials applied to it from the Soulburn MaterialAssetPacks using
||Lets you perform various
modifier related tasks on a set of selected objects. For example, takes
all the selected objects and adds / removes seperate instances of a
specific modifier. Or lets you find any objects in the current
selection that contains a specific modifier. Add modifiers to your
Favorites area for faster access.
||Lets you rename various
things in your scene using a variety of functions.
||Prints the Class or SuperClass of selected nodes.|
||Takes your current selection and attaches the objects together. Works on geometry and splines.|
||Takes selected objects
(meshs, polys or splines) and seperates all their elements into
||Lets you drop objects
onto another object. For example, will drop a bunch of rocks onto an
uneven ground surface.
|objectPainter||This script lets you
paint objects (geometry, splines, lights, helpers, etc) onto a piece of
geometry. Like for example, you can make 10 different rocks, and then
paint them in a random fashion onto a terrain.
||Replaces a selection of
objects with a new object, or randomly from a set of objects.
||Finds all objects that are assigned the currently active material in the medit and does various things to them such as selecting them, isolating them, etc.|
||Takes any selected instanced / referenced geometry and makes it unique.|
||Allows you to change
parameter values for all selected objects as a group. For example, you
can change the radius of a bunch of spheres together, even though
they're not instances of each other. Or you can change the bend value
for all selected objects that have a bend modifier.
||Selects any objects that
are not parented to anything. This is really useful if you want to
select all the top level parents in your scene or selection, maybe to
later link them to a master dummy object.
|pFlowRemover||Even after deleting a
PFlow Source object from your scene, you can sometimes end up with
cruft nodes that are invisible to you, but exist in your scene, and can
be viewed if you try and merge your current scene into a fresh scene.
This scene flushes all of those nodes out of the scene. Also includes
some tools for finding and printing out the nodes in case you need to
delete them by hand.
||Creates a big mess of
pipes. This script uses a lot of code from vidarn's "Pipe Dream" script
(www.creativetools.se), I've taken the basics of his script and rebuilt
it to do pipes that have more options on how dense the final geometry
is, the full volume the pipes inhabit, etc. Maybe you'll find my
changes useful too.
||Places the pivot of the selected objects in one of 27 spots such as center, bottom, top, high left side, etc. You can also align pivot to currently selected vert, edge or face.|
||Selects objects based on
||Sometimes when you render
you want to do a test render that's smaller. But changing the render
size means you then have to remember what the old size was and re-enter
it when you're done test rendering. This script allows you to render a
smaller test render size (by percentage) without modifying your final
||Will randomly select
objects based on a value provided.
||Like the snapshot
command, except turns your mesh to an editablePoly when done, and a
couple of other goodies, like selecting the newly created objects. Only
for unanimated objects, does not let you produce an object per frame
like the max tool.
|softSelectionControl||Toggles, or turns on or
off the soft selection tool for objects.
||A quick way to let you
merge various assets into your scene from a nice icon based interface
(including Environments that consist of lights and hdris, material
presets and individual models). I got the idea from looking at keyshot,
while keyshot is a nice piece of software, it's quite limiting when you
want to do something more complex (like adding rust on an object for
example.) But it's great at quickly swapping materials and rendering
them in a realistic environment. So hopefully this script can help you
achieve the speed but lets you to customize your materials and rigs
more than keyshot allows. Works with any 3dsmax renderer.
|soulburnScriptsLister||Lets you run any of the SoulburnScripts from a handy dropdownlist.|
||Takes all selected
splines and converts all their knots to a specific knot type such as
"Smooth", "Corner", "Bezier" or "Bezier Corner".
|splineKnotToObject||Takes all selected
splines and places a specified object at their knots.
||Lets you modify various
controls for all selected splines.
||This script lets you
paint splines on the surface of another piece of geometry.
||Quickly assigns a subdiv
modifier (meshsmooth or turbosmooth) to all scene or selected objects.
This is good if say you want to have all objects in your scene
converted into subdivs at rendertime without the need to constantly
select objects, find the right modifier, assign the modifier, etc.
|subdivisionIterationManip||Lets you increase or decrease the number of subdiv iterations for selected objects.|
|subdivisionManager||Lets you modify various subdivision controls on all selected objects (both polyobjects and meshsmooth modifiers)|
||Bakes any arbitrary map tree on a series of selected objects. So say you have a vertex color map running through a warp texture, and you want to use it as a bump. Well, vertex maps don't create proper bumps, so you bake the texture using this script, and then plug the resulting bitmap into the bump slot, and now because it's a baked texture map instead of procedural, the bump map will work properly. Or say you have a super complex diffuse map, you can bake part of the diffuse map network into a texture to speed render times up.|
|texmapPreview||Does a render of the currently selected texmap from the material editor on the objects that it's applied to in the scene. Think of it as something similar to the "Show Map In Viewport" function, except it works with all procedurals (Show Map In Viewport does not always produce correct results) and does a full render instead of doing the openGL viewport preview.|
||Finds and selects faces
that are really tall and thin. Good for finding thin faces in a complex
mesh, faces that may be best to subdivide to make all your faces more
||Lets you translate,
rotate and scale a group of objects or modifier gizmos by a random
||Resets the position,
rotation and / or scale of the selected objects.
|transformSelector||Lets you select objects
based on their position, rotation or scale.
||Creates an orthogonal 2D
Plan view of your scene, perfect for creating 2d elements using max's
||Finds objects in your selection that are unique, ie, that don't have any instances of themselves, and then does various things to them such as selecting them, printing their names, isolating them, etc.|
||Prints the area of the
currently selected UV faces.
||Lets you flatten a
selection of UVs, or in other words aligns all selected UVs
horizontally or vertically. The advantage of using this tool over the
one provided in the Unwrap UVW editor is you can choose to align the
UVs to the average, the min or the max.
||Applies Flatten Mapping
(also sometimes refered to as Automatic UVs), which is the same as the
Flatten Mapping in the UVWUnwrap modifier, but unlike that one, can be
applied to a selection of objects with each object using their own map,
or all the objects sharing a single map. Good for just getting some
sort of mapping on all scene objects in one button press, perhaps to
then send to a paint app or to bake a texture map.
||Lets you modify the
positions of selected uvs using a handy dialog box.
||Transfers uvs from one
object to the next. Useful if you have two identical meshes, but their
vertex order is messed up (like perhaps in the situation where you
exported the object to a seperate application for uving and that
application messed up the vertex order.) This script can transfer the
uvs from the new object to your original object in max, even if the
order is different.
||Performs a number of
Connect functionality in one script. For example, in vanilla max, you
can't assign the same hotkey to both connect an edge and connect a
vertex. You also can't have one hotkey that both connects in an
EditablePoly and an EditPoly. This script allows you to have one hotkey
to do all of that, and it detects what mode you're in to choose what
action to perform.
||Selects verts, edges or
faces of a Editable Poly based on an angle threshhold. This is
identical to the tool on the Modeling Ribbon, but now accessible as a
macroscript since the one in the ribbon didn't have a macroscript
|vertexMapDisplayer||Toggles or turns on or
off the vertex map viewport display for all scene or selected objects.
||Allows you to move the
vertexes in an object or the knots in a spline to a single value,
either the average of the current values, or a specific value. Good for
flattening out groups of vertexes.
||Places objects at the
positions of the currently selected vertexes.
||Lets you control the view
you're currently seeing in the viewport in a handy dialog box.
||Gets the currently active
viewport and loads it into the VFB. Most useful in Vray so you don't
have to do a render to set your render region. Originally written by
Dave Wortley (http://davewortley.wordpress.com/), I added limited
support for the scanline renderer and a number of extra options like
better resize quality and overriding the viewport draw mode.
|vraySamplingSubdivManager||Allows you to adjust the
Sampling Subdiv value for scene materials and lights all together,
|wireColorRandomizer||Changes the wirecolor of all selected objects to a random value.|
|wireMaker||Creates a number of wires
that travel through various target objects. Useful for making bundles
of wires for robots or other mechanical devices in a few simple clicks.
||Like the Reset Xform
utility, but with a number of improvements: 1) Works on hierarchies
without messing up the transformation, 2) Automatically flips the
normals of any object with negative scales, 3) Can either turn
instances to copies or references (like the Utility does), 4) Can
Collapse Mesh To Poly after reset
|Retired Scripts (9 scripts total)||Scripts
I have retired because max now has a similar feature, or it was a beta
script that I never finished.
|bitmapPagerManager||The Bitmap Pager controls
have been removed from the preferences of Max2010. This script gives
you some of that control back, especially the ability to turn it off,
which may speed up renders on 64bit OS's that have lots of RAM. These
functions don't seem to do anything anymore in modern versions of max.
|cameraMapGeminiRenderer||Will render out templates for all cameras associated with a single cameraMapGeminiRenderer modifier. Automates the process so you're not stuck rendering a lot of cameras and changing lots of render resolutions by hand. Replaced with cameraMapTemplateRenderer.|
|faceNormalDisplayer||Toggles, or turns on or
off the face normal display for objects. Worked incorrectly for too
many objects inside max.
|materialIDRandomizer||Takes all selected
objects and applies a material modifier to them with a random ID
between the high and low value. Replaced with iDRandomizer.
|pointTracker||Attaches a point to a
selected vertex and bakes out the position information. Never worked
|powerSolidManager||Lets you modify the
controls on all selected Powersolids objects. Powersolids no longer
exists for modern versions of max.
|selectionHighlighter||This script simulates the Selection Highlighting mode from Silo in max. The idea is if you hover over an object, the object is selected, if you hover over a vertex, it selects the vertex, if you hover over an edge, the edge is selected, etc. No need for extra mouseclicks. Autodesk has half added this feature, this script goes all the way to adding full silo style selection highlighting. Never worked reliably.|
|surfaceSnapper||This script allows you to
move one object along the surface of a second object. Great for placing
objects on a terrain. Replaced with Placement tool in max.
|uVWMappingCopier||Copies a UVWMapping
Modifier from one object to the current selected objects. This works in
world space (unlike the current method of copying the modifier in the
modifier stack) so you can get exactly the same uvwmapping modifier in
exactly the same worldspace position on all your objects. Never worked