I have Photoshop CC2019 PSD document containing several smart objects that contains other smart objects that contains other smart objects. Some of these have linked layers. Normally, such images are not updated automatically (which is extremely annoying, Adobe!) but you have to manually update each of them once the linked image content has changed.
There is a .jsx script file named “Update All Modified Content.jsx” which auto-updates linked layers (PNG image in my case) but only if the smart object is in the top most document – that is no nested smart objects with linked layers are updated automatically.
My question is: does anyone know how to update the content of the above mentioned .jsx file so that it would auto-update all linked images across all the smart objects in PSD document including nested ones?
For those who care or would be willing to help updating the code here it is:
// Update all modified content
var idplacedLayerUpdateAllModified = stringIDToTypeID( "placedLayerUpdateAllModified" );
executeAction( idplacedLayerUpdateAllModified, undefined, DialogModes.NO );
2
Answers
So, after spending half a day with it I finally solved it myself. Here is the code:
OP’s script works!! It was going in loops for me too but after some trial and error, I realised that my smart objects (SO) that are linked across artboards ( – e.g. if you change one SO, it changes on various artboards) – were the issue. I hid all such SO and it works.
so basically, it only works for Smart Objects + copies made via ‘New smart object via copy’ NOT ‘duplicate layer’ / copypaste smart objects. If your work contains a ‘duplicate layer’ SO – it will break the script. You need to hide these objects ( or not work like that all together) before running the script