View difference between Paste ID: PGfpwKY1 and its27Rtq
SHOW: | | - or go back to the newest paste.
1-
script/ 
1+
2
mod.Parent = game.Workspace.Base 
3
mod.Name = "GenScip" 
4
scale = 10 
5
char1 = {"Dark green", "part", 0, true, scale/2.5} 
6
char2 = {"Reddish brown", "clif", 0, true, scale*1.5,scale*2} 
7
char3 = {"23", "wate", 0.6, false, scale/2.5} 
8
char4 = {"Pastel brown", "sand", 0, true, scale/2.5} 
9
x = 0 
10
z = -100 
11
n1 = 0 
12
n2 = 0 
13
n3 = 0 
14
zonlay = math.random(1,3) 
15
if zonlay == 1 then 
16
n1 = math.random(1,30) 
17
n2 = math.random(40,50) 
18
n3 = math.random(60,100) 
19
end 
20
if zonlay == 2 then 
21
n1 = math.random(60,100) 
22
n2 = math.random(40,50) 
23
n3 = math.random(10, 30) 
24
end 
25
if zonlay == 3 then 
26
n1 = math.random(30,60) 
27
n2 = math.random(1,20) 
28
n3 = math.random(70,100) 
29
end 
30
spawns = 0 
31
trees = 0 
32
33
function decs(p) 
34
m = Instance.new("SpawnLocation") 
35
m.Parent = mod 
36
m.Size = Vector3.new(scale/2,char1[5],scale/2) 
37
m.BrickColor = BrickColor.new("Really black") 
38
m.Anchored = true 
39
m.CFrame = p.CFrame * CFrame.new(0,char1[5]/2,0) 
40
spawns = spawns + 1 
41
end 
42
43
function dect(p) 
44
if p.BrickColor.Name == char1[1] then else return end 
45
m = Instance.new("Part") 
46
m.Parent = mod 
47
m.Name = "Tree" 
48
m.Size = Vector3.new(scale/2,char1[5],scale/2) 
49
m.BrickColor = BrickColor.new("Dark green") 
50
m.Anchored = true 
51
m.CFrame = p.CFrame * CFrame.new(0,p.Size.Y/3,0) 
52
msh = Instance.new("SpecialMesh") 
53
msh.Parent = m 
54
msh.MeshId = "ff54d21ba63ff3073f34fda5cd1be3f1" 
55
msh.TextureId = "http://www.roblox.com/asset/?id=37476561" 
56
msh.Scale = Vector3.new(0.1,0.1,0.1) 
57
trees = trees + 1 
58
end 
59
60
61
62
function decor(par, tab, xb, zb) 
63
number = string.sub(par.Name:lower(), 5) 
64
par.Size = Vector3.new(scale,tab[math.random(5,#tab)],scale) 
65
par.BrickColor = BrickColor.new(tab[1]) 
66
par.Transparency = tab[3] 
67
par.CanCollide = tab[4] 
68
if tab[1] == "Reddish brown" then 
69
local variation = math.random(1,100)*-0.04 
70
par.CFrame = CFrame.new(xb,par.Size.Y/1.8+variation,zb) 
71
par.Friction = 0.6 
72
end 
73
if tab[1] == "Dark green" then 
74
local variation = math.random(1,100)*-0.004 
75
par.CFrame = CFrame.new(xb,par.Size.Y/1.5+variation,zb) 
76
par.Friction = 0.6 
77
end 
78
if tab[1] == "23" or tab[1] == "Pastel brown" then 
79
par.CFrame = CFrame.new(xb,par.Size.Y/1.5,zb) 
80
if tab[1] == "23" then 
81
par.Friction = 0.9 
82
end 
83
end 
84
end 
85
86
function scan(part, char, type) 
87
if type == "land" then 
88
tri = mod:GetChildren() 
89
for i = 1, #tri do 
90
if math.ceil((tri[i].Position - part.Position).magnitude) <= 15 then 
91
decor(tri[i], char, tri[i].CFrame.X, tri[i].CFrame.Z) 
92
end 
93
end 
94
elseif type == "water" then 
95
tri = mod:GetChildren() 
96
for i = 1, #tri do 
97
if math.ceil((tri[i].Position - part.Position).magnitude) > 0 and math.ceil((tri[i].Position - part.Position).magnitude) < 20 then 
98
if string.sub(tri[i].Name:lower(), 1, 4) == "part" then else return end 
99
decor(tri[i], char, tri[i].CFrame.X, tri[i].CFrame.Z) 
100
end 
101
if math.ceil((tri[i].Position - part.Position).magnitude) > 20 and math.ceil((tri[i].Position - part.Position).magnitude) < 30 then 
102
if string.sub(tri[i].Name:lower(), 1, 4) == "part" then else return end 
103
decor(tri[i], char4, tri[i].CFrame.X, tri[i].CFrame.Z) 
104
end 
105
end 
106
end 
107
end 
108
109
function forestscan(part) 
110
tri = mod:GetChildren() 
111
for i = 1, #tri do 
112
if math.ceil((tri[i].Position - part.Position).magnitude) < 20 then 
113
if string.sub(tri[i].Name:lower(), 1, 4) == "part" then else return end 
114
dect(tri[i]) 
115
end 
116
end 
117
end 
118
119
function createtile(number) 
120
p = Instance.new("Part") 
121
p.Parent = mod 
122
p.Name = "Part" ..tostring(number) 
123
if number == n1 or number == n2 then 
124
p.Name = "Clif" ..tostring(number) 
125
decor(p, char2, x, z) 
126
else 
127
if number == n3 then 
128
p.Name = "Wate" ..tostring(number) 
129
decor(p, char3, x, z) 
130
else 
131
decor(p, char1, x, z) 
132
end 
133
end 
134
p.BottomSurface = "Smooth" 
135
p.TopSurface = "Smooth" 
136
p.Anchored = true 
137
if x >= scale*25 then 
138
x = 0 
139
z = z + scale 
140
elseif x < scale*25 then 
141
x = x + scale 
142
end 
143
end 
144
145
for i = 1, 208 do 
146
wait() 
147
createtile(i) 
148
end 
149
t = mod:GetChildren() 
150
for i = 1, #t do 
151
if string.sub(t[i].Name:lower(), 1, 4) == "clif" then 
152
scan(t[i], char2, "land") 
153
end 
154
if string.sub(t[i].Name:lower(), 1, 4) == "wate" then 
155
scan(t[i], char3, "water") 
156
end 
157
if string.sub(t[i].Name:lower(), 1, 4) == "part" then 
158
local lol = math.random(1,25) 
159
if spawns == 0 and lol == 10 then 
160
decs(t[i]) 
161
end 
162
local lol2 = math.random(1,25) 
163
if trees == 0 and lol2 == 20 then 
164
dect(t[i]) 
165
forestscan(t[i]) 
166
end 
167
end 
168
end