Relink Bitmaps


Download Relink Bitmaps v2.10

Friends, head over to the Autodesk App Store and give me an honest review please.  If you do, send me your request code and your reviewer name for a free license.  Any review, positive or negative, is valid for this offer.

As featured in 3D World – August 2011

(Self-installing .mzp file, just run this script via:  “Maxscript->Run script”)

 Note: The file when downloaded should be “Relink Bitmaps v2.##.mzp” (NOT ZIP, IExplorer makes it a Zip file)
INSTALLATION:  In 3dsMax, goto MAXScript -> Run Script, and run the file you downloaded above “Relink Bitmaps v2.##.mzp


This tool is available to the community for free, but I kindly request if you see the value in time this tool saves you, that you donate whatever you can to help me pay off student loans.  Every donation helps immensely.  I do however understand that we’re all in this mess somehow and I understand if you aren’t able to donate at this time.  To donate simply click the “Donate!” button on the script.  I am suggesting $10 for an individual, but whatever you can spare will insure the future development of this script and updates.

Tested thoroughly with (32-bit and 64-bit):   Max 9-2017

2.10 Changelog

  • Added support for FStorm Render – Bitmaps/Lights/Proxies, thanks to Nikita Gushchin!
  • Fixed the “$directory not recognized” error
  • [NEW] Option to automatically search the Max scene directory

2.09 Changelog

    • CoronaBitmap / CoronaProxy / CoronaLight support added (this didn’t get added to 2.08 even though I meant it to).
    • Changed the functionality of the read-only browse (because I didn’t like how I did it last verison)
    • Fixed the stupid error with the “RemindMe=” bug that users experienced when they pressed “Remind Me in a week”
    • Octane render is still impossible for me to support at the moment, they handled filenames strangely.  Contact them if you want support added, my forum name on their forums is colinsenner.

2.08 Changelog

  • Corona Render Fully supported
  • Browse buttons are Read-only share friendly
  • Attempted to support Octane Render, but the way they are exposing their custom map types like Image_Texture are not in line with any other plugin I’ve seen, if you want Octane support, it’d be best to contact them on their forums or email directly to help me resolve the issue, they were unhelpful when I attempted to contact them to resolve this.  My forum name on Octane forums is colinsenner.


  • All 3dsmax supported Bitmap Texture types
  • (new) Relinks Mental Ray Proxy files
  • (new) Relinks VRay Proxies (.vrmesh)
  • (new) Relinks VRayHDRI files
  • (new) Relinks IES files (including VRayIES files)
  • (new) Automatically checks for script updates and new versions
  • 250% speed increase from previous versions
  • Command-line mode available for automating repetative tasks (see documentation below)
  • Configurable default user options saving button clicks and wasted time

Just a quick thank you to Christopher Grant at Scriptspot, and the users who have shared their time and ideas (and donations) to make this script better:   brittnell, hongxu, fajar and others!

As always, thank you for everything and be well,



[FIXED version 2.10]
 $directory not recognized:  errors

A: The problem is there’s a ‘$’ token in one of your paths.  Windows allows a directory to contain a ‘$’ token like this:   c:\3d\models\couch$\couch.max.  The problem is max doesn’t allow this because it’s a reserved keyword.  The quick fix is to open the Max Asset Tracking and remove all paths (“Strip Path”) for all directories with a ‘$’ in it.  I’ll fix this next update.

Q: Every time I open 3dsmax a message saying “Relink bitmaps is now installed….”.

A: To fix your problem though: search your max root folder for “” and delete it. That should fix everything.  This is because it wasn’t installed as an .mzp file.  The script file should be named “Relink Bitmaps v#.#.mzp”. Some browsers rename .mzp to .zip (annoyingly). If you in max do Maxscript->RunScript and pick the .mzp file, it’ll install everywhere correctly.



To reset the configuration .ini file in the Listener window (Maxscript->MAXScript Listener) type and hit [enter]:


To reset the position of the Relink Bitmap’s dialog window (in case it gets stuck off screen) type:


