User Guide Cancel

User Preferences - Automating Setup | Substance 3D Designer

  1. Home
  2. Getting started
    1. Getting started
    2. Activation and licenses
    3. System requirements
    4. Overview
      1. Overview
      2. What is a Substance 3D File?
    5. Workflow overview
    6. Shortcuts
    7. Tutorials & learning
  3. Interface
    1. Interface
    2. Home screen
    3. Customizing your workspace
    4. The main toolbar
    5. Preferences window
      1. Preferences window
      2. Project settings
      3. Version control
    6. Explorer window
      1. The Explorer window
      2. Send to... / Interoperability
    7. The graph view
      1. The graph view
      2. Link Creation Modes
    8. The Library
      1. The Library
      2. Managing custom content and filters
    9. Properties
    10. 2D view
    11. 3D View
      1. 3D View
      2. Material properties
      3. GLSLFX Shaders
      4. Switching your shaders to OpenGL Core Profile
      5. Iray
    12. Dependency Manager
  4. Resources
    1. Resources
    2. Importing, linking and new resources
    3. Bitmap resource
      1. Bitmap resource
      2. Bitmap painting tools
    4. Vector graphics (SVG) resource
      1. Vector graphics (SVG) resource
      2. Vector editing tools
    5. 3D scene resource
    6. AxF (Appearance eXchange Format)
    7. Font resource
    8. Warnings from dependencies
  5. Substance graphs
    1. Substance graphs
    2. Substance graph key concepts
    3. Creating a Substance graph
      1. Creating a Substance graph
      2. Graph instances / Sub-graphs
    4. Exposing a parameter
      1. Exposing a parameter
      2. Parameter presets
      3. Visible if: control visibility of inputs, outputs and parameters
    5. Graph parameters
    6. Inheritance in Substance graphs
    7. Output size
    8. Values in Substance graphs
    9. Publishing Substance 3D asset files (SBSAR)
    10. Exporting Bitmaps
    11. Exporting PSD files
    12. Sample Substance graphs
    13. Warnings in Substance graphs
    14. Nodes reference for Substance graphs
      1. Nodes reference for Substance graphs
      2. Atomic nodes
        1. Atomic nodes
        2. Bitmap
        3. Blend
          1. Blend
          2. Blending modes description
        4. Blur
        5. Channel Shuffle
        6. Curve
        7. Directional Blur
        8. Directional Warp
        9. Distance
        10. Emboss
        11. FX-Map
        12. Gradient (Dynamic)
        13. Gradient Map
        14. Grayscale Conversion
        15. HSL
        16. Levels
        17. Normal
        18. Pixel Processor
        19. SVG
        20. Sharpen
        21. Text
        22. Transformation 2D
        23. Uniform Color
        24. Value Processor
        25. Warp
        26. Output
        27. Input
      3. Node library
        1. Node library
        2. Texture Generators
          1. Texture Generators
          2. Noises
            1. Noises
            2. 3D Perlin Noise
            3. 3D Perlin Noise Fractal
            4. 3D Ridged Noise Fractal
            5. 3D Simplex Noise
            6. 3D Voronoi
            7. 3D Voronoi Fractal
            8. 3D Worley Noise
            9. Anisotropic Noise
            10. Blue Noise Fast
            11. BnW Spots 1
            12. BnW Spots 2
            13. BnW Spots 3
            14. Cells 1
            15. Cells 2
            16. Cells 3
            17. Cells 4
            18. Clouds 1
            19. Clouds 2
            20. Clouds 3
            21. Creased
            22. Crystal 1
            23. Crystal 2
            24. Directional Noise 1
            25. Directional Noise 2
            26. Directional Noise 3
            27. Directional Noise 4
            28. Directional Scratches
            29. Dirt 1
            30. Dirt 2
            31. Dirt 3
            32. Dirt 4
            33. Dirt 5
            34. Dirt Gradient
            35. Fluid
            36. Fractal Sum 1
            37. Fractal Sum 2
            38. Fractal Sum 3
            39. Fractal Sum 4
            40. Fractal Sum Base
            41. Fur 1
            42. Fur 2
            43. Fur 3
            44. Gaussian Noise
            45. Gaussian Spots 1
            46. Gaussian Spots 2
            47. Grunge Concrete
            48. Grunge Damas
            49. Grunge Galvanic Large
            50. Grunge Galvanic Small
            51. Grunge Leaks
            52. Grunge Leaky Paint
            53. Grunge Map 001
            54. Grunge Map 002
            55. Grunge Map 003
            56. Grunge Map 004
            57. Grunge Map 005
            58. Grunge Map 006
            59. Grunge Map 007
            60. Grunge Map 008
            61. Grunge Map 009
            62. Grunge Map 010
            63. Grunge Map 011
            64. Grunge Map 012
            65. Grunge Map 013
            66. Grunge Map 014
            67. Grunge Map 015
            68. Grunge Rough Dirty
            69. Grunge Rust Fine
            70. Grunge Scratches Dirty
            71. Grunge Scratches Fine
            72. Grunge Scratches Rough
            73. Grunge Shavings
            74. Grunge Splashes Dusty
            75. Grunge Spots
            76. Grunge Spots Dirty
            77. Liquid
            78. Messy Fibers 1
            79. Messy Fibers 2
            80. Messy Fibers 3
            81. Microscope View
            82. Moisture Noise
            83. Perlin Noise
            84. Plasma
            85. Caustics
            86. Voronoi
            87. Voronoi Fractal
            88. Waveform 1
            89. White Noise
            90. White Noise Fast
          3. Patterns
            1. Patterns
            2. 3D Linear Gradient
            3. 3D Volume Mask
            4. Alveolus
            5. Arc Pavement
            6. Brick 1
            7. Brick 2
            8. Brick Generator
            9. Checker 1
            10. Cube 3D
            11. Cube 3D GBuffers
            12. Fibers 1
            13. Fibers 2
            14. Gaussian 1
            15. Gaussian 2
            16. Gradient Axial
            17. Gradient Axial Reflected
            18. Gradient Circular
            19. Gradient Linear 1
            20. Gradient Linear 2
            21. Gradient Linear 3
            22. Gradient Radial
            23. Height Extrude
            24. Mesh 1
            25. Mesh 2
            26. Panorama Shape
            27. Polygon 1
            28. Polygon 2
            29. Scratches Generator
            30. Shape
            31. Shape Extrude
            32. Shape Mapper
            33. Shape Splatter
            34. Shape Splatter Blend
            35. Shape Splatter Data Extract
            36. Shape Splatter to Mask
            37. Splatter
            38. Splatter Circular
            39. Star
            40. Starburst
            41. Stripes
            42. Tile Generator
            43. Tile Random
            44. Tile Random 2
            45. Tile Sampler
            46. Triangle Grid
            47. Weave 1
            48. Weave 2
            49. Weave Generator
        3. Filters
          1. Filters
          2. Adjustments
            1. Adjustments
            2. Auto Levels
            3. Channel Mixer
            4. Chrominance Extract
            5. Clamp
            6. Color Match
            7. Color To Mask
            8. Contrast/Luminosity
            9. Convert To Linear
            10. Convert to sRGB
            11. Grayscale Conversion Advanced
            12. Hald CLUT
            13. HDR Range Viewer
            14. Height Map Frequencies Mapper
            15. Highpass
            16. Histogram Range
            17. Histogram Scan
            18. Histogram Scan Non-Uniform
            19. Histogram Select
            20. Histogram Shift
            21. Invert
            22. Lighting Cancel High Frequencies
            23. Lighting Cancel Low Frequencies
            24. Luminance Highpass
            25. Min Max
            26. Pow
            27. Quantize
            28. Replace Color
            29. Replace Color Range
            30. Threshold
          3. Blending
            1. Blending
            2. Color (Blend Node)
            3. Color Burn
            4. Color Dodge
            5. Difference
            6. Dissolve
            7. Linear Burn
            8. Luminosity (Blend Node)
            9. Multi Switch
            10. Switch
          4. Blurs
            1. Blurs
            2. Anisotropic Blur
            3. Blur HQ
            4. Non Uniform Blur
            5. Radial Blur
            6. Slope Blur
          5. Channels
            1. Channels
            2. RGBA Merge
            3. RGBA Split
            4. Alpha Merge
            5. Alpha Split
            6. Pre-Multiplied to Straight
            7. Straight to Pre-multiplied
          6. Effects
            1. Effects
            2. 3D Texture Position
            3. 3D Texture SDF
            4. 3D Texture Surface Render
            5. 3D Texture Volume Render
            6. Ambient Occlusion (HBAO) (Filter Node)
            7. Ambient Occlusion (RTAO)
            8. Bevel (Filter Node)
            9. Cross Section
            10. Curvature (Filter Node)
            11. Curvature Smooth
            12. Curvature Sobel
            13. Diffusion Color
            14. Diffusion Grayscale
            15. Diffusion UV
            16. Edge Detect
            17. Emboss With Gloss
            18. Extend Shape
            19. Flood Fill
            20. Flood Fill Mapper
            21. Flood Fill to BBox Size
            22. Flood Fill to Gradient
            23. Flood Fill to Grayscale/Color
            24. Flood Fill to Index
            25. Flood Fill to Position
            26. Flood Fill to Random Color
            27. Flood Fill to Random Grayscale
            28. FXAA
            29. Glow
            30. Mosaic
            31. Multi Directional Warp
            32. Non Uniform Directional Warp
            33. Reaction Diffusion Fast
            34. RT Irradiance
            35. RT Shadow
            36. Shadows (Filter Node)
            37. Shape Drop Shadow
            38. Shape Glow
            39. Shape Stroke
            40. Summed Area Table
            41. Swirl
            42. Uber Emboss
            43. Vector Morph
            44. Vector Warp
          7. Normal Map
            1. Normal Map
            2. Bent Normal
            3. Facing Normal
            4. Height Normal Blender
            5. Height to Normal World Units
            6. Normal Blend
            7. Normal Combine
            8. Normal Invert
            9. Normal Normalize
            10. Normal Sobel
            11. Normal to Height
            12. Normal To Height HQ
            13. Normal Transform
            14. Normal Vector Rotation
          8. Tiling
            1. Tiling
            2. Make It Tile Patch
            3. Make It Tile Photo
          9. Transforms
            1. Transforms
            2. 3D Texture Offset
            3. Auto Crop
            4. Cartesian To Polar
            5. Clone (Filter Node)
            6. Mirror (Filter Node)
            7. Noise Upscale 1
            8. Noise Upscale 2
            9. Noise Upscale 3
            10. Non-Square Transform
            11. Non-Uniform Rotation
            12. Polar to Cartesian
            13. Quad Transform
            14. Safe Transform
            15. Skew
            16. Symmetry
            17. Symmetry Slice
            18. Trapezoid Transform
        4. Material Filters
          1. Material Filters
          2. 1-Click
            1. 1-Click
            2. Bitmap to Material Light
          3. Effects (Material)
            1. Effects (Material)
            2. Height Blend
            3. Material Height Blend
            4. Season Filter
            5. Snow Cover
            6. Water Level
          4. Transforms (Material)
            1. Transforms (Material)
            2. Material Transform
          5. Blending (Material)
            1. Blending (Material)
            2. Material Adjustment Blend
            3. Material Blend
            4. Material Color Blend
            5. Material Switch
            6. Multi-Material Blend
          6. PBR Utilities
            1. PBR Utilities
            2. BaseColor / Metallic / Roughness converter
            3. Base Material
            4. PBR Albedo Safe Color
            5. PBR BaseColor / Metallic Validate
            6. PBR Dielectric F0
            7. PBR Metal Reflectance
            8. PBR Render
            9. PBR Render Mapping
          7. Scan Processing
            1. Scan Processing
            2. AO Cancellation
            3. Atlas Scatter
            4. Atlas Splitter
            5. Clone Patch
            6. Color Equalizer
            7. Crop
            8. Material Clone Patch
            9. Material Crop
            10. Multi-Angle to Albedo
            11. Multi-Angle to Normal
            12. Multi Clone Patch
            13. Multi Color Equalizer
            14. Multi Crop
            15. Smart Auto Tile
        5. Mesh Based Generators
          1. Mesh Based Generators
          2. Mask Generators
            1. Mask Generators
            2. Bottom To Top
            3. Cloth Wear
            4. Dirt
            5. Dripping Rust
            6. Dust
            7. Edge Blur
            8. Edge Damages
            9. Edge Dirt
            10. Edge Notch
            11. Edge Select
            12. Edge Speckle
            13. Edge Wear
            14. Fiber Glass Edge Wear
            15. Grease
            16. Ground Dirt
            17. Leaks
            18. Leather Wear
            19. Light
            20. Mask Builder
            21. Metal Edge Wear
            22. Paint Wear
            23. Selective Dirt
            24. Sun Bleach
            25. Surface Brush
          3. Weathering
            1. Weathering
            2. Cracks Weathering
            3. Fabric Weathering
            4. Leather Weathering
            5. Metal Weathering
            6. Moss Weathering
            7. Rock Weathering
            8. Rust Weathering
          4. Utilities (Mesh Based Generators)
            1. Utilities (Mesh Based Generators)
            2. 3D Planar Projection
            3. Material Mesh Data Blender
            4. Material Selector
            5. Mesh Data Combiner
            6. Tri Planar
        6. 3D View (Library)
          1. 3D View (Library)
          2. HDRI Tools
            1. HDRI Tools
            2. Blackbody
            3. Color Temperature Adjustment
            4. Exposure
            5. Exposure Preview
            6. HDR Merge
            7. Nadir Extract
            8. Nadir Patch
            9. Panorama 3D Position
            10. Panorama Rotation
            11. Gradient 2 Points
            12. Gradient Linear (HDRI)
            13. Line Light
            14. Physical Sun/Sky
            15. Plane Light
            16. Shape Light
            17. Sphere Light
            18. Straighten Horizon
      4. Graph items
  6. Substance function graphs
    1. Substance function graphs
    2. What is a Substance function graph?
    3. Create and edit a Substance function graph
    4. The Substance function graph
    5. Variables
      1. Variables
      2. System variables
      3. Get a variable value
      4. Create a variable
    6. FX-Maps
      1. FX-Maps
      2. How it works
      3. The Iterate Node
      4. The Quadrant Node
      5. Using Substance function graphs in FX-Maps
        1. Using Substance function graphs
          in FX-Maps
        2. Iterate and $number variable
        3. Using the Sampler nodes
        4. Using the Set/Sequence nodes
    7. Warnings in Substance function graphs
    8. Sample Substance function graphs
    9. Nodes reference for Substance function graphs
      1. Nodes reference for Substance function graphs
      2. Function Nodes Overview
      3. Constant Nodes
      4. Vector and Swizzle nodes
      5. Get Nodes
      6. Sampler nodes
      7. Cast nodes
      8. Operator nodes
      9. Logical nodes
      10. Comparison nodes
      11. Function nodes
      12. Control nodes
  7. MDL graphs
    1. MDL graphs
    2. Main MDL graph concepts
    3. Creating an MDL graph
    4. MDL library
    5. Exposing parameters in MDL graphs
    6. Substance graphs and MDL materials
    7. Exporting MDL content
    8. Warnings in MDL graphs
    9. MDL learning resources
  8. Bakers
    1. Bakers
    2. Bakers Legacy Interface
  9. Best Practices
    1. Best Practices
    2. Filesize Reduction Guidelines
    3. Graph Creation Etiquette
    4. Performance optimization guidelines
  10. Pipeline and Project Configuration
    1. Pipeline and Project Configuration
    2. Project Configuration Files - SBSPRJ
    3. Configuration List - SBSCFG
    4. User Preferences - Automating Setup
    5. Retrieving the installation path
    6. Installation via Command Line
    7. Environment variables
  11. Color Management
    1. Color Management
    2. Spot Colors (Pantone)
  12. Package Metadata
  13. Scripting
    1. Scripting
    2. Plugin basics
    3. Plugin search paths
    4. Plugins packages
    5. Plugin Manager
    6. Python Editor
    7. Accessing graphs and selections
    8. Nodes and properties
    9. Undo and redo
    10. Application callbacks
    11. Creating user interface elements
    12. Adding actions to the Explorer toolbar
    13. Using color management
    14. Using spot colors
    15. Logging
    16. Using threads
    17. Debugging plugins using Visual Studio Code
    18. Porting previous plugins
    19. Packaging plugins
    20. Scripting API reference
  14. Technical issues
    1. Technical issues
    2. Warnings and errors
    3. Cannot create/load a project
    4. Application does not start
    5. Crash when rendering graphs
    6. Parameters not working as expected
    7. Incorrect image output
    8. 3D View issues
    9. User interface issues
  15. Release Notes
    1. Release Notes
    2. All Changes
    3. Version 12.4
    4. Version 12.3
    5. Version 12.2
    6. Version 12.1
    7. Version 11.3
    8. Version 11.2
    9. Version 2021.1 (11.1)
    10. Old versions
      1. Old Versions
      2. Version 2020.2 (10.2)
      3. Version 2020.1 (10.1)
      4. Version 2019.3 (9.3)
      5. Version 2019.2 (9.2)
      6. Version 2019.1 (9.1)

User Preferences - Automating Setup

The user_preferences.xml file contains all user-specific settings outside of the ones defined in a Project Configuration. These mainly relate to specific UI and performance settings.

The only relevant setting to change is the Configuration File that contains a list of projects. This can be done in a few ways, as listed below.

Alternatively, you can completely bypass modifying the User Preferences, and do a session-based override of the SBSCFG file by using a command-line argument on the Designer shortcut, see below.

XML file icon


Permanent or session-based

There are two different ways to configure Designer to use another configuration file than the default, both with advantages and disadvantages:

  • Permanently modifying user_preferences.xml
    This file is located in ~User\AppData\Local\Adobe\Adobe Substance 3D Designer for Windows. If you modify it, Designer will always use what is defined there, regardless of how, when or where you start it. Making changes requires modifying the XML again, both of which are described below, and tend to be a bit involved.
  • Temporarily setting the session through a command-line argument
    Designer can take a command-line argument on startup to override the SBSCFG file for that session (see below for how). It's a simple, elegant solution, and allows for switching projects in a much quicker way than through modifying an XML. The danger is that if you open through multiple shortcuts (for example Start Menu and Desktop on Windows), you can have different results without it being entirely obvious. On top of that, it's not as tamper-proof, as users can delete, move or modify their shortcuts much easier than their user_preferences.xml. 

