var/dball = list(/obj/dball/dball1,/obj/dball/dball2,/obj/dball/dball3,/obj/dball/dball4,/obj/dball/dball5,/obj/dball/dball6,/obj/dball/dball7)
obj/proc/scatterballs()
var/X = rand(1,world.maxx)
var/Y = rand(1,world.maxy)
var/Z = 1
for(var/turf/T in locate(X,Y,Z))
if(T.allowball==1)
src.loc = locate(T)
dball-=src
else
src.scatterballs()
world
New()
..()
for(var/obj/dball/D in dball)
D.scatterballs()
Does anyone spot the reason, or lack of reason, that this proc does jack-squat?
Just change your world.New proc to this: