|
he made a script so multi colored sponges come flying to the ground of your place! Copy and paste into new script here :
count = 0
-- builds the smallest element
function newBrick(pos, parent, color)
local b = Instance.new("Part")
b.FormFactor = Enum.FormFactor.Symmetric
b.Size = Vector3.new(1, 1, 1)
b.Position = pos
b.BrickColor = color
b.LeftSurface = Enum.SurfaceType.Studs
b.RightSurface = Enum.SurfaceType.Inlet
b.FrontSurface = Enum.SurfaceType.Studs
b.BackSurface = Enum.SurfaceType.Inlet
b.Name = "Cube"
b.Parent = parent
count = count + 1
return b
end
function eachCube(f, size, pos, ...)
f(pos + Vector3.new(0, 0, 0) * size, ...)
f(pos + Vector3.new(1, 0, 0) * size, ...)
f(pos + Vector3.new(2, 0, 0) * size, ...)
f(pos + Vector3.new(0, 0, 2) * size, ...)
f(pos + Vector3.new(1, 0, 2) * size, ...)
f(pos + Vector3.new(2, 0, 2) * size, ...)
f(pos + Vector3.new(0, 2, 0) * size, ...)
f(pos + Vector3.new(1, 2, 0) * size, ...)
f(pos + Vector3.new(2, 2, 0) * size, ...)
f(pos + Vector3.new(0, 2, 2) * size, ...)
f(pos + Vector3.new(1, 2, 2) * size, ...)
f(pos + Vector3.new(2, 2, 2) * size, ...)
f(pos + Vector3.new(0, 1, 0) * size, ...)
f(pos + Vector3.new(0, 0, 1) * size, ...)
f(pos + Vector3.new(0, 2, 1) * size, ...)
f(pos + Vector3.new(0, 1, 2) * size, ...)
f(pos + Vector3.new(2, 1, 0) * size, ...)
f(pos + Vector3.new(2, 0, 1) * size, ...)
f(pos + Vector3.new(2, 2, 1) * size, ...)
f(pos + Vector3.new(2, 1, 2) * size, ...)
end
-- builds the smallest Menger Sponge
function newSmallSponge(pos, parent, color)
local m = Instance.new("Model")
eachCube(newBrick, 1, pos, m, color)
m.Name = "Sponge"
m.Parent = parent
m:MakeJoints()
return m
end
-- recurisely build any size Menger Sponge
function newSponge(pos, size, parent, color)
if size % 3 ~= 0 then
error("bad size" .. size)
end
if size <= 0 then
error("bad size" .. size)
end
if size == 3 then
return newSmallSponge(pos, parent, color)
else
-- recurse
local m = Instance.new("Model")
m.Name = "Sponge " .. size
eachCube(newSponge, size / 3, pos, size / 3, m, color)
m.Parent = parent
m:MakeJoints()
return m
end
end
-- random factor generator
function r()
return 8 * (math.random() - 0.5)
end
timeScale = 1
-- now build and destroy sponges in the game
while true do
-- small sponges that can move around
for _ = 1, 10 do
local n = 2
local m = newSponge(Vector3.new(3^n*(r()-0.5), 60, 3^n*(r()-0.5)), 3^n, workspace, BrickColor.Random())
game:GetService("Debris"):AddItem(m, timeScale * 60)
wait(timeScale * 20)
end
-- wait for last cube to go
wait(timeScale * 50)
-- the biggest sponge we can handle
local n = 3
local m = newSponge(Vector3.new(3^n/2, 1, 3^n/2), 3^n, workspace, BrickColor.Random())
game:GetService("Debris"):AddItem(m, timeScale * 100)
wait(timeScale * 120)
end
|