XML modification

Manually modifying preferences

If there is no automated setup, or for testing purposes, one can manually go to Edit > Preferences... and then click the "Projects" section on the left. 

Project settings

The button marked in red allows the user to choose a different SBSCFG file.

Modifying through script

Just like the Project and Configuration files, the user preferences is a structured XML, with the relevant setting clearly identifiable. Rather than modifying through a text editor like Notepad++ or Sublime Text, it is very well suited for modification through an external scripted setup.

The advantage of scripting is user don't have to do anything else than clicking a button, and if a sufficiently complicated system is created it's possible to manage and swap project easily without any need to manage files and settings manually.

The relevant line looks like this:

  <configuration> 
   <configurationfile>file:///C:/Users/John/AppData/Local/Adobe/Adobe Substance 3D Designer/default_configuration.sbscfg</configurationfile> 
  </configuration>

Python example

The following is a simple Python 2.7 example function for Windows that modifies the user_preferences.xml for another configuration file. This permanently alters the value until changed back. The function SetConfigurationFile can then be called with the path of your custom sbscfg file as a parameter.

A python script allows for powerful, clean code, and can be easily integrated elsewhere, but the downside is that for a user to run it, it needs to be compiled to an executable, or the user needs a Python deployment.

import xml.etree.ElementTree as ElementTree 
import os 
 
