One-Step Copy & Relink (Bitmap Path Manager)
One-Step Copy & Relink is a workflow utility that consolidates two tedious texture-management tasks into a single operation. It scans your scene for all bitmap-based maps — standard BitmapTexture, VRayBitmap, and VRayHDRI — then copies the source files to a destination folder of your choice while simultaneously relinking the materials to a different target folder using a new file extension.
This is especially useful when you plan to batch-convert textures externally (for example, converting TIFFs or PNGs to JPGs in a separate tool). The script copies the originals to a working folder, but points your scene at the future location of the converted files, so once your external converter finishes, your materials are already correctly relinked — no second pass required.
Key features:
Handles standard Bitmaps, VRayBitmap, and VRayHDRI maps in one pass
Separate folders for the copy destination and the relink destination
Custom output extension (e.g., .jpg) applied to all relinked paths
Optional "Skip Existing Files" toggle to avoid overwriting previously copied textures
Deduplicates paths via a dictionary cache, so shared textures are only copied once
Performance optimized: silent mode, scene redraw disabled, and undo turned off during processing for fast execution on heavy scenes
Reports total maps updated, unique source files processed, and skipped files on completion
Typical workflow:
Pick a folder to copy the original textures into.
Pick the folder where the converted textures will eventually live.
Set the new extension (e.g., .jpg).
Click Process All Maps at Once.
Run your external converter on the copied files.
The result: a clean, portable texture set with correctly relinked materials, ready for archiving, handoff, or further processing.
Installation:
Save the script as a .ms file (e.g., OneStepCopyRelink.ms).
In 3ds Max, go to Scripting → Run Script... and select the file. The dialog will appear immediately.
(Optional) To make it permanent, drag the .ms file into a 3ds Max viewport — this opens the Customize User Interface dialog where you can assign it to a toolbar, menu, or hotkey under the category "Main UI" (or wherever MAXScript registers it). Alternatively, place the file in your ...\scripts\Startup\ folder to auto-load it on launch.
Usage Tips:
The Copy Destination is where the original textures get duplicated. The Relink Destination is where the script expects the converted files to live afterward — these can be the same folder if you're not changing extensions.
The Extension field rewrites only the extension portion of the filename. Enter it with or without the leading dot (e.g., jpg or .jpg both work).
Leave Skip Existing Files checked when re-running the script on a scene you've already processed — it prevents redundant disk copies.
The script is non-destructive to your original files: it only copies them. Your scene materials, however, are modified to point at the new paths, so save your scene under a new name first if you want a rollback option.
After running, launch your external image converter (IrfanView batch mode, ImageMagick, Photoshop droplets, etc.) and point it at the Copy Destination folder. Output the converted files into the Relink Destination folder using the extension you specified — your scene will pick them up automatically.
Notes / Limitations:
Only handles BitmapTexture, VRayBitmap, and VRayHDRI map types. Corona, Arnold, Redshift, and other third-party bitmap nodes are not currently supported.
The script disables scene redraw and undo during processing for performance — if you cancel or hit an error mid-run, the scene state is restored in the catch block, but you should still save before running on production scenes.
UDIM / tiled tag substitutions (, ) are preserved as-is in the path string but the script does not validate that the converted tile set actually exists.
