Slate Connector

2 votes
0.59 Alpha
Date Updated: 
Author Name: 
David Almeida


SlateConnector - Makes the everyday task of exposing nodes and adjusting material parameters easier and faster! New version (0.59a) with lots of impromevents!

Version 0.2 Alpha
This version has the following limitations:
- Currently only works on Corona Materials. In the next updates I intend to make it work with Standard material types and VRay Materials. No promises though ;)
- Has the most used (but not all) parameters and nodes in Max's Slate Material editor available. If you want me to make a specific parameter or node available on the script, just post on the comments below or on Scriptspot. You can also edit the script for yourself :)
- In order to change the material selection you have to close the script, make a new material selection and run the script again. This will change on the next version.

Version 0.59 Alpha
- New material selection method! Gone are the days of closing and opening the script in order to change your material's selection

- Node Instancing! Now you can instance nodes not only across materials but across material's parameters as well! Useful if you're using the same node, let's say, a bezier float, to control both the reflection and refraction of a material.

- Auto Renaming! Nothing is as easy as create a bunch of nodes named "Bezier Float" and quickly lose sight of what controls what. In version 0.59a the script automatically renames the nodes based on the parameter they control.

- Auto Filtering! This is a direct consequence of feature #2. When the Node Creation method is set to Instance, the script only offers the user the parameters which accept the selected node as input.

- Code Rewritten! Ok, this is not exactly a "feature", but the new code is smaller and easier to manage than the old one. Also it is open so anyone can dig into and learn how SlateConnector works. Not the prettiest code ever but it gets the job done ;)

- VRAY SUPPORT! Yay! Finally did it! Now VRay people can also enjoy SlateConnector!

- MENTALRAY SUPPORT! I just could not let you out of it, could I MR? Even with your awkward P4 nodes!

- SCANLINE SUPPORT! This renderer is still very useful today! As a matter of fact, there are renders made with it in early 2000's that still make my head spin (talkin' to your bolts, Marcelo Souza :P )

Version Requirement: 
Tested on 3dsMax 2014 but should work on 2013+
Video URL: 


Comment viewing options

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

Wich version of 3dsmax do we

Wich version of 3dsmax do we need to use this script ? I'm working in 3dsmax 2014 and it'seems I can't update the selected material boxe...the script keep saying "No material selected"

I open the slate, select some material and click on "update selection" in the script but there s no change...

Any idea ?

davius's picture

You're welcome :)

You're welcome :)

nerozak's picture

thank you :)

thank you :)

davius's picture

Hey! Thanks for the

Hey! Thanks for the suggestion DeadClown! I'm by no means a script expert so excuse my crude mistakes :D! Every bit of info that can help improve the script is hugely welcome! Will definitely look at your code up here and see if I can understand it to incorporate to the main script!

Again, huge thanks! I'm currently changing the way the script makes the selections - having to constantly close/open is a tad boring! If you have any other tips keep 'em coming!


DeadClown's picture

I only had a very quick view

I only had a very quick view on your script (people are currently discussing it in the Corona Forum ;) ) but I'd suggest to do things a little less hard-coded to be able to use all sorts of materials.

Try out the following code, could be written in a better way but maybe it helps a bit:

propStream = "" as stringstream
classToCheck = CoronaMtl 
showclass (classToCheck as string + ".*") to:propStream
propsOfClass = filterstring (propStream as string) "\n"
for propID = 2 to propsOfClass.count do(
	propElems = filterstring propsOfClass[propID] ":"
	propElems[1] = (filterstring (trimLeft propElems[1]) " ")[1]
	propElems[2] = trimLeft propElems[2]
	print (propElems as string)

It'll print out stuff like that:

"#(".colorDiffuse", "RGB color")"
"#(".colorReflect", "RGB color")"
"#(".colorRefract", "RGB color")"
"#(".colorOpacity", "RGB color")"
"#(".colorTranslucency", "RGB color")"
"#(".colorSelfIllum", "RGB color")"
"#(".levelDiffuse", "float")"
"#(".levelReflect", "float")"

Comment viewing options

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