If you want to run the function ‘sceneRelinkBitmaps’ from your script you just need to detect if two .mse files are where they should be, run the following first, then you can call sceneRelinkBitmaps without the user opening Relink Bitmaps

if doesFileExist ((getDir #userScripts)+"\\Relink Bitmaps\\C_Lib.mse") and doesFileExist ((getDir #userScripts)+"\\Relink Bitmaps\\Relink_Lib.mse") and doesFileExist ((getDir #userScripts)+"\\Relink Bitmaps\\Relink Bitmaps.mse") then ( 
   fileIn ((getDir #userScripts)+"\\Relink Bitmaps\\C_Lib.mse") quiet:true 
   fileIn ((getDir #userScripts)+"\\Relink Bitmaps\\Relink_Lib.mse") quiet:true 
   fileIn ((getDir #userScripts)+"\\Relink Bitmaps\\Relink Bitmaps.mse") quiet:true 
) else (
   MessageBox "Relink Bitmaps files are not in the default installation path.  Try reinstalling."

Relink Bitmaps has the ability to run automatically via the command line, here is the syntax:

sceneRelinkBitmaps searchArr ignoreCase:true ignoreExtension:false recursive:true undoOn:true lowMemory:false allMaps:false
/* sceneRelinkBitmaps – Relinks bitmaps in the current scene
append to returnMissingBitmaps() function for adding more kinds of assets to relink
searchArr: an array of directories to search
ignoreCase: true or false
recursive: true of false
undoOn: true or false
lowMemory: true or false
progress: progressBar link to update progress */

/* sceneRelinkBitmaps – Relinks bitmaps in the current scene
searchArr: an array of directories to search, ie. #(“C:/maps”,”D:/maps”)
ignoreCase: true or false
ignoreExtension: true or false
recursive: true of false
undoOn: true or false
lowMemory: true or false
allMaps: true or false
progress: progressBar link to update progress, will update the .value in this while it relinks */

If you’re having problems with the script run it and in the listener type:

setDebugMode on

and send me the output and what you did so I can track it down for you asap

Previous Changelogs:

New in Version 2.04

  • Added an option to Relink All Bitmaps and not just missing ones.  The checkbox “All Maps” should do the trick.
  • Fixed a bug with the licensing system, if you have requested a license in the past and it wasn’t working, please email [email protected] your new request code (Generated by clicking the “Donate!” button).  Old License files will continue to work, but they now have a new format
  • Command Line support added for “All Maps” feature (check the FAQ at the bottom for syntax)
  • The new version deletes your “Relink Bitmaps.ini” file because new features have been added to it, this is to prevent errors.  Reconfigure manually.
  • Fixed the icon not showing up properly after install (Thanks Artur)

New in Version 2.03

  • Changed the script path to use the user’s local scripts path instead of “C:\Program Files\Autodesk\3dsMax 20##\”, this should eliminate problems with needing administrator rights to install the script.
  • Added the option to ignore the file’s extension allowing you to relink .jpgs to .tifs with ease.  Note: it will use whichever one it finds first.
  • Corrected a bug with the “Find” button which would induce a crash if it was clicked with nothing in it.

New in Version 2.02

  • Added a user requested option to delete all missing maps in a scene
  • Fixed a bug with find a material producing an error

Older Versions:

Relink Bitmaps 2.0
Relink Bitmaps 2.01
Relink Bitmaps 2.02
Relink Bitmaps 2.03
Relink Bitmaps 2.04
Relink Bitmaps 2.05
Relink Bitmaps 2.06
Relink Bitmaps 2.07
Relink Bitmaps 2.08
Relink Bitmaps 2.09



287 thoughts on “Relink Bitmaps

  1. James

    You can delete my last 2 comments (unless it helps someone go down the wrong path lol)

    I’m so close I can feel it, I get an error on the searchArr line:

    if doesFileExist ((getDir #userScripts)+”\\Relink Bitmaps\\C_Lib.mse”) and doesFileExist ((getDir #userScripts)+”\\Relink Bitmaps\\Relink_Lib.mse”) and doesFileExist ((getDir #userScripts)+”\\Relink Bitmaps\\Relink Bitmaps.mse”) then (
    fileIn ((getDir #userScripts)+”\\Relink Bitmaps\\C_Lib.mse”) quiet:true
    fileIn ((getDir #userScripts)+”\\Relink Bitmaps\\Relink_Lib.mse”) quiet:true
    fileIn ((getDir #userScripts)+”\\Relink Bitmaps\\Relink Bitmaps.mse”) quiet:true
    ) else (
    MessageBox “Relink Bitmaps files are not in the default installation path. Try reinstalling.”

    searchArr: #(“M:/Stock”,”X:/”)
    ignoreCase: true
    ignoreExtension: true
    recursive: true
    undoOn: false
    lowMemory: true
    allMaps: true
    progress: progressBar

    — Error occurred in anonymous codeblock; filename: C:\Users\render\Desktop\; position: 628; line: 10
    — Syntax error: at keyword parameter, expected
    — In line: searchArr: #

    Please help!

  2. Thomas Klyhn Christensen

    Dear Colin,

    First of all, your script alone is part of the reason I am still using and loving 3dsmax! so thank you! there is not a single day where I don’t use your script.

    I do have a request / feature request though.

    would it be hard / possible to get support for Fstorm Render? bitmap relinking?
    It’s a GPU render and im sure you are aware of its existance, but the current 2.09 version doesn’t recognize fstorm bitmap paths for some reason.

    Thanks again!

  3. Rueben Allan Derrick

    Hi Colin

    I purchased your product a few years back absolutely love it…life saver!

    Recently (might be due to windows update, max updates, not sure) the ability to search has become unreasonably slow compared to “before” I’m running v2.09 and it can take 20 min to search a folder of 200 files. Yet I can access the same network folder very quickly via windows explorer and the transfer rate is quick so access to that drive is not the issue.

    The network drive is a synology nas but seeing I can assess it easily not sure if that is playing a role?

    If it was you, how would you go about solving the issue?

    Also on a side note, there is a small bug related to vray proxies. If you have been playing around with ,maxes “Assets Tracker” and you point the proxies to a folder without the vmesh. Save the file & reopen it. Relink bitmaps does not see the file as missing the vmesh, even though its point to a folder without vmeshes in it. This means you have to manually re-direct via assest tracking and not relink bitmaps.

    Have you come across this before?

    Regards Rueben

  4. Michael McCormick

    Hi Colin,

    Great tool! It’s been such a lifesaver for me over the past few weeks!

    I did come across an issue recently that I’m hoping you could help me with. Your tool doesn’t seem to be able to relink textures that use the UDIM workflow. This workflow allows Max to automatically hook up a bunch of textures to various UV tiles.
    The texture nodes (VrayHDRI) use a format of Name_.ext while the textures on disk are actually named Name_1000.ext, Name_1001.ext, Name_1002.ext, etc.

    Unfortunately, Max and all other relinking scripts don’t recognize this format and can’t reconcile the path.

    Would it be possible to have your tool optionally search\validate based on matching string? Then you could put in just the NAME part of the texture to validate the path because the complete name can’t be matched to the directory files.

    Thank you,

  5. Tino

    Fan of Ross Draws? I just spotted a familier pup 😉 By the way I love your script. It’s a real time saver!

  6. Niall Cochrane


    I think/suspect Rb might have a problem with NAS drives – it can’t see them for some reason.



  7. Ismael

    Great Script! Using it every day and it would be impossible to work by now if we didn’t.
    Autodesk should include this script in their software by now but they obviously don’t care or know what their customer need. So a big thanks to you and everyone involved in writing this everyday task.

    Here comes the part where I request a new feature. Basically what we found is that Relinkbitmaps does not relink VRay Scans. Technically they are not textures but they work in a similar fashion. It would be a great addition to your script.

    Take care and thanks again.

  8. Alex

    I have installed RB on 3d max 2018. Was great until I installed the update 4.
    Now I can’t see the RB window.

    What I have to do to fix it?

    Thanks! Great Job.

  9. Colin Post author

    Great idea, I’d need to do some investigation for how vray scans does their filename structure. I’ll check, thank you.

  10. Louis Ryko

    Hi Colin,

    Great plugin, thanks a million.

    I have 1 major issue though: everytime I’m using fstorm materials and I click on the ‘RB’ button, max immediately crashes… This doesnt happen with Corona or Vray materials.

    Any help?? I’m using latest version, and Max 18.

  11. Glen

    I read on Scriptspot that BR from changelog 2.07 supports Point Cashe files.
    I’ve got 2.10 loaded and missing PC files aren’t listed.
    Is it no longer supported or am I missing the obvious somewhere?
    I would find relinking point cashe files really useful.

  12. James Carson

    Hey Colin. Love this script, and we use it ALL the time since we work on different machines. Makes it so much easier to relink a ton of maps!

    We do find a couple things it won’t relink, and was wondering if you could add them.
    1) It won’t find and relink any VRayHDRI bitmaps
    2) It won’t find any Substance materials with Allegorithmic’s new substance plugin for max.

    Would it be possible to add these into the plugin?
    Thanks for the awesome tool!!!

  13. Anubhav

    hi Colin, first thanx for script, second what about so many missing bitmaps in different folder how to reline them…

  14. Andrei Vlad Stirb

    I’m using your script in 3DSmax 2016.
    It works partialy for me.
    After a succesful scan and relink, when I toggle the “show shaded material in viewport” button from Material Editor slate, nothing happens. So I can’t see diffuse map in viewport even thow when rendering the scene everything is ok.
    This thing though, makes it difficult for me to use for example UVW Modifier in viewport.
    Is there a setting I missed for this?
    Please give me a feedback.

  15. Orian

    Hi Colin.

    Thank you very much for the plugin. It really helps.
    But I’ve made a donation 2 or 3 days ago and did not receive any instructions how to remove that alert window.

  16. Jackson


    I’m having trouble running the script in max 2018. It seems to install fine, as I get the message window saying it has installed. Once I place the RB button on my toolbar and click it, nothing happens. It seems like it is launching, as the cursor wheel spins, but the RB window never pops up.

    Thank you

  17. luis

    Greetings colin …
    I wish you could create a new version with the option in which you can rename the textures and maps in 3ds max and simultaneously in the Hard Disk and update the routes automatically, (because many times the 3d models contain textures with names, symbols, numbers, Chinese letters , Russian, a total disorder …) I have tried to rename with the option “assests” but nothing happens and I have searched for scripts and none do this …
    I hope it’s understandable because I’m using the google translator

  18. Benjamen

    Hello Collin,
    Thank you for this awesome script!
    I’m having an issue with the relink bitmap script. Every time I click on it, there is no window that pops up. And I tried resetting the position, and nothing happens. I typed in the setDebugMode and got this below:
    ** thread data: threadID:32060
    ** ——————————————————
    ** [stack level: 0]
    ** In top-level
    >> setDebugMode on
    ** expected command, got: setdebugmode

    Looking forward hearing from you!


  19. Ken Chase

    Hi Collin

    Excellent job on RelinkBitmaps and very, very useful. Definitely worth another donation.

    I have a request. I am running 1000’s of MAT files through a script to relink missing bitmaps. Quite a few do not get relinked due to bitmaps renamed. Is it possible to set a flag to signal whether Relinkbitmaps was successful in relinking. Once RelinkBitmaps has completed it’s scan, it sets a flag ‘true’ if it was successful relinking otherwise ‘false’ when not successful. I can use this flag to trigger writing the MAT file name to a text file when not successful and manually fix the paths. Maybe have the flag set to ‘Working’ while RelinkBitmaps is scanning, then ‘true’ or ‘false’ when completed the scan.

    This would be great if you could do this, if not thank you for considering my request.

Leave a Reply

Your email address will not be published. Required fields are marked *