Soulburnscripts For 3dsMax

Updated: March 24th 2021

SoulburnScripts Discontinued

The SoulburnScripts for 3dsmax have been discontinued as of March 24th 2021. Autodesk has made max 2022 their last piece of software you can buy, all future releases will be rental only, and I don't use rental only software. To read a more detailed explanation, please visit here: https://artofsoulburn.blogspot.com/2021/03/rip-soulburnscripts-for-3dsmax-time-has.html The scripts will remain on this page frozen in time, feel free to download them and continue to use them, but there won't be any more updates. Thank you for a wonderful 20 years, I appreciate all your support!

Introduction

The SoulburnScripts for 3dsmax is a collection of scripts that I've written for my personal artwork at home. Some of their concepts are based on scripts I wrote during my time at Blur Studio and released publicly as BlurScripts (however the SoulburnScripts have been completely rewritten from scratch, giving them more features and better functionality), others are totally new concepts. Thanks to the blur folk for giving me the inspiration to learn how to code.

Warnings

Feel free to install and use these scripts, however, I can't be held responsible for any problems that arise from their use. I will try and fix bugs or add features that people want, but I have limited free time and so can only promise to do my best. Thanks.

Installation

All the scripts come packaged into a single zip file of interconnected scripts, SoulburnScriptsPack_3dsMax_v0xx_Rxx.zip, which includes all the scripts in the rest of the table below. Please download the most recent zip file only, and extract them into your 3dsmax root directory, for example, c:\3dsmax. Make sure you have recurse sub directories on (it's also called "Use Folder Names" in more recent copies of winzip). You may need administrator privileges to install these scripts if running on Windows Vista or Windows 7. Windows should give you an error if you're not allowed to install the scripts, so if you don't get an error, then the scripts should be installed properly. If you do get an error, either contact your Administrator, or log on as Admin and then unzip the contents of the zipfile into a writable directory, then copy the contents into your 3dsmax root directory.

The zip will then install a bunch of files and directories (Max 2013 to Max 2019, this example using Windows 7)...
The zip will then install a bunch of files and directories (Max 9 to Max 2012, this example using Windows Vista)...
To uninstall the scripts, just delete all the files mentioned above. To install a new pack, just download the new zip and unzip them again into your 3dsmax directory, saying overwrite current files. Or to be safe, uninstall the old scripts first, then install the new pack. But overwiring the old pack should be fine.

Usage

All of these scripts are run as macroscripts, ie, as buttons, keyboard shortcuts, quad menus, etc, just go to Customize, Customize User Interface, category SoulburnScripts. The SoulburnScripts CANNOT be run by choosing the "MAXScript" menu and "Run Script" and then a script. You can also choose to run the macroscript called "soulburnScriptsLister" to run any SoulburnScript. All scripts can be run in one of three modes...
Make sure to choose the version of the script with a "UI" at the end of it's name when making a button, a quadmenu or keyboard shortcut if you want to run the UI version of the script.

For quick tutorials on how to use these scripts, click the "Help" button on the UI mode of any script.

Bugs

If you encounter any bugs running these scripts, perform the following checklist...

Name Date Description
SoulburnScriptsPack_3dsMax_v112_R2013toR2022.zip

03/24/21 The SoulburnScripts Pack For 3dsMax version 112, compatible with max 2013-2022
Updated Scripts: pipeMaker, modifierUtilities, objectPainter, materialMover
Extra Notes: Updated for Max 2022
SoulburnScriptsPack_3dsMax_v111_R2013toR2021.zip

04/09/20 The SoulburnScripts Pack For 3dsMax version 111, compatible with max 2013-2021
Updated Scripts: modelPreparer, vrayMatteManager
Extra Notes: Updated for Max 2021
SoulburnScriptsPack_3dsMax_v110_R2013toR2020.zip 04/25/19 The SoulburnScripts Pack For 3dsMax version 110, compatible with max 2013-2020
New Script: vrayMatteManager
Updated Scripts:
groupWithPoint, iDSetter, materialInfoDisplayer, modelPreparer, objectDropper, objectPainter, vertPlacer
Extra Notes: Updated for Max 2020
Old Script Packs


SoulburnScriptsPack_3dsMax_v088_R9toR2012.zip 12/14/14 An older pack that's compatible with 3dsmax 9 to 3dsmax 2012.
SoulburnScriptsPack_3dsMax_v047_R8.zip 03/07/09
An older pack that's compatible with 3dsmax 8.
Scripts (86 scripts total)


aligner

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.
alignViewportToFace

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.
blendedBoxMapManager

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 seams.
blendedCubeProjectionManager
Lets you change parameters to any Blended Cube Projection inside the material you currently have active or the objects you have selected.
calculatorLauncher

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.
cameraLensPackager

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.
cameraMapTemplateRenderer

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 hand.
circleArrayMaker
Similar to array, but always rotates your objects to make a complete circle.
curvatureMaker

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.
curvatureManager

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.
elementSelectByFace

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 face mode.
geometryBanger

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.
groupWithPoint

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 grouping.
iDSetter

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 order.
imagePlaneMaker

Creates a set of 2d image planes you can use to create a 3d model.
instanceFinder

Finds instances of the selected object and does various things to them such as selecting them, printing their names, isolating them, etc.
instanceTrimmer

Takes a selection and reduces the selection to include only a single instance from each set of instances.
layerCleaner

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).
materialMover

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.
mirrorObjectAlongAxis

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.
modelPreparer

