Skip to main content
Participant
September 24, 2025
Question

Illustrator Script Error at Line 20 with Compound Paths

  • September 24, 2025
  • 2 replies
  • 190 views

Hi, so I ran into a blocking error today while running RandomSwatchesFill.js, a well-known script for Adobe Illustrator. The goal is simple: fill the selected shapes with a random color from the swatches I have selected. It worked perfectly yesterday, but today Illustrator suddenly stops with an error on line 20. Nothing has changed in my Illustrator setup between then and now, which makes the issue even more puzzling.

The Script:

 

 
mySelection = app.activeDocument.selection;
myDoc = app.activeDocument;
if (mySelection instanceof Array)
{
    selSwatches = myDoc.swatches.getSelected();
    
    if(selSwatches.length != 0)
        for (i=0; i<mySelection.length; i++)
        {
            if(mySelection[i].typename == "PathItem" || mySelection[i].typename == "CompoundPathItem")
            {
                selItem = mySelection[i];
                selItem.filled = true;

                swatchIndex = Math.round( Math.random() * (selSwatches.length - 1 ));
                
                if(selItem.typename == "PathItem")
                    selItem.fillColor = selSwatches[swatchIndex].color;
                else
                    selItem.pathItems[0].fillColor = selSwatches[swatchIndex].color;
                
            }
        }
}

 

Illustrator reports the error at line 20:

 

 
selItem.pathItems[0].fillColor = selSwatches[swatchIndex].color;

 

Anyway if you can help me resolve this problem that would be great

2 replies

CarlosCanto
Community Expert
Community Expert
September 25, 2025

insert 

alert(selItem.typename);

 

before the error line to find out what type of object is causing the error and we go from there

 

[edit] it will always be "compound path" duh! ignore my comment, follow Sergey comments

Sergey Osokin
Inspiring
September 25, 2025

How are these objects made? If you call the Release Compound Path, will there be groups of objects? If there are groups, the script cannot get the first path selItem.pathItems[0] inside the compound path.

 

IrtalAuthor
Participant
October 14, 2025

ok so when i Release Compound Path, i have some groups of objects yes, how can color them to have their original shape? i need to color them before? what would be the solution to my first problem? i want to color those shape randomly with their hole in it.

.

CarlosCanto
Community Expert
Community Expert
October 15, 2025

can you make the shapes without grouping?

 

show what's in the compound path