> For the complete documentation index, see [llms.txt](https://joonaspaakko.gitbook.io/batch-mockup-smart-object-replacement-jsx-photosho/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://joonaspaakko.gitbook.io/batch-mockup-smart-object-replacement-jsx-photosho/all-options.md).

# All options

### Settings script with all available options and their defaults

```javascript
#include "Batch Mockup Smart Object Replacement.jsx"

mockups([

  {
    output: {
      path: '$/_output',
      format: 'jpg',
      zeroPadding: true
      folders: false,
      filename: '@mockup - $',
    },
    mockupPath: '', 
    mockupNested: false, // If the above path leads to a folder
    input: '',    // If set, overrides smartObjects[].input, inputNested, and inputFormats. Every smart object picks files here sequentially.
    inputNested: false, 
    inputFormats: 'tiff?|gif|jpe?g|bmp|eps|svg|png|ai|psd|pdf',
    hideLayers: [],
    showLayers: [],
    noRepeats: false,
    smartObjects: [
      {
        target: '',
        nestedTarget: '',
        input: '',
        inputNested: false,
        inputFormats: 'tiff?|gif|jpe?g|bmp|eps|svg|png|ai|psd|pdf',
        align: 'center center',
        resize: 'fill',
        trimTransparency: true,
        inputPlaced_runScript: '',
        inputPlaced_runAction: [],
      },
      // {..},
    ]
  },
  
  // {..},
  
]);
```

***

| Option                                     | Description                                                                                                                                                                                                                                                                                                                                                                   |
| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| output.**path**                            | Output path is created automatically. Accepted prefixes: **`.`**, **`$`**— **`../`** can be used with the prefixes to traverse up in the folder structure. See [Paths and prefixes](/batch-mockup-smart-object-replacement-jsx-photosho/paths-and-prefixes.md) for more info.                                                                                                 |
| output.**format**                          | Formats: `jpg`, `png`, `tif`, `psd`, `pdf`                                                                                                                                                                                                                                                                                                                                    |
| output.**zeroPadding**                     | The padding is based on the amount of output images.                                                                                                                                                                                                                                                                                                                          |
| output.**folders**                         | Each mockup outputs into a subfolder inside the output path.                                                                                                                                                                                                                                                                                                                  |
| output.**filename**                        | Keywords: `@mockup` = mockup filename, `@input` = input filename. With multiple target smart objects the target with the most input files is used as the source.  `$` = incremental numbers. — You can customize this string basically however you want, like for example: `"My mockups - @mockup - @input - $"`. Beware of duplicate filenames.                              |
| **mockupPath**                             | <p>Path to the mockup psd. Accepted prefix: <strong><code>$</code></strong> See <a href="/pages/-MhXx8lTjs-OxyhEpX-w">Paths and prefixes</a> for more info.<br><br>If this path points to a folder rather than a PSD or PSB file, it will process all found mockup files with the same settings.</p>                                                                          |
| **mockupNested**                           | If your "mockupPath" points to a folder, this makes it search for PSD and PSB files from every nested folder.                                                                                                                                                                                                                                                                 |
| **input**                                  | This overrides the "input" setting in each smart object and instead sequentially distributes input files to the smart objects.                                                                                                                                                                                                                                                |
| **inputNested**                            | Normally the script looks for files in the input folders and no further, but with this setting enabled, it will look for image files from every single subfolder.                                                                                                                                                                                                             |
| **inputFormats**                           | Separate multiple formats with a vertical pipe. You shouldn't need to change this if you prep your input folders.                                                                                                                                                                                                                                                             |
| **hideLayers**                             | Array of strings with unique layer names. These layers are hidden before any replacements are made in the mockup.                                                                                                                                                                                                                                                             |
| **showLayers**                             | Array of strings with unique layer names. These layers are shown before any replacements are made in the mockup. Target smart object is always visible.                                                                                                                                                                                                                       |
| **noRepeats**                              | If a mockup has multiple smart object targets, the script makes sure each of them uses the same amount of input files by repeating the existing input files as many times as needed to match the target with the most files. See [noRepeats logic](/batch-mockup-smart-object-replacement-jsx-photosho/all-options/norepeats-logic.md) for more info.                         |
| **smartObjects**                           | Array of objects. Each object represents one smart object target in the mockup.                                                                                                                                                                                                                                                                                               |
| smartObjects\[].**target**                 | Unique smart object layer name.                                                                                                                                                                                                                                                                                                                                               |
| smartObjects\[].**nestedTarget**           | Is used to more accurately position input file inside a **`target`** smart object that has a lot of whitespace around it. More info [here](/batch-mockup-smart-object-replacement-jsx-photosho/information-counter-and-troubleshooting.md#fast-method).                                                                                                                       |
| smartObjects\[].**input**                  | Path to the input file folder. Use array of strings to set multiple input file paths; `["$/input-files/one/", "$/input-files/two/"] —` Accepted prefix: **`$`** and **`.`**— **`../`** can be used with the prefix to traverse up in the folder structure. See [Paths and prefixes](/batch-mockup-smart-object-replacement-jsx-photosho/paths-and-prefixes.md) for more info. |
| smartObjects\[].**inputNested**            | Normally the script looks for files in the input folders and no further, but with this setting enabled, it will look for image files from every single subfolder.                                                                                                                                                                                                             |
| smartObjects\[].**inputFormats**           | Separate multiple formats with a vertical pipe. You shouldn't need to change this if you prep your input folders.                                                                                                                                                                                                                                                             |
| smartObjects\[].**align**                  | **Logic:** 'x y'. **Values:** 'left top', 'left center', 'left bottom', 'right top', 'right center', 'right bottom', 'center top', 'center center', 'center bottom'                                                                                                                                                                                                           |
| smartObjects\[].**resize**                 | **Values:** false, 'fill', 'fit', 'xFill', 'yFill'                                                                                                                                                                                                                                                                                                                            |
| smartObjects\[].**trimTransparency**       | Set this to false if you want **resize** to include transparent whitespace. Read more [here](/batch-mockup-smart-object-replacement-jsx-photosho/information-counter-and-troubleshooting.md#precise-method).                                                                                                                                                                  |
| smartObjects\[].**inputPlaced\_runScript** | Trigger a script each time an input file is placed (still inside the smart object). You can use the scropt prefix: `$/Input placed script.jsx`                                                                                                                                                                                                                                |
| smartObjects\[].**inputPlaced\_runAction** | `['folder name', 'action name']` → `['Default Actions', 'Gradient Map']`                                                                                                                                                                                                                                                                                                      |

### Minimal settings script

This is the one I'd recommend you to use as a starting point. Use the one above as a reference only. It's easier to manage the settings script if you only include what you need.

```javascript
#include "Batch Mockup Smart Object Replacement.jsx"

var outputOpts = {
  path: '$/_output',
};

mockups([
  
  {
    output: outputOpts,
    mockupPath: '$/mockup/file.psd',
    smartObjects: [
      {
        target: 'smart object layer name',
        input: '$/input',
      },
      // {..},  comma separate multiple smartobjects 
    ]
  },
  // {..},  comma separate multiple mockups 
  
]);
```