##Example Python script for changing Substance 3D Designer user preference file## 
 
def SetConfigurationFile(p_ConfigPath): 
    #Check is the path passed as parameter exists. 
    if(os.path.isfile(p_ConfigPath)): 
        # replace backslashes by forwardslahes to ensure consistency 
        p_ConfigPath = p_ConfigPath.replace("\", "/") 
        #get Local Appadata path from Environment variables, construct full path to user_preferences.xml and check if it exists. 
        m_AppDataPath = os.environ.get('LOCALAPPDATA') 
        if m_AppDataPath != None: 
            m_UserPrefsPath = os.path.join(m_AppDataPath, str("Adobe/Adobe Substance 3D Designer/user_preferences.xml")) 
            if(os.path.isfile(m_UserPrefsPath)): 
                #read XML elementtree from file, find correct element until we get to the actual line that defines the configurationfile path 
                m_PrefsTree = ElementTree.parse(m_UserPrefsPath) 
                m_PrefsRoot = m_PrefsTree.getroot() 
                m_PrefsElement = m_PrefsRoot.find("preferences") 
                m_XMLError = True 
                if(m_PrefsElement != None): 
                    m_ConfigElement = m_PrefsElement.find("configuration") 
                    if(m_ConfigElement != None): 
                        m_ConfigFileElement = m_ConfigElement.find("configurationfile") 
                        if(m_ConfigFileElement != None): 
                            m_XMLError = False 
                            #Check if path is already set, to avoid double work 
                            if m_ConfigFileElement.text.replace("file:///","") == p_ConfigPath: 
                                print "configurationfile is already set to desired path. Aborting." 
                                return True 
                            else: 
                                #construct correctly formatted path, insert into elementtree 
                                m_ConfigPath = str("file:///" + p_ConfigPath) 
                                m_ConfigFileElement.text = m_ConfigPath 
 
                                #Write to file 
                                m_XMLString = str("<?xml version="1.0" encoding="UTF-8"?>n") + ElementTree.tostring(m_PrefsRoot, 'utf-8') 
                                m_File = open(m_UserPrefsPath,'w') 
                                m_File.write(m_XMLString) 
                                m_File.close() 
                                print "configuration file path succesfully changed!" 
                                return True 
                if m_XMLError: 
                    #if this flag was not set to false, we can assume something was missing or went wrong when walking through the XML 
                    print("Error: malformed content in user_preferences.xml!") 
                    return False 
            else: 
                print "Error: user_preferences.xml does not exist, try starting Substance 3D Designer first!" 
                return False 
        else: 
            print "Error: LocalAppData path returned None" 
            return False 
    else: 
        print "Error: Invalid Configuration File path!" 
        return False

Command-line argument shortcut

In a much simpler way, Designer can be told to use a specific SBSCFG on startup through the "--config-file" (optional) argument.

Manual setup

While not recommended to use a manual method in a production environment, for testing purposes this can be done fairly quickly if you have setup your SBSCFG file already.

  1. Add a space

  2. Add --config-file after the path to designer in the Target section.

  3. Add another space

  4. Add your path, wrapped in quotation marks to avoid issues with spaces in your path

  5. The result should be like this:

    "C:\Program Files\Adobe\Adobe Substance 3D Designer\Adobe Substance 3D Designer.exe" --config-file "C:\Dev\Substance\custom_configuration.sbscfg"

Configuration file input in executable file properties

Adobe logo

Sign in to your account