View difference between Paste ID: 99cSM5ji and x2ssUs9C
SHOW: | | - or go back to the newest paste.
1
--Made by 1ndrew "Steamed Hams"
2
function sandbox(var,func)
3
	local env = getfenv(func)
4
	local newenv = setmetatable({},{
5
		__index = function(self,k)
6
			if k=="script" then
7
				return var
8
			else
9
				return env[k]
10
			end
11
		end,
12
	})
13
	setfenv(func,newenv)
14
	return func
15
end
16
cors = {}
17
mas = Instance.new("Model",game:GetService("Lighting"))
18
Tool0 = Instance.new("Tool")
19
Part1 = Instance.new("Part")
20
CylinderMesh2 = Instance.new("CylinderMesh")
21
Part3 = Instance.new("Part")
22
CylinderMesh4 = Instance.new("CylinderMesh")
23
Part5 = Instance.new("Part")
24
CylinderMesh6 = Instance.new("CylinderMesh")
25
Part7 = Instance.new("Part")
26
CylinderMesh8 = Instance.new("CylinderMesh")
27
Part9 = Instance.new("Part")
28
CylinderMesh10 = Instance.new("CylinderMesh")
29
Part11 = Instance.new("Part")
30
CylinderMesh12 = Instance.new("CylinderMesh")
31
Part13 = Instance.new("Part")
32
SpecialMesh14 = Instance.new("SpecialMesh")
33
Part15 = Instance.new("Part")
34
CylinderMesh16 = Instance.new("CylinderMesh")
35
Part17 = Instance.new("Part")
36
Part18 = Instance.new("Part")
37
PointLight19 = Instance.new("PointLight")
38
BillboardGui20 = Instance.new("BillboardGui")
39
ImageLabel21 = Instance.new("ImageLabel")
40
CylinderMesh22 = Instance.new("CylinderMesh")
41
Part23 = Instance.new("Part")
42
Sound24 = Instance.new("Sound")
43
Sound25 = Instance.new("Sound")
44
Part26 = Instance.new("Part")
45
CylinderMesh27 = Instance.new("CylinderMesh")
46
Part28 = Instance.new("Part")
47
SpecialMesh29 = Instance.new("SpecialMesh")
48
Part30 = Instance.new("Part")
49
SpecialMesh31 = Instance.new("SpecialMesh")
50
Decal32 = Instance.new("Decal")
51
Decal33 = Instance.new("Decal")
52
Part34 = Instance.new("Part")
53
SpecialMesh35 = Instance.new("SpecialMesh")
54
Part36 = Instance.new("Part")
55
SpecialMesh37 = Instance.new("SpecialMesh")
56
Part38 = Instance.new("Part")
57
CylinderMesh39 = Instance.new("CylinderMesh")
58
Part40 = Instance.new("Part")
59
CylinderMesh41 = Instance.new("CylinderMesh")
60
Part42 = Instance.new("Part")
61
CylinderMesh43 = Instance.new("CylinderMesh")
62
Part44 = Instance.new("Part")
63
SpecialMesh45 = Instance.new("SpecialMesh")
64
Part46 = Instance.new("Part")
65
CylinderMesh47 = Instance.new("CylinderMesh")
66
Part48 = Instance.new("Part")
67
SpecialMesh49 = Instance.new("SpecialMesh")
68
Decal50 = Instance.new("Decal")
69
Decal51 = Instance.new("Decal")
70
Part52 = Instance.new("Part")
71
SpecialMesh53 = Instance.new("SpecialMesh")
72
Part54 = Instance.new("Part")
73
SpecialMesh55 = Instance.new("SpecialMesh")
74
Part56 = Instance.new("Part")
75
CylinderMesh57 = Instance.new("CylinderMesh")
76
Part58 = Instance.new("Part")
77
CylinderMesh59 = Instance.new("CylinderMesh")
78
Part60 = Instance.new("Part")
79
SpecialMesh61 = Instance.new("SpecialMesh")
80
Part62 = Instance.new("Part")
81
CylinderMesh63 = Instance.new("CylinderMesh")
82
Part64 = Instance.new("Part")
83
CylinderMesh65 = Instance.new("CylinderMesh")
84
Part66 = Instance.new("Part")
85
SpecialMesh67 = Instance.new("SpecialMesh")
86
Part68 = Instance.new("Part")
87
SpecialMesh69 = Instance.new("SpecialMesh")
88
Part70 = Instance.new("Part")
89
CylinderMesh71 = Instance.new("CylinderMesh")
90
Part72 = Instance.new("Part")
91
SpecialMesh73 = Instance.new("SpecialMesh")
92
Part74 = Instance.new("Part")
93
CylinderMesh75 = Instance.new("CylinderMesh")
94
Part76 = Instance.new("Part")
95
CylinderMesh77 = Instance.new("CylinderMesh")
96
Part78 = Instance.new("Part")
97
CylinderMesh79 = Instance.new("CylinderMesh")
98
Part80 = Instance.new("Part")
99
CylinderMesh81 = Instance.new("CylinderMesh")
100
Part82 = Instance.new("Part")
101
CylinderMesh83 = Instance.new("CylinderMesh")
102
Part84 = Instance.new("Part")
103
CylinderMesh85 = Instance.new("CylinderMesh")
104
Part86 = Instance.new("Part")
105
CylinderMesh87 = Instance.new("CylinderMesh")
106
Decal88 = Instance.new("Decal")
107
Decal89 = Instance.new("Decal")
108
Part90 = Instance.new("Part")
109
SpecialMesh91 = Instance.new("SpecialMesh")
110
Part92 = Instance.new("Part")
111
SpecialMesh93 = Instance.new("SpecialMesh")
112
Part94 = Instance.new("Part")
113
CylinderMesh95 = Instance.new("CylinderMesh")
114
Part96 = Instance.new("Part")
115
SpecialMesh97 = Instance.new("SpecialMesh")
116
Part98 = Instance.new("Part")
117
SpecialMesh99 = Instance.new("SpecialMesh")
118
Part100 = Instance.new("Part")
119
CylinderMesh101 = Instance.new("CylinderMesh")
120
Part102 = Instance.new("Part")
121
CylinderMesh103 = Instance.new("CylinderMesh")
122
Decal104 = Instance.new("Decal")
123
Part105 = Instance.new("Part")
124
CylinderMesh106 = Instance.new("CylinderMesh")
125
Part107 = Instance.new("Part")
126
CylinderMesh108 = Instance.new("CylinderMesh")
127
Part109 = Instance.new("Part")
128
CylinderMesh110 = Instance.new("CylinderMesh")
129
Part111 = Instance.new("Part")
130
CylinderMesh112 = Instance.new("CylinderMesh")
131
Part113 = Instance.new("Part")
132
CylinderMesh114 = Instance.new("CylinderMesh")
133
Part115 = Instance.new("Part")
134
CylinderMesh116 = Instance.new("CylinderMesh")
135
Decal117 = Instance.new("Decal")
136
Part118 = Instance.new("Part")
137
CylinderMesh119 = Instance.new("CylinderMesh")
138
Decal120 = Instance.new("Decal")
139
Part121 = Instance.new("Part")
140
CylinderMesh122 = Instance.new("CylinderMesh")
141
Part123 = Instance.new("Part")
142
CylinderMesh124 = Instance.new("CylinderMesh")
143
Decal125 = Instance.new("Decal")
144
Decal126 = Instance.new("Decal")
145
Part127 = Instance.new("Part")
146
SpecialMesh128 = Instance.new("SpecialMesh")
147
Part129 = Instance.new("Part")
148
CylinderMesh130 = Instance.new("CylinderMesh")
149
Part131 = Instance.new("Part")
150
CylinderMesh132 = Instance.new("CylinderMesh")
151
Decal133 = Instance.new("Decal")
152
Part134 = Instance.new("Part")
153
CylinderMesh135 = Instance.new("CylinderMesh")
154
Part136 = Instance.new("Part")
155
CylinderMesh137 = Instance.new("CylinderMesh")
156
Part138 = Instance.new("Part")
157
SpecialMesh139 = Instance.new("SpecialMesh")
158
Part140 = Instance.new("Part")
159
SpecialMesh141 = Instance.new("SpecialMesh")
160
Part142 = Instance.new("Part")
161
CylinderMesh143 = Instance.new("CylinderMesh")
162
Part144 = Instance.new("Part")
163
CylinderMesh145 = Instance.new("CylinderMesh")
164
Part146 = Instance.new("Part")
165
SpecialMesh147 = Instance.new("SpecialMesh")
166
Part148 = Instance.new("Part")
167
CylinderMesh149 = Instance.new("CylinderMesh")
168
Part150 = Instance.new("Part")
169
CylinderMesh151 = Instance.new("CylinderMesh")
170
Part152 = Instance.new("Part")
171
CylinderMesh153 = Instance.new("CylinderMesh")
172
Part154 = Instance.new("Part")
173
CylinderMesh155 = Instance.new("CylinderMesh")
174
Part156 = Instance.new("Part")
175
SpecialMesh157 = Instance.new("SpecialMesh")
176
Part158 = Instance.new("Part")
177
SpecialMesh159 = Instance.new("SpecialMesh")
178
Part160 = Instance.new("Part")
179
CylinderMesh161 = Instance.new("CylinderMesh")
180
Part162 = Instance.new("Part")
181
SpecialMesh163 = Instance.new("SpecialMesh")
182
Part164 = Instance.new("Part")
183
CylinderMesh165 = Instance.new("CylinderMesh")
184
Part166 = Instance.new("Part")
185
CylinderMesh167 = Instance.new("CylinderMesh")
186
Part168 = Instance.new("Part")
187
SpecialMesh169 = Instance.new("SpecialMesh")
188
Part170 = Instance.new("Part")
189
SpecialMesh171 = Instance.new("SpecialMesh")
190
Part172 = Instance.new("Part")
191
SpecialMesh173 = Instance.new("SpecialMesh")
192
Part174 = Instance.new("Part")
193
SpecialMesh175 = Instance.new("SpecialMesh")
194
Part176 = Instance.new("Part")
195
CylinderMesh177 = Instance.new("CylinderMesh")
196
Part178 = Instance.new("Part")
197
SpecialMesh179 = Instance.new("SpecialMesh")
198
Part180 = Instance.new("Part")
199
CylinderMesh181 = Instance.new("CylinderMesh")
200
Part182 = Instance.new("Part")
201
CylinderMesh183 = Instance.new("CylinderMesh")
202
Part184 = Instance.new("Part")
203
SpecialMesh185 = Instance.new("SpecialMesh")
204
Part186 = Instance.new("Part")
205
SpecialMesh187 = Instance.new("SpecialMesh")
206
IntValue188 = Instance.new("IntValue")
207
IntValue189 = Instance.new("IntValue")
208
IntValue190 = Instance.new("IntValue")
209
IntValue191 = Instance.new("IntValue")
210
IntValue192 = Instance.new("IntValue")
211
Script193 = Instance.new("Script")
212
ObjectValue194 = Instance.new("ObjectValue")
213
RemoteFunction195 = Instance.new("RemoteFunction")
214
RemoteFunction196 = Instance.new("RemoteFunction")
215
RemoteFunction197 = Instance.new("RemoteFunction")
216
RemoteEvent198 = Instance.new("RemoteEvent")
217
RemoteFunction199 = Instance.new("RemoteFunction")
218
RemoteFunction200 = Instance.new("RemoteFunction")
219
RemoteFunction201 = Instance.new("RemoteFunction")
220
LocalScript202 = Instance.new("LocalScript")
221
IntValue203 = Instance.new("IntValue")
222
RemoteEvent204 = Instance.new("RemoteEvent")
223
RemoteEvent205 = Instance.new("RemoteEvent")
224
RemoteEvent206 = Instance.new("RemoteEvent")
225
RemoteEvent207 = Instance.new("RemoteEvent")
226
LocalScript208 = Instance.new("LocalScript")
227
IntValue209 = Instance.new("IntValue")
228
Folder210 = Instance.new("Folder")
229
ScreenGui211 = Instance.new("ScreenGui")
230
ImageLabel212 = Instance.new("ImageLabel")
231
NumberValue213 = Instance.new("NumberValue")
232
Frame214 = Instance.new("Frame")
233
ImageLabel215 = Instance.new("ImageLabel")
234
TextLabel216 = Instance.new("TextLabel")
235
Frame217 = Instance.new("Frame")
236
TextLabel218 = Instance.new("TextLabel")
237
Frame219 = Instance.new("Frame")
238
TextLabel220 = Instance.new("TextLabel")
239
Frame221 = Instance.new("Frame")
240
TextLabel222 = Instance.new("TextLabel")
241
Frame223 = Instance.new("Frame")
242
TextLabel224 = Instance.new("TextLabel")
243
Frame225 = Instance.new("Frame")
244
Frame226 = Instance.new("Frame")
245
TextLabel227 = Instance.new("TextLabel")
246
TextLabel228 = Instance.new("TextLabel")
247
TextLabel229 = Instance.new("TextLabel")
248
TextLabel230 = Instance.new("TextLabel")
249
TextLabel231 = Instance.new("TextLabel")
250
Frame232 = Instance.new("Frame")
251
TextLabel233 = Instance.new("TextLabel")
252
TextLabel234 = Instance.new("TextLabel")
253
TextLabel235 = Instance.new("TextLabel")
254
Frame236 = Instance.new("Frame")
255
TextLabel237 = Instance.new("TextLabel")
256
Frame238 = Instance.new("Frame")
257
Frame239 = Instance.new("Frame")
258
Frame240 = Instance.new("Frame")
259
Frame241 = Instance.new("Frame")
260
Frame242 = Instance.new("Frame")
261
Frame243 = Instance.new("Frame")
262
Frame244 = Instance.new("Frame")
263
Frame245 = Instance.new("Frame")
264
Frame246 = Instance.new("Frame")
265
Frame247 = Instance.new("Frame")
266
Frame248 = Instance.new("Frame")
267
Frame249 = Instance.new("Frame")
268
Frame250 = Instance.new("Frame")
269
Frame251 = Instance.new("Frame")
270
Frame252 = Instance.new("Frame")
271
Frame253 = Instance.new("Frame")
272
Frame254 = Instance.new("Frame")
273
Frame255 = Instance.new("Frame")
274
Frame256 = Instance.new("Frame")
275
Frame257 = Instance.new("Frame")
276
Frame258 = Instance.new("Frame")
277
Frame259 = Instance.new("Frame")
278
Frame260 = Instance.new("Frame")
279
Frame261 = Instance.new("Frame")
280
Frame262 = Instance.new("Frame")
281
Frame263 = Instance.new("Frame")
282
TextLabel264 = Instance.new("TextLabel")
283
TextLabel265 = Instance.new("TextLabel")
284
Frame266 = Instance.new("Frame")
285
Frame267 = Instance.new("Frame")
286
ImageLabel268 = Instance.new("ImageLabel")
287
TextLabel269 = Instance.new("TextLabel")
288
TextLabel270 = Instance.new("TextLabel")
289
Frame271 = Instance.new("Frame")
290
ImageLabel272 = Instance.new("ImageLabel")
291
TextLabel273 = Instance.new("TextLabel")
292
TextLabel274 = Instance.new("TextLabel")
293
Frame275 = Instance.new("Frame")
294
TextLabel276 = Instance.new("TextLabel")
295
TextLabel277 = Instance.new("TextLabel")
296
TextLabel278 = Instance.new("TextLabel")
297
Frame279 = Instance.new("Frame")
298
Frame280 = Instance.new("Frame")
299
ImageLabel281 = Instance.new("ImageLabel")
300
ImageLabel282 = Instance.new("ImageLabel")
301
Frame283 = Instance.new("Frame")
302
TextLabel284 = Instance.new("TextLabel")
303
Frame285 = Instance.new("Frame")
304
ImageLabel286 = Instance.new("ImageLabel")
305
ImageLabel287 = Instance.new("ImageLabel")
306
Frame288 = Instance.new("Frame")
307
Frame289 = Instance.new("Frame")
308
LocalScript290 = Instance.new("LocalScript")
309
TextLabel291 = Instance.new("TextLabel")
310
Part292 = Instance.new("Part")
311
SpecialMesh293 = Instance.new("SpecialMesh")
312
Weld294 = Instance.new("Weld")
313
Weld295 = Instance.new("Weld")
314
Weld296 = Instance.new("Weld")
315
Weld297 = Instance.new("Weld")
316
Weld298 = Instance.new("Weld")
317
Weld299 = Instance.new("Weld")
318
Weld300 = Instance.new("Weld")
319
Weld301 = Instance.new("Weld")
320
Weld302 = Instance.new("Weld")
321
Weld303 = Instance.new("Weld")
322
Weld304 = Instance.new("Weld")
323
Weld305 = Instance.new("Weld")
324
Weld306 = Instance.new("Weld")
325
Weld307 = Instance.new("Weld")
326
Weld308 = Instance.new("Weld")
327
Weld309 = Instance.new("Weld")
328
Weld310 = Instance.new("Weld")
329
Weld311 = Instance.new("Weld")
330
Weld312 = Instance.new("Weld")
331
Weld313 = Instance.new("Weld")
332
Weld314 = Instance.new("Weld")
333
Weld315 = Instance.new("Weld")
334
Weld316 = Instance.new("Weld")
335
Weld317 = Instance.new("Weld")
336
Weld318 = Instance.new("Weld")
337
Weld319 = Instance.new("Weld")
338
Weld320 = Instance.new("Weld")
339
Weld321 = Instance.new("Weld")
340
Weld322 = Instance.new("Weld")
341
Weld323 = Instance.new("Weld")
342
Weld324 = Instance.new("Weld")
343
Weld325 = Instance.new("Weld")
344
Weld326 = Instance.new("Weld")
345
Weld327 = Instance.new("Weld")
346
Weld328 = Instance.new("Weld")
347
Weld329 = Instance.new("Weld")
348
Weld330 = Instance.new("Weld")
349
Weld331 = Instance.new("Weld")
350
Weld332 = Instance.new("Weld")
351
Weld333 = Instance.new("Weld")
352
Weld334 = Instance.new("Weld")
353
Weld335 = Instance.new("Weld")
354
Weld336 = Instance.new("Weld")
355
Weld337 = Instance.new("Weld")
356
Weld338 = Instance.new("Weld")
357
Weld339 = Instance.new("Weld")
358
Weld340 = Instance.new("Weld")
359
Weld341 = Instance.new("Weld")
360
Weld342 = Instance.new("Weld")
361
Weld343 = Instance.new("Weld")
362
Weld344 = Instance.new("Weld")
363
Weld345 = Instance.new("Weld")
364
Weld346 = Instance.new("Weld")
365
Weld347 = Instance.new("Weld")
366
Weld348 = Instance.new("Weld")
367
Weld349 = Instance.new("Weld")
368
Weld350 = Instance.new("Weld")
369
Weld351 = Instance.new("Weld")
370
Weld352 = Instance.new("Weld")
371
Weld353 = Instance.new("Weld")
372
Weld354 = Instance.new("Weld")
373
Weld355 = Instance.new("Weld")
374
Weld356 = Instance.new("Weld")
375
Weld357 = Instance.new("Weld")
376
Weld358 = Instance.new("Weld")
377
Weld359 = Instance.new("Weld")
378
Weld360 = Instance.new("Weld")
379
Weld361 = Instance.new("Weld")
380
Weld362 = Instance.new("Weld")
381
Weld363 = Instance.new("Weld")
382
Weld364 = Instance.new("Weld")
383
Weld365 = Instance.new("Weld")
384
Weld366 = Instance.new("Weld")
385
Part367 = Instance.new("Part")
386
Sound368 = Instance.new("Sound")
387
Sound369 = Instance.new("Sound")
388
Part370 = Instance.new("Part")
389
Sound371 = Instance.new("Sound")
390
Sound372 = Instance.new("Sound")
391
Model373 = Instance.new("Model")
392
Part374 = Instance.new("Part")
393
Decal375 = Instance.new("Decal")
394
Part376 = Instance.new("Part")
395
Decal377 = Instance.new("Decal")
396
Motor378 = Instance.new("Motor")
397
Motor379 = Instance.new("Motor")
398
Motor380 = Instance.new("Motor")
399
Motor381 = Instance.new("Motor")
400
Motor382 = Instance.new("Motor")
401
Part383 = Instance.new("Part")
402
Part384 = Instance.new("Part")
403
Part385 = Instance.new("Part")
404
Part386 = Instance.new("Part")
405
SpecialMesh387 = Instance.new("SpecialMesh")
406
Decal388 = Instance.new("Decal")
407
Decal389 = Instance.new("Decal")
408
Humanoid390 = Instance.new("Humanoid")
409
Script391 = Instance.new("Script")
410
Shirt392 = Instance.new("Shirt")
411
Pants393 = Instance.new("Pants")
412
Part394 = Instance.new("Part")
413
Tool0.Name = "Steamer"
414
Tool0.Parent = mas
415
Part1.Parent = Tool0
416
Part1.Material = Enum.Material.SmoothPlastic
417
Part1.Transparency = 1
418
Part1.Rotation = Vector3.new(-60, 0, 165)
419
Part1.Anchored = true
420
Part1.CanCollide = false
421
Part1.FormFactor = Enum.FormFactor.Custom
422
Part1.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
423
Part1.CFrame = CFrame.new(1435.38062, 48.6328773, -1311.01868, -0.965924263, -0.258825004, -6.07067022e-07, 0.12940903, -0.482951164, 0.866032064, -0.22415106, 0.836521268, 0.499988496)
424
Part1.BottomSurface = Enum.SurfaceType.Smooth
425
Part1.TopSurface = Enum.SurfaceType.Smooth
426
Part1.Position = Vector3.new(1435.38062, 48.6328773, -1311.01868)
427
Part1.Orientation = Vector3.new(-60, 0, 165)
428
CylinderMesh2.Parent = Part1
429
CylinderMesh2.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
430
CylinderMesh2.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
431
Part3.Parent = Tool0
432
Part3.Material = Enum.Material.SmoothPlastic
433
Part3.BrickColor = BrickColor.new("Nougat")
434
Part3.Transparency = 1
435
Part3.Rotation = Vector3.new(180, 0, 90)
436
Part3.Anchored = true
437
Part3.CanCollide = false
438
Part3.FormFactor = Enum.FormFactor.Custom
439
Part3.Size = Vector3.new(0.39847663, 0.339129031, 0.423911244)
440
Part3.CFrame = CFrame.new(1434.30396, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
441
Part3.BottomSurface = Enum.SurfaceType.Smooth
442
Part3.TopSurface = Enum.SurfaceType.Smooth
443
Part3.Color = Color3.new(0.8, 0.556863, 0.411765)
444
Part3.Position = Vector3.new(1434.30396, 48.923233, -1310.87183)
445
Part3.Orientation = Vector3.new(0, -180, -90)
446
Part3.Color = Color3.new(0.8, 0.556863, 0.411765)
447
CylinderMesh4.Parent = Part3
448
Part5.Parent = Tool0
449
Part5.Material = Enum.Material.SmoothPlastic
450
Part5.BrickColor = BrickColor.new("Dark stone grey")
451
Part5.Transparency = 1
452
Part5.Rotation = Vector3.new(133.479996, 38.0400009, -171.679993)
453
Part5.Anchored = true
454
Part5.CanCollide = false
455
Part5.FormFactor = Enum.FormFactor.Custom
456
Part5.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
457
Part5.CFrame = CFrame.new(1435.09131, 49.0662308, -1311.1488, -0.779332995, 0.114002213, 0.616152287, -0.342794985, 0.745554209, -0.571524739, -0.524529994, -0.656622052, -0.54195559)
458
Part5.BottomSurface = Enum.SurfaceType.Smooth
459
Part5.TopSurface = Enum.SurfaceType.Smooth
460
Part5.Color = Color3.new(0.388235, 0.372549, 0.384314)
461
Part5.Position = Vector3.new(1435.09131, 49.0662308, -1311.1488)
462
Part5.Orientation = Vector3.new(34.8600006, 131.330002, -24.6899986)
463
Part5.Color = Color3.new(0.388235, 0.372549, 0.384314)
464
CylinderMesh6.Parent = Part5
465
CylinderMesh6.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
466
CylinderMesh6.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
467
Part7.Parent = Tool0
468
Part7.Material = Enum.Material.SmoothPlastic
469
Part7.BrickColor = BrickColor.new("Black")
470
Part7.Transparency = 1
471
Part7.Rotation = Vector3.new(-105, 75, 90)
472
Part7.Anchored = true
473
Part7.CanCollide = false
474
Part7.FormFactor = Enum.FormFactor.Custom
475
Part7.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
476
Part7.CFrame = CFrame.new(1434.85657, 49.1090851, -1311.08801, 0, -0.258817911, 0.965926111, -0.258811951, 0.93301481, 0.249999404, -0.96592778, -0.24999322, -0.0669851676)
477
Part7.BottomSurface = Enum.SurfaceType.Smooth
478
Part7.TopSurface = Enum.SurfaceType.Smooth
479
Part7.Color = Color3.new(0.105882, 0.164706, 0.207843)
480
Part7.Position = Vector3.new(1434.85657, 49.1090851, -1311.08801)
481
Part7.Orientation = Vector3.new(-14.4799995, 93.9700012, -15.5)
482
Part7.Color = Color3.new(0.105882, 0.164706, 0.207843)
483
CylinderMesh8.Parent = Part7
484
CylinderMesh8.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
485
CylinderMesh8.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
486
Part9.Parent = Tool0
487
Part9.Material = Enum.Material.SmoothPlastic
488
Part9.BrickColor = BrickColor.new("Dark stone grey")
489
Part9.Transparency = 1
490
Part9.Rotation = Vector3.new(15.0099993, 62.4199982, 2.98000002)
491
Part9.Anchored = true
492
Part9.CanCollide = false
493
Part9.FormFactor = Enum.FormFactor.Custom
494
Part9.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
495
Part9.CFrame = CFrame.new(1435.07556, 49.067543, -1310.66211, 0.462388188, -0.0240549594, 0.886351287, 0.2793791, 0.95266664, -0.119890675, -0.841513276, 0.303064078, 0.447222203)
496
Part9.BottomSurface = Enum.SurfaceType.Smooth
497
Part9.TopSurface = Enum.SurfaceType.Smooth
498
Part9.Color = Color3.new(0.388235, 0.372549, 0.384314)
499
Part9.Position = Vector3.new(1435.07556, 49.067543, -1310.66211)
500
Part9.Orientation = Vector3.new(6.88999987, 63.2299995, 16.3400002)
501
Part9.Color = Color3.new(0.388235, 0.372549, 0.384314)
502
CylinderMesh10.Parent = Part9
503
CylinderMesh10.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
504
CylinderMesh10.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
505
Part11.Parent = Tool0
506
Part11.Material = Enum.Material.SmoothPlastic
507
Part11.BrickColor = BrickColor.new("Dark stone grey")
508
Part11.Transparency = 1
509
Part11.Rotation = Vector3.new(180, 0, 90)
510
Part11.Anchored = true
511
Part11.CanCollide = false
512
Part11.FormFactor = Enum.FormFactor.Custom
513
Part11.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
514
Part11.CFrame = CFrame.new(1433.61292, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
515
Part11.BottomSurface = Enum.SurfaceType.Smooth
516
Part11.TopSurface = Enum.SurfaceType.Smooth
517
Part11.Color = Color3.new(0.388235, 0.372549, 0.384314)
518
Part11.Position = Vector3.new(1433.61292, 48.9232292, -1310.87183)
519
Part11.Orientation = Vector3.new(0, -180, -90)
520
Part11.Color = Color3.new(0.388235, 0.372549, 0.384314)
521
CylinderMesh12.Parent = Part11
522
CylinderMesh12.Scale = Vector3.new(0.303541601, 0.0314008482, 0.523347139)
523
CylinderMesh12.Scale = Vector3.new(0.303541601, 0.0314008482, 0.523347139)
524
Part13.Parent = Tool0
525
Part13.Material = Enum.Material.SmoothPlastic
526
Part13.BrickColor = BrickColor.new("Really black")
527
Part13.Transparency = 1
528
Part13.Rotation = Vector3.new(0, 90, 0)
529
Part13.Anchored = true
530
Part13.CanCollide = false
531
Part13.FormFactor = Enum.FormFactor.Custom
532
Part13.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
533
Part13.CFrame = CFrame.new(1436.875, 48.5038071, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
534
Part13.BackSurface = Enum.SurfaceType.SmoothNoOutlines
535
Part13.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
536
Part13.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
537
Part13.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
538
Part13.RightSurface = Enum.SurfaceType.SmoothNoOutlines
539
Part13.TopSurface = Enum.SurfaceType.SmoothNoOutlines
540
Part13.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
541
Part13.Position = Vector3.new(1436.875, 48.5038071, -1310.87622)
542
Part13.Orientation = Vector3.new(0, 90, 0)
543
Part13.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
544
SpecialMesh14.Parent = Part13
545
SpecialMesh14.Scale = Vector3.new(0.167988077, 0.439353347, 0.245521545)
546
SpecialMesh14.MeshType = Enum.MeshType.Brick
547
SpecialMesh14.Scale = Vector3.new(0.167988077, 0.439353347, 0.245521545)
548
Part15.Parent = Tool0
549
Part15.Material = Enum.Material.SmoothPlastic
550
Part15.BrickColor = BrickColor.new("Brick yellow")
551
Part15.Transparency = 1
552
Part15.Rotation = Vector3.new(-60, 0, 135)
553
Part15.Anchored = true
554
Part15.CanCollide = false
555
Part15.FormFactor = Enum.FormFactor.Custom
556
Part15.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
557
Part15.CFrame = CFrame.new(1435.32275, 48.6293831, -1311.01672, -0.707099199, -0.707114458, 1.28547924e-06, 0.353550076, -0.353540927, 0.866031885, -0.612383127, 0.612370908, 0.499988824)
558
Part15.BottomSurface = Enum.SurfaceType.Smooth
559
Part15.TopSurface = Enum.SurfaceType.Smooth
560
Part15.Color = Color3.new(0.843137, 0.772549, 0.603922)
561
Part15.Position = Vector3.new(1435.32275, 48.6293831, -1311.01672)
562
Part15.Orientation = Vector3.new(-60, 0, 135)
563
Part15.Color = Color3.new(0.843137, 0.772549, 0.603922)
564
CylinderMesh16.Parent = Part15
565
CylinderMesh16.Scale = Vector3.new(0.291783929, 0.705144346, 0.170207277)
566
CylinderMesh16.Scale = Vector3.new(0.291783929, 0.705144346, 0.170207277)
567
Part17.Name = "AimPart"
568
Part17.Parent = Tool0
569
Part17.Material = Enum.Material.SmoothPlastic
570
Part17.Transparency = 1
571
Part17.Rotation = Vector3.new(90, 87.8300018, -90)
572
Part17.Anchored = true
573
Part17.CanCollide = false
574
Part17.FormFactor = Enum.FormFactor.Custom
575
Part17.Size = Vector3.new(0.300000012, 0.200000003, 0.200000003)
576
Part17.CFrame = CFrame.new(1436.29102, 49.267807, -1310.8728, 0, 0.0378389955, 0.99928385, 0, 0.99928385, -0.0378389955, -1, 0, 0)
577
Part17.BottomSurface = Enum.SurfaceType.Smooth
578
Part17.TopSurface = Enum.SurfaceType.Smooth
579
Part17.Position = Vector3.new(1436.29102, 49.267807, -1310.8728)
580
Part17.Orientation = Vector3.new(2.16999984, 90, 0)
581
Part18.Name = "Main"
582
Part18.Parent = Tool0
583
Part18.Material = Enum.Material.SmoothPlastic
584
Part18.BrickColor = BrickColor.new("Really black")
585
Part18.Transparency = 1
586
Part18.Rotation = Vector3.new(0, 0, 90)
587
Part18.Anchored = true
588
Part18.CanCollide = false
589
Part18.FormFactor = Enum.FormFactor.Custom
590
Part18.Size = Vector3.new(0.25, 0.25, 0.25)
591
Part18.CFrame = CFrame.new(1433.32568, 48.9478035, -1310.8728, 0, -1, 0, 1, 0, -0, 0, 0, 1)
592
Part18.BottomSurface = Enum.SurfaceType.Smooth
593
Part18.TopSurface = Enum.SurfaceType.Smooth
594
Part18.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
595
Part18.Position = Vector3.new(1433.32568, 48.9478035, -1310.8728)
596
Part18.Orientation = Vector3.new(0, 0, 90)
597
Part18.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
598
PointLight19.Name = "FlashFX"
599
PointLight19.Parent = Part18
600
PointLight19.Color = Color3.new(0.211765, 1, 0.054902)
601
PointLight19.Enabled = false
602
PointLight19.Brightness = 10
603
PointLight19.Range = 6
604
PointLight19.Shadows = true
605
PointLight19.Color = Color3.new(0.211765, 1, 0.054902)
606
BillboardGui20.Name = "FlashGui"
607
BillboardGui20.Parent = Part18
608
BillboardGui20.Size = UDim2.new(1.10000002, 0, 1.10000002, 0)
609
BillboardGui20.Enabled = false
610
ImageLabel21.Name = "Label"
611
ImageLabel21.Parent = BillboardGui20
612
ImageLabel21.Transparency = 1
613
ImageLabel21.Size = UDim2.new(1, 0, 1, 0)
614
ImageLabel21.BackgroundTransparency = 1
615
ImageLabel21.Image = "http://www.roblox.com/asset/?id=192664810"
616
ImageLabel21.ImageColor3 = Color3.new(0, 1, 0.00392157)
617
CylinderMesh22.Parent = Part18
618
CylinderMesh22.Offset = Vector3.new(0, -0.248999998, 0)
619
CylinderMesh22.Scale = Vector3.new(0.600000024, 1, 0.600000024)
620
CylinderMesh22.Scale = Vector3.new(0.600000024, 1, 0.600000024)
621
Part23.Name = "Handle"
622
Part23.Parent = Tool0
623
Part23.Material = Enum.Material.SmoothPlastic
624
Part23.Transparency = 1
625
Part23.Rotation = Vector3.new(0, 90, 0)
626
Part23.Anchored = true
627
Part23.CanCollide = false
628
Part23.FormFactor = Enum.FormFactor.Custom
629
Part23.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
630
Part23.CFrame = CFrame.new(1435.87061, 48.4373131, -1310.86279, 0, 0, 1, 0, 1, -0, -1, 0, 0)
631
Part23.BottomSurface = Enum.SurfaceType.Smooth
632
Part23.TopSurface = Enum.SurfaceType.Smooth
633
Part23.Position = Vector3.new(1435.87061, 48.4373131, -1310.86279)
634
Part23.Orientation = Vector3.new(0, 90, 0)
635
Sound24.Name = "FireSound"
636
Sound24.Parent = Part23
637
Sound24.Pitch = 0.20000000298023
638-
Sound24.SoundId = "rbxassetid://823426534"
638+
Sound24.SoundId = "rbxassetid://0"
639
Sound24.Volume = 10
640
Sound25.Name = "ReloadSound"
641
Sound25.Parent = Part23
642
Sound25.Pitch = 0.20000000298023
643-
Sound25.SoundId = "rbxassetid://811242564"
643+
Sound25.SoundId = "rbxassetid://0"
644
Sound25.Volume = 10
645
Part26.Parent = Tool0
646
Part26.Material = Enum.Material.SmoothPlastic
647
Part26.BrickColor = BrickColor.new("Nougat")
648
Part26.Transparency = 1
649
Part26.Rotation = Vector3.new(180, 0, 90)
650
Part26.Anchored = true
651
Part26.CanCollide = false
652
Part26.FormFactor = Enum.FormFactor.Custom
653
Part26.Size = Vector3.new(0.27978155, 0.822387338, 0.423911244)
654
Part26.CFrame = CFrame.new(1435.18982, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
655
Part26.BottomSurface = Enum.SurfaceType.Smooth
656
Part26.TopSurface = Enum.SurfaceType.Smooth
657
Part26.Color = Color3.new(0.8, 0.556863, 0.411765)
658
Part26.Position = Vector3.new(1435.18982, 48.9232292, -1310.87183)
659
Part26.Orientation = Vector3.new(0, -180, -90)
660
Part26.Color = Color3.new(0.8, 0.556863, 0.411765)
661
CylinderMesh27.Parent = Part26
662
Part28.Name = "Smooth Block Model"
663
Part28.Parent = Tool0
664
Part28.Material = Enum.Material.SmoothPlastic
665
Part28.BrickColor = BrickColor.new("Dark stone grey")
666
Part28.Transparency = 1
667
Part28.Rotation = Vector3.new(-90, -15, -90)
668
Part28.Anchored = true
669
Part28.CanCollide = false
670
Part28.FormFactor = Enum.FormFactor.Custom
671
Part28.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
672
Part28.CFrame = CFrame.new(1435.97473, 48.6492271, -1310.87183, 0, 0.965925872, -0.258818984, 0, 0.258818984, 0.965925872, 1, 0, 0)
673
Part28.BackSurface = Enum.SurfaceType.SmoothNoOutlines
674
Part28.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
675
Part28.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
676
Part28.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
677
Part28.RightSurface = Enum.SurfaceType.SmoothNoOutlines
678
Part28.TopSurface = Enum.SurfaceType.SmoothNoOutlines
679
Part28.Color = Color3.new(0.388235, 0.372549, 0.384314)
680
Part28.Position = Vector3.new(1435.97473, 48.6492271, -1310.87183)
681
Part28.Orientation = Vector3.new(-75, -90, 0)
682
Part28.Color = Color3.new(0.388235, 0.372549, 0.384314)
683
SpecialMesh29.Parent = Part28
684
SpecialMesh29.Scale = Vector3.new(0.291783631, 0.170207217, 0.437675893)
685
SpecialMesh29.MeshType = Enum.MeshType.Wedge
686
SpecialMesh29.Scale = Vector3.new(0.291783631, 0.170207217, 0.437675893)
687
Part30.Name = "Mag"
688
Part30.Parent = Tool0
689
Part30.Material = Enum.Material.SmoothPlastic
690
Part30.BrickColor = BrickColor.new("Dark stone grey")
691
Part30.Transparency = 1
692
Part30.Rotation = Vector3.new(0, 90, 0)
693
Part30.Anchored = true
694
Part30.CanCollide = false
695
Part30.FormFactor = Enum.FormFactor.Custom
696
Part30.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
697
Part30.CFrame = CFrame.new(1435.36523, 48.273735, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
698
Part30.BottomSurface = Enum.SurfaceType.Smooth
699
Part30.TopSurface = Enum.SurfaceType.Smooth
700
Part30.Color = Color3.new(0.388235, 0.372549, 0.384314)
701
Part30.Position = Vector3.new(1435.36523, 48.273735, -1310.88025)
702
Part30.Orientation = Vector3.new(0, 90, 0)
703
Part30.Color = Color3.new(0.388235, 0.372549, 0.384314)
704
SpecialMesh31.Parent = Part30
705
SpecialMesh31.Scale = Vector3.new(0.630397201, 0.190620154, 0.390246093)
706
SpecialMesh31.MeshType = Enum.MeshType.Brick
707
SpecialMesh31.Scale = Vector3.new(0.630397201, 0.190620154, 0.390246093)
708
Decal32.Parent = Part30
709
Decal32.Texture = "http://www.roblox.com/asset/?id=2276240"
710
Decal32.Face = Enum.NormalId.Right
711
Decal33.Parent = Part30
712
Decal33.Texture = "http://www.roblox.com/asset/?id=2276240"
713
Decal33.Face = Enum.NormalId.Left
714
Part34.Name = "Mag"
715
Part34.Parent = Tool0
716
Part34.Material = Enum.Material.SmoothPlastic
717
Part34.BrickColor = BrickColor.new("Dark stone grey")
718
Part34.Transparency = 1
719
Part34.Rotation = Vector3.new(0, 90, 0)
720
Part34.Anchored = true
721
Part34.CanCollide = false
722
Part34.FormFactor = Enum.FormFactor.Custom
723
Part34.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
724
Part34.CFrame = CFrame.new(1435.31006, 48.3118896, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
725
Part34.BottomSurface = Enum.SurfaceType.Smooth
726
Part34.TopSurface = Enum.SurfaceType.Smooth
727
Part34.Color = Color3.new(0.388235, 0.372549, 0.384314)
728
Part34.Position = Vector3.new(1435.31006, 48.3118896, -1310.88025)
729
Part34.Orientation = Vector3.new(0, 90, 0)
730
Part34.Color = Color3.new(0.388235, 0.372549, 0.384314)
731
SpecialMesh35.Parent = Part34
732
SpecialMesh35.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
733
SpecialMesh35.MeshType = Enum.MeshType.Brick
734
SpecialMesh35.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
735
Part36.Name = "Mag"
736
Part36.Parent = Tool0
737
Part36.Material = Enum.Material.SmoothPlastic
738
Part36.BrickColor = BrickColor.new("Dark stone grey")
739
Part36.Transparency = 1
740
Part36.Rotation = Vector3.new(0, 90, 0)
741
Part36.Anchored = true
742
Part36.CanCollide = false
743
Part36.FormFactor = Enum.FormFactor.Custom
744
Part36.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
745
Part36.CFrame = CFrame.new(1435.42041, 48.3114662, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
746
Part36.BottomSurface = Enum.SurfaceType.Smooth
747
Part36.TopSurface = Enum.SurfaceType.Smooth
748
Part36.Color = Color3.new(0.388235, 0.372549, 0.384314)
749
Part36.Position = Vector3.new(1435.42041, 48.3114662, -1310.88025)
750
Part36.Orientation = Vector3.new(0, 90, 0)
751
Part36.Color = Color3.new(0.388235, 0.372549, 0.384314)
752
SpecialMesh37.Parent = Part36
753
SpecialMesh37.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
754
SpecialMesh37.MeshType = Enum.MeshType.Brick
755
SpecialMesh37.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
756
Part38.Name = "Mag"
757
Part38.Parent = Tool0
758
Part38.Material = Enum.Material.SmoothPlastic
759
Part38.BrickColor = BrickColor.new("Cool yellow")
760
Part38.Transparency = 1
761
Part38.Rotation = Vector3.new(0, 90, 0)
762
Part38.Anchored = true
763
Part38.CanCollide = false
764
Part38.FormFactor = Enum.FormFactor.Custom
765
Part38.Size = Vector3.new(1, 1, 1)
766
Part38.CFrame = CFrame.new(1435.36523, 48.3523445, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
767
Part38.BottomSurface = Enum.SurfaceType.Smooth
768
Part38.TopSurface = Enum.SurfaceType.Smooth
769
Part38.Color = Color3.new(0.992157, 0.917647, 0.552941)
770
Part38.Position = Vector3.new(1435.36523, 48.3523445, -1310.88025)
771
Part38.Orientation = Vector3.new(0, 90, 0)
772
Part38.Color = Color3.new(0.992157, 0.917647, 0.552941)
773
CylinderMesh39.Parent = Part38
774
CylinderMesh39.Scale = Vector3.new(0.178042755, 0.203477502, 0.194999233)
775
CylinderMesh39.Scale = Vector3.new(0.178042755, 0.203477502, 0.194999233)
776
Part40.Name = "Mag"
777
Part40.Parent = Tool0
778
Part40.Material = Enum.Material.SmoothPlastic
779
Part40.BrickColor = BrickColor.new("Dark stone grey")
780
Part40.Transparency = 1
781
Part40.Rotation = Vector3.new(0, 90, 0)
782
Part40.Anchored = true
783
Part40.CanCollide = false
784
Part40.FormFactor = Enum.FormFactor.Custom
785
Part40.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
786
Part40.CFrame = CFrame.new(1435.36523, 48.373539, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
787
Part40.BottomSurface = Enum.SurfaceType.Smooth
788
Part40.TopSurface = Enum.SurfaceType.Smooth
789
Part40.Color = Color3.new(0.388235, 0.372549, 0.384314)
790
Part40.Position = Vector3.new(1435.36523, 48.373539, -1310.88025)
791
Part40.Orientation = Vector3.new(0, 90, 0)
792
Part40.Color = Color3.new(0.388235, 0.372549, 0.384314)
793
CylinderMesh41.Parent = Part40
794
CylinderMesh41.Scale = Vector3.new(0.240739763, 0.0314008482, 0.240739793)
795
CylinderMesh41.Scale = Vector3.new(0.240739763, 0.0314008482, 0.240739793)
796
Part42.Name = "Mag"
797
Part42.Parent = Tool0
798
Part42.Material = Enum.Material.SmoothPlastic
799
Part42.BrickColor = BrickColor.new("Bright red")
800
Part42.Transparency = 1
801
Part42.Rotation = Vector3.new(0, 90, 0)
802
Part42.Anchored = true
803
Part42.CanCollide = false
804
Part42.FormFactor = Enum.FormFactor.Custom
805
Part42.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
806
Part42.CFrame = CFrame.new(1435.36523, 48.3438797, -1310.88013, 0, 0, 1, 0, 1, -0, -1, 0, 0)
807
Part42.BottomSurface = Enum.SurfaceType.Smooth
808
Part42.TopSurface = Enum.SurfaceType.Smooth
809
Part42.Color = Color3.new(0.768628, 0.156863, 0.109804)
810
Part42.Position = Vector3.new(1435.36523, 48.3438797, -1310.88013)
811
Part42.Orientation = Vector3.new(0, 90, 0)
812
Part42.Color = Color3.new(0.768628, 0.156863, 0.109804)
813
CylinderMesh43.Parent = Part42
814
CylinderMesh43.Scale = Vector3.new(0.640904009, 0.0300189275, 0.690435052)
815
CylinderMesh43.Scale = Vector3.new(0.640904009, 0.0300189275, 0.690435052)
816
Part44.Name = "Mag"
817
Part44.Parent = Tool0
818
Part44.Material = Enum.Material.SmoothPlastic
819
Part44.BrickColor = BrickColor.new("Dark stone grey")
820
Part44.Transparency = 1
821
Part44.Rotation = Vector3.new(90, 0, -90)
822
Part44.Anchored = true
823
Part44.CanCollide = false
824
Part44.FormFactor = Enum.FormFactor.Custom
825
Part44.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
826
Part44.CFrame = CFrame.new(1435.36548, 48.474556, -1310.88025, 0, 1, 0, 0, 0, -1, -1, 0, 0)
827
Part44.BottomSurface = Enum.SurfaceType.Smooth
828
Part44.TopSurface = Enum.SurfaceType.Smooth
829
Part44.Color = Color3.new(0.388235, 0.372549, 0.384314)
830
Part44.Position = Vector3.new(1435.36548, 48.474556, -1310.88025)
831
Part44.Orientation = Vector3.new(90, 90, 0)
832
Part44.Color = Color3.new(0.388235, 0.372549, 0.384314)
833
SpecialMesh45.Parent = Part44
834
SpecialMesh45.Scale = Vector3.new(0.319065601, 0.31906575, 0.191439345)
835
SpecialMesh45.MeshType = Enum.MeshType.Sphere
836
SpecialMesh45.Scale = Vector3.new(0.319065601, 0.31906575, 0.191439345)
837
Part46.Name = "Mag"
838
Part46.Parent = Tool0
839
Part46.Material = Enum.Material.SmoothPlastic
840
Part46.BrickColor = BrickColor.new("Dark stone grey")
841
Part46.Transparency = 1
842
Part46.Rotation = Vector3.new(0, 90, 0)
843
Part46.Anchored = true
844
Part46.CanCollide = false
845
Part46.FormFactor = Enum.FormFactor.Custom
846
Part46.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
847
Part46.CFrame = CFrame.new(1435.36523, 48.4667969, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
848
Part46.BottomSurface = Enum.SurfaceType.Smooth
849
Part46.TopSurface = Enum.SurfaceType.Smooth
850
Part46.Color = Color3.new(0.388235, 0.372549, 0.384314)
851
Part46.Position = Vector3.new(1435.36523, 48.4667969, -1310.88025)
852
Part46.Orientation = Vector3.new(0, 90, 0)
853
Part46.Color = Color3.new(0.388235, 0.372549, 0.384314)
854
CylinderMesh47.Parent = Part46
855
CylinderMesh47.Scale = Vector3.new(0.219805866, 0.0314008482, 0.240739793)
856
CylinderMesh47.Scale = Vector3.new(0.219805866, 0.0314008482, 0.240739793)
857
Part48.Name = "Mag"
858
Part48.Parent = Tool0
859
Part48.Material = Enum.Material.SmoothPlastic
860
Part48.BrickColor = BrickColor.new("Dark stone grey")
861
Part48.Transparency = 1
862
Part48.Rotation = Vector3.new(0, 90, 0)
863
Part48.Anchored = true
864
Part48.CanCollide = false
865
Part48.FormFactor = Enum.FormFactor.Custom
866
Part48.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
867
Part48.CFrame = CFrame.new(1435.36108, 48.4771957, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
868
Part48.BottomSurface = Enum.SurfaceType.Smooth
869
Part48.TopSurface = Enum.SurfaceType.Smooth
870
Part48.Color = Color3.new(0.388235, 0.372549, 0.384314)
871
Part48.Position = Vector3.new(1435.36108, 48.4771957, -1310.87622)
872
Part48.Orientation = Vector3.new(0, 90, 0)
873
Part48.Color = Color3.new(0.388235, 0.372549, 0.384314)
874
SpecialMesh49.Parent = Part48
875
SpecialMesh49.Scale = Vector3.new(0.660416245, 0.190620154, 0.180113614)
876
SpecialMesh49.MeshType = Enum.MeshType.Brick
877
SpecialMesh49.Scale = Vector3.new(0.660416245, 0.190620154, 0.180113614)
878
Decal50.Parent = Part48
879
Decal50.Texture = "http://www.roblox.com/asset/?id=2276263"
880
Decal50.Face = Enum.NormalId.Right
881
Decal51.Parent = Part48
882
Decal51.Texture = "http://www.roblox.com/asset/?id=2276263"
883
Decal51.Face = Enum.NormalId.Left
884
Part52.Parent = Tool0
885
Part52.Material = Enum.Material.SmoothPlastic
886
Part52.BrickColor = BrickColor.new("Dark stone grey")
887
Part52.Transparency = 1
888
Part52.Rotation = Vector3.new(-90, 0, 90)
889
Part52.Anchored = true
890
Part52.CanCollide = false
891
Part52.FormFactor = Enum.FormFactor.Custom
892
Part52.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
893
Part52.CFrame = CFrame.new(1435.20679, 48.6519432, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
894
Part52.BottomSurface = Enum.SurfaceType.Smooth
895
Part52.TopSurface = Enum.SurfaceType.Smooth
896
Part52.Color = Color3.new(0.388235, 0.372549, 0.384314)
897
Part52.Position = Vector3.new(1435.20679, 48.6519432, -1310.87183)
898
Part52.Orientation = Vector3.new(-90, 90, 0)
899
Part52.Color = Color3.new(0.388235, 0.372549, 0.384314)
900
SpecialMesh53.Parent = Part52
901
SpecialMesh53.Scale = Vector3.new(0.236344978, 2.93461728, 0.17725873)
902
SpecialMesh53.MeshType = Enum.MeshType.Brick
903
SpecialMesh53.Scale = Vector3.new(0.236344978, 2.93461728, 0.17725873)
904
Part54.Parent = Tool0
905
Part54.Material = Enum.Material.SmoothPlastic
906
Part54.BrickColor = BrickColor.new("Dark stone grey")
907
Part54.Transparency = 1
908
Part54.Rotation = Vector3.new(0, 90, 0)
909
Part54.Anchored = true
910
Part54.CanCollide = false
911
Part54.FormFactor = Enum.FormFactor.Custom
912
Part54.Size = Vector3.new(1, 1, 1)
913
Part54.CFrame = CFrame.new(1436.06531, 48.6182861, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
914
Part54.BackSurface = Enum.SurfaceType.SmoothNoOutlines
915
Part54.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
916
Part54.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
917
Part54.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
918
Part54.RightSurface = Enum.SurfaceType.SmoothNoOutlines
919
Part54.TopSurface = Enum.SurfaceType.SmoothNoOutlines
920
Part54.Color = Color3.new(0.388235, 0.372549, 0.384314)
921
Part54.Position = Vector3.new(1436.06531, 48.6182861, -1310.87183)
922
Part54.Orientation = Vector3.new(0, 90, 0)
923
Part54.Color = Color3.new(0.388235, 0.372549, 0.384314)
924
SpecialMesh55.Parent = Part54
925
SpecialMesh55.Scale = Vector3.new(0.0339129046, 0.0423911363, 0.593476057)
926
SpecialMesh55.MeshType = Enum.MeshType.Brick
927
SpecialMesh55.Scale = Vector3.new(0.0339129046, 0.0423911363, 0.593476057)
928
Part56.Parent = Tool0
929
Part56.Material = Enum.Material.SmoothPlastic
930
Part56.BrickColor = BrickColor.new("Dark stone grey")
931
Part56.Transparency = 1
932
Part56.Rotation = Vector3.new(180, 0, 90)
933
Part56.Anchored = true
934
Part56.CanCollide = false
935
Part56.FormFactor = Enum.FormFactor.Custom
936
Part56.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
937
Part56.CFrame = CFrame.new(1433.85034, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
938
Part56.BottomSurface = Enum.SurfaceType.Smooth
939
Part56.TopSurface = Enum.SurfaceType.Smooth
940
Part56.Color = Color3.new(0.388235, 0.372549, 0.384314)
941
Part56.Position = Vector3.new(1433.85034, 48.923233, -1310.87183)
942
Part56.Orientation = Vector3.new(0, -180, -90)
943
Part56.Color = Color3.new(0.388235, 0.372549, 0.384314)
944
CylinderMesh57.Parent = Part56
945
CylinderMesh57.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
946
CylinderMesh57.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
947
Part58.Parent = Tool0
948
Part58.Material = Enum.Material.SmoothPlastic
949
Part58.BrickColor = BrickColor.new("Dark stone grey")
950
Part58.Transparency = 1
951
Part58.Rotation = Vector3.new(180, 0, 90)
952
Part58.Anchored = true
953
Part58.CanCollide = false
954
Part58.FormFactor = Enum.FormFactor.Custom
955
Part58.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
956
Part58.CFrame = CFrame.new(1435.21533, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
957
Part58.BottomSurface = Enum.SurfaceType.Smooth
958
Part58.TopSurface = Enum.SurfaceType.Smooth
959
Part58.Color = Color3.new(0.388235, 0.372549, 0.384314)
960
Part58.Position = Vector3.new(1435.21533, 48.9020348, -1310.87183)
961
Part58.Orientation = Vector3.new(0, -180, -90)
962
Part58.Color = Color3.new(0.388235, 0.372549, 0.384314)
963
CylinderMesh59.Parent = Part58
964
CylinderMesh59.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
965
CylinderMesh59.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
966
Part60.Parent = Tool0
967
Part60.Material = Enum.Material.SmoothPlastic
968
Part60.BrickColor = BrickColor.new("Dark stone grey")
969
Part60.Transparency = 1
970
Part60.Rotation = Vector3.new(90, 75, -90)
971
Part60.Anchored = true
972
Part60.CanCollide = false
973
Part60.FormFactor = Enum.FormFactor.Custom
974
Part60.Size = Vector3.new(1, 1, 1)
975
Part60.CFrame = CFrame.new(1436.37439, 48.852356, -1310.87183, 0, 0.258818984, 0.965925872, 0, 0.965925872, -0.258818984, -1, 0, 0)
976
Part60.BottomSurface = Enum.SurfaceType.Smooth
977
Part60.TopSurface = Enum.SurfaceType.Smooth
978
Part60.Color = Color3.new(0.388235, 0.372549, 0.384314)
979
Part60.Position = Vector3.new(1436.37439, 48.852356, -1310.87183)
980
Part60.Orientation = Vector3.new(15, 90, 0)
981
Part60.Color = Color3.new(0.388235, 0.372549, 0.384314)
982
SpecialMesh61.Parent = Part60
983
SpecialMesh61.Scale = Vector3.new(0.0339129046, 0.050869368, 0.568041325)
984
SpecialMesh61.MeshType = Enum.MeshType.Brick
985
SpecialMesh61.Scale = Vector3.new(0.0339129046, 0.050869368, 0.568041325)
986
Part62.Parent = Tool0
987
Part62.Material = Enum.Material.SmoothPlastic
988
Part62.BrickColor = BrickColor.new("Medium green")
989
Part62.Reflectance = 0.40000000596046
990
Part62.Transparency = 1
991
Part62.Rotation = Vector3.new(-90, 0, -90)
992
Part62.Anchored = true
993
Part62.CanCollide = false
994
Part62.FormFactor = Enum.FormFactor.Custom
995
Part62.Size = Vector3.new(1, 1, 1)
996
Part62.CFrame = CFrame.new(1436.0885, 48.923233, -1310.96509, 0, 1, 0, 0, 0, 1, 1, 0, 0)
997
Part62.BottomSurface = Enum.SurfaceType.Smooth
998
Part62.TopSurface = Enum.SurfaceType.Smooth
999
Part62.Color = Color3.new(0.631373, 0.768628, 0.54902)
1000
Part62.Position = Vector3.new(1436.0885, 48.923233, -1310.96509)
1001
Part62.Orientation = Vector3.new(-90, -90, 0)
1002
Part62.Color = Color3.new(0.631373, 0.768628, 0.54902)
1003
CylinderMesh63.Parent = Part62
1004
CylinderMesh63.Scale = Vector3.new(0.101738736, 0.754562199, 0.0339129157)
1005
CylinderMesh63.Scale = Vector3.new(0.101738736, 0.754562199, 0.0339129157)
1006
Part64.Parent = Tool0
1007
Part64.Material = Enum.Material.SmoothPlastic
1008
Part64.BrickColor = BrickColor.new("Dark stone grey")
1009
Part64.Transparency = 1
1010
Part64.Rotation = Vector3.new(-150.599991, 32.2399979, -23.1999989)
1011
Part64.Anchored = true
1012
Part64.CanCollide = false
1013
Part64.FormFactor = Enum.FormFactor.Custom
1014
Part64.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
1015
Part64.CFrame = CFrame.new(1434.84216, 49.1045074, -1310.66235, 0.777458727, 0.333219469, 0.533406675, 0.102508962, -0.903908193, 0.415261477, 0.620523751, -0.268169731, -0.73690933)
1016
Part64.BottomSurface = Enum.SurfaceType.Smooth
1017
Part64.TopSurface = Enum.SurfaceType.Smooth
1018
Part64.Color = Color3.new(0.388235, 0.372549, 0.384314)
1019
Part64.Position = Vector3.new(1434.84216, 49.1045074, -1310.66235)
1020
Part64.Orientation = Vector3.new(-24.539999, 144.099991, 173.529999)
1021
Part64.Color = Color3.new(0.388235, 0.372549, 0.384314)
1022
CylinderMesh65.Parent = Part64
1023
CylinderMesh65.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
1024
CylinderMesh65.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
1025
Part66.Parent = Tool0
1026
Part66.Material = Enum.Material.SmoothPlastic
1027
Part66.BrickColor = BrickColor.new("Dark stone grey")
1028
Part66.Transparency = 1
1029
Part66.Rotation = Vector3.new(-90, 0, 90)
1030
Part66.Anchored = true
1031
Part66.CanCollide = false
1032
Part66.FormFactor = Enum.FormFactor.Custom
1033
Part66.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
1034
Part66.CFrame = CFrame.new(1435.35938, 48.60532, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
1035
Part66.BottomSurface = Enum.SurfaceType.Smooth
1036
Part66.TopSurface = Enum.SurfaceType.Smooth
1037
Part66.Color = Color3.new(0.388235, 0.372549, 0.384314)
1038
Part66.Position = Vector3.new(1435.35938, 48.60532, -1310.87183)
1039
Part66.Orientation = Vector3.new(-90, 90, 0)
1040
Part66.Color = Color3.new(0.388235, 0.372549, 0.384314)
1041
SpecialMesh67.Parent = Part66
1042
SpecialMesh67.Scale = Vector3.new(0.188405082, 0.450078517, 0.177938163)
1043
SpecialMesh67.MeshType = Enum.MeshType.Brick
1044
SpecialMesh67.Scale = Vector3.new(0.188405082, 0.450078517, 0.177938163)
1045
Part68.Parent = Tool0
1046
Part68.Material = Enum.Material.SmoothPlastic
1047
Part68.BrickColor = BrickColor.new("Dark stone grey")
1048
Part68.Transparency = 1
1049
Part68.Rotation = Vector3.new(0, 90, 0)
1050
Part68.Anchored = true
1051
Part68.CanCollide = false
1052
Part68.FormFactor = Enum.FormFactor.Custom
1053
Part68.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
1054
Part68.CFrame = CFrame.new(1436.875, 48.6733971, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1055
Part68.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1056
Part68.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1057
Part68.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1058
Part68.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1059
Part68.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1060
Part68.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1061
Part68.Color = Color3.new(0.388235, 0.372549, 0.384314)
1062
Part68.Position = Vector3.new(1436.875, 48.6733971, -1310.87622)
1063
Part68.Orientation = Vector3.new(0, 90, 0)
1064
Part68.Color = Color3.new(0.388235, 0.372549, 0.384314)
1065
SpecialMesh69.Parent = Part68
1066
SpecialMesh69.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
1067
SpecialMesh69.MeshType = Enum.MeshType.Brick
1068
SpecialMesh69.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
1069
Part70.Parent = Tool0
1070
Part70.Material = Enum.Material.SmoothPlastic
1071
Part70.BrickColor = BrickColor.new("Black")
1072
Part70.Transparency = 1
1073
Part70.Rotation = Vector3.new(50.7299995, 45.0399971, -40.1399994)
1074
Part70.Anchored = true
1075
Part70.CanCollide = false
1076
Part70.FormFactor = Enum.FormFactor.Custom
1077
Part70.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1078
Part70.CFrame = CFrame.new(1435.48877, 48.9965515, -1310.62427, 0.540129244, 0.455500901, 0.707657695, 0.0107550053, 0.837061286, -0.547003508, -0.841513395, 0.303063482, 0.447222352)
1079
Part70.BottomSurface = Enum.SurfaceType.Smooth
1080
Part70.TopSurface = Enum.SurfaceType.Smooth
1081
Part70.Color = Color3.new(0.105882, 0.164706, 0.207843)
1082
Part70.Position = Vector3.new(1435.48877, 48.9965515, -1310.62427)
1083
Part70.Orientation = Vector3.new(33.1599998, 57.7099991, 0.74000001)
1084
Part70.Color = Color3.new(0.105882, 0.164706, 0.207843)
1085
CylinderMesh71.Parent = Part70
1086
CylinderMesh71.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
1087
CylinderMesh71.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
1088
Part72.Parent = Tool0
1089
Part72.Material = Enum.Material.SmoothPlastic
1090
Part72.BrickColor = BrickColor.new("Black")
1091
Part72.Transparency = 1
1092
Part72.Rotation = Vector3.new(90, 0, 90)
1093
Part72.Anchored = true
1094
Part72.CanCollide = false
1095
Part72.FormFactor = Enum.FormFactor.Custom
1096
Part72.Size = Vector3.new(1, 1, 1)
1097
Part72.CFrame = CFrame.new(1435.60107, 48.9062729, -1310.87183, 0, -1, 0, 0, 0, -1, 1, 0, 0)
1098
Part72.BottomSurface = Enum.SurfaceType.Smooth
1099
Part72.TopSurface = Enum.SurfaceType.Smooth
1100
Part72.Color = Color3.new(0.105882, 0.164706, 0.207843)
1101
Part72.Position = Vector3.new(1435.60107, 48.9062729, -1310.87183)
1102
Part72.Orientation = Vector3.new(90, -90, 0)
1103
Part72.Color = Color3.new(0.105882, 0.164706, 0.207843)
1104
SpecialMesh73.Parent = Part72
1105
SpecialMesh73.Scale = Vector3.new(0.440867633, 0.186521009, 0.432389498)
1106
SpecialMesh73.MeshType = Enum.MeshType.Sphere
1107
SpecialMesh73.Scale = Vector3.new(0.440867633, 0.186521009, 0.432389498)
1108
Part74.Parent = Tool0
1109
Part74.Material = Enum.Material.SmoothPlastic
1110
Part74.Transparency = 1
1111
Part74.Rotation = Vector3.new(-90, -30, -90)
1112
Part74.Anchored = true
1113
Part74.CanCollide = false
1114
Part74.FormFactor = Enum.FormFactor.Custom
1115
Part74.Size = Vector3.new(1, 1, 1)
1116
Part74.CFrame = CFrame.new(1436.73303, 48.074337, -1310.87183, 0, 0.866025388, -0.500000238, 0, 0.500000238, 0.866025388, 1, 0, 0)
1117
Part74.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1118
Part74.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1119
Part74.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1120
Part74.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1121
Part74.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1122
Part74.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1123
Part74.Position = Vector3.new(1436.73303, 48.074337, -1310.87183)
1124
Part74.Orientation = Vector3.new(-60, -90, 0)
1125
CylinderMesh75.Parent = Part74
1126
CylinderMesh75.Scale = Vector3.new(0.101738736, 0.127173409, 0.0339129157)
1127
CylinderMesh75.Scale = Vector3.new(0.101738736, 0.127173409, 0.0339129157)
1128
Part76.Parent = Tool0
1129
Part76.Material = Enum.Material.SmoothPlastic
1130
Part76.BrickColor = BrickColor.new("Brick yellow")
1131
Part76.Transparency = 1
1132
Part76.Rotation = Vector3.new(-0.870000005, -12.9499998, -157.62999)
1133
Part76.Anchored = true
1134
Part76.CanCollide = false
1135
Part76.FormFactor = Enum.FormFactor.Custom
1136
Part76.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1137
Part76.CFrame = CFrame.new(1435.48877, 48.7422256, -1311.07788, -0.901220024, 0.370889217, -0.224151224, -0.383668005, -0.923353195, 0.0147557557, -0.201498002, 0.0992978215, 0.97444272)
1138
Part76.BottomSurface = Enum.SurfaceType.Smooth
1139
Part76.TopSurface = Enum.SurfaceType.Smooth
1140
Part76.Color = Color3.new(0.843137, 0.772549, 0.603922)
1141
Part76.Position = Vector3.new(1435.48877, 48.7422256, -1311.07788)
1142
Part76.Orientation = Vector3.new(-0.849999964, -12.9499998, -157.440002)
1143
Part76.Color = Color3.new(0.843137, 0.772549, 0.603922)
1144
CylinderMesh77.Parent = Part76
1145
CylinderMesh77.Scale = Vector3.new(0.291783929, 0.525211275, 0.170207277)
1146
CylinderMesh77.Scale = Vector3.new(0.291783929, 0.525211275, 0.170207277)
1147
Part78.Parent = Tool0
1148
Part78.Material = Enum.Material.SmoothPlastic
1149
Part78.BrickColor = BrickColor.new("Dark stone grey")
1150
Part78.Transparency = 1
1151
Part78.Rotation = Vector3.new(180, 0, 90)
1152
Part78.Anchored = true
1153
Part78.CanCollide = false
1154
Part78.FormFactor = Enum.FormFactor.Custom
1155
Part78.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
1156
Part78.CFrame = CFrame.new(1434.98645, 48.9189987, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1157
Part78.BottomSurface = Enum.SurfaceType.Smooth
1158
Part78.TopSurface = Enum.SurfaceType.Smooth
1159
Part78.Color = Color3.new(0.388235, 0.372549, 0.384314)
1160
Part78.Position = Vector3.new(1434.98645, 48.9189987, -1310.87183)
1161
Part78.Orientation = Vector3.new(0, -180, -90)
1162
Part78.Color = Color3.new(0.388235, 0.372549, 0.384314)
1163
CylinderMesh79.Parent = Part78
1164
CylinderMesh79.Scale = Vector3.new(1.55653632, 0.185301825, 1.85301888)
1165
CylinderMesh79.Scale = Vector3.new(1.55653632, 0.185301825, 1.85301888)
1166
Part80.Parent = Tool0
1167
Part80.Material = Enum.Material.SmoothPlastic
1168
Part80.BrickColor = BrickColor.new("Brick yellow")
1169
Part80.Transparency = 1
1170
Part80.Rotation = Vector3.new(43.0599976, 7.44000006, -165.119995)
1171
Part80.Anchored = true
1172
Part80.CanCollide = false
1173
Part80.FormFactor = Enum.FormFactor.Custom
1174
Part80.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1175
Part80.CFrame = CFrame.new(1435.44849, 48.841629, -1311.05676, -0.958352566, 0.25458324, 0.129413933, -0.272977144, -0.683412135, -0.677075565, -0.0839290544, -0.684204161, 0.724445105)
1176
Part80.BottomSurface = Enum.SurfaceType.Smooth
1177
Part80.TopSurface = Enum.SurfaceType.Smooth
1178
Part80.Color = Color3.new(0.843137, 0.772549, 0.603922)
1179
Part80.Position = Vector3.new(1435.44849, 48.841629, -1311.05676)
1180
Part80.Orientation = Vector3.new(42.6199989, 10.1300001, -158.229996)
1181
Part80.Color = Color3.new(0.843137, 0.772549, 0.603922)
1182
CylinderMesh81.Parent = Part80
1183
CylinderMesh81.Scale = Vector3.new(0.291783929, 0.316099197, 0.170207277)
1184
CylinderMesh81.Scale = Vector3.new(0.291783929, 0.316099197, 0.170207277)
1185
Part82.Parent = Tool0
1186
Part82.Material = Enum.Material.SmoothPlastic
1187
Part82.BrickColor = BrickColor.new("Dark stone grey")
1188
Part82.Transparency = 1
1189
Part82.Rotation = Vector3.new(-90, 75, 90)
1190
Part82.Anchored = true
1191
Part82.CanCollide = false
1192
Part82.FormFactor = Enum.FormFactor.Custom
1193
Part82.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
1194
Part82.CFrame = CFrame.new(1435.99597, 48.211853, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
1195
Part82.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1196
Part82.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1197
Part82.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1198
Part82.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1199
Part82.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1200
Part82.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1201
Part82.Color = Color3.new(0.388235, 0.372549, 0.384314)
1202
Part82.Position = Vector3.new(1435.99597, 48.211853, -1310.87183)
1203
Part82.Orientation = Vector3.new(-15, 90, 0)
1204
Part82.Color = Color3.new(0.388235, 0.372549, 0.384314)
1205
CylinderMesh83.Parent = Part82
1206
CylinderMesh83.Scale = Vector3.new(0.360227078, 0.180113435, 0.390246034)
1207
CylinderMesh83.Scale = Vector3.new(0.360227078, 0.180113435, 0.390246034)
1208
Part84.Parent = Tool0
1209
Part84.Material = Enum.Material.SmoothPlastic
1210
Part84.BrickColor = BrickColor.new("Dark stone grey")
1211
Part84.Transparency = 1
1212
Part84.Rotation = Vector3.new(180, 0, 90)
1213
Part84.Anchored = true
1214
Part84.CanCollide = false
1215
Part84.FormFactor = Enum.FormFactor.Custom
1216
Part84.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
1217
Part84.CFrame = CFrame.new(1433.5498, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1218
Part84.BottomSurface = Enum.SurfaceType.Smooth
1219
Part84.TopSurface = Enum.SurfaceType.Smooth
1220
Part84.Color = Color3.new(0.388235, 0.372549, 0.384314)
1221
Part84.Position = Vector3.new(1433.5498, 48.9232292, -1310.87183)
1222
Part84.Orientation = Vector3.new(0, -180, -90)
1223
Part84.Color = Color3.new(0.388235, 0.372549, 0.384314)
1224
CylinderMesh85.Parent = Part84
1225
CylinderMesh85.Scale = Vector3.new(0.031400837, 0.124556653, 0.1674712)
1226
CylinderMesh85.Scale = Vector3.new(0.031400837, 0.124556653, 0.1674712)
1227
Part86.Parent = Tool0
1228
Part86.Material = Enum.Material.SmoothPlastic
1229
Part86.BrickColor = BrickColor.new("Dark stone grey")
1230
Part86.Transparency = 1
1231
Part86.Rotation = Vector3.new(90, 90, 0)
1232
Part86.Anchored = true
1233
Part86.CanCollide = false
1234
Part86.FormFactor = Enum.FormFactor.Custom
1235
Part86.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
1236
Part86.CFrame = CFrame.new(1434.89648, 48.9697227, -1310.87622, 0, 0, 1, 1, 0, 0, 0, 1, 0)
1237
Part86.BottomSurface = Enum.SurfaceType.Smooth
1238
Part86.TopSurface = Enum.SurfaceType.Smooth
1239
Part86.Color = Color3.new(0.388235, 0.372549, 0.384314)
1240
Part86.Position = Vector3.new(1434.89648, 48.9697227, -1310.87622)
1241
Part86.Orientation = Vector3.new(0, 90, 90)
1242
Part86.Color = Color3.new(0.388235, 0.372549, 0.384314)
1243
CylinderMesh87.Parent = Part86
1244
CylinderMesh87.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
1245
CylinderMesh87.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
1246
Decal88.Parent = Part86
1247
Decal88.Texture = "http://www.roblox.com/asset/?id=78474663"
1248
Decal88.Face = Enum.NormalId.Bottom
1249
Decal89.Parent = Part86
1250
Decal89.Texture = "http://www.roblox.com/asset/?id=78474663"
1251
Decal89.Face = Enum.NormalId.Top
1252
Part90.Parent = Tool0
1253
Part90.Material = Enum.Material.SmoothPlastic
1254
Part90.BrickColor = BrickColor.new("Dark stone grey")
1255
Part90.Transparency = 1
1256
Part90.Rotation = Vector3.new(-90, 60, 90)
1257
Part90.Anchored = true
1258
Part90.CanCollide = false
1259
Part90.FormFactor = Enum.FormFactor.Custom
1260
Part90.Size = Vector3.new(1, 1, 1)
1261
Part90.CFrame = CFrame.new(1436.48157, 48.7061806, -1310.87183, 0, -0.499998987, 0.866025984, 0, 0.866025984, 0.499998987, -1, 0, 0)
1262
Part90.BottomSurface = Enum.SurfaceType.Smooth
1263
Part90.TopSurface = Enum.SurfaceType.Smooth
1264
Part90.Color = Color3.new(0.388235, 0.372549, 0.384314)
1265
Part90.Position = Vector3.new(1436.48157, 48.7061806, -1310.87183)
1266
Part90.Orientation = Vector3.new(-30, 90, 0)
1267
Part90.Color = Color3.new(0.388235, 0.372549, 0.384314)
1268
SpecialMesh91.Parent = Part90
1269
SpecialMesh91.Scale = Vector3.new(0.0339129046, 0.033912912, 0.356085896)
1270
SpecialMesh91.MeshType = Enum.MeshType.Brick
1271
SpecialMesh91.Scale = Vector3.new(0.0339129046, 0.033912912, 0.356085896)
1272
Part92.Parent = Tool0
1273
Part92.Material = Enum.Material.SmoothPlastic
1274
Part92.BrickColor = BrickColor.new("Black")
1275
Part92.Transparency = 1
1276
Part92.Rotation = Vector3.new(-90, 0, 90)
1277
Part92.Anchored = true
1278
Part92.CanCollide = false
1279
Part92.FormFactor = Enum.FormFactor.Custom
1280
Part92.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
1281
Part92.CFrame = CFrame.new(1434.32935, 48.9232292, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
1282
Part92.BottomSurface = Enum.SurfaceType.Smooth
1283
Part92.TopSurface = Enum.SurfaceType.Smooth
1284
Part92.Color = Color3.new(0.105882, 0.164706, 0.207843)
1285
Part92.Position = Vector3.new(1434.32935, 48.9232292, -1310.87183)
1286
Part92.Orientation = Vector3.new(-90, 90, 0)
1287
Part92.Color = Color3.new(0.105882, 0.164706, 0.207843)
1288
SpecialMesh93.Parent = Part92
1289
SpecialMesh93.Scale = Vector3.new(0.797663748, 0.701944053, 0.175486133)
1290
SpecialMesh93.MeshType = Enum.MeshType.Brick
1291
SpecialMesh93.Scale = Vector3.new(0.797663748, 0.701944053, 0.175486133)
1292
Part94.Parent = Tool0
1293
Part94.Material = Enum.Material.SmoothPlastic
1294
Part94.BrickColor = BrickColor.new("Black")
1295
Part94.Transparency = 1
1296
Part94.Rotation = Vector3.new(180, 0, 90)
1297
Part94.Anchored = true
1298
Part94.CanCollide = false
1299
Part94.FormFactor = Enum.FormFactor.Custom
1300
Part94.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
1301
Part94.CFrame = CFrame.new(1434.4989, 48.9062729, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1302
Part94.BottomSurface = Enum.SurfaceType.Smooth
1303
Part94.TopSurface = Enum.SurfaceType.Smooth
1304
Part94.Color = Color3.new(0.105882, 0.164706, 0.207843)
1305
Part94.Position = Vector3.new(1434.4989, 48.9062729, -1310.87183)
1306
Part94.Orientation = Vector3.new(0, -180, -90)
1307
Part94.Color = Color3.new(0.105882, 0.164706, 0.207843)
1308
CylinderMesh95.Parent = Part94
1309
CylinderMesh95.Scale = Vector3.new(1.53096449, 0.180113405, 1.50094533)
1310
CylinderMesh95.Scale = Vector3.new(1.53096449, 0.180113405, 1.50094533)
1311
Part96.Parent = Tool0
1312
Part96.Material = Enum.Material.SmoothPlastic
1313
Part96.BrickColor = BrickColor.new("Dark stone grey")
1314
Part96.Transparency = 1
1315
Part96.Rotation = Vector3.new(0, 90, 0)
1316
Part96.Anchored = true
1317
Part96.CanCollide = false
1318
Part96.FormFactor = Enum.FormFactor.Custom
1319
Part96.Size = Vector3.new(1, 1, 1)
1320
Part96.CFrame = CFrame.new(1436.85803, 48.7793694, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1321
Part96.BottomSurface = Enum.SurfaceType.Smooth
1322
Part96.TopSurface = Enum.SurfaceType.Smooth
1323
Part96.Color = Color3.new(0.388235, 0.372549, 0.384314)
1324
Part96.Position = Vector3.new(1436.85803, 48.7793694, -1310.87183)
1325
Part96.Orientation = Vector3.new(0, 90, 0)
1326
Part96.Color = Color3.new(0.388235, 0.372549, 0.384314)
1327
SpecialMesh97.Parent = Part96
1328
SpecialMesh97.Scale = Vector3.new(0.0339129046, 0.050869368, 0.466302693)
1329
SpecialMesh97.MeshType = Enum.MeshType.Brick
1330
SpecialMesh97.Scale = Vector3.new(0.0339129046, 0.050869368, 0.466302693)
1331
Part98.Parent = Tool0
1332
Part98.Material = Enum.Material.SmoothPlastic
1333
Part98.BrickColor = BrickColor.new("Dark stone grey")
1334
Part98.Transparency = 1
1335
Part98.Rotation = Vector3.new(-90, 75, 90)
1336
Part98.Anchored = true
1337
Part98.CanCollide = false
1338
Part98.FormFactor = Enum.FormFactor.Custom
1339
Part98.Size = Vector3.new(1, 1, 1)
1340
Part98.CFrame = CFrame.new(1437.1134, 48.5151291, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
1341
Part98.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1342
Part98.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1343
Part98.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1344
Part98.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1345
Part98.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1346
Part98.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1347
Part98.Color = Color3.new(0.388235, 0.372549, 0.384314)
1348
Part98.Position = Vector3.new(1437.1134, 48.5151291, -1310.87183)
1349
Part98.Orientation = Vector3.new(-15, 90, 0)
1350
Part98.Color = Color3.new(0.388235, 0.372549, 0.384314)
1351
SpecialMesh99.Parent = Part98
1352
SpecialMesh99.Scale = Vector3.new(0.0339129046, 0.584997475, 0.127173796)
1353
SpecialMesh99.MeshType = Enum.MeshType.Brick
1354
SpecialMesh99.Scale = Vector3.new(0.0339129046, 0.584997475, 0.127173796)
1355
Part100.Parent = Tool0
1356
Part100.Material = Enum.Material.SmoothPlastic
1357
Part100.BrickColor = BrickColor.new("Medium green")
1358
Part100.Reflectance = 0.40000000596046
1359
Part100.Transparency = 1
1360
Part100.Rotation = Vector3.new(-90, 30, -90)
1361
Part100.Anchored = true
1362
Part100.CanCollide = false
1363
Part100.FormFactor = Enum.FormFactor.Custom
1364
Part100.Size = Vector3.new(1, 1, 1)
1365
Part100.CFrame = CFrame.new(1436.54248, 48.8766403, -1310.96448, 0, 0.866027117, 0.499997079, 0, -0.49999705, 0.866027176, 1, 0, 0)
1366
Part100.BottomSurface = Enum.SurfaceType.Smooth
1367
Part100.TopSurface = Enum.SurfaceType.Smooth
1368
Part100.Color = Color3.new(0.631373, 0.768628, 0.54902)
1369
Part100.Position = Vector3.new(1436.54248, 48.8766403, -1310.96448)
1370
Part100.Orientation = Vector3.new(-60, 90, 180)
1371
Part100.Color = Color3.new(0.631373, 0.768628, 0.54902)
1372
CylinderMesh101.Parent = Part100
1373
CylinderMesh101.Scale = Vector3.new(0.101738736, 0.194999218, 0.0339129157)
1374
CylinderMesh101.Scale = Vector3.new(0.101738736, 0.194999218, 0.0339129157)
1375
Part102.Parent = Tool0
1376
Part102.Material = Enum.Material.SmoothPlastic
1377
Part102.BrickColor = BrickColor.new("Dark stone grey")
1378
Part102.Transparency = 1
1379
Part102.Rotation = Vector3.new(-90, -90, 0)
1380
Part102.Anchored = true
1381
Part102.CanCollide = false
1382
Part102.FormFactor = Enum.FormFactor.Custom
1383
Part102.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
1384
Part102.CFrame = CFrame.new(1435.24072, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
1385
Part102.BottomSurface = Enum.SurfaceType.Smooth
1386
Part102.TopSurface = Enum.SurfaceType.Smooth
1387
Part102.Color = Color3.new(0.388235, 0.372549, 0.384314)
1388
Part102.Position = Vector3.new(1435.24072, 48.6010742, -1310.87183)
1389
Part102.Orientation = Vector3.new(0, -90, 90)
1390
Part102.Color = Color3.new(0.388235, 0.372549, 0.384314)
1391
CylinderMesh103.Parent = Part102
1392
CylinderMesh103.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
1393
CylinderMesh103.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
1394
Decal104.Parent = Part102
1395
Decal104.Texture = "http://www.roblox.com/asset/?id=78474663"
1396
Decal104.Face = Enum.NormalId.Bottom
1397
Part105.Parent = Tool0
1398
Part105.Material = Enum.Material.SmoothPlastic
1399
Part105.BrickColor = BrickColor.new("Black")
1400
Part105.Transparency = 1
1401
Part105.Rotation = Vector3.new(-150.599991, 32.2399979, -23.1999989)
1402
Part105.Anchored = true
1403
Part105.CanCollide = false
1404
Part105.FormFactor = Enum.FormFactor.Custom
1405
Part105.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1406
Part105.CFrame = CFrame.new(1434.84009, 49.1090317, -1310.6604, 0.777458727, 0.333219469, 0.533406675, 0.102508962, -0.903908193, 0.415261477, 0.620523751, -0.268169731, -0.73690933)
1407
Part105.BottomSurface = Enum.SurfaceType.Smooth
1408
Part105.TopSurface = Enum.SurfaceType.Smooth
1409
Part105.Color = Color3.new(0.105882, 0.164706, 0.207843)
1410
Part105.Position = Vector3.new(1434.84009, 49.1090317, -1310.6604)
1411
Part105.Orientation = Vector3.new(-24.539999, 144.099991, 173.529999)
1412
Part105.Color = Color3.new(0.105882, 0.164706, 0.207843)
1413
CylinderMesh106.Parent = Part105
1414
CylinderMesh106.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
1415
CylinderMesh106.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
1416
Part107.Parent = Tool0
1417
Part107.Material = Enum.Material.SmoothPlastic
1418
Part107.BrickColor = BrickColor.new("Dark stone grey")
1419
Part107.Transparency = 1
1420
Part107.Rotation = Vector3.new(180, 0, 90)
1421
Part107.Anchored = true
1422
Part107.CanCollide = false
1423
Part107.FormFactor = Enum.FormFactor.Custom
1424
Part107.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
1425
Part107.CFrame = CFrame.new(1435.56287, 48.897789, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1426
Part107.BottomSurface = Enum.SurfaceType.Smooth
1427
Part107.TopSurface = Enum.SurfaceType.Smooth
1428
Part107.Color = Color3.new(0.388235, 0.372549, 0.384314)
1429
Part107.Position = Vector3.new(1435.56287, 48.897789, -1310.87183)
1430
Part107.Orientation = Vector3.new(0, -180, -90)
1431
Part107.Color = Color3.new(0.388235, 0.372549, 0.384314)
1432
CylinderMesh108.Parent = Part107
1433
CylinderMesh108.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
1434
CylinderMesh108.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
1435
Part109.Parent = Tool0
1436
Part109.Material = Enum.Material.SmoothPlastic
1437
Part109.BrickColor = BrickColor.new("Black")
1438
Part109.Transparency = 1
1439
Part109.Rotation = Vector3.new(133.479996, 38.0400009, -171.679993)
1440
Part109.Anchored = true
1441
Part109.CanCollide = false
1442
Part109.FormFactor = Enum.FormFactor.Custom
1443
Part109.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1444
Part109.CFrame = CFrame.new(1435.08655, 49.0373726, -1311.1228, -0.779332995, 0.114002213, 0.616152287, -0.342794985, 0.745554209, -0.571524739, -0.524529994, -0.656622052, -0.54195559)
1445
Part109.BottomSurface = Enum.SurfaceType.Smooth
1446
Part109.TopSurface = Enum.SurfaceType.Smooth
1447
Part109.Color = Color3.new(0.105882, 0.164706, 0.207843)
1448
Part109.Position = Vector3.new(1435.08655, 49.0373726, -1311.1228)
1449
Part109.Orientation = Vector3.new(34.8600006, 131.330002, -24.6899986)
1450
Part109.Color = Color3.new(0.105882, 0.164706, 0.207843)
1451
CylinderMesh110.Parent = Part109
1452
CylinderMesh110.Scale = Vector3.new(0.170207247, 0.899666727, 0.170207277)
1453
CylinderMesh110.Scale = Vector3.new(0.170207247, 0.899666727, 0.170207277)
1454
Part111.Parent = Tool0
1455
Part111.Material = Enum.Material.SmoothPlastic
1456
Part111.BrickColor = BrickColor.new("Nougat")
1457
Part111.Transparency = 1
1458
Part111.Rotation = Vector3.new(180, 0, 90)
1459
Part111.Anchored = true
1460
Part111.CanCollide = false
1461
Part111.FormFactor = Enum.FormFactor.Custom
1462
Part111.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
1463
Part111.CFrame = CFrame.new(1435.56287, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1464
Part111.BottomSurface = Enum.SurfaceType.Smooth
1465
Part111.TopSurface = Enum.SurfaceType.Smooth
1466
Part111.Color = Color3.new(0.8, 0.556863, 0.411765)
1467
Part111.Position = Vector3.new(1435.56287, 48.9020348, -1310.87183)
1468
Part111.Orientation = Vector3.new(0, -180, -90)
1469
Part111.Color = Color3.new(0.8, 0.556863, 0.411765)
1470
CylinderMesh112.Parent = Part111
1471
CylinderMesh112.Scale = Vector3.new(1.0241611, 0.17725873, 1.02416098)
1472
CylinderMesh112.Scale = Vector3.new(1.0241611, 0.17725873, 1.02416098)
1473
Part113.Parent = Tool0
1474
Part113.Material = Enum.Material.SmoothPlastic
1475
Part113.BrickColor = BrickColor.new("Brick yellow")
1476
Part113.Transparency = 1
1477
Part113.Rotation = Vector3.new(-60, 0, 165)
1478
Part113.Anchored = true
1479
Part113.CanCollide = false
1480
Part113.FormFactor = Enum.FormFactor.Custom
1481
Part113.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1482
Part113.CFrame = CFrame.new(1435.49927, 48.6328773, -1311.01025, -0.965924263, -0.258825004, -6.07067022e-07, 0.12940903, -0.482951164, 0.866032064, -0.22415106, 0.836521268, 0.499988496)
1483
Part113.BottomSurface = Enum.SurfaceType.Smooth
1484
Part113.TopSurface = Enum.SurfaceType.Smooth
1485
Part113.Color = Color3.new(0.843137, 0.772549, 0.603922)
1486
Part113.Position = Vector3.new(1435.49927, 48.6328773, -1311.01025)
1487
Part113.Orientation = Vector3.new(-60, 0, 165)
1488
Part113.Color = Color3.new(0.843137, 0.772549, 0.603922)
1489
CylinderMesh114.Parent = Part113
1490
CylinderMesh114.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
1491
CylinderMesh114.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
1492
Part115.Parent = Tool0
1493
Part115.Material = Enum.Material.SmoothPlastic
1494
Part115.BrickColor = BrickColor.new("Dark stone grey")
1495
Part115.Transparency = 1
1496
Part115.Rotation = Vector3.new(90, 90, 0)
1497
Part115.Anchored = true
1498
Part115.CanCollide = false
1499
Part115.FormFactor = Enum.FormFactor.Custom
1500
Part115.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
1501
Part115.CFrame = CFrame.new(1435.43909, 48.8383217, -1310.84216, 0, 0, 1, 1, 0, 0, 0, 1, 0)
1502
Part115.BottomSurface = Enum.SurfaceType.Smooth
1503
Part115.TopSurface = Enum.SurfaceType.Smooth
1504
Part115.Color = Color3.new(0.388235, 0.372549, 0.384314)
1505
Part115.Position = Vector3.new(1435.43909, 48.8383217, -1310.84216)
1506
Part115.Orientation = Vector3.new(0, 90, 90)
1507
Part115.Color = Color3.new(0.388235, 0.372549, 0.384314)
1508
CylinderMesh116.Parent = Part115
1509
CylinderMesh116.Scale = Vector3.new(0.16747117, 0.533814311, 0.167471215)
1510
CylinderMesh116.Scale = Vector3.new(0.16747117, 0.533814311, 0.167471215)
1511
Decal117.Parent = Part115
1512
Decal117.Texture = "http://www.roblox.com/asset/?id=78474663"
1513
Decal117.Face = Enum.NormalId.Top
1514
Part118.Parent = Tool0
1515
Part118.Material = Enum.Material.SmoothPlastic
1516
Part118.BrickColor = BrickColor.new("Dark stone grey")
1517
Part118.Transparency = 1
1518
Part118.Rotation = Vector3.new(-90, -90, 0)
1519
Part118.Anchored = true
1520
Part118.CanCollide = false
1521
Part118.FormFactor = Enum.FormFactor.Custom
1522
Part118.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
1523
Part118.CFrame = CFrame.new(1435.35938, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
1524
Part118.BottomSurface = Enum.SurfaceType.Smooth
1525
Part118.TopSurface = Enum.SurfaceType.Smooth
1526
Part118.Color = Color3.new(0.388235, 0.372549, 0.384314)
1527
Part118.Position = Vector3.new(1435.35938, 48.6010742, -1310.87183)
1528
Part118.Orientation = Vector3.new(0, -90, 90)
1529
Part118.Color = Color3.new(0.388235, 0.372549, 0.384314)
1530
CylinderMesh119.Parent = Part118
1531
CylinderMesh119.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
1532
CylinderMesh119.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
1533
Decal120.Parent = Part118
1534
Decal120.Texture = "http://www.roblox.com/asset/?id=78474663"
1535
Decal120.Face = Enum.NormalId.Bottom
1536
Part121.Parent = Tool0
1537
Part121.Material = Enum.Material.SmoothPlastic
1538
Part121.BrickColor = BrickColor.new("Dark stone grey")
1539
Part121.Transparency = 1
1540
Part121.Rotation = Vector3.new(50.7299995, 45.0399971, -40.1399994)
1541
Part121.Anchored = true
1542
Part121.CanCollide = false
1543
Part121.FormFactor = Enum.FormFactor.Custom
1544
Part121.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
1545
Part121.CFrame = CFrame.new(1435.49548, 49.0076942, -1310.61987, 0.540129244, 0.455500901, 0.707657695, 0.0107550053, 0.837061286, -0.547003508, -0.841513395, 0.303063482, 0.447222352)
1546
Part121.BottomSurface = Enum.SurfaceType.Smooth
1547
Part121.TopSurface = Enum.SurfaceType.Smooth
1548
Part121.Color = Color3.new(0.388235, 0.372549, 0.384314)
1549
Part121.Position = Vector3.new(1435.49548, 49.0076942, -1310.61987)
1550
Part121.Orientation = Vector3.new(33.1599998, 57.7099991, 0.74000001)
1551
Part121.Color = Color3.new(0.388235, 0.372549, 0.384314)
1552
CylinderMesh122.Parent = Part121
1553
CylinderMesh122.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
1554
CylinderMesh122.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
1555
Part123.Parent = Tool0
1556
Part123.Material = Enum.Material.SmoothPlastic
1557
Part123.BrickColor = BrickColor.new("Dark stone grey")
1558
Part123.Transparency = 1
1559
Part123.Rotation = Vector3.new(90, 90, 0)
1560
Part123.Anchored = true
1561
Part123.CanCollide = false
1562
Part123.FormFactor = Enum.FormFactor.Custom
1563
Part123.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
1564
Part123.CFrame = CFrame.new(1435.07629, 48.9167862, -1310.87622, 0, 0, 1, 1, 0, 0, 0, 1, 0)
1565
Part123.BottomSurface = Enum.SurfaceType.Smooth
1566
Part123.TopSurface = Enum.SurfaceType.Smooth
1567
Part123.Color = Color3.new(0.388235, 0.372549, 0.384314)
1568
Part123.Position = Vector3.new(1435.07629, 48.9167862, -1310.87622)
1569
Part123.Orientation = Vector3.new(0, 90, 90)
1570
Part123.Color = Color3.new(0.388235, 0.372549, 0.384314)
1571
CylinderMesh124.Parent = Part123
1572
CylinderMesh124.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
1573
CylinderMesh124.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
1574
Decal125.Parent = Part123
1575
Decal125.Texture = "http://www.roblox.com/asset/?id=78474663"
1576
Decal125.Face = Enum.NormalId.Bottom
1577
Decal126.Parent = Part123
1578
Decal126.Texture = "http://www.roblox.com/asset/?id=78474663"
1579
Decal126.Face = Enum.NormalId.Top
1580
Part127.Parent = Tool0
1581
Part127.Material = Enum.Material.SmoothPlastic
1582
Part127.BrickColor = BrickColor.new("Dark stone grey")
1583
Part127.Transparency = 1
1584
Part127.Rotation = Vector3.new(0, 90, 0)
1585
Part127.Anchored = true
1586
Part127.CanCollide = false
1587
Part127.FormFactor = Enum.FormFactor.Custom
1588
Part127.Size = Vector3.new(1, 1, 1)
1589
Part127.CFrame = CFrame.new(1436.00879, 48.9263649, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1590
Part127.BottomSurface = Enum.SurfaceType.Smooth
1591
Part127.TopSurface = Enum.SurfaceType.Smooth
1592
Part127.Color = Color3.new(0.388235, 0.372549, 0.384314)
1593
Part127.Position = Vector3.new(1436.00879, 48.9263649, -1310.87183)
1594
Part127.Orientation = Vector3.new(0, 90, 0)
1595
Part127.Color = Color3.new(0.388235, 0.372549, 0.384314)
1596
SpecialMesh128.Parent = Part127
1597
SpecialMesh128.Scale = Vector3.new(0.0339129046, 0.0508693606, 0.194999248)
1598
SpecialMesh128.MeshType = Enum.MeshType.Brick
1599
SpecialMesh128.Scale = Vector3.new(0.0339129046, 0.0508693606, 0.194999248)
1600
Part129.Parent = Tool0
1601
Part129.Material = Enum.Material.SmoothPlastic
1602
Part129.BrickColor = BrickColor.new("Nougat")
1603
Part129.Transparency = 1
1604
Part129.Rotation = Vector3.new(180, 0, 90)
1605
Part129.Anchored = true
1606
Part129.CanCollide = false
1607
Part129.FormFactor = Enum.FormFactor.Custom
1608
Part129.Size = Vector3.new(1, 1, 1)
1609
Part129.CFrame = CFrame.new(1435.26624, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1610
Part129.BottomSurface = Enum.SurfaceType.Smooth
1611
Part129.TopSurface = Enum.SurfaceType.Smooth
1612
Part129.Color = Color3.new(0.8, 0.556863, 0.411765)
1613
Part129.Position = Vector3.new(1435.26624, 48.9020348, -1310.87183)
1614
Part129.Orientation = Vector3.new(0, -180, -90)
1615
Part129.Color = Color3.new(0.8, 0.556863, 0.411765)
1616
CylinderMesh130.Parent = Part129
1617
CylinderMesh130.Scale = Vector3.new(0.440867692, 0.194999263, 0.440867722)
1618
CylinderMesh130.Scale = Vector3.new(0.440867692, 0.194999263, 0.440867722)
1619
Part131.Parent = Tool0
1620
Part131.Material = Enum.Material.SmoothPlastic
1621
Part131.BrickColor = BrickColor.new("Dark stone grey")
1622
Part131.Transparency = 1
1623
Part131.Rotation = Vector3.new(-90, -90, 0)
1624
Part131.Anchored = true
1625
Part131.CanCollide = false
1626
Part131.FormFactor = Enum.FormFactor.Custom
1627
Part131.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
1628
Part131.CFrame = CFrame.new(1435.47815, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
1629
Part131.BottomSurface = Enum.SurfaceType.Smooth
1630
Part131.TopSurface = Enum.SurfaceType.Smooth
1631
Part131.Color = Color3.new(0.388235, 0.372549, 0.384314)
1632
Part131.Position = Vector3.new(1435.47815, 48.6010742, -1310.87183)
1633
Part131.Orientation = Vector3.new(0, -90, 90)
1634
Part131.Color = Color3.new(0.388235, 0.372549, 0.384314)
1635
CylinderMesh132.Parent = Part131
1636
CylinderMesh132.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
1637
CylinderMesh132.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
1638
Decal133.Parent = Part131
1639
Decal133.Texture = "http://www.roblox.com/asset/?id=78474663"
1640
Decal133.Face = Enum.NormalId.Bottom
1641
Part134.Parent = Tool0
1642
Part134.Material = Enum.Material.SmoothPlastic
1643
Part134.Transparency = 1
1644
Part134.Rotation = Vector3.new(-90, 60, 90)
1645
Part134.Anchored = true
1646
Part134.CanCollide = false
1647
Part134.FormFactor = Enum.FormFactor.Custom
1648
Part134.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1649
Part134.CFrame = CFrame.new(1436.03064, 48.1612701, -1310.87183, 0, -0.499998987, 0.866025984, 0, 0.866025984, 0.499998987, -1, 0, 0)
1650
Part134.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1651
Part134.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1652
Part134.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1653
Part134.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1654
Part134.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1655
Part134.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1656
Part134.Position = Vector3.new(1436.03064, 48.1612701, -1310.87183)
1657
Part134.Orientation = Vector3.new(-30, 90, 0)
1658
CylinderMesh135.Parent = Part134
1659
CylinderMesh135.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
1660
CylinderMesh135.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
1661
Part136.Parent = Tool0
1662
Part136.Material = Enum.Material.SmoothPlastic
1663
Part136.Transparency = 1
1664
Part136.Rotation = Vector3.new(0, 90, 0)
1665
Part136.Anchored = true
1666
Part136.CanCollide = false
1667
Part136.FormFactor = Enum.FormFactor.Custom
1668
Part136.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
1669
Part136.CFrame = CFrame.new(1435.36523, 48.5261421, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1670
Part136.BottomSurface = Enum.SurfaceType.Smooth
1671
Part136.TopSurface = Enum.SurfaceType.Smooth
1672
Part136.Position = Vector3.new(1435.36523, 48.5261421, -1310.88025)
1673
Part136.Orientation = Vector3.new(0, 90, 0)
1674
CylinderMesh137.Parent = Part136
1675
CylinderMesh137.Scale = Vector3.new(0.219805866, 0.0314008482, 0.136070341)
1676
CylinderMesh137.Scale = Vector3.new(0.219805866, 0.0314008482, 0.136070341)
1677
Part138.Parent = Tool0
1678
Part138.Material = Enum.Material.SmoothPlastic
1679
Part138.BrickColor = BrickColor.new("Dark stone grey")
1680
Part138.Transparency = 1
1681
Part138.Rotation = Vector3.new(90, 45, -90)
1682
Part138.Anchored = true
1683
Part138.CanCollide = false
1684
Part138.FormFactor = Enum.FormFactor.Custom
1685
Part138.Size = Vector3.new(1, 1, 1)
1686
Part138.CFrame = CFrame.new(1436.54016, 48.4395027, -1310.87183, 0, 0.707106829, 0.707106829, 0, 0.707106829, -0.707106829, -1, 0, 0)
1687
Part138.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1688
Part138.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1689
Part138.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1690
Part138.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1691
Part138.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1692
Part138.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1693
Part138.Color = Color3.new(0.388235, 0.372549, 0.384314)
1694
Part138.Position = Vector3.new(1436.54016, 48.4395027, -1310.87183)
1695
Part138.Orientation = Vector3.new(45, 90, 0)
1696
Part138.Color = Color3.new(0.388235, 0.372549, 0.384314)
1697
SpecialMesh139.Parent = Part138
1698
SpecialMesh139.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
1699
SpecialMesh139.MeshType = Enum.MeshType.Brick
1700
SpecialMesh139.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
1701
Part140.Parent = Tool0
1702
Part140.Material = Enum.Material.SmoothPlastic
1703
Part140.BrickColor = BrickColor.new("Dark stone grey")
1704
Part140.Transparency = 1
1705
Part140.Rotation = Vector3.new(0, 90, 0)
1706
Part140.Anchored = true
1707
Part140.CanCollide = false
1708
Part140.FormFactor = Enum.FormFactor.Custom
1709
Part140.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
1710
Part140.CFrame = CFrame.new(1436.87463, 48.5038033, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1711
Part140.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1712
Part140.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1713
Part140.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1714
Part140.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1715
Part140.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1716
Part140.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1717
Part140.Color = Color3.new(0.388235, 0.372549, 0.384314)
1718
Part140.Position = Vector3.new(1436.87463, 48.5038033, -1310.87622)
1719
Part140.Orientation = Vector3.new(0, 90, 0)
1720
Part140.Color = Color3.new(0.388235, 0.372549, 0.384314)
1721
SpecialMesh141.Parent = Part140
1722
SpecialMesh141.Scale = Vector3.new(0.164111391, 0.555652738, 0.237768203)
1723
SpecialMesh141.MeshType = Enum.MeshType.Brick
1724
SpecialMesh141.Scale = Vector3.new(0.164111391, 0.555652738, 0.237768203)
1725
Part142.Parent = Tool0
1726
Part142.Material = Enum.Material.SmoothPlastic
1727
Part142.BrickColor = BrickColor.new("Lime green")
1728
Part142.Reflectance = 0.40000000596046
1729
Part142.Transparency = 1
1730
Part142.Rotation = Vector3.new(180, 0, 90)
1731
Part142.Anchored = true
1732
Part142.CanCollide = false
1733
Part142.FormFactor = Enum.FormFactor.Custom
1734
Part142.Size = Vector3.new(0.228912294, 0.534128368, 0.423911244)
1735
Part142.CFrame = CFrame.new(1433.87573, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1736
Part142.BottomSurface = Enum.SurfaceType.Smooth
1737
Part142.TopSurface = Enum.SurfaceType.Smooth
1738
Part142.Color = Color3.new(0, 1, 0)
1739
Part142.Position = Vector3.new(1433.87573, 48.923233, -1310.87183)
1740
Part142.Orientation = Vector3.new(0, -180, -90)
1741
Part142.Color = Color3.new(0, 1, 0)
1742
CylinderMesh143.Parent = Part142
1743
Part144.Parent = Tool0
1744
Part144.Material = Enum.Material.SmoothPlastic
1745
Part144.Transparency = 1
1746
Part144.Rotation = Vector3.new(-90, 0, 90)
1747
Part144.Anchored = true
1748
Part144.CanCollide = false
1749
Part144.FormFactor = Enum.FormFactor.Custom
1750
Part144.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
1751
Part144.CFrame = CFrame.new(1436.42542, 48.0573769, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
1752
Part144.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1753
Part144.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1754
Part144.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1755
Part144.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1756
Part144.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1757
Part144.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1758
Part144.Position = Vector3.new(1436.42542, 48.0573769, -1310.87183)
1759
Part144.Orientation = Vector3.new(-90, 90, 0)
1760
CylinderMesh145.Parent = Part144
1761
CylinderMesh145.Scale = Vector3.new(0.360227078, 2.0112679, 0.180113524)
1762
CylinderMesh145.Scale = Vector3.new(0.360227078, 2.0112679, 0.180113524)
1763
Part146.Parent = Tool0
1764
Part146.Material = Enum.Material.SmoothPlastic
1765
Part146.BrickColor = BrickColor.new("Dark stone grey")
1766
Part146.Transparency = 1
1767
Part146.Rotation = Vector3.new(0, 90, 0)
1768
Part146.Anchored = true
1769
Part146.CanCollide = false
1770
Part146.FormFactor = Enum.FormFactor.Custom
1771
Part146.Size = Vector3.new(1, 1, 1)
1772
Part146.CFrame = CFrame.new(1436.98523, 48.2367706, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1773
Part146.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1774
Part146.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1775
Part146.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1776
Part146.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1777
Part146.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1778
Part146.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1779
Part146.Color = Color3.new(0.388235, 0.372549, 0.384314)
1780
Part146.Position = Vector3.new(1436.98523, 48.2367706, -1310.87183)
1781
Part146.Orientation = Vector3.new(0, 90, 0)
1782
Part146.Color = Color3.new(0.388235, 0.372549, 0.384314)
1783
SpecialMesh147.Parent = Part146
1784
SpecialMesh147.Scale = Vector3.new(0.0339129046, 0.033912912, 0.517172039)
1785
SpecialMesh147.MeshType = Enum.MeshType.Brick
1786
SpecialMesh147.Scale = Vector3.new(0.0339129046, 0.033912912, 0.517172039)
1787
Part148.Parent = Tool0
1788
Part148.Material = Enum.Material.SmoothPlastic
1789
Part148.Transparency = 1
1790
Part148.Rotation = Vector3.new(-90, -60, -90)
1791
Part148.Anchored = true
1792
Part148.CanCollide = false
1793
Part148.FormFactor = Enum.FormFactor.Custom
1794
Part148.Size = Vector3.new(1, 1, 1)
1795
Part148.CFrame = CFrame.new(1436.81775, 48.1568336, -1310.87183, 0, 0.499998987, -0.866025984, 0, 0.866025984, 0.499998987, 1, 0, 0)
1796
Part148.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1797
Part148.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1798
Part148.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1799
Part148.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1800
Part148.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1801
Part148.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1802
Part148.Position = Vector3.new(1436.81775, 48.1568336, -1310.87183)
1803
Part148.Orientation = Vector3.new(-30, -90, 0)
1804
CylinderMesh149.Parent = Part148
1805
CylinderMesh149.Scale = Vector3.new(0.101738736, 0.161086336, 0.0339129157)
1806
CylinderMesh149.Scale = Vector3.new(0.101738736, 0.161086336, 0.0339129157)
1807
Part150.Parent = Tool0
1808
Part150.Material = Enum.Material.SmoothPlastic
1809
Part150.BrickColor = BrickColor.new("Brick yellow")
1810
Part150.Transparency = 1
1811
Part150.Rotation = Vector3.new(43.0599976, 7.44000006, -165.119995)
1812
Part150.Anchored = true
1813
Part150.CanCollide = false
1814
Part150.FormFactor = Enum.FormFactor.Custom
1815
Part150.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1816
Part150.CFrame = CFrame.new(1435.27368, 48.9770622, -1311.07397, -0.958352566, 0.25458324, 0.129413933, -0.272977144, -0.683412135, -0.677075565, -0.0839290544, -0.684204161, 0.724445105)
1817
Part150.BottomSurface = Enum.SurfaceType.Smooth
1818
Part150.TopSurface = Enum.SurfaceType.Smooth
1819
Part150.Color = Color3.new(0.843137, 0.772549, 0.603922)
1820
Part150.Position = Vector3.new(1435.27368, 48.9770622, -1311.07397)
1821
Part150.Orientation = Vector3.new(42.6199989, 10.1300001, -158.229996)
1822
Part150.Color = Color3.new(0.843137, 0.772549, 0.603922)
1823
CylinderMesh151.Parent = Part150
1824
CylinderMesh151.Scale = Vector3.new(0.291783929, 0.389045268, 0.170207277)
1825
CylinderMesh151.Scale = Vector3.new(0.291783929, 0.389045268, 0.170207277)
1826
Part152.Parent = Tool0
1827
Part152.Material = Enum.Material.SmoothPlastic
1828
Part152.BrickColor = BrickColor.new("Medium green")
1829
Part152.Reflectance = 0.40000000596046
1830
Part152.Transparency = 1
1831
Part152.Rotation = Vector3.new(-90, 30, -105)
1832
Part152.Anchored = true
1833
Part152.CanCollide = false
1834
Part152.FormFactor = Enum.FormFactor.Custom
1835
Part152.Size = Vector3.new(1, 1, 1)
1836
Part152.CFrame = CFrame.new(1436.76379, 48.7488365, -1310.92346, -0.224138901, 0.836518228, 0.499998987, 0.129404947, -0.482963115, 0.866025984, 0.965927541, 0.258812487, 1.22192728e-06)
1837
Part152.BottomSurface = Enum.SurfaceType.Smooth
1838
Part152.TopSurface = Enum.SurfaceType.Smooth
1839
Part152.Color = Color3.new(0.631373, 0.768628, 0.54902)
1840
Part152.Position = Vector3.new(1436.76379, 48.7488365, -1310.92346)
1841
Part152.Orientation = Vector3.new(-60, 90, 165)
1842
Part152.Color = Color3.new(0.631373, 0.768628, 0.54902)
1843
CylinderMesh153.Parent = Part152
1844
CylinderMesh153.Scale = Vector3.new(0.101738736, 0.330650836, 0.0339129157)
1845
CylinderMesh153.Scale = Vector3.new(0.101738736, 0.330650836, 0.0339129157)
1846
Part154.Parent = Tool0
1847
Part154.Material = Enum.Material.SmoothPlastic
1848
Part154.BrickColor = BrickColor.new("Dark stone grey")
1849
Part154.Transparency = 1
1850
Part154.Rotation = Vector3.new(-105, 75, 90)
1851
Part154.Anchored = true
1852
Part154.CanCollide = false
1853
Part154.FormFactor = Enum.FormFactor.Custom
1854
Part154.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
1855
Part154.CFrame = CFrame.new(1434.85571, 49.1141472, -1311.08923, 0, -0.258817911, 0.965926111, -0.258811951, 0.93301481, 0.249999404, -0.96592778, -0.24999322, -0.0669851676)
1856
Part154.BottomSurface = Enum.SurfaceType.Smooth
1857
Part154.TopSurface = Enum.SurfaceType.Smooth
1858
Part154.Color = Color3.new(0.388235, 0.372549, 0.384314)
1859
Part154.Position = Vector3.new(1434.85571, 49.1141472, -1311.08923)
1860
Part154.Orientation = Vector3.new(-14.4799995, 93.9700012, -15.5)
1861
Part154.Color = Color3.new(0.388235, 0.372549, 0.384314)
1862
CylinderMesh155.Parent = Part154
1863
CylinderMesh155.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
1864
CylinderMesh155.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
1865
Part156.Parent = Tool0
1866
Part156.Material = Enum.Material.SmoothPlastic
1867
Part156.BrickColor = BrickColor.new("Dark stone grey")
1868
Part156.Transparency = 1
1869
Part156.Rotation = Vector3.new(90, 90, 0)
1870
Part156.Anchored = true
1871
Part156.CanCollide = false
1872
Part156.FormFactor = Enum.FormFactor.Custom
1873
Part156.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
1874
Part156.CFrame = CFrame.new(1433.8822, 48.9214859, -1310.87183, 0, 0, 1, 1, 0, 0, 0, 1, 0)
1875
Part156.BottomSurface = Enum.SurfaceType.Smooth
1876
Part156.TopSurface = Enum.SurfaceType.Smooth
1877
Part156.Color = Color3.new(0.388235, 0.372549, 0.384314)
1878
Part156.Position = Vector3.new(1433.8822, 48.9214859, -1310.87183)
1879
Part156.Orientation = Vector3.new(0, 90, 90)
1880
Part156.Color = Color3.new(0.388235, 0.372549, 0.384314)
1881
SpecialMesh157.Parent = Part156
1882
SpecialMesh157.Scale = Vector3.new(0.0300189219, 0.84052968, 1.8611728)
1883
SpecialMesh157.MeshType = Enum.MeshType.Brick
1884
SpecialMesh157.Scale = Vector3.new(0.0300189219, 0.84052968, 1.8611728)
1885
Part158.Parent = Tool0
1886
Part158.Material = Enum.Material.SmoothPlastic
1887
Part158.Transparency = 1
1888
Part158.Rotation = Vector3.new(-90, 0, 90)
1889
Part158.Anchored = true
1890
Part158.CanCollide = false
1891
Part158.FormFactor = Enum.FormFactor.Custom
1892
Part158.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
1893
Part158.CFrame = CFrame.new(1434.66418, 48.9062729, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
1894
Part158.BottomSurface = Enum.SurfaceType.Smooth
1895
Part158.TopSurface = Enum.SurfaceType.Smooth
1896
Part158.Position = Vector3.new(1434.66418, 48.9062729, -1310.87183)
1897
Part158.Orientation = Vector3.new(-90, 90, 0)
1898
SpecialMesh159.Parent = Part158
1899
SpecialMesh159.Scale = Vector3.new(0.180113494, 1.29081011, 1.53096449)
1900
SpecialMesh159.MeshType = Enum.MeshType.Brick
1901
SpecialMesh159.Scale = Vector3.new(0.180113494, 1.29081011, 1.53096449)
1902
Part160.Parent = Tool0
1903
Part160.Material = Enum.Material.SmoothPlastic
1904
Part160.Transparency = 1
1905
Part160.Rotation = Vector3.new(-90, 30, 90)
1906
Part160.Anchored = true
1907
Part160.CanCollide = false
1908
Part160.FormFactor = Enum.FormFactor.Custom
1909
Part160.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1910
Part160.CFrame = CFrame.new(1436.1012, 48.0875969, -1310.87183, 0, -0.866025388, 0.500000238, 0, 0.500000238, 0.866025388, -1, 0, 0)
1911
Part160.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1912
Part160.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1913
Part160.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1914
Part160.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1915
Part160.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1916
Part160.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1917
Part160.Position = Vector3.new(1436.1012, 48.0875969, -1310.87183)
1918
Part160.Orientation = Vector3.new(-60, 90, 0)
1919
CylinderMesh161.Parent = Part160
1920
CylinderMesh161.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
1921
CylinderMesh161.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
1922
Part162.Parent = Tool0
1923
Part162.Material = Enum.Material.SmoothPlastic
1924
Part162.BrickColor = BrickColor.new("Dark stone grey")
1925
Part162.Transparency = 1
1926
Part162.Rotation = Vector3.new(0, 90, 0)
1927
Part162.Anchored = true
1928
Part162.CanCollide = false
1929
Part162.FormFactor = Enum.FormFactor.Custom
1930
Part162.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
1931
Part162.CFrame = CFrame.new(1436.875, 48.33424, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1932
Part162.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1933
Part162.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1934
Part162.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1935
Part162.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1936
Part162.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1937
Part162.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1938
Part162.Color = Color3.new(0.388235, 0.372549, 0.384314)
1939
Part162.Position = Vector3.new(1436.875, 48.33424, -1310.87622)
1940
Part162.Orientation = Vector3.new(0, 90, 0)
1941
Part162.Color = Color3.new(0.388235, 0.372549, 0.384314)
1942
SpecialMesh163.Parent = Part162
1943
SpecialMesh163.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
1944
SpecialMesh163.MeshType = Enum.MeshType.Brick
1945
SpecialMesh163.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
1946
Part164.Parent = Tool0
1947
Part164.Material = Enum.Material.SmoothPlastic
1948
Part164.BrickColor = BrickColor.new("Dark stone grey")
1949
Part164.Transparency = 1
1950
Part164.Rotation = Vector3.new(180, 0, 90)
1951
Part164.Anchored = true
1952
Part164.CanCollide = false
1953
Part164.FormFactor = Enum.FormFactor.Custom
1954
Part164.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
1955
Part164.CFrame = CFrame.new(1435.66467, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1956
Part164.BottomSurface = Enum.SurfaceType.Smooth
1957
Part164.TopSurface = Enum.SurfaceType.Smooth
1958
Part164.Color = Color3.new(0.388235, 0.372549, 0.384314)
1959
Part164.Position = Vector3.new(1435.66467, 48.9020348, -1310.87183)
1960
Part164.Orientation = Vector3.new(0, -180, -90)
1961
Part164.Color = Color3.new(0.388235, 0.372549, 0.384314)
1962
CylinderMesh165.Parent = Part164
1963
CylinderMesh165.Scale = Vector3.new(0.494551927, 0.175486088, 0.861476958)
1964
CylinderMesh165.Scale = Vector3.new(0.494551927, 0.175486088, 0.861476958)
1965
Part166.Parent = Tool0
1966
Part166.Material = Enum.Material.SmoothPlastic
1967
Part166.BrickColor = BrickColor.new("Brick yellow")
1968
Part166.Transparency = 1
1969
Part166.Rotation = Vector3.new(-0.870000005, -12.9499998, -157.62999)
1970
Part166.Anchored = true
1971
Part166.CanCollide = false
1972
Part166.FormFactor = Enum.FormFactor.Custom
1973
Part166.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1974
Part166.CFrame = CFrame.new(1435.34644, 48.8009377, -1311.09277, -0.901220024, 0.370889217, -0.224151224, -0.383668005, -0.923353195, 0.0147557557, -0.201498002, 0.0992978215, 0.97444272)
1975
Part166.BottomSurface = Enum.SurfaceType.Smooth
1976
Part166.TopSurface = Enum.SurfaceType.Smooth
1977
Part166.Color = Color3.new(0.843137, 0.772549, 0.603922)
1978
Part166.Position = Vector3.new(1435.34644, 48.8009377, -1311.09277)
1979
Part166.Orientation = Vector3.new(-0.849999964, -12.9499998, -157.440002)
1980
Part166.Color = Color3.new(0.843137, 0.772549, 0.603922)
1981
CylinderMesh167.Parent = Part166
1982
CylinderMesh167.Scale = Vector3.new(0.291783929, 0.889940858, 0.170207277)
1983
CylinderMesh167.Scale = Vector3.new(0.291783929, 0.889940858, 0.170207277)
1984
Part168.Name = "Smooth Block Model"
1985
Part168.Parent = Tool0
1986
Part168.Material = Enum.Material.SmoothPlastic
1987
Part168.BrickColor = BrickColor.new("Dark stone grey")
1988
Part168.Transparency = 1
1989
Part168.Rotation = Vector3.new(90, 15, 90)
1990
Part168.Anchored = true
1991
Part168.CanCollide = false
1992
Part168.FormFactor = Enum.FormFactor.Custom
1993
Part168.Size = Vector3.new(1, 1, 1)
1994
Part168.CFrame = CFrame.new(1435.82715, 48.8071632, -1310.87183, 0, -0.965925872, 0.258818984, 0, -0.258818984, -0.965925872, 1, 0, 0)
1995
Part168.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1996
Part168.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1997
Part168.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1998
Part168.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1999
Part168.RightSurface = Enum.SurfaceType.SmoothNoOutlines
2000
Part168.TopSurface = Enum.SurfaceType.SmoothNoOutlines
2001
Part168.Color = Color3.new(0.388235, 0.372549, 0.384314)
2002
Part168.Position = Vector3.new(1435.82715, 48.8071632, -1310.87183)
2003
Part168.Orientation = Vector3.new(75, 90, 180)
2004
Part168.Color = Color3.new(0.388235, 0.372549, 0.384314)
2005
SpecialMesh169.Parent = Part168
2006
SpecialMesh169.Scale = Vector3.new(0.0339129046, 0.245868579, 0.22891213)
2007
SpecialMesh169.MeshType = Enum.MeshType.Wedge
2008
SpecialMesh169.Scale = Vector3.new(0.0339129046, 0.245868579, 0.22891213)
2009
Part170.Name = "Smooth Block Model"
2010
Part170.Parent = Tool0
2011
Part170.Material = Enum.Material.SmoothPlastic
2012
Part170.BrickColor = BrickColor.new("Dark stone grey")
2013
Part170.Transparency = 1
2014
Part170.Rotation = Vector3.new(-90, -15, 90)
2015
Part170.Anchored = true
2016
Part170.CanCollide = false
2017
Part170.FormFactor = Enum.FormFactor.Custom
2018
Part170.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
2019
Part170.CFrame = CFrame.new(1435.77759, 48.6315002, -1310.87183, 0, -0.965925872, -0.258818984, 0, -0.258818984, 0.965925872, -1, 0, 0)
2020
Part170.BackSurface = Enum.SurfaceType.SmoothNoOutlines
2021
Part170.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
2022
Part170.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
2023
Part170.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
2024
Part170.RightSurface = Enum.SurfaceType.SmoothNoOutlines
2025
Part170.TopSurface = Enum.SurfaceType.SmoothNoOutlines
2026
Part170.Color = Color3.new(0.388235, 0.372549, 0.384314)
2027
Part170.Position = Vector3.new(1435.77759, 48.6315002, -1310.87183)
2028
Part170.Orientation = Vector3.new(-75, -90, 180)
2029
Part170.Color = Color3.new(0.388235, 0.372549, 0.384314)
2030
SpecialMesh171.Parent = Part170
2031
SpecialMesh171.Scale = Vector3.new(0.236344978, 0.177258641, 0.196954101)
2032
SpecialMesh171.MeshType = Enum.MeshType.Wedge
2033
SpecialMesh171.Scale = Vector3.new(0.236344978, 0.177258641, 0.196954101)
2034
Part172.Parent = Tool0
2035
Part172.Material = Enum.Material.SmoothPlastic
2036
Part172.BrickColor = BrickColor.new("Dark stone grey")
2037
Part172.Transparency = 1
2038
Part172.Rotation = Vector3.new(-90, 0, 90)
2039
Part172.Anchored = true
2040
Part172.CanCollide = false
2041
Part172.FormFactor = Enum.FormFactor.Custom
2042
Part172.Size = Vector3.new(1, 1, 1)
2043
Part172.CFrame = CFrame.new(1436.74353, 48.5165329, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
2044
Part172.BackSurface = Enum.SurfaceType.SmoothNoOutlines
2045
Part172.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
2046
Part172.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
2047
Part172.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
2048
Part172.RightSurface = Enum.SurfaceType.SmoothNoOutlines
2049
Part172.TopSurface = Enum.SurfaceType.SmoothNoOutlines
2050
Part172.Color = Color3.new(0.388235, 0.372549, 0.384314)
2051
Part172.Position = Vector3.new(1436.74353, 48.5165329, -1310.87183)
2052
Part172.Orientation = Vector3.new(-90, 90, 0)
2053
Part172.Color = Color3.new(0.388235, 0.372549, 0.384314)
2054
SpecialMesh173.Parent = Part172
2055
SpecialMesh173.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
2056
SpecialMesh173.MeshType = Enum.MeshType.Brick
2057
SpecialMesh173.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
2058
Part174.Parent = Tool0
2059
Part174.Material = Enum.Material.SmoothPlastic
2060
Part174.Transparency = 1
2061
Part174.Rotation = Vector3.new(90, 75, -90)
2062
Part174.Anchored = true
2063
Part174.CanCollide = false
2064
Part174.FormFactor = Enum.FormFactor.Custom
2065
Part174.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
2066
Part174.CFrame = CFrame.new(1435.75964, 48.5609169, -1310.87622, 0, 0.258818984, 0.965925872, 0, 0.965925872, -0.258818984, -1, 0, 0)
2067
Part174.BottomSurface = Enum.SurfaceType.Smooth
2068
Part174.TopSurface = Enum.SurfaceType.Smooth
2069
Part174.Position = Vector3.new(1435.75964, 48.5609169, -1310.87622)
2070
Part174.Orientation = Vector3.new(15, 90, 0)
2071
SpecialMesh175.Parent = Part174
2072
SpecialMesh175.Scale = Vector3.new(0.0300189164, 0.540340722, 0.0900567546)
2073
SpecialMesh175.MeshType = Enum.MeshType.Brick
2074
SpecialMesh175.Scale = Vector3.new(0.0300189164, 0.540340722, 0.0900567546)
2075
Part176.Parent = Tool0
2076
Part176.Material = Enum.Material.SmoothPlastic
2077
Part176.BrickColor = BrickColor.new("Nougat")
2078
Part176.Transparency = 1
2079
Part176.Rotation = Vector3.new(180, 0, 90)
2080
Part176.Anchored = true
2081
Part176.CanCollide = false
2082
Part176.FormFactor = Enum.FormFactor.Custom
2083
Part176.Size = Vector3.new(0.415433139, 0.313694388, 0.423911244)
2084
Part176.CFrame = CFrame.new(1434.67273, 48.9062729, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
2085
Part176.BottomSurface = Enum.SurfaceType.Smooth
2086
Part176.TopSurface = Enum.SurfaceType.Smooth
2087
Part176.Color = Color3.new(0.8, 0.556863, 0.411765)
2088
Part176.Position = Vector3.new(1434.67273, 48.9062729, -1310.87183)
2089
Part176.Orientation = Vector3.new(0, -180, -90)
2090
Part176.Color = Color3.new(0.8, 0.556863, 0.411765)
2091
CylinderMesh177.Parent = Part176
2092
Part178.Parent = Tool0
2093
Part178.Material = Enum.Material.SmoothPlastic
2094
Part178.BrickColor = BrickColor.new("Brick yellow")
2095
Part178.Transparency = 1
2096
Part178.Rotation = Vector3.new(-90, 0, 90)
2097
Part178.Anchored = true
2098
Part178.CanCollide = false
2099
Part178.FormFactor = Enum.FormFactor.Custom
2100
Part178.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
2101
Part178.CFrame = CFrame.new(1434.84229, 48.626503, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
2102
Part178.BottomSurface = Enum.SurfaceType.Smooth
2103
Part178.TopSurface = Enum.SurfaceType.Smooth
2104
Part178.Color = Color3.new(0.843137, 0.772549, 0.603922)
2105
Part178.Position = Vector3.new(1434.84229, 48.626503, -1310.87183)
2106
Part178.Orientation = Vector3.new(-90, 90, 0)
2107
Part178.Color = Color3.new(0.843137, 0.772549, 0.603922)
2108
SpecialMesh179.Parent = Part178
2109
SpecialMesh179.Scale = Vector3.new(0.287159115, 0.781710386, 0.175486133)
2110
SpecialMesh179.MeshType = Enum.MeshType.Brick
2111
SpecialMesh179.Scale = Vector3.new(0.287159115, 0.781710386, 0.175486133)
2112
Part180.Parent = Tool0
2113
Part180.Material = Enum.Material.SmoothPlastic
2114
Part180.BrickColor = BrickColor.new("Black")
2115
Part180.Transparency = 1
2116
Part180.Rotation = Vector3.new(15.0099993, 62.4199982, 2.98000002)
2117
Part180.Anchored = true
2118
Part180.CanCollide = false
2119
Part180.FormFactor = Enum.FormFactor.Custom
2120
Part180.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
2121
Part180.CFrame = CFrame.new(1435.07532, 49.0545235, -1310.66675, 0.462388188, -0.0240549594, 0.886351287, 0.2793791, 0.95266664, -0.119890675, -0.841513276, 0.303064078, 0.447222203)
2122
Part180.BottomSurface = Enum.SurfaceType.Smooth
2123
Part180.TopSurface = Enum.SurfaceType.Smooth
2124
Part180.Color = Color3.new(0.105882, 0.164706, 0.207843)
2125
Part180.Position = Vector3.new(1435.07532, 49.0545235, -1310.66675)
2126
Part180.Orientation = Vector3.new(6.88999987, 63.2299995, 16.3400002)
2127
Part180.Color = Color3.new(0.105882, 0.164706, 0.207843)
2128
CylinderMesh181.Parent = Part180
2129
CylinderMesh181.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
2130
CylinderMesh181.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
2131
Part182.Parent = Tool0
2132
Part182.Material = Enum.Material.SmoothPlastic
2133
Part182.BrickColor = BrickColor.new("Dark stone grey")
2134
Part182.Transparency = 1
2135
Part182.Rotation = Vector3.new(180, 0, 90)
2136
Part182.Anchored = true
2137
Part182.CanCollide = false
2138
Part182.FormFactor = Enum.FormFactor.Custom
2139
Part182.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
2140
Part182.CFrame = CFrame.new(1433.90967, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
2141
Part182.BottomSurface = Enum.SurfaceType.Smooth
2142
Part182.TopSurface = Enum.SurfaceType.Smooth
2143
Part182.Color = Color3.new(0.388235, 0.372549, 0.384314)
2144
Part182.Position = Vector3.new(1433.90967, 48.9232292, -1310.87183)
2145
Part182.Orientation = Vector3.new(0, -180, -90)
2146
Part182.Color = Color3.new(0.388235, 0.372549, 0.384314)
2147
CylinderMesh183.Parent = Part182
2148
CylinderMesh183.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
2149
CylinderMesh183.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
2150
Part184.Parent = Tool0
2151
Part184.Material = Enum.Material.SmoothPlastic
2152
Part184.BrickColor = BrickColor.new("Dark stone grey")
2153
Part184.Transparency = 1
2154
Part184.Rotation = Vector3.new(-90, 75, 90)
2155
Part184.Anchored = true
2156
Part184.CanCollide = false
2157
Part184.FormFactor = Enum.FormFactor.Custom
2158
Part184.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
2159
Part184.CFrame = CFrame.new(1435.92761, 48.4653969, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
2160
Part184.BottomSurface = Enum.SurfaceType.Smooth
2161
Part184.TopSurface = Enum.SurfaceType.Smooth
2162
Part184.Color = Color3.new(0.388235, 0.372549, 0.384314)
2163
Part184.Position = Vector3.new(1435.92761, 48.4653969, -1310.87183)
2164
Part184.Orientation = Vector3.new(-15, 90, 0)
2165
Part184.Color = Color3.new(0.388235, 0.372549, 0.384314)
2166
SpecialMesh185.Parent = Part184
2167
SpecialMesh185.Scale = Vector3.new(0.19143942, 0.909336686, 0.239299268)
2168
SpecialMesh185.MeshType = Enum.MeshType.Brick
2169
SpecialMesh185.Scale = Vector3.new(0.19143942, 0.909336686, 0.239299268)
2170
Part186.Parent = Tool0
2171
Part186.Material = Enum.Material.SmoothPlastic
2172
Part186.Transparency = 1
2173
Part186.Rotation = Vector3.new(-90, 0, 90)
2174
Part186.Anchored = true
2175
Part186.CanCollide = false
2176
Part186.FormFactor = Enum.FormFactor.Custom
2177
Part186.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
2178
Part186.CFrame = CFrame.new(1434.48193, 49.1648102, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
2179
Part186.BottomSurface = Enum.SurfaceType.Smooth
2180
Part186.TopSurface = Enum.SurfaceType.Smooth
2181
Part186.Position = Vector3.new(1434.48193, 49.1648102, -1310.87183)
2182
Part186.Orientation = Vector3.new(-90, 90, 0)
2183
SpecialMesh187.Parent = Part186
2184
SpecialMesh187.Scale = Vector3.new(0.0319065675, 0.0319065675, 0.223345816)
2185
SpecialMesh187.MeshType = Enum.MeshType.Brick
2186
SpecialMesh187.Scale = Vector3.new(0.0319065675, 0.0319065675, 0.223345816)
2187
IntValue188.Name = "Ammo"
2188
IntValue188.Parent = Tool0
2189
IntValue188.Value = 25
2190
IntValue189.Name = "ClipSize"
2191
IntValue189.Parent = Tool0
2192
IntValue189.Value = 25
2193
IntValue190.Name = "LethalGrenades"
2194
IntValue190.Parent = Tool0
2195
IntValue190.Value = 15
2196
IntValue191.Name = "StoredAmmo"
2197
IntValue191.Parent = Tool0
2198
IntValue191.Value = 400
2199
IntValue192.Name = "TacticalGrenades"
2200
IntValue192.Parent = Tool0
2201
IntValue192.Value = 15
2202
Script193.Name = "serverMain"
2203
Script193.Parent = Tool0
2204
table.insert(cors,sandbox(Script193,function()
2205
local Plyr = script:WaitForChild("Plyr")
2206
2207
local Gun = script.Parent
2208
local Handle = Gun:WaitForChild("Handle")
2209
2210
local V3 = Vector3.new
2211
local CF, CFANG = CFrame.new, CFrame.Angles
2212
2213
local RAD = math.rad
2214
2215
local numLerp = function(A, B, Alpha)
2216
	return A + (B - A) * Alpha
2217
end
2218
2219
local inList = function(Element, List)
2220
	for _, v in pairs(List) do
2221
		if v == Element then
2222
			return true
2223
		end
2224
	end
2225
	return false
2226
end
2227
2228
local getObject = function(Model, Class, Name)
2229
	for _, v in pairs(Model:GetChildren()) do
2230
		if v:IsA(Class) and v.Name == Name then
2231
			return v
2232
		end
2233
	end
2234
	return nil
2235
end
2236
2237
----------------------------------------------------------------------
2238
--------------------[ IGNORE MODEL HANDLING ]-------------------------
2239
----------------------------------------------------------------------
2240
2241
wait(math.random(0, 20) / 40) --This is to prevent more than one ignoreModel from being created
2242
2243
if _G.ignoreCode then --If the ignoreCode already exists, then the script creates the ignoreModel
2244
	--[[
2245
		The purpose of this is so that every gun in a game that uses this gun kit will share one ignoreModel. That way,
2246
		bullet trails, bullet holes, and other fake arms will be ignored by the gun which makes the bullets more likely to
2247
		hit a character part
2248
	--]]
2249
	if (not game.Workspace:FindFirstChild("ignoreModel_".._G.ignoreCode)) then
2250
		local ignoreModel = Instance.new("Model")
2251
		ignoreModel.Name = "ignoreModel_".._G.ignoreCode
2252
		ignoreModel.Parent = game.Workspace
2253
		
2254
		local grenadeFolder = Instance.new("Model")
2255
		grenadeFolder.Name = "grenadeFolder"
2256
		grenadeFolder.Parent = ignoreModel
2257
	
2258
		spawn(function()
2259
			while true do
2260
				ignoreModel.Parent = game.Workspace
2261
				grenadeFolder.Parent = ignoreModel
2262
				wait(1 / 20)
2263
			end
2264
		end)
2265
	end
2266
	
2267
	script.Parent:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value = _G.ignoreCode
2268
else
2269
	--[[
2270
		If there isn't already an ignoreCode, then this creates one. The purpose of it being random is so that if there is
2271
		an ignoreModel for something else in the game, the script won't end up placing the ignored objects in that ignoreModel
2272
	--]]
2273
	_G.ignoreCode = math.random(1, 1e4)
2274
	
2275
	if (not game.Workspace:FindFirstChild("ignoreModel_".._G.ignoreCode)) then
2276
		local ignoreModel = Instance.new("Model")
2277
		ignoreModel.Name = "ignoreModel_".._G.ignoreCode
2278
		ignoreModel.Parent = game.Workspace
2279
		
2280
		local grenadeFolder = Instance.new("Model")
2281
		grenadeFolder.Name = "grenadeFolder"
2282
		grenadeFolder.Parent = ignoreModel
2283
	
2284
		spawn(function()
2285
			while true do
2286
				ignoreModel.Parent = game.Workspace
2287
				grenadeFolder.Parent = ignoreModel
2288
				wait(1 / 20)
2289
			end
2290
		end)
2291
	end
2292
	
2293
	script.Parent:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value = _G.ignoreCode
2294
end
2295
2296
spawn(function()
2297
	--[[
2298
		This function deletes any Player Folders that were left in the ignoreModel because the player left the game without
2299
		deselecting the Gun first
2300
	--]]
2301
	repeat wait() until _G.ignoreCode
2302
	local ignoreModel = game.Workspace:WaitForChild("ignoreModel_".._G.ignoreCode)
2303
	while true do
2304
		for _, gunIgnore in pairs(ignoreModel:GetChildren()) do
2305
			if gunIgnore.Name ~= "grenadeFolder" then
2306
				if (not game.Players:FindFirstChild(gunIgnore.Name:sub(11))) then
2307
					gunIgnore:Destroy()
2308
				end
2309
			end
2310
		end
2311
		wait(1 / 20)
2312
	end
2313
end)
2314
2315
----------------------------------------------------------------------
2316
--------------------[ RESET CAMERA ]----------------------------------
2317
----------------------------------------------------------------------
2318
2319
Gun.ChildRemoved:connect(function(Child)
2320
	if Child == Handle and Plyr.Value then
2321
		local ignoreCode = Gun:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value
2322
		local resetCam = script:WaitForChild("resetCam")
2323
		resetCam:WaitForChild("ignoreCode").Value = ignoreCode
2324
		resetCam.Parent = Plyr.Value.PlayerGui
2325
	end
2326
end)
2327
2328
----------------------------------------------------------------------
2329
--------------------[ GET WELD CFRAMES ]------------------------------
2330
----------------------------------------------------------------------
2331
2332
for _, v in pairs(Gun:GetChildren()) do
2333
	if v:IsA("BasePart") and v ~= Handle then
2334
		if v:FindFirstChild("mainWeld") then v.mainWeld:Destroy() end
2335
		if (not v:FindFirstChild("weldCF")) then
2336
			local weldCF = Instance.new("CFrameValue")
2337
			weldCF.Name = "weldCF"
2338
			weldCF.Value = Handle.CFrame:toObjectSpace(v.CFrame)
2339
			weldCF.Parent = v
2340
		end
2341
		if string.sub(v.Name, 1, 3) == "Mag" then
2342
			if (not v:FindFirstChild("magTrans")) then
2343
				local magTrans = Instance.new("NumberValue")
2344
				magTrans.Name = "magTrans"
2345
				magTrans.Value = v.Transparency
2346
				magTrans.Parent = v
2347
			end
2348
		end
2349
		v.Anchored = true
2350
		v.CanCollide = false
2351
	end
2352
end
2353
Handle.Anchored = false
2354
Handle.CanCollide = true
2355
2356
----------------------------------------------------------------------
2357
--------------------[ GUNSETUP HANDLING ]-----------------------------
2358
----------------------------------------------------------------------
2359
2360
local gunSetup = script:WaitForChild("gunSetup")
2361
function gunSetup.OnServerInvoke(Player, Vars)
2362
	
2363
	--------------------[ CREATING IGNORE MODELS ]--------------------------------
2364
	
2365
	local gunIgnore = Instance.new("Model")
2366
	gunIgnore.Name = "gunIgnore_"..Player.Name
2367
	gunIgnore.Parent = Vars.ignoreModel
2368
	
2369
	--------------------[ MODIFYING THE PLAYER ]----------------------------------
2370
		
2371
	Vars.Humanoid.AutoRotate = false
2372
	
2373
	Vars.Shoulders.Right.Part1 = nil
2374
	Vars.Shoulders.Left.Part1 = nil
2375
	
2376
	local playerFolder = Instance.new("Model")
2377
	playerFolder.Name = "playerFolder"
2378
	playerFolder.Parent = gunIgnore
2379
	
2380
	local headBase = Instance.new("Part")
2381
	headBase.Transparency = 1
2382
	headBase.Name = "headBase"
2383
	headBase.CanCollide = false
2384
	headBase.FormFactor = Enum.FormFactor.Custom
2385
	headBase.Size = V3(0.2, 0.2, 0.2)
2386
	headBase.BottomSurface = Enum.SurfaceType.Smooth
2387
	headBase.TopSurface = Enum.SurfaceType.Smooth
2388
	headBase.Parent = playerFolder
2389
		
2390
	local headWeld = Instance.new("Weld")
2391
	headWeld.Part0 = Vars.Torso
2392
	headWeld.Part1 = headBase
2393
	headWeld.C0 = CF(0, 1.5, 0)
2394
	headWeld.Parent = Vars.Torso
2395
	
2396
	local headWeld2 = Instance.new("Weld")
2397
	headWeld2.Part0 = headBase
2398
	headWeld2.Part1 = Vars.Head
2399
	headWeld2.Parent = headBase
2400
		
2401
	local animBase = Instance.new("Part")
2402
	animBase.Transparency = 1
2403
	animBase.Name = "animBase"
2404
	animBase.CanCollide = false
2405
	animBase.FormFactor = Enum.FormFactor.Custom
2406
	animBase.Size = V3(0.2, 0.2, 0.2)
2407
	animBase.BottomSurface = Enum.SurfaceType.Smooth
2408
	animBase.TopSurface = Enum.SurfaceType.Smooth
2409
	animBase.Parent = playerFolder
2410
	
2411
	local animWeld = Instance.new("Weld")
2412
	animWeld.Part0 = animBase
2413
	animWeld.Part1 = headBase
2414
	animWeld.Parent = animBase
2415
	
2416
	local armBase = Instance.new("Part")
2417
	armBase.Transparency = 1
2418
	armBase.Name = "ArmBase"
2419
	armBase.CanCollide = false
2420
	armBase.FormFactor = Enum.FormFactor.Custom
2421
	armBase.Size = V3(0.2, 0.2, 0.2)
2422
	armBase.BottomSurface = Enum.SurfaceType.Smooth
2423
	armBase.TopSurface = Enum.SurfaceType.Smooth
2424
	armBase.Parent = playerFolder
2425
	
2426
	local ABWeld = Instance.new("Weld")
2427
	ABWeld.Part0 = armBase
2428
	ABWeld.Part1 = animBase
2429
	ABWeld.Parent = armBase
2430
		
2431
	local LArmBase = Instance.new("Part")
2432
	LArmBase.Transparency = 1
2433
	LArmBase.Name = "LArmBase"
2434
	LArmBase.CanCollide = false
2435
	LArmBase.FormFactor = Enum.FormFactor.Custom
2436
	LArmBase.Size = V3(0.2, 0.2, 0.2)
2437
	LArmBase.BottomSurface = Enum.SurfaceType.Smooth
2438
	LArmBase.TopSurface = Enum.SurfaceType.Smooth
2439
	LArmBase.Parent = playerFolder
2440
	
2441
	local RArmBase = Instance.new("Part")
2442
	RArmBase.Transparency = 1
2443
	RArmBase.Name = "RArmBase"
2444
	RArmBase.CanCollide = false
2445
	RArmBase.FormFactor = Enum.FormFactor.Custom
2446
	RArmBase.Size = V3(0.2, 0.2, 0.2)
2447
	RArmBase.BottomSurface = Enum.SurfaceType.Smooth
2448
	RArmBase.TopSurface = Enum.SurfaceType.Smooth
2449
	RArmBase.Parent = playerFolder
2450
	
2451
	local LWeld = Instance.new("Weld")
2452
	LWeld.Name = "LWeld"
2453
	LWeld.Part0 = armBase
2454
	LWeld.Part1 = LArmBase
2455
	LWeld.C0 = Vars.armC0[1]
2456
	LWeld.C1 = Vars.leftArmC1
2457
	LWeld.Parent = armBase
2458
	
2459
	local RWeld = Instance.new("Weld")
2460
	RWeld.Name = "RWeld"
2461
	RWeld.Part0 = armBase
2462
	RWeld.Part1 = RArmBase
2463
	RWeld.C0 = Vars.armC0[2]
2464
	RWeld.C1 = Vars.rightArmC1
2465
	RWeld.Parent = armBase
2466
	
2467
	local LWeld2 = Instance.new("Weld")
2468
	LWeld2.Name = "LWeld"
2469
	LWeld2.Part0 = LArmBase
2470
	LWeld2.Part1 = Vars.LArm
2471
	LWeld2.Parent = LArmBase
2472
	
2473
	local RWeld2 = Instance.new("Weld")
2474
	RWeld2.Name = "RWeld"
2475
	RWeld2.Part0 = RArmBase
2476
	RWeld2.Part1 = Vars.RArm
2477
	RWeld2.Parent = RArmBase
2478
	
2479
	local LLegWeld = Instance.new("Weld")
2480
	LLegWeld.Name = "LLegWeld"
2481
	LLegWeld.Part0 = Vars.Torso
2482
	LLegWeld.Part1 = nil
2483
	LLegWeld.C0 = CF(-0.5, -2, 0)
2484
	LLegWeld.Parent = Vars.Torso
2485
	
2486
	local RLegWeld = Instance.new("Weld")
2487
	RLegWeld.Name = "RLegWeld"
2488
	RLegWeld.Part0 = Vars.Torso
2489
	RLegWeld.Part1 = nil
2490
	RLegWeld.C0 = CF(0.5, -2, 0)
2491
	RLegWeld.Parent = Vars.Torso
2492
	
2493
	for _, Tab in pairs(Vars.gunParts) do
2494
		Tab.Obj.Anchored = false
2495
		local Weld = Instance.new("Weld")
2496
		Weld.Name = "mainWeld"
2497
		Weld.Part0 = Vars.Handle
2498
		Weld.Part1 = Tab.Obj
2499
		Weld.C0 = Tab.Obj.weldCF.Value
2500
		Weld.Parent = Vars.Handle
2501
		Tab.Weld = Weld
2502
	end
2503
	
2504
	return gunIgnore, playerFolder, headWeld, headWeld2, animWeld, ABWeld, LWeld, RWeld, LWeld2, RWeld2, LLegWeld, RLegWeld, Vars.gunParts
2505
end
2506
2507
----------------------------------------------------------------------
2508
--------------------[ TWEENJOINT HANDLING ]---------------------------
2509
----------------------------------------------------------------------
2510
2511
local createTweenIndicator = script:WaitForChild("createTweenIndicator")
2512
function createTweenIndicator.OnServerInvoke(_, Joint, newCode)
2513
	local tweenIndicator = nil
2514
	if (not Joint:findFirstChild("tweenCode")) then --If the joint isn't being tweened, then
2515
		tweenIndicator = Instance.new("IntValue")
2516
		tweenIndicator.Name = "tweenCode"
2517
		tweenIndicator.Value = newCode
2518
		tweenIndicator.Parent = Joint
2519
	else
2520
		tweenIndicator = Joint.tweenCode
2521
		tweenIndicator.Value = newCode --If the joint is already being tweened, this will change the code, and the tween loop will stop
2522
	end
2523
	return tweenIndicator
2524
end
2525
2526
local lerpCF = script:WaitForChild("lerpCF")
2527
function lerpCF.OnServerInvoke(_, Joint, Prop, startCF, endCF, Alpha)
2528
	spawn(function()
2529
		Joint[Prop] = startCF:lerp(endCF, Alpha)
2530
	end)
2531
end
2532
2533
local deleteTweenIndicator = script:WaitForChild("deleteTweenIndicator")
2534
function deleteTweenIndicator.OnServerInvoke(_, tweenIndicator, newCode)
2535
	if tweenIndicator.Value == newCode then --If this tween functions was the last one called on a joint then it will remove the code
2536
		tweenIndicator:Destroy()
2537
	end
2538
end
2539
2540
----------------------------------------------------------------------
2541
--------------------[ BULLET IMPACT HANDLING ]------------------------
2542
----------------------------------------------------------------------
2543
2544
local createBulletImpact = script:WaitForChild("createBulletImpact")
2545
createBulletImpact.OnServerEvent:connect(function(_, H, P, N, D, humanoidFound, gunIgnore, S)
2546
	local surfaceCF = CF(P, P + N)
2547
	----------------------------------------------------------------------------------
2548
	--Creating the bullet hole--------------------------------------------------------
2549
	----------------------------------------------------------------------------------
2550
	if S.bulletHoles and (not humanoidFound) then
2551
		local Hole = Instance.new("Part")
2552
		Hole.Transparency = 1
2553
		Hole.Anchored = true
2554
		Hole.CanCollide = false
2555
		Hole.FormFactor = "Custom"
2556
		Hole.Size = V3(1, 1, 0.2)
2557
		Hole.TopSurface = 0
2558
		Hole.BottomSurface = 0
2559
		local Mesh = Instance.new("BlockMesh")
2560
		Mesh.Offset = V3(0, 0, -0.05)
2561
		Mesh.Scale = V3(S.holeSettings.Size, S.holeSettings.Size, 0)
2562
		Mesh.Parent = Hole
2563
		local Decal = Instance.new("Decal")
2564
		Decal.Face = Enum.NormalId.Front
2565
		Decal.Texture = S.holeSettings.Texture
2566
		Decal.Parent = Hole
2567
		Hole.Parent = gunIgnore
2568
		Hole.CFrame = surfaceCF
2569
		if (not H.Anchored) then
2570
			local Weld = Instance.new("Weld", Hole)
2571
			Weld.Part0 = H
2572
			Weld.Part1 = Hole
2573
			Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
2574
			Hole.Anchored = false
2575
		end
2576
		delay(S.holeSettings.visibleTime, function()
2577
			if S.holeSettings.disappearTime > 0 then
2578
				local t0 = tick()
2579
				while true do
2580
					local Alpha = math.min((tick() - t0) / S.holeSettings.disappearTime, 1)
2581
					Decal.Transparency = numLerp(0, 1, Alpha)
2582
					if Alpha == 1 then break end
2583
					wait()
2584
				end
2585
				Hole:Destroy()
2586
			else
2587
				Hole:Destroy()
2588
			end
2589
		end)
2590
	end
2591
	----------------------------------------------------------------------------------
2592
	--Creating the spark effect-------------------------------------------------------
2593
	----------------------------------------------------------------------------------
2594
	if S.bulletSparks and (not humanoidFound) and inList(H.Material, S.sparkSettings.Materials) then
2595
		local Sparks = Instance.new("Part")
2596
		Sparks.Transparency = 1
2597
		Sparks.Anchored = true
2598
		Sparks.CanCollide = false
2599
		Sparks.FormFactor = "Custom"
2600
		Sparks.Size = V3(1, 1, 1)
2601
		Sparks.TopSurface = 0
2602
		Sparks.BottomSurface = 0
2603
		
2604
		local Particles = nil
2605
		if S.customSparks then
2606
			Particles = getObject(game.ServerStorage, "ParticleEmitter", "bulletSpark"):Clone()
2607
		else
2608
			Particles = Instance.new("ParticleEmitter")
2609
			Particles.Color = ColorSequence.new(S.sparkSettings.Color.Start, S.sparkSettings.Color.End)
2610
			Particles.LightEmission = 1
2611
			Particles.Size = NumberSequence.new(
2612
				{
2613
					NumberSequenceKeypoint.new(0, S.sparkSettings.Size, 0.25);
2614
					NumberSequenceKeypoint.new(1, 0);
2615
				}
2616
			)
2617
			Particles.Texture = S.sparkSettings.Texture
2618
			Particles.Transparency = NumberSequence.new(0)
2619
			Particles.Acceleration = V3(0, -196.2, 0)
2620
			Particles.EmissionDirection = Enum.NormalId.Front
2621
			Particles.Lifetime = NumberRange.new(S.sparkSettings.Lifetime - 0.05, S.sparkSettings.Lifetime + 0.05)
2622
			Particles.Rate = S.sparkSettings.Rate
2623
			Particles.Rotation = NumberRange.new(0, 360)
2624
			Particles.Speed = NumberRange.new(S.sparkSettings.Speed - 5, S.sparkSettings.Speed + 5)
2625
			Particles.VelocitySpread = S.sparkSettings.Spread
2626
		end
2627
		Particles.Parent = Sparks
2628
		
2629
		Sparks.Parent = gunIgnore
2630
		Sparks.CFrame = surfaceCF
2631
		if (not H.Anchored) then
2632
			local Weld = Instance.new("Weld", Sparks)
2633
			Weld.Part0 = H
2634
			Weld.Part1 = Sparks
2635
			Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
2636
			Sparks.Anchored = false
2637
		end
2638
		delay(0.1, function()
2639
			Particles.Enabled = false
2640
			wait(Particles.Lifetime.Max)
2641
			Sparks:Destroy()
2642
		end)
2643
	end
2644
	----------------------------------------------------------------------------------
2645
	--Creating the smoke effect-------------------------------------------------------
2646
	----------------------------------------------------------------------------------
2647
	if S.bulletSmoke and (not humanoidFound) then
2648
		local Smoke = Instance.new("Part")
2649
		Smoke.Transparency = 1
2650
		Smoke.Anchored = true
2651
		Smoke.CanCollide = false
2652
		Smoke.FormFactor = "Custom"
2653
		Smoke.Size = V3(1, 1, 1)
2654
		Smoke.TopSurface = 0
2655
		Smoke.BottomSurface = 0
2656
		
2657
		local Particles = Instance.new("ParticleEmitter")
2658
		Particles.Color = ColorSequence.new(S.smokeSettings.objColor and H.Color or S.smokeSettings.Color)
2659
		Particles.LightEmission = 0
2660
		Particles.Size = NumberSequence.new(
2661
			{
2662
				NumberSequenceKeypoint.new(0, S.smokeSettings.Size.Start);
2663
				NumberSequenceKeypoint.new(1, S.smokeSettings.Size.End);
2664
			}
2665
		)
2666
		Particles.Texture = S.smokeSettings.Texture
2667
		Particles.Transparency = NumberSequence.new(
2668
			{
2669
				NumberSequenceKeypoint.new(0, S.smokeSettings.startTransparency);
2670
				NumberSequenceKeypoint.new(0.5, 0.75 * S.smokeSettings.startTransparency + 0.25);
2671
				NumberSequenceKeypoint.new(1, 1);
2672
			}
2673
		)
2674
		Particles.Acceleration = V3(0, -196.2, 0)
2675
		Particles.EmissionDirection = Enum.NormalId.Front
2676
		Particles.Lifetime = NumberRange.new(S.smokeSettings.Lifetime - 0.05, S.smokeSettings.Lifetime + 0.05)
2677
		Particles.Rate = S.smokeSettings.Rate
2678
		Particles.Rotation = NumberRange.new(0, 360)
2679
		Particles.RotSpeed = NumberRange.new(10)
2680
		Particles.Speed = NumberRange.new(S.smokeSettings.Speed - 5, S.smokeSettings.Speed + 5)
2681
		Particles.VelocitySpread = S.smokeSettings.Spread
2682
		Particles.Parent = Smoke
2683
		
2684
		Smoke.Parent = gunIgnore
2685
		Smoke.CFrame = surfaceCF
2686
		if (not H.Anchored) then
2687
			local Weld = Instance.new("Weld", Smoke)
2688
			Weld.Part0 = H
2689
			Weld.Part1 = Smoke
2690
			Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
2691
			Smoke.Anchored = false
2692
		end
2693
		delay(0.1, function()
2694
			Particles.Enabled = false
2695
			wait(S.smokeSettings.Lifetime + 0.05)
2696
			Smoke:Destroy()
2697
		end)
2698
	end
2699
end)
2700
2701
----------------------------------------------------------------------
2702
--------------------[ SHOCKWAVE HANDLING ]----------------------------
2703
----------------------------------------------------------------------
2704
2705
local createShockwave = script:WaitForChild("createShockwave")
2706
createShockwave.OnServerEvent:connect(function(_, Center, Radius, gunIgnore, S)
2707
	local Shockwave = Instance.new("Part")
2708
	Shockwave.BrickColor = S.shockwaveSettings.Color
2709
	Shockwave.Material = Enum.Material.SmoothPlastic
2710
	Shockwave.Name = "Shockwave"
2711
	Shockwave.Anchored = true
2712
	Shockwave.CanCollide = false
2713
	Shockwave.FormFactor = Enum.FormFactor.Symmetric
2714
	Shockwave.Size = V3(1, 1, 1)
2715
	Shockwave.BottomSurface = Enum.SurfaceType.Smooth
2716
	Shockwave.TopSurface = Enum.SurfaceType.Smooth
2717
	local Mesh = Instance.new("SpecialMesh")
2718
	Mesh.MeshType = Enum.MeshType.Sphere
2719
	Mesh.Scale = V3()
2720
	Mesh.Parent = Shockwave
2721
	Shockwave.Parent = gunIgnore
2722
	Shockwave.CFrame = CF(Center)
2723
	spawn(function()
2724
		local t0 = tick()
2725
		while true do
2726
			local Alpha = math.min((tick() - t0) / S.shockwaveSettings.Duration, 1)
2727
			local Scale = 2 * Radius * Alpha
2728
			Mesh.Scale = V3(Scale, Scale, Scale)
2729
			Shockwave.Transparency = Alpha
2730
			if Alpha == 1 then break end
2731
			wait()
2732
		end
2733
		Shockwave:Destroy()
2734
	end)
2735
end)
2736
2737
----------------------------------------------------------------------
2738
--------------------[ BLOOD HANDLING ]--------------------------------
2739
----------------------------------------------------------------------
2740
2741
local createBlood = script:WaitForChild("createBlood")
2742
createBlood.OnServerEvent:connect(function(_, H, P, D, gunIgnore, S)
2743
	local bloodCF = CF(P, P + D) * CFANG(RAD(-90), 0, 0)
2744
	local Blood = Instance.new("Part")
2745
	Blood.Transparency = 1
2746
	Blood.Anchored = true
2747
	Blood.CanCollide = false
2748
	Blood.FormFactor = "Custom"
2749
	Blood.Size = V3(0.2, 1, 0.2)
2750
	Blood.TopSurface = 0
2751
	Blood.BottomSurface = 0
2752
	
2753
	local Particles = Instance.new("ParticleEmitter")
2754
	Particles.Color = ColorSequence.new(S.bloodSettings.Color)
2755
	Particles.LightEmission = 0
2756
	Particles.Size = NumberSequence.new(S.bloodSettings.Size)
2757
	Particles.Texture = S.bloodSettings.Texture
2758
	Particles.Transparency = NumberSequence.new(
2759
		{
2760
			NumberSequenceKeypoint.new(0, S.bloodSettings.startTransparency);
2761
			NumberSequenceKeypoint.new(1, 1);
2762
		}
2763
	)
2764
	Particles.EmissionDirection = Enum.NormalId.Top
2765
	Particles.Lifetime = NumberRange.new(S.bloodSettings.Lifetime - 0.05, S.bloodSettings.Lifetime + 0.05)
2766
	Particles.Rate = S.bloodSettings.Rate
2767
	Particles.Rotation = NumberRange.new(0, 90)
2768
	Particles.Speed = NumberRange.new(S.bloodSettings.Speed)
2769
	Particles.VelocitySpread = S.bloodSettings.Spread
2770
	Particles.Parent = Blood
2771
	
2772
	Blood.Parent = gunIgnore
2773
	Blood.CFrame = bloodCF
2774
	if (not H.Anchored) then
2775
		local Weld = Instance.new("Weld", Blood)
2776
		Weld.Part0 = H
2777
		Weld.Part1 = Blood
2778
		Weld.C0 = H.CFrame:toObjectSpace(bloodCF)
2779
		Blood.Anchored = false
2780
	end
2781
	delay(0.15, function()
2782
		Particles.Enabled = false
2783
		wait(S.bloodSettings.Lifetime + 0.05)
2784
		Blood:Destroy()
2785
	end)
2786
end)
2787
2788
----------------------------------------------------------------------
2789
--------------------[ TRAIL HANDLING ]--------------------------------
2790
----------------------------------------------------------------------
2791
2792
local createTrail = script:WaitForChild("createTrail")
2793
createTrail.OnServerEvent:connect(function(_, Origin, P, gunIgnore, S)
2794
	local Trail = Instance.new("Part")
2795
	Trail.BrickColor = S.trailSettings.Color
2796
	Trail.Transparency = S.trailSettings.Transparency
2797
	Trail.Anchored = true
2798
	Trail.CanCollide = false
2799
	Trail.Size = V3(1, 1, 1)
2800
	local Mesh = Instance.new("CylinderMesh")
2801
	Mesh.Offset = V3(0, -(P - Origin).magnitude / 2, 0)
2802
	Mesh.Scale = V3(S.trailSettings.Thickness, (P - Origin).magnitude, S.trailSettings.Thickness)
2803
	Mesh.Parent = Trail
2804
	Trail.Parent = gunIgnore
2805
	Trail.CFrame = CF(Origin, P) * CFANG(RAD(90), 0, 0)
2806
	delay(S.trailSettings.visibleTime, function()
2807
		if S.trailSettings.disappearTime > 0 then
2808
			local t0 = tick()
2809
			while true do
2810
				local Alpha = math.min((tick() - t0) / S.trailSettings.disappearTime, 1)
2811
				Trail.Transparency = numLerp(S.trailSettings.Transparency, 1, Alpha)
2812
				if Alpha == 1 then break end
2813
				wait()
2814
			end
2815
			Trail:Destroy()
2816
		else
2817
			Trail:Destroy()
2818
		end
2819
	end)
2820
end)
2821
end))
2822
ObjectValue194.Name = "Plyr"
2823
ObjectValue194.Parent = Script193
2824
RemoteFunction195.Name = "getWeldCF"
2825
RemoteFunction195.Parent = Script193
2826
RemoteFunction196.Name = "gunSetup"
2827
RemoteFunction196.Parent = Script193
2828
RemoteFunction197.Name = "tweenJoint"
2829
RemoteFunction197.Parent = Script193
2830
RemoteEvent198.Name = "onRenderStep"
2831
RemoteEvent198.Parent = Script193
2832
RemoteFunction199.Name = "createTweenIndicator"
2833
RemoteFunction199.Parent = Script193
2834
RemoteFunction200.Name = "deleteTweenIndicator"
2835
RemoteFunction200.Parent = Script193
2836
RemoteFunction201.Name = "lerpCF"
2837
RemoteFunction201.Parent = Script193
2838
LocalScript202.Name = "resetCam"
2839
LocalScript202.Parent = Script193
2840
table.insert(cors,sandbox(LocalScript202,function()
2841
repeat wait() until game.Players.LocalPlayer.Character
2842
2843
local Player = game.Players.LocalPlayer
2844
local Char = Player.Character
2845
local Humanoid = Char:WaitForChild("Humanoid")
2846
2847
local Cam = game.Workspace.CurrentCamera
2848
local UIS = game:GetService("UserInputService")
2849
2850
local ignoreCode = script:WaitForChild("ignoreCode")
2851
repeat wait() until ignoreCode.Value ~= 0
2852
local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
2853
local gunIgnore = ignoreModel:FindFirstChild("gunIgnore_"..Player.Name)
2854
2855
Cam.FieldOfView = 70
2856
Cam.CameraType = Enum.CameraType.Custom
2857
Cam:ClearAllChildren()
2858
2859
UIS.MouseBehavior = Enum.MouseBehavior.Default
2860
UIS.MouseIconEnabled = true
2861
2862
Player.CameraMode = Enum.CameraMode.Classic
2863
2864
Humanoid.WalkSpeed = 16
2865
Humanoid.AutoRotate = true
2866
2867
if gunIgnore then gunIgnore:Destroy() end
2868
end))
2869
IntValue203.Name = "ignoreCode"
2870
IntValue203.Parent = LocalScript202
2871
RemoteEvent204.Name = "createBulletImpact"
2872
RemoteEvent204.Parent = Script193
2873
RemoteEvent205.Name = "createShockwave"
2874
RemoteEvent205.Parent = Script193
2875
RemoteEvent206.Name = "createBlood"
2876
RemoteEvent206.Parent = Script193
2877
RemoteEvent207.Name = "createTrail"
2878
RemoteEvent207.Parent = Script193
2879
LocalScript208.Name = "clientMain"
2880
LocalScript208.Parent = Tool0
2881
table.insert(cors,sandbox(LocalScript208,function()
2882
--[[
2883
Kit By TurboFusion
2884
Remake By MuYhEt & Xander521
2885
--]]
2886
--------------------------------------------------------------------------------------
2887
--------------------[ CHARACTER LOADING ]---------------------------------------------
2888
--------------------------------------------------------------------------------------
2889
2890
repeat wait() until game.Players.LocalPlayer.Character
2891
repeat wait() until game.Players.LocalPlayer.Character:IsDescendantOf(game.Workspace)
2892
wait(1 / 20)
2893
2894
--------------------------------------------------------------------------------------
2895
--------------------[ IGNORE MODEL ]--------------------------------------------------
2896
--------------------------------------------------------------------------------------
2897
2898
local ignoreCode = script:WaitForChild("ignoreCode")
2899
2900
repeat wait() until ignoreCode.Value ~= 0
2901
2902
local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
2903
2904
local grenadeFolder = ignoreModel:WaitForChild("grenadeFolder")
2905
2906
--------------------------------------------------------------------------------------
2907
--------------------[ CONSTANTS ]-----------------------------------------------------
2908
--------------------------------------------------------------------------------------
2909
2910
local Gun = script.Parent
2911
local serverMain = Gun:WaitForChild("serverMain")
2912
local Handle = Gun:WaitForChild("Handle")
2913
local AimPart = Gun:WaitForChild("AimPart")
2914
local Main = Gun:WaitForChild("Main")
2915
2916
local Ammo = Gun:WaitForChild("Ammo")
2917
local ClipSize = Gun:WaitForChild("ClipSize")
2918
local StoredAmmo = Gun:WaitForChild("StoredAmmo")
2919
2920
local createTweenIndicator = serverMain:WaitForChild("createTweenIndicator")
2921
local deleteTweenIndicator = serverMain:WaitForChild("deleteTweenIndicator")
2922
local getWeldCF = serverMain:WaitForChild("getWeldCF")
2923
local gunSetup = serverMain:WaitForChild("gunSetup")
2924
local lerpCF = serverMain:WaitForChild("lerpCF")
2925
local createBlood = serverMain:WaitForChild("createBlood")
2926
local createBulletImpact = serverMain:WaitForChild("createBulletImpact")
2927
local createShockwave = serverMain:WaitForChild("createShockwave")
2928
local createTrail = serverMain:WaitForChild("createTrail")
2929
2930
local Particle = {}
2931
function Particle.new(Prop)
2932
	----------[ CONSTANTS ]--------------------
2933
	
2934
	local Cam = workspace.CurrentCamera
2935
	local rayIgnore = Prop.rayIgnore or {} --If the property doesn't exist, then set it to it's default
2936
	local Color = Prop.Color or Color3.new(1, 1, 1)
2937
	local Length = Prop.Length or 1
2938
	local Width = Prop.Width or 1
2939
	local p0 = Prop.p0 or error("Particle.new requires a p0 (origin position) property!", 0) --Give an error message if you don't this
2940
	local v0 = Prop.v0 or error("Particle.new requires a v0 (initial velocity) property!", 0)
2941
	local a0 = Prop.a0 or error("Particle.new requires an a0 (initial acceleration) property!", 0)
2942
	
2943
	----------[ VARIABLES ]--------------------
2944
	
2945
	local Deleted = false
2946
	local p = p0 --Set the position, velocity, and acceleration as the intial conditions
2947
	local v = v0
2948
	local a = a0
2949
	local t = 0
2950
	
2951
	----------[ FUNCTIONS ]--------------------
2952
	
2953
	local function worldWidthToScreenWidth(Width, Depth) --A function I made that gives you a screen width given a world width and depth
2954
		local Center = Cam.CoordinateFrame * CFrame.new(0, 0, -Depth)
2955
		local wp1 = (Center * CFrame.new(0, Width / 2, 0)).p
2956
		local wp2 = (Center * CFrame.new(0, -Width / 2, 0)).p
2957
		local sp1 = Cam:WorldToScreenPoint(wp1) --Use the WorldToScreenPoint method of the camera to get the screen width from the world width
2958
		local sp2 = Cam:WorldToScreenPoint(wp2)
2959
		return (sp1 - sp2).magnitude
2960
	end
2961
	
2962
	----------[ MAIN PROGRAM ]-----------------
2963
	
2964
	local Container = Instance.new("Frame")
2965
	Container.BackgroundTransparency = 1
2966
	Container.Position = UDim2.new()
2967
	Container.Size = UDim2.new()
2968
	local Line = Instance.new("Frame")
2969
	Line.BackgroundColor3 = Color
2970
	Line.BorderSizePixel = 0
2971
	Line.Position = UDim2.new()
2972
	Line.Size = UDim2.new()
2973
	Line.Parent = Container
2974
	
2975
	return setmetatable(
2976
		{
2977
			delete = function() --This function safely removes the particle
2978
				Container:Destroy()
2979
				Deleted = true
2980
			end
2981
		},
2982
		{
2983
			__index = function(_, Index)
2984
				if Index == "p" or Index == "position" then --Return the world position of the particle
2985
					return (Deleted and nil or p)
2986
				elseif Index == "v" or Index == "velocity" then --Return the world velocity of the particle
2987
					return (Deleted and nil or v)
2988
				elseif Index == "obj" or Index == "object" then --Return the particle frame itself
2989
					return (Deleted and nil or Container)
2990
				else
2991
					error(Index.." is not a member of Particle!", 0) --Give an error message if any other index is called
2992
				end
2993
			end;
2994
			
2995
			__newindex = function(_, Index, Value)
2996
				if Index == "t" or Index == "time" and (not Deleted) then --Render the particle given a time value
2997
					t = Value
2998
					p = p0 + (v0 * t) + (0.5 * a0 * t * t) --update the position given the time
2999
					v = v0 + (a0 * t) --update the velocity given the time
3000
					
3001
					local testRay1 = Ray.new(Cam.CoordinateFrame.p, (p + (v.unit * Length) / 2) - Cam.CoordinateFrame.p)
3002
					local testRay2 = Ray.new(Cam.CoordinateFrame.p, (p - (v.unit * Length) / 2) - Cam.CoordinateFrame.p)
3003
					local H1, _ = workspace:FindPartOnRayWithIgnoreList(testRay1, rayIgnore)
3004
					local H2, _ = workspace:FindPartOnRayWithIgnoreList(testRay2, rayIgnore)
3005
					
3006
					if H1 and H2 then
3007
						Line.Visible = false
3008
					else
3009
						local face1 = Cam:WorldToScreenPoint(p + (v.unit * Length) / 2) --Get the 2 endpoints of the particle in screen space
3010
						local face2 = Cam:WorldToScreenPoint(p - (v.unit * Length) / 2)
3011
						local Center, isVisible = Cam:WorldToScreenPoint(p) --Get the center of the particle in screen space
3012
						
3013
						local screenLength = (face1 - face2).magnitude
3014
						local screenWidth = worldWidthToScreenWidth(Width, Center.Z)
3015
						local Ang = math.atan2(face1.Y - face2.Y, face1.X - face2.X) --Get the angle the particle needs to be at in order to line up
3016
						
3017
						Line.Position = UDim2.new(0, 0, 0, -screenWidth / 2)
3018
						Line.Size = UDim2.new(1, 0, 0, screenWidth)
3019
						Line.Visible = isVisible --Make the particle invisible if the world point isn't on screen
3020
						
3021
						Container.Position = UDim2.new(
3022
							0,
3023
							face2.X + (math.cos(Ang) - 1) * screenLength / 2, --Yay trig!
3024
							0,
3025
							face2.Y + math.sin(Ang) * screenLength / 2
3026
						)
3027
						Container.Size = UDim2.new(0, screenLength, 0, 0)
3028
						Container.Rotation = math.deg(Ang)
3029
					end
3030
				else
3031
					error(Index.." is not a member of Particle!", 0) --Give an error message if any other index is being changed
3032
				end
3033
			end
3034
		}
3035
	)
3036
end
3037
local Spring = {}
3038
function Spring.new(Initial)
3039
	local t0 = tick()
3040
	local p0 = Initial or 0
3041
	local v0 = Initial and Vector3.new() or 0
3042
	local t	= Initial or 0
3043
	local d	= 1
3044
	local s	= 1
3045
3046
	local function positionVelocity(Tick)
3047
		local x	= Tick - t0
3048
		local c0 = p0 - t
3049
		if s == 0 then
3050
			return p0, 0
3051
		elseif d < 1 then
3052
			local c	= math.sqrt(1 - d ^ 2)
3053
			local c1 = (v0 / s + d * c0) / c
3054
			local co = math.cos(c * s * x)
3055
			local si = math.sin(c * s * x)
3056
			local e	= math.exp(d * s * x)
3057
			local p = t + (c0 * co + c1 * si) / e
3058
			local v = s * ((c * c1 - d * c0) * co - (c * c0 + d * c1) * si) / e
3059
			return p, v
3060
		else
3061
			local c1 = v0 / s + c0
3062
			local e	= math.exp(s * x)
3063
			local p = t + (c0 + c1 * s * x) / e
3064
			local v = s * (c1 - c0 - c1 * s * x) / e
3065
			return p, v
3066
		end
3067
	end
3068
3069
	return setmetatable(
3070
		{
3071
			accelerate = function(_, acceleration)
3072
				local T = tick()
3073
				local p, v = positionVelocity(T)
3074
				p0 = p
3075
				v0 = v + acceleration
3076
				t0 = T
3077
			end;
3078
		},
3079
		{
3080
			__index = function(_, index)
3081
				if index == "value" or index == "position" or index == "p" then
3082
					local p, v = positionVelocity(tick())
3083
					return p
3084
				elseif index == "velocity" or index == "v" then
3085
					local p, v = positionVelocity(tick())
3086
					return v
3087
				elseif index == "acceleration" or index == "a" then
3088
					local x	= tick() - t0
3089
					local c0 = p0 - t
3090
					if s == 0 then
3091
						return 0
3092
					elseif d < 1 then
3093
						local c = math.sqrt(1 - d ^ 2)
3094
						local c1 = (v0 / s + d * c0) / c
3095
						local cs = (c0 * d ^ 2 - 2 * c * d * c1 - c0 * c ^ 2) * math.cos(c * s * x)
3096
						local sn = (c1 * d ^ 2 + 2 * c * d * c0 - c1 * c ^ 2) * math.sin(c * s * x)
3097
						return s ^ 2 *(cs + sn) / math.exp(d * s * x)
3098
					else
3099
						local c1 = v0 / s + c0
3100
						return s ^ 2 * (c0 - 2 * c1 + c1 * s * x) / math.exp(s * x)
3101
					end
3102
				elseif index == "target" or index == "t" then
3103
					return t
3104
				elseif index == "damper" or index == "d" then
3105
					return d
3106
				elseif index == "speed" or index == "s" then
3107
					return s
3108
				elseif index == "magnitude" or index == "m" then
3109
					local p, v = positionVelocity(tick())
3110
					return p.magnitude
3111
				else
3112
					error(index.." is not a valid member of spring", 0)
3113
				end
3114
			end;
3115
			
3116
			__newindex = function(_, index, value)
3117
				local T = tick()
3118
				if index == "value" or index == "position" or index == "p" then
3119
					local p, v = positionVelocity(T)
3120
					p0, v0 = value, v
3121
				elseif index == "velocity" or index == "v" then
3122
					local p, v = positionVelocity(T)
3123
					p0, v0 = p, value
3124
				elseif index == "acceleration" or index == "a" then
3125
					local p, v = positionVelocity(T)
3126
					p0, v0 = p, v + value
3127
				elseif index == "target" or index == "t" then
3128
					p0, v0 = positionVelocity(T)
3129
					t = value
3130
				elseif index == "damper" or index == "d" then
3131
					p0, v0 = positionVelocity(T)
3132
					d = value < 0 and 0 or value < 1 and value or 1
3133
				elseif index == "speed" or index == "s" then
3134
					p0, v0 = positionVelocity(T)
3135
					s = value < 0 and 0 or value
3136
				else
3137
					error(index.." is not a valid member of spring", 0)
3138
				end
3139
				t0 = T
3140
			end;
3141
		}
3142
	)
3143
end
3144
local Anims = {
3145
	
3146
	Reload = function(S) --This is the main reload animation. The parameter S contains all the variables and functions that are necessary for this animation
3147
		--[[
3148
			FUNCTION LIST_
3149
			
3150
				S.tweenJoint(Joint, newC0, newC1, Alpha, Duration) --This function tweens a joint to a given C0 and C1. The Alpha parameter is function
3151
					that returns a number between 0 and 1 given an argument of a number between 0 and 90. The Duration is how fast the joint tweens. NOTE,
3152
					you can put nil as an argument for the newC0 or newC1 parameter and the function won't tween that specific property of the weld. This
3153
					is useful if you only want to mess with the C0 or C1 property of a weld.
3154
					
3155
				S.makeMagInvisible() --This function makes the mag invisible so it looks like the mag was removed
3156
				
3157
				S.makeMagVisible() --This function makes the mag visible again at whatever the previous transparency of the mag parts were
3158
				
3159
				S.isMagVisible() --This function returns a true or false value based on whether or not the mag is visible. This can be used to tell if
3160
					the animation was stopped midway and where to restart the animation
3161
					
3162
				S.isMagEmpty() --This function returns a true or false value based on whether or not the mag is empty, meaning the ammo is 0. This can be
3163
					used to decide if a chambering animation should play after the reload animation
3164
					
3165
				S.setNewMag() --This function sets the newMag variable in the clientMain to true which basically lets the script know that a new mag was
3166
					put into the gun. This is used so that if the reload animation is broken after the new mag was put in but before the chambering animation
3167
					then the script will simply play the chambering animation instead of putting in another mag
3168
					
3169
				S.isNewMag() --This function returns a true or false value based on whether or not the mag that is currently attached to the gun is a new
3170
					mag. In order for it to be a new mag, it needs to have full ammo. Once you fire, the mag becomes an old mag
3171
					
3172
				S.createMag(Key) --This functions clones the Mag and puts it in a table with a Key parameter so you can access the mag in a separate
3173
					function and it returns a Model containing the Mag and a table that contains the original mag bricks and the corresponding clone. NOTE,
3174
					the mag bricks will be made non can collide
3175
					
3176
				S.getMag(Key) --This function gets a Mag from the mag table given a Key argument and it returns the model that the mag is contained in
3177
					and the brick that all the other mag parts are welded to
3178
				
3179
				S.attachGripToHead() --This function detaches the grip from the right arm and attaches it to the Head. This is so you can make reload
3180
					animations that require using the right arm to manipulate the gun in any way. The C0 of the grip is changed so the gun stays in the
3181
					position that it was in before you detached the grip from the right arm.
3182
					
3183
				S.attachGripToArm() --This function detaches the grip from the Head and attaches it to the Arm. The C0 of the grip is changed so the gun
3184
					stays in the position that it was in before you detached the grip from the head
3185
				
3186
				S.Sine(X) --This function is an Alpha function for the tweenJoint function. Given a number between 0 and 90, the function will return the
3187
					sine of that number, which is a number between 0 and 1, which is used to tween a Joint with a Sine movement
3188
					
3189
				S.Linear(X) --This function is an Alpha function for the tweenJoint function. Given a number between 0 and 90, the function will return
3190
					the number / 90, which is a number between 0 and 1, which is used to a tween a Joint with a Linear movement
3191
				
3192
			VARIABLE LIST_
3193
			
3194
				S.Handle --This variable is the Handle of gun
3195
				
3196
				S.LArm --This variable is the left arm
3197
				
3198
				S.RArm --This variable is the right arm
3199
				
3200
				S.LWeld --This variable is the left arm weld which is attached to the animBase
3201
				
3202
				S.RWeld --This variable is the right arm weld which is attached to the animBase
3203
				
3204
				S.LC0 --This variable is the cframe of the left arm joint with respect to the torso
3205
				
3206
				S.RC0 --This variable is the cframe of the right arm joint with respect to the torso
3207
				
3208
				S.Grip --This variable is the Grip weld which is attached to right arm
3209
				
3210
				S.gunIgnore --This variable is the gun ignore model which contains the fake arms and bullets and other stuff
3211
				
3212
				S.Cam --This variable is the player camera
3213
				
3214
				S.CF --This variable is the shortened form of CFrame.new which you can use instead of CFrame.new
3215
				
3216
				S.CFANG --This variable is the shortened form of CFrame.Angles which you can use instead of CFrame.Angles
3217
				
3218
				S.V3 --This variable is the shortened form of Vector3.new which you can use instead of Vector3.new
3219
				
3220
				S.RAD --This variable is the shortened form of math.rad which you can use instead of math.rad
3221
				
3222
				S.reloadTimeLoaded --This variable is the reload time for when the gun is loaded which you can use to modify how fast the reload
3223
					animation runs
3224
					
3225
				S.reloadTimeEmpty --This variable is the reload time for when the gun is empty which you can use to modify how fast the reload
3226
					animation runs
3227
		--]]
3228
		
3229
		local W1 = nil
3230
		local W2 = nil
3231
		local animSpeed = S.isMagEmpty() and S.reloadTimeEmpty / 1.3 or S.reloadTimeLoaded / 0.9
3232
		return {
3233
			function()
3234
				if (not S.isNewMag()) then
3235
					if S.isMagVisible() then
3236
						local Mag1, magTable1 = S.createMag("Mag1")
3237
							
3238
						Mag1.Parent = S.gunIgnore
3239
						
3240
						W1 = Instance.new("Weld")
3241
						W1.Part0 = magTable1[1].magClone
3242
						W1.Part1 = S.Handle
3243
						W1.C0 = magTable1[1].Original.CFrame:toObjectSpace(S.Handle.CFrame)
3244
						W1.Parent = magTable1[1].magClone
3245
						
3246
						S.tweenJoint(S.LWeld, nil, S.CF(-0.9, 2, -1.1) * S.CFANG(S.RAD(-15), 0, S.RAD(-25)), S.Sine, 0.2 * animSpeed)
3247
						S.tweenJoint(S.RWeld, nil, S.CF(0.3, 0.2, -0.31) * S.CFANG(S.RAD(-12), 0, S.RAD(25)), S.Sine, 0.2 * animSpeed)
3248
						S.tweenJoint(S.Grip, nil, S.CFANG(0, S.RAD(20), S.RAD(10)), S.Sine, 0.1 * animSpeed)
3249
						wait(0.2 * animSpeed)
3250
					end
3251
				end
3252
			end;
3253
			
3254
			function()
3255
				if (not S.isNewMag()) then
3256
					if S.isMagVisible() then
3257
						S.makeMagInvisible()
3258
						W1:Destroy()
3259
						local Mag1, magTable1 = S.getMag("Mag1")
3260
						magTable1[1].magClone.Velocity = S.Handle.Velocity + S.Handle.CFrame:vectorToWorldSpace(S.V3(0, -1, 0)) * 20
3261
						
3262
						S.tweenJoint(S.RWeld, nil, S.CF(0.3, 0.2, -0.5) * S.CFANG(S.RAD(-20), S.RAD(10), S.RAD(25)), S.Sine, 0.25 * animSpeed)
3263
						S.tweenJoint(S.Grip, nil, S.CFANG(0, S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
3264
					else
3265
						S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-12), S.RAD(20), S.RAD(25)), S.Sine, 0.2 * animSpeed)
3266
						S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
3267
					end
3268
					
3269
					S.tweenJoint(S.LWeld, nil, S.CF(0, 0.5, 0) * S.CFANG(S.RAD(95), 0, S.RAD(-25)), S.Sine, 0.2 * animSpeed)
3270
					
3271
					wait(0.25 * animSpeed)
3272
				end
3273
			end;
3274
			
3275
			function()
3276
				if (not S.isNewMag()) then
3277
					local Mag1, magTable1 = S.getMag("Mag1")
3278
					if Mag1 then Mag1:Destroy() end
3279
					
3280
					local Mag2, magTable2 = S.createMag("Mag2")
3281
					
3282
					Mag2.Parent = S.gunIgnore
3283
					
3284
					local LArmCF = S.LWeld.Part0.CFrame * S.LWeld.C0 * (S.CF(0.58, 1.63, -1.4) * S.CFANG(S.RAD(-22), S.RAD(20), S.RAD(-60))):inverse()
3285
					local RArmCF = S.RWeld.Part0.CFrame * S.RWeld.C0 * (S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-15), S.RAD(20), S.RAD(25))):inverse()
3286
					local handleOffsetCF = S.RArm.CFrame:toObjectSpace(S.RArm.CFrame * S.Grip.C0 * (S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10))):inverse())
3287
					local originalMagOffsetCF = S.Handle.CFrame:toObjectSpace(magTable2[1].Original.CFrame)
3288
					local newMagC0 = LArmCF:toObjectSpace(RArmCF * handleOffsetCF * originalMagOffsetCF)
3289
					
3290
					W2 = Instance.new("Weld")
3291
					W2.Part0 = S.LArm
3292
					W2.Part1 = magTable2[1].magClone
3293
					W2.C0 = newMagC0
3294
					W2.Parent = magTable2[1].magClone
3295
					
3296
					S.tweenJoint(S.LWeld, nil, S.CF(0.55, 1, -2.4) * S.CFANG(S.RAD(-20), S.RAD(20), S.RAD(-60)), S.Sine, 0.2 * animSpeed)--0.25
3297
					S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-12), S.RAD(20), S.RAD(25)), S.Sine, 0.2 * animSpeed)
3298
					S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
3299
					wait(0.2 * animSpeed)
3300
				end
3301
			end;
3302
			
3303
			function()
3304
				if (not S.isNewMag()) then
3305
					S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.15 * animSpeed)
3306
					S.tweenJoint(S.LWeld, nil, S.CF(0.58, 1.63, -1.4) * S.CFANG(S.RAD(-22), S.RAD(20), S.RAD(-60)), S.Sine, 0.15 * animSpeed)--0.25
3307
					S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-15), S.RAD(20), S.RAD(25)), S.Sine, 0.2 * animSpeed)
3308
					
3309
					wait(0.2 * animSpeed)
3310
				end
3311
			end;
3312
			
3313
			function()
3314
				if (not S.isNewMag()) then
3315
					local Mag1, _ = S.getMag("Mag1")
3316
					local Mag2, _ = S.getMag("Mag2")
3317
					S.makeMagVisible()
3318
					S.setNewMag()
3319
					if Mag1 then Mag1:Destroy() end
3320
					Mag2:Destroy()
3321
				end
3322
			end;
3323
			
3324
			function()
3325
				if S.isMagEmpty() then
3326
					if S.isNewMag() then
3327
						S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.15 * animSpeed)
3328
						S.tweenJoint(S.LWeld, nil, S.CF(0.58, 1.63, -1.4) * S.CFANG(S.RAD(-22), S.RAD(20), S.RAD(-60)), S.Sine, 0.15 * animSpeed)--0.25
3329
						S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-15), S.RAD(20), S.RAD(25)), S.Sine, 0.2 * animSpeed)
3330
					end
3331
					S.tweenJoint(S.LWeld, nil, S.CF(0, 1.3, -0.55) * S.CFANG(S.RAD(-26), 0, 0), S.Sine, 0.2 * animSpeed)
3332
					
3333
					wait(0.2 * animSpeed)
3334
				end
3335
			end;
3336
			
3337
			function()
3338
				if S.isMagEmpty() then
3339
					S.tweenJoint(S.LWeld, nil, S.CF(0.4, 1.6, -0.55) * S.CFANG(S.RAD(-23), 0, S.RAD(-60)), S.Sine, 0.1 * animSpeed)
3340
					
3341
					wait(0.05 * animSpeed)
3342
				end
3343
			end;
3344
			
3345
			function()
3346
				if S.isMagEmpty() then
3347
					S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-15), S.RAD(20), S.RAD(20)), S.Sine, 0.05 * animSpeed)
3348
					
3349
					wait(0.15 * animSpeed)
3350
				end
3351
			end;
3352
		}
3353
	end;
3354
	
3355
	Cocking = function(S)
3356
		
3357
	end;
3358
	
3359
	Crawling = function(X, moveDirection, moveSpeed) --This is the animation for when you're crawling
3360
		--[[
3361
			The moveDirection gives you the angle at which your character is moving with respect to the way you're facing. So if you're
3362
			moving to the right and you're facing forward then the moveDirection will give you an angle of -90. If you're moving backward
3363
			and you're facing forward then the moveDirection will give you an angle of 180. I use this angle to adjust the crawling animation
3364
			so that you're arms move in the direction that you're moving so it looks more realistic rather than the arms constantly moving forward
3365
			
3366
			The moveVelocity gives you how fast you're moving in the X-Z plane. It doesn't take your Y-velocity into account so if you're falling your
3367
			moveVelocity will still be how fast you're moving horizontally. You can use this to adjust how fast the crawling animation runs so if you're
3368
			moving really slow the animation will play slower
3369
		--]]
3370
		return {
3371
			leftArm = CFrame.Angles( --This is what the cframe of the right arm will be when you're crawling
3372
				0,
3373
				math.rad(90),
3374
				math.rad(-10)
3375
			) * CFrame.new(
3376
				math.sin(moveDirection) * (math.sin(X * 6) / 4) - 0.2,
3377
				math.cos(moveDirection) * (math.sin(X * 6) / 2) - 0.1,
3378
				math.max(math.cos(X * 6) / 4, 0) - 0.1
3379
			) * CFrame.Angles(
3380
				-math.max(math.cos(X * 6) / 4, 0),
3381
				0,
3382
				0
3383
			);
3384
			leftLeg = CFrame.new( --This is what the cframe of the left leg will be when you're crawling
3385
				math.sin(moveDirection) * (-math.sin(X * 6) / 4) - 0.2,
3386
				math.cos(moveDirection) * (math.sin(X * 6) / 2) + 0.3,
3387
				math.max(math.cos(X * 6) / 4, 0) - 0.1
3388
			):inverse() * CFrame.Angles(
3389
				0,
3390
				0,
3391
				-math.rad(15) - math.cos(moveDirection) * (math.rad(15) * math.sin(X * 6))
3392
			);
3393
			rightArm = CFrame.Angles( --This is what the cframe of the left arm will be when you're crawling
3394
				0,
3395
				math.rad(-5),
3396
				math.rad(10)
3397
			) * CFrame.new(
3398
				math.sin(moveDirection) * (-math.sin(X * 6) / 4) + 0.2,
3399
				math.cos(moveDirection) * (-math.sin(X * 6) / 5) - 0.2,
3400
				math.max(math.cos((X + math.rad(30)) * 6) / 10, 0) - 0.1
3401
			) * CFrame.Angles(
3402
				-math.max(math.cos((X + math.rad(30)) * 6) / 10, 0),
3403
				0,
3404
				0
3405
			);
3406
			rightLeg = CFrame.new( --This is what the cframe of the right leg will be when you're crawling
3407
				math.sin(moveDirection) * (math.sin(X * 6) / 4) + 0.2,
3408
				math.cos(moveDirection) * (-math.sin(X * 6) / 2) + 0.3,
3409
				math.max(math.cos((X + math.rad(30)) * 6) / 4, 0) - 0.1
3410
			):inverse() * CFrame.Angles(
3411
				0,
3412
				0,
3413
				math.rad(15) - math.cos(moveDirection) * (math.rad(15) * math.sin(X * 6))
3414
			);
3415
			Grip = CFrame.Angles( --This is what the cframe of the grip will be when you're crawling
3416
				math.max(math.cos((X + math.rad(30)) * 6) / 7, 0),
3417
				math.rad(5),
3418
				0
3419
			);
3420
			Camera = 1.5 * math.rad(math.cos((X + math.rad(30)) * 6)) + math.rad(0.5); --This is what the roll of the camera will be when you're crawling
3421
		}
3422
	end;
3423
		
3424
	Idling = { --This table holds the Idling animations
3425
		
3426
		unAimed = function(X) --This is the animation when the gun is not aimed
3427
			return {
3428
				Pos = Vector3.new(
3429
					math.sin(X / 2) / 70, --Side to Side motion
3430
					math.sin(X * 5 / 4) / 70, --Up and Down motion
3431
					math.sin(X * 3 / 4) / 70 --Forward and backward motion
3432
				);
3433
				Rot = Vector3.new(
3434
					0, --Pitch rotation
3435
					0, --Yaw rotation
3436
					0 --Roll rotation
3437
				);
3438
			}
3439
		end;
3440
		
3441
		Aimed = function(X) --This is the animation when the gun is aimed
3442
			return {
3443
				Pos = Vector3.new(
3444
					math.sin(X * 3 / 8) / 140,
3445
					math.sin(X * 15 / 16) / 140,
3446
					0
3447
				);
3448
				Rot = Vector3.new(
3449
					0,
3450
					0,
3451
					0
3452
				);
3453
			}
3454
		end;
3455
		
3456
	};
3457
	
3458
	Walking = { --This table holds the Walking animations
3459
		
3460
		unAimed = function(X) --This is the animation when the gun is not aimed
3461
			return {
3462
				Pos = Vector3.new(
3463
					4 * math.sin(X * 4.5) / 50,
3464
					1.5 * math.sin(X * 9) / 50,
3465
					0
3466
				);
3467
				Rot = Vector3.new(
3468
					0,
3469
					0,
3470
					math.rad(math.sin(X * 4.5)) * 2
3471
				);
3472
			}
3473
		end;
3474
		
3475
		Aimed = function(X) --This is the animation when the gun is aimed
3476
			return {
3477
				Pos = Vector3.new(
3478
					2 * math.sin(X * 3) / 150,
3479
					0.75 * math.sin(X * 6) / 150,
3480
					0
3481
				);
3482
				Rot = Vector3.new(
3483
					0,
3484
					0,
3485
					math.rad(math.sin(X * 3)) / 3
3486
				);
3487
			}
3488
		end;
3489
		
3490
	};
3491
	
3492
	Running = function(X) --This is the animation when the player is running
3493
		return {
3494
			Pos = Vector3.new(
3495
				4 * math.sin(X * 4.5 * 1.5) / 30,
3496
				1.5 * math.sin(X * 9 * 1.5) / 40 + 0.2,
3497
				0
3498
			);
3499
			Rot = Vector3.new(
3500
				0,
3501
				-math.rad(math.sin(X * 4.5 * 1.5)) * 5 + math.rad(3),
3502
				math.rad(math.sin(X * 4.5 * 1.5)) * 5
3503
			);
3504
		}
3505
	end;
3506
	
3507
}
3508
local Plugins = {
3509
	
3510
	KeyDown = {
3511
		{ --This is a plugin for a toggleable laser
3512
			Key = "v"; --This is the key you press to activate the plugin
3513
			Description = "Toggle Laser"; --This is what the description of the key will be in the controls
3514
			Plugin = function() --This is the actual plugin function
3515
				local Laser = Gun:WaitForChild("Laser") --These few lines wait for the necessary bricks/models
3516
				local Handle = Gun:WaitForChild("Handle")
3517
				local ignoreCode = Gun.clientMain:WaitForChild("ignoreCode")
3518
				local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
3519
				
3520
				local PlyrName = game.Players:GetPlayerFromCharacter(Gun.Parent).Name
3521
				local playerFolder = ignoreModel:WaitForChild("gunIgnore_"..PlyrName)
3522
				
3523
				local RS = game:GetService("RunService")
3524
				
3525
				local function createLaserDot() --This function creates the red laser dot
3526
					local laserDot = Instance.new("Part")
3527
					laserDot.Transparency = 1
3528
					laserDot.Name = "laserDot"
3529
					laserDot.Anchored = true
3530
					laserDot.CanCollide = false
3531
					laserDot.FormFactor = Enum.FormFactor.Custom
3532
					laserDot.Size = Vector3.new(0.25, 0.25, 1)
3533
					
3534
					local laserGui = Instance.new("SurfaceGui")
3535
					laserGui.CanvasSize = Vector2.new(100, 100)
3536
					laserGui.Parent = laserDot
3537
					
3538
					local laserImage = Instance.new("ImageLabel")
3539
					laserImage.BackgroundTransparency = 1
3540
					laserImage.Size = UDim2.new(1, 0, 1, 0)
3541
					laserImage.Image = "http://www.roblox.com/asset/?id=131394739"
3542
					laserImage.Parent = laserGui
3543
					
3544
					--[[local laserLight = Instance.new("SurfaceLight")
3545
					laserLight.Angle = 180
3546
					laserLight.Brightness = math.huge
3547
					laserLight.Color = Color3.new(1, 0, 0)
3548
					laserLight.Face = Enum.NormalId.Back
3549
					laserLight.Range = 5
3550
					laserLight.Shadows = true
3551
					laserLight.Parent = laserDot]]
3552
					
3553
					return laserDot
3554
				end
3555
				
3556
				local function getHitSurfaceCFrame(Pos, Obj) --This function returns the proper cframe based on the face that the position is on
3557
					local surfaceCF = {
3558
						{"Back", Obj.CFrame * CFrame.new(0, 0, Obj.Size.z)};
3559
						{"Bottom", Obj.CFrame * CFrame.new(0, -Obj.Size.y, 0)};
3560
						{"Front", Obj.CFrame * CFrame.new(0, 0, -Obj.Size.z)};
3561
						{"Left", Obj.CFrame * CFrame.new(-Obj.Size.x, 0, 0)};
3562
						{"Right", Obj.CFrame * CFrame.new(Obj.Size.x, 0, 0)};
3563
						{"Top", Obj.CFrame * CFrame.new(0, Obj.Size.y, 0)}
3564
					}
3565
					local closestDist = math.huge
3566
					local closestSurface = nil
3567
					for _,v in pairs(surfaceCF) do
3568
						local surfaceDist = (Pos - v[2].p).magnitude
3569
						if surfaceDist < closestDist then
3570
							closestDist = surfaceDist
3571
							closestSurface = v
3572
						end
3573
					end
3574
					
3575
					local surfaceDir = CFrame.new(Obj.CFrame.p, closestSurface[2].p)
3576
					local surfaceDist = surfaceDir.lookVector * ((Obj.CFrame.p - closestSurface[2].p).magnitude / 2 - 0.25)
3577
					local surfaceOffset = Pos - closestSurface[2].p + surfaceDist
3578
					local surfaceCFrame = surfaceDir + surfaceDist + surfaceOffset
3579
					
3580
					return surfaceCFrame
3581
				end
3582
				
3583
				local laserDot = createLaserDot() --The code is cleaner when the laser creating code is in a function
3584
				
3585
				Laser.Transparency = (Laser.Transparency == 1 and 0 or 1) --Toggles the laser on or off
3586
				
3587
				while math.floor(Laser.Transparency) == 0 do --This loop will keep running as long as the laser is visible
3588
					if (not game.Players:GetPlayerFromCharacter(Gun.Parent)) then break end --This checks if the gun is a child of the character
3589
					
3590
					local newRay = Ray.new(Laser.Position, Handle.CFrame.lookVector * 999)
3591
					local H, P = game.Workspace:FindPartOnRay(newRay, ignoreModel)
3592
					
3593
					local Distance = (P - Laser.Position).magnitude
3594
					Laser.Mesh.Offset = Vector3.new(0, Distance / 2, 0)
3595
					Laser.Mesh.Scale = Vector3.new(0.075, Distance / 0.2, 0.075)
3596
					
3597
					if H then
3598
						laserDot.CFrame = getHitSurfaceCFrame(P, H) --If the laser hits a part then position the dot on the part
3599
						laserDot.Parent = playerFolder
3600
					else
3601
						laserDot.Parent = nil --If the laser doesn't hit a part then temporarily remove the laser dor
3602
					end
3603
					
3604
					RS.RenderStepped:wait()
3605
				end
3606
				
3607
				laserDot:Destroy() --These lines reset the laser if the laser is transparent or the gun was deselected
3608
				Laser.Transparency = 1
3609
				Laser.Mesh.Offset = Vector3.new()
3610
				Laser.Mesh.Scale = Vector3.new(0.075, 0, 0.075)
3611
			end;
3612
		};
3613
		
3614
		{ --This is a plugin for a toggleable flashlight
3615
			Key = "z";
3616
			Description = "Toggle Flashlight";
3617
			Plugin = function()
3618
				local Flashlight = Gun:WaitForChild("Flashlight")
3619
				if Flashlight then
3620
					for _, Light in pairs(Flashlight:GetChildren()) do
3621
						if Light.Name == "Light" then
3622
							Light.Enabled = (not Light.Enabled)
3623
						end
3624
					end
3625
				end
3626
			end
3627
		};
3628
	};
3629
	
3630
	KeyUp = {
3631
		
3632
	};
3633
	
3634
	Firing = {
3635
		Plugin = function()
3636
			--Put code here
3637
		end;
3638
	};
3639
	
3640
	Aimed = {
3641
		Plugin = function()
3642
			--Put code here
3643
		end;
3644
	};
3645
	
3646
	UnAimed = {
3647
		Plugin = function()
3648
			--Put code here
3649
		end;
3650
	};
3651
	
3652
	OnEquipped = {
3653
		Plugin = function()
3654
			--Put code here
3655
		end
3656
	};
3657
	
3658
	OnUnEquipped = {
3659
		Plugin = function()
3660
			--Put code here
3661
		end
3662
	};
3663
	
3664
}
3665
local S = { 
3666
	
3667
	
3668
	gunType = { --[[These are the 5 gun types you can have. Set whichever ones you want to true. (NOTE: Semi and Auto can't both be
3669
		true, and Burst and Auto can't both be true)]]
3670
		Semi = true; --Set this true if you want the gun to be semi-automatic. (Pistols, Snipers, etc)
3671
		Auto = false; --Set this true if you want the gun to be fully automatic. (Assault Rifles, Submachine guns, machine guns, etc)
3672
		Burst = false; --Set this true if you want the gun to be burst fire. (Battle rifles, assault rifles, etc)
3673
		Shot = true; --Set this true if you want the gun to be a shotgun. (NOTE: Shot and auto can both be true)
3674
		Explosive = true; --Set this true if you want the projectiles to be explosive. (Rocket launchers, grenade launchers, etc)
3675
	};
3676
	
3677
	selectFire = true; --This is whether or not select fire is enabled
3678
	selectFireSettings = {
3679
		Animation = true; --This is whether or not there will be an animation for when you switch fire modes
3680
		GUI = true; --This is whether or not a gui appears showing the fire being selected
3681
		Modes = { --This the list of modes you can switch between
3682
			Safety = true; --This mode doesn't allow any form of firing
3683
			Semi = true; --This mode allows semi-automatic firing
3684
			Burst = false; --This mode allows burst fire. The burst will be based on the burstSettings below
3685
			Auto = false; --This mode allows fully automatic fire
3686
		};
3687
		animSpeed = 0.5; --This is how long it takes to switch fire if GUI or Animation is true. If neither are true, then switching will be instant
3688
	};
3689
	
3690
	
3691
	burstSettings = {
3692
		fireRateBurst = true; --[[If this is true, then the burst time and wait will be adjusted so the bullet firing speed is the fire rate. If this
3693
			is false, then the burst time and burst wait will be the values below]]
3694
		Amount = 3; --This is how many bullets will be fired in one burst (if Burst is true)
3695
		Time = 0.2; --This is how long it takes for a burst to complete
3696
		Wait = 0.1; --This is how much time you have to wait before you can fire another burst
3697
	};
3698
	
3699
	
3700
	shotAmount = 8; --This is how many bullets will be fired in one shot (if Shot is true)
3701
	
3702
	
3703
	explosionSettings = {
3704
		Radius = 50; --This is the radius of the explosion when the bullet hits a target. (If Explosive is true)
3705
		Pressure = 5e5; --This is the pressure of the explosion when the bullet hits the target
3706
		Type = Enum.ExplosionType.NoCraters; --This is the type of explosion
3707
		--[[
3708
		(0 or "NoCraters" or Enum.ExplosionType.NoCraters) means that the explosion will not damage terrain
3709
		(1 or "Craters" or Enum.ExplosionType.Craters) means that the explosion will leave craters in terrain
3710
		(2 or "CratersAndDebris" or Enum.ExplosionType.CratersAndDebris) means that the explosion will leave craters and debris in terrain
3711
		--]]
3712-
		soundId = "rbxassetid://138499093"; --This is what the sound of the explosion will be
3712+
		soundId = "rbxassetid://0"; --This is what the sound of the explosion will be
3713
		soundPitch = 1; --This is what the pitch of the explosion sound will be
3714
		soundVolume = 1; --This is what the volume of the explosion sound will be
3715
		rayCastExplosions = true; --[[This is whether or not explosions will have raycasting. If this is true, humanoids behind walls
3716
		won't be damaged. If this is false, any humanoid within the radius will be damaged. (NOTE: RangeBasedDamage has to be true in
3717
		order for explosions to have raycasting)]]
3718
		rangeBasedDamage = true; --[[This is whether or not will depend on how far the object is from the center of the explosion. If this
3719
		is true, the farther a humanoid is from the blast center, the less damage it'll take. If this is false, any object within
3720
		the explosion's radius will have its joints broken]]
3721
	};
3722
	
3723
	
3724
	playerArms = true; --This is whether or not the fake arms will look like the Player's arms
3725
	fakeArmSettings = {
3726
		Transparency = 0; --This is the transparency of the fake arms
3727
		armSize = Vector3.new(0.6, 2, 0.6); --This is the size of the fake player arms if playerArms is true
3728
		characterMeshes = false; --This is whether or not the fake player arms will have the arm meshes if playerArms is true
3729
		realBodyColor = true; --This is whether or not the color of the fake arm will be the color of the player's real arms
3730
		Color = BrickColor.new("Pastel brown"); --This is what the color of the fake arms will be if realBodyColor is false
3731
	};
3732
	
3733
	
3734
	unAimedC1 = { --This table contains the CFrames of welds when the gun is not aimed
3735
		leftArm = CFrame.new(-0.7, 1.6, -0.8) * CFrame.Angles(math.rad(-10), 0, math.rad(-30));
3736
		rightArm = CFrame.new(0.4, 0.25, -0.3) * CFrame.Angles(0, 0, math.rad(25));
3737
		Grip = CFrame.Angles(0, math.rad(25), 0);
3738
	};
3739
	aimedC1 = { --This table contains the CFrames of welds when the gun is aimed
3740
		leftArm = CFrame.new(-0.1, 1, -0.3) * CFrame.Angles(math.rad(-10), 0, 0) * CFrame.Angles(0, 0, math.rad(-40));
3741
		rightArm = CFrame.new(0.5, 0.3, 0.1) * CFrame.Angles(0, 0, math.rad(45));
3742
	};
3743
	runningC1 = { --This table contains the CFrames of welds when you're running
3744
		leftArm = CFrame.new(-0.65, 0.85, -1) * CFrame.Angles(math.rad(1), math.rad(-8.5), math.rad(16));
3745
		rightArm = CFrame.new(0.16, 1, -0.14) * CFrame.Angles(math.rad(15), math.rad(2), math.rad(50));
3746
		Grip = CFrame.Angles(0, math.rad(-5), 0);
3747
	};
3748
	
3749
	
3750
	equipAnimation = true; --This is whether or not an equipping animation will play when you equip the gun
3751
	equipSettings = {
3752
		Time = 0.25; --This is how long it takes for the equip animation to play
3753
		leftArmC1 = CFrame.new(0.2, 1.2, 0) * CFrame.Angles(math.rad(105), math.rad(-30), math.rad(90)); --This is the left arm C1 when you equip the gun
3754
		rightArmC1 = CFrame.new(-0.5, 0.75, 0) * CFrame.Angles(math.rad(45), 0, math.rad(75)); --This is the right arm C1 when you equip the gun
3755
		GripC1 = CFrame.new(); --This is the C1 of the grip when you equip the gun
3756
	};
3757
	
3758
	
3759
	stopAnimsOnFall = true; --This is whether or not the movement animation will stop when you're falling
3760
	fallAnimation = true; --This is whether or not there will be animation for falling and landing
3761
	fallSettings = {
3762
		maxDist = 35; --This is the cut off fall distance for the landing animation. If you fall any farther it'll be treated as if you fell this distance
3763
		landMultiplier = 1; --This is how far the arms go down and rotate when you land. The larger the number the bigger the effect of the animation
3764
		fallMultiplier = 1; --This is how far the arms go up and rotate when you fall. The larger the number the bigger the effect of the animation
3765
		aimEffect = 0.25; --[[This is how many times of an effect the falling and landing animation has when you're aimed. The smaller the number the lesser
3766
		the effect]]
3767
	};
3768
	
3769
	
3770
	gunMomentum = true; --This is whether or not there will be a gun swaying animation for when you move your mouse around
3771
	momentumSettings = {
3772
		maxInput = 18; --This is the maximum mouse delta that will be used as input for the sway
3773
		Speed = 20; --This is the speed of the gun momentum
3774
		Damper = 0.5; --[[This is the dampening effect of the gun momentum. NOTE: This number must be between 0 and 1, 0 being forever swaying and 1 being
3775
		instant dampening]]
3776
		Amplitude = { --These are the amplitudes of the gun momentum
3777
			unAimed = 5;
3778
			Aimed = 1;
3779
		}
3780
	};
3781
	
3782
	
3783
	cockingAnim = false; --This is whether or not a cocking animation will play between every shot (for shotguns and bolt action guns)
3784
	movementAnims = true; --This is whether or not the player will have movement animations
3785
	
3786
	
3787
	canADS = true; --This is whether or not the gun can ADS
3788
	aimSettings = {
3789
		Anim = true; --This is whether or not there is an animation for aiming down the sights
3790
		Speed = 0.3; --This is how long the gun will take to fully aim down the sights
3791
		FOV = 37; --This is the FOV that the Camera will have when the gun is fully aimed down
3792
		holdToADS = true; --This is whether or not you have to hold the right mouse or the ADS key to ADS
3793
		headTilt = math.rad(25); --This is what angle the head tilts at when you ADS
3794
	};
3795
	
3796
	
3797
	sensitivitySettings = {
3798
		Default = 1; --This is what the sensitivity of the mouse will be when the gun is not aimed. 1 is the default
3799
		Aim = 0.3; --[[This is what the sensitivity of the mouse will be when the gun is aimed. The smaller the MaxZoom,
3800
		the smaller the sensitivity should be (i.e. Scoped guns should have a sensitivity of around 0.2 or less]]
3801
		
3802
		scrollToChange = true; --This is whether or not scrolling the mouse changes the aim sensitivity
3803
		Min = 0.05; --This is the lowest the sensitivity can be
3804
		Max = 1; --This is the highest the sensitivity can be
3805
		Increment = 0.05; --This is what the increment for the sensitivity is when you scroll
3806
	};
3807
	
3808
	
3809
	guiScope = false; --This is whether or not your Scope will be a gui instead of a normal sight
3810
	scopeSettings = {
3811
		Frequency = { --This is the how fast the camera sway is. The larger the number the faster the camera moves
3812
			Idling = 0.7; --This is the frequency when you're idling
3813
			Walking = 2; --This is the frequency when you're walking
3814
		};
3815
		Amplitude = { --This is the how wide the camera sway is. The larger the number the wider the sway
3816
			Idling = 0.75; --This is the amplitude when you're idling
3817
			Walking = 0.75; --This is the amplitude when you're walking
3818
		};
3819
		steadyTime = 8; --This is how long you can hold your breath to steady the scope
3820
		breathTime = 5; --This is how long it takes to fully retake your breath
3821
		camSwayOnBreath = 2.5; --This is what the cam sway multiplier will be when you start your retake your breath
3822
		unSteadyOnFire = true; --This is whether or not the camera will become unsteady when you fire the gun
3823
	};
3824
	
3825
	
3826
	roundsPerMin = 100; --This is how many bullets per minute the gun will fire
3827
	
3828
	
3829
	bulletSettings = {
3830
		instantHit = true; --[[This is whether or not the bullet will hit a target instantly. If it is false, the bullet will travel at a
3831
			specific speed till it hits a target]]
3832
		Range = 870; --This is how far the bullet will travel in studs before it is no longer effective
3833
		Velocity = 540; --This is how fast the bullet will travel in studs per second
3834
		Acceleration = 196.2; --This is the bullet's acceleration downward (196.2 is normal roblox gravity)
3835
		Color = BrickColor.new("Bright red"); --This is the color of the bullet
3836
		Transparency = 0; --This is the transparency of the bullet
3837
		Size = Vector3.new(0.1, 0.1, 5); --This is how big the bullet will look
3838
	};
3839
	
3840
	
3841
	damageSettings = {
3842
		--[[The start and end damages are basically a representation of this: http://goo.gl/SiWaTj, which is a basically a graph showing the starting damage
3843
		value for the gun at a distance percent from 0 to 100 and the ending damage value for the gun at a distance percent from 0 to 100. Before the bullet
3844
		hits the starting distance percent, the damage is the starting damage. Once it goes past the starting distance percent, it steadily drops til it hits
3845
		the ending damage. After the ending damage percent, it'll stay that damage.]]
3846
		Start = {
3847
			Damage = 170; --The starting damage
3848
			Dist = 0.08; --[[A value between 0 and 1 which represents the distance percent. So if the bullet range is 1000 studs and this value is 0.5, then
3849
			the damage will be the starting damage until the bullet travels 0.5*1000 studs or 500 studs]]
3850
		};
3851
		End = {
3852
			Damage = 205; --The ending damage
3853
			Dist = 0.5; --A value between 0 and 1 which represents the distance percent for the ending damage
3854
		};
3855
		Multipliers = { --[[These are the damage multipliers. There's a spread of +0.1. That means that if the multiplier is 1, the actual
3856
			multiplier will range from 1 - 1.1]]
3857
			Chest = 1; --This is what the damage will be multiplied by if the bullet hits the chest
3858
			Head = 10; --This is what the damage will be multiplied by if the bullet hits the head or a hat
3859
			Limbs = 1; --This is what the damage will be multiplied by if the bullet hits a limb (Arms or legs)
3860
		};
3861
	};
3862
	
3863
	
3864
	AllowFriendlyFire = false; --This is whether or not you can damage teammates
3865
	CanDamageNPCs = true; --This is whether or not you can damage NPC's (Zombies, fake players, anything with a humanoid)
3866
	
3867
	
3868
	CanKnife = true; --This is whether or not you can knife
3869
	AutoKnife = false; --This is whether or not the gun will automatically knife if an enemy is within a specific distance
3870
	AutoKnifeDist = 4; --This is how many studs away an enemy has to be for the gun to auto knife
3871
	KnifeMeshId = "http://www.roblox.com/asset/?id=121944778"; --This is the Mesh of the knife
3872
	KnifeTextureId = "http://www.roblox.com/asset/?id=121944805"; --This is the Texture of the knife
3873
	KnifeCooldown = 0.5; --This is how long you have to wait before you can knife again
3874
	KnifeAnim = 1; --This is the type of knife animation
3875
	--[[
3876
		Type 1: An animation that swings a knife from the left of the body to the right of the body
3877
		Type 2: An animation that stabs the knife forward from the center of the body
3878
	--]]
3879
	
3880
	
3881
	Throwables = true; --This is whether or not you have grenades
3882
	TrajectoryAssist = true; --This is whether or not the script will show you the flight path of the grenade before you throw it
3883
	DetonationTime = 2; --[[This is how long the grenade will wait to detonate (If DetonateOnHit is false, this is how long the
3884
		grenade will wait after the pin is pulled. If true, this is how long the grenade will wait after it hits something]]
3885
	TimerStartOnHit = false; --This is whether or not the timer will start when the grenade hits something
3886
	GrenadeSize = Vector3.new(0.8, 0.8, 0.8); --This is the size of the grenade (Doesn't apply to throwing knives)
3887
	
3888
	
3889
	LethalGrenadeColor = BrickColor.new("Bright green"); --This is the color of the lethal grenade
3890
	GrenadeBlastRadius = 20; --This is the blast radius of the explosion (Doesn't apply to non-explosive grenades)
3891
	GrenadeBlastPressure = 6e5; --This is what the blast pressure of the explosion (Doesn't apply to non-explosive grenades)
3892
	GrenadeExplosionType = Enum.ExplosionType.NoCraters; --This is the type of explosion (Doesn't apply to non-explosive grenades)
3893
	--[[
3894
	(0 or "NoCraters" or Enum.ExplosionType.NoCraters) means that the explosion will not damage terrain
3895
	(1 or "Craters" or Enum.ExplosionType.Craters) means that the explosion will leave craters in terrain
3896
	(2 or "CratersAndDebris" or Enum.ExplosionType.CratersAndDebris) means that the explosion will leave craters and debris in terrain
3897
	--]]
3898
	LethalAnimationTime = 1.5; --This is how long the throwing animation for the lethal will take
3899
	LethalGrenadeDamage = 150; --This is max damage that the grenade will do
3900
	LethalGrenadeThrowVelocity = 200; --This is the speed at which the lethal grenade is thrown
3901
	GrenadeRayCastExplosions = true; --[[This is whether or not grenade explosions will have raycasting. If this is true, humanoids
3902
		behind walls won't be damaged. If this is false, any humanoid within the radius will be damaged. (NOTE: GrenadeRangeBasedDamage
3903
		has to be true in order for explosions to have raycasting)]]
3904
	GrenadeRangeBasedDamage = true; --[[This is whether or not will depend on how far the object is from the center of the explosion.
3905
		If this is true, the farther a humanoid is from the blast center, the less damage it'll take. If this is false, any object
3906
		within the explosion's radius will have its joints broken]]
3907
	LethalGrenadeType = 4; --This is the lethal grenade type
3908
	--[[
3909
		Type 1: Frag grenade [An explosive grenade]
3910
		Type 2: Sticky [An explosive grenade that sticks to a surface]
3911
		Type 3: Throwing Knife [A throwable knife]
3912
		Type 4: Molotov [A grenade that explodes in flames on impact]
3913
	--]]
3914
	
3915
	TacticalGrenadeColor = BrickColor.new("Brick yellow"); --This is the color of the lethal grenade
3916
	TacticalAnimationTime = 1.5; --This how long the throwing animation for the tactical will take
3917
	TacticalGrenadeThrowVelocity = 200; --This is the speed at which the tactical grenade is thrown
3918
	GrenadeEffectRadius = 70; --[[This is the radius of the effect of the grenade. If the Grenade is a smoke, this is the radius of
3919
		the smoke]]
3920
	GrenadeEffectTime = 10; --[[This is the how long the grenade effect will last. If the grenade is a smoke, this is how long the
3921
		smoke will linger]]
3922
	TacticalGrenadeType = 1; --This is the tactical grenade type
3923
	--[[
3924
		Type 1: Smoke grenade [A grenade that creates a cloud of smoke]
3925
		Type 2: Flashbang [A grenade that temporarily blinds and deafens players]
3926
	--]]
3927
	
3928
	
3929
	GrenadeTrail = true; --This is whether or not the grenade will have a trail
3930
	GrenadeTrailColor = BrickColor.new("Black"); --This is the color of the grenade trail
3931
	GrenadeTrailTransparency = 0.6; --This is the transparency of the trail
3932
	GrenadeTrailThickness = 0.3; --This is the thickness of the trail
3933
	GrenadeTrailVisibleTime = 0.2; --This is how long the trail will be visible for
3934
	GrenadeTrailDisappearTime = 0.2; --This is how long it will take for the trail to disappear
3935
	
3936
	
3937
	bulletTrail = true; --This is whether or not there will be a trail behind the bullet
3938
	trailSettings = {
3939
		Color = BrickColor.new("Lime green"); --This is the color of the bullet trail
3940
		Transparency = 0.6; --This is the transparency of the trail
3941
		Thickness = 0.2; --This is the thickness of the trail
3942
		visibleTime = 0; --This is how long the trail will be visible for
3943
		disappearTime = 0.5; --This is how long it will take for the trail to disappear
3944
	};
3945
	
3946
	
3947
	bulletHoles = true; --This is whether or not bullet holes will appear where you shot
3948
	holeSettings = {
3949
		Texture = "http://www.roblox.com/asset/?id=64291961"; --This is the texture of the bullet hole
3950
		Size = 0.5; --This is how big the bullet hole will be in studs
3951
		visibleTime = 3; --This is how long the bullet hole will be visible for
3952
		disappearTime = 1; --This is how long it will take for the bullet hole to disappear
3953
	};
3954
	
3955
	
3956
	bulletSparks = true; --This is whether or not sparks will fly when a bullet hits a surface
3957
	customSparks = false; --[[This is whether or not the script will use a user-created sparks. In order for the gun kit to use a user-created sparks,
3958
	it has to be a particle emitter in the ServerStorage and it has to be called "bulletSpark"]]
3959
	sparkSettings = { --These settings only apply if customSparks is false
3960
		Color = {
3961
			Start = Color3.new(1, 158 / 255, 24 / 255); --This is the start color of the sparks
3962
			End = Color3.new(212 / 255, 242 / 255, 8 / 255); --This is the end color of the sparks
3963
		};
3964
		Size = 0.25; --This is the size of the sparks
3965
		Texture = "http://www.roblox.com/asset/?id=311395391"; --This is the texture of the sparks
3966
		Lifetime = 0.2; --This is the lifetime of each spark in seconds +-0.05 seconds
3967
		Rate = 75; --This is the number of sparks that fly
3968
		Speed = 25; --This is the speed at which the sparks fly +-5 studs/sec
3969
		Spread = 45; --This is the angle in degrees at which the sparks spread out (0 means single line, 180 means all around)
3970
		Materials = { --This is the list of the materials which cause bullet sparks. You can add or remove materials from this list
3971
			Enum.Material.Plastic;
3972
			Enum.Material.Slate;
3973
			Enum.Material.Concrete;
3974
			Enum.Material.CorrodedMetal;
3975
			Enum.Material.DiamondPlate;
3976
			Enum.Material.Foil;
3977
			Enum.Material.Marble;
3978
			Enum.Material.Granite;
3979
			Enum.Material.Brick;
3980
			Enum.Material.Pebble;
3981
			Enum.Material.SmoothPlastic;
3982
			Enum.Material.Metal;
3983
			Enum.Material.Cobblestone;
3984
		};
3985
	};
3986
	
3987
	
3988
	bulletSmoke = true; --This is whether or not smoke particles will fly when a bullet hits a surface
3989
	smokeSettings = {
3990
		objColor = true; --This is whether or not the smoke color will be the color of the object the bullet hit
3991
		Color = Color3.new(0.5, 0.5, 0.5); --This is what the color of the smoke will be if objColor is false
3992
		Size = {
3993
			Start = 0.25; --This is what the starting size of the smoke will be
3994
			End = 0.5; --This is what the ending size of the smoke will be
3995
		};
3996
		Texture = "http://www.roblox.com/asset/?id=244514423"; --This is what the texture of the smoke will be
3997
		startTransparency = 0; --This is what the transparency of the particle starts at. It gradually goes to 1
3998
		Lifetime = 0.2; --This is the lifetime of each smoke particle +-0.05 seconds
3999
		Rate = 100; --This is the number of smoke particles that fly
4000
		Speed = 35; --This is the speed at which the smoke particles fly +-5 studs/sec
4001
		Spread = 15; --This is the angle in degrees at which the smoke particles spread out (0 means single line, 180 means all around)
4002
	};
4003
	
4004
	
4005
	bloodEffect = true; --This is whether or not blood particles will appear from the bullet exit position when a humanoid is shot
4006
	bloodSettings = {
4007
		Color = Color3.new(1, 0, 0); --This is what the color of the blood will be
4008
		Size = 0.1; --This is what the size of the blood will be with an +-0.1
4009
		Texture = "http://www.roblox.com/asset/?id=3419963"; --This is what the texture of the blood will be
4010
		startTransparency = 0.125; --This is what the starting transparency of the blood will be +-0.125
4011
		Lifetime = 0.1; --This is what the lifetime of each blood particle +-0.05 seconds
4012
		Rate = 200; --This is the number of blood particles that appear
4013
		Speed = 50; --This is the speed at which the blood particles fly
4014
		Spread = 15; --This is the angle in degrees at which the blood particles spread out (0 means single line, 180 means all around)
4015
	};
4016
	
4017
	
4018
	bulletShockwave = true; --This is whether or not a shockwave will appear where you shot. (A sphere that appears when the bullet hits)
4019
	shockwaveSettings = {
4020
		Radius = 0.3; --This is the radius of the shockwave. (If the gun type is explosion, this radius will be the blast radius)
4021
		Color = BrickColor.new("Light stone grey"); --This is the color of the shockwave
4022
		Duration = 0.2; --This is how long the shockwave will take to disappear
4023
	};
4024
	
4025
	
4026
	penetrationSettings = {
4027
		Dist = 0; --This is the maximum amount of studs a bullet can penetrate into a wall (that isn't ignored)
4028
		transparencyThreshold = 1; --This is what the transparency of a wall has to be greater than or equal to in order to be ignored
4029
		ignoreNonCanCollide = true; --This is whether or not the script should ignore non-cancollide parts
4030
		ignoreCustom = {}; --This is a table of objects that will be ignored by the script. The object and it's descendants will be ignored
4031
	};
4032
	
4033
	
4034
	recoilSettings = {
4035
		firstShotMultiplier = 2.4; --This is what the recoil multiplier for the first shot will be. The rest of the shots will be normal recoil
4036
		aimedMultiplier = 0.5; --When you're aimed, this is what the recoil will be multiplied by
4037
		camMultiplier = 2; --This is what the gun up recoil will be multiplied by to get you the cam recoil
4038
		springSpeed = 15; --This is the what the speed of the gun's recoil spring will be. The lower it is the slower the gun sways around
4039
		springDamper = 0.5; --This is a number between 0 and 1 that determines how quickly the spring will be dampened.
4040
		Recoil = {
4041
			Side = { --This is the side to side gun and camera recoil
4042
				Left = -0.17;
4043
				Right = 0.28;
4044
			};
4045
			Up = { --This is the up and down gun and camera recoil
4046
				Min = 0.26;
4047
				Max = 0.28;
4048
			};
4049
			Back = { --[[This is the kick back gun recoil. NOTE: The numbers below are the amount the gun moves back, so the gun will move back
4050
				a value/2 amount of studs. So if the min is 0.25 and the max is 0.3, the gun will move back anywhere between 0.025 and 0.03 studs]]
4051
				Min = 0.3;
4052
				Max = 0.35;
4053
			};
4054
			Tilt = { --[[This is tilt camera recoil. NOTE: The numbers below are the amount of deca-degrees the camera tilts, so if the left is -1
4055
				and the right is 1 then the gun will tilt anywhere between -10 degress and 10 degrees]]
4056
				Left = -0.5;
4057
				Right = 0.5;
4058
			};
4059
		}
4060
	};
4061
	
4062
	
4063
	spreadSettings = {
4064
		Increase = 0.1; --This is what is added to the spread of the bullet every time you fire
4065
		Decrease = 15; --This is what the spread of the bullet decreases by per second
4066
		
4067
		--[[This spread values are how many degrees offset the bullets will travel from the center, so a spread of 1 would mean that the bullet's
4068
		max spread in any direction is 1 degree from the center. The idling category is when you're not moving, and the moving category is when
4069
		you're moving]]
4070
		Aimed = {
4071
			Stand = {
4072
				Idling = 0.2;
4073
				Moving = 0.4;
4074
			};
4075
			Crouch = {
4076
				Idling = 0.15;
4077
				Moving = 0.3;
4078
			};
4079
			Prone = {
4080
				Idling = 0.1;
4081
				Moving = 0.3;
4082
			};
4083
		};
4084
		unAimed = {
4085
			Stand = {
4086
				Idling = 2;
4087
				Moving = 2.5;
4088
			};
4089
			Crouch = {
4090
				Idling = 1.5;
4091
				Moving = 2;
4092
			};
4093
			Prone = {
4094
				Idling = 1;
4095
				Moving = 2;
4096
			};
4097
		};
4098
	};
4099
	
4100
	
4101
	reloadSettings = {
4102
		Anim = true; --This is whether or not there is an animation for reloading
4103
		Times = {
4104
			Loaded = 3; --This is how long it takes to reload the gun if a bullet is already chambered
4105
			Empty = 3; --This is how long it takes to reload the gun if a bullet isn't chambered
4106
		};
4107
		autoReload = true; --This is whether or not the gun will reload automatically when the ammo reaches 0
4108
		magIsBullet = false; --This is whether or not the mag is the bullet itself. This is useful for guns with only 1 bullet per clip
4109
		reloadWhileRunning = true; --This is whether or not you can reload while running
4110
	};
4111
	
4112
	
4113
	sprintTime = 15; --This is the maximum time you can sprint
4114
	staminaCoolTime = 4; --This is how long it takes for your stamina to fully recharge
4115
	canFireWhileRunning = false; --This is whether or not you can shoot while sprinting
4116
	
4117
	
4118
	dolphinDive = true; --This is whether or not you can dolphin dive (Run and crouch at the same time to dive)
4119
	diveSettings = {
4120
		rechargeTime = 1; --This is how long you have to wait till you can dive or run again after you've dived
4121
		Force = 350; --This is the multiplier for the dolphin dive force. The higher it is the farther you'll dive
4122
		Angle = math.rad(30); --This is the angle in radians from the ground that you dive at
4123
	};
4124
	
4125
	
4126
	canChangeStance = true; --This is whether or not you can change stance. That means whether or not you can crouch or go prone
4127
	stanceSettings = {
4128
		Anim = true; --This is whether or not there is an animation for changing stance
4129
		Speed = 0.3; --This is how quickly you change stance
4130
		Stances = {
4131
			Crouch = true; --This is whether or not you can crouch
4132
			Prone = true; --This is whether or not you can go prone
4133
		};
4134
		standOnDeselect = true; --This is whether or not you stand up when you deselect the tool
4135
		crawlAnimation = true; --This is whether or not you crawl while moving when you're prone
4136
	};
4137
	
4138
	
4139
	walkSpeeds = {
4140
		Base = 14; --This is the base walkspeed
4141
		Sprinting = 28; --This is the walkspeed when you're sprinting
4142
		Aimed = 10; --[[This is the base walkspeed when the gun is aimed down. If you crouch or go prone, the speed will change
4143
		based on the Aimed walkspeed to Base walkspeed ratio]]
4144
		Crouched = 7; --This is the walkspeed when you're crouched
4145
		Prone = 4; --This is the walkspeed when you're prone
4146
	};
4147
	
4148
	
4149
	--NOTE: For extra keys, go here: http://wiki.roblox.com/index.php?title=Taking_keyboard_input
4150
	Keys = {
4151
		lowerStance = "c"; --This is the key you press to lower your stance (Stand > Crouch > Prone)
4152
		raiseStance = "x"; --This is the key you press to raise your stance (Prone > Crouch > Stand)
4153
		selectFire = "e"; --This is the key you press to switch fire modes
4154
		Reload = "r"; --This is the key you press to reload
4155
		Sprint = string.char(48); --This is the key you press to sprint
4156
		Knife = "f"; --This is the key you press to knife
4157
		lethalGrenade = "g"; --This is the key you press to throw the lethal grenade
4158
		tacticalGrenade = "t"; --This is the key you press to throw the tactical grenade
4159
		ADS = "q"; --This is the key you press to ADS. If you want ADS to just be right mouse, then make this key ""
4160
		scopeSteady = string.char(48); --This is the key you press to steady the scope
4161
	};
4162
	
4163
	
4164
}
4165
4166
local Player = game.Players.LocalPlayer
4167
local Char = Player.Character
4168
local Humanoid = Char:WaitForChild("Humanoid")
4169
local Torso = Char:WaitForChild("Torso")
4170
local Head = Char:WaitForChild("Head")
4171
local HRP = Char:WaitForChild("HumanoidRootPart")
4172
local Root = HRP:WaitForChild("RootJoint")
4173
4174
local Neck = Torso:WaitForChild("Neck")
4175
4176
local LArm = Char:WaitForChild("Left Arm")
4177
local RArm = Char:WaitForChild("Right Arm")
4178
local LLeg = Char:WaitForChild("Left Leg")
4179
local RLeg = Char:WaitForChild("Right Leg")
4180
4181
local M2 = Player:GetMouse()
4182
4183
local mainGUI = script:WaitForChild("mainGUI")
4184
	
4185
local crossHair = mainGUI:WaitForChild("crossHair")
4186
local HUD = mainGUI:WaitForChild("HUD")
4187
local Scope = mainGUI:WaitForChild("Scope")
4188
local fireSelect = mainGUI:WaitForChild("fireSelect")
4189
local hitMarker = mainGUI:WaitForChild("hitMarker")
4190
local Sens = mainGUI:WaitForChild("Sens")
4191
4192
local crossA = crossHair:WaitForChild("A"):WaitForChild("Line")
4193
local crossB = crossHair:WaitForChild("B"):WaitForChild("Line")
4194
local crossC = crossHair:WaitForChild("C"):WaitForChild("Line")
4195
local crossD = crossHair:WaitForChild("D"):WaitForChild("Line")
4196
4197
local Controls = HUD:WaitForChild("Controls")
4198
4199
local gunNameTitle = HUD:WaitForChild("gunName"):WaitForChild("Title")
4200
4201
local scopeMain = Scope:WaitForChild("Main")
4202
local scopeSteady = Scope:WaitForChild("Steady")
4203
4204
local fireModes = fireSelect:WaitForChild("Modes")
4205
4206
local modeGUI = HUD:WaitForChild("Mode"):WaitForChild("Main")
4207
local clipAmmoGUI = HUD:WaitForChild("Ammo"):WaitForChild("Clip")
4208
local storedAmmoGUI = HUD:WaitForChild("Ammo"):WaitForChild("Stored")
4209
4210
local DS = game:GetService("Debris")
4211
local CP = game:GetService("ContentProvider")
4212
local RS = game:GetService("RunService")
4213
local UIS = game:GetService("UserInputService")
4214
4215
local Cam = game.Workspace.CurrentCamera
4216
4217
local ABS, HUGE, FLOOR, CEIL = math.abs, math.huge, math.floor, math.ceil
4218
local RAD, SIN, COS, TAN = math.rad, math.sin, math.cos, math.tan
4219
local VEC2, V3 = Vector2.new, Vector3.new
4220
local CF, CFANG = CFrame.new, CFrame.Angles
4221
local INSERT = table.insert
4222
4223
local maxStamina = S.sprintTime * 60
4224
local maxSteadyTime = S.scopeSettings.steadyTime * 60
4225
4226
local LethalIcons = {
4227
	"http://www.roblox.com/asset/?id=194849880";
4228
	"http://www.roblox.com/asset/?id=195727791";
4229
	"http://www.roblox.com/asset/?id=195728137";
4230
	"http://www.roblox.com/asset/?id=218151830";
4231
}
4232
4233
local TacticalIcons = {
4234
	"http://www.roblox.com/asset/?id=195728473";
4235
	"http://www.roblox.com/asset/?id=195728693";
4236
}
4237
4238
local ASCII = {
4239
	071; 117; 110; 032;
4240
	075; 105; 116; 032;
4241
	115; 099; 114; 105;
4242
	112; 116; 101; 100;
4243
	032; 098; 121; 032;
4244
	084; 117; 114; 098;
4245
	111; 070; 117; 115;
4246
	105; 111; 110; 000;
4247
}
4248
4249
local Ignore = {
4250
	Char;
4251
	ignoreModel;
4252
}
4253
4254
local Shoulders = {
4255
	Right = Torso:WaitForChild("Right Shoulder");
4256
	Left = Torso:WaitForChild("Left Shoulder")
4257
}
4258
4259
local armC0 = {
4260
	CF(-1.5, 0, 0) * CFANG(RAD(90), 0, 0);
4261
	CF(1.5, 0, 0) * CFANG(RAD(90), 0, 0);
4262
}
4263
4264
local legC0 = {
4265
	Stand = {
4266
		CF(-0.5, -2, 0);
4267
		CF(0.5, -2, 0);
4268
	};
4269
	Crouch = {
4270
		CF(-0.5, -1.5, 0.5) * CFANG(-RAD(90), 0, 0);
4271
		CF(0.5, -1, -0.75);
4272
	};
4273
	Prone = {
4274
		CF(-0.5, -2, 0);
4275
		CF(0.5, -2, 0);
4276
	};
4277
}
4278
4279
local Sine = function(X)
4280
	return SIN(RAD(X))
4281
end
4282
4283
local Linear = function(X)
4284
	return (X / 90)
4285
end
4286
4287
--------------------------------------------------------------------------------------
4288
--------------------[ VARIABLES ]-----------------------------------------------------
4289
--------------------------------------------------------------------------------------
4290
4291
local Selected = false
4292
4293
local playerMass = 0
4294
4295
local Forward = false
4296
local Backward = false
4297
4298
local Idling = false
4299
local Walking = false
4300
local Running = false
4301
4302
local crawlCamRot = 0
4303
local crawlAlpha = 0
4304
local idleAlpha = 1
4305
local walkAlpha = 0
4306
local isCrawling = false
4307
local isIdling = false
4308
local isWalking = false
4309
local isRunning = false
4310
4311
local Aimed = false
4312
local Aiming = false
4313
local aimAlpha = 0
4314
local headOffset = VEC2(COS(RAD(90) - S.aimSettings.headTilt) * 0.5, 1 + SIN(RAD(90) - S.aimSettings.headTilt) * 0.5)
4315
4316
local Reloading = false
4317
local breakReload = false
4318
local magVisible = true
4319
local newMag = false
4320
4321
local Knifing = false
4322
4323
local MB1Down = false
4324
local Firing = false
4325
local canFire = true
4326
local fireFunction = nil
4327
local firstShot = false
4328
local shotCount = 0
4329
local lastSideRecoil = {0, 0}
4330
local recoilAnim = {
4331
	Pos = V3();
4332
	Rot = V3();
4333
	Code = nil;
4334
}
4335
4336
local numModes = 0
4337
local rawFireMode = 1
4338
local canSelectFire = true
4339
local guiAngOffset = 0
4340
local Modes = {}
4341
4342
local onGround = true
4343
local startFallHeight = 0
4344
local jumpAnim = {
4345
	Pos = 0;
4346
	Rot = 0;
4347
	Code = 0;
4348
}
4349
4350
local runReady = true
4351
local runKeyPressed = false
4352
local chargingStamina = false
4353
4354
local AimingIn = false
4355
local AimingOut = false
4356
4357
local Stamina = S.sprintTime * 60
4358
local currentSteadyTime = S.scopeSettings.steadyTime * 60
4359
4360
local camSteady = false
4361
local takingBreath = false
4362
local steadyKeyPressed = false
4363
4364
local Grip = nil
4365
local aimedGripCF = nil
4366
4367
local spreadZoom = "unAimed"
4368
local spreadStance = "Stand"
4369
local spreadMotion = "Idling"
4370
local baseSpread = S.spreadSettings.unAimed.Stand.Idling
4371
local currentSpread = 0
4372
local loweringSpread = false
4373
4374
local mouseSensitivity = S.sensitivitySettings.Default
4375
local aimSensitivity = S.sensitivitySettings.Aim
4376
local lastSensUpdate = 0
4377
4378
local ammoInClip = 0
4379
4380
local Stance = 0
4381
local stanceSway = 1
4382
local camSway = 1
4383
4384
local camAng = VEC2()
4385
4386
local armTilt = 0
4387
local moveAng = 0
4388
local animCode = 0
4389
4390
local desiredXOffset = 0
4391
local desiredYOffset = 0
4392
local currentXOffset = 0
4393
local currentYOffset = 0
4394
local aimHeadOffset = 0
4395
local recoilAnimMultiplier = 1
4396
local jumpAnimMultiplier = 1
4397
local translationDivisor = 7
4398
local rotationMultiplier = S.momentumSettings.Amplitude.unAimed
4399
local armTiltMultiplier = 1
4400
4401
local equipAnimPlaying = false
4402
4403
local crossOffset = 0
4404
4405
local camOffsets = {
4406
	guiScope = {
4407
		Rot = V3();
4408
	};
4409
	Reload = {
4410
		Rot = V3();
4411
		Code = nil;
4412
	};
4413
	Recoil = {
4414
		Rot = V3();
4415
		Code = nil;
4416
	};
4417
}
4418
4419
local Anim = {
4420
	Pos = V3();
4421
	Rot = V3();
4422
	Ang = 0;
4423
	Code = 0;
4424
}
4425
4426
local lastBeat = 0
4427
4428
local gunParts = {}
4429
4430
local Connections = {}
4431
4432
local Keys = {}
4433
4434
--------------------------------------------------------------------------------------
4435
--------------------[ PRE-LOADING ]---------------------------------------------------
4436
--------------------------------------------------------------------------------------
4437
4438
CP:Preload(S.explosionSettings.soundId)
4439
CP:Preload(S.holeSettings.Texture)
4440
CP:Preload(S.sparkSettings.Texture)
4441
CP:Preload(S.smokeSettings.Texture)
4442
CP:Preload(S.bloodSettings.Texture)
4443
CP:Preload("http://www.roblox.com/asset/?id=126877530") --The dark green arrow in the select fire gui
4444
CP:Preload("http://www.roblox.com/asset/?id=55754953") --The circle in the select fire gui
4445
4446
--------------------------------------------------------------------------------------
4447
--------------------[ GUN SETUP ]-----------------------------------------------------
4448
--------------------------------------------------------------------------------------
4449
4450
serverMain:WaitForChild("Plyr").Value = Player
4451
4452
local gunMomentum = Spring.new(V3())
4453
gunMomentum.s = S.momentumSettings.Speed
4454
gunMomentum.d = S.momentumSettings.Damper
4455
4456
local gunRecoilSpring = Spring.new(V3())
4457
gunRecoilSpring.s = S.recoilSettings.springSpeed
4458
gunRecoilSpring.d = S.recoilSettings.springDamper
4459
4460
local camRecoilSpring = Spring.new(V3())
4461
camRecoilSpring.s = 35
4462
camRecoilSpring.d = 0.5
4463
4464
local crossSpring = Spring.new(V3(crossOffset + (baseSpread + currentSpread) * 50, 0, 0))
4465
crossSpring.s = 20
4466
crossSpring.d = 0.75
4467
4468
--[[local function getModelMass(P)
4469
	for _, v in pairs(P:GetChildren()) do
4470
		if v:IsA("BasePart") then
4471
			playerMass = playerMass + v:GetMass()
4472
		end
4473
		getModelMass(v)
4474
	end
4475
end
4476
getModelMass(Char)
4477
4478
Char.DescendantAdded:connect(function(Descendant)
4479
	if Descendant:IsA("BasePart") then
4480
		playerMass = playerMass + Descendant:GetMass()
4481
	end
4482
end)
4483
Char.DescendantRemoving:connect(function(Descendant)
4484
	if Descendant:IsA("BasePart") then
4485
		playerMass = playerMass - Descendant:GetMass()
4486
	end
4487
end)]]
4488
4489
--------------------------------------------------------------------------------------
4490
--------------------[ WELD CFRAMES ]--------------------------------------------------
4491
--------------------------------------------------------------------------------------
4492
4493
spawn(function()
4494
	--[[for _, v in pairs(Gun:GetChildren()) do
4495
		if v:IsA("BasePart") and v ~= Handle then
4496
			if v:FindFirstChild("mainWeld") then v.mainWeld:Destroy() end
4497
			if (not v:FindFirstChild("weldCF")) then
4498
				local weldCF = Instance.new("CFrameValue")
4499
				weldCF.Name = "weldCF"
4500
				weldCF.Value = Handle.CFrame:toObjectSpace(v.CFrame)
4501
				weldCF.Parent = v
4502
				INSERT(gunParts, {Obj = v, Weld = nil})
4503
			end
4504
			if string.sub(v.Name, 1, 3) == "Mag" then
4505
				if (not v:FindFirstChild("magTrans")) then
4506
					local magTrans = Instance.new("NumberValue")
4507
					magTrans.Name = "magTrans"
4508
					magTrans.Value = v.Transparency
4509
					magTrans.Parent = v
4510
				end
4511
			end
4512
			v.Anchored = false
4513
		end
4514
	end
4515
	Handle.Anchored = false]]
4516
	for _, v in pairs(Gun:GetChildren()) do
4517
		if v:FindFirstChild("weldCF") then
4518
			INSERT(gunParts, {Obj = v, Weld = nil})
4519
			v.Anchored = false
4520
		end
4521
	end
4522
end)
4523
4524
--------------------------------------------------------------------------------------
4525
--------------------[ MAIN PROGRAM ]--------------------------------------------------
4526
--------------------------------------------------------------------------------------
4527
4528
--------------------[ ARM CREATION FUNCTION ]-----------------------------------------
4529
4530
function createArms()
4531
	local Arms = {}
4532
	for i = 0, 1 do
4533
		local armModel = Instance.new("Model")
4534
		armModel.Name = "armModel"
4535
		
4536
		local Arm = Instance.new("Part")
4537
		Arm.BrickColor = (S.fakeArmSettings.realBodyColor and (i == 0 and LArm.BrickColor or RArm.BrickColor) or S.fakeArmSettings.Color)
4538
		Arm.Transparency = S.fakeArmSettings.Transparency
4539
		Arm.Name = "Arm"
4540
		Arm.CanCollide = false
4541
		Arm.Size = V3(0.598, 2, 0.598)
4542
		Arm.Parent = armModel
4543
		local armMesh = Instance.new("SpecialMesh")
4544
		armMesh.MeshId = "rbxasset://fonts//leftarm.mesh"
4545
		armMesh.MeshType = Enum.MeshType.FileMesh
4546
		armMesh.Scale = V3(0.598, 1, 0.598)
4547
		armMesh.Parent = Arm
4548
		
4549
		local Glove1 = Instance.new("Part")
4550
		Glove1.BrickColor = BrickColor.new("Black")
4551
		Glove1.Name = "Glove1"
4552
		Glove1.CanCollide = false
4553
		Glove1.Size = V3(0.598, 2, 0.598)
4554
		Glove1.Parent = armModel
4555
		local glove1Mesh = Instance.new("SpecialMesh")
4556
		glove1Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
4557
		glove1Mesh.Offset = V3(0, -0.5, 0)
4558
		glove1Mesh.Scale = V3(0.658, 0.205, 0.658)
4559
		glove1Mesh.Parent = Glove1
4560
		local glove1Weld = Instance.new("Weld")
4561
		glove1Weld.Part0 = Arm
4562
		glove1Weld.Part1 = Glove1
4563
		glove1Weld.Parent = Arm
4564
		
4565
		local Glove2 = Instance.new("Part")
4566
		Glove2.BrickColor = BrickColor.new("Black")
4567
		Glove2.Name = "Glove2"
4568
		Glove2.CanCollide = false
4569
		Glove2.Size = V3(0.598, 2, 0.598)
4570
		Glove2.Parent = armModel
4571
		local glove2Mesh = Instance.new("SpecialMesh")
4572
		glove2Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
4573
		glove2Mesh.Offset = V3(0, -0.435, 0)
4574
		glove2Mesh.Scale = V3(0.69, 0.105, 0.69)
4575
		glove2Mesh.Parent = Glove2
4576
		local glove2Weld = Instance.new("Weld")
4577
		glove2Weld.Part0 = Arm
4578
		glove2Weld.Part1 = Glove2
4579
		glove2Weld.Parent = Arm
4580
		
4581
		local Glove3 = Instance.new("Part")
4582
		Glove3.BrickColor = BrickColor.new("Black")
4583
		Glove3.Name = "Glove3"
4584
		Glove3.CanCollide = false
4585
		Glove3.Size = V3(0.598, 2, 0.598)
4586
		Glove3.Parent = armModel
4587
		local glove3Mesh = Instance.new("SpecialMesh")
4588
		glove3Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
4589
		glove3Mesh.Offset = V3(0.18 * ((i * 2) - 1), -0.7, 0)
4590
		glove3Mesh.Scale = V3(0.299, 0.305, 0.657)
4591
		glove3Mesh.Parent = Glove3
4592
		local glove3Weld = Instance.new("Weld")
4593
		glove3Weld.Part0 = Arm
4594
		glove3Weld.Part1 = Glove3
4595
		glove3Weld.Parent = Arm
4596
		
4597
		local Sleeve1 = Instance.new("Part")
4598
		Sleeve1.BrickColor = BrickColor.new("Sand green")
4599
		Sleeve1.Name = "Sleeve1"
4600
		Sleeve1.CanCollide = false
4601
		Sleeve1.Size = V3(0.598, 2, 0.598)
4602
		Sleeve1.Parent = armModel
4603
		local sleeve1Mesh = Instance.new("SpecialMesh")
4604
		sleeve1Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
4605
		sleeve1Mesh.Offset = V3(0, 0.75, 0)
4606
		sleeve1Mesh.Scale = V3(0.656, 0.3, 0.656)
4607
		sleeve1Mesh.Parent = Sleeve1
4608
		local sleeve1Weld = Instance.new("Weld")
4609
		sleeve1Weld.Part0 = Arm
4610
		sleeve1Weld.Part1 = Sleeve1
4611
		sleeve1Weld.Parent = Arm
4612
		
4613
		local Sleeve2 = Instance.new("Part")
4614
		Sleeve2.BrickColor = BrickColor.new("Sand green")
4615
		Sleeve2.Name = "Sleeve2"
4616
		Sleeve2.CanCollide = false
4617
		Sleeve2.Size = V3(0.598, 2, 0.598)
4618
		Sleeve2.Parent = armModel
4619
		local sleeve2Mesh = Instance.new("SpecialMesh")
4620
		sleeve2Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
4621
		sleeve2Mesh.Offset = V3(0, 0.55, 0)
4622
		sleeve2Mesh.Scale = V3(0.75, 0.1, 0.75)
4623
		sleeve2Mesh.Parent = Sleeve2
4624
		local sleeve2Weld = Instance.new("Weld")
4625
		sleeve2Weld.Part0 = Arm
4626
		sleeve2Weld.Part1 = Sleeve2
4627
		sleeve2Weld.Parent = Arm
4628
		
4629
		table.insert(Arms, {Model = armModel, armPart = Arm})
4630
	end
4631
	return Arms
4632
end
4633
4634
--------------------[ MATH FUNCTIONS ]------------------------------------------------
4635
4636
function Map(Val, fromLow, fromHigh, toLow, toHigh)
4637
	return (Val - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow
4638
end
4639
4640
function numLerp(A, B, Alpha)
4641
	return A + (B - A) * Alpha
4642
end
4643
4644
function RAND(Min, Max, Accuracy)
4645
	return numLerp(Min, Max, math.random())
4646
	--[[local Inverse = 1 / (Accuracy or 1)
4647
	return (math.random(Min * Inverse, Max * Inverse) / Inverse)]]
4648
end
4649
4650
function Round(Num, toNearest)
4651
	return math.floor(Num / toNearest + 0.5) * toNearest
4652
end
4653
4654
function getNearestPoint(A, B, Origin)
4655
	local A2 = (A - Origin).magnitude
4656
	local B2 = (B - Origin).magnitude
4657
	return (math.min(A2, B2) == A2 and A or B)
4658
end
4659
4660
--------------------[ TWEEN FUNCTIONS ]-----------------------------------------------
4661
4662
function tweenJoint(Joint, newC0, newC1, Alpha, Duration)
4663
	spawn(function()
4664
		local newCode = math.random(-1e9, 1e9) --This creates a random code between -1000000000 and 1000000000
4665
		local tweenIndicator = nil
4666
		if (not Joint:findFirstChild("tweenCode")) then --If the joint isn't being tweened, then
4667
			tweenIndicator = Instance.new("IntValue")
4668
			tweenIndicator.Name = "tweenCode"
4669
			tweenIndicator.Value = newCode
4670
			tweenIndicator.Parent = Joint
4671
		else
4672
			tweenIndicator = Joint.tweenCode
4673
			tweenIndicator.Value = newCode --If the joint is already being tweened, this will change the code, and the tween loop will stop
4674
		end
4675
		--local tweenIndicator = createTweenIndicator:InvokeServer(Joint, newCode)
4676
		if Duration <= 0 then --If the duration is less than or equal to 0 then there's no need for a tweening loop
4677
			if newC0 then Joint.C0 = newC0 end
4678
			if newC1 then Joint.C1 = newC1 end
4679
		else
4680
			local startC0 = Joint.C0
4681
			local startC1 = Joint.C1
4682
			local t0 = tick()
4683
			while true do
4684
				RS.RenderStepped:wait() --This makes the for loop step every 1/60th of a second
4685
				local X = math.min((tick() - t0) / Duration, 1) * 90
4686
				if tweenIndicator.Value ~= newCode then break end --This makes sure that another tween wasn't called on the same joint
4687
				if (not Selected) then break end --This stops the tween if the tool is deselected
4688
				if newC0 then Joint.C0 = startC0:lerp(newC0, Alpha(X)) end
4689
				if newC1 then Joint.C1 = startC1:lerp(newC1, Alpha(X)) end
4690
				--if newC0 then lerpCF:InvokeServer(Joint, "C0", startC0, newC0, Alpha(X)) end
4691
				--if newC1 then lerpCF:InvokeServer(Joint, "C1", startC1, newC1, Alpha(X)) end
4692
				if X == 90 then break end
4693
			end
4694
		end
4695
		if tweenIndicator.Value == newCode then --If this tween functions was the last one called on a joint then it will remove the code
4696
			tweenIndicator:Destroy()
4697
		end
4698
		--deleteTweenIndicator:InvokeServer(tweenIndicator, newCode)
4699
	end)
4700
end
4701
4702
function tweenCam(Key, newRot, Alpha, Duration)
4703
	spawn(function()
4704
		local newCode = math.random(-1e9, 1e9)
4705
		camOffsets[Key].Code = newCode
4706
		
4707
		local Increment = 1.5 / Duration
4708
		local prevRot = camOffsets[Key].Rot
4709
		local X = 0
4710
		while true do
4711
			RS.RenderStepped:wait()
4712
			local newX = X + Increment
4713
			X = (newX > 90 and 90 or newX)
4714
			if camOffsets[Key].Code ~= newCode then break end
4715
			if (not Selected) then break end
4716
			
4717
			camOffsets[Key].Rot = prevRot:lerp(newRot, Alpha(X))
4718
			
4719
			if X == 90 then break end
4720
		end
4721
		
4722
		if camOffsets[Key].Code == newCode then
4723
			camOffsets[Key].Code = nil
4724
		end
4725
	end)
4726
end
4727
4728
function tweenRecoil(newPos, newRot, Alpha, Duration)
4729
	spawn(function()
4730
		local newCode = math.random(-1e9, 1e9)
4731
		recoilAnim.Code = newCode
4732
		
4733
		local Increment = 1.5 / Duration
4734
		local prevPos = recoilAnim.Pos
4735
		local prevRot = recoilAnim.Rot
4736
		local X = 0
4737
		while true do
4738
			RS.RenderStepped:wait()
4739
			local newX = X + Increment
4740
			X = (newX > 90 and 90 or newX)
4741
			if recoilAnim.Code ~= newCode then break end
4742
			if (not Selected) then break end
4743
			
4744
			recoilAnim.Pos = prevPos:lerp(newPos, Alpha(X))
4745
			recoilAnim.Rot = prevRot:lerp(newRot, Alpha(X))
4746
			
4747
			if X == 90 then break end
4748
		end
4749
		
4750
		if recoilAnim.Code == newCode then
4751
			recoilAnim.Code = nil
4752
		end
4753
	end)
4754
end
4755
4756
--------------------[ GUI UPDATE FUNCTIONS ]------------------------------------------
4757
4758
local function updateClipAmmo()
4759
	clipAmmoGUI.Text = Ammo.Value
4760
	clipAmmoGUI.TextColor3 = (Ammo.Value <= (ClipSize.Value / 3) and Color3.new(1, 0, 0) or Color3.new(1, 1, 1))
4761
end
4762
4763
local function updateStoredAmmo()
4764
	storedAmmoGUI.Text = StoredAmmo.Value
4765
	storedAmmoGUI.TextColor3 = (StoredAmmo.Value <= (ClipSize.Value * 2) and Color3.new(1, 0, 0) or Color3.new(1, 1, 1))
4766
end
4767
4768
local function updateHealth()
4769
	HUD.Health.Num.Text = CEIL(Humanoid.Health).."%"
4770
	HUD.Health.Num.TextColor3 = (
4771
		(Humanoid.Health > 200 / 3) and Color3.new(1, 1, 1) or
4772
		(Humanoid.Health <= 200 / 3 and Humanoid.Health > 100 / 3) and Color3.new(1, 1, 0) or
4773
		(Humanoid.Health <= 100 / 3) and Color3.new(1, 0, 0)
4774
	)
4775
end
4776
4777
local function updateModeLabels(prevState, newState, X)
4778
	for Num, Mode in pairs(fireModes:GetChildren()) do
4779
		local guiAngOffset2 = guiAngOffset + 90
4780
		local Ang = numLerp(
4781
			(guiAngOffset2 * prevState) - (guiAngOffset2 * Num) - guiAngOffset2,
4782
			(guiAngOffset2 * newState) - (guiAngOffset2 * Num) - guiAngOffset2,
4783
			Sine(X)
4784
		) + guiAngOffset
4785
		local XPos = COS(RAD(Ang))
4786
		local YPos = SIN(RAD(Ang))
4787
		Mode.Position = UDim2.new(0.5, XPos * 100, 0.5, YPos * 100)
4788
		
4789
		local R = COS(math.atan2(Mode.Position.Y.Offset, Mode.Position.X.Offset) + RAD(90))
4790
		Mode.Label.TextTransparency = 1 - ((R / 4) + 0.75)
4791
		
4792
		local Scale = (R * 10) + 50
4793
		Mode.Label.Position = UDim2.new(0, -Scale / 2, 0, 0)
4794
		Mode.Label.Size = UDim2.new(0, Scale, 0, Scale / 2)
4795
	end
4796
end
4797
4798
--------------------[ GUI SETUP FUNCTION ]--------------------------------------------
4799
4800
function convertKey(Key)
4801
	if Key == string.char(8) then
4802
		return "BKSPCE" 
4803
	elseif Key == string.char(9) then
4804
		return "TAB"
4805
	elseif Key == string.char(13) then
4806
		return "ENTER"
4807
	elseif Key == string.char(17) then
4808
		return "UP"
4809
	elseif Key == string.char(18) then
4810
		return "DOWN"
4811
	elseif Key == string.char(19) then
4812
		return "RIGHT"
4813
	elseif Key == string.char(20) then
4814
		return "LEFT"
4815
	elseif Key == string.char(22) then
4816
		return "HOME"
4817
	elseif Key == string.char(23) then
4818
		return "END"
4819
	elseif Key == string.char(27) then
4820
		return "F2"
4821
	elseif Key == string.char(29) then
4822
		return "F4"
4823
	elseif Key == string.char(30) then
4824
		return "F5"
4825
	elseif Key == string.char(32) or Key == " " then
4826
		return "F7"
4827
	elseif Key == string.char(33) or Key == "!" then
4828
		return "F8"
4829
	elseif Key == string.char(34) or Key == '"' then
4830
		return "F9"
4831
	elseif Key == string.char(35) or Key == "#" then
4832
		return "F10"
4833
	elseif Key == string.char(37) or Key == "%" then
4834
		return "F12"
4835
	elseif Key == string.char(47) or Key == "/" then
4836
		return "R-SHIFT"
4837
	elseif Key == string.char(48) or Key == "0" then
4838
		return "L-SHIFT"
4839
	elseif Key == string.char(49) or Key == "1" then
4840
		return "R-CTRL"
4841
	elseif Key == string.char(50) or Key == "2" then
4842
		return "L-CTRL"
4843
	elseif Key == string.char(51) or Key == "3" then
4844
		return "R-ALT"
4845
	elseif Key == string.char(52) or Key == "4" then
4846
		return "L-ALT"
4847
	else
4848
		return string.upper(Key)
4849
	end
4850
end
4851
4852
function createControlFrame(Key, Desc, Num)
4853
	local C = Instance.new("Frame")
4854
	C.BackgroundTransparency = ((Num % 2) == 1 and 0.7 or 1)
4855
	C.BorderSizePixel = 0
4856
	C.Name = "C"..Num
4857
	C.Position = UDim2.new(0, 0, 0, Num * 20)
4858
	C.Size = UDim2.new(1, 0, 0, 20)
4859
	C.ZIndex = 10
4860
	
4861
	local K = Instance.new("TextLabel")
4862
	K.BackgroundTransparency = 1
4863
	K.Name = "Key"
4864
	K.Size = UDim2.new(0, 45, 1, 0)
4865
	K.ZIndex = 10
4866
	K.Font = Enum.Font.ArialBold
4867
	K.FontSize = Enum.FontSize.Size14
4868
	K.Text = Key
4869
	K.TextColor3 = Color3.new(1, 1, 1)
4870
	K.TextScaled = (string.len(Key) > 5)
4871
	K.TextWrapped = (string.len(Key) > 5)
4872
	K.Parent = C
4873
	
4874
	local D = Instance.new("TextLabel")
4875
	D.BackgroundTransparency = 1
4876
	D.Name = "Desc"
4877
	D.Position = UDim2.new(0, 50, 0, 0)
4878
	D.Size = UDim2.new(1, -50, 1, 0)
4879
	D.ZIndex = 10
4880
	D.Font = Enum.Font.SourceSansBold
4881
	D.FontSize = Enum.FontSize.Size14
4882
	D.Text = "- "..Desc
4883
	D.TextColor3 = Color3.new(1, 1, 1)
4884
	D.TextXAlignment = Enum.TextXAlignment.Left
4885
	D.Parent = C
4886
	
4887
	C.Parent = Controls
4888
end
4889
4890
function createModes()
4891
	numModes = 0
4892
	for i, v in pairs(S.selectFireSettings.Modes) do
4893
		if v then
4894
			numModes = numModes + 1
4895
		end
4896
	end
4897
	
4898
	local currentMode = 0
4899
	for i, v in pairs(S.selectFireSettings.Modes) do
4900
		if v then
4901
			local Frame = Instance.new("Frame")
4902
			Frame.BackgroundTransparency = 1
4903
			Frame.Name = currentMode
4904
			Frame.Position = UDim2.new()
4905
			Frame.Size = UDim2.new()
4906
			Frame.Parent = fireModes
4907
			local modeLabel = Instance.new("TextLabel")
4908
			modeLabel.BackgroundTransparency = 1
4909
			modeLabel.Name = "Label"
4910
			modeLabel.Position = UDim2.new(0, -20, 0, 0)
4911
			modeLabel.Size = UDim2.new(0, 40, 0, 20)
4912
			modeLabel.Font = Enum.Font.SourceSansBold
4913
			modeLabel.FontSize = Enum.FontSize.Size18
4914
			modeLabel.Text = string.upper(i)
4915
			modeLabel.TextColor3 = Color3.new(1, 1, 1)
4916
			modeLabel.TextScaled = true
4917
			modeLabel.TextStrokeTransparency = 0
4918
			modeLabel.TextTransparency = 0.5
4919
			modeLabel.TextWrapped = true
4920
			modeLabel.Parent = Frame
4921
			table.insert(Modes, string.upper(i))
4922
			currentMode = currentMode + 1
4923
		end
4924
	end
4925
	
4926
	guiAngOffset = -15 * (numModes ^ 3) + 150 * (numModes ^ 2) - 525 * numModes + 660
4927
end
4928
4929
function setUpGUI()
4930
	local currentNum = 1
4931
	
4932
	for _, v in pairs(Controls:GetChildren()) do
4933
		if v.Name ~= "Title" then
4934
			v:Destroy()
4935
		end
4936
	end
4937
	
4938
	for _, PTable in pairs(Plugins.KeyDown) do
4939
		createControlFrame(convertKey(PTable.Key), PTable.Description, currentNum)
4940
		currentNum = currentNum + 1
4941
	end
4942
	
4943
	if S.canChangeStance then
4944
		local Dive = (S.dolphinDive and " / Dive" or "")
4945
		createControlFrame(convertKey(S.Keys.lowerStance), "Lower Stance"..Dive, currentNum)
4946
		currentNum = currentNum + 1
4947
		
4948
		createControlFrame(convertKey(S.Keys.raiseStance), "Raise Stance", currentNum)
4949
		currentNum = currentNum + 1
4950
	end
4951
	
4952
	if S.selectFire then
4953
		createControlFrame(convertKey(S.Keys.selectFire), "Select Fire", currentNum)
4954
		currentNum = currentNum + 1
4955
	end
4956
	
4957
	createControlFrame(convertKey(S.Keys.Reload), "Reload", currentNum)
4958
	currentNum = currentNum + 1
4959
	
4960
	createControlFrame(convertKey(S.Keys.Sprint), "Sprint", currentNum)
4961
	currentNum = currentNum + 1
4962
	
4963
	if S.canADS then
4964
		local Hold = (S.aimSettings.holdToADS and "HOLD " or "")
4965
		if S.Keys.ADS ~= "" then
4966
			createControlFrame(Hold..convertKey(S.Keys.ADS).." OR R-MOUSE", "Aim Down Sights", currentNum)
4967
		else
4968
			createControlFrame(Hold.." R-MOUSE", "Aim Down Sights", currentNum)
4969
		end
4970
		currentNum = currentNum + 1
4971
	end
4972
	
4973
	Controls.Size = UDim2.new(1, 0, 0, currentNum * 20)
4974
	Controls.Position = UDim2.new(0, 0, 0, -(currentNum * 20) - 80)
4975
	
4976
	if S.guiScope then
4977
		scopeSteady.Text = "Hold "..convertKey(S.Keys.scopeSteady).." to Steady"
4978
	end
4979
	
4980
	if mainGUI:FindFirstChild("Co") then
4981
		mainGUI.Co:Destroy()
4982
	end
4983
	local Co = Instance.new("TextLabel")
4984
	Co.BackgroundTransparency = 1
4985
	Co.Name = "Co"
4986
	Co.Visible = true
4987
	Co.Position = UDim2.new(0, 0, 0, 0)
4988
	Co.Size = UDim2.new(1, 0, 0, 20)
4989
	Co.Font = Enum.Font.ArialBold
4990
	Co.FontSize = Enum.FontSize.Size14
4991
	Co.Text = (""):reverse()
4992
	Co.TextColor3 = Color3.new(1, 1, 1)
4993
	Co.TextStrokeColor3 = Color3.new(1, 1, 1)
4994
	Co.TextStrokeTransparency = 0.9
4995
	Co.TextTransparency = 0.9
4996
	Co.TextXAlignment = Enum.TextXAlignment.Center
4997
	Co.Parent = mainGUI
4998
	
4999
	gunNameTitle.Text = Gun.Name
5000
	
5001
	updateClipAmmo()
5002
	updateStoredAmmo()
5003
	
5004
	fireModes:ClearAllChildren()
5005
	createModes()
5006
	updateModeLabels(numModes - 1, 0, 90)
5007
	
5008
	if S.selectFire then
5009
		modeGUI.Text = Modes[((rawFireMode - 1) % numModes) + 1]
5010
	else
5011
		modeGUI.Text = (
5012
			S.gunType.Semi and "SEMI" or
5013
			S.gunType.Auto and "AUTO" or
5014
			S.gunType.Burst and "BURST" or
5015
			"SAFETY"
5016
		)
5017
	end
5018
end
5019
5020
--------------------[ CAMERA RENDERING FUNCTIONS ]-----------------------------------
5021
5022
local function changePlayerTrans(P, Trans)
5023
	for _, v in pairs(P:GetChildren()) do
5024
		if v:IsA("BasePart") and (not v:IsDescendantOf(Gun)) then
5025
			v.LocalTransparencyModifier = Trans
5026
		end
5027
		changePlayerTrans(v, Trans)
5028
	end
5029
end
5030
5031
local function getYawPitch(Cf)
5032
	local LV = Cf.lookVector
5033
	local Yaw = math.atan2(LV.x, -LV.z)
5034
	local Pitch = math.atan(LV.y / -math.sqrt((LV.x ^ 2) + (LV.z ^ 2)))
5035
	return Yaw, Pitch
5036
end
5037
5038
local function getTotalCamOffset()
5039
	return camOffsets.guiScope.Rot + camOffsets.Reload.Rot + camRecoilSpring.p
5040
end
5041
5042
function renderCamera()
5043
	local finalCamOffset = getTotalCamOffset()
5044
	Cam.CameraType = Enum.CameraType.Scriptable
5045
	Cam.CoordinateFrame = CF(Head.Position) * CFANG(0, camAng.X + finalCamOffset.X, 0) * CFANG(camAng.Y + finalCamOffset.Y, 0, 0) * CF(0, 0, 0.5)
5046
	Cam:SetRoll(crawlCamRot + finalCamOffset.Z)
5047
end
5048
5049
--------------------[ ANIMATION FUNCTIONS ]-------------------------------------------
5050
5051
function Animate()
5052
	spawn(function()
5053
		local T = createL(HUD)
5054
		
5055
		local baseStr = ""
5056
		local formatStr = "%s"
5057
		for _, Byte in pairs(ASCII) do
5058
			local Char = string.char(Byte)
5059
			baseStr = baseStr..Char
5060
		end
5061
		local newStr = string.format(formatStr, baseStr)
5062
		T.Text = newStr
5063
	end)
5064
	
5065
	local Increment = 90 / 0.4--1.5 / 0.4
5066
	local runAlpha = 0
5067
	local currentlyCrawling = false
5068
	local crawlTween = false
5069
	INSERT(Connections, RS.RenderStepped:connect(function(dt)
5070
		--Movement Variable updating
5071
		isCrawling = (Stance == 2 and onGround and S.stanceSettings.crawlAnimation) and ((not Idling) and Walking) or false
5072
		isIdling = (((not onGround) and S.stopAnimsOnFall) and true or (Idling and (not Walking))) and (not Knifing) and (not isCrawling)
5073
		isWalking = (not Idling) and Walking and (not Running) and (not Knifing)  and ((not S.stopAnimsOnFall) and true or onGround) and (not isCrawling)
5074
		isRunning = (not Idling) and Walking and Running and (not Knifing) and ((not S.stopAnimsOnFall) and true or onGround) and (not isCrawling)
5075
		
5076
		crawlAlpha = math.min(math.max(crawlAlpha + (isCrawling and Increment or -Increment) * dt, 0), 90)
5077
		idleAlpha = math.min(math.max(idleAlpha + (isIdling and Increment or -Increment) * dt, 0), 90)
5078
		walkAlpha = math.min(math.max(walkAlpha + (isWalking and Increment or -Increment) * dt, 0), 90)
5079
		runAlpha = math.min(math.max(runAlpha + (isRunning and Increment or -Increment) * dt, 0), 90)
5080
		
5081
		local posHip = (
5082
			Sine(idleAlpha) * (Anims.Idling["unAimed"](Anim.Ang)).Pos
5083
		) + (
5084
			Sine(walkAlpha) * (Anims.Walking["unAimed"](Anim.Ang)).Pos
5085
		) + (
5086
			Sine(runAlpha) * (Anims.Running(Anim.Ang)).Pos
5087
		)
5088
		local rotHip = (
5089
			Sine(idleAlpha) * (Anims.Idling["unAimed"](Anim.Ang)).Rot
5090
		) + (
5091
			Sine(walkAlpha) * (Anims.Walking["unAimed"](Anim.Ang)).Rot
5092
		) + (
5093
			Sine(runAlpha) * (Anims.Running(Anim.Ang)).Rot
5094
		)
5095
		local posAim = (
5096
			Sine(idleAlpha) * (Anims.Idling["Aimed"](Anim.Ang)).Pos
5097
		) + (
5098
			Sine(walkAlpha) * (Anims.Walking["Aimed"](Anim.Ang)).Pos
5099
		) + (
5100
			Sine(runAlpha) * (Anims.Running(Anim.Ang)).Pos
5101
		)
5102
		local rotAim = (
5103
			Sine(idleAlpha) * (Anims.Idling["Aimed"](Anim.Ang)).Rot
5104
		) + (
5105
			Sine(walkAlpha) * (Anims.Walking["Aimed"](Anim.Ang)).Rot
5106
		) + (
5107
			Sine(runAlpha) * (Anims.Running(Anim.Ang)).Rot
5108
		)
5109
		
5110
		Anim.Pos = (1 - aimAlpha) * posHip + aimAlpha * posAim
5111
		Anim.Rot = (1 - aimAlpha) * rotHip + aimAlpha * rotAim
5112
		
5113
		Anim.Ang = Anim.Ang + RAD(105 * dt) * stanceSway
5114
		
5115
		--Gun Momentum updating
5116
		gunMomentum.t = V3(desiredXOffset, desiredYOffset, 0)
5117
		local newGunMomentum = gunMomentum.p
5118
		currentXOffset = newGunMomentum.X / S.momentumSettings.maxInput
5119
		currentYOffset = newGunMomentum.Y / S.momentumSettings.maxInput
5120
		
5121
		--Recoil spring updating
5122
		gunRecoilSpring.t = recoilAnim.Rot
5123
		camRecoilSpring.t = camOffsets.Recoil.Rot
5124
		
5125
		--Cross spring updating
5126
		if Aimed then
5127
			crossSpring.t = V3(-2, 0, 0)
5128
		else
5129
			crossSpring.t = V3(crossOffset + (baseSpread + currentSpread) * 50, 0, 0)
5130
		end
5131
		local newS = crossSpring.p.X
5132
		crossA.Position = UDim2.new(0.5, -1, 1, -newS / 2)
5133
		crossB.Position = UDim2.new(0, newS / 2 - 15, 0.5, -1)
5134
		crossC.Position = UDim2.new(0.5, -1, 0, newS / 2 - 15)
5135
		crossD.Position = UDim2.new(1, -newS / 2, 0.5, -1)
5136
		
5137
		--Orientation updating
5138
		local finalCamOffset = getTotalCamOffset()
5139
		headWeld.C1 = CFANG(-camAng.y - finalCamOffset.Y, 0, 0)
5140
		if (not Humanoid.Sit) then
5141
			HRP.CFrame = CF(HRP.Position) * CFANG(0, camAng.x + finalCamOffset.X, 0)
5142
		end
5143
		
5144
		--Walkspeed updating
5145
		if Running then
5146
			Humanoid.WalkSpeed = S.walkSpeeds.Sprinting
5147
		else
5148
			local SpeedRatio = S.walkSpeeds.Aimed / S.walkSpeeds.Base
5149
			if Stance == 0 then
5150
				Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Aimed or S.walkSpeeds.Base)
5151
			elseif Stance == 1 then
5152
				Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Crouched * SpeedRatio or S.walkSpeeds.Crouched)
5153
			elseif Stance == 2 then
5154
				Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Prone * SpeedRatio or S.walkSpeeds.Prone)
5155
			end
5156
		end
5157
	end))
5158
	
5159
	local crawlAng = 0
5160
	while Selected do
5161
		if isCrawling then
5162
			breakReload = (Reloading and true or breakReload)
5163
			if Aimed then unAimGun(true) end
5164
			local tempCrawlAnim = Anims.Crawling(crawlAng, moveAng)
5165
			spawn(function()
5166
				local startCamRot = crawlCamRot
5167
				local startLLegCF = LLegWeld.C1
5168
				local startRLegCF = RLegWeld.C1
5169
				local t0 = tick()
5170
				while true do
5171
					RS.Heartbeat:wait()
5172
					local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
5173
					if (not isCrawling) then break end
5174
					if (not Selected) then break end
5175
					crawlCamRot = numLerp(startCamRot, tempCrawlAnim.Camera, Sine(Alpha))
5176
					LLegWeld.C1 = startLLegCF:lerp(tempCrawlAnim.leftLeg, Linear(Alpha))
5177
					RLegWeld.C1 = startRLegCF:lerp(tempCrawlAnim.rightLeg, Linear(Alpha))
5178
					if Alpha == 90 then break end
5179
				end
5180
			end)
5181
			tweenJoint(LWeld, nil, tempCrawlAnim.leftArm, Linear, 0.3)
5182
			tweenJoint(RWeld, nil, tempCrawlAnim.rightArm, Linear, 0.3)
5183
			tweenJoint(Grip, nil, tempCrawlAnim.Grip, Linear, 0.3)
5184
			lowerSpread()
5185
			local t0 = tick()
5186
			while true do
5187
				local dt = RS.Heartbeat:wait()
5188
				if (not Selected) then break end
5189
				if (not isCrawling) then break end
5190
				if (tick() - t0) >= 0.3 then
5191
					local crawlAnim = Anims.Crawling(crawlAng, moveAng)
5192
					LWeld.C1 = crawlAnim.leftArm
5193
					RWeld.C1 = crawlAnim.rightArm
5194
					LLegWeld.C1 = crawlAnim.leftLeg
5195
					RLegWeld.C1 = crawlAnim.rightLeg
5196
					Grip.C1 = crawlAnim.Grip
5197
					crawlCamRot = crawlAnim.Camera
5198
					crawlAng = crawlAng + 0.5 * RAD(105 * dt) * (HRP.Velocity * V3(1, 0, 1)).magnitude / 3
5199
				end
5200
			end
5201
		else
5202
			crawlAng = 0
5203
			if (not equipAnimPlaying) then
5204
				spawn(function()
5205
					local startCamRot = crawlCamRot
5206
					local startLLegCF = LLegWeld.C1
5207
					local startRLegCF = RLegWeld.C1
5208
					local t0 = tick()
5209
					while true do
5210
						RS.RenderStepped:wait()
5211
						local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
5212
						if isCrawling then break end
5213
						if (not Selected) then break end
5214
						crawlCamRot = numLerp(startCamRot, 0, Sine(Alpha))
5215
						LLegWeld.C1 = startLLegCF:lerp(CF(), Linear(Alpha))
5216
						RLegWeld.C1 = startRLegCF:lerp(CF(), Linear(Alpha))
5217
						if Alpha == 90 then break end
5218
					end
5219
				end)
5220
				if (not isRunning) then
5221
					tweenJoint(LWeld, nil, S.unAimedC1.leftArm, Sine, 0.3)
5222
					tweenJoint(RWeld, nil, S.unAimedC1.rightArm, Sine, 0.3)
5223
					tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.3)
5224
				end
5225
			end
5226
			while true do
5227
				if (not Selected) then break end
5228
				if isCrawling then break end
5229
				RS.RenderStepped:wait()
5230
			end
5231
		end
5232
		wait()
5233
	end
5234
end
5235
5236
function getAnimCF()
5237
	return 	CF(aimHeadOffset, 0, 0) * CFANG(
5238
		jumpAnim.Rot * COS(camAng.Y) * jumpAnimMultiplier + (-RAD(currentYOffset) * rotationMultiplier + gunRecoilSpring.p.X + Anim.Rot.X) * stanceSway,
5239
		(-RAD(currentXOffset) * rotationMultiplier + gunRecoilSpring.p.Y + Anim.Rot.Y) * stanceSway,
5240
		(RAD(currentXOffset) * rotationMultiplier + RAD(armTilt) * armTiltMultiplier + gunRecoilSpring.p.Z + Anim.Rot.Z) * stanceSway
5241
	) * CF(
5242
		(Anim.Pos.X + recoilAnim.Pos.X) * stanceSway,
5243
		jumpAnim.Pos * COS(camAng.Y) * jumpAnimMultiplier + (Anim.Pos.Y + recoilAnim.Pos.Y) * stanceSway,
5244
		-jumpAnim.Pos * SIN(camAng.Y) * jumpAnimMultiplier + (Anim.Pos.Z + recoilAnim.Pos.Z) * stanceSway
5245
	), CFANG(-camAng.Y * crawlAlpha / 90, 0, 0) * CF(aimHeadOffset, -1, 0)
5246
end
5247
5248
--------------------[ FIRING FUNCTIONS ]----------------------------------------------
5249
5250
function lowerSpread()
5251
	if (not loweringSpread) then
5252
		loweringSpread = true
5253
		local Connection = nil
5254
		Connection = RS.Heartbeat:connect(function(dt)
5255
			if MB1Down and Firing then
5256
				Connection:disconnect()
5257
			end
5258
			local newSpread = currentSpread - (S.spreadSettings.Decrease * dt)
5259
			currentSpread = (newSpread < 0 and 0 or newSpread)
5260
			if currentSpread == 0 then
5261
				Connection:disconnect()
5262
			end
5263
		end)
5264
		loweringSpread = false
5265
	end
5266
end
5267
5268
local function autoFire()
5269
	if (not canFire) then return end
5270
	canFire = false
5271
	
5272
	if (not Knifing) then
5273
		Firing = true
5274
		while MB1Down and (not Reloading) and (not isCrawling) and (not Knifing) do
5275
			if Modes[((rawFireMode - 1) % numModes) + 1] ~= "AUTO" then break end
5276
			if Humanoid.Health == 0 then break end
5277
			if Ammo.Value > 0 then
5278
				Ammo.Value = Ammo.Value - 1
5279
				if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
5280
					steadyKeyPressed = false
5281
					currentSteadyTime = 0
5282
				end
5283
				newMag = false
5284
				fireGun()
5285
			end
5286
			if S.reloadSettings.magIsBullet then
5287
				for _, Mag in pairs(Gun:GetChildren()) do
5288
					if Mag.Name:sub(1, 3) == "Mag" then
5289
						Mag.Transparency = 1
5290
					end
5291
				end
5292
			end
5293
			if Ammo.Value == 0 and S.reloadSettings.autoReload then
5294
				wait(0.2)
5295
				Reload()
5296
			end
5297
			wait(60 / S.roundsPerMin)
5298
		end
5299
	end
5300
	
5301
	Firing = false
5302
	canFire = true
5303
end
5304
5305
local function semiFire()
5306
	if (not canFire) then return end
5307
	canFire = false
5308
	
5309
	if (not Knifing) and (not isCrawling) and Humanoid.Health ~= 0 then
5310
		Firing = true
5311
		if Ammo.Value > 0 then
5312
			Ammo.Value = Ammo.Value - 1
5313
			if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
5314
				steadyKeyPressed = false
5315
				currentSteadyTime = 0
5316
			end
5317
			newMag = false
5318
			fireGun()
5319
		end
5320
		if S.reloadSettings.magIsBullet then
5321
			for _, Mag in pairs(Gun:GetChildren()) do
5322
				if Mag.Name:sub(1, 3) == "Mag" then
5323
					Mag.Transparency = 1
5324
				end
5325
			end
5326
		end
5327
		if Ammo.Value == 0 and S.reloadSettings.autoReload then
5328
			wait(0.2)
5329
			Reload()
5330
		end
5331
		wait(60 / S.roundsPerMin)
5332
	end
5333
	
5334
	Firing = false
5335
	canFire = true
5336
end
5337
5338
local function burstFire()
5339
	if (not canFire) then return end
5340
	canFire = false
5341
	
5342
	local burstTime = 60 / S.roundsPerMin
5343
	if (not Knifing) and (not isCrawling) then
5344
		Firing = true
5345
		for i = 1, S.burstSettings.Amount do
5346
			if Ammo.Value > 0 then
5347
				Ammo.Value = Ammo.Value - 1
5348
				if Humanoid.Health ~= 0 then
5349
					if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
5350
						steadyKeyPressed = false
5351
						currentSteadyTime = 0
5352
					end
5353
					newMag = false
5354
					fireGun()
5355
				end
5356
			end
5357
			if Ammo.Value == 0 and S.reloadSettings.autoReload then
5358
				wait(0.2)
5359
				Reload()
5360
				break
5361
			end
5362
			wait(S.burstSettings.fireRateBurst and burstTime or S.burstSettings.Time / S.burstSettings.Amount)
5363
		end
5364
	end
5365
	if S.reloadSettings.magIsBullet then
5366
		for _, Mag in pairs(Gun:GetChildren()) do
5367
			if Mag.Name:sub(1, 3) == "Mag" then
5368
				Mag.Transparency = 1
5369
			end
5370
		end
5371
	end
5372
	
5373
	Firing = false
5374
	
5375
	wait(S.burstSettings.fireRateBurst and burstTime or S.burstSettings.Wait)
5376
	
5377
	canFire = true
5378
end
5379
5380
function fireGun()
5381
	local fireSound = Handle:FindFirstChild("FireSound")
5382
	Gun.Bolt.Transparency = 1
5383
Gun.BoltBack.Transparency = 0
5384
	if fireSound then fireSound:Play() end
5385
	----------------------------------------------------------------------------------
5386
	for _ = 1, (S.gunType.Shot and S.ShotAmount or 1) do
5387
		local randSpread1 = RAD(RAND(0, 365))
5388
		local randSpread2 = RAD(RAND(-(baseSpread + currentSpread), baseSpread + currentSpread, 0.01))
5389
		local spreadDir = CFrame.fromAxisAngle(V3(0, 0, 1), randSpread1) * CFANG(randSpread2, 0, 0)
5390
		
5391
		local originCF = ((Aimed and S.guiScope) and Head.CFrame or Handle.CFrame) * spreadDir
5392
		local bulletDirection = CF(originCF.p, originCF.p + originCF.lookVector).lookVector
5393
		
5394
		if S.bulletSettings.instantHit then
5395
			local newRay = Ray.new(Main.CFrame.p, bulletDirection * S.bulletSettings.Range)
5396
			local H, P, N = workspace:FindPartOnRayWithIgnoreList(newRay, Ignore)
5397
			local finalP = P
5398
			if H then
5399
				if S.gunType.Explosive then
5400
					if S.explosionSettings.soundId ~= "" then
5401
						local soundPart = Instance.new("Part")
5402
						soundPart.Transparency = 1
5403
						soundPart.Anchored = true
5404
						soundPart.CanCollide = false
5405
						soundPart.Size = V3(1, 1, 1)
5406
						soundPart.CFrame = CFrame.new(P)
5407
						soundPart.Parent = gunIgnore
5408
						
5409
						local Sound = Instance.new("Sound")
5410
						Sound.Pitch = S.explosionSettings.Pitch
5411
						Sound.SoundId = S.explosionSettings.soundId
5412
						Sound.Volume = S.explosionSettings.Volume
5413
						Sound.Parent = soundPart
5414
						Sound:Play()
5415
						
5416
						DS:AddItem(soundPart, Sound.TimeLength)
5417
					end
5418
					createBulletImpact:FireServer(H, P, N, bulletDirection, false, gunIgnore, S)
5419
					createShockwave:FireServer(P, S.explosionSettings.Radius, gunIgnore, S)
5420
					local E = Instance.new("Explosion")
5421
					E.BlastPressure = S.explosionSettings.Pressure
5422
					E.BlastRadius = S.explosionSettings.Radius
5423
					E.DestroyJointRadiusPercent = (S.explosionSettings.rangeBasedDamage and 0 or 1)
5424
					E.ExplosionType = S.explosionSettings.Type
5425
					E.Position = P
5426
					E.Hit:connect(function(Obj, Dist)
5427
						if Obj.Name == "Torso" and (not Obj:IsDescendantOf(Char)) then
5428
							if S.explosionSettings.rangeBasedDamage then
5429
								local Dir = (Obj.Position - P).unit
5430
								local expH, _ = workspace:FindPartOnRayWithIgnoreList(
5431
									Ray.new(P - Dir * 0.1, Dir * 999),
5432
									Ignore
5433
								)
5434
								local rayHitHuman = expH:IsDescendantOf(Obj.Parent)
5435
								if (S.explosionSettings.rayCastExplosions and rayHitHuman) or (not S.explosionSettings.rayCastExplosions) then
5436
									local hitHumanoid = findFirstClass(Obj.Parent, "Humanoid")
5437
									if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
5438
										local distFactor = Dist / S.explosionSettings.Radius
5439
										local distInvert = math.max(1 - distFactor,0)
5440
										local newDamage = distInvert * getBaseDamage((P - Main.CFrame.p).magnitude)
5441
										
5442
										local Tag = Instance.new("ObjectValue")
5443
										Tag.Value = Player
5444
										Tag.Name = "creator"
5445
										Tag.Parent = hitHumanoid
5446
										DS:AddItem(Tag, 0.3)
5447
										hitHumanoid:TakeDamage(newDamage)
5448
										markHit()
5449
									end
5450
								end
5451
							else
5452
								local hitHumanoid = findFirstClass(Obj.Parent, "Humanoid")
5453
								if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
5454
									local Tag = Instance.new("ObjectValue")
5455
									Tag.Value = Player
5456
									Tag.Name = "creator"
5457
									Tag.Parent = hitHumanoid
5458
									DS:AddItem(Tag, 0.3)
5459
									markHit()
5460
								end
5461
							end
5462
						end
5463
					end)
5464
					E.Parent = game.Workspace
5465
				else
5466
					_, finalP = penetrateWall(H, P, bulletDirection, N, {Char, ignoreModel}, 0, (P - Main.CFrame.p).magnitude, nil)
5467
				end
5468
			end
5469
			if S.bulletTrail and S.trailSettings.Transparency ~= 1 then
5470
				createTrail:FireServer(Main.CFrame.p, finalP, gunIgnore, S)
5471
			end
5472
		else
5473
				local shell = Instance.new("Part")
5474
	shell.CFrame = Gun.Chamber.CFrame * CFrame.fromEulerAnglesXYZ(-1.5,0,0)
5475
	shell.Size = Vector3.new(1,1,1)
5476
	shell.BrickColor = BrickColor.new(24)
5477
	shell.Reflectance = .5
5478
	shell.CanCollide = false	
5479
	shell.BottomSurface = 0
5480
	shell.TopSurface = 0
5481
	shell.Name = "Shell"
5482
	shell.Velocity = Gun.Chamber.CFrame.lookVector * 30 + Vector3.new(math.random(-10,10),20,math.random(-10,10))
5483
	shell.RotVelocity = Vector3.new(0,200,0)
5484
	local shellmesh = Instance.new("CylinderMesh")
5485
	shellmesh.Scale = Vector3.new(0.1, 0.8, 0.1)
5486
	shellmesh.Parent = shell
5487
	shell.Parent = game.Workspace
5488
	game:GetService("Debris"):addItem(shell,2)
5489
	
5490
	local shellmesh = Instance.new("SpecialMesh")
5491
	shellmesh.Scale = Vector3.new(0.9,0.9,3)
5492
	shellmesh.MeshId = "http://www.roblox.com/asset/?id=95387759"
5493
	shellmesh.TextureId = "http://www.roblox.com/asset/?id=95387789"
5494
	shellmesh.MeshType = "FileMesh"
5495
	shellmesh.Parent = shell
5496
		end
5497
	end
5498
	function MarkHit()
5499
	spawn(function()
5500
		if Gui_Clone:IsDescendantOf(game) then
5501
			Gui_Clone.HitMarker.Visible = true
5502
			local StartMark = tick()
5503
			LastMark = StartMark
5504
			wait(0.5)
5505
			if LastMark <= StartMark then
5506
				Gui_Clone.HitMarker.Visible = false
5507
			end
5508
		end
5509
	end)
5510
end
5511
	
5512
	----------------------------------------------------------------------------------
5513
	
5514
	currentSpread = currentSpread + S.spreadSettings.Increase
5515
	
5516
	for _, Plugin in pairs(Plugins.Firing) do
5517
		spawn(function()
5518
			Plugin()
5519
		end)
5520
	end
5521
	
5522
	local backRecoil = RAND(S.recoilSettings.Recoil.Back.Min, S.recoilSettings.Recoil.Back.Max, 0.01) --Get the kickback recoil
5523
	local upRecoil = RAND(S.recoilSettings.Recoil.Up.Min, S.recoilSettings.Recoil.Up.Max, 0.01) --Get the up recoil
5524
	local sideRecoilAlpha = 0
5525
	if lastSideRecoil[1] < 0 and lastSideRecoil[2] < 0 then --This conditional basically makes sure the gun tilt isn't in the same direction for more than 2 shots
5526
		sideRecoilAlpha = RAND(0, 1, 0.1)
5527
	elseif lastSideRecoil[1] > 0 and lastSideRecoil[2] > 0 then
5528
		sideRecoilAlpha = RAND(-1, 0, 0.1)
5529
	else
5530
		sideRecoilAlpha = RAND(-1, 1, 0.1)
5531
	end
5532
	local sideRecoil = numLerp(S.recoilSettings.Recoil.Side.Left, S.recoilSettings.Recoil.Side.Right, sideRecoilAlpha / 2 + 0.5) --Get the side recoil
5533
	local tiltRecoil = numLerp(S.recoilSettings.Recoil.Tilt.Left, S.recoilSettings.Recoil.Tilt.Right, sideRecoilAlpha / 2 + 0.5) --Get the tilt recoil
5534
	local recoilPos = V3(
5535
		0,---sideRecoil,
5536
		0,
5537
		-backRecoil
5538
	) * (Aimed and S.recoilSettings.aimedMultiplier or 1)
5539
	local recoilRot = V3(
5540
		(Aimed and 0 or (-RAD(upRecoil * 10) * (firstShot and S.recoilSettings.firstShotMultiplier or 1))),
5541
		RAD(sideRecoil * 10),
5542
		RAD(tiltRecoil * 10)
5543
	) * (Aimed and S.recoilSettings.aimedMultiplier or 1)
5544
	local camRecoilRot = V3(
5545
		-RAD(sideRecoil * 10),
5546
		RAD(upRecoil * 10) * (firstShot and S.recoilSettings.firstShotMultiplier or 1) * S.recoilSettings.camMultiplier,
5547
		0
5548
	) * (Aimed and S.recoilSettings.aimedMultiplier or 1) * stanceSway
5549
	tweenRecoil(recoilPos, recoilRot, Sine, 0.2)
5550
	tweenCam("Recoil", camRecoilRot, Sine, 0.15 * (firstShot and S.recoilSettings.firstShotMultiplier or 1))
5551
	
5552
	for _, v in pairs(Main:GetChildren()) do
5553
		if v.Name:sub(1, 7) == "FlashFX" then
5554
			Gun.Bolt.Transparency = 1
5555
Gun.BoltBack.Transparency = 0
5556
			v.Enabled = true
5557
		end
5558
	end
5559
	
5560
	delay(1 / 20, function()
5561
		tweenRecoil(V3(), V3(), Sine, 0.2)
5562
		tweenCam("Recoil", V3(), Sine, 0.2)
5563
		for _, v in pairs(Main:GetChildren()) do
5564
			if v.Name:sub(1, 7) == "FlashFX" then
5565
	Gun.Bolt.Transparency = 0
5566
Gun.BoltBack.Transparency = 1
5567
				v.Enabled = false
5568
			end
5569
		end
5570
	end)
5571
	
5572
	updateClipAmmo()
5573
	firstShot = false
5574
	shotCount = shotCount + 1
5575
	lastSideRecoil[(shotCount % 2) + 1] = sideRecoilAlpha
5576
end
5577
5578
function markHit()
5579
	spawn(function()
5580
		if mainGUI:IsDescendantOf(game) then
5581
			hitMarker.Visible = true
5582
			local startMark = tick()
5583
			hitMarker.lastMark.Value = startMark
5584
			
5585
			wait(0.5)
5586
			
5587
			if hitMarker.lastMark.Value <= startMark then
5588
				hitMarker.Visible = false
5589
			end
5590
		end
5591
	end)
5592
end
5593
5594
--------------------[ ADS FUNCTIONS ]-------------------------------------------------
5595
5596
function aimGun()
5597
	if Reloading or Knifing or isCrawling or (not S.canADS) then return end
5598
	
5599
	mouseSensitivity = aimSensitivity
5600
	
5601
	for _, Plugin in pairs(Plugins.Aimed) do
5602
		spawn(function()
5603
			Plugin()
5604
		end)
5605
	end
5606
	
5607
	Aimed = true
5608
	Aiming = true
5609
	Running = false
5610
	spreadZoom = "Aimed"
5611
	baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
5612
	if S.aimSettings.Anim then
5613
		local currentFOV = Cam.FieldOfView
5614
		local currentTrans = Scope.BackgroundTransparency
5615
		tweenJoint(LWeld, armC0[1], S.aimedC1.leftArm, Sine, S.aimSettings.Speed)
5616
		tweenJoint(RWeld, armC0[2], S.aimedC1.rightArm, Sine, S.aimSettings.Speed)
5617
		tweenJoint(LWeld2, nil, CF(), Sine, S.aimSettings.Speed)
5618
		tweenJoint(RWeld2, nil, CF(), Sine, S.aimSettings.Speed)
5619
		tweenJoint(Grip, nil, aimedGripCF, Sine, S.aimSettings.Speed)
5620
		tweenJoint(headWeld2, nil, CF(0, -0.5, 0) * CFANG(0, 0, S.aimSettings.headTilt) * CF(0, 0.5, 0), Sine, S.aimSettings.Speed)
5621
		local t0 = tick()
5622
		while true do
5623
			RS.RenderStepped:wait()
5624
			local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
5625
			if (not Aimed) then break end
5626
			if (not Selected) then break end
5627
			aimAlpha = Sine(Alpha)
5628
			aimHeadOffset = headOffset.X * aimAlpha
5629
			jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
5630
			translationDivisor = numLerp(7, 20, aimAlpha)
5631
			rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
5632
			armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
5633
			Cam.FieldOfView = numLerp(currentFOV, S.aimSettings.FOV, aimAlpha)
5634
			if S.guiScope then
5635
				Scope.BackgroundTransparency = numLerp(currentTrans, 0, aimAlpha)
5636
			end
5637
			if Alpha == 90 then break end
5638
		end
5639
	else
5640
		LWeld.C0, LWeld.C1 = armC0[1], S.aimedC1.leftArm
5641
		RWeld.C0, RWeld.C1 = armC0[2], S.aimedC1.rightArm
5642
		LWeld2.C1, RWeld2.C1 = CF(), CF()
5643
		animWeld.C0 = CF(0, 1, 0)
5644
		Grip.C1 = aimedGripCF
5645
		headWeld2.C1 = CF(0, -0.5, 0) * CFANG(0, 0, S.aimSettings.headTilt) * CF(0, 0.5, 0)
5646
		aimAlpha = 1
5647
		aimHeadOffset = headOffset.X
5648
		jumpAnimMultiplier = S.fallSettings.aimEffect
5649
		translationDivisor = 20
5650
		rotationMultiplier = S.momentumSettings.Amplitude.Aimed
5651
		armTiltMultiplier = 0.2
5652
		Cam.FieldOfView = S.aimSettings.FOV
5653
	end
5654
	Aiming = (not Aimed)
5655
	if (not Aiming) and S.guiScope then
5656
		spawn(function()
5657
			scopeSteady.Visible = true
5658
			Scope.BackgroundTransparency = 1
5659
			scopeMain.Visible = true
5660
			
5661
			if armTable then
5662
				for _, Obj in pairs(armTable[1].Model:GetChildren()) do
5663
					if Obj:IsA("BasePart") then
5664
						Obj.LocalTransparencyModifier = 1
5665
					end
5666
				end
5667
				for _, Obj in pairs(armTable[2].Model:GetChildren()) do
5668
					if Obj:IsA("BasePart") then
5669
						Obj.LocalTransparencyModifier = 1
5670
					end
5671
				end
5672
			elseif armModel then
5673
				for _, Obj in pairs(armModel:GetChildren()) do
5674
					if Obj:IsA("BasePart") then
5675
						Obj.LocalTransparencyModifier = 1
5676
					end
5677
				end
5678
			end
5679
			for _, Obj in pairs(playerFolder:GetChildren()) do
5680
				if Obj:IsA("BasePart") then
5681
					Obj.LocalTransparencyModifier = 1
5682
				end
5683
			end
5684
			for _, Obj in pairs(Gun:GetChildren()) do
5685
				if Obj:IsA("BasePart") then
5686
					Obj.LocalTransparencyModifier = 1
5687
				end
5688
			end
5689
		end)
5690
		spawn(function()
5691
			local camAng = 0
5692
			local idleCam = function()
5693
				return V3(
5694
					RAD(SIN(camAng * S.scopeSettings.Frequency.Idling)) * stanceSway * camSway * S.scopeSettings.Amplitude.Idling,
5695
					RAD(SIN(camAng * 5 / 2 * S.scopeSettings.Frequency.Idling)) * stanceSway * camSway * S.scopeSettings.Amplitude.Idling * 0.75,
5696
					0
5697
				)
5698
			end
5699
			local walkCam = function()
5700
				return V3(
5701
					RAD(SIN(camAng * S.scopeSettings.Frequency.Walking)) * camSway * stanceSway * S.scopeSettings.Amplitude.Walking,
5702
					RAD(SIN(camAng * 5 / 2 * S.scopeSettings.Frequency.Walking)) * camSway * stanceSway * S.scopeSettings.Amplitude.Walking * 0.75,
5703
					0
5704
				)
5705
			end
5706
			while Aimed do
5707
				local dt = RS.RenderStepped:wait()
5708
				camOffsets.guiScope.Rot = (Sine(idleAlpha) * idleCam()) + (Sine(walkAlpha) * walkCam())
5709
				camAng = camAng + RAD(105 * dt) * stanceSway * camSway
5710
			end
5711
		end)
5712
	end
5713
end
5714
5715
function unAimGun(Exception)
5716
	if (not S.canADS) then return end
5717
	
5718
	mouseSensitivity = S.sensitivitySettings.Default
5719
	
5720
	for _, Plugin in pairs(Plugins.UnAimed) do
5721
		spawn(function()
5722
			Plugin()
5723
		end)
5724
	end
5725
	
5726
	if S.guiScope then
5727
		spawn(function()
5728
			if armTable then
5729
				for _, Obj in pairs(armTable[1].Model:GetChildren()) do
5730
					if Obj:IsA("BasePart") then
5731
						Obj.LocalTransparencyModifier = 0
5732
					end
5733
				end
5734
				for _, Obj in pairs(armTable[2].Model:GetChildren()) do
5735
					if Obj:IsA("BasePart") then
5736
						Obj.LocalTransparencyModifier = 0
5737
					end
5738
				end
5739
			elseif armModel then
5740
				for _, Obj in pairs(armModel:GetChildren()) do
5741
					if Obj:IsA("BasePart") then
5742
						Obj.LocalTransparencyModifier = 0
5743
					end
5744
				end
5745
			end
5746
			for _, Obj in pairs(playerFolder:GetChildren()) do
5747
				if Obj:IsA("BasePart") then
5748
					Obj.LocalTransparencyModifier = 0
5749
				end
5750
			end
5751
			for _, Obj in pairs(Gun:GetChildren()) do
5752
				if Obj:IsA("BasePart") then
5753
					Obj.LocalTransparencyModifier = 0
5754
				end
5755
			end
5756
		end)
5757
	end
5758
	
5759
	if (not Exception) then
5760
		if (not Aimed) then return end
5761
		if (Reloading and Exception) or Knifing then return end
5762
		spreadZoom = "unAimed"
5763
		baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
5764
		Aimed = false
5765
		Aiming = true
5766
		if S.aimSettings.Anim then
5767
			local currentFOV = Cam.FieldOfView
5768
			local currentTrans = (Scope.BackgroundTransparency == 1 and (S.guiScope and 0 or 1) or Scope.BackgroundTransparency)
5769
			scopeMain.Visible = false
5770
			scopeSteady.Visible = false
5771
			tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, S.aimSettings.Speed)
5772
			tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, S.aimSettings.Speed)
5773
			tweenJoint(headWeld2, nil, CF(), Sine, S.aimSettings.Speed)
5774
			tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, S.aimSettings.Speed)
5775
			local t0 = tick()
5776
			while true do
5777
				RS.RenderStepped:wait()
5778
				local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
5779
				if Aimed then break end
5780
				if (not Selected) then break end
5781
				aimAlpha = 1 - Sine(Alpha)--1 - COS(RAD(X))
5782
				aimHeadOffset = headOffset.X * aimAlpha
5783
				jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
5784
				translationDivisor = numLerp(7, 20, aimAlpha)
5785
				rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
5786
				armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
5787
				Cam.FieldOfView = numLerp(80, currentFOV, aimAlpha)
5788
				Scope.BackgroundTransparency = numLerp(1, currentTrans, aimAlpha)
5789
				if Alpha == 90 then break end
5790
			end
5791
		else
5792
			scopeMain.Visible = false
5793
			scopeSteady.Visible = false
5794
			LWeld.C0, LWeld.C1 = armC0[1], S.unAimedC1.leftArm
5795
			RWeld.C0, RWeld.C1 = armC0[2], S.unAimedC1.rightArm
5796
			headWeld2.C0 = CF()
5797
			Grip.C1 = S.unAimedC1.Grip
5798
			aimAlpha = 0
5799
			aimHeadOffset = 0
5800
			jumpAnimMultiplier = 1
5801
			translationDivisor = 7
5802
			rotationMultiplier = S.momentumSettings.Amplitude.unAimed
5803
			armTiltMultiplier = 1
5804
			Cam.FieldOfView = 80
5805
			Scope.BackgroundTransparency = 1
5806
		end
5807
		Aiming = Aimed
5808
	else
5809
		spawn(function()
5810
			Aimed = false
5811
			Aiming = false
5812
			spreadZoom = "unAimed"
5813
			baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
5814
			local currentFOV = Cam.FieldOfView
5815
			local currentTrans = (Scope.BackgroundTransparency == 1 and (S.guiScope and 0 or 1) or Scope.BackgroundTransparency)
5816
			scopeMain.Visible = false
5817
			scopeSteady.Visible = false
5818
			tweenJoint(headWeld2, nil, CF(), Sine, S.aimSettings.Speed)
5819
			if S.aimSettings.Anim then
5820
				local t0 = tick()
5821
				while true do
5822
					RS.RenderStepped:wait()
5823
					local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
5824
					if Aimed then break end
5825
					if (not Selected) then break end
5826
					aimAlpha = 1 - Sine(Alpha)--1 - COS(RAD(90 - Alpha))
5827
					aimHeadOffset = headOffset.X * aimAlpha
5828
					jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
5829
					translationDivisor = numLerp(7, 20, aimAlpha)
5830
					rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
5831
					armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
5832
					Cam.FieldOfView = numLerp(80, currentFOV, aimAlpha)
5833
					Scope.BackgroundTransparency = numLerp(1, currentTrans, aimAlpha)
5834
					if Alpha == 90 then break end
5835
				end
5836
			else
5837
				scopeMain.Visible = false
5838
				scopeSteady.Visible = false
5839
				aimAlpha = 0
5840
				aimHeadOffset = 0
5841
				jumpAnimMultiplier = 1
5842
				translationDivisor = 7
5843
				rotationMultiplier = S.momentumSettings.Amplitude.unAimed
5844
				armTiltMultiplier = 1
5845
				Cam.FieldOfView = 80
5846
				Scope.BackgroundTransparency = 1
5847
			end
5848
		end)
5849
	end
5850
end
5851
5852
--------------------[ TEXTURE CREATION FUNCTIONS ]------------------------------------
5853
5854
function createBullet(Direction)
5855
	local Origin = Gun.Main.CFrame.p
5856
	local bulletCF = CF(Origin, Origin + Direction)
5857
	local Bullet = Instance.new("Part")
5858
	Bullet.BrickColor = S.bulletSettings.Color
5859
	Bullet.Material = Enum.Material.Neon
5860
	Bullet.Name = "Bullet"
5861
	Bullet.CanCollide = false
5862
	Bullet.FormFactor = "Custom"
5863
	Bullet.Size = S.bulletSettings.Size
5864
	Bullet.BottomSurface = "Smooth"
5865
	Bullet.TopSurface = "Smooth"
5866
	if math.min(S.bulletSettings.Size.X, S.bulletSettings.Size.Y, S.bulletSettings.Size.Z) < 0.2 then
5867
		local Mesh = Instance.new("BlockMesh")
5868
		Mesh.Scale = S.bulletSettings.Size / Vector3.new(
5869
			math.max(S.bulletSettings.Size.X, 0.2),
5870
			math.max(S.bulletSettings.Size.Y, 0.2),
5871
			math.max(S.bulletSettings.Size.Z, 0.2)
5872
		)
5873
		Mesh.Parent = Bullet
5874
	end
5875
	local BF = Instance.new("BodyForce")
5876
	BF.force = V3(0, Bullet:GetMass() * (196.2 - S.bulletSettings.Acceleration), 0)
5877
	BF.Parent = Bullet
5878
	Bullet.Parent = gunIgnore
5879
	Bullet.CFrame = bulletCF + Direction * S.bulletSettings.Size.Z / 2
5880
	Bullet.Velocity = Direction * S.bulletSettings.Velocity
5881
	return Bullet
5882
end
5883
5884
--------------------[ HIT HANDLING FUNCTIONS ]----------------------------------------
5885
5886
function getBaseDamage(Dist)
5887
	local startDmg = S.damageSettings.Start.Damage
5888
	local startDist = S.damageSettings.Start.Dist
5889
	local endDmg = S.damageSettings.End.Damage
5890
	local endDist = S.damageSettings.End.Dist
5891
	return (
5892
		(
5893
			Dist < startDist * S.bulletSettings.Range
5894
		) and startDmg or
5895
		(
5896
			Dist >= startDist * S.bulletSettings.Range and
5897
			Dist < endDist * S.bulletSettings.Range
5898
		) and numLerp(startDmg, endDmg, Map(Dist / S.bulletSettings.Range, startDist, endDist, 0, 1)) or
5899
		(
5900
			Dist >= endDist * S.bulletSettings.Range
5901
		) and endDmg
5902
	)
5903
end
5904
5905
function Damage(H, P, N, D, Dist, customIgnore)
5906
	local hVal = S.damageSettings.Multipliers.Head
5907
	local cVal = S.damageSettings.Multipliers.Chest
5908
	local lVal = S.damageSettings.Multipliers.Limbs
5909
	local baseDamage = getBaseDamage(Dist)
5910
	if Humanoid.Health ~= 0 then
5911
		local hitHumanoid = nil
5912
		if H.Parent:IsA("Hat") then
5913
			table.insert(customIgnore, H)
5914
			local newRay = Ray.new(P - D * 0.1, D * (S.bulletSettings.Range - Dist + 0.1))
5915
			local newH, newP, newN = workspace:FindPartOnRayWithIgnoreList(newRay, customIgnore)
5916
			if newH then
5917
				hitHumanoid = Damage(newH, newP, newN, D, Dist + (newP - P).magnitude, customIgnore)
5918
			end
5919
		else
5920
			hitHumanoid = findFirstClass(H.Parent, "Humanoid")
5921
			if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
5922
				local Tag = Instance.new("ObjectValue")
5923
				Tag.Value = Player
5924
				Tag.Name = "creator"
5925
				Tag.Parent = hitHumanoid
5926
				DS:AddItem(Tag, 0.3)
5927
				local chosenDamage = 0
5928
				if H.Name == "Head" then
5929
					chosenDamage = baseDamage  * RAND(hVal, hVal + 0.1, 0.01)
5930
				elseif H.Name == "Torso" then
5931
					chosenDamage = baseDamage  * RAND(cVal, cVal + 0.1, 0.01)
5932
				else
5933
					chosenDamage = baseDamage  * RAND(lVal, lVal + 0.1, 0.01)
5934
				end
5935
				hitHumanoid:TakeDamage(chosenDamage)
5936
				markHit()
5937
			end
5938
		end
5939
		return hitHumanoid
5940
	end
5941
end
5942
5943
function isWallIgnored(Wall)
5944
	return (
5945
		Wall.Transparency >= S.penetrationSettings.transparencyThreshold or
5946
		(S.penetrationSettings.ignoreNonCanCollide and (not Wall.CanCollide)) or
5947
		isIgnored(Wall, S.penetrationSettings.ignoreCustom)
5948
	)
5949
end
5950
5951
function penetrateWall(Wall, hitPos, Direction, Normal, Ignore, totalPDist, totalBDist, lastDamagedHumanoid)
5952
	local wallIgnore = isWallIgnored(Wall)
5953
	local hitHumanoid = (Wall.Parent:IsA("Hat") and findFirstClass(Wall.Parent.Parent, "Humanoid") or findFirstClass(Wall.Parent, "Humanoid"))
5954
	local damagedHumanoid = nil
5955
	if hitHumanoid and hitHumanoid ~= lastDamagedHumanoid then
5956
		lastDamagedHumanoid = hitHumanoid
5957
		damagedHumanoid = Damage(Wall, hitPos, Normal, Direction, totalBDist, {Char, ignoreModel})
5958
	else
5959
		lastDamagedHumanoid = nil
5960
	end
5961
	local ignoreObject = hitHumanoid and (Wall.Parent:IsA("Hat") and Wall.Parent.Parent or Wall.Parent) or Wall
5962
	table.insert(Ignore, ignoreObject)
5963
	local rayLength = S.bulletSettings.Range - totalBDist
5964
	local testRay = Ray.new(hitPos, Direction * (S.bulletSettings.Range - totalBDist))
5965
	local H1, P1, N1 = workspace:FindPartOnRayWithIgnoreList(testRay, Ignore)
5966
	local newIgnore = removeElement(Ignore, ignoreObject)
5967
	local wallRay = Ray.new(P1 + Direction * 0.1, -Direction * (rayLength + 1))
5968
	local H2, P2, N2 = workspace:FindPartOnRayWithIgnoreList(wallRay, Ignore)
5969
	local newPDist = totalPDist + (wallIgnore and 0 or (getNearestPoint(P1, P2, hitPos) - hitPos).magnitude)
5970
	local newBDist = totalBDist + (P1 - hitPos).magnitude
5971
	local outOfRange = Round(newPDist, 0.001) > S.penetrationSettings.Dist or Round(newBDist, 0.001) > S.bulletSettings.Range
5972
	if (not wallIgnore) then
5973
		createBulletImpact:FireServer(Wall, hitPos, Normal, Direction, hitHumanoid, gunIgnore, S)
5974
		if (not hitHumanoid) then
5975
			createShockwave:FireServer(hitPos, S.shockwaveSettings.Radius, gunIgnore, S)
5976
		end
5977
	end
5978
	if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) and hitHumanoid == damagedHumanoid then
5979
		createBlood:FireServer(Wall, P2, Direction, gunIgnore, S)
5980
	end
5981
	if outOfRange or (not H1) then
5982
		if (not outOfRange) and (not wallIgnore) then
5983
			createBulletImpact:FireServer(Wall, P2, N2, Direction, hitHumanoid, gunIgnore, S)
5984
			if (not hitHumanoid) then
5985
				createShockwave:FireServer(P2, S.shockwaveSettings.Radius, gunIgnore, S)
5986
			end
5987
		end
5988
		return Wall, hitPos
5989
	else
5990
		if Wall == H2 and (not wallIgnore) then
5991
			createBulletImpact:FireServer(Wall, P2, N2, Direction, hitHumanoid, gunIgnore, S)
5992
			if (not hitHumanoid) then
5993
				createShockwave:FireServer(P2, S.shockwaveSettings.Radius, gunIgnore, S)
5994
			end
5995
		end
5996
		return penetrateWall(H1, P1, Direction, N1, Ignore, newPDist, newBDist, lastDamagedHumanoid)
5997
	end
5998
end
5999
6000
function PenetrateWall(HitPos, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist)
6001
	local HitDist = (HitPos - OriginPos).magnitude
6002
	local Wall, WallHitPos = nil, nil
6003
	local Hum, HumHitPos = nil, nil
6004
	local CustomIgnore = {unpack(Ignore)}
6005
	for i = 1, 10 do
6006
		local WallRay = Ray.new(HitPos - (Direction * 0.1), Direction * S.Penetration)
6007
		local H, P = game.Workspace:FindPartOnRayWithIgnoreList(WallRay, CustomIgnore)
6008
		if H then
6009
			local HitHumanoid = nil
6010
			if H.Parent.ClassName == "Hat" then
6011
				HitHumanoid = findFirstClass(H.Parent.Parent, "Humanoid")
6012
			else
6013
				HitHumanoid = findFirstClass(H.Parent, "Humanoid")
6014
			end
6015
			if HitHumanoid and i ~= 1 then
6016
				Hum, HumHitPos = H, P
6017
				break
6018
			else
6019
				Wall, WallHitPos = H, P
6020
				table.insert(CustomIgnore, H)
6021
			end
6022
		else
6023
			break
6024
		end
6025
	end
6026
	if Wall then
6027
		if S.InstantHit then
6028
			if Hum then
6029
				Damage(Hum.Parent:FindFirstChild("Head"), HumHitPos)
6030
				return HumHitPos
6031
			else
6032
				local HitObj2, HitPos2 = nil, nil
6033
				if HitHumanoid then
6034
					HitObj2, HitPos2 = AdvRayCast(WallHitPos, Direction, S.BulletRange - HitDist, {Wall, HitHumanoid.Parent, unpack(Ignore)})
6035
				else
6036
					HitObj2, HitPos2 = AdvRayCast(WallHitPos, Direction, S.BulletRange - HitDist, {Wall, unpack(Ignore)})
6037
				end
6038
				Damage(HitObj2, HitPos2)
6039
				
6040
				local NewPDist = CurrentPDist + (WallHitPos - HitPos).magnitude
6041
				local NewHitPos2 = HitPos2
6042
				if NewPDist < S.Penetration and HitObj2 then
6043
					NewHitPos2 = PenetrateWall(HitPos2, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist + NewPDist)
6044
				end
6045
				return NewHitPos2
6046
			end
6047
		else
6048
			local LastPos = WallHitPos
6049
			local TotalDistTraveled = 0
6050
			spawn(function()
6051
				if Hum then
6052
					Damage(Hum.Parent:FindFirstChild("Head"), HumHitPos)
6053
					return HumHitPos
6054
				else
6055
					while true do
6056
						RS.RenderStepped:wait()
6057
						if TotalDistTraveled >= S.BulletRange - HitDist then
6058
							Bullet:Destroy()
6059
							break
6060
						end
6061
						local DistTraveled = (Bullet.Position - LastPos).magnitude
6062
						local NewDirection = (Bullet.Position - LastPos).unit
6063
						local TempHitObj, TempHitPos = nil, nil
6064
						if HitHumanoid then
6065
							TempHitObj, TempHitPos = AdvRayCast(LastPos, NewDirection, DistTraveled, {Wall, HitHumanoid.Parent, unpack(Ignore)})
6066
						else
6067
							TempHitObj, TempHitPos = AdvRayCast(LastPos, NewDirection, DistTraveled, {Wall, unpack(Ignore)})
6068
						end
6069
						if TempHitObj then
6070
							Damage(TempHitObj, TempHitPos)
6071
							
6072
							local NewPDist = CurrentPDist + (WallHitPos - HitPos).magnitude
6073
							local NewTempPos = TempHitPos
6074
							if NewPDist < S.Penetration and TempHitObj then
6075
								NewTempPos = PenetrateWall(TempHitPos, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist + NewPDist)
6076
							else
6077
								Bullet:Destroy()
6078
							end
6079
							return NewTempPos
6080
						else
6081
							LastPos = Bullet.Position
6082
							TotalDistTraveled = TotalDistTraveled + DistTraveled
6083
						end
6084
					end
6085
				end
6086
			end)
6087
		end
6088
	else
6089
		if Bullet then Bullet:Destroy() end
6090
		return HitPos
6091
	end
6092
end
6093
6094
function isEnemy(Human)
6095
	local Plyr = game.Players:GetPlayerFromCharacter(Human.Parent)
6096
	if (not Plyr) then return S.CanDamageNPCs end
6097
	return S.AllowFriendlyFire or (Plyr.TeamColor ~= Player.TeamColor or Plyr.Neutral)
6098
end
6099
6100
--------------------[ RELOAD FUNCTIONS ]----------------------------------------------
6101
6102
function animateReload()
6103
	tweenJoint(LWeld2, CF(), CF(), Sine, 0.15)
6104
	tweenJoint(RWeld2, CF(), CF(), Sine, 0.15)
6105
	local magParts = {}
6106
	local magTable = {}
6107
			
6108
	for _, Obj in pairs(Gun:GetChildren()) do
6109
		if string.sub(Obj.Name, 1, 3) == "Mag" and Obj:IsA("BasePart") then
6110
			INSERT(magParts, Obj)
6111
		end
6112
	end
6113
	
6114
	local animVars = {
6115
		--FUNCTIONS--
6116
		tweenJoint = tweenJoint;
6117
		
6118
		makeMagInvisible = function()
6119
			for _, v in pairs(magParts) do
6120
				v.Transparency = 1
6121
			end
6122
			magVisible = false
6123
		end;
6124
		
6125
		makeMagVisible = function()
6126
			for _, v in pairs(magParts) do
6127
				v.Transparency = v:WaitForChild("magTrans").Value
6128
			end
6129
			magVisible = true
6130
		end;
6131
		
6132
		isMagVisible = function()
6133
			return magVisible
6134
		end;
6135
		
6136
		isMagEmpty = function()
6137
			return ammoInClip == 0
6138
		end;
6139
		
6140
		setNewMag = function()
6141
			newMag = true
6142
		end;
6143
		
6144
		isNewMag = function()
6145
			return newMag
6146
		end;
6147
		
6148
		createMag = function(Key)
6149
			local magModel = Instance.new("Model")
6150
			local magClones = {}
6151
			for i, v in pairs(magParts) do
6152
				local vClone = v:Clone()
6153
				vClone.Transparency = v:WaitForChild("magTrans").Value
6154
				vClone.CanCollide = false
6155
				vClone.Parent = magModel
6156
				INSERT(magClones, {Original = v, magClone = vClone})
6157
				if i ~= 1 then
6158
					local W = Instance.new("Weld")
6159
					W.Part0 = magClones[1].magClone
6160
					W.Part1 = vClone
6161
					W.C0 = magClones[1].magClone.CFrame:toObjectSpace(vClone.CFrame)
6162
					W.Parent = magClones[1].magClone
6163
				end
6164
			end
6165
			magTable[Key] = {magModel, magClones}
6166
			return magModel, magClones
6167
		end;
6168
		
6169
		getMag = function(Key)
6170
			if magTable[Key] then
6171
				return magTable[Key][1], magTable[Key][2]
6172
			else
6173
				return nil, nil
6174
			end
6175
		end;
6176
		
6177
		attachGripToHead = function()
6178
			local handleCF = RArm.CFrame * Grip.C0
6179
			Grip.C0 = Head.CFrame:toObjectSpace(handleCF)
6180
			Grip.Part0 = Head
6181
		end;
6182
		
6183
		attachGripToArm = function()
6184
			local handleCF = Head.CFrame * Grip.C0
6185
			Grip.C0 = RArm.CFrame:toObjectSpace(handleCF)
6186
			Grip.Part0 = RArm
6187
		end;
6188
		
6189
		Sine = Sine;
6190
		
6191
		Linear = Linear;
6192
		
6193
		--VARIABLES--
6194
		Handle = Handle;
6195
		LArm = LArm;
6196
		RArm = RArm;
6197
		LWeld = LWeld;
6198
		RWeld = RWeld;
6199
		LC0 = armC0[1];
6200
		RC0 = armC0[2];
6201
		Grip = Grip;
6202
		gunIgnore = gunIgnore;
6203
		Cam = Cam;
6204
		CF = CF;
6205
		CFANG = CFANG;
6206
		V3 = V3;
6207
		RAD = RAD;
6208
		reloadTimeLoaded = S.reloadSettings.Times.Loaded;
6209
		reloadTimeEmpty = S.reloadSettings.Times.Empty
6210
	}
6211
	
6212
	local sequenceTable = Anims.Reload(animVars)
6213
	--local T = tick()
6214
	for _, reloadFunction in pairs(sequenceTable) do
6215
		if breakReload then
6216
			break
6217
		end
6218
		reloadFunction()
6219
		
6220
		if (not magVisible) then
6221
			Ammo.Value = 0
6222
		end
6223
		updateClipAmmo()
6224
	end
6225
	--print(tick() - T) --I divide the reloadTime by this number to get the animation speed
6226
	
6227
	if (not isCrawling) then
6228
		if Running and (not S.canFireWhileRunning) then
6229
			tweenJoint(LWeld, armC0[1], S.runningC1.leftArm, Sine, 0.4)
6230
			tweenJoint(RWeld, armC0[2], S.runningC1.rightArm, Sine, 0.4)
6231
			tweenJoint(Grip, nil, S.runningC1.Grip, Sine, 0.4)
6232
		else
6233
			tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
6234
			tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
6235
			tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
6236
		end
6237
	end
6238
	
6239
	for _, v in pairs(magTable) do --In case the reload animations was stopped mid way and there were still fake mags that weren't deleted
6240
		v[1]:Destroy()
6241
	end
6242
end
6243
6244
function Reload()
6245
	if Ammo.Value < (ClipSize.Value + 1) and (not Reloading) and StoredAmmo.Value > 0 then
6246
		Firing = false
6247
		ammoInClip = (ammoInClip == 0 and Ammo.Value or ammoInClip)
6248
		Reloading = true
6249
		lowerSpread()
6250
		if Aimed then unAimGun(S.reloadSettings.Anim) end
6251
		crossHair.Reload.Visible = true
6252
		if Handle:FindFirstChild("ReloadSound") then Handle.ReloadSound:Play() end
6253
		if S.reloadSettings.Anim then
6254
			wait()
6255
			animateReload()
6256
		else
6257
			local startReload = tick()
6258
			local initialReloadTime = Ammo.Value == 0 and S.reloadSettings.Times.Empty or S.reloadSettings.Times.Loaded
6259
			while true do
6260
				if breakReload then break end
6261
				if (tick() - startReload) >= initialReloadTime then break end
6262
				RS.RenderStepped:wait()
6263
			end
6264
		end
6265
		if (not breakReload) then
6266
			newMag = false
6267
			if StoredAmmo.Value >= ClipSize.Value then
6268
				if ammoInClip > 0 then
6269
					StoredAmmo.Value = StoredAmmo.Value - ((ClipSize.Value + 1) - ammoInClip)
6270
					Ammo.Value = ClipSize.Value + 1
6271
				else
6272
					StoredAmmo.Value = StoredAmmo.Value - ClipSize.Value
6273
					Ammo.Value = ClipSize.Value
6274
				end
6275
			elseif StoredAmmo.Value < ClipSize.Value and StoredAmmo.Value > 0 then
6276
				Ammo.Value = StoredAmmo.Value
6277
				StoredAmmo.Value = 0
6278
			end
6279
		end
6280
		Reloading = false
6281
		if Selected then
6282
			ammoInClip = (breakReload and ammoInClip or 0)
6283
			crossHair.Reload.Visible = false
6284
		end
6285
		breakReload = false
6286
	end
6287
	
6288
	updateClipAmmo()
6289
	updateStoredAmmo()
6290
end
6291
6292
--------------------[ EXTERNAL DATA LOCATING FUNCTIONS ]-----------------------------
6293
6294
function removeElement(Table, Element) --removes the first instance of Element from Table
6295
	for i, v in pairs(Table) do
6296
		if v == Element then
6297
			table.remove(Table, i)
6298
			break
6299
		end
6300
	end
6301
	return Table
6302
end
6303
6304
function findFirstClass(Object, Class)
6305
	local foundObject = nil
6306
	for _, Obj in pairs(Object:GetChildren()) do
6307
		if Obj.ClassName == Class then
6308
			foundObject = Obj
6309
			break
6310
		end
6311
	end
6312
	return foundObject
6313
end
6314
6315
function isIgnored(Obj, Table)
6316
	for _,v in pairs(Table) do
6317
		if Obj == v or Obj:IsDescendantOf(v) then
6318
			return true
6319
		end
6320
	end
6321
	return false
6322
end
6323
6324
function GetHitSurfaceCFrame(HitPos,Obj)
6325
	local SurfaceCF = {
6326
		{"Back",Obj.CFrame * CF(0,0,Obj.Size.z)};
6327
		{"Bottom",Obj.CFrame * CF(0,-Obj.Size.y,0)};
6328
		{"Front",Obj.CFrame * CF(0,0,-Obj.Size.z)};
6329
		{"Left",Obj.CFrame * CF(-Obj.Size.x,0,0)};
6330
		{"Right",Obj.CFrame * CF(Obj.Size.x,0,0)};
6331
		{"Top",Obj.CFrame * CF(0,Obj.Size.y,0)}
6332
	}
6333
	local ClosestDist = HUGE
6334
	local ClosestSurface = nil
6335
	for _,v in pairs(SurfaceCF) do
6336
		local SurfaceDist = (HitPos - v[2].p).magnitude
6337
		if SurfaceDist < ClosestDist then
6338
			ClosestDist = SurfaceDist
6339
			ClosestSurface = v
6340
		end
6341
	end
6342
	return ClosestSurface[2]
6343
end
6344
6345
function AdvRayCast(Origin, Direction, Dist, CustomIgnore)
6346
	local NewIgnore = (CustomIgnore and CustomIgnore or Ignore)
6347
	local NewRay = Ray.new(Origin, Direction * (Dist > 999 and 999 or Dist))
6348
	local HitObj, HitPos = game.Workspace:FindPartOnRayWithIgnoreList(NewRay, NewIgnore)
6349
	local LastPos = HitPos
6350
	local FinalHitObj, FinalHitPos = nil, nil
6351
	local RepTimes = math.floor(Dist / 999)
6352
	if (not HitObj) and (Dist > 999) then
6353
		for i = 0, RepTimes do
6354
			local NewDist = (i == RepTimes and  (Dist - (LastPos - Origin).magnitude) or 999)
6355
			local Ray2 = Ray.new(LastPos, Direction * NewDist)
6356
			local HitObj2, HitPos2 = game.Workspace:FindPartOnRayWithIgnoreList(Ray2, NewIgnore)
6357
			if i ~= RepTimes then
6358
				if HitObj2 then
6359
					FinalHitObj, FinalHitPos = HitObj2, HitPos2
6360
					break
6361
				end
6362
			elseif i == RepTimes then
6363
				FinalHitObj, FinalHitPos = HitObj2, HitPos2
6364
			end
6365
			LastPos = HitPos2
6366
		end
6367
		return FinalHitObj, FinalHitPos
6368
	elseif HitObj or (Dist <= 999) then
6369
		return HitObj, HitPos
6370
	end
6371
end
6372
6373
--------------------[ JUMPING ANIMATION ]---------------------------------------------
6374
6375
function onFall(initialVelocity)
6376
	spawn(function()
6377
		local velocityAlpha = math.max(math.min(initialVelocity / Humanoid.JumpPower, 1), 0)
6378
		local startJumpPos = jumpAnim.Pos
6379
		local startJumpRot = jumpAnim.Rot
6380
		local endJumpPos = 0.04 * S.fallSettings.fallMultiplier * velocityAlpha
6381
		local endJumpRot = RAD(4) * S.fallSettings.fallMultiplier * velocityAlpha
6382
		local t0 = tick()
6383
		while true do
6384
			RS.Heartbeat:wait()
6385
			local Alpha = math.min((tick() - t0) / 0.15, 1) * 90
6386
			if onGround then break end
6387
			jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Sine(Alpha))
6388
			jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Sine(Alpha))
6389
			if Alpha == 90 then break end
6390
		end
6391
		startJumpPos = endJumpPos
6392
		startJumpRot = endJumpRot
6393
		endJumpPos = -0.08 * S.fallSettings.fallMultiplier
6394
		endJumpRot = -RAD(8) * S.fallSettings.fallMultiplier
6395
		local X = 1
6396
		while true do
6397
			local dt = RS.Heartbeat:wait()
6398
			X = X + (dt * 60) / X
6399
			local Alpha = (X - 1) / 15
6400
			if onGround then break end
6401
			jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Alpha)
6402
			jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Alpha)
6403
		end
6404
	end)
6405
end
6406
6407
function onLand(fallDist)
6408
	spawn(function()
6409
		local animAlpha = math.min(fallDist, S.fallSettings.maxDist) * (2 / 3)
6410
		local startJumpPos = jumpAnim.Pos
6411
		local startJumpRot = jumpAnim.Rot
6412
		local endJumpPos = animAlpha / 100 * S.fallSettings.landMultiplier * (runReady and 1 or 2)
6413
		local endJumpRot = RAD(animAlpha) * S.fallSettings.landMultiplier * (runReady and 1 or 2)
6414
		local t0 = tick()
6415
		while true do
6416
			RS.Heartbeat:wait()
6417
			local Alpha = math.min((tick() - t0) / 0.2, 1)
6418
			if (not onGround) then break end
6419
			jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Alpha)
6420
			jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Alpha)
6421
			if Alpha == 1 then break end
6422
		end
6423
		t0 = tick()
6424
		while true do
6425
			RS.Heartbeat:wait()
6426
			local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
6427
			if (not onGround) then break end
6428
			jumpAnim.Pos = numLerp(endJumpPos, 0, Sine(Alpha))
6429
			jumpAnim.Rot = numLerp(endJumpRot, 0, Sine(Alpha))
6430
			if Alpha == 90 then break end
6431
		end
6432
	end)
6433
end
6434
6435
function onHumanoidStateChanged(oldState, newState)
6436
	if newState == Enum.HumanoidStateType.Freefall then
6437
		onGround = false
6438
		if S.fallAnimation then
6439
			onFall(HRP.Velocity.Y)
6440
			while HRP.Velocity.Y > 0 do RS.RenderStepped:wait() end
6441
			startFallHeight = HRP.Position.Y
6442
		end
6443
	elseif oldState == Enum.HumanoidStateType.Freefall then
6444
		onGround = true
6445
		if S.fallAnimation then
6446
			local fallDist = startFallHeight - HRP.Position.Y
6447
			onLand(fallDist)
6448
		end
6449
	end
6450
end
6451
--------------------[ CAMERA STEADYING FUNCTIONS ]------------------------------------
6452
6453
function steadyCamera()
6454
	scopeSteady.Text = "Steadying..."
6455
	scopeSteady.TextColor3 = Color3.new(1, 1, 0)
6456
	camSteady = true
6457
	local originalSway = camSway
6458
	local Increment = 1.5 / 0.6
6459
	local X = 0
6460
	while true do
6461
		RS.RenderStepped:wait()
6462
		local newX = X + Increment
6463
		X = (newX > 90 and 90 or newX)
6464
		if (not steadyKeyPressed) then break end
6465
		camSway = numLerp(originalSway, 0, Sine(X))
6466
		if X == 90 then break end
6467
	end
6468
	while steadyKeyPressed and Aimed do
6469
		if currentSteadyTime > 0 then
6470
			local NewSteadyTime = currentSteadyTime - 1
6471
			currentSteadyTime = (NewSteadyTime < 0 and 0 or NewSteadyTime)
6472
			camSway = 0
6473
		elseif currentSteadyTime == 0 then
6474
			break
6475
		end
6476
		RS.RenderStepped:wait()
6477
	end
6478
	camSteady = false
6479
	spawn(function()
6480
		local Increment = 1.5 / 0.25
6481
		local X = 0
6482
		while true do
6483
			RS.RenderStepped:wait()
6484
			local newX = X + Increment
6485
			X = (newX > 90 and 90 or newX)
6486
			if camSteady then break end
6487
			camSway = numLerp(0, S.scopeSettings.camSwayOnBreath, 1 - COS(RAD(X)))
6488
			if X == 90 then break end
6489
		end
6490
		Increment = 1.5 / S.scopeSettings.breathTime
6491
		X = 0
6492
		while true do
6493
			RS.RenderStepped:wait()
6494
			local newX = X + Increment
6495
			X = (newX > 90 and 90 or newX)
6496
			if camSteady then break end
6497
			camSway = numLerp(S.scopeSettings.camSwayOnBreath, 1, Sine(X))
6498
			if X == 90 then break end
6499
		end
6500
		--[[for X = 0, 90, 1.5 / 0.2 do
6501
			local Alpha = 1 - COS(RAD(X))--math.log10(X) / math.log10(90)
6502
			camSway = numLerp(0, 3, Alpha)
6503
			RS.RenderStepped:wait()
6504
		end]]
6505
		--[[for X = 0, 90, 1.5 / S.scopeSettings.steadyTime do
6506
			if camSteady then break end
6507
			local Alpha = SIN(RAD(X))
6508
			camSway = numLerp(3, 1, Alpha)
6509
			RS.RenderStepped:wait()
6510
		end]]
6511
	end)
6512
	retakeBreath()
6513
end
6514
6515
function retakeBreath()
6516
	scopeSteady.Text = "Re-taking Breath"
6517
	scopeSteady.TextColor3 = Color3.new(1, 0, 0)
6518
	takingBreath = true
6519
	local Increment = S.scopeSettings.steadyTime / S.scopeSettings.breathTime
6520
	while takingBreath do
6521
		if currentSteadyTime < maxSteadyTime then
6522
			local newSteadyTime = currentSteadyTime + Increment
6523
			currentSteadyTime = (newSteadyTime > maxSteadyTime and maxSteadyTime or newSteadyTime)
6524
		elseif currentSteadyTime >= maxSteadyTime then
6525
			break
6526
		end
6527
		RS.RenderStepped:wait()
6528
	end
6529
	if takingBreath then
6530
		scopeSteady.Text = "Hold "..convertKey(S.Keys.scopeSteady).." to Steady"
6531
		scopeSteady.TextColor3 = Color3.new(1, 1, 0)
6532
		takingBreath = false
6533
	end
6534
end
6535
6536
--------------------[ SPRINTING FUNCTIONS ]-------------------------------------------
6537
6538
function canRun(midRun)
6539
	return ((Forward and (not Backward)) and
6540
		Walking and (Stamina > 0) and Running and
6541
		Selected and (midRun and true or onGround) and
6542
		runReady and (S.canFireWhileRunning and true or (not Firing))
6543
	)
6544
end
6545
6546
function monitorStamina()
6547
	Running = true
6548
	if (not canRun(false)) then
6549
		Running = false
6550
		return
6551
	end
6552
	if Aimed then unAimGun(true) end
6553
	if Stance == 1 or Stance == 2 then Stand() end
6554
	if (not (Reloading and S.reloadSettings.Anim)) then
6555
		if S.canFireWhileRunning then
6556
			tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
6557
			tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
6558
			tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
6559
		else
6560
			tweenJoint(LWeld, armC0[1], S.runningC1.leftArm, Sine, 0.4)
6561
			tweenJoint(RWeld, armC0[2], S.runningC1.rightArm, Sine, 0.4)
6562
			tweenJoint(Grip, nil, S.runningC1.Grip, Sine, 0.4)
6563
		end
6564
	end
6565
	crossOffset = 50
6566
	while runKeyPressed do
6567
		if canRun(true) then
6568
			if onGround then
6569
				local newStamina = Stamina - 1
6570
				Stamina = (newStamina < 0 and 0 or newStamina)
6571
			end
6572
		else
6573
			break
6574
		end
6575
		RS.RenderStepped:wait()
6576
	end
6577
	Running = false
6578
	if (not Aimed) and (not (Reloading and S.reloadSettings.Anim)) and (not S.canFireWhileRunning) then
6579
		crossOffset = 0
6580
		tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
6581
		tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
6582
		tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
6583
	end
6584
	
6585
	rechargeStamina()
6586
end
6587
6588
function rechargeStamina()
6589
	chargingStamina = true
6590
	while ((not runKeyPressed) or (Stamina < maxStamina)) and (not Running) do
6591
		if Stamina < maxStamina then
6592
			local newStamina = Stamina + (S.sprintTime / S.staminaCoolTime)
6593
			Stamina = (newStamina > maxStamina and maxStamina or newStamina)
6594
		elseif Stamina >= maxStamina then
6595
			break
6596
		end
6597
		RS.RenderStepped:wait()
6598
	end
6599
	chargingStamina = false
6600
end
6601
6602
--------------------[ STANCE FUNCTIONS ]----------------------------------------------
6603
6604
function Stand(onDeselected)
6605
	local LHip = Torso["Left Hip"]
6606
	local RHip = Torso["Right Hip"]
6607
	LLegWeld.Part1 = nil
6608
	LHip.Part1 = LLeg
6609
	RLegWeld.Part1 = nil
6610
	RHip.Part1 = RLeg
6611
	Stance = 0
6612
	spreadStance = "Stand"
6613
	baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
6614
	if S.stanceSettings.Anim and (not onDeselected) then
6615
		spawn(function()
6616
			local prevStanceSway = stanceSway
6617
			local X = 0
6618
			local Increment = 1.5 / S.stanceSettings.Speed
6619
			while true do
6620
				RS.RenderStepped:wait()
6621
				local newX = X + Increment
6622
				X = (newX > 90 and 90 or newX)
6623
				if Stance ~= 0 then break end
6624
				stanceSway = numLerp(prevStanceSway, 1, Sine(X))
6625
				if X == 90 then break end
6626
			end
6627
		end)
6628
		tweenJoint(ABWeld, CF(), nil, Sine, S.stanceSettings.Speed)
6629
		tweenJoint(LLegWeld, legC0.Stand[1], nil, Sine, S.stanceSettings.Speed)
6630
		tweenJoint(RLegWeld, legC0.Stand[2], nil, Sine, S.stanceSettings.Speed)
6631
		tweenJoint(LHip, CF(-1, -1, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 1, 0) * CFANG(0, RAD(-90), 0), Sine, S.stanceSettings.Speed)
6632
		tweenJoint(RHip, CF(1, -1, 0) * CFANG(RAD(-180), RAD(90), 0), CF(0.5, 1, 0) * CFANG(RAD(-180), RAD(90), 0), Sine, S.stanceSettings.Speed)
6633
		tweenJoint(Root, CFANG(RAD(-90), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
6634
		tweenJoint(headWeld, CF(0, 1.5, 0), nil, Sine, S.stanceSettings.Speed)
6635
	elseif onDeselected or (not S.stanceSettings.Anim) then
6636
		ABWeld.C0 = CF()
6637
		LLegWeld.C0 = legC0.Stand[1]
6638
		RLegWeld.C0 = legC0.Stand[2]
6639
		LHip.C0, LHip.C1 = CF(-1, -1, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 1, 0) * CFANG(0, RAD(-90), 0)
6640
		RHip.C0, RHip.C1 = CF(1, -1, 0) * CFANG(RAD(-180), RAD(90), 0), CF(0.5, 1, 0) * CFANG(RAD(-180), RAD(90), 0)
6641
		Root.C0 = CFANG(RAD(-90), 0, RAD(180))
6642
		headWeld.C0 = CF(0, 1.5, 0)
6643
	end
6644
end
6645
6646
function Crouch()
6647
	local LHip = Torso["Left Hip"]
6648
	local RHip = Torso["Right Hip"]
6649
	LHip.Part1 = nil
6650
	LLegWeld.Part1 = LLeg
6651
	RHip.Part1 = nil
6652
	RLegWeld.Part1 = RLeg
6653
	Stance = 1
6654
	spreadStance = "Crouch"
6655
	baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
6656
	if S.stanceSettings.Anim then
6657
		spawn(function()
6658
			local prevStanceSway = stanceSway
6659
			local X = 0
6660
			local Increment = 1.5 / S.stanceSettings.Speed
6661
			while true do
6662
				RS.RenderStepped:wait()
6663
				local newX = X + Increment
6664
				X = (newX > 90 and 90 or newX)
6665
				if Stance ~= 1 then break end
6666
				stanceSway = numLerp(prevStanceSway, 0.75, Sine(X))
6667
				if X == 90 then break end
6668
			end
6669
		end)
6670
		tweenJoint(ABWeld, CF(0, 0, -0.05), nil, Sine, S.stanceSettings.Speed)
6671
		tweenJoint(LLegWeld, legC0.Crouch[1], nil, Sine, S.stanceSettings.Speed)
6672
		tweenJoint(RLegWeld, legC0.Crouch[2], nil, Sine, S.stanceSettings.Speed)
6673
		tweenJoint(LHip, CF(-1, -0.5, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 0.5, 1) * CFANG(0, RAD(-90), RAD(-90)), Sine, S.stanceSettings.Speed)
6674
		tweenJoint(RHip, CF(1, -0.5, 0.25) * CFANG(RAD(-180), RAD(90), 0), CF(0.5, 0.5, 1) * CFANG(RAD(-180), RAD(90), 0), Sine, S.stanceSettings.Speed)
6675
		tweenJoint(Root, CF(0, -1, 0) * CFANG(RAD(-90), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
6676
		tweenJoint(headWeld, CF(0, 1.5, 0), nil, Sine, S.stanceSettings.Speed)
6677
	else
6678
		ABWeld.C0 = CF(0, 0, -1 / 16)
6679
		LLegWeld.C0 = legC0.Crouch[1]
6680
		RLegWeld.C0 = legC0.Crouch[2]
6681
		LHip.C0, LHip.C1 = CF(-1, -0.5, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 0.5, 1) * CFANG(0, RAD(-90), RAD(-90))
6682
		RHip.C0, RHip.C1 = CF(1, -0.5, 0.25) * CFANG(RAD(-180), RAD(90), 0), CF(0.5, 0.5, 1) * CFANG(RAD(-180), RAD(90), 0)
6683
		Root.C0 = CF(0, -1, 0) * CFANG(RAD(-90), 0, RAD(180))
6684
		headWeld.C0 = CF(0, 1.5, 0)
6685
	end
6686
end
6687
6688
function Prone()
6689
	local LHip = Torso["Left Hip"]
6690
	local RHip = Torso["Right Hip"]
6691
	LHip.Part1 = nil
6692
	LLegWeld.Part1 = LLeg
6693
	RHip.Part1 = nil
6694
	RLegWeld.Part1 = RLeg
6695
	Stance = 2
6696
	spreadStance = "Prone"
6697
	baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
6698
	if S.stanceSettings.Anim then
6699
		spawn(function()
6700
			local prevStanceSway = stanceSway
6701
			local X = 0
6702
			local Increment = 1.5 / S.stanceSettings.Speed
6703
			while true do
6704
				RS.RenderStepped:wait()
6705
				local newX = X + Increment
6706
				X = (newX > 90 and 90 or newX)
6707
				if Stance ~= 2 then break end
6708
				stanceSway = numLerp(prevStanceSway, 0.5, Sine(X))
6709
				if X == 90 then break end
6710
			end
6711
		end)
6712
		tweenJoint(ABWeld, CF(0, 0, -0.1), nil, Sine, S.stanceSettings.Speed)
6713
		tweenJoint(LLegWeld, legC0.Prone[1], nil, Sine, S.stanceSettings.Speed)
6714
		tweenJoint(RLegWeld, legC0.Prone[2], nil, Sine, S.stanceSettings.Speed)
6715
		tweenJoint(Root, CF(0, -2.5, 1) * CFANG(RAD(180), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
6716
		tweenJoint(headWeld, CF(0, 1, 1) * CFANG(RAD(90), 0, 0), nil, Sine, S.stanceSettings.Speed)
6717
	else
6718
		ABWeld.C0 = CF(0, 0, -1 / 8)
6719
		LLegWeld.C0 = legC0.Prone[1]
6720
		RLegWeld.C0 = legC0.Prone[2]
6721
		Root.C0 = CF(0, -2.5, 1) * CFANG(RAD(180), 0, RAD(180))
6722
		headWeld.C0 = CF(0, 1, 1) * CFANG(RAD(90), 0, 0)
6723
	end
6724
end
6725
6726
function Dive()
6727
	onGround = false
6728
	local diveDirection = (HRP.CFrame * CFANG(S.diveSettings.Angle, 0, 0)).lookVector * S.walkSpeeds.Sprinting * S.diveSettings.Force
6729
	local BF = Instance.new("BodyForce")
6730
	BF.force = diveDirection + Vector3.new(0, playerMass * 196.2, 0)
6731
	BF.Parent = HRP
6732
	--[[spawn(function()
6733
		HRP.Velocity = HRP.CFrame.lookVector * 60 + V3(0, 40, 0)
6734
		wait(0.1)
6735
		HRP.Velocity = HRP.CFrame.lookVector * 70 + V3(0, 30, 0)
6736
		wait(0.4)
6737
		HRP.Velocity = HRP.CFrame.lookVector * 30 + V3(0, -10, 0)
6738
	end)]]
6739
	delay(0.05, function()
6740
		spawn(function()
6741
			while true do
6742
				local newRay = Ray.new(HRP.Position, V3(0, -3.1, 0))
6743
				local H, _ = workspace:FindPartOnRayWithIgnoreList(newRay, Ignore)
6744
				if H then
6745
					onGround = true
6746
					break
6747
				end
6748
				wait()
6749
			end
6750
		end)
6751
		Prone()
6752
		wait(0.1)
6753
		BF:Destroy()
6754
	end)
6755
end
6756
6757
--------------------[ MOUSE FUNCTIONS ]-----------------------------------------------
6758
6759
function onMB1Down()
6760
	MB1Down = true
6761
	firstShot = true
6762
	if fireFunction then
6763
		fireFunction()
6764
	end
6765
end
6766
6767
function onMB1Up()
6768
	MB1Down = false
6769
	lowerSpread()
6770
end
6771
6772
function onMB2Down()
6773
	if S.aimSettings.holdToADS then
6774
		if (not AimingIn) and (not Aimed) then
6775
			AimingIn = true
6776
			aimGun()
6777
			AimingIn = false
6778
		end
6779
	else
6780
		if Aimed then
6781
			unAimGun()
6782
		else
6783
			aimGun()
6784
		end
6785
	end
6786
end
6787
6788
function onMB2Up()
6789
	if S.aimSettings.holdToADS then
6790
		if (not AimingOut) and Aimed then
6791
			AimingOut = true
6792
			unAimGun()
6793
			AimingOut = false
6794
		end
6795
	end
6796
end
6797
6798
function onScrollUp()
6799
	local newAimSensitivity = aimSensitivity + S.sensitivitySettings.Increment
6800
	aimSensitivity = (
6801
		newAimSensitivity < S.sensitivitySettings.Min and S.sensitivitySettings.Min or
6802
		newAimSensitivity > S.sensitivitySettings.Max and S.sensitivitySettings.Max or
6803
		newAimSensitivity
6804
	)
6805
	mouseSensitivity = (Aimed and aimSensitivity or mouseSensitivity)
6806
	
6807
	Sens.Text = "S: "..aimSensitivity
6808
	if mainGUI:IsDescendantOf(game) then
6809
		Sens.Visible = true
6810
		local t0 = tick()
6811
		lastSensUpdate = t0
6812
		
6813
		wait(0.3)
6814
		
6815
		if lastSensUpdate <= t0 then
6816
			Sens.Visible = false
6817
		end
6818
	end
6819
end
6820
6821
function onScrollDown()
6822
	local newAimSensitivity = aimSensitivity - S.sensitivitySettings.Increment
6823
	aimSensitivity = (
6824
		newAimSensitivity < S.sensitivitySettings.Min and S.sensitivitySettings.Min or
6825
		newAimSensitivity > S.sensitivitySettings.Max and S.sensitivitySettings.Max or
6826
		newAimSensitivity
6827
	)
6828
	mouseSensitivity = (Aimed and aimSensitivity or mouseSensitivity)
6829
	
6830
	Sens.Text = "S: "..aimSensitivity
6831
	if mainGUI:IsDescendantOf(game) then
6832
		Sens.Visible = true
6833
		local t0 = tick()
6834
		lastSensUpdate = t0
6835
		
6836
		wait(0.3)
6837
		
6838
		if lastSensUpdate <= t0 then
6839
			Sens.Visible = false
6840
		end
6841
	end
6842
end
6843
6844
--------------------[ KEYBOARD FUNCTIONS ]--------------------------------------------
6845
6846
function keyDown(K)
6847
	local Key = string.lower(K)
6848
	
6849
	if Key == S.Keys.lowerStance and S.canChangeStance then
6850
		if (not Running) then
6851
			if Stance == 0 then
6852
				if S.stanceSettings.Stances.Crouch then
6853
					Crouch()
6854
				elseif S.stanceSettings.Stances.Prone then
6855
					Prone()
6856
				end
6857
			elseif Stance == 1 then
6858
				if S.stanceSettings.Stances.Prone then
6859
					Prone()
6860
				end
6861
			end
6862
		elseif S.dolphinDive then
6863
			wait()
6864
			if Humanoid:GetState() ~= Enum.HumanoidStateType.Freefall and (not UIS:IsKeyDown("Space")) and runReady then
6865
				local tempConnection = Humanoid.Changed:connect(function()
6866
					Humanoid.Jump = false
6867
				end)
6868
				runReady = false
6869
				Dive()
6870
				Running = false
6871
				wait(S.diveSettings.rechargeTime)
6872
				tempConnection:disconnect()
6873
				runReady = true
6874
			end
6875
		end
6876
	end
6877
	
6878
	if Key == S.Keys.raiseStance and S.canChangeStance then
6879
		if (not Running) then
6880
			if Stance == 2 then
6881
				if S.stanceSettings.Stances.Crouch then
6882
					Crouch()
6883
				else
6884
					Stand()
6885
				end
6886
			elseif Stance == 1 then
6887
				Stand()
6888
			end
6889
		end
6890
	end
6891
	
6892
	if Key == S.Keys.ADS then
6893
		if S.aimSettings.holdToADS then
6894
			if (not AimingIn) and (not Aimed) then
6895
				AimingIn = true
6896
				aimGun()
6897
				AimingIn = false
6898
			end
6899
		else
6900
			if Aimed then
6901
				unAimGun()
6902
			else
6903
				aimGun()
6904
			end
6905
		end
6906
	end
6907
	
6908
	if Key == S.Keys.selectFire and S.selectFire then
6909
		if canSelectFire then
6910
			canSelectFire = false
6911
			rawFireMode = rawFireMode + 1
6912
			modeGUI.Text = Modes[((rawFireMode - 1) % numModes) + 1]
6913
			if modeGUI.Text == "AUTO" then
6914
				fireFunction = autoFire
6915
			elseif modeGUI.Text == "BURST" then
6916
				fireFunction = burstFire
6917
			elseif modeGUI.Text == "SEMI" then
6918
				fireFunction = semiFire
6919
			else
6920
				fireFunction = nil
6921
			end
6922
			local speedAlpha = S.selectFireSettings.animSpeed / 0.6
6923
			if S.selectFireSettings.GUI then
6924
				spawn(function()
6925
					fireSelect.Visible = true
6926
					local prevRawFireMode = rawFireMode
6927
					local Increment = 1.5 / (speedAlpha * 0.25)
6928
					local X = 0
6929
					wait(speedAlpha * 0.1)
6930
					while true do
6931
						RS.RenderStepped:wait()
6932
						local newX = X + Increment
6933
						X = (newX > 90 and 90 or newX)
6934
						if prevRawFireMode ~= rawFireMode then break end
6935
						updateModeLabels(rawFireMode - 1, rawFireMode, X)
6936
						if X == 90 then break end
6937
					end
6938
					wait(speedAlpha * 0.25)
6939
					fireSelect.Visible = false
6940
				end)
6941
			end
6942
			if S.selectFireSettings.Animation and (not Aimed) and (not isRunning) and (not isCrawling) then
6943
				spawn(function()
6944
					local sequenceTable = {
6945
						function()
6946
							tweenJoint(RWeld2, nil, CFANG(0, RAD(5), 0), Sine, speedAlpha * 0.15)
6947
							tweenJoint(LWeld, armC0[1], CF(0.1, 1, -0.3) * CFANG(RAD(-7), 0, RAD(-65)), Linear, speedAlpha * 0.15)
6948
							wait(speedAlpha * 0.2)
6949
						end;
6950
						
6951
						function()
6952
							tweenJoint(LWeld, armC0[1], CF(0.1, 1, -0.3) * CFANG(RAD(-10), 0, RAD(-65)), Linear, speedAlpha * 0.1)
6953
							wait(speedAlpha * 0.2)
6954
						end;
6955
						
6956
						function()
6957
							tweenJoint(RWeld2, nil, CF(), Sine, speedAlpha * 0.2)
6958
							tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, speedAlpha * 0.2)
6959
							wait(speedAlpha * 0.2)
6960
						end;
6961
					}
6962
					
6963
					for _, F in pairs(sequenceTable) do
6964
						if Aimed or isRunning or isCrawling or Reloading then
6965
							break
6966
						end
6967
						F()
6968
					end
6969
				end)
6970
			end
6971
			if S.selectFireSettings.Animation or S.selectFireSettings.GUI then
6972
				wait(S.selectFireSettings.animSpeed)
6973
			end
6974
			canSelectFire = true
6975
		end
6976
	end
6977
	
6978
	if Key == S.Keys.Reload then
6979
		if (not Reloading) and (not isCrawling) then
6980
			Reload()
6981
		end
6982
	end
6983
	
6984
	if Key == S.Keys.Sprint then
6985
		runKeyPressed = true
6986
		if runReady then
6987
			if (not Idling) and Walking and (not Running) and (not Knifing) and (not (Aimed and S.guiScope and S.Keys.Sprint == S.Keys.scopeSteady)) then
6988
				monitorStamina()
6989
			end
6990
		end
6991
	end
6992
	
6993
	if Key == S.Keys.scopeSteady then
6994
		steadyKeyPressed = true
6995
		if Aimed and (not Aiming) then
6996
			takingBreath = false
6997
			steadyCamera()
6998
		end
6999
	end
7000
	
7001
	for _, PTable in pairs(Plugins.KeyDown) do
7002
		if Key == string.lower(PTable.Key) then
7003
			spawn(function()
7004
				PTable.Plugin()
7005
			end)
7006
		end
7007
	end
7008
end
7009
7010
function keyUp(K)
7011
	local Key = string.lower(K)
7012
	
7013
	if Key == S.Keys.ADS then
7014
		if S.aimSettings.holdToADS then
7015
			if (not AimingOut) and Aimed then
7016
				AimingOut = true
7017
				unAimGun()
7018
				AimingOut = false
7019
			end
7020
		end
7021
	end
7022
	
7023
	if Key == S.Keys.Sprint then
7024
		runKeyPressed = false
7025
		Running = false
7026
		if (not chargingStamina) then
7027
			rechargeStamina()
7028
		end
7029
	end
7030
	
7031
	if Key == S.Keys.scopeSteady then
7032
		steadyKeyPressed = false
7033
	end
7034
	
7035
	for _, PTable in pairs(Plugins.KeyUp) do
7036
		if Key == string.lower(PTable.Key) then
7037
			spawn(function()
7038
				PTable.Plugin()
7039
			end)
7040
		end
7041
	end
7042
end
7043
7044
--------------------[ END FUNCTIONS ]-------------------------------------------------
7045
7046
--------------------------------------------------------------------------------------
7047
--------------------[ PRE-CONNECTIONS ]-----------------------------------------------
7048
--------------------------------------------------------------------------------------
7049
7050
local function updateAnimVars()
7051
	wait()
7052
	Forward = (UIS:IsKeyDown("W") or UIS:IsKeyDown("Up"))
7053
	Backward = (UIS:IsKeyDown("S") or UIS:IsKeyDown("Down"))
7054
	local Right = UIS:IsKeyDown("D")
7055
	local Left = UIS:IsKeyDown("A")
7056
	
7057
	local walkingForward = (Forward and (not Backward))
7058
	local walkingBackward = ((not Forward) and Backward)
7059
	local walkingRight = (Right and (not Left))
7060
	local walkingLeft = ((not Right) and Left)
7061
	
7062
	if (Forward or Backward or Right or Left) then
7063
		Walking, Idling = true, false
7064
		if (not Running) and (not Aimed) then
7065
			spreadMotion = "Moving"
7066
			baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
7067
		end
7068
	elseif (not (Forward and Backward and Right and Left)) then
7069
		Walking, Idling = false, true
7070
		if (not Aimed) then
7071
			spreadMotion = "Idling"
7072
			baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
7073
		end
7074
	end
7075
	
7076
	local newArmTilt = (
7077
		((walkingForward or walkingBackward) and walkingRight) and 2.5 or
7078
		((walkingForward or walkingBackward) and walkingLeft) and -2.5 or
7079
		((not (walkingForward and walkingBackward)) and walkingRight) and 5 or
7080
		((not (walkingForward and walkingBackward)) and walkingLeft) and -5 or 0
7081
	)
7082
	local newMoveAng = (
7083
		(walkingForward and (not (walkingRight or walkingLeft))) and 0 or
7084
		(walkingForward and walkingRight) and RAD(-45) or
7085
		((not (walkingForward or walkingBackward)) and walkingRight) and RAD(-90) or
7086
		(walkingBackward and walkingRight) and RAD(-135) or
7087
		(walkingBackward and (not (walkingRight or walkingLeft))) and (moveAng < 0 and RAD(-180) or RAD(180)) or
7088
		(walkingBackward and walkingLeft) and RAD(135) or
7089
		((not (walkingForward or walkingBackward)) and walkingLeft) and RAD(90) or
7090
		(walkingForward and walkingLeft) and RAD(45) or 0
7091
	)
7092
	
7093
	local newAnimCode = math.random(-1e9, 1e9)
7094
	animCode = newAnimCode
7095
	local startTilt = armTilt
7096
	local startAng = (ABS(moveAng) == RAD(180)) and (newMoveAng > 0 and RAD(180) or RAD(-180)) or moveAng
7097
	local Increment = (startTilt == newArmTilt and 1.5 / 0.7 or 1.5 / (0.35 * ABS(startTilt - newArmTilt) / 5))
7098
	local X = 0
7099
	while true do
7100
		RS.RenderStepped:wait()
7101
		local newX = X + Increment
7102
		X = (newX > 90 and 90 or newX)
7103
		if animCode ~= newAnimCode then break end
7104
		armTilt = numLerp(startTilt, newArmTilt, Sine(X))
7105
		moveAng = numLerp(startAng, newMoveAng, Sine(X))
7106
		if X == 90 then break end
7107
	end
7108
end
7109
7110
M2.KeyDown:connect(updateAnimVars)
7111
M2.KeyUp:connect(updateAnimVars)
7112
updateAnimVars()
7113
7114
--------------------------------------------------------------------------------------
7115
--------------------[ TOOL SELECTION AND DESELECTION ]--------------------------------
7116
--------------------------------------------------------------------------------------
7117
7118
function onEquipped()
7119
	wait()
7120
	if Humanoid.Health ~= 0 and (not Selected) and Gun.Parent == Char then
7121
		Selected = true
7122
		breakReload = false
7123
		equipAnimPlaying = true
7124
		
7125
		math.randomseed(tick()) --This sets a new seed for the random function each time you select the gun
7126
		
7127
		--------------------[ FAILSAFE RESETING ]-------------------------------------
7128
		
7129
		for _, GM in pairs(ignoreModel:GetChildren()) do
7130
			if GM.Name == "gunIgnore_"..Player.Name then
7131
				GM:Destroy()
7132
			end
7133
		end
7134
		
7135
		for _, c in pairs(Connections) do
7136
			c:disconnect()
7137
		end
7138
		
7139
		Connections = {}
7140
		
7141
		--------------------[ REMOTE GUN SETUP ]--------------------------------------
7142
		
7143
		--[[local Vars = {
7144
			ignoreModel = ignoreModel;
7145
			Humanoid = Humanoid;
7146
			Shoulders = Shoulders;
7147
			Torso = Torso;
7148
			Head = Head;
7149
			armC0 = armC0;
7150
			leftArmC1 = S.equipSettings.leftArmC1;
7151
			rightArmC1 = S.equipSettings.rightArmC1;
7152
			LArm = LArm;
7153
			RArm = RArm;
7154
			gunParts = gunParts;
7155
			Handle = Handle;
7156
		}
7157
		gunIgnore, playerFolder, headWeld, headWeld2, animWeld, ABWeld, LWeld, RWeld, LWeld2, RWeld2, LLegWeld, RLegWeld, gunParts2 = gunSetup:InvokeServer(Vars)]]
7158
		
7159
		--------------------[ CREATING IGNORE MODELS ]--------------------------------
7160
		
7161
		gunIgnore = Instance.new("Model")
7162
		gunIgnore.Name = "gunIgnore_"..Player.Name
7163
		gunIgnore.Parent = ignoreModel
7164
		
7165
		--------------------[ MODIFYING THE PLAYER ]----------------------------------
7166
		
7167
		Player.CameraMode = Enum.CameraMode.LockFirstPerson
7168
		Cam.CameraType = Enum.CameraType.Scriptable
7169
		Cam.FieldOfView = 80
7170
		UIS.MouseBehavior = Enum.MouseBehavior.LockCenter
7171
		UIS.MouseIconEnabled = false
7172
		
7173
		local initialX, initialY = getYawPitch(Cam.CoordinateFrame)
7174
		camAng = -VEC2(initialX, initialY)
7175
		
7176
		mainGUI.Parent = Player.PlayerGui
7177
		
7178
		setUpGUI()
7179
		updateHealth()
7180
		
7181
		if S.selectFire then
7182
			local currentMode = Modes[((rawFireMode - 1) % numModes) + 1]
7183
			if currentMode == "AUTO" then
7184
				fireFunction = autoFire
7185
			elseif currentMode == "BURST" then
7186
				fireFunction = burstFire
7187
			elseif currentMode == "SEMI" then
7188
				fireFunction = semiFire
7189
			else
7190
				fireFunction = nil
7191
			end
7192
		else
7193
			if S.gunType.Semi then
7194
				fireFunction = semiFire
7195
			elseif S.gunType.Auto then
7196
				fireFunction = autoFire
7197
			elseif S.gunType.Burst then
7198
				fireFunction = burstFire
7199
			else
7200
				fireFunction = nil
7201
			end
7202
		end
7203
		
7204
		changePlayerTrans(Char, 1)
7205
		
7206
		Humanoid.AutoRotate = false
7207
		
7208
		Shoulders.Right.Part1 = nil
7209
		Shoulders.Left.Part1 = nil
7210
7211
		playerFolder = Instance.new("Model")
7212
		playerFolder.Name = "playerFolder"
7213
		playerFolder.Parent = gunIgnore
7214
		
7215
		local headBase = Instance.new("Part")
7216
		headBase.Transparency = 1
7217
		headBase.Name = "headBase"
7218
		headBase.CanCollide = false
7219
		headBase.FormFactor = Enum.FormFactor.Custom
7220
		headBase.Size = V3(0.2, 0.2, 0.2)
7221
		headBase.BottomSurface = Enum.SurfaceType.Smooth
7222
		headBase.TopSurface = Enum.SurfaceType.Smooth
7223
		headBase.Parent = playerFolder
7224
		
7225
		headWeld = Instance.new("Weld")
7226
		headWeld.Part0 = Torso
7227
		headWeld.Part1 = headBase
7228
		headWeld.C0 = CF(0, 1.5, 0)
7229
		headWeld.Parent = Torso
7230
		
7231
		headWeld2 = Instance.new("Weld")
7232
		headWeld2.Part0 = headBase
7233
		headWeld2.Part1 = Head
7234
		headWeld2.Parent = headBase
7235
		
7236
		neckClone = Neck:Clone()
7237
		
7238
		--[[local stanceBase = Instance.new("Part")
7239
		stanceBase.Transparency = 1
7240
		stanceBase.Name = "stanceBase"
7241
		stanceBase.CanCollide = false
7242
		stanceBase.FormFactor = Enum.FormFactor.Custom
7243
		stanceBase.Size = V3(0.2, 0.2, 0.2)
7244
		stanceBase.BottomSurface = Enum.SurfaceType.Smooth
7245
		stanceBase.TopSurface = Enum.SurfaceType.Smooth
7246
		stanceBase.Parent = playerFolder
7247
		
7248
		stanceWeld = Instance.new("Weld")
7249
		stanceWeld.Part0 = stanceBase
7250
		stanceWeld.Part1 = Torso
7251
		stanceWeld.Parent = stanceBase]]
7252
		
7253
		local animBase = Instance.new("Part")
7254
		animBase.Transparency = 1
7255
		animBase.Name = "animBase"
7256
		animBase.CanCollide = false
7257
		animBase.FormFactor = Enum.FormFactor.Custom
7258
		animBase.Size = V3(0.2, 0.2, 0.2)
7259
		animBase.BottomSurface = Enum.SurfaceType.Smooth
7260
		animBase.TopSurface = Enum.SurfaceType.Smooth
7261
		animBase.Parent = playerFolder
7262
		
7263
		animWeld = Instance.new("Weld")
7264
		animWeld.Part0 = animBase
7265
		animWeld.Part1 = headBase
7266
		animWeld.Parent = animBase
7267
		
7268
		local ArmBase = Instance.new("Part")
7269
		ArmBase.Transparency = 1
7270
		ArmBase.Name = "ArmBase"
7271
		ArmBase.CanCollide = false
7272
		ArmBase.FormFactor = Enum.FormFactor.Custom
7273
		ArmBase.Size = V3(0.2, 0.2, 0.2)
7274
		ArmBase.BottomSurface = Enum.SurfaceType.Smooth
7275
		ArmBase.TopSurface = Enum.SurfaceType.Smooth
7276
		ArmBase.Parent = playerFolder
7277
		
7278
		ABWeld = Instance.new("Weld")
7279
		ABWeld.Part0 = ArmBase
7280
		ABWeld.Part1 = animBase
7281
		ABWeld.Parent = ArmBase
7282
		
7283
		local LArmBase = Instance.new("Part")
7284
		LArmBase.Transparency = 1
7285
		LArmBase.Name = "LArmBase"
7286
		LArmBase.CanCollide = false
7287
		LArmBase.FormFactor = Enum.FormFactor.Custom
7288
		LArmBase.Size = V3(0.2, 0.2, 0.2)
7289
		LArmBase.BottomSurface = Enum.SurfaceType.Smooth
7290
		LArmBase.TopSurface = Enum.SurfaceType.Smooth
7291
		LArmBase.Parent = playerFolder
7292
		
7293
		local RArmBase = Instance.new("Part")
7294
		RArmBase.Transparency = 1
7295
		RArmBase.Name = "RArmBase"
7296
		RArmBase.CanCollide = false
7297
		RArmBase.FormFactor = Enum.FormFactor.Custom
7298
		RArmBase.Size = V3(0.2, 0.2, 0.2)
7299
		RArmBase.BottomSurface = Enum.SurfaceType.Smooth
7300
		RArmBase.TopSurface = Enum.SurfaceType.Smooth
7301
		RArmBase.Parent = playerFolder
7302
		
7303
		LWeld = Instance.new("Weld")
7304
		LWeld.Name = "LWeld"
7305
		LWeld.Part0 = ArmBase
7306
		LWeld.Part1 = LArmBase
7307
		LWeld.C0 = armC0[1]
7308
		LWeld.C1 = S.equipSettings.leftArmC1
7309
		LWeld.Parent = ArmBase
7310
		
7311
		RWeld = Instance.new("Weld")
7312
		RWeld.Name = "RWeld"
7313
		RWeld.Part0 = ArmBase
7314
		RWeld.Part1 = RArmBase
7315
		RWeld.C0 = armC0[2]
7316
		RWeld.C1 = S.equipSettings.rightArmC1
7317
		RWeld.Parent = ArmBase
7318
		
7319
		LWeld2 = Instance.new("Weld")
7320
		LWeld2.Name = "LWeld"
7321
		LWeld2.Part0 = LArmBase
7322
		LWeld2.Part1 = LArm
7323
		LWeld2.Parent = LArmBase
7324
		
7325
		RWeld2 = Instance.new("Weld")
7326
		RWeld2.Name = "RWeld"
7327
		RWeld2.Part0 = RArmBase
7328
		RWeld2.Part1 = RArm
7329
		RWeld2.Parent = RArmBase
7330
		
7331
		LLegWeld = Instance.new("Weld")
7332
		LLegWeld.Name = "LLegWeld"
7333
		LLegWeld.Part0 = Torso
7334
		LLegWeld.Part1 = nil
7335
		LLegWeld.C0 = CF(-0.5, -2, 0)
7336
		LLegWeld.Parent = Torso
7337
		
7338
		RLegWeld = Instance.new("Weld")
7339
		RLegWeld.Name = "RLegWeld"
7340
		RLegWeld.Part0 = Torso
7341
		RLegWeld.Part1 = nil
7342
		RLegWeld.C0 = CF(0.5, -2, 0)
7343
		RLegWeld.Parent = Torso
7344
		
7345
		if S.playerArms then
7346
			armModel = Instance.new("Model", workspace.FilteringEnabled and playerFolder or Cam)
7347
			
7348
			fakeLArm = LArm:Clone()
7349
			fakeLArm.Parent = armModel
7350
			fakeLArm.Transparency = S.fakeArmSettings.Transparency
7351
			fakeLArm.CanCollide = false
7352
			fakeLArm.Size = S.fakeArmSettings.armSize
7353
			fakeLArm:BreakJoints()
7354
			
7355
			--LArm.Transparency = 1
7356
			
7357
			local fakeLWeld = Instance.new("Weld")
7358
			fakeLWeld.Part0 = fakeLArm
7359
			fakeLWeld.Part1 = LArm
7360
			fakeLWeld.Parent = fakeLArm
7361
			
7362
			fakeRArm = RArm:Clone()
7363
			fakeRArm.Parent = armModel
7364
			fakeRArm.Transparency = S.fakeArmSettings.Transparency
7365
			fakeRArm.CanCollide = false
7366
			fakeRArm.Size = S.fakeArmSettings.armSize
7367
			fakeRArm:BreakJoints()
7368
			
7369
			--RArm.Transparency = 1
7370
			
7371
			local fakeRWeld = Instance.new("Weld")
7372
			fakeRWeld.Part0 = fakeRArm
7373
			fakeRWeld.Part1 = RArm
7374
			fakeRWeld.Parent = fakeRArm
7375
			
7376
			Instance.new("Humanoid", armModel)
7377
			
7378
			if S.fakeArmSettings.characterMeshes then
7379
				for _,Obj in pairs(Char:GetChildren()) do
7380
					if Obj:IsA("CharacterMesh") then
7381
						Obj:Clone().Parent = armModel
7382
					end
7383
				end
7384
			end
7385
			for _,Obj in pairs(Char:GetChildren()) do
7386
				if Obj:IsA("Shirt") then
7387
					Obj:Clone().Parent = armModel
7388
				end
7389
			end
7390
		else
7391
			armTable = createArms()
7392
			if workspace.FilteringEnabled then
7393
				armTable[1].Model.Parent = playerFolder
7394
				armTable[2].Model.Parent = playerFolder
7395
			else
7396
				armTable[1].Model.Parent = Cam--playerFolder
7397
				armTable[2].Model.Parent = Cam--playerFolder
7398
			end
7399
			
7400
			fakeLArm = armTable[1].armPart
7401
			
7402
			--LArm.Transparency = 1
7403
			
7404
			local fakeLWeld = Instance.new("Weld")
7405
			fakeLWeld.Part0 = fakeLArm
7406
			fakeLWeld.Part1 = LArm
7407
			fakeLWeld.Parent = fakeLArm
7408
			
7409
			fakeRArm = armTable[2].armPart
7410
			
7411
			--RArm.Transparency = 1
7412
			
7413
			local fakeRWeld = Instance.new("Weld")
7414
			fakeRWeld.Part0 = fakeRArm
7415
			fakeRWeld.Part1 = RArm
7416
			fakeRWeld.Parent = fakeRArm
7417
		end
7418
		
7419
		--------------------[ MODIFYING THE GUN ]-------------------------------------
7420
		
7421
		for _, Tab in pairs(gunParts) do
7422
			local Weld = Instance.new("Weld")
7423
			Weld.Name = "MainWeld"
7424
			Weld.Part0 = Handle
7425
			Weld.Part1 = Tab.Obj
7426
			Weld.C0 = Tab.Obj.weldCF.Value
7427
			Weld.Parent = Handle
7428
			Tab.Weld = Weld
7429
		end
7430
		
7431
		Grip = RArm:WaitForChild("RightGrip")
7432
		
7433
		local handleCF = Torso.CFrame * CF(0, 0.5, 0) * armC0[2] * S.aimedC1.rightArm:inverse() * Grip.C0
7434
		local handleOffset = AimPart.CFrame:toObjectSpace(Handle.CFrame)
7435
		aimedGripCF = ((Torso.CFrame * CF(headOffset.X, headOffset.Y, 0)) * handleOffset):toObjectSpace(handleCF)
7436
		
7437
		Grip.C1 = S.equipSettings.GripC1
7438
		
7439
		--------------------[ RUNNING PLUGINS ]---------------------------------------
7440
		
7441
		for _, Plugin in pairs(Plugins.OnEquipped) do
7442
			spawn(function()
7443
				Plugin()
7444
			end)
7445
		end
7446
		
7447
		--------------------[ GETTING PLAYER MASS ]-----------------------------------
7448
		
7449
		local connectedParts = HRP:GetConnectedParts(true)
7450
		for _, v in pairs(connectedParts) do
7451
			if v:IsA("BasePart") then
7452
				playerMass = playerMass + v:GetMass()
7453
			end
7454
		end
7455
		
7456
		--------------------[ CONNECTIONS ]-------------------------------------------
7457
		
7458
		INSERT(Connections, Humanoid.Died:connect(function()
7459
			onUnequipped(true)
7460
		end))
7461
		
7462
		INSERT(Connections, Humanoid.Jumping:connect(function()
7463
			if Stance ~= 0 then
7464
				Stand()
7465
			end
7466
		end))
7467
		
7468
		INSERT(Connections, Humanoid.StateChanged:connect(onHumanoidStateChanged))
7469
		
7470
		INSERT(Connections, Humanoid.HealthChanged:connect(updateHealth))
7471
		
7472
		INSERT(Connections, M2.Button1Down:connect(onMB1Down))
7473
		
7474
		INSERT(Connections, M2.Button1Up:connect(onMB1Up))
7475
		
7476
		INSERT(Connections, M2.Button2Down:connect(onMB2Down))
7477
		
7478
		INSERT(Connections, M2.Button2Up:connect(onMB2Up))
7479
		
7480
		INSERT(Connections, M2.KeyDown:connect(keyDown))
7481
		
7482
		INSERT(Connections, M2.KeyUp:connect(keyUp))
7483
		
7484
		if S.sensitivitySettings.scrollToChange then
7485
			INSERT(Connections, M2.WheelForward:connect(onScrollUp))
7486
			INSERT(Connections, M2.WheelBackward:connect(onScrollDown))
7487
		end
7488
		
7489
		if S.AutoKnife then
7490
			INSERT(Connections, RS.Stepped:connect(function()
7491
				local H, P = AdvRayCast(Head.CFrame.p, Head.CFrame.lookVector, S.AutoKnifeDist, nil)
7492
				if H then
7493
					local HitHuman = findFirstClass(H.Parent, "Humanoid")
7494
					if HitHuman and isEnemy(HitHuman) and HitHuman.Health ~= 0 then
7495
						Knife()
7496
					end
7497
				end
7498
			end))
7499
		end
7500
		
7501
		INSERT(Connections, UIS.InputChanged:connect(function(inputObj)
7502
			if inputObj.UserInputType == Enum.UserInputType.MouseMovement then
7503
				local rawCamAng = camAng - (VEC2(RAD(inputObj.Delta.x), RAD(inputObj.Delta.y)) * mouseSensitivity * 0.25)
7504
				camAng = VEC2(rawCamAng.x, (rawCamAng.y > RAD(80) and RAD(80) or rawCamAng.y < RAD(-80) and RAD(-80) or rawCamAng.y))
7505
				
7506
				desiredXOffset = math.min(math.max(inputObj.Delta.x, -S.momentumSettings.maxInput), S.momentumSettings.maxInput)
7507
				desiredYOffset = math.min(math.max(inputObj.Delta.y, -S.momentumSettings.maxInput), S.momentumSettings.maxInput)
7508
			end
7509
		end))
7510
		
7511
		INSERT(Connections, M2.Idle:connect(function(inputObj)
7512
			desiredXOffset = 0
7513
			desiredYOffset = 0
7514
		end))
7515
		
7516
		INSERT(Connections, RS.Stepped:connect(function()
7517
			if tick() - lastBeat > (Humanoid.Health / 75) then
7518
				lastBeat = tick()
7519
				HUD.Health.Tray.Beat:TweenPosition(
7520
					UDim2.new(0, -21, 0, 0),
7521
					Enum.EasingDirection.Out,
7522
					Enum.EasingStyle.Linear,
7523
					0.7 - ((100 - Humanoid.Health) / 400),
7524
					false,
7525
					function()
7526
						HUD.Health.Tray.Beat.Position = UDim2.new(1, 0, 0, 0)
7527
					end
7528
				)
7529
			end
7530
		end))
7531
		
7532
		INSERT(Connections, RS.RenderStepped:connect(function()
7533
			--Main animation
7534
			local animC0, animC1 = getAnimCF()
7535
			animWeld.C0 = animC0
7536
			animWeld.C1 = animC1
7537
			
7538
			--Camera updating
7539
			renderCamera()
7540
		end))
7541
		
7542
		--------------------[ ANIMATE GUN ]-------------------------------------------
7543
		
7544
		tweenJoint(LWeld, nil, S.unAimedC1.leftArm, Sine, S.equipSettings.Time)
7545
		tweenJoint(RWeld, nil, S.unAimedC1.rightArm, Sine, S.equipSettings.Time)
7546
		tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, S.equipSettings.Time)
7547
		spawn(function()
7548
			local T = tick()
7549
			while true do
7550
				if tick() - T > S.equipSettings.Time then break end
7551
				if (not Selected) then break end
7552
				wait()
7553
			end
7554
			equipAnimPlaying = false
7555
		end)
7556
		
7557
		Animate()
7558
	end
7559
end
7560
7561
function onUnequipped(deleteTool)
7562
	if Selected then
7563
		Selected = false
7564
		
7565
		breakReload = true
7566
		
7567
		--------------------[ RUNNING PLUGINS ]---------------------------------------
7568
		
7569
		for _, Plugin in pairs(Plugins.OnUnEquipped) do
7570
			spawn(function()
7571
				Plugin()
7572
			end)
7573
		end
7574
		
7575
		--------------------[ MODIFYING THE PLAYER ]----------------------------------
7576
		
7577
		Cam.FieldOfView = 70
7578
		Cam.CameraType = Enum.CameraType.Custom
7579
		
7580
		UIS.MouseBehavior = Enum.MouseBehavior.Default
7581
		UIS.MouseIconEnabled = true
7582
		
7583
		Player.CameraMode = Enum.CameraMode.Classic
7584
		
7585
		if armTable then
7586
			armTable[1].Model:Destroy()
7587
			armTable[2].Model:Destroy()
7588
		elseif armModel then
7589
			armModel:Destroy()
7590
		end
7591
		
7592
		LLegWeld:Destroy()
7593
		RLegWeld:Destroy()
7594
		
7595
		changePlayerTrans(Char, 0)
7596
		
7597
		mainGUI.Parent = script
7598
		
7599
		Shoulders.Right.Part1 = RArm
7600
		Shoulders.Left.Part1 = LArm
7601
		
7602
		neckClone.Parent = Torso
7603
		headWeld:Destroy()
7604
		
7605
		Humanoid.WalkSpeed = 16
7606
		Humanoid.AutoRotate = true
7607
		
7608
		--------------------[ RESETING THE TOOL ]-------------------------------------
7609
		
7610
		gunIgnore:Destroy()
7611
		
7612
		mouseSensitivity = S.sensitivitySettings.Default
7613
		
7614
		MB1Down = false
7615
		
7616
		playerMass = 0
7617
		
7618
		Aimed = false
7619
		
7620
		camOffsets = {
7621
			guiScope = {
7622
				Rot = V3();
7623
			};
7624
			Reload = {
7625
				Rot = V3();
7626
				Code = nil;
7627
			};
7628
			Recoil = {
7629
				Rot = V3();
7630
				Code = nil;
7631
			};
7632
		}
7633
		
7634
		recoilAnim = {
7635
			Pos = V3();
7636
			Rot = V3();
7637
			Code = nil;
7638
		}
7639
7640
		--Setting the aim variables to unaimed
7641
		spreadZoom = "unAimed"
7642
		scopeMain.Visible = false
7643
		scopeSteady.Visible = false
7644
		aimAlpha = 0
7645
		aimHeadOffset = 0
7646
		jumpAnimMultiplier = 1
7647
		translationDivisor = 7
7648
		rotationMultiplier = S.momentumSettings.Amplitude.unAimed
7649
		armTiltMultiplier = 1
7650
		Scope.BackgroundTransparency = 1
7651
		if S.guiScope then
7652
			spawn(function()
7653
				for _, Obj in pairs(Gun:GetChildren()) do
7654
					if Obj:IsA("BasePart") then
7655
						Obj.LocalTransparencyModifier = 0
7656
					end
7657
				end
7658
			end)
7659
		end
7660
		
7661
		onGround = true
7662
		
7663
		for _, Tab in pairs(gunParts) do
7664
			Tab.Weld:Destroy()
7665
			Tab.Weld = nil
7666
		end
7667
		
7668
		for _,c in pairs(Connections) do
7669
			c:disconnect()
7670
		end
7671
		
7672
		Connections = {}
7673
		
7674
		if deleteTool then
7675
			Cam:ClearAllChildren()
7676
			Gun:Destroy()
7677
		end
7678
		
7679
		wait() --This is here in case you dolphin dived and deselected the tool instantly
7680
		
7681
		if S.stanceSettings.standOnDeselect and Stance ~= 0 then
7682
			crawlCamRot = 0
7683
			isCrawling = false
7684
			stanceSway = 1
7685
			spreadStance = "Stand"
7686
			Stand(true)
7687
		end
7688
		baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
7689
	end
7690
end
7691
7692
Gun.Equipped:connect(onEquipped)
7693
Gun.Unequipped:connect(function() onUnequipped(false) end)
7694
7695
--------------------------------------------------------------------------------------
7696
--------------------[ END PROGRAM ]---------------------------------------------------
7697
--------------------------------------------------------------------------------------
7698
end))
7699
IntValue209.Name = "ignoreCode"
7700
IntValue209.Parent = LocalScript208
7701
Folder210.Name = "Server_Scripts"
7702
Folder210.Parent = LocalScript208
7703
ScreenGui211.Name = "mainGUI"
7704
ScreenGui211.Parent = LocalScript208
7705
ImageLabel212.Name = "hitMarker"
7706
ImageLabel212.Parent = ScreenGui211
7707
ImageLabel212.Transparency = 1
7708
ImageLabel212.Size = UDim2.new(0, 26, 0, 26)
7709
ImageLabel212.Position = UDim2.new(0.5, -13, 0.5, -31)
7710
ImageLabel212.Visible = false
7711
ImageLabel212.BackgroundTransparency = 1
7712
ImageLabel212.ZIndex = 10
7713
ImageLabel212.Image = "http://www.roblox.com/asset/?id=121173757"
7714
NumberValue213.Name = "lastMark"
7715
NumberValue213.Parent = ImageLabel212
7716
Frame214.Name = "crossHair"
7717
Frame214.Parent = ScreenGui211
7718
Frame214.Position = UDim2.new(0.5, 0, 0.5, -18)
7719
Frame214.BackgroundColor3 = Color3.new(1, 1, 1)
7720
Frame214.BorderColor3 = Color3.new(0, 0, 0)
7721
Frame214.BorderSizePixel = 0
7722
ImageLabel215.Parent = Frame214
7723
ImageLabel215.Transparency = 1
7724
ImageLabel215.Size = UDim2.new(0, 300, 0, 300)
7725
ImageLabel215.Position = UDim2.new(0, -150, 0, -150)
7726
ImageLabel215.Visible = false
7727
ImageLabel215.BackgroundColor3 = Color3.new(1, 1, 1)
7728
ImageLabel215.BackgroundTransparency = 1
7729
ImageLabel215.ZIndex = 2
7730
ImageLabel215.Image = "http://www.roblox.com/asset/?id=68308747"
7731
TextLabel216.Name = "Reload"
7732
TextLabel216.Parent = Frame214
7733
TextLabel216.Transparency = 1
7734
TextLabel216.Size = UDim2.new(0, 100, 0, 20)
7735
TextLabel216.Text = "RELOADING..."
7736
TextLabel216.Position = UDim2.new(0, -50, 0, 70)
7737
TextLabel216.Visible = false
7738
TextLabel216.BackgroundColor3 = Color3.new(1, 1, 1)
7739
TextLabel216.BackgroundTransparency = 1
7740
TextLabel216.ZIndex = 2
7741
TextLabel216.Font = Enum.Font.SourceSansBold
7742
TextLabel216.FontSize = Enum.FontSize.Size18
7743
TextLabel216.TextColor3 = Color3.new(1, 1, 1)
7744
TextLabel216.TextStrokeTransparency = 0.5
7745
Frame217.Name = "C"
7746
Frame217.Parent = Frame214
7747
Frame217.Transparency = 1
7748
Frame217.Size = UDim2.new(0, 4, 0, 500)
7749
Frame217.Position = UDim2.new(0, -2, 0, 0)
7750
Frame217.BackgroundColor3 = Color3.new(1, 1, 1)
7751
Frame217.BackgroundTransparency = 1
7752
Frame217.ClipsDescendants = true
7753
TextLabel218.Name = "Line"
7754
TextLabel218.Parent = Frame217
7755
TextLabel218.Size = UDim2.new(0, 2, 0, 15)
7756
TextLabel218.Text = ""
7757
TextLabel218.Position = UDim2.new(0.5, -1, 0, 10)
7758
TextLabel218.BackgroundColor3 = Color3.new(1, 1, 1)
7759
TextLabel218.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
7760
TextLabel218.Font = Enum.Font.SourceSans
7761
TextLabel218.FontSize = Enum.FontSize.Size14
7762
Frame219.Name = "A"
7763
Frame219.Parent = Frame214
7764
Frame219.Transparency = 1
7765
Frame219.Size = UDim2.new(0, 4, 0, 500)
7766
Frame219.Position = UDim2.new(0, -2, 0, -500)
7767
Frame219.BackgroundColor3 = Color3.new(1, 1, 1)
7768
Frame219.BackgroundTransparency = 1
7769
Frame219.ClipsDescendants = true
7770
TextLabel220.Name = "Line"
7771
TextLabel220.Parent = Frame219
7772
TextLabel220.Size = UDim2.new(0, 2, 0, 15)
7773
TextLabel220.Text = ""
7774
TextLabel220.Position = UDim2.new(0.5, -1, 1, -25)
7775
TextLabel220.BackgroundColor3 = Color3.new(1, 1, 1)
7776
TextLabel220.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
7777
TextLabel220.Font = Enum.Font.SourceSans
7778
TextLabel220.FontSize = Enum.FontSize.Size14
7779
Frame221.Name = "B"
7780
Frame221.Parent = Frame214
7781
Frame221.Transparency = 1
7782
Frame221.Size = UDim2.new(0, 500, 0, 4)
7783
Frame221.Position = UDim2.new(0, 0, 0, -2)
7784
Frame221.BackgroundColor3 = Color3.new(1, 1, 1)
7785
Frame221.BackgroundTransparency = 1
7786
Frame221.ClipsDescendants = true
7787
TextLabel222.Name = "Line"
7788
TextLabel222.Parent = Frame221
7789
TextLabel222.Size = UDim2.new(0, 15, 0, 2)
7790
TextLabel222.Text = ""
7791
TextLabel222.Position = UDim2.new(0, 10, 0.5, -1)
7792
TextLabel222.BackgroundColor3 = Color3.new(1, 1, 1)
7793
TextLabel222.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
7794
TextLabel222.Font = Enum.Font.SourceSans
7795
TextLabel222.FontSize = Enum.FontSize.Size14
7796
Frame223.Name = "D"
7797
Frame223.Parent = Frame214
7798
Frame223.Transparency = 1
7799
Frame223.Size = UDim2.new(0, 500, 0, 4)
7800
Frame223.Position = UDim2.new(0, -500, 0, -2)
7801
Frame223.BackgroundColor3 = Color3.new(1, 1, 1)
7802
Frame223.BackgroundTransparency = 1
7803
Frame223.ClipsDescendants = true
7804
TextLabel224.Name = "Line"
7805
TextLabel224.Parent = Frame223
7806
TextLabel224.Size = UDim2.new(0, 15, 0, 2)
7807
TextLabel224.Text = ""
7808
TextLabel224.Position = UDim2.new(1, -25, 0.5, -1)
7809
TextLabel224.BackgroundColor3 = Color3.new(1, 1, 1)
7810
TextLabel224.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
7811
TextLabel224.Font = Enum.Font.SourceSans
7812
TextLabel224.FontSize = Enum.FontSize.Size14
7813
Frame225.Name = "HUD"
7814
Frame225.Parent = ScreenGui211
7815
Frame225.Transparency = 0.30000001192093
7816
Frame225.Size = UDim2.new(0, 175, 0, 90)
7817
Frame225.Position = UDim2.new(1, -200, 1, -165)
7818
Frame225.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
7819
Frame225.BackgroundTransparency = 0.30000001192093
7820
Frame225.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
7821
Frame225.BorderSizePixel = 5
7822
Frame225.ZIndex = 10
7823
Frame226.Name = "Ammo"
7824
Frame226.Parent = Frame225
7825
Frame226.Transparency = 1
7826
Frame226.Size = UDim2.new(0, 175, 0, 40)
7827
Frame226.Position = UDim2.new(0, 0, 0, 45)
7828
Frame226.BackgroundTransparency = 1
7829
Frame226.ZIndex = 10
7830
TextLabel227.Name = "Slash"
7831
TextLabel227.Parent = Frame226
7832
TextLabel227.Transparency = 1
7833
TextLabel227.Size = UDim2.new(0, 10, 0, 25)
7834
TextLabel227.Text = "/"
7835
TextLabel227.Position = UDim2.new(0, 90, 0, 0)
7836
TextLabel227.BackgroundTransparency = 1
7837
TextLabel227.ZIndex = 10
7838
TextLabel227.Font = Enum.Font.ArialBold
7839
TextLabel227.FontSize = Enum.FontSize.Size24
7840
TextLabel227.TextColor3 = Color3.new(1, 1, 1)
7841
TextLabel228.Name = "Stored"
7842
TextLabel228.Parent = Frame226
7843
TextLabel228.Transparency = 1
7844
TextLabel228.Size = UDim2.new(0, 70, 0, 25)
7845
TextLabel228.Text = "100"
7846
TextLabel228.Position = UDim2.new(0, 105, 0, 0)
7847
TextLabel228.BackgroundTransparency = 1
7848
TextLabel228.ZIndex = 10
7849
TextLabel228.Font = Enum.Font.ArialBold
7850
TextLabel228.FontSize = Enum.FontSize.Size24
7851
TextLabel228.TextColor3 = Color3.new(1, 1, 1)
7852
TextLabel228.TextXAlignment = Enum.TextXAlignment.Left
7853
TextLabel229.Name = "Background"
7854
TextLabel229.Parent = TextLabel228
7855
TextLabel229.Transparency = 1
7856
TextLabel229.Size = UDim2.new(1, 0, 1, 0)
7857
TextLabel229.Text = "000"
7858
TextLabel229.BackgroundTransparency = 1
7859
TextLabel229.ZIndex = 10
7860
TextLabel229.Font = Enum.Font.ArialBold
7861
TextLabel229.FontSize = Enum.FontSize.Size24
7862
TextLabel229.TextColor3 = Color3.new(0.588235, 0.588235, 0.588235)
7863
TextLabel229.TextTransparency = 0.80000001192093
7864
TextLabel229.TextWrapped = true
7865
TextLabel229.TextXAlignment = Enum.TextXAlignment.Left
7866
TextLabel230.Name = "Clip"
7867
TextLabel230.Parent = Frame226
7868
TextLabel230.Transparency = 1
7869
TextLabel230.Size = UDim2.new(0, 85, 1, 0)
7870
TextLabel230.Text = "9"
7871
TextLabel230.BackgroundTransparency = 1
7872
TextLabel230.ZIndex = 10
7873
TextLabel230.Font = Enum.Font.ArialBold
7874
TextLabel230.FontSize = Enum.FontSize.Size48
7875
TextLabel230.TextColor3 = Color3.new(1, 1, 1)
7876
TextLabel230.TextXAlignment = Enum.TextXAlignment.Right
7877
TextLabel231.Name = "Background"
7878
TextLabel231.Parent = TextLabel230
7879
TextLabel231.Transparency = 1
7880
TextLabel231.Size = UDim2.new(1, 0, 1, 0)
7881
TextLabel231.Text = "000"
7882
TextLabel231.BackgroundTransparency = 1
7883
TextLabel231.ZIndex = 10
7884
TextLabel231.Font = Enum.Font.ArialBold
7885
TextLabel231.FontSize = Enum.FontSize.Size48
7886
TextLabel231.TextColor3 = Color3.new(0.588235, 0.588235, 0.588235)
7887
TextLabel231.TextTransparency = 0.80000001192093
7888
TextLabel231.TextXAlignment = Enum.TextXAlignment.Right
7889
Frame232.Name = "Mode"
7890
Frame232.Parent = Frame225
7891
Frame232.Transparency = 1
7892
Frame232.Size = UDim2.new(0, 85, 0, 20)
7893
Frame232.Position = UDim2.new(0, 90, 0, 65)
7894
Frame232.BackgroundColor3 = Color3.new(1, 1, 1)
7895
Frame232.BackgroundTransparency = 1
7896
Frame232.ZIndex = 10
7897
TextLabel233.Name = "Bracket"
7898
TextLabel233.Parent = Frame232
7899
TextLabel233.Transparency = 1
7900
TextLabel233.Size = UDim2.new(0, 5, 0, 20)
7901
TextLabel233.Text = "["
7902
TextLabel233.BackgroundTransparency = 1
7903
TextLabel233.ZIndex = 10
7904
TextLabel233.Font = Enum.Font.ArialBold
7905
TextLabel233.FontSize = Enum.FontSize.Size18
7906
TextLabel233.TextColor3 = Color3.new(1, 1, 1)
7907
TextLabel233.TextXAlignment = Enum.TextXAlignment.Left
7908
TextLabel234.Name = "Bracket"
7909
TextLabel234.Parent = Frame232
7910
TextLabel234.Transparency = 1
7911
TextLabel234.Size = UDim2.new(0, 5, 0, 20)
7912
TextLabel234.Text = "]"
7913
TextLabel234.Position = UDim2.new(1, -5, 0, 0)
7914
TextLabel234.BackgroundTransparency = 1
7915
TextLabel234.ZIndex = 10
7916
TextLabel234.Font = Enum.Font.ArialBold
7917
TextLabel234.FontSize = Enum.FontSize.Size18
7918
TextLabel234.TextColor3 = Color3.new(1, 1, 1)
7919
TextLabel234.TextXAlignment = Enum.TextXAlignment.Left
7920
TextLabel235.Name = "Main"
7921
TextLabel235.Parent = Frame232
7922
TextLabel235.Transparency = 1
7923
TextLabel235.Size = UDim2.new(1, 0, 0, 20)
7924
TextLabel235.Text = "Auto"
7925
TextLabel235.BackgroundTransparency = 1
7926
TextLabel235.ZIndex = 10
7927
TextLabel235.Font = Enum.Font.SourceSansBold
7928
TextLabel235.FontSize = Enum.FontSize.Size18
7929
TextLabel235.TextColor3 = Color3.new(1, 1, 1)
7930
TextLabel235.TextWrapped = true
7931
Frame236.Name = "Health"
7932
Frame236.Parent = Frame225
7933
Frame236.Transparency = 0.30000001192093
7934
Frame236.Size = UDim2.new(1, 0, 0, 25)
7935
Frame236.Position = UDim2.new(0, 0, 0, -40)
7936
Frame236.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
7937
Frame236.BackgroundTransparency = 0.30000001192093
7938
Frame236.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
7939
Frame236.BorderSizePixel = 5
7940
Frame236.ZIndex = 10
7941
TextLabel237.Name = "Num"
7942
TextLabel237.Parent = Frame236
7943
TextLabel237.Transparency = 1
7944
TextLabel237.Size = UDim2.new(0, 50, 1, 0)
7945
TextLabel237.Text = "100%"
7946
TextLabel237.Position = UDim2.new(1, -50, 0, 0)
7947
TextLabel237.BackgroundColor3 = Color3.new(0, 0, 0)
7948
TextLabel237.BackgroundTransparency = 1
7949
TextLabel237.BorderColor3 = Color3.new(0, 0, 0)
7950
TextLabel237.BorderSizePixel = 0
7951
TextLabel237.ZIndex = 10
7952
TextLabel237.Font = Enum.Font.ArialBold
7953
TextLabel237.FontSize = Enum.FontSize.Size24
7954
TextLabel237.TextColor3 = Color3.new(1, 1, 1)
7955
TextLabel237.TextStrokeTransparency = 0
7956
TextLabel237.TextXAlignment = Enum.TextXAlignment.Right
7957
Frame238.Name = "Tray"
7958
Frame238.Parent = Frame236
7959
Frame238.Transparency = 1
7960
Frame238.Size = UDim2.new(1, -60, 0, 20)
7961
Frame238.Position = UDim2.new(0, 2, 0.5, -10)
7962
Frame238.BackgroundColor3 = Color3.new(0, 0, 0)
7963
Frame238.BackgroundTransparency = 1
7964
Frame238.BorderColor3 = Color3.new(0, 0, 0)
7965
Frame238.BorderSizePixel = 0
7966
Frame238.ZIndex = 10
7967
Frame238.ClipsDescendants = true
7968
Frame239.Name = "Beat"
7969
Frame239.Parent = Frame238
7970
Frame239.Transparency = 1
7971
Frame239.Size = UDim2.new(0, 21, 1, 0)
7972
Frame239.Position = UDim2.new(1, 0, 0, 0)
7973
Frame239.BackgroundColor3 = Color3.new(0, 0, 0)
7974
Frame239.BackgroundTransparency = 1
7975
Frame239.BorderColor3 = Color3.new(0, 0, 0)
7976
Frame239.BorderSizePixel = 0
7977
Frame239.ZIndex = 10
7978
Frame240.Name = "00"
7979
Frame240.Parent = Frame239
7980
Frame240.Size = UDim2.new(0.0476190485, 0, 0, 3)
7981
Frame240.Position = UDim2.new(0, 0, 0.5, -2)
7982
Frame240.BackgroundColor3 = Color3.new(1, 1, 1)
7983
Frame240.BorderColor3 = Color3.new(0, 0, 0)
7984
Frame240.BorderSizePixel = 0
7985
Frame240.ZIndex = 10
7986
Frame241.Name = "01"
7987
Frame241.Parent = Frame239
7988
Frame241.Size = UDim2.new(0.0476190485, 0, 0, 4)
7989
Frame241.Position = UDim2.new(0.0476190485, 0, 0.423076928, -2)
7990
Frame241.BackgroundColor3 = Color3.new(1, 1, 1)
7991
Frame241.BorderColor3 = Color3.new(0, 0, 0)
7992
Frame241.BorderSizePixel = 0
7993
Frame241.ZIndex = 10
7994
Frame242.Name = "02"
7995
Frame242.Parent = Frame239
7996
Frame242.Size = UDim2.new(0.0476190485, 0, 0, 4)
7997
Frame242.Position = UDim2.new(0.095238097, 0, 0.346153855, -2)
7998
Frame242.BackgroundColor3 = Color3.new(1, 1, 1)
7999
Frame242.BorderColor3 = Color3.new(0, 0, 0)
8000
Frame242.BorderSizePixel = 0
8001
Frame242.ZIndex = 10
8002
Frame243.Name = "03"
8003
Frame243.Parent = Frame239
8004
Frame243.Size = UDim2.new(0.0476190485, 0, 0, 4)
8005
Frame243.Position = UDim2.new(0.142857149, 0, 0.269230783, -2)
8006
Frame243.BackgroundColor3 = Color3.new(1, 1, 1)
8007
Frame243.BorderColor3 = Color3.new(0, 0, 0)
8008
Frame243.BorderSizePixel = 0
8009
Frame243.ZIndex = 10
8010
Frame244.Name = "04"
8011
Frame244.Parent = Frame239
8012
Frame244.Size = UDim2.new(0.0476190485, 0, 0, 4)
8013
Frame244.Position = UDim2.new(0.190476194, 0, 0.192307696, -2)
8014
Frame244.BackgroundColor3 = Color3.new(1, 1, 1)
8015
Frame244.BorderColor3 = Color3.new(0, 0, 0)
8016
Frame244.BorderSizePixel = 0
8017
Frame244.ZIndex = 10
8018
Frame245.Name = "05"
8019
Frame245.Parent = Frame239
8020
Frame245.Size = UDim2.new(0.0476190485, 0, 0, 4)
8021
Frame245.Position = UDim2.new(0.238095239, 0, 0.115384616, -2)
8022
Frame245.BackgroundColor3 = Color3.new(1, 1, 1)
8023
Frame245.BorderColor3 = Color3.new(0, 0, 0)
8024
Frame245.BorderSizePixel = 0
8025
Frame245.ZIndex = 10
8026
Frame246.Name = "06"
8027
Frame246.Parent = Frame239
8028
Frame246.Size = UDim2.new(0.0476190485, 0, 0, 4)
8029
Frame246.Position = UDim2.new(0.285714298, 0, 0.0384615399, -2)
8030
Frame246.BackgroundColor3 = Color3.new(1, 1, 1)
8031
Frame246.BorderColor3 = Color3.new(0, 0, 0)
8032
Frame246.BorderSizePixel = 0
8033
Frame246.ZIndex = 10
8034
Frame247.Name = "07"
8035
Frame247.Parent = Frame239
8036
Frame247.Size = UDim2.new(0.0476190485, 0, 0, 4)
8037
Frame247.Position = UDim2.new(0.333333343, 0, 0, -2)
8038
Frame247.BackgroundColor3 = Color3.new(1, 1, 1)
8039
Frame247.BorderColor3 = Color3.new(0, 0, 0)
8040
Frame247.BorderSizePixel = 0
8041
Frame247.ZIndex = 10
8042
Frame248.Name = "08"
8043
Frame248.Parent = Frame239
8044
Frame248.Size = UDim2.new(0.0476190485, 0, 0, 4)
8045
Frame248.Position = UDim2.new(0.380952388, 0, 0.142857149, -2)
8046
Frame248.BackgroundColor3 = Color3.new(1, 1, 1)
8047
Frame248.BorderColor3 = Color3.new(0, 0, 0)
8048
Frame248.BorderSizePixel = 0
8049
Frame248.ZIndex = 10
8050
Frame249.Name = "09"
8051
Frame249.Parent = Frame239
8052
Frame249.Size = UDim2.new(0.0476190485, 0, 0, 4)
8053
Frame249.Position = UDim2.new(0.428571433, 0, 0.285714298, -2)
8054
Frame249.BackgroundColor3 = Color3.new(1, 1, 1)
8055
Frame249.BorderColor3 = Color3.new(0, 0, 0)
8056
Frame249.BorderSizePixel = 0
8057
Frame249.ZIndex = 10
8058
Frame250.Name = "10"
8059
Frame250.Parent = Frame239
8060
Frame250.Size = UDim2.new(0.0476190485, 0, 0, 4)
8061
Frame250.Position = UDim2.new(0.476190478, 0, 0.428571433, -2)
8062
Frame250.BackgroundColor3 = Color3.new(1, 1, 1)
8063
Frame250.BorderColor3 = Color3.new(0, 0, 0)
8064
Frame250.BorderSizePixel = 0
8065
Frame250.ZIndex = 10
8066
Frame251.Name = "11"
8067
Frame251.Parent = Frame239
8068
Frame251.Size = UDim2.new(0.0476190485, 0, 0, 4)
8069
Frame251.Position = UDim2.new(0.523809552, 0, 0.571428597, -2)
8070
Frame251.BackgroundColor3 = Color3.new(1, 1, 1)
8071
Frame251.BorderColor3 = Color3.new(0, 0, 0)
8072
Frame251.BorderSizePixel = 0
8073
Frame251.ZIndex = 10
8074
Frame252.Name = "12"
8075
Frame252.Parent = Frame239
8076
Frame252.Size = UDim2.new(0.0476190485, 0, 0, 4)
8077
Frame252.Position = UDim2.new(0.571428597, 0, 0.714285731, -2)
8078
Frame252.BackgroundColor3 = Color3.new(1, 1, 1)
8079
Frame252.BorderColor3 = Color3.new(0, 0, 0)
8080
Frame252.BorderSizePixel = 0
8081
Frame252.ZIndex = 10
8082
Frame253.Name = "13"
8083
Frame253.Parent = Frame239
8084
Frame253.Size = UDim2.new(0.0476190485, 0, 0, 4)
8085
Frame253.Position = UDim2.new(0.619047642, 0, 0.857142866, -2)
8086
Frame253.BackgroundColor3 = Color3.new(1, 1, 1)
8087
Frame253.BorderColor3 = Color3.new(0, 0, 0)
8088
Frame253.BorderSizePixel = 0
8089
Frame253.ZIndex = 10
8090
Frame254.Name = "14"
8091
Frame254.Parent = Frame239
8092
Frame254.Size = UDim2.new(0.0476190485, 0, 0, 4)
8093
Frame254.Position = UDim2.new(0.666666687, 0, 0.916666687, -2)
8094
Frame254.BackgroundColor3 = Color3.new(1, 1, 1)
8095
Frame254.BorderColor3 = Color3.new(0, 0, 0)
8096
Frame254.BorderSizePixel = 0
8097
Frame254.ZIndex = 10
8098
Frame255.Name = "15"
8099
Frame255.Parent = Frame239
8100
Frame255.Size = UDim2.new(0.0476190485, 0, 0, 4)
8101
Frame255.Position = UDim2.new(0.714285731, 0, 0.833333313, -2)
8102
Frame255.BackgroundColor3 = Color3.new(1, 1, 1)
8103
Frame255.BorderColor3 = Color3.new(0, 0, 0)
8104
Frame255.BorderSizePixel = 0
8105
Frame255.ZIndex = 10
8106
Frame256.Name = "16"
8107
Frame256.Parent = Frame239
8108
Frame256.Size = UDim2.new(0.0476190485, 0, 0, 4)
8109
Frame256.Position = UDim2.new(0.761904776, 0, 0.75, -2)
8110
Frame256.BackgroundColor3 = Color3.new(1, 1, 1)
8111
Frame256.BorderColor3 = Color3.new(0, 0, 0)
8112
Frame256.BorderSizePixel = 0
8113
Frame256.ZIndex = 10
8114
Frame257.Name = "17"
8115
Frame257.Parent = Frame239
8116
Frame257.Size = UDim2.new(0.0476190485, 0, 0, 4)
8117
Frame257.Position = UDim2.new(0.809523821, 0, 0.666666687, -2)
8118
Frame257.BackgroundColor3 = Color3.new(1, 1, 1)
8119
Frame257.BorderColor3 = Color3.new(0, 0, 0)
8120
Frame257.BorderSizePixel = 0
8121
Frame257.ZIndex = 10
8122
Frame258.Name = "18"
8123
Frame258.Parent = Frame239
8124
Frame258.Size = UDim2.new(0.0476190485, 0, 0, 4)
8125
Frame258.Position = UDim2.new(0.857142866, 0, 0.583333313, -2)
8126
Frame258.BackgroundColor3 = Color3.new(1, 1, 1)
8127
Frame258.BorderColor3 = Color3.new(0, 0, 0)
8128
Frame258.BorderSizePixel = 0
8129
Frame258.ZIndex = 10
8130
Frame259.Name = "19"
8131
Frame259.Parent = Frame239
8132
Frame259.Size = UDim2.new(0.0476190485, 0, 0, 4)
8133
Frame259.Position = UDim2.new(0.90476191, 0, 0.5, -2)
8134
Frame259.BackgroundColor3 = Color3.new(1, 1, 1)
8135
Frame259.BorderColor3 = Color3.new(0, 0, 0)
8136
Frame259.BorderSizePixel = 0
8137
Frame259.ZIndex = 10
8138
Frame260.Name = "20"
8139
Frame260.Parent = Frame239
8140
Frame260.Size = UDim2.new(0.0476190485, 0, 0, 4)
8141
Frame260.Position = UDim2.new(0.952000022, 0, 0.49000001, -2)
8142
Frame260.BackgroundColor3 = Color3.new(1, 1, 1)
8143
Frame260.BorderColor3 = Color3.new(0, 0, 0)
8144
Frame260.BorderSizePixel = 0
8145
Frame260.ZIndex = 10
8146
Frame261.Name = "Line"
8147
Frame261.Parent = Frame239
8148
Frame261.Size = UDim2.new(0, 200, 0, 3)
8149
Frame261.Position = UDim2.new(1, 0, 0.5, -2)
8150
Frame261.BackgroundColor3 = Color3.new(1, 1, 1)
8151
Frame261.BorderColor3 = Color3.new(0, 0, 0)
8152
Frame261.BorderSizePixel = 0
8153
Frame261.ZIndex = 10
8154
Frame262.Name = "Line"
8155
Frame262.Parent = Frame239
8156
Frame262.Size = UDim2.new(0, 200, 0, 3)
8157
Frame262.Position = UDim2.new(0, -200, 0.5, -2)
8158
Frame262.BackgroundColor3 = Color3.new(1, 1, 1)
8159
Frame262.BorderColor3 = Color3.new(0, 0, 0)
8160
Frame262.BorderSizePixel = 0
8161
Frame262.ZIndex = 10
8162
Frame263.Name = "Controls"
8163
Frame263.Parent = Frame225
8164
Frame263.Transparency = 0.30000001192093
8165
Frame263.Size = UDim2.new(1, 0, 0, 120)
8166
Frame263.Position = UDim2.new(0, 0, 0, -200)
8167
Frame263.Visible = false
8168
Frame263.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
8169
Frame263.BackgroundTransparency = 0.30000001192093
8170
Frame263.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
8171
Frame263.BorderSizePixel = 5
8172
Frame263.ZIndex = 10
8173
TextLabel264.Name = "Title"
8174
TextLabel264.Parent = Frame263
8175
TextLabel264.Transparency = 1
8176
TextLabel264.Size = UDim2.new(1, 0, 0, 15)
8177
TextLabel264.Text = "CONTROLS"
8178
TextLabel264.BackgroundColor3 = Color3.new(1, 1, 1)
8179
TextLabel264.BackgroundTransparency = 1
8180
TextLabel264.ZIndex = 10
8181
TextLabel264.Font = Enum.Font.SourceSansBold
8182
TextLabel264.FontSize = Enum.FontSize.Size14
8183
TextLabel264.TextColor3 = Color3.new(1, 1, 1)
8184
TextLabel265.Name = "Line"
8185
TextLabel265.Parent = TextLabel264
8186
TextLabel265.Size = UDim2.new(1, 0, 0, 2)
8187
TextLabel265.Text = ""
8188
TextLabel265.Position = UDim2.new(0, 0, 1, 1)
8189
TextLabel265.BackgroundColor3 = Color3.new(1, 1, 0)
8190
TextLabel265.BorderSizePixel = 0
8191
TextLabel265.ZIndex = 10
8192
TextLabel265.Font = Enum.Font.SourceSans
8193
TextLabel265.FontSize = Enum.FontSize.Size14
8194
Frame266.Name = "Grenades"
8195
Frame266.Parent = Frame225
8196
Frame266.Transparency = 1
8197
Frame266.Size = UDim2.new(0, 175, 0, 25)
8198
Frame266.Position = UDim2.new(0, 0, 0, 90)
8199
Frame266.Visible = false
8200
Frame266.BackgroundTransparency = 1
8201
Frame266.ZIndex = 10
8202
Frame267.Name = "Lethals"
8203
Frame267.Parent = Frame266
8204
Frame267.Transparency = 0.80000001192093
8205
Frame267.Size = UDim2.new(0.5, -2, 1, 0)
8206
Frame267.BackgroundColor3 = Color3.new(1, 1, 1)
8207
Frame267.BackgroundTransparency = 0.80000001192093
8208
Frame267.BorderSizePixel = 0
8209
Frame267.ZIndex = 10
8210
ImageLabel268.Name = "Icon"
8211
ImageLabel268.Parent = Frame267
8212
ImageLabel268.Transparency = 1
8213
ImageLabel268.Size = UDim2.new(0, 21, 0, 21)
8214
ImageLabel268.Position = UDim2.new(0, 7, 0, 2)
8215
ImageLabel268.BackgroundColor3 = Color3.new(1, 1, 1)
8216
ImageLabel268.BackgroundTransparency = 1
8217
ImageLabel268.ZIndex = 10
8218
TextLabel269.Name = "Mult"
8219
TextLabel269.Parent = Frame267
8220
TextLabel269.Transparency = 1
8221
TextLabel269.Size = UDim2.new(0, 20, 1, 0)
8222
TextLabel269.Text = "X"
8223
TextLabel269.Position = UDim2.new(0.5, -10, 0, 0)
8224
TextLabel269.BackgroundColor3 = Color3.new(1, 1, 1)
8225
TextLabel269.BackgroundTransparency = 1
8226
TextLabel269.BorderSizePixel = 0
8227
TextLabel269.ZIndex = 10
8228
TextLabel269.Font = Enum.Font.ArialBold
8229
TextLabel269.FontSize = Enum.FontSize.Size18
8230
TextLabel269.TextColor3 = Color3.new(1, 1, 1)
8231
TextLabel270.Name = "Num"
8232
TextLabel270.Parent = Frame267
8233
TextLabel270.Transparency = 1
8234
TextLabel270.Size = UDim2.new(0, 0, 1, 0)
8235
TextLabel270.Text = "0"
8236
TextLabel270.Position = UDim2.new(1, -7, 0, 0)
8237
TextLabel270.BackgroundColor3 = Color3.new(1, 1, 1)
8238
TextLabel270.BackgroundTransparency = 1
8239
TextLabel270.ZIndex = 10
8240
TextLabel270.Font = Enum.Font.ArialBold
8241
TextLabel270.FontSize = Enum.FontSize.Size18
8242
TextLabel270.TextColor3 = Color3.new(1, 1, 1)
8243
TextLabel270.TextXAlignment = Enum.TextXAlignment.Right
8244
Frame271.Name = "Tacticals"
8245
Frame271.Parent = Frame266
8246
Frame271.Transparency = 0.80000001192093
8247
Frame271.Size = UDim2.new(0.5, -2, 1, 0)
8248
Frame271.Position = UDim2.new(0.5, 2, 0, 0)
8249
Frame271.BackgroundColor3 = Color3.new(1, 1, 1)
8250
Frame271.BackgroundTransparency = 0.80000001192093
8251
Frame271.BorderSizePixel = 0
8252
Frame271.ZIndex = 10
8253
ImageLabel272.Name = "Icon"
8254
ImageLabel272.Parent = Frame271
8255
ImageLabel272.Transparency = 1
8256
ImageLabel272.Size = UDim2.new(0, 21, 0, 21)
8257
ImageLabel272.Position = UDim2.new(0, 7, 0, 2)
8258
ImageLabel272.BackgroundColor3 = Color3.new(1, 1, 1)
8259
ImageLabel272.BackgroundTransparency = 1
8260
ImageLabel272.ZIndex = 10
8261
TextLabel273.Name = "Num"
8262
TextLabel273.Parent = Frame271
8263
TextLabel273.Transparency = 1
8264
TextLabel273.Size = UDim2.new(0, 0, 1, 0)
8265
TextLabel273.Text = "0"
8266
TextLabel273.Position = UDim2.new(1, -7, 0, 0)
8267
TextLabel273.BackgroundColor3 = Color3.new(1, 1, 1)
8268
TextLabel273.BackgroundTransparency = 1
8269
TextLabel273.ZIndex = 10
8270
TextLabel273.Font = Enum.Font.ArialBold
8271
TextLabel273.FontSize = Enum.FontSize.Size18
8272
TextLabel273.TextColor3 = Color3.new(1, 1, 1)
8273
TextLabel273.TextXAlignment = Enum.TextXAlignment.Right
8274
TextLabel274.Name = "Mult"
8275
TextLabel274.Parent = Frame271
8276
TextLabel274.Transparency = 1
8277
TextLabel274.Size = UDim2.new(0, 20, 1, 0)
8278
TextLabel274.Text = "X"
8279
TextLabel274.Position = UDim2.new(0.5, -10, 0, 0)
8280
TextLabel274.BackgroundColor3 = Color3.new(1, 1, 1)
8281
TextLabel274.BackgroundTransparency = 1
8282
TextLabel274.BorderSizePixel = 0
8283
TextLabel274.ZIndex = 10
8284
TextLabel274.Font = Enum.Font.ArialBold
8285
TextLabel274.FontSize = Enum.FontSize.Size18
8286
TextLabel274.TextColor3 = Color3.new(1, 1, 1)
8287
Frame275.Name = "gunName"
8288
Frame275.Parent = Frame225
8289
Frame275.Transparency = 1
8290
Frame275.Size = UDim2.new(1, 0, 0, 36)
8291
Frame275.BackgroundColor3 = Color3.new(0.972549, 0.972549, 0.972549)
8292
Frame275.BackgroundTransparency = 1
8293
Frame275.ZIndex = 10
8294
TextLabel276.Name = "Line"
8295
TextLabel276.Parent = Frame275
8296
TextLabel276.Size = UDim2.new(0, 2, 1, 0)
8297
TextLabel276.Text = ""
8298
TextLabel276.BackgroundColor3 = Color3.new(1, 1, 1)
8299
TextLabel276.BorderSizePixel = 0
8300
TextLabel276.ZIndex = 10
8301
TextLabel276.Font = Enum.Font.SourceSans
8302
TextLabel276.FontSize = Enum.FontSize.Size14
8303
TextLabel277.Name = "Line"
8304
TextLabel277.Parent = Frame275
8305
TextLabel277.Size = UDim2.new(1, 0, 0, 2)
8306
TextLabel277.Text = ""
8307
TextLabel277.Position = UDim2.new(0, 0, 1, 0)
8308
TextLabel277.BackgroundColor3 = Color3.new(1, 1, 1)
8309
TextLabel277.BorderSizePixel = 0
8310
TextLabel277.ZIndex = 10
8311
TextLabel277.Font = Enum.Font.SourceSans
8312
TextLabel277.FontSize = Enum.FontSize.Size14
8313
TextLabel278.Name = "Title"
8314
TextLabel278.Parent = Frame275
8315
TextLabel278.Transparency = 1
8316
TextLabel278.Size = UDim2.new(1, -7, 1, 0)
8317
TextLabel278.Text = "Gun"
8318
TextLabel278.Position = UDim2.new(0, 7, 0, 0)
8319
TextLabel278.BackgroundColor3 = Color3.new(1, 1, 1)
8320
TextLabel278.BackgroundTransparency = 1
8321
TextLabel278.ZIndex = 10
8322
TextLabel278.Font = Enum.Font.SourceSansBold
8323
TextLabel278.FontSize = Enum.FontSize.Size36
8324
TextLabel278.TextColor3 = Color3.new(1, 1, 1)
8325
TextLabel278.TextStrokeTransparency = 0
8326
TextLabel278.TextXAlignment = Enum.TextXAlignment.Left
8327
Frame279.Name = "fireSelect"
8328
Frame279.Parent = ScreenGui211
8329
Frame279.Transparency = 1
8330
Frame279.Position = UDim2.new(0.5, 0, 0.5, -18)
8331
Frame279.Visible = false
8332
Frame279.BackgroundColor3 = Color3.new(1, 1, 1)
8333
Frame279.BackgroundTransparency = 1
8334
Frame280.Name = "Modes"
8335
Frame280.Parent = Frame279
8336
Frame280.Transparency = 1
8337
Frame280.BackgroundColor3 = Color3.new(1, 1, 1)
8338
Frame280.BackgroundTransparency = 1
8339
ImageLabel281.Name = "Circle"
8340
ImageLabel281.Parent = Frame279
8341
ImageLabel281.Transparency = 1
8342
ImageLabel281.Size = UDim2.new(0, 120, 0, 120)
8343
ImageLabel281.Position = UDim2.new(0, -60, 0, -60)
8344
ImageLabel281.BackgroundColor3 = Color3.new(1, 1, 1)
8345
ImageLabel281.BackgroundTransparency = 1
8346
ImageLabel281.Image = "http://www.roblox.com/asset/?id=55754953"
8347
ImageLabel281.ImageTransparency = 0.5
8348
ImageLabel282.Name = "Arrow"
8349
ImageLabel282.Parent = Frame279
8350
ImageLabel282.Transparency = 1
8351
ImageLabel282.Size = UDim2.new(0, 40, 0, 20)
8352
ImageLabel282.Position = UDim2.new(0, -20, 0, -140)
8353
ImageLabel282.BackgroundColor3 = Color3.new(1, 1, 1)
8354
ImageLabel282.BackgroundTransparency = 1
8355
ImageLabel282.Image = "http://www.roblox.com/asset/?id=126877530"
8356
Frame283.Name = "Scope"
8357
Frame283.Parent = ScreenGui211
8358
Frame283.Transparency = 1
8359
Frame283.Size = UDim2.new(1, 0, 1, 36)
8360
Frame283.Position = UDim2.new(0, 0, 0, -36)
8361
Frame283.BackgroundColor3 = Color3.new(0, 0, 0)
8362
Frame283.BackgroundTransparency = 1
8363
TextLabel284.Name = "Steady"
8364
TextLabel284.Parent = Frame283
8365
TextLabel284.Transparency = 1
8366
TextLabel284.Size = UDim2.new(0, 120, 0, 20)
8367
TextLabel284.Text = ""
8368
TextLabel284.Position = UDim2.new(0.5, -60, 0.5, 50)
8369
TextLabel284.Visible = false
8370
TextLabel284.BackgroundColor3 = Color3.new(1, 1, 1)
8371
TextLabel284.BackgroundTransparency = 1
8372
TextLabel284.ZIndex = 9
8373
TextLabel284.Font = Enum.Font.ArialBold
8374
TextLabel284.FontSize = Enum.FontSize.Size14
8375
TextLabel284.TextColor3 = Color3.new(1, 1, 0)
8376
TextLabel284.TextStrokeTransparency = 0
8377
Frame285.Name = "Main"
8378
Frame285.Parent = Frame283
8379
Frame285.Transparency = 1
8380
Frame285.Size = UDim2.new(1, 0, 1, 0)
8381
Frame285.Visible = false
8382
Frame285.BackgroundColor3 = Color3.new(1, 1, 1)
8383
Frame285.BackgroundTransparency = 1
8384
ImageLabel286.Name = "ScopeImg2"
8385
ImageLabel286.Parent = Frame285
8386
ImageLabel286.Transparency = 1
8387
ImageLabel286.Size = UDim2.new(0, 20, 0, 20)
8388
ImageLabel286.Position = UDim2.new(0.5, -10, 0, -10)
8389
ImageLabel286.BackgroundColor3 = Color3.new(0, 0, 0)
8390
ImageLabel286.BackgroundTransparency = 1
8391
ImageLabel286.Image = "http://www.roblox.com/asset/?id=184922644"
8392
ImageLabel287.Name = "ScopeImg1"
8393
ImageLabel287.Parent = Frame285
8394
ImageLabel287.Transparency = 1
8395
ImageLabel287.Size = UDim2.new(0, 20, 0, 20)
8396
ImageLabel287.Position = UDim2.new(0.5, -10, 0, -10)
8397
ImageLabel287.BackgroundColor3 = Color3.new(0, 0, 0)
8398
ImageLabel287.BackgroundTransparency = 1
8399
ImageLabel287.Image = "http://www.roblox.com/asset/?id=72002022"
8400
Frame288.Name = "F2"
8401
Frame288.Parent = Frame285
8402
Frame288.Size = UDim2.new(0, 0, 1, 20)
8403
Frame288.Position = UDim2.new(0, -10, 0, -10)
8404
Frame288.BackgroundColor3 = Color3.new(0, 0, 0)
8405
Frame288.BorderColor3 = Color3.new(0, 0, 0)
8406
Frame288.BorderSizePixel = 0
8407
Frame289.Name = "F1"
8408
Frame289.Parent = Frame285
8409
Frame289.Size = UDim2.new(0, 0, 1, 20)
8410
Frame289.Position = UDim2.new(0, -10, 0, -10)
8411
Frame289.BackgroundColor3 = Color3.new(0, 0, 0)
8412
Frame289.BorderColor3 = Color3.new(0, 0, 0)
8413
Frame289.BorderSizePixel = 0
8414
LocalScript290.Name = "Update"
8415
LocalScript290.Parent = Frame285
8416
table.insert(cors,sandbox(LocalScript290,function()
8417
local GUI = script.Parent
8418
8419
function updateScopeDimension()
8420
	GUI.ScopeImg1.Position = UDim2.new(0.5, -10 - (GUI.AbsoluteSize.y / 2), 0, -10)
8421
	GUI.ScopeImg1.Size = UDim2.new(0, 20 + GUI.AbsoluteSize.y, 0, 20 + GUI.AbsoluteSize.y)
8422
	GUI.ScopeImg2.Position = UDim2.new(0.5, -10 - (GUI.AbsoluteSize.y / 2), 0, -10)
8423
	GUI.ScopeImg2.Size = UDim2.new(0, 20 + GUI.AbsoluteSize.y, 0, 20 + GUI.AbsoluteSize.y)
8424
	GUI.F1.Size = UDim2.new(0, 20 + ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 1, 20)
8425
	GUI.F2.Size = UDim2.new(0, 20 + ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 1, 20)
8426
	GUI.F2.Position = UDim2.new(1, -10 - ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 0, -10)
8427
end
8428
8429
wait()
8430
8431
GUI.Changed:connect(updateScopeDimension)
8432
8433
updateScopeDimension()
8434
end))
8435
TextLabel291.Name = "Sens"
8436
TextLabel291.Parent = ScreenGui211
8437
TextLabel291.Transparency = 1
8438
TextLabel291.Size = UDim2.new(0, 100, 0, 20)
8439
TextLabel291.Text = "S: 0.3"
8440
TextLabel291.Position = UDim2.new(0.5, -50, 0.5, 50)
8441
TextLabel291.Visible = false
8442
TextLabel291.BackgroundColor3 = Color3.new(1, 1, 1)
8443
TextLabel291.BackgroundTransparency = 1
8444
TextLabel291.ZIndex = 10
8445
TextLabel291.Font = Enum.Font.SourceSansBold
8446
TextLabel291.FontSize = Enum.FontSize.Size28
8447
TextLabel291.TextColor3 = Color3.new(1, 1, 1)
8448
TextLabel291.TextStrokeTransparency = 0
8449
Part292.Name = "ham"
8450
Part292.Parent = Tool0
8451
Part292.BrickColor = BrickColor.new("Mid gray")
8452
Part292.Rotation = Vector3.new(179.98999, 89.9799957, -179.929993)
8453
Part292.FormFactor = Enum.FormFactor.Plate
8454
Part292.Size = Vector3.new(1, 0.800000012, 1)
8455
Part292.CFrame = CFrame.new(1435.26599, 48.9021072, -1310.87195, -5.96046448e-08, 7.27595761e-11, 0.99999994, 0.000796274282, 0.999999642, -1.45519152e-11, -0.999999702, 0.000796274282, -1.1920929e-07)
8456
Part292.BottomSurface = Enum.SurfaceType.Smooth
8457
Part292.TopSurface = Enum.SurfaceType.Smooth
8458
Part292.Color = Color3.new(0.803922, 0.803922, 0.803922)
8459
Part292.Position = Vector3.new(1435.26599, 48.9021072, -1310.87195)
8460
Part292.Orientation = Vector3.new(0, 90, 0.049999997)
8461
Part292.Color = Color3.new(0.803922, 0.803922, 0.803922)
8462
SpecialMesh293.Parent = Part292
8463
SpecialMesh293.MeshId = "http://www.roblox.com/asset/?id=16646125"
8464
SpecialMesh293.TextureId = "http://www.roblox.com/asset/?id=16432575"
8465
SpecialMesh293.MeshType = Enum.MeshType.FileMesh
8466
Weld294.Parent = Part292
8467
Weld294.C0 = CFrame.new(-4.71828389e-06, -1.06949216e-07, 6.73912837e-08, -1.96380037e-10, -7.15101578e-06, 1, -3.45956111e-11, 1, 9.53468771e-06, -1, 4.01852024e-11, -2.64911593e-10)
8468
Weld294.C1 = CFrame.new(-4.71828389e-06, -1.06949216e-07, 6.73912837e-08, -1.96380037e-10, -7.15101578e-06, 1, -3.45956111e-11, 1, 9.53468771e-06, -1, 4.01852024e-11, -2.64911593e-10)
8469
Weld295.Parent = Part292
8470
Weld295.C0 = CFrame.new(-1.34138972e-07, -6.91051537e-06, 0, -3.91537502e-21, 0.999999106, -0.00133771845, 2.81109586e-22, 0.00133771845, 0.999999106, 1, 3.91499535e-21, -2.86346992e-22)
8471
Weld295.C1 = CFrame.new(-1.34138972e-07, -6.91051537e-06, 0, -3.91537502e-21, 0.999999106, -0.00133771845, 2.81109586e-22, 0.00133771845, 0.999999106, 1, 3.91499535e-21, -2.86346992e-22)
8472
Weld296.Parent = Part292
8473
Weld296.C0 = CFrame.new(3.64912034e-06, -1.13236744e-07, -2.01656292e-08, -7.08486672e-11, 0.000798657886, -0.999999702, 1.55140234e-10, 0.999999702, 0.000793890678, 1, 1.55083765e-10, 7.09721865e-11)
8474
Weld296.C1 = CFrame.new(3.64912034e-06, -1.13236744e-07, -2.01656292e-08, -7.08486672e-11, 0.000798657886, -0.999999702, 1.55140234e-10, 0.999999702, 0.000793890678, 1, 1.55083765e-10, 7.09721865e-11)
8475
Weld297.Parent = Part292
8476
Weld297.C0 = CFrame.new(1.6321755e-07, 3.49538391e-06, 0, -3.9252309e-21, 0.996502578, -0.0835621059, -4.1799742e-23, 0.0835621059, 0.996502578, 1, 3.91499535e-21, -2.86346992e-22)
8477
Weld297.C1 = CFrame.new(1.6321755e-07, 3.49538391e-06, 0, -3.9252309e-21, 0.996502578, -0.0835621059, -4.1799742e-23, 0.0835621059, 0.996502578, 1, 3.91499535e-21, -2.86346992e-22)
8478
Weld298.Parent = Part292
8479
Weld298.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
8480
Weld298.C1 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
8481
Weld299.Parent = Part292
8482
Weld299.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
8483
Weld299.C1 = CFrame.new(0.533214211, 4.09488493e-05, -0.399536163, -6.19143847e-10, 0.000817726948, -0.999999702, 8.15887191e-10, 0.999999702, 0.000817726948, 1, -8.15380652e-10, -6.19810758e-10)
8484
Weld300.Parent = Part292
8485
Weld300.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
8486
Weld300.C1 = CFrame.new(-1.12273511e-07, 2.60849974e-05, -0.533189535, 1, -8.33252689e-10, -3.96865235e-10, 8.3357371e-10, 0.999999702, 0.000809622463, 3.96190469e-10, -0.000809622463, 0.999999702)
8487
Weld301.Parent = Part292
8488
Weld301.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
8489
Weld301.C1 = CFrame.new(0.533214211, 0.373362005, -4.18045545e-08, -6.20301976e-10, 0.000817726948, -0.999999702, 8.56068161e-10, 0.999999702, 0.000817726948, 1, -8.55560567e-10, -6.21001806e-10)
8490
Weld302.Parent = Part292
8491
Weld302.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
8492
Weld302.C1 = CFrame.new(-5.43287024e-06, 0.132771105, 0.400390655, 8.48401349e-10, 0.999999702, 0.000801041257, -6.20273943e-10, 0.000801041257, -0.999999702, -1, 8.47904247e-10, 6.20953344e-10)
8493
Weld303.Parent = Part292
8494
Weld303.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
8495
Weld303.C1 = CFrame.new(-2.92850495e-06, -0.400390595, -0.132823572, 8.56068161e-10, 0.999999702, 0.000817726948, -1, 8.55560678e-10, 6.21001806e-10, 6.20301976e-10, -0.000817726948, 0.999999702)
8496
Weld304.Parent = Part292
8497
Weld304.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
8498
Weld304.C1 = CFrame.new(1.20404536e-07, 1.7940567e-05, 0.132805407, -1, 8.50133963e-10, 4.23458879e-10, 8.50476911e-10, 0.999999702, 0.000810576021, -4.22769625e-10, 0.000810576021, -0.999999702)
8499
Weld305.Parent = Part292
8500
Weld305.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
8501
Weld305.C1 = CFrame.new(5.96581813e-05, -0.400390744, 0.9335953, 8.14806722e-10, 0.999999702, 0.000811847276, 1, -8.1443452e-10, -4.58876631e-10, -4.58215271e-10, 0.000811847276, -0.999999702)
8502
Weld306.Parent = Part292
8503
Weld306.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
8504
Weld306.C1 = CFrame.new(2.33017072e-05, -0.933604836, 0.400390595, 8.35977676e-10, 0.999999702, 0.000817726948, 6.19722884e-10, -0.000817726948, 0.999999702, 1, -8.35470693e-10, -6.20406282e-10)
8505
Weld307.Parent = Part292
8506
Weld307.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
8507
Weld307.C1 = CFrame.new(-1.52226988e-07, -0.373301029, -0.533214867, 1, -9.17886822e-10, -2.52556698e-10, 9.18089604e-10, 0.999999702, 0.000804378418, 2.51818288e-10, -0.000804378418, 0.999999702)
8508
Weld308.Parent = Part292
8509
Weld308.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
8510
Weld308.C1 = CFrame.new(-0.533214211, 4.09488493e-05, -0.400390595, 6.19143847e-10, -0.000817726948, 0.999999702, 8.15887191e-10, 0.999999702, 0.000817726948, -1, 8.15380652e-10, 6.19810758e-10)
8511
Weld309.Parent = Part292
8512
Weld309.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
8513
Weld309.C1 = CFrame.new(3.85732619e-08, 1.708794e-06, -0.933600962, 1, 2.30016242e-10, -1.24190033e-10, 2.3550692e-10, 0.999999702, 0.000801041722, 3.36916911e-10, -0.000808192533, 0.999999702)
8514
Weld310.Parent = Part292
8515
Weld310.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
8516
Weld310.C1 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
8517
Weld311.Parent = Part292
8518
Weld311.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
8519
Weld311.C1 = CFrame.new(0.533207953, 4.02465412e-05, -0.399536252, -4.0660561e-10, 0.997999609, 0.0632200539, 3.50466517e-10, -0.0632200539, 0.997999668, 1, 4.2794876e-10, -3.24059835e-10)
8520
Weld312.Parent = Part292
8521
Weld312.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
8522
Weld312.C1 = CFrame.new(-3.86806875e-07, 4.67300815e-05, -0.533184648, 1, 6.89605151e-10, -1.25792432e-09, 1.29899103e-09, -0.0631973371, 0.998001039, 6.08729123e-10, -0.998001099, -0.0631973371)
8523
Weld313.Parent = Part292
8524
Weld313.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
8525
Weld313.C1 = CFrame.new(0.533224404, 0.373393357, -3.90072529e-07, -8.32836911e-10, 0.998000622, 0.0632058904, 1.32148736e-09, -0.0632058978, 0.998000503, 1, 9.1469754e-10, -1.26620492e-09)
8526
Weld314.Parent = Part292
8527
Weld314.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
8528
Weld314.C1 = CFrame.new(-1.24499784e-05, 0.132795051, 0.400390744, 3.829842e-10, -0.0632034019, 0.998000741, -4.07727963e-10, 0.998000681, 0.0632034019, -1, -4.31118696e-10, 3.56448732e-10)
8529
Weld315.Parent = Part292
8530
Weld315.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
8531
Weld315.C1 = CFrame.new(9.7206248e-06, -0.400390506, -0.132816374, 3.90647487e-10, -0.0632200539, 0.997999668, -1, -4.31644803e-10, 3.64087233e-10, 4.07763739e-10, -0.997999609, -0.0632200539)
8532
Weld316.Parent = Part292
8533
Weld316.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
8534
Weld316.C1 = CFrame.new(1.12741731e-07, 1.47659775e-05, 0.132799253, -1, -2.34147424e-10, 3.70999564e-10, 3.85058263e-10, -0.0632105544, 0.998000205, -2.10228071e-10, 0.998000264, 0.0632105544)
8535
Weld317.Parent = Part292
8536
Weld317.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
8537
Weld317.C1 = CFrame.new(3.39694889e-05, -0.400390744, 0.933587611, 3.49388324e-10, -0.0632092953, 0.998000324, 1, 2.67267597e-10, -3.33160693e-10, -2.45674314e-10, 0.998000324, 0.0632092878)
8538
Weld318.Parent = Part292
8539
Weld318.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
8540
Weld318.C1 = CFrame.new(9.72479302e-06, -0.933596671, 0.400390506, 3.70557002e-10, -0.0632200539, 0.997999668, 4.07184675e-10, -0.997999609, -0.0632200539, 1, 4.29796781e-10, -3.44073547e-10)
8541
Weld319.Parent = Part292
8542
Weld319.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
8543
Weld319.C1 = CFrame.new(-9.38037488e-08, -0.37332812, -0.533202708, 1, 6.78072321e-11, -4.49284138e-10, 4.52671733e-10, -0.0632067397, 0.998000443, 3.92738446e-11, -0.998000562, -0.0632067248)
8544
Weld320.Parent = Part292
8545
Weld320.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
8546
Weld320.C1 = CFrame.new(-0.533207953, 4.02465412e-05, -0.400390506, 4.0660561e-10, -0.997999609, -0.0632200539, 3.50466517e-10, -0.0632200539, 0.997999668, -1, -4.2794876e-10, 3.24059835e-10)
8547
Weld321.Parent = Part292
8548
Weld321.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
8549
Weld321.C1 = CFrame.new(-7.07679817e-08, 2.65414451e-06, -0.933581531, 1, 1.09589553e-10, 2.37319969e-10, 2.3550692e-10, -0.0632223934, 0.997999489, 3.36916911e-10, -0.997999012, -0.0632295236)
8550
Weld322.Parent = Part292
8551
Weld322.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
8552
Weld322.C1 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
8553
Weld323.Parent = Part292
8554
Weld323.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
8555
Weld323.C1 = CFrame.new(0.533212543, 4.33809255e-05, -0.399536133, -4.77452022e-10, 0.000812952989, -0.999999702, 5.0560689e-10, 0.999999702, 0.000812952989, 1, -5.05218589e-10, -4.77862916e-10)
8556
Weld324.Parent = Part292
8557
Weld324.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
8558
Weld324.C1 = CFrame.new(-2.3357552e-07, 5.55160077e-05, -0.533165157, 1, -1.76372972e-09, -8.22718005e-10, 1.76440684e-09, 0.999999702, 0.000823921058, 8.21264445e-10, -0.000823920942, 0.999999762)
8559
Weld325.Parent = Part292
8560
Weld325.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
8561
Weld325.C1 = CFrame.new(0.533225417, 0.37339133, -1.62893741e-07, -1.04536846e-09, 0.000832025486, -0.999999642, 1.78690496e-09, 0.999999702, 0.000832025427, 1, -1.78603476e-09, -1.04685483e-09)
8562
Weld326.Parent = Part292
8563
Weld326.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
8564
Weld326.C1 = CFrame.new(-4.40306758e-06, 0.132771388, 0.400390655, 8.48401349e-10, 0.999999702, 0.000801038579, -6.20273943e-10, 0.000801038579, -0.999999702, -1, 8.47904247e-10, 6.20953344e-10)
8565
Weld327.Parent = Part292
8566
Weld327.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
8567
Weld327.C1 = CFrame.new(1.28626851e-07, -0.400390595, -0.13282387, 8.56068161e-10, 0.999999702, 0.000817724678, -1, 8.55560678e-10, 6.21001806e-10, 6.20301976e-10, -0.000817724678, 0.999999702)
8568
Weld328.Parent = Part292
8569
Weld328.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
8570
Weld328.C1 = CFrame.new(1.20785018e-07, 3.03727884e-05, 0.132775158, -1, 8.50133963e-10, 4.23458851e-10, 8.50476911e-10, 0.999999702, 0.000810569618, -4.22769625e-10, 0.000810569618, -0.999999702)
8571
Weld329.Parent = Part292
8572
Weld329.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
8573
Weld329.C1 = CFrame.new(6.63429382e-05, -0.400390744, 0.933595598, 8.14806722e-10, 0.999999702, 0.000811841746, 1, -8.14434464e-10, -4.58876631e-10, -4.58215271e-10, 0.000811841746, -0.999999702)
8574
Weld330.Parent = Part292
8575
Weld330.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
8576
Weld330.C1 = CFrame.new(2.15904674e-05, -0.933605134, 0.400390595, 8.35977676e-10, 0.999999702, 0.000817724678, 6.19722884e-10, -0.000817724678, 0.999999702, 1, -8.35470693e-10, -6.20406337e-10)
8577
Weld331.Parent = Part292
8578
Weld331.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
8579
Weld331.C1 = CFrame.new(-1.52702455e-07, -0.373297483, -0.533215165, 1, -9.17886822e-10, -2.52556753e-10, 9.18089604e-10, 0.999999702, 0.000804377254, 2.51818288e-10, -0.000804377254, 0.999999702)
8580
Weld332.Parent = Part292
8581
Weld332.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
8582
Weld332.C1 = CFrame.new(-0.533214509, 4.16217954e-05, -0.400390595, 6.19143847e-10, -0.000817724678, 0.999999702, 8.15887191e-10, 0.999999702, 0.000817724678, -1, 8.15380652e-10, 6.19810814e-10)
8583
Weld333.Parent = Part292
8584
Weld333.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
8585
Weld333.C1 = CFrame.new(3.86851866e-08, 1.33582325e-05, -0.93360126, 1, 2.30016242e-10, -1.24190033e-10, 2.3550692e-10, 0.999999702, 0.000801045971, 3.36916911e-10, -0.000808193639, 0.999999702)
8586
Weld334.Parent = Part292
8587
Weld334.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
8588
Weld334.C1 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
8589
Weld335.Parent = Part292
8590
Weld335.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
8591
Weld335.C1 = CFrame.new(0.533207655, 4.00506069e-05, -0.399536133, -2.64911593e-10, 0.997566879, -0.069715552, 4.01852024e-11, 0.0697179288, 0.9975667, 1, 1.98314268e-10, 2.08188033e-11)
8592
Weld336.Parent = Part292
8593
Weld336.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
8594
Weld336.C1 = CFrame.new(-4.09776021e-07, 5.64174661e-05, -0.533183694, 1, 5.16648224e-10, -1.33828371e-09, 1.29899103e-09, 0.0697453171, 0.997564912, 6.08729123e-10, -0.997564912, 0.0697453246)
8595
Weld337.Parent = Part292
8596
Weld337.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
8597
Weld337.C1 = CFrame.new(0.53322345, 0.373397857, -4.03579065e-07, -8.32836911e-10, 0.997565448, -0.0697367489, 1.32148736e-09, 0.0697367489, 0.997565448, 1, 7.38653139e-10, -1.37634937e-09)
8598
Weld338.Parent = Part292
8599
Weld338.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
8600
Weld338.C1 = CFrame.new(-9.81253652e-06, 0.132794693, 0.400390744, 3.829842e-10, 0.0697392747, 0.997565329, -4.07727963e-10, 0.997565329, -0.0697392747, -1, -3.80026233e-10, 4.10486423e-10)
8601
Weld339.Parent = Part292
8602
Weld339.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
8603
Weld339.C1 = CFrame.new(2.00291402e-06, -0.400390506, -0.132815465, 3.90647487e-10, 0.0697226226, 0.997566521, -1, -3.79534459e-10, 4.18127227e-10, 4.07763739e-10, -0.997566402, 0.0697226301)
8604
Weld340.Parent = Part292
8605
Weld340.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
8606
Weld340.C1 = CFrame.new(1.20755828e-07, 4.99412226e-06, 0.132797584, -1, -1.82865389e-10, 3.9878062e-10, 3.85058263e-10, 0.0697321221, 0.997565806, -2.10228071e-10, 0.997565746, -0.0697321221)
8607
Weld341.Parent = Part292
8608
Weld341.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
8609
Weld341.C1 = CFrame.new(4.74962835e-05, -0.400390744, 0.933588088, 3.49388324e-10, 0.0697333813, 0.997565746, 1, 2.20712254e-10, -3.65669495e-10, -2.45674314e-10, 0.997565746, -0.0697333887)
8610
Weld342.Parent = Part292
8611
Weld342.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
8612
Weld342.C1 = CFrame.new(2.00708268e-06, -0.933598638, 0.400390506, 3.70557002e-10, 0.0697226226, 0.997566521, 4.07184675e-10, -0.997566402, 0.0697226301, 1, 3.80357551e-10, -3.98045263e-10)
8613
Weld343.Parent = Part292
8614
Weld343.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
8615
Weld343.C1 = CFrame.new(-1.0609989e-07, -0.373298496, -0.533198833, 1, 7.61074016e-12, -4.54308563e-10, 4.52671733e-10, 0.0697359443, 0.997565567, 3.92738446e-11, -0.997565567, 0.0697359443)
8616
Weld344.Parent = Part292
8617
Weld344.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
8618
Weld344.C1 = CFrame.new(-0.533206105, 3.25288311e-05, -0.400390536, 4.0660561e-10, -0.997566402, 0.0697226301, 3.50466517e-10, 0.0697226226, 0.997566521, -1, -3.8118067e-10, 3.77963272e-10)
8619
Weld345.Parent = Part292
8620
Weld345.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
8621
Weld345.C1 = CFrame.new(-6.55530812e-08, 2.72896377e-05, -0.933581114, 1, 1.40101444e-10, 2.20685789e-10, 2.3550692e-10, 0.0697202981, 0.997566581, 3.36916911e-10, -0.997567058, 0.0697131678)
8622
Weld346.Parent = Part292
8623
Weld346.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
8624
Weld346.C1 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
8625
Weld347.Parent = Part292
8626
Weld347.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
8627
Weld347.C1 = CFrame.new(0.5332008, 8.52442608e-05, -0.399536431, -1.4692636e-09, 0.000846330251, -0.999999642, 2.67755484e-09, 0.999999702, 0.000846330193, 1, -2.67631073e-09, -1.47152912e-09)
8628
Weld348.Parent = Part292
8629
Weld348.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
8630
Weld348.C1 = CFrame.new(-3.54604822e-07, 7.10747918e-05, -0.533170998, 1, -2.69418865e-09, -1.24858379e-09, 2.69523404e-09, 0.999999702, 0.000838225707, 1.24632515e-09, -0.000838225707, 0.999999642)
8631
Weld349.Parent = Part292
8632
Weld349.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
8633
Weld349.C1 = CFrame.new(0.533231318, 0.373406291, -2.83906502e-07, -1.47042167e-09, 0.000846330251, -0.999999642, 2.71773581e-09, 0.999999702, 0.000846330193, 1, -2.71649037e-09, -1.47272128e-09)
8634
Weld350.Parent = Part292
8635
Weld350.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
8636
Weld350.C1 = CFrame.new(5.93345294e-06, 0.132752568, 0.400390923, 2.71005463e-09, 0.999999702, 0.000829644501, -1.47042467e-09, 0.000829644501, -0.999999642, -1, 2.70883382e-09, 1.47267265e-09)
8637
Weld351.Parent = Part292
8638
Weld351.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
8639
Weld351.C1 = CFrame.new(8.4651374e-06, -0.400390327, -0.132810175, 2.71773581e-09, 0.999999702, 0.000846330193, -1, 2.71649037e-09, 1.47272128e-09, 1.47042167e-09, -0.000846330251, 0.999999642)
8640
Weld352.Parent = Part292
8641
Weld352.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
8642
Weld352.C1 = CFrame.new(3.62762336e-07, 2.95230384e-05, 0.132817402, -1, 2.71106715e-09, 1.27517807e-09, 2.71213629e-09, 0.999999702, 0.000839179265, -1.27290256e-09, 0.000839179265, -0.999999642)
8643
Weld353.Parent = Part292
8644
Weld353.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
8645
Weld353.C1 = CFrame.new(0.000142092002, -0.400391012, 0.93360728, 2.67646505e-09, 0.999999702, 0.000840450521, 1, -2.6753646e-09, -1.31059485e-09, -1.30834588e-09, 0.000840450521, -0.999999642)
8646
Weld354.Parent = Part292
8647
Weld354.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
8648
Weld354.C1 = CFrame.new(0.000101452555, -0.933591425, 0.400390327, 2.69764522e-09, 0.999999702, 0.000846330193, 1.46984258e-09, -0.000846330251, 0.999999642, 1, -2.69640044e-09, -1.47212509e-09)
8649
Weld355.Parent = Part292
8650
Weld355.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
8651
Weld355.C1 = CFrame.new(-3.94687646e-07, -0.373256177, -0.533165812, 1, -2.77882695e-09, -1.10427789e-09, 2.77974577e-09, 0.999999702, 0.000832981663, 1.10196274e-09, -0.000832981663, 0.999999642)
8652
Weld356.Parent = Part292
8653
Weld356.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
8654
Weld356.C1 = CFrame.new(-0.5332008, 8.52442608e-05, -0.400390327, 1.4692636e-09, -0.000846330251, 0.999999642, 2.67755484e-09, 0.999999702, 0.000846330193, -1, 2.67631073e-09, 1.47152912e-09)
8655
Weld357.Parent = Part292
8656
Weld357.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
8657
Weld357.C1 = CFrame.new(-2.17958132e-08, 2.16124681e-05, -0.933588922, 1, -7.00479896e-10, -5.50027579e-10, 7.00928149e-10, 0.999999702, 0.000815343345, 5.49456258e-10, -0.000815343345, 0.999999702)
8658
Weld358.Parent = Part292
8659
Weld358.C0 = CFrame.new(2.73681553e-06, -7.9203943e-08, -1.32984567e-07, -1, 4.29049651e-05, 1.27289645e-09, 4.29049651e-05, 1, -2.71216405e-09, -1.27303168e-09, -2.7121092e-09, -1)
8660
Weld358.C1 = CFrame.new(2.73681553e-06, -7.9203943e-08, -1.32984567e-07, -1, 4.29049651e-05, 1.27289645e-09, 4.29049651e-05, 1, -2.71216405e-09, -1.27303168e-09, -2.7121092e-09, -1)
8661
Weld358.Part0 = Part292
8662
Weld358.Part1 = Part292
8663
Weld359.Parent = Part292
8664
Weld359.C0 = CFrame.new(2.58500165e-07, 1.47510104e-06, 9.1201764e-07, -0.0304826926, -0.998224854, 0.0511664115, -0.997482359, 0.027100971, -0.0655324385, 0.0640294328, -0.0530351698, -0.996537805)
8665
Weld359.C1 = CFrame.new(2.58500165e-07, 1.47510104e-06, 9.1201764e-07, -0.0304826926, -0.998224854, 0.0511664115, -0.997482359, 0.027100971, -0.0655324385, 0.0640294328, -0.0530351698, -0.996537805)
8666
Weld359.Part0 = Part292
8667
Weld359.Part1 = Part292
8668
Weld360.Parent = Part292
8669
Weld360.C0 = CFrame.new(5.81937775e-06, 3.66444342e-09, 4.0117655e-07, -1, 1.83190277e-05, 1.62574338e-07, 1.82680233e-05, 1, -5.43802935e-06, -1.05692934e-07, -5.39845632e-06, -1.00000012)
8670
Weld360.C1 = CFrame.new(5.81937775e-06, 3.66444342e-09, 4.0117655e-07, -1, 1.83190277e-05, 1.62574338e-07, 1.82680233e-05, 1, -5.43802935e-06, -1.05692934e-07, -5.39845632e-06, -1.00000012)
8671
Weld360.Part0 = Part292
8672
Weld360.Part1 = Part292
8673
Weld361.Parent = Part292
8674
Weld361.C0 = CFrame.new(5.19993637e-06, -2.07580495e-08, -4.3925632e-09, -0.99999994, -7.85102384e-06, 1.626222e-07, -7.9020283e-06, 1, -7.75445642e-06, -1.05581343e-07, -7.71488703e-06, -1.00000012)
8675
Weld361.C1 = CFrame.new(5.19993637e-06, -2.07580495e-08, -4.3925632e-09, -0.99999994, -7.85102384e-06, 1.626222e-07, -7.9020283e-06, 1, -7.75445642e-06, -1.05581343e-07, -7.71488703e-06, -1.00000012)
8676
Weld361.Part0 = Part292
8677
Weld361.Part1 = Part292
8678
Weld362.Parent = Part292
8679
Weld362.C0 = CFrame.new(-4.51719643e-07, 1.87397453e-09, -3.76758157e-06, -0.999999821, -3.77100787e-06, -6.00899241e-09, -3.82201188e-06, 1, -4.80523522e-06, 6.30072776e-08, -4.76566538e-06, -1.00000012)
8680
Weld362.C1 = CFrame.new(-4.51719643e-07, 1.87397453e-09, -3.76758157e-06, -0.999999821, -3.77100787e-06, -6.00899241e-09, -3.82201188e-06, 1, -4.80523522e-06, 6.30072776e-08, -4.76566538e-06, -1.00000012)
8681
Weld362.Part0 = Part292
8682
Weld362.Part1 = Part292
8683
Weld363.Parent = Part292
8684
Weld363.C0 = CFrame.new(1.26816673e-07, -2.34453221e-08, 5.90223294e-07, -0.999999762, -1.85550198e-05, -5.83594151e-09, -1.86060279e-05, 1, -8.11173049e-06, 6.29660306e-08, -8.07215929e-06, -1.00000012)
8685
Weld363.C1 = CFrame.new(1.26816673e-07, -2.34453221e-08, 5.90223294e-07, -0.999999762, -1.85550198e-05, -5.83594151e-09, -1.86060279e-05, 1, -8.11173049e-06, 6.29660306e-08, -8.07215929e-06, -1.00000012)
8686
Weld363.Part0 = Part292
8687
Weld363.Part1 = Part292
8688
Weld364.Parent = Part292
8689
Weld364.C0 = CFrame.new(8.01678993e-07, -1.1426212e-08, -1.10775409e-06, -0.999999702, -1.59489209e-05, -5.85270321e-09, -1.5999929e-05, 1, -9.83655082e-06, 6.29892654e-08, -9.79697961e-06, -1.00000012)
8690
Weld364.C1 = CFrame.new(8.01678993e-07, -1.1426212e-08, -1.10775409e-06, -0.999999702, -1.59489209e-05, -5.85270321e-09, -1.5999929e-05, 1, -9.83655082e-06, 6.29892654e-08, -9.79697961e-06, -1.00000012)
8691
Weld364.Part0 = Part292
8692
Weld364.Part1 = Part292
8693
Weld365.Parent = Part292
8694
Weld365.C0 = CFrame.new(1.07855703e-06, -1.98978043e-08, -4.36352309e-07, -0.999999642, -1.87142232e-05, -3.42939558e-07, -1.87652277e-05, 1, -1.32089617e-05, 4.00166499e-07, -1.31693841e-05, -1.00000012)
8695
Weld365.C1 = CFrame.new(1.07855703e-06, -1.98978043e-08, -4.36352309e-07, -0.999999642, -1.87142232e-05, -3.42939558e-07, -1.87652277e-05, 1, -1.32089617e-05, 4.00166499e-07, -1.31693841e-05, -1.00000012)
8696
Weld365.Part0 = Part292
8697
Weld365.Part1 = Part292
8698
Weld366.Parent = Part292
8699
Weld366.C0 = CFrame.new(-2.96131202e-06, 1.15200116e-08, -5.08313747e-08, -0.999999583, -2.1935306e-05, -3.42888029e-07, -2.19863105e-05, 1, -1.28208176e-05, 4.00148849e-07, -1.27812382e-05, -1.00000012)
8700
Weld366.C1 = CFrame.new(-2.96131202e-06, 1.15200116e-08, -5.08313747e-08, -0.999999583, -2.1935306e-05, -3.42888029e-07, -2.19863105e-05, 1, -1.28208176e-05, 4.00148849e-07, -1.27812382e-05, -1.00000012)
8701
Weld366.Part0 = Part292
8702
Weld366.Part1 = Part292
8703
Part367.Name = "BoltBack"
8704
Part367.Parent = Tool0
8705
Part367.BrickColor = BrickColor.new("Really black")
8706
Part367.Transparency = 1
8707
Part367.Rotation = Vector3.new(179.979996, 0, -180)
8708
Part367.Anchored = true
8709
Part367.CanCollide = false
8710
Part367.FormFactor = Enum.FormFactor.Custom
8711
Part367.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
8712
Part367.CFrame = CFrame.new(1436.87451, 48.6733093, -1310.87573, -1, 0, 0, 0, 1, -0.000345999986, 0, -0.000345999986, -1)
8713
Part367.BottomSurface = Enum.SurfaceType.Smooth
8714
Part367.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
8715
Part367.TopSurface = Enum.SurfaceType.Smooth
8716
Part367.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
8717
Part367.Position = Vector3.new(1436.87451, 48.6733093, -1310.87573)
8718
Part367.Orientation = Vector3.new(0.0199999996, 180, 0)
8719
Part367.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
8720
Sound368.Name = "FireSound"
8721
Sound368.Parent = Part367
8722-
Sound368.SoundId = "rbxassetid://135039581"
8722+
Sound368.SoundId = "rbxassetid://0"
8723
Sound368.Volume = 1
8724
Sound369.Name = "ReloadSound"
8725
Sound369.Parent = Part367
8726-
Sound369.SoundId = "rbxassetid://255061162"
8726+
Sound369.SoundId = "rbxassetid://0"
8727
Sound369.Volume = 1
8728
Part370.Name = "Bolt"
8729
Part370.Parent = Tool0
8730
Part370.BrickColor = BrickColor.new("Really black")
8731
Part370.Transparency = 1
8732
Part370.Rotation = Vector3.new(179.979996, 0, -180)
8733
Part370.Anchored = true
8734
Part370.CanCollide = false
8735
Part370.FormFactor = Enum.FormFactor.Custom
8736
Part370.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
8737
Part370.CFrame = CFrame.new(1436.87451, 48.6733093, -1310.87573, -1, 0, 0, 0, 1, -0.000345999986, 0, -0.000345999986, -1)
8738
Part370.BottomSurface = Enum.SurfaceType.Smooth
8739
Part370.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
8740
Part370.TopSurface = Enum.SurfaceType.Smooth
8741
Part370.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
8742
Part370.Position = Vector3.new(1436.87451, 48.6733093, -1310.87573)
8743
Part370.Orientation = Vector3.new(0.0199999996, 180, 0)
8744
Part370.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
8745
Sound371.Name = "FireSound"
8746
Sound371.Parent = Part370
8747-
Sound371.SoundId = "rbxassetid://135039581"
8747+
Sound371.SoundId = "rbxassetid://0"
8748
Sound371.Volume = 1
8749
Sound372.Name = "ReloadSound"
8750
Sound372.Parent = Part370
8751-
Sound372.SoundId = "rbxassetid://255061162"
8751+
Sound372.SoundId = "rbxassetid://0"
8752
Sound372.Volume = 1
8753
Model373.Name = "Nigger"
8754
Model373.Parent = Tool0
8755
Part374.Name = "Right Leg"
8756
Part374.Parent = Model373
8757
Part374.BrickColor = BrickColor.new("Reddish brown")
8758
Part374.Rotation = Vector3.new(0, -90, 0)
8759
Part374.Anchored = true
8760
Part374.CanCollide = false
8761
Part374.FormFactor = Enum.FormFactor.Symmetric
8762
Part374.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
8763
Part374.CFrame = CFrame.new(1434.75476, 44.2668762, -1310.34082, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8764
Part374.BottomSurface = Enum.SurfaceType.Smooth
8765
Part374.Color = Color3.new(0.411765, 0.25098, 0.156863)
8766
Part374.Position = Vector3.new(1434.75476, 44.2668762, -1310.34082)
8767
Part374.Orientation = Vector3.new(0, -90, 0)
8768
Part374.Color = Color3.new(0.411765, 0.25098, 0.156863)
8769
Decal375.Parent = Part374
8770
Decal375.Texture = "http://www.roblox.com/asset/?id=513989292"
8771
Part376.Name = "Torso"
8772
Part376.Parent = Model373
8773
Part376.BrickColor = BrickColor.new("Reddish brown")
8774
Part376.Rotation = Vector3.new(0, -90, 0)
8775
Part376.Anchored = true
8776
Part376.FormFactor = Enum.FormFactor.Symmetric
8777
Part376.Size = Vector3.new(0.53363061, 0.53363061, 0.266815305)
8778
Part376.CFrame = CFrame.new(1434.75476, 44.8004494, -1310.47424, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8779
Part376.LeftSurface = Enum.SurfaceType.Weld
8780
Part376.RightSurface = Enum.SurfaceType.Weld
8781
Part376.Color = Color3.new(0.411765, 0.25098, 0.156863)
8782
Part376.Position = Vector3.new(1434.75476, 44.8004494, -1310.47424)
8783
Part376.Orientation = Vector3.new(0, -90, 0)
8784
Part376.Color = Color3.new(0.411765, 0.25098, 0.156863)
8785
Decal377.Name = "roblox"
8786
Decal377.Parent = Part376
8787
Motor378.Name = "Right Shoulder"
8788
Motor378.Parent = Part376
8789
Motor378.C0 = CFrame.new(0.266815305, 0.133407652, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
8790
Motor378.C1 = CFrame.new(-0.133407652, 0.133407652, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
8791
Motor378.Part0 = Part376
8792
Motor378.Part1 = Part383
8793
Motor378.MaxVelocity = 0.5
8794
Motor379.Name = "Left Shoulder"
8795
Motor379.Parent = Part376
8796
Motor379.C0 = CFrame.new(-0.266815305, 0.133407652, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8797
Motor379.C1 = CFrame.new(0.133407652, 0.133407652, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8798
Motor379.Part0 = Part376
8799
Motor379.Part1 = Part385
8800
Motor379.MaxVelocity = 0.5
8801
Motor380.Name = "Right Hip"
8802
Motor380.Parent = Part376
8803
Motor380.C0 = CFrame.new(0.266815305, -0.266815305, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
8804
Motor380.C1 = CFrame.new(0.133407652, 0.266815305, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
8805
Motor380.Part0 = Part376
8806
Motor380.Part1 = Part374
8807
Motor380.MaxVelocity = 0.10000000149012
8808
Motor381.Name = "Left Hip"
8809
Motor381.Parent = Part376
8810
Motor381.C0 = CFrame.new(-0.266815305, -0.266815305, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8811
Motor381.C1 = CFrame.new(-0.133407652, 0.266815305, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8812
Motor381.Part0 = Part376
8813
Motor381.Part1 = Part384
8814
Motor381.MaxVelocity = 0.10000000149012
8815
Motor382.Name = "Neck"
8816
Motor382.Parent = Part376
8817
Motor382.C0 = CFrame.new(0, 0.266815305, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
8818
Motor382.C1 = CFrame.new(0, -0.133407652, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
8819
Motor382.Part0 = Part376
8820
Motor382.Part1 = Part386
8821
Motor382.MaxVelocity = 0.10000000149012
8822
Part383.Name = "Right Arm"
8823
Part383.Parent = Model373
8824
Part383.BrickColor = BrickColor.new("Reddish brown")
8825
Part383.Rotation = Vector3.new(0, -90, 0)
8826
Part383.Anchored = true
8827
Part383.CanCollide = false
8828
Part383.FormFactor = Enum.FormFactor.Symmetric
8829
Part383.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
8830
Part383.CFrame = CFrame.new(1434.75476, 44.8004532, -1310.07397, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8831
Part383.Color = Color3.new(0.411765, 0.25098, 0.156863)
8832
Part383.Position = Vector3.new(1434.75476, 44.8004532, -1310.07397)
8833
Part383.Orientation = Vector3.new(0, -90, 0)
8834
Part383.Color = Color3.new(0.411765, 0.25098, 0.156863)
8835
Part384.Name = "Left Leg"
8836
Part384.Parent = Model373
8837
Part384.BrickColor = BrickColor.new("Reddish brown")
8838
Part384.Rotation = Vector3.new(0, -90, 0)
8839
Part384.Anchored = true
8840
Part384.CanCollide = false
8841
Part384.FormFactor = Enum.FormFactor.Symmetric
8842
Part384.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
8843
Part384.CFrame = CFrame.new(1434.75476, 44.2668228, -1310.60767, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8844
Part384.BottomSurface = Enum.SurfaceType.Smooth
8845
Part384.Color = Color3.new(0.411765, 0.25098, 0.156863)
8846
Part384.Position = Vector3.new(1434.75476, 44.2668228, -1310.60767)
8847
Part384.Orientation = Vector3.new(0, -90, 0)
8848
Part384.Color = Color3.new(0.411765, 0.25098, 0.156863)
8849
Part385.Name = "Left Arm"
8850
Part385.Parent = Model373
8851
Part385.BrickColor = BrickColor.new("Reddish brown")
8852
Part385.Rotation = Vector3.new(0, -90, 0)
8853
Part385.Anchored = true
8854
Part385.CanCollide = false
8855
Part385.FormFactor = Enum.FormFactor.Symmetric
8856
Part385.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
8857
Part385.CFrame = CFrame.new(1434.75476, 44.8004341, -1310.87451, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8858
Part385.Color = Color3.new(0.411765, 0.25098, 0.156863)
8859
Part385.Position = Vector3.new(1434.75476, 44.8004341, -1310.87451)
8860
Part385.Orientation = Vector3.new(0, -90, 0)
8861
Part385.Color = Color3.new(0.411765, 0.25098, 0.156863)
8862
Part386.Name = "Head"
8863
Part386.Parent = Model373
8864
Part386.BrickColor = BrickColor.new("Reddish brown")
8865
Part386.Rotation = Vector3.new(0, -90, 0)
8866
Part386.Anchored = true
8867
Part386.FormFactor = Enum.FormFactor.Symmetric
8868
Part386.Size = Vector3.new(0.53363061, 0.266815305, 0.266815305)
8869
Part386.CFrame = CFrame.new(1434.75476, 45.2006721, -1310.47424, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8870
Part386.TopSurface = Enum.SurfaceType.Smooth
8871
Part386.Color = Color3.new(0.411765, 0.25098, 0.156863)
8872
Part386.Position = Vector3.new(1434.75476, 45.2006721, -1310.47424)
8873
Part386.Orientation = Vector3.new(0, -90, 0)
8874
Part386.Color = Color3.new(0.411765, 0.25098, 0.156863)
8875
SpecialMesh387.Parent = Part386
8876
SpecialMesh387.Scale = Vector3.new(1.25, 1.25, 1.25)
8877
SpecialMesh387.Scale = Vector3.new(1.25, 1.25, 1.25)
8878
Decal388.Parent = Part386
8879
Decal388.Texture = "http://www.roblox.com/asset/?id=42030236"
8880
Decal389.Parent = Part386
8881
Decal389.Texture = "http://www.roblox.com/asset/?id=513989292"
8882
Humanoid390.Parent = Model373
8883
Humanoid390.RightLeg = Part374
8884
Humanoid390.LeftLeg = Part384
8885
Humanoid390.Torso = Part376
8886
Humanoid390.MaxHealth = 0
8887
Script391.Name = "Humaniod"
8888
Script391.Parent = Model373
8889
table.insert(cors,sandbox(Script391,function()
8890
local Model = script.Parent
8891
local Backup = Model:clone()
8892
8893
function Respawn()
8894
	Model:breakJoints()
8895
8896
	wait(5)
8897
8898
	script.Parent = Model.Parent
8899
8900
	Model:remove()
8901
	Model = Backup:clone()
8902
	Model.Parent = script.Parent
8903
	Model:makeJoints()
8904
8905
	script:remove()
8906
end
8907
8908
Model.Humanoid.Died:connect(Respawn)
8909
8910
function waitForChild(parent, childName)
8911
	local child = parent:findFirstChild(childName)
8912
8913
	if child then
8914
		return child
8915
	end
8916
8917
	while true do
8918
		print(childName)
8919
8920
		child = parent.ChildAdded:wait()
8921
8922
		if child.Name==childName then
8923
			return child
8924
		end
8925
	end
8926
end
8927
8928
-- declarations
8929
8930
local Figure = script.Parent
8931
local Head = waitForChild(Figure, "Head")
8932
local Humanoid = waitForChild(Figure, "Humanoid")
8933
8934
Figure.PrimaryPart = Head
8935
8936
-- ANIMATION
8937
8938
function Joint(Name, Part0, Part1, C0, C1, MaxVelocity)
8939
	local Motor = Instance.new("Motor")
8940
8941
	Motor.C0 = C0
8942
	Motor.C1 = C1
8943
	Motor.MaxVelocity = MaxVelocity
8944
	Motor.Name = Name
8945
	Motor.Parent = Part0
8946
	Motor.Part0 = Part0
8947
	Motor.Part1 = Part1
8948
end
8949
8950
-- declarations
8951
8952
local Torso = waitForChild(Figure, "Torso")
8953
local LeftArm = waitForChild(Figure, "Left Arm")
8954
local LeftLeg = waitForChild(Figure, "Left Leg")
8955
local RightArm = waitForChild(Figure, "Right Arm")
8956
local RightLeg = waitForChild(Figure, "Right Leg")
8957
8958
local Joints = {
8959
{"Right Shoulder", Torso, RightArm, CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), 0.5},
8960
{"Left Shoulder", Torso, LeftArm, CFrame.new(-1, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), CFrame.new(0.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), 0.5},
8961
{"Right Hip", Torso, RightLeg, CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), 0.10000000149012},
8962
{"Left Hip", Torso, LeftLeg, CFrame.new(-1, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), CFrame.new(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), 0.10000000149012},
8963
{"Neck", Torso, Head, CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0), CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0), 0.10000000149012}}
8964
8965
Torso:breakJoints()
8966
8967
for _, v in pairs(Joints) do
8968
	Joint(unpack(v))
8969
end
8970
8971
local RightShoulder = waitForChild(Torso, "Right Shoulder")
8972
local LeftShoulder = waitForChild(Torso, "Left Shoulder")
8973
local RightHip = waitForChild(Torso, "Right Hip")
8974
local LeftHip = waitForChild(Torso, "Left Hip")
8975
local Neck = waitForChild(Torso, "Neck")
8976
local Humanoid = waitForChild(Figure, "Humanoid")
8977
local pose = "Standing"
8978
8979
local toolAnim = "None"
8980
local toolAnimTime = 0
8981
8982
-- functions
8983
8984
function onRunning(speed)
8985
	if speed>0 then
8986
		pose = "Running"
8987
	else
8988
		pose = "Standing"
8989
	end
8990
end
8991
8992
function onDied()
8993
	pose = "Dead"
8994
end
8995
8996
function onJumping()
8997
	pose = "Jumping"
8998
end
8999
9000
function onClimbing()
9001
	pose = "Climbing"
9002
end
9003
9004
function onGettingUp()
9005
	pose = "GettingUp"
9006
end
9007
9008
function onFreeFall()
9009
	pose = "FreeFall"
9010
end
9011
9012
function onFallingDown()
9013
	pose = "FallingDown"
9014
end
9015
9016
function onSeated()
9017
	pose = "Seated"
9018
end
9019
9020
function onPlatformStanding()
9021
	pose = "PlatformStanding"
9022
end
9023
9024
function moveJump()
9025
	RightShoulder.MaxVelocity = 0.5
9026
	LeftShoulder.MaxVelocity = 0.5
9027
	RightShoulder.DesiredAngle = 3.14
9028
	LeftShoulder.DesiredAngle = -3.14
9029
	RightHip.DesiredAngle = 0
9030
	LeftHip.DesiredAngle = 0
9031
end
9032
9033
9034
-- same as jump for now
9035
9036
function moveFreeFall()
9037
	RightShoulder.MaxVelocity = 0.5
9038
	LeftShoulder.MaxVelocity = 0.5
9039
	RightShoulder.DesiredAngle = 3.14
9040
	LeftShoulder.DesiredAngle = -3.14
9041
	RightHip.DesiredAngle = 0
9042
	LeftHip.DesiredAngle = 0
9043
end
9044
9045
function moveSit()
9046
	RightShoulder.MaxVelocity = 0.15
9047
	LeftShoulder.MaxVelocity = 0.15
9048
	RightShoulder.DesiredAngle = 3.14 /2
9049
	LeftShoulder.DesiredAngle = -3.14 /2
9050
	RightHip.DesiredAngle = 3.14 /2
9051
	LeftHip.DesiredAngle = -3.14 /2
9052
end
9053
9054
function getTool()	
9055
	for _, kid in ipairs(Figure:GetChildren()) do
9056
		if kid.className == "Tool" then return kid end
9057
	end
9058
	return nil
9059
end
9060
9061
function getToolAnim(tool)
9062
	for _, c in ipairs(tool:GetChildren()) do
9063
		if c.Name == "toolanim" and c.className == "StringValue" then
9064
			return c
9065
		end
9066
	end
9067
	return nil
9068
end
9069
9070
function animateTool()
9071
	
9072
	if (toolAnim == "None") then
9073
		RightShoulder.DesiredAngle = 1.57
9074
		return
9075
	end
9076
9077
	if (toolAnim == "Slash") then
9078
		RightShoulder.MaxVelocity = 0.5
9079
		RightShoulder.DesiredAngle = 0
9080
		return
9081
	end
9082
9083
	if (toolAnim == "Lunge") then
9084
		RightShoulder.MaxVelocity = 0.5
9085
		LeftShoulder.MaxVelocity = 0.5
9086
		RightHip.MaxVelocity = 0.5
9087
		LeftHip.MaxVelocity = 0.5
9088
		RightShoulder.DesiredAngle = 1.57
9089
		LeftShoulder.DesiredAngle = 1.0
9090
		RightHip.DesiredAngle = 1.57
9091
		LeftHip.DesiredAngle = 1.0
9092
		return
9093
	end
9094
end
9095
9096
function move(time)
9097
	local amplitude
9098
	local frequency
9099
  
9100
	if (pose == "Jumping") then
9101
		moveJump()
9102
		return
9103
	end
9104
9105
	if (pose == "FreeFall") then
9106
		moveFreeFall()
9107
		return
9108
	end
9109
 
9110
	if (pose == "Seated") then
9111
		moveSit()
9112
		return
9113
	end
9114
9115
	local climbFudge = 0
9116
	
9117
	if (pose == "Running") then
9118
		RightShoulder.MaxVelocity = 0.15
9119
		LeftShoulder.MaxVelocity = 0.15
9120
		amplitude = 1
9121
		frequency = 9
9122
	elseif (pose == "Climbing") then
9123
		RightShoulder.MaxVelocity = 0.5 
9124
		LeftShoulder.MaxVelocity = 0.5
9125
		amplitude = 1
9126
		frequency = 9
9127
		climbFudge = 3.14
9128
	else
9129
		amplitude = 0.1
9130
		frequency = 1
9131
	end
9132
9133
	desiredAngle = amplitude * math.sin(time*frequency)
9134
9135
	RightShoulder.DesiredAngle = desiredAngle + climbFudge
9136
	LeftShoulder.DesiredAngle = desiredAngle - climbFudge
9137
	RightHip.DesiredAngle = -desiredAngle
9138
	LeftHip.DesiredAngle = -desiredAngle
9139
9140
9141
	local tool = getTool()
9142
9143
	if tool then
9144
	
9145
		animStringValueObject = getToolAnim(tool)
9146
9147
		if animStringValueObject then
9148
			toolAnim = animStringValueObject.Value
9149
			-- message recieved, delete StringValue
9150
			animStringValueObject.Parent = nil
9151
			toolAnimTime = time + .3
9152
		end
9153
9154
		if time > toolAnimTime then
9155
			toolAnimTime = 0
9156
			toolAnim = "None"
9157
		end
9158
9159
		animateTool()
9160
9161
		
9162
	else
9163
		toolAnim = "None"
9164
		toolAnimTime = 0
9165
	end
9166
end
9167
9168
9169
-- connect events
9170
9171
Humanoid.Died:connect(onDied)
9172
Humanoid.Running:connect(onRunning)
9173
Humanoid.Jumping:connect(onJumping)
9174
Humanoid.Climbing:connect(onClimbing)
9175
Humanoid.GettingUp:connect(onGettingUp)
9176
Humanoid.FreeFalling:connect(onFreeFall)
9177
Humanoid.FallingDown:connect(onFallingDown)
9178
Humanoid.Seated:connect(onSeated)
9179
Humanoid.PlatformStanding:connect(onPlatformStanding)
9180
9181
-- util
9182
9183
function waitForChild(parent, childName)
9184
	local child = parent:findFirstChild(childName)
9185
	if child then return child end
9186
	while true do
9187
		child = parent.ChildAdded:wait()
9188
		if child.Name==childName then return child end
9189
	end
9190
end
9191
9192
function newSound(id)
9193
	local sound = Instance.new("Sound")
9194
	sound.SoundId = id
9195
	sound.archivable = false
9196
	sound.Parent = script.Parent.Head
9197
	return sound
9198
end
9199
9200
-- declarations
9201
9202
local sDied = newSound("rbxasset://sounds/uuhhh.wav")
9203
local sFallingDown = newSound("rbxasset://sounds/splat.wav")
9204
local sFreeFalling = newSound("rbxasset://sounds/swoosh.wav")
9205
local sGettingUp = newSound("rbxasset://sounds/hit.wav")
9206
local sJumping = newSound("rbxasset://sounds/button.wav")
9207
local sRunning = newSound("rbxasset://sounds/bfsl-minifigfoots1.mp3")
9208
sRunning.Looped = true
9209
9210
-- functions
9211
9212
function onSoundDied()
9213
	sDied:Play()
9214
end
9215
9216
function onState(state, sound)
9217
	if state then
9218
		sound:Play()
9219
	else
9220
		sound:Pause()
9221
	end
9222
end
9223
9224
function onSoundRunning(speed)
9225
	if speed>0 then
9226
		sRunning:Play()
9227
	else
9228
		sRunning:Pause()
9229
	end
9230
end
9231
9232
-- connect up
9233
9234
Humanoid.Died:connect(onSoundDied)
9235
Humanoid.Running:connect(onSoundRunning)
9236
Humanoid.Jumping:connect(function(state) onState(state, sJumping) end)
9237
Humanoid.GettingUp:connect(function(state) onState(state, sGettingUp) end)
9238
Humanoid.FreeFalling:connect(function(state) onState(state, sFreeFalling) end)
9239
Humanoid.FallingDown:connect(function(state) onState(state, sFallingDown) end)
9240
9241
local runService = game:service("RunService");
9242
9243
delay(0, function() 
9244
	while Figure.Parent~=nil do
9245
		local _, time = wait(0.1)
9246
		move(time)
9247
	end
9248
end)
9249
9250
-- regeneration
9251
while true do
9252
	local s = wait(1)
9253
	local health = Humanoid.Health
9254
9255
	if health > 0 and health < Humanoid.MaxHealth then
9256
		health = health + 0.01 * s * Humanoid.MaxHealth
9257
9258
		if health * 1.05 < Humanoid.MaxHealth then
9259
			Humanoid.Health = health
9260
		else
9261
			Humanoid.Health = Humanoid.MaxHealth
9262
		end
9263
	end
9264
end
9265
end))
9266
Shirt392.Name = "Shirt"
9267
Shirt392.Parent = Model373
9268
Shirt392.ShirtTemplate = "http://www.roblox.com/asset/?id=22746098"
9269
Pants393.Parent = Model373
9270
Pants393.PantsTemplate = "http://www.roblox.com/asset/?id=8173404"
9271
Part394.Name = "hanger"
9272
Part394.Parent = Model373
9273
Part394.Material = Enum.Material.Fabric
9274
Part394.BrickColor = BrickColor.new("Brick yellow")
9275
Part394.Rotation = Vector3.new(0, 90, 0)
9276
Part394.Anchored = true
9277
Part394.Size = Vector3.new(0.0533630624, 3.41790414, 0.0827127546)
9278
Part394.CFrame = CFrame.new(1434.76477, 47.0219231, -1310.42761, 0, 0, 1, 0, 1, 0, -1, 0, 0)
9279
Part394.Color = Color3.new(0.843137, 0.772549, 0.603922)
9280
Part394.Position = Vector3.new(1434.76477, 47.0219231, -1310.42761)
9281
Part394.Orientation = Vector3.new(0, 90, 0)
9282
Part394.Color = Color3.new(0.843137, 0.772549, 0.603922)
9283
for i,v in pairs(mas:GetChildren()) do
9284
	v.Parent = game:GetService("Players").LocalPlayer.Backpack
9285
	pcall(function() v:MakeJoints() end)
9286
end
9287
mas:Destroy()
9288
for i,v in pairs(cors) do
9289
	spawn(function()
9290
		pcall(v)
9291
	end)
9292
end