Sets up your model to have materials applied to it from the Soulburn MaterialAssetPacks using SAL.
modifierUtilities

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.
nameManager

Lets you rename various things in your scene using a variety of functions.
nodeTypeDisplayer

Prints the Class or SuperClass of selected nodes.
objectAttacher

Takes your current selection and attaches the objects together. Works on geometry and splines.
objectDetacher

Takes selected objects (meshs, polys or splines) and seperates all their elements into seperate objects.
objectDropper

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.
objectReplacer

Replaces a selection of objects with a new object, or randomly from a set of objects.
objectSelectorByMaterial

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.
objectUniquefier

Takes any selected instanced / referenced geometry and makes it unique.
parameterManager

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.
parentSelector

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.
pipeMaker

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.
pivotPlacer

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.
polyCountSelector

Selects objects based on their facecount.
renderSizer

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 render size.
selectionRandomizer

Will randomly select objects based on a value provided.
snapShoter

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.
soulburnAssetLoader

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.
splineKnotManager

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.
splineManager

Lets you modify various controls for all selected splines.
splinePainter

This script lets you paint splines on the surface of another piece of geometry.
subdivisionAutomator

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)
texmapBaker

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.
thinFaceSelector

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 square.
transformRandomizer

Lets you translate, rotate and scale a group of objects or modifier gizmos by a random amount.
transformRemover

Resets the position, rotation and / or scale of the selected objects.
transformSelector
Lets you select objects based on their position, rotation or scale.
twoDPlanView

Creates an orthogonal 2D Plan view of your scene, perfect for creating 2d elements using max's tools.
uniqueObjectFinder

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.
uVAreaDisplayer

Prints the area of the currently selected UV faces.
uVFlattener

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.
uVFlattenMapper

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.
uVPlacer

Lets you modify the positions of selected uvs using a handy dialog box.
uVTransfer

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.
vertexAndEdgeConnector

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.
vertexEdgeFaceSelectByNormal

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 available.
vertexMapDisplayer
Toggles or turns on or off the vertex map viewport display for all scene or selected objects.
vertPlacer

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.
vertSelectionToObject

Places objects at the positions of the currently selected vertexes.
viewportControl

Lets you control the view you're currently seeing in the viewport in a handy dialog box.
viewportToVFBLoader

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.
vrayMatteManager
Allows you to turn on or turn off the shadow catching Matte properites of selected objects for vray.
vraySamplingSubdivManager
Allows you to adjust the Sampling Subdiv value for scene materials and lights all together, ensuring consistency.
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.
xFormResetter

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 properly.
powerSolidManager
Lets you modify the render and viewport approximation 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 reliably.

Scripts I use the most for my own work (for the curious): aligner, blendedCubeProjectionMaker, blendedCubeProjectionManager, cameraFromPerspView, cameraMapTemplateRenderer, curvatureMaker, curvatureManager, edgeDivider, modelPreparer, modifierUtilities, nameManager, objectAttacher, objectDetacher, objectReplacer, pivotPlacer, soulburnAssetLoader, soulburnScriptLister, subdivisionAutomator, subdivisionIterationManip, texmapPreview, transformRandomizer, uVFlattener, vertexAndEdgeConnector, vertPlacer, xFormResetter


This site is ©2023 by Neil Blevins, All rights are reserved.
NeilBlevins.com Twitter Mastodon Bluesky Instagram Blogger Facebook LinkedIn ArtStation Kickstarter Gumroad YouTube IMDB