Your (what I will soon start naming 'fruity') loops are causing issues again.
Lets say you have "item 1" and "item 2" in dlist.
You loop through it when player spawns "item 1".
Blacklist gets set true
Then, loop finishes, setting blacklist to false (item 2 wasn't spawned)
So, item 1 doesn't get blocked.