According to the wiki:
"Pillagers may spawn on any valid opaque block as long as the sky light level is 11 or lower, and the block light level is 8 or lower, but can also spawn on grass or sand blocks regardless of sky light level." (https://minecraft.fandom.com/wiki/Pillager_Outpost#:~:text=Pillagers%20may%20spawn%20on%20any%20valid%20opaque%20block%20as%20long%20as%20the%20sky%20light%20level%20is%2011%20or%20lower%2C%20and%20the%20block%20light%20level%20is%208%20or%20lower%2C%20but%20can%20also%20spawn%20on%20grass%20or%20sand%20blocks%20regardless%20of%20sky%20light%20level.)
However in my testing they can spawn on top of cobblestone as well, at sky light level 15, block light 0.
Repro steps:
In the world linked above, open in vanilla 1.18.2. Use "open to lan" to enable cheats, fly over to the outpost at -350, -250.
Create a cobblestone pad below it:
`/fill -323 60 -227 -385 60 -299 minecraft:cobblestone`
Remove the outpost itself (I used a bunch of fill commands with air)
/gamerule doDaylightCycle false
/time set noon
Expected behaviour
Light level is sky 15, block 0
Nothing spawns
Actual behaviour
Light level is sky 15, block 0
A LOT of pillagers spawn
Comments 3
100%
It may very well be that this is the expected behaviour, in which case I'll change the wiki
But if it is the expected behaviour then it looks like it changed at some point.
Either way it would be useful to know what the intended behaviour is from the devs
The wiki is not a source of behavior being intended or not.