User:Mindraker/Terrain
From Roblox Wiki
For the current page on terrains, please see Terrain Generation
Contents |
Mathematical Slopes
for i = 1,100, .1 do
a=math.random(1,100)
b=math.random(1,100)
c=math.random(1,100)
p = Instance.new("Part")
p.CFrame = CFrame.new(Vector3.new(100*math.sin(a), (100*math.sin(a)*math.cos(c))+100, 100*math.cos(c)))
p.Size = Vector3.new(8,8,8)
p.Anchored = true
p.Color = Color3.new(1)
p.BottomSurface = "Smooth"
p.TopSurface = "Smooth"
p.Parent = game.Workspace
q = Instance.new("SpecialMesh")
q.MeshType = "Sphere"
q.Parent = p
end
Pyramid script (with flat bottom)
x=1
y=1
for i = 50, 1, -1 do
x=i
y=(50-x)
z=y
p = Instance.new("Part")
p.CFrame = CFrame.new(Vector3.new(1,i,1))
p.Size = Vector3.new(y,x,z)
p.Anchored = true
p.Color = Color3.new(1)
p.Parent = game.Workspace
--wait(1)
end
Bowl (for real)
for i = 1, 50, 1 do
p = Instance.new("Part")
p.CFrame = CFrame.new(Vector3.new(-5, i, -i))
p.Size = Vector3.new(i+i-1, 1, 1)
p.Anchored = true
p.Color = Color3.new(1)
p.formFactor="Symmetric"
p.Parent = game.Workspace
--wait(1)
q = Instance.new("Part")
q.CFrame = CFrame.new(Vector3.new(i-6, i, -1))
q.Size = Vector3.new(1, 1, i+i-1)
q.Anchored = true
q.Color = Color3.new(1)
q.formFactor="Symmetric"
q.Parent = game.Workspace
--wait(1)
r = Instance.new("Part")
r.CFrame = CFrame.new(Vector3.new(-5, i, i-2))
r.Size = Vector3.new(i+i-1, 1, 1)
r.Anchored = true
r.Color = Color3.new(1)
r.formFactor="Symmetric"
r.Parent = game.Workspace
--wait(1)
s = Instance.new("Part")
s.CFrame = CFrame.new(Vector3.new(-i-4, i, -1))
s.Size = Vector3.new(1, 1, i+i-1)
s.Anchored = true
s.Color = Color3.new(1)
s.formFactor="Symmetric"
s.Parent = game.Workspace
--wait(1)
end
bowl test
for i = 1, 10, 1 do
p = Instance.new("Part")
p.CFrame = CFrame.new(Vector3.new(-5, i, -i))
p.Size = Vector3.new(i*i, 1, 1)
p.Anchored = true
p.Color = Color3.new(1)
p.formFactor="Symmetric"
p.Parent = game.Workspace
--wait(1)
q = Instance.new("Part")
q.CFrame = CFrame.new(Vector3.new(i-6, i, -1))
q.Size = Vector3.new(1, 1, i*i)
q.Anchored = true
q.Color = Color3.new(1)
q.formFactor="Symmetric"
q.Parent = game.Workspace
--wait(1)
r = Instance.new("Part")
r.CFrame = CFrame.new(Vector3.new(-5, i, i-2))
r.Size = Vector3.new(i*i, 1, 1)
r.Anchored = true
r.Color = Color3.new(1)
r.formFactor="Symmetric"
r.Parent = game.Workspace
--wait(1)
s = Instance.new("Part")
s.CFrame = CFrame.new(Vector3.new(-i-4, i, -1))
s.Size = Vector3.new(1, 1, i*i)
s.Anchored = true
s.Color = Color3.new(1)
s.formFactor="Symmetric"
s.Parent = game.Workspace
--wait(1)
end
Floors
See for information on floors and for information on the mathematical function used
for j = 1, 10, .1 do
floor2 = (math.floor (j)*10)
p = Instance.new("Part")
p.CFrame = CFrame.new(Vector3.new(j*10,floor2,1))
p.Size = Vector3.new(1,1,1)
p.Anchored = true
p.Color = Color3.new(1)
p.formFactor = "Symmetric"
p.Parent = game.Workspace
--wait(.1)
end
Waves
x=1
y=1
z=1
for i = 0, 5, 1 do
for j = 0, 5, 1 do
for k = 0, 5, 1 do
x=i
y=i^2
z=i
p = Instance.new("Part")
p.CFrame = CFrame.new(Vector3.new(i,1+y/2,k))
p.Size = Vector3.new(1,y,1)
p.Anchored = true
p.Color = Color3.new(1)
p.Parent = game.Workspace
--wait(1)
end
end
end
for i = 6, 11, 1 do
for j = 10, 6, -1 do
for k = 0, 5, 1 do
x=i
y=((i-6)^2)
z=i
p = Instance.new("Part")
p.CFrame = CFrame.new(Vector3.new(16-i,1+y/2,k))
p.Size = Vector3.new(1,y,1)
p.Anchored = true
p.Color = Color3.new(1)
p.Parent = game.Workspace
--wait(1)
end
end
end
Terrain generator
This may be similar to LegoX's Terrain generator. Please compare and contrast to learn and improve your own scripting skills. His uses a pattern of sorts... this relies on a random number generator.
x=1
y=1
z=1
for i = 0, 100, 10 do
for j = 0, 10, 1 do
for k = 0, 100, 10 do
a=math.random(1,20)
x=i
y=a
z=i
p = Instance.new("Part")
p.CFrame = CFrame.new(Vector3.new(i,j,k))
p.Size = Vector3.new(10,a,10)
p.Anchored = true
p.Color = Color3.new(1) -- Please change the color to your own desire.
p.Parent = game.Workspace
--wait(1)
end
end
end
You can fiddle around with that, I've had it make a step pattern, or a smooth slope (it's maybe not the best of ways to make these, perhaps):
x=1
y=1
z=1
for i = 0, 100, 10 do
for k = 0, 100, 10 do
for j = 0, 10, 1 do
x=i
y=math.sqrt(i)
z=k
p = Instance.new("Part")
p.CFrame = CFrame.new(Vector3.new(i,1,k))
p.Size = Vector3.new(10,y,10)
p.Anchored = true
p.Color = Color3.new(1)
p.Parent = game.Workspace
--wait(1)
end
end
end
This isn't terrain but I don't have anyplace else to put them
3D Space
This requires putting a black decal on the SkyBox in Lighting. Those are freely available in free models. This will make a more realistic space model that you can fly through... fiddle with the numbers to make it bigger.
x=1
y=1
z=1
for i = 1, 100, 1 do -- how many stars
a=math.random(1,100)
b=math.random(1,100)
c=math.random(1,100)
x=a
y=b
z=c
p = Instance.new("Part")
p.CFrame = CFrame.new(Vector3.new(x,y,z)) -- where are the stars
p.Size = Vector3.new(1,1,1) -- small stars
p.Anchored = true
p.CanCollide = false
p.Parent = game.Workspace
p.BrickColor = BrickColor.new(1) -- white stars
end
Fun with floors
for i = 1, 100, 10 do
for j = 1, 100, 10 do
for k = 1, 100, 10 do
p = Instance.new("Part")
p.CFrame = CFrame.new(Vector3.new(i,j,k))
p.Size = Vector3.new(1,1,1)
p.Anchored = true
p.Color = Color3.new(1)
p.formFactor = "Symmetric"
p.Parent = game.Workspace
--wait(.1)
end
end
end
