i'm trying to run a script on PS 2021 version to randomize the creation of PNG artworks. I've set up four groups with different layers on it. It randomizes the visibility of layers in a certain way. However, when it comes to saving the image as PNG it prompts the file explorer to save the file in PSD format.
This is the code am using right now:
function Visible() {
var Grps = app.activeDocument.layerSets;
//alert("total groups: "+ Grps.length);
for (var i = 0; i < Grps.length; i++) {
// Get the amount of layers in a set
var tmp = app.activeDocument.layerSets[i].layers.length;
// set the whole group visible
app.activeDocument.layerSets[i].visible = true;
var groupChildArr = app.activeDocument.layerSets[i].layers;
var randLays = Math.floor(Math.random() * tmp);
groupChildArr[randLays].visible = true;
Save();
}
Revert();
}
function Save() {
var outFolder = app.activeDocument;
var outPath = outFolder.path;
var fName = "PNG";
var f = new Folder(outPath + "/" + fName);
if (!f.exists) {
f.create()
}
//alert("before path config");
var saveFile = new File(outPath + "/" + fName + "/" + "TREE_" + num + ".png");
pngSaveOptions = new PNGSaveOptions();
pngSaveOptions.interlaced = false;
//alert("before save")
app.activeDocument.saveAs(saveFile, pngSaveOptions, true, Extension.LOWERCASE);
//alert("after save")
}
function Revert() {
var idRvrt = charIDToTypeID("Rvrt");
executeAction(idRvrt, undefined, DialogModes.NO);
}
var count = prompt("How many versions you want", "");
for (var x = 0; x < count; x++) {
var num = x + 1;
Visible();
}
This is how it works, it asks for the number of pieces to generate:
And then it just prompts the explorer on each iteration:

Any help would be greatly appreciated!
You need to suppress any Photoshop dialog boxes that may pop up. At the very start of your script put this:
// Switch off any dialog boxes
displayDialogs = DialogModes.NO; // OFF
You will also have to flatten the document as well. Add it just before the save:
activeDocument.flatten();
Save();