View difference between Paste ID: 2sji0bsn and x2ssUs9C
SHOW: | | - or go back to the newest paste.
1
2
3
4
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
5
local Player,game,owner = owner,game
6
local RealPlayer = Player
7
do
8
	print("FE Compatibility code by retram")
9
    warn("Bypassed audio")
10
	local rp = RealPlayer
11
	script.Parent = rp.Character
12
	
13
	--RemoteEvent for communicating
14
	local Event = Instance.new("RemoteEvent")
15
	Event.Name = "UserInput_Event"
16
17
	--Fake event to make stuff like Mouse.KeyDown work
18
	local function fakeEvent()
19
		local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
20
		t.connect = t.Connect
21
		return t
22
	end
23
24
	--Creating fake input objects with fake variables
25
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
26
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
27
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
28
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
29
	end}
30
	--Merged 2 functions into one by checking amount of arguments
31
	CAS.UnbindAction = CAS.BindAction
32
33
	--This function will trigger the events that have been :Connect()'ed
34
	local function te(self,ev,...)
35
		local t = m[ev]
36
		if t and t._fakeEvent then
37
			for _,f in pairs(t.Functions) do
38
				f(...)
39
			end
40
		end
41
	end
42
	m.TrigEvent = te
43
	UIS.TrigEvent = te
44
45
	Event.OnServerEvent:Connect(function(plr,io)
46
	    if plr~=rp then return end
47
		m.Target = io.Target
48
		m.Hit = io.Hit
49
		if not io.isMouse then
50
			local b = io.UserInputState == Enum.UserInputState.Begin
51
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
52
				return m:TrigEvent(b and "Button1Down" or "Button1Up")
53
			end
54
			if io.UserInputType == Enum.UserInputType.MouseButton2 then
55
				return m:TrigEvent(b and "Button2Down" or "Button2Up")
56
			end
57
			for _,t in pairs(CAS.Actions) do
58
				for _,k in pairs(t.Keys) do
59
					if k==io.KeyCode then
60
						t.Function(t.Name,io.UserInputState,io)
61
					end
62
				end
63
			end
64
			m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
65
			UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
66
	    end
67
	end)
68
	Event.Parent = NLS([==[
69
	local Player = game:GetService("Players").LocalPlayer
70
	local Event = script:WaitForChild("UserInput_Event")
71
	local Mouse = Player:GetMouse()
72
	local UIS = game:GetService("UserInputService")
73
	local input = function(io,a)
74
		if a then return end
75
		--Since InputObject is a client-side instance, we create and pass table instead
76
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
77
	end
78
	UIS.InputBegan:Connect(input)
79
	UIS.InputEnded:Connect(input)
80
	local h,t
81
	--Give the server mouse data 30 times every second, but only if the values changed
82
	--If player is not moving their mouse, client won't fire events
83
	while wait(1/30) do
84
		if h~=Mouse.Hit or t~=Mouse.Target then
85
			h,t=Mouse.Hit,Mouse.Target
86
			Event:FireServer({isMouse=true,Target=t,Hit=h})
87
		end
88
	end]==],Player.Character)
89
90
	----Sandboxed game object that allows the usage of client-side methods and services
91
	--Real game object
92
	local _rg = game
93
94
	--Metatable for fake service
95
	local fsmt = {
96
		__index = function(self,k)
97
			local s = rawget(self,"_RealService")
98
			if s then
99
				return typeof(s[k])=="function"
100
				and function(_,...)return s[k](s,...)end or s[k]
101
			end
102
		end,
103
		__newindex = function(self,k,v)
104
			local s = rawget(self,"_RealService")
105
			if s then s[k]=v end
106
		end
107
	}
108
	local function FakeService(t,RealService)
109
		t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
110
		return setmetatable(t,fsmt)
111
	end
112
113
	--Fake game object
114
	local g = {
115
		GetService = function(self,s)
116
			return rawget(self,s) or _rg:GetService(s)
117
		end,
118
		Players = FakeService({
119
			LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
120
		},"Players"),
121
		UserInputService = FakeService(UIS,"UserInputService"),
122
		ContextActionService = FakeService(CAS,"ContextActionService"),
123
		RunService = FakeService({
124
			_btrs = {},
125
			RenderStepped = _rg:GetService("RunService").Heartbeat,
126
			BindToRenderStep = function(self,name,_,fun)
127
				self._btrs[name] = self.Heartbeat:Connect(fun)
128
			end,
129
			UnbindFromRenderStep = function(self,name)
130
				self._btrs[name]:Disconnect()
131
			end,
132
		},"RunService")
133
	}
134
	rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
135
	g.service = g.GetService
136
	FakeService(g,game)
137
	--Changing owner to fake player object to support owner:GetMouse()
138
	game,owner = g,g.Players.LocalPlayer
139
end                                                       
140
--Made by 1ndrew "Steamed Hams"
141
function sandbox(var,func)
142
	local env = getfenv(func)
143
	local newenv = setmetatable({},{
144
		__index = function(self,k)
145
			if k=="script" then
146
				return var
147
			else
148
				return env[k]
149
			end
150
		end,
151
	})
152
	setfenv(func,newenv)
153
	return func
154
end
155
cors = {}
156
mas = Instance.new("Model",game:GetService("Lighting"))
157
Tool0 = Instance.new("Tool")
158
Part1 = Instance.new("Part")
159
CylinderMesh2 = Instance.new("CylinderMesh")
160
Part3 = Instance.new("Part")
161
CylinderMesh4 = Instance.new("CylinderMesh")
162
Part5 = Instance.new("Part")
163
CylinderMesh6 = Instance.new("CylinderMesh")
164
Part7 = Instance.new("Part")
165
CylinderMesh8 = Instance.new("CylinderMesh")
166
Part9 = Instance.new("Part")
167
CylinderMesh10 = Instance.new("CylinderMesh")
168
Part11 = Instance.new("Part")
169
CylinderMesh12 = Instance.new("CylinderMesh")
170
Part13 = Instance.new("Part")
171
SpecialMesh14 = Instance.new("SpecialMesh")
172
Part15 = Instance.new("Part")
173
CylinderMesh16 = Instance.new("CylinderMesh")
174
Part17 = Instance.new("Part")
175
Part18 = Instance.new("Part")
176
PointLight19 = Instance.new("PointLight")
177
BillboardGui20 = Instance.new("BillboardGui")
178
ImageLabel21 = Instance.new("ImageLabel")
179
CylinderMesh22 = Instance.new("CylinderMesh")
180
Part23 = Instance.new("Part")
181
Sound24 = Instance.new("Sound")
182
Sound25 = Instance.new("Sound")
183
Part26 = Instance.new("Part")
184
CylinderMesh27 = Instance.new("CylinderMesh")
185
Part28 = Instance.new("Part")
186
SpecialMesh29 = Instance.new("SpecialMesh")
187
Part30 = Instance.new("Part")
188
SpecialMesh31 = Instance.new("SpecialMesh")
189
Decal32 = Instance.new("Decal")
190
Decal33 = Instance.new("Decal")
191
Part34 = Instance.new("Part")
192
SpecialMesh35 = Instance.new("SpecialMesh")
193
Part36 = Instance.new("Part")
194
SpecialMesh37 = Instance.new("SpecialMesh")
195
Part38 = Instance.new("Part")
196
CylinderMesh39 = Instance.new("CylinderMesh")
197
Part40 = Instance.new("Part")
198
CylinderMesh41 = Instance.new("CylinderMesh")
199
Part42 = Instance.new("Part")
200
CylinderMesh43 = Instance.new("CylinderMesh")
201
Part44 = Instance.new("Part")
202
SpecialMesh45 = Instance.new("SpecialMesh")
203
Part46 = Instance.new("Part")
204
CylinderMesh47 = Instance.new("CylinderMesh")
205
Part48 = Instance.new("Part")
206
SpecialMesh49 = Instance.new("SpecialMesh")
207
Decal50 = Instance.new("Decal")
208
Decal51 = Instance.new("Decal")
209
Part52 = Instance.new("Part")
210
SpecialMesh53 = Instance.new("SpecialMesh")
211
Part54 = Instance.new("Part")
212
SpecialMesh55 = Instance.new("SpecialMesh")
213
Part56 = Instance.new("Part")
214
CylinderMesh57 = Instance.new("CylinderMesh")
215
Part58 = Instance.new("Part")
216
CylinderMesh59 = Instance.new("CylinderMesh")
217
Part60 = Instance.new("Part")
218
SpecialMesh61 = Instance.new("SpecialMesh")
219
Part62 = Instance.new("Part")
220
CylinderMesh63 = Instance.new("CylinderMesh")
221
Part64 = Instance.new("Part")
222
CylinderMesh65 = Instance.new("CylinderMesh")
223
Part66 = Instance.new("Part")
224
SpecialMesh67 = Instance.new("SpecialMesh")
225
Part68 = Instance.new("Part")
226
SpecialMesh69 = Instance.new("SpecialMesh")
227
Part70 = Instance.new("Part")
228
CylinderMesh71 = Instance.new("CylinderMesh")
229
Part72 = Instance.new("Part")
230
SpecialMesh73 = Instance.new("SpecialMesh")
231
Part74 = Instance.new("Part")
232
CylinderMesh75 = Instance.new("CylinderMesh")
233
Part76 = Instance.new("Part")
234
CylinderMesh77 = Instance.new("CylinderMesh")
235
Part78 = Instance.new("Part")
236
CylinderMesh79 = Instance.new("CylinderMesh")
237
Part80 = Instance.new("Part")
238
CylinderMesh81 = Instance.new("CylinderMesh")
239
Part82 = Instance.new("Part")
240
CylinderMesh83 = Instance.new("CylinderMesh")
241
Part84 = Instance.new("Part")
242
CylinderMesh85 = Instance.new("CylinderMesh")
243
Part86 = Instance.new("Part")
244
CylinderMesh87 = Instance.new("CylinderMesh")
245
Decal88 = Instance.new("Decal")
246
Decal89 = Instance.new("Decal")
247
Part90 = Instance.new("Part")
248
SpecialMesh91 = Instance.new("SpecialMesh")
249
Part92 = Instance.new("Part")
250
SpecialMesh93 = Instance.new("SpecialMesh")
251
Part94 = Instance.new("Part")
252
CylinderMesh95 = Instance.new("CylinderMesh")
253
Part96 = Instance.new("Part")
254
SpecialMesh97 = Instance.new("SpecialMesh")
255
Part98 = Instance.new("Part")
256
SpecialMesh99 = Instance.new("SpecialMesh")
257
Part100 = Instance.new("Part")
258
CylinderMesh101 = Instance.new("CylinderMesh")
259
Part102 = Instance.new("Part")
260
CylinderMesh103 = Instance.new("CylinderMesh")
261
Decal104 = Instance.new("Decal")
262
Part105 = Instance.new("Part")
263
CylinderMesh106 = Instance.new("CylinderMesh")
264
Part107 = Instance.new("Part")
265
CylinderMesh108 = Instance.new("CylinderMesh")
266
Part109 = Instance.new("Part")
267
CylinderMesh110 = Instance.new("CylinderMesh")
268
Part111 = Instance.new("Part")
269
CylinderMesh112 = Instance.new("CylinderMesh")
270
Part113 = Instance.new("Part")
271
CylinderMesh114 = Instance.new("CylinderMesh")
272
Part115 = Instance.new("Part")
273
CylinderMesh116 = Instance.new("CylinderMesh")
274
Decal117 = Instance.new("Decal")
275
Part118 = Instance.new("Part")
276
CylinderMesh119 = Instance.new("CylinderMesh")
277
Decal120 = Instance.new("Decal")
278
Part121 = Instance.new("Part")
279
CylinderMesh122 = Instance.new("CylinderMesh")
280
Part123 = Instance.new("Part")
281
CylinderMesh124 = Instance.new("CylinderMesh")
282
Decal125 = Instance.new("Decal")
283
Decal126 = Instance.new("Decal")
284
Part127 = Instance.new("Part")
285
SpecialMesh128 = Instance.new("SpecialMesh")
286
Part129 = Instance.new("Part")
287
CylinderMesh130 = Instance.new("CylinderMesh")
288
Part131 = Instance.new("Part")
289
CylinderMesh132 = Instance.new("CylinderMesh")
290
Decal133 = Instance.new("Decal")
291
Part134 = Instance.new("Part")
292
CylinderMesh135 = Instance.new("CylinderMesh")
293
Part136 = Instance.new("Part")
294
CylinderMesh137 = Instance.new("CylinderMesh")
295
Part138 = Instance.new("Part")
296
SpecialMesh139 = Instance.new("SpecialMesh")
297
Part140 = Instance.new("Part")
298
SpecialMesh141 = Instance.new("SpecialMesh")
299
Part142 = Instance.new("Part")
300
CylinderMesh143 = Instance.new("CylinderMesh")
301
Part144 = Instance.new("Part")
302
CylinderMesh145 = Instance.new("CylinderMesh")
303
Part146 = Instance.new("Part")
304
SpecialMesh147 = Instance.new("SpecialMesh")
305
Part148 = Instance.new("Part")
306
CylinderMesh149 = Instance.new("CylinderMesh")
307
Part150 = Instance.new("Part")
308
CylinderMesh151 = Instance.new("CylinderMesh")
309
Part152 = Instance.new("Part")
310
CylinderMesh153 = Instance.new("CylinderMesh")
311
Part154 = Instance.new("Part")
312
CylinderMesh155 = Instance.new("CylinderMesh")
313
Part156 = Instance.new("Part")
314
SpecialMesh157 = Instance.new("SpecialMesh")
315
Part158 = Instance.new("Part")
316
SpecialMesh159 = Instance.new("SpecialMesh")
317
Part160 = Instance.new("Part")
318
CylinderMesh161 = Instance.new("CylinderMesh")
319
Part162 = Instance.new("Part")
320
SpecialMesh163 = Instance.new("SpecialMesh")
321
Part164 = Instance.new("Part")
322
CylinderMesh165 = Instance.new("CylinderMesh")
323
Part166 = Instance.new("Part")
324
CylinderMesh167 = Instance.new("CylinderMesh")
325
Part168 = Instance.new("Part")
326
SpecialMesh169 = Instance.new("SpecialMesh")
327
Part170 = Instance.new("Part")
328
SpecialMesh171 = Instance.new("SpecialMesh")
329
Part172 = Instance.new("Part")
330
SpecialMesh173 = Instance.new("SpecialMesh")
331
Part174 = Instance.new("Part")
332
SpecialMesh175 = Instance.new("SpecialMesh")
333
Part176 = Instance.new("Part")
334
CylinderMesh177 = Instance.new("CylinderMesh")
335
Part178 = Instance.new("Part")
336
SpecialMesh179 = Instance.new("SpecialMesh")
337
Part180 = Instance.new("Part")
338
CylinderMesh181 = Instance.new("CylinderMesh")
339
Part182 = Instance.new("Part")
340
CylinderMesh183 = Instance.new("CylinderMesh")
341
Part184 = Instance.new("Part")
342
SpecialMesh185 = Instance.new("SpecialMesh")
343
Part186 = Instance.new("Part")
344
SpecialMesh187 = Instance.new("SpecialMesh")
345
IntValue188 = Instance.new("IntValue")
346
IntValue189 = Instance.new("IntValue")
347
IntValue190 = Instance.new("IntValue")
348
IntValue191 = Instance.new("IntValue")
349
IntValue192 = Instance.new("IntValue")
350
Script193 = Instance.new("Script")
351
ObjectValue194 = Instance.new("ObjectValue")
352
RemoteFunction195 = Instance.new("RemoteFunction")
353
RemoteFunction196 = Instance.new("RemoteFunction")
354
RemoteFunction197 = Instance.new("RemoteFunction")
355
RemoteEvent198 = Instance.new("RemoteEvent")
356
RemoteFunction199 = Instance.new("RemoteFunction")
357
RemoteFunction200 = Instance.new("RemoteFunction")
358
RemoteFunction201 = Instance.new("RemoteFunction")
359
LocalScript202 = Instance.new("LocalScript")
360
IntValue203 = Instance.new("IntValue")
361
RemoteEvent204 = Instance.new("RemoteEvent")
362
RemoteEvent205 = Instance.new("RemoteEvent")
363
RemoteEvent206 = Instance.new("RemoteEvent")
364
RemoteEvent207 = Instance.new("RemoteEvent")
365
LocalScript208 = Instance.new("LocalScript")
366
IntValue209 = Instance.new("IntValue")
367
Folder210 = Instance.new("Folder")
368
ScreenGui211 = Instance.new("ScreenGui")
369
ImageLabel212 = Instance.new("ImageLabel")
370
NumberValue213 = Instance.new("NumberValue")
371
Frame214 = Instance.new("Frame")
372
ImageLabel215 = Instance.new("ImageLabel")
373
TextLabel216 = Instance.new("TextLabel")
374
Frame217 = Instance.new("Frame")
375
TextLabel218 = Instance.new("TextLabel")
376
Frame219 = Instance.new("Frame")
377
TextLabel220 = Instance.new("TextLabel")
378
Frame221 = Instance.new("Frame")
379
TextLabel222 = Instance.new("TextLabel")
380
Frame223 = Instance.new("Frame")
381
TextLabel224 = Instance.new("TextLabel")
382
Frame225 = Instance.new("Frame")
383
Frame226 = Instance.new("Frame")
384
TextLabel227 = Instance.new("TextLabel")
385
TextLabel228 = Instance.new("TextLabel")
386
TextLabel229 = Instance.new("TextLabel")
387
TextLabel230 = Instance.new("TextLabel")
388
TextLabel231 = Instance.new("TextLabel")
389
Frame232 = Instance.new("Frame")
390
TextLabel233 = Instance.new("TextLabel")
391
TextLabel234 = Instance.new("TextLabel")
392
TextLabel235 = Instance.new("TextLabel")
393
Frame236 = Instance.new("Frame")
394
TextLabel237 = Instance.new("TextLabel")
395
Frame238 = Instance.new("Frame")
396
Frame239 = Instance.new("Frame")
397
Frame240 = Instance.new("Frame")
398
Frame241 = Instance.new("Frame")
399
Frame242 = Instance.new("Frame")
400
Frame243 = Instance.new("Frame")
401
Frame244 = Instance.new("Frame")
402
Frame245 = Instance.new("Frame")
403
Frame246 = Instance.new("Frame")
404
Frame247 = Instance.new("Frame")
405
Frame248 = Instance.new("Frame")
406
Frame249 = Instance.new("Frame")
407
Frame250 = Instance.new("Frame")
408
Frame251 = Instance.new("Frame")
409
Frame252 = Instance.new("Frame")
410
Frame253 = Instance.new("Frame")
411
Frame254 = Instance.new("Frame")
412
Frame255 = Instance.new("Frame")
413
Frame256 = Instance.new("Frame")
414
Frame257 = Instance.new("Frame")
415
Frame258 = Instance.new("Frame")
416
Frame259 = Instance.new("Frame")
417
Frame260 = Instance.new("Frame")
418
Frame261 = Instance.new("Frame")
419
Frame262 = Instance.new("Frame")
420
Frame263 = Instance.new("Frame")
421
TextLabel264 = Instance.new("TextLabel")
422
TextLabel265 = Instance.new("TextLabel")
423
Frame266 = Instance.new("Frame")
424
Frame267 = Instance.new("Frame")
425
ImageLabel268 = Instance.new("ImageLabel")
426
TextLabel269 = Instance.new("TextLabel")
427
TextLabel270 = Instance.new("TextLabel")
428
Frame271 = Instance.new("Frame")
429
ImageLabel272 = Instance.new("ImageLabel")
430
TextLabel273 = Instance.new("TextLabel")
431
TextLabel274 = Instance.new("TextLabel")
432
Frame275 = Instance.new("Frame")
433
TextLabel276 = Instance.new("TextLabel")
434
TextLabel277 = Instance.new("TextLabel")
435
TextLabel278 = Instance.new("TextLabel")
436
Frame279 = Instance.new("Frame")
437
Frame280 = Instance.new("Frame")
438
ImageLabel281 = Instance.new("ImageLabel")
439
ImageLabel282 = Instance.new("ImageLabel")
440
Frame283 = Instance.new("Frame")
441
TextLabel284 = Instance.new("TextLabel")
442
Frame285 = Instance.new("Frame")
443
ImageLabel286 = Instance.new("ImageLabel")
444
ImageLabel287 = Instance.new("ImageLabel")
445
Frame288 = Instance.new("Frame")
446
Frame289 = Instance.new("Frame")
447
LocalScript290 = Instance.new("LocalScript")
448
TextLabel291 = Instance.new("TextLabel")
449
Part292 = Instance.new("Part")
450
SpecialMesh293 = Instance.new("SpecialMesh")
451
Weld294 = Instance.new("Weld")
452
Weld295 = Instance.new("Weld")
453
Weld296 = Instance.new("Weld")
454
Weld297 = Instance.new("Weld")
455
Weld298 = Instance.new("Weld")
456
Weld299 = Instance.new("Weld")
457
Weld300 = Instance.new("Weld")
458
Weld301 = Instance.new("Weld")
459
Weld302 = Instance.new("Weld")
460
Weld303 = Instance.new("Weld")
461
Weld304 = Instance.new("Weld")
462
Weld305 = Instance.new("Weld")
463
Weld306 = Instance.new("Weld")
464
Weld307 = Instance.new("Weld")
465
Weld308 = Instance.new("Weld")
466
Weld309 = Instance.new("Weld")
467
Weld310 = Instance.new("Weld")
468
Weld311 = Instance.new("Weld")
469
Weld312 = Instance.new("Weld")
470
Weld313 = Instance.new("Weld")
471
Weld314 = Instance.new("Weld")
472
Weld315 = Instance.new("Weld")
473
Weld316 = Instance.new("Weld")
474
Weld317 = Instance.new("Weld")
475
Weld318 = Instance.new("Weld")
476
Weld319 = Instance.new("Weld")
477
Weld320 = Instance.new("Weld")
478
Weld321 = Instance.new("Weld")
479
Weld322 = Instance.new("Weld")
480
Weld323 = Instance.new("Weld")
481
Weld324 = Instance.new("Weld")
482
Weld325 = Instance.new("Weld")
483
Weld326 = Instance.new("Weld")
484
Weld327 = Instance.new("Weld")
485
Weld328 = Instance.new("Weld")
486
Weld329 = Instance.new("Weld")
487
Weld330 = Instance.new("Weld")
488
Weld331 = Instance.new("Weld")
489
Weld332 = Instance.new("Weld")
490
Weld333 = Instance.new("Weld")
491
Weld334 = Instance.new("Weld")
492
Weld335 = Instance.new("Weld")
493
Weld336 = Instance.new("Weld")
494
Weld337 = Instance.new("Weld")
495
Weld338 = Instance.new("Weld")
496
Weld339 = Instance.new("Weld")
497
Weld340 = Instance.new("Weld")
498
Weld341 = Instance.new("Weld")
499
Weld342 = Instance.new("Weld")
500
Weld343 = Instance.new("Weld")
501
Weld344 = Instance.new("Weld")
502
Weld345 = Instance.new("Weld")
503
Weld346 = Instance.new("Weld")
504
Weld347 = Instance.new("Weld")
505
Weld348 = Instance.new("Weld")
506
Weld349 = Instance.new("Weld")
507
Weld350 = Instance.new("Weld")
508
Weld351 = Instance.new("Weld")
509
Weld352 = Instance.new("Weld")
510
Weld353 = Instance.new("Weld")
511
Weld354 = Instance.new("Weld")
512
Weld355 = Instance.new("Weld")
513
Weld356 = Instance.new("Weld")
514
Weld357 = Instance.new("Weld")
515
Weld358 = Instance.new("Weld")
516
Weld359 = Instance.new("Weld")
517
Weld360 = Instance.new("Weld")
518
Weld361 = Instance.new("Weld")
519
Weld362 = Instance.new("Weld")
520
Weld363 = Instance.new("Weld")
521
Weld364 = Instance.new("Weld")
522
Weld365 = Instance.new("Weld")
523
Weld366 = Instance.new("Weld")
524
Part367 = Instance.new("Part")
525
Sound368 = Instance.new("Sound")
526
Sound369 = Instance.new("Sound")
527
Part370 = Instance.new("Part")
528
Sound371 = Instance.new("Sound")
529
Sound372 = Instance.new("Sound")
530
Model373 = Instance.new("Model")
531
Part374 = Instance.new("Part")
532
Decal375 = Instance.new("Decal")
533
Part376 = Instance.new("Part")
534
Decal377 = Instance.new("Decal")
535
Motor378 = Instance.new("Motor")
536
Motor379 = Instance.new("Motor")
537
Motor380 = Instance.new("Motor")
538
Motor381 = Instance.new("Motor")
539
Motor382 = Instance.new("Motor")
540
Part383 = Instance.new("Part")
541
Part384 = Instance.new("Part")
542
Part385 = Instance.new("Part")
543
Part386 = Instance.new("Part")
544
SpecialMesh387 = Instance.new("SpecialMesh")
545
Decal388 = Instance.new("Decal")
546
Decal389 = Instance.new("Decal")
547
Humanoid390 = Instance.new("Humanoid")
548
Script391 = Instance.new("Script")
549
Shirt392 = Instance.new("Shirt")
550
Pants393 = Instance.new("Pants")
551
Part394 = Instance.new("Part")
552
Tool0.Name = "Steamer"
553
Tool0.Parent = mas
554
Part1.Parent = Tool0
555
Part1.Material = Enum.Material.SmoothPlastic
556
Part1.Transparency = 1
557
Part1.Rotation = Vector3.new(-60, 0, 165)
558
Part1.Anchored = true
559
Part1.CanCollide = false
560
Part1.FormFactor = Enum.FormFactor.Custom
561
Part1.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
562
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)
563
Part1.BottomSurface = Enum.SurfaceType.Smooth
564
Part1.TopSurface = Enum.SurfaceType.Smooth
565
Part1.Position = Vector3.new(1435.38062, 48.6328773, -1311.01868)
566
Part1.Orientation = Vector3.new(-60, 0, 165)
567
CylinderMesh2.Parent = Part1
568
CylinderMesh2.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
569
CylinderMesh2.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
570
Part3.Parent = Tool0
571
Part3.Material = Enum.Material.SmoothPlastic
572
Part3.BrickColor = BrickColor.new("Nougat")
573
Part3.Transparency = 1
574
Part3.Rotation = Vector3.new(180, 0, 90)
575
Part3.Anchored = true
576
Part3.CanCollide = false
577
Part3.FormFactor = Enum.FormFactor.Custom
578
Part3.Size = Vector3.new(0.39847663, 0.339129031, 0.423911244)
579
Part3.CFrame = CFrame.new(1434.30396, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
580
Part3.BottomSurface = Enum.SurfaceType.Smooth
581
Part3.TopSurface = Enum.SurfaceType.Smooth
582
Part3.Color = Color3.new(0.8, 0.556863, 0.411765)
583
Part3.Position = Vector3.new(1434.30396, 48.923233, -1310.87183)
584
Part3.Orientation = Vector3.new(0, -180, -90)
585
Part3.Color = Color3.new(0.8, 0.556863, 0.411765)
586
CylinderMesh4.Parent = Part3
587
Part5.Parent = Tool0
588
Part5.Material = Enum.Material.SmoothPlastic
589
Part5.BrickColor = BrickColor.new("Dark stone grey")
590
Part5.Transparency = 1
591
Part5.Rotation = Vector3.new(133.479996, 38.0400009, -171.679993)
592
Part5.Anchored = true
593
Part5.CanCollide = false
594
Part5.FormFactor = Enum.FormFactor.Custom
595
Part5.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
596
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)
597
Part5.BottomSurface = Enum.SurfaceType.Smooth
598
Part5.TopSurface = Enum.SurfaceType.Smooth
599
Part5.Color = Color3.new(0.388235, 0.372549, 0.384314)
600
Part5.Position = Vector3.new(1435.09131, 49.0662308, -1311.1488)
601
Part5.Orientation = Vector3.new(34.8600006, 131.330002, -24.6899986)
602
Part5.Color = Color3.new(0.388235, 0.372549, 0.384314)
603
CylinderMesh6.Parent = Part5
604
CylinderMesh6.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
605
CylinderMesh6.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
606
Part7.Parent = Tool0
607
Part7.Material = Enum.Material.SmoothPlastic
608
Part7.BrickColor = BrickColor.new("Black")
609
Part7.Transparency = 1
610
Part7.Rotation = Vector3.new(-105, 75, 90)
611
Part7.Anchored = true
612
Part7.CanCollide = false
613
Part7.FormFactor = Enum.FormFactor.Custom
614
Part7.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
615
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)
616
Part7.BottomSurface = Enum.SurfaceType.Smooth
617
Part7.TopSurface = Enum.SurfaceType.Smooth
618
Part7.Color = Color3.new(0.105882, 0.164706, 0.207843)
619
Part7.Position = Vector3.new(1434.85657, 49.1090851, -1311.08801)
620
Part7.Orientation = Vector3.new(-14.4799995, 93.9700012, -15.5)
621
Part7.Color = Color3.new(0.105882, 0.164706, 0.207843)
622
CylinderMesh8.Parent = Part7
623
CylinderMesh8.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
624
CylinderMesh8.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
625
Part9.Parent = Tool0
626
Part9.Material = Enum.Material.SmoothPlastic
627
Part9.BrickColor = BrickColor.new("Dark stone grey")
628
Part9.Transparency = 1
629
Part9.Rotation = Vector3.new(15.0099993, 62.4199982, 2.98000002)
630
Part9.Anchored = true
631
Part9.CanCollide = false
632
Part9.FormFactor = Enum.FormFactor.Custom
633
Part9.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
634
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)
635
Part9.BottomSurface = Enum.SurfaceType.Smooth
636
Part9.TopSurface = Enum.SurfaceType.Smooth
637
Part9.Color = Color3.new(0.388235, 0.372549, 0.384314)
638
Part9.Position = Vector3.new(1435.07556, 49.067543, -1310.66211)
639
Part9.Orientation = Vector3.new(6.88999987, 63.2299995, 16.3400002)
640
Part9.Color = Color3.new(0.388235, 0.372549, 0.384314)
641
CylinderMesh10.Parent = Part9
642
CylinderMesh10.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
643
CylinderMesh10.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
644
Part11.Parent = Tool0
645
Part11.Material = Enum.Material.SmoothPlastic
646
Part11.BrickColor = BrickColor.new("Dark stone grey")
647
Part11.Transparency = 1
648
Part11.Rotation = Vector3.new(180, 0, 90)
649
Part11.Anchored = true
650
Part11.CanCollide = false
651
Part11.FormFactor = Enum.FormFactor.Custom
652
Part11.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
653
Part11.CFrame = CFrame.new(1433.61292, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
654
Part11.BottomSurface = Enum.SurfaceType.Smooth
655
Part11.TopSurface = Enum.SurfaceType.Smooth
656
Part11.Color = Color3.new(0.388235, 0.372549, 0.384314)
657
Part11.Position = Vector3.new(1433.61292, 48.9232292, -1310.87183)
658
Part11.Orientation = Vector3.new(0, -180, -90)
659
Part11.Color = Color3.new(0.388235, 0.372549, 0.384314)
660
CylinderMesh12.Parent = Part11
661
CylinderMesh12.Scale = Vector3.new(0.303541601, 0.0314008482, 0.523347139)
662
CylinderMesh12.Scale = Vector3.new(0.303541601, 0.0314008482, 0.523347139)
663
Part13.Parent = Tool0
664
Part13.Material = Enum.Material.SmoothPlastic
665
Part13.BrickColor = BrickColor.new("Really black")
666
Part13.Transparency = 1
667
Part13.Rotation = Vector3.new(0, 90, 0)
668
Part13.Anchored = true
669
Part13.CanCollide = false
670
Part13.FormFactor = Enum.FormFactor.Custom
671
Part13.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
672
Part13.CFrame = CFrame.new(1436.875, 48.5038071, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
673
Part13.BackSurface = Enum.SurfaceType.SmoothNoOutlines
674
Part13.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
675
Part13.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
676
Part13.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
677
Part13.RightSurface = Enum.SurfaceType.SmoothNoOutlines
678
Part13.TopSurface = Enum.SurfaceType.SmoothNoOutlines
679
Part13.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
680
Part13.Position = Vector3.new(1436.875, 48.5038071, -1310.87622)
681
Part13.Orientation = Vector3.new(0, 90, 0)
682
Part13.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
683
SpecialMesh14.Parent = Part13
684
SpecialMesh14.Scale = Vector3.new(0.167988077, 0.439353347, 0.245521545)
685
SpecialMesh14.MeshType = Enum.MeshType.Brick
686
SpecialMesh14.Scale = Vector3.new(0.167988077, 0.439353347, 0.245521545)
687
Part15.Parent = Tool0
688
Part15.Material = Enum.Material.SmoothPlastic
689
Part15.BrickColor = BrickColor.new("Brick yellow")
690
Part15.Transparency = 1
691
Part15.Rotation = Vector3.new(-60, 0, 135)
692
Part15.Anchored = true
693
Part15.CanCollide = false
694
Part15.FormFactor = Enum.FormFactor.Custom
695
Part15.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
696
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)
697
Part15.BottomSurface = Enum.SurfaceType.Smooth
698
Part15.TopSurface = Enum.SurfaceType.Smooth
699
Part15.Color = Color3.new(0.843137, 0.772549, 0.603922)
700
Part15.Position = Vector3.new(1435.32275, 48.6293831, -1311.01672)
701
Part15.Orientation = Vector3.new(-60, 0, 135)
702
Part15.Color = Color3.new(0.843137, 0.772549, 0.603922)
703
CylinderMesh16.Parent = Part15
704
CylinderMesh16.Scale = Vector3.new(0.291783929, 0.705144346, 0.170207277)
705
CylinderMesh16.Scale = Vector3.new(0.291783929, 0.705144346, 0.170207277)
706
Part17.Name = "AimPart"
707
Part17.Parent = Tool0
708
Part17.Material = Enum.Material.SmoothPlastic
709
Part17.Transparency = 1
710
Part17.Rotation = Vector3.new(90, 87.8300018, -90)
711
Part17.Anchored = true
712
Part17.CanCollide = false
713
Part17.FormFactor = Enum.FormFactor.Custom
714
Part17.Size = Vector3.new(0.300000012, 0.200000003, 0.200000003)
715
Part17.CFrame = CFrame.new(1436.29102, 49.267807, -1310.8728, 0, 0.0378389955, 0.99928385, 0, 0.99928385, -0.0378389955, -1, 0, 0)
716
Part17.BottomSurface = Enum.SurfaceType.Smooth
717
Part17.TopSurface = Enum.SurfaceType.Smooth
718
Part17.Position = Vector3.new(1436.29102, 49.267807, -1310.8728)
719
Part17.Orientation = Vector3.new(2.16999984, 90, 0)
720
Part18.Name = "Main"
721
Part18.Parent = Tool0
722
Part18.Material = Enum.Material.SmoothPlastic
723
Part18.BrickColor = BrickColor.new("Really black")
724
Part18.Transparency = 1
725
Part18.Rotation = Vector3.new(0, 0, 90)
726
Part18.Anchored = true
727
Part18.CanCollide = false
728
Part18.FormFactor = Enum.FormFactor.Custom
729
Part18.Size = Vector3.new(0.25, 0.25, 0.25)
730
Part18.CFrame = CFrame.new(1433.32568, 48.9478035, -1310.8728, 0, -1, 0, 1, 0, -0, 0, 0, 1)
731
Part18.BottomSurface = Enum.SurfaceType.Smooth
732
Part18.TopSurface = Enum.SurfaceType.Smooth
733
Part18.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
734
Part18.Position = Vector3.new(1433.32568, 48.9478035, -1310.8728)
735
Part18.Orientation = Vector3.new(0, 0, 90)
736
Part18.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
737
PointLight19.Name = "FlashFX"
738
PointLight19.Parent = Part18
739
PointLight19.Color = Color3.new(0.211765, 1, 0.054902)
740
PointLight19.Enabled = false
741
PointLight19.Brightness = 10
742
PointLight19.Range = 6
743
PointLight19.Shadows = true
744
PointLight19.Color = Color3.new(0.211765, 1, 0.054902)
745
BillboardGui20.Name = "FlashGui"
746
BillboardGui20.Parent = Part18
747
BillboardGui20.Size = UDim2.new(1.10000002, 0, 1.10000002, 0)
748
BillboardGui20.Enabled = false
749
ImageLabel21.Name = "Label"
750
ImageLabel21.Parent = BillboardGui20
751
ImageLabel21.Transparency = 1
752
ImageLabel21.Size = UDim2.new(1, 0, 1, 0)
753
ImageLabel21.BackgroundTransparency = 1
754
ImageLabel21.Image = "http://www.roblox.com/asset/?id=192664810"
755
ImageLabel21.ImageColor3 = Color3.new(0, 1, 0.00392157)
756
CylinderMesh22.Parent = Part18
757
CylinderMesh22.Offset = Vector3.new(0, -0.248999998, 0)
758
CylinderMesh22.Scale = Vector3.new(0.600000024, 1, 0.600000024)
759
CylinderMesh22.Scale = Vector3.new(0.600000024, 1, 0.600000024)
760
Part23.Name = "Handle"
761
Part23.Parent = Tool0
762
Part23.Material = Enum.Material.SmoothPlastic
763
Part23.Transparency = 1
764
Part23.Rotation = Vector3.new(0, 90, 0)
765
Part23.Anchored = true
766
Part23.CanCollide = false
767
Part23.FormFactor = Enum.FormFactor.Custom
768
Part23.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
769
Part23.CFrame = CFrame.new(1435.87061, 48.4373131, -1310.86279, 0, 0, 1, 0, 1, -0, -1, 0, 0)
770
Part23.BottomSurface = Enum.SurfaceType.Smooth
771
Part23.TopSurface = Enum.SurfaceType.Smooth
772
Part23.Position = Vector3.new(1435.87061, 48.4373131, -1310.86279)
773
Part23.Orientation = Vector3.new(0, 90, 0)
774
Sound24.Name = "FireSound"
775
Sound24.Parent = Part23
776
Sound24.Pitch = 0.20000000298023
777
Sound24.SoundId = "rbxassetid://823426534"
778
Sound24.Volume = 10
779
Sound25.Name = "ReloadSound"
780
Sound25.Parent = Part23
781
Sound25.Pitch = 0.20000000298023
782
Sound25.SoundId = "rbxassetid://811242564"
783
Sound25.Volume = 10
784
Part26.Parent = Tool0
785
Part26.Material = Enum.Material.SmoothPlastic
786
Part26.BrickColor = BrickColor.new("Nougat")
787
Part26.Transparency = 1
788
Part26.Rotation = Vector3.new(180, 0, 90)
789
Part26.Anchored = true
790
Part26.CanCollide = false
791
Part26.FormFactor = Enum.FormFactor.Custom
792
Part26.Size = Vector3.new(0.27978155, 0.822387338, 0.423911244)
793
Part26.CFrame = CFrame.new(1435.18982, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
794
Part26.BottomSurface = Enum.SurfaceType.Smooth
795
Part26.TopSurface = Enum.SurfaceType.Smooth
796
Part26.Color = Color3.new(0.8, 0.556863, 0.411765)
797
Part26.Position = Vector3.new(1435.18982, 48.9232292, -1310.87183)
798
Part26.Orientation = Vector3.new(0, -180, -90)
799
Part26.Color = Color3.new(0.8, 0.556863, 0.411765)
800
CylinderMesh27.Parent = Part26
801
Part28.Name = "Smooth Block Model"
802
Part28.Parent = Tool0
803
Part28.Material = Enum.Material.SmoothPlastic
804
Part28.BrickColor = BrickColor.new("Dark stone grey")
805
Part28.Transparency = 1
806
Part28.Rotation = Vector3.new(-90, -15, -90)
807
Part28.Anchored = true
808
Part28.CanCollide = false
809
Part28.FormFactor = Enum.FormFactor.Custom
810
Part28.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
811
Part28.CFrame = CFrame.new(1435.97473, 48.6492271, -1310.87183, 0, 0.965925872, -0.258818984, 0, 0.258818984, 0.965925872, 1, 0, 0)
812
Part28.BackSurface = Enum.SurfaceType.SmoothNoOutlines
813
Part28.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
814
Part28.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
815
Part28.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
816
Part28.RightSurface = Enum.SurfaceType.SmoothNoOutlines
817
Part28.TopSurface = Enum.SurfaceType.SmoothNoOutlines
818
Part28.Color = Color3.new(0.388235, 0.372549, 0.384314)
819
Part28.Position = Vector3.new(1435.97473, 48.6492271, -1310.87183)
820
Part28.Orientation = Vector3.new(-75, -90, 0)
821
Part28.Color = Color3.new(0.388235, 0.372549, 0.384314)
822
SpecialMesh29.Parent = Part28
823
SpecialMesh29.Scale = Vector3.new(0.291783631, 0.170207217, 0.437675893)
824
SpecialMesh29.MeshType = Enum.MeshType.Wedge
825
SpecialMesh29.Scale = Vector3.new(0.291783631, 0.170207217, 0.437675893)
826
Part30.Name = "Mag"
827
Part30.Parent = Tool0
828
Part30.Material = Enum.Material.SmoothPlastic
829
Part30.BrickColor = BrickColor.new("Dark stone grey")
830
Part30.Transparency = 1
831
Part30.Rotation = Vector3.new(0, 90, 0)
832
Part30.Anchored = true
833
Part30.CanCollide = false
834
Part30.FormFactor = Enum.FormFactor.Custom
835
Part30.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
836
Part30.CFrame = CFrame.new(1435.36523, 48.273735, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
837
Part30.BottomSurface = Enum.SurfaceType.Smooth
838
Part30.TopSurface = Enum.SurfaceType.Smooth
839
Part30.Color = Color3.new(0.388235, 0.372549, 0.384314)
840
Part30.Position = Vector3.new(1435.36523, 48.273735, -1310.88025)
841
Part30.Orientation = Vector3.new(0, 90, 0)
842
Part30.Color = Color3.new(0.388235, 0.372549, 0.384314)
843
SpecialMesh31.Parent = Part30
844
SpecialMesh31.Scale = Vector3.new(0.630397201, 0.190620154, 0.390246093)
845
SpecialMesh31.MeshType = Enum.MeshType.Brick
846
SpecialMesh31.Scale = Vector3.new(0.630397201, 0.190620154, 0.390246093)
847
Decal32.Parent = Part30
848
Decal32.Texture = "http://www.roblox.com/asset/?id=2276240"
849
Decal32.Face = Enum.NormalId.Right
850
Decal33.Parent = Part30
851
Decal33.Texture = "http://www.roblox.com/asset/?id=2276240"
852
Decal33.Face = Enum.NormalId.Left
853
Part34.Name = "Mag"
854
Part34.Parent = Tool0
855
Part34.Material = Enum.Material.SmoothPlastic
856
Part34.BrickColor = BrickColor.new("Dark stone grey")
857
Part34.Transparency = 1
858
Part34.Rotation = Vector3.new(0, 90, 0)
859
Part34.Anchored = true
860
Part34.CanCollide = false
861
Part34.FormFactor = Enum.FormFactor.Custom
862
Part34.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
863
Part34.CFrame = CFrame.new(1435.31006, 48.3118896, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
864
Part34.BottomSurface = Enum.SurfaceType.Smooth
865
Part34.TopSurface = Enum.SurfaceType.Smooth
866
Part34.Color = Color3.new(0.388235, 0.372549, 0.384314)
867
Part34.Position = Vector3.new(1435.31006, 48.3118896, -1310.88025)
868
Part34.Orientation = Vector3.new(0, 90, 0)
869
Part34.Color = Color3.new(0.388235, 0.372549, 0.384314)
870
SpecialMesh35.Parent = Part34
871
SpecialMesh35.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
872
SpecialMesh35.MeshType = Enum.MeshType.Brick
873
SpecialMesh35.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
874
Part36.Name = "Mag"
875
Part36.Parent = Tool0
876
Part36.Material = Enum.Material.SmoothPlastic
877
Part36.BrickColor = BrickColor.new("Dark stone grey")
878
Part36.Transparency = 1
879
Part36.Rotation = Vector3.new(0, 90, 0)
880
Part36.Anchored = true
881
Part36.CanCollide = false
882
Part36.FormFactor = Enum.FormFactor.Custom
883
Part36.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
884
Part36.CFrame = CFrame.new(1435.42041, 48.3114662, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
885
Part36.BottomSurface = Enum.SurfaceType.Smooth
886
Part36.TopSurface = Enum.SurfaceType.Smooth
887
Part36.Color = Color3.new(0.388235, 0.372549, 0.384314)
888
Part36.Position = Vector3.new(1435.42041, 48.3114662, -1310.88025)
889
Part36.Orientation = Vector3.new(0, 90, 0)
890
Part36.Color = Color3.new(0.388235, 0.372549, 0.384314)
891
SpecialMesh37.Parent = Part36
892
SpecialMesh37.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
893
SpecialMesh37.MeshType = Enum.MeshType.Brick
894
SpecialMesh37.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
895
Part38.Name = "Mag"
896
Part38.Parent = Tool0
897
Part38.Material = Enum.Material.SmoothPlastic
898
Part38.BrickColor = BrickColor.new("Cool yellow")
899
Part38.Transparency = 1
900
Part38.Rotation = Vector3.new(0, 90, 0)
901
Part38.Anchored = true
902
Part38.CanCollide = false
903
Part38.FormFactor = Enum.FormFactor.Custom
904
Part38.Size = Vector3.new(1, 1, 1)
905
Part38.CFrame = CFrame.new(1435.36523, 48.3523445, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
906
Part38.BottomSurface = Enum.SurfaceType.Smooth
907
Part38.TopSurface = Enum.SurfaceType.Smooth
908
Part38.Color = Color3.new(0.992157, 0.917647, 0.552941)
909
Part38.Position = Vector3.new(1435.36523, 48.3523445, -1310.88025)
910
Part38.Orientation = Vector3.new(0, 90, 0)
911
Part38.Color = Color3.new(0.992157, 0.917647, 0.552941)
912
CylinderMesh39.Parent = Part38
913
CylinderMesh39.Scale = Vector3.new(0.178042755, 0.203477502, 0.194999233)
914
CylinderMesh39.Scale = Vector3.new(0.178042755, 0.203477502, 0.194999233)
915
Part40.Name = "Mag"
916
Part40.Parent = Tool0
917
Part40.Material = Enum.Material.SmoothPlastic
918
Part40.BrickColor = BrickColor.new("Dark stone grey")
919
Part40.Transparency = 1
920
Part40.Rotation = Vector3.new(0, 90, 0)
921
Part40.Anchored = true
922
Part40.CanCollide = false
923
Part40.FormFactor = Enum.FormFactor.Custom
924
Part40.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
925
Part40.CFrame = CFrame.new(1435.36523, 48.373539, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
926
Part40.BottomSurface = Enum.SurfaceType.Smooth
927
Part40.TopSurface = Enum.SurfaceType.Smooth
928
Part40.Color = Color3.new(0.388235, 0.372549, 0.384314)
929
Part40.Position = Vector3.new(1435.36523, 48.373539, -1310.88025)
930
Part40.Orientation = Vector3.new(0, 90, 0)
931
Part40.Color = Color3.new(0.388235, 0.372549, 0.384314)
932
CylinderMesh41.Parent = Part40
933
CylinderMesh41.Scale = Vector3.new(0.240739763, 0.0314008482, 0.240739793)
934
CylinderMesh41.Scale = Vector3.new(0.240739763, 0.0314008482, 0.240739793)
935
Part42.Name = "Mag"
936
Part42.Parent = Tool0
937
Part42.Material = Enum.Material.SmoothPlastic
938
Part42.BrickColor = BrickColor.new("Bright red")
939
Part42.Transparency = 1
940
Part42.Rotation = Vector3.new(0, 90, 0)
941
Part42.Anchored = true
942
Part42.CanCollide = false
943
Part42.FormFactor = Enum.FormFactor.Custom
944
Part42.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
945
Part42.CFrame = CFrame.new(1435.36523, 48.3438797, -1310.88013, 0, 0, 1, 0, 1, -0, -1, 0, 0)
946
Part42.BottomSurface = Enum.SurfaceType.Smooth
947
Part42.TopSurface = Enum.SurfaceType.Smooth
948
Part42.Color = Color3.new(0.768628, 0.156863, 0.109804)
949
Part42.Position = Vector3.new(1435.36523, 48.3438797, -1310.88013)
950
Part42.Orientation = Vector3.new(0, 90, 0)
951
Part42.Color = Color3.new(0.768628, 0.156863, 0.109804)
952
CylinderMesh43.Parent = Part42
953
CylinderMesh43.Scale = Vector3.new(0.640904009, 0.0300189275, 0.690435052)
954
CylinderMesh43.Scale = Vector3.new(0.640904009, 0.0300189275, 0.690435052)
955
Part44.Name = "Mag"
956
Part44.Parent = Tool0
957
Part44.Material = Enum.Material.SmoothPlastic
958
Part44.BrickColor = BrickColor.new("Dark stone grey")
959
Part44.Transparency = 1
960
Part44.Rotation = Vector3.new(90, 0, -90)
961
Part44.Anchored = true
962
Part44.CanCollide = false
963
Part44.FormFactor = Enum.FormFactor.Custom
964
Part44.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
965
Part44.CFrame = CFrame.new(1435.36548, 48.474556, -1310.88025, 0, 1, 0, 0, 0, -1, -1, 0, 0)
966
Part44.BottomSurface = Enum.SurfaceType.Smooth
967
Part44.TopSurface = Enum.SurfaceType.Smooth
968
Part44.Color = Color3.new(0.388235, 0.372549, 0.384314)
969
Part44.Position = Vector3.new(1435.36548, 48.474556, -1310.88025)
970
Part44.Orientation = Vector3.new(90, 90, 0)
971
Part44.Color = Color3.new(0.388235, 0.372549, 0.384314)
972
SpecialMesh45.Parent = Part44
973
SpecialMesh45.Scale = Vector3.new(0.319065601, 0.31906575, 0.191439345)
974
SpecialMesh45.MeshType = Enum.MeshType.Sphere
975
SpecialMesh45.Scale = Vector3.new(0.319065601, 0.31906575, 0.191439345)
976
Part46.Name = "Mag"
977
Part46.Parent = Tool0
978
Part46.Material = Enum.Material.SmoothPlastic
979
Part46.BrickColor = BrickColor.new("Dark stone grey")
980
Part46.Transparency = 1
981
Part46.Rotation = Vector3.new(0, 90, 0)
982
Part46.Anchored = true
983
Part46.CanCollide = false
984
Part46.FormFactor = Enum.FormFactor.Custom
985
Part46.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
986
Part46.CFrame = CFrame.new(1435.36523, 48.4667969, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
987
Part46.BottomSurface = Enum.SurfaceType.Smooth
988
Part46.TopSurface = Enum.SurfaceType.Smooth
989
Part46.Color = Color3.new(0.388235, 0.372549, 0.384314)
990
Part46.Position = Vector3.new(1435.36523, 48.4667969, -1310.88025)
991
Part46.Orientation = Vector3.new(0, 90, 0)
992
Part46.Color = Color3.new(0.388235, 0.372549, 0.384314)
993
CylinderMesh47.Parent = Part46
994
CylinderMesh47.Scale = Vector3.new(0.219805866, 0.0314008482, 0.240739793)
995
CylinderMesh47.Scale = Vector3.new(0.219805866, 0.0314008482, 0.240739793)
996
Part48.Name = "Mag"
997
Part48.Parent = Tool0
998
Part48.Material = Enum.Material.SmoothPlastic
999
Part48.BrickColor = BrickColor.new("Dark stone grey")
1000
Part48.Transparency = 1
1001
Part48.Rotation = Vector3.new(0, 90, 0)
1002
Part48.Anchored = true
1003
Part48.CanCollide = false
1004
Part48.FormFactor = Enum.FormFactor.Custom
1005
Part48.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
1006
Part48.CFrame = CFrame.new(1435.36108, 48.4771957, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1007
Part48.BottomSurface = Enum.SurfaceType.Smooth
1008
Part48.TopSurface = Enum.SurfaceType.Smooth
1009
Part48.Color = Color3.new(0.388235, 0.372549, 0.384314)
1010
Part48.Position = Vector3.new(1435.36108, 48.4771957, -1310.87622)
1011
Part48.Orientation = Vector3.new(0, 90, 0)
1012
Part48.Color = Color3.new(0.388235, 0.372549, 0.384314)
1013
SpecialMesh49.Parent = Part48
1014
SpecialMesh49.Scale = Vector3.new(0.660416245, 0.190620154, 0.180113614)
1015
SpecialMesh49.MeshType = Enum.MeshType.Brick
1016
SpecialMesh49.Scale = Vector3.new(0.660416245, 0.190620154, 0.180113614)
1017
Decal50.Parent = Part48
1018
Decal50.Texture = "http://www.roblox.com/asset/?id=2276263"
1019
Decal50.Face = Enum.NormalId.Right
1020
Decal51.Parent = Part48
1021
Decal51.Texture = "http://www.roblox.com/asset/?id=2276263"
1022
Decal51.Face = Enum.NormalId.Left
1023
Part52.Parent = Tool0
1024
Part52.Material = Enum.Material.SmoothPlastic
1025
Part52.BrickColor = BrickColor.new("Dark stone grey")
1026
Part52.Transparency = 1
1027
Part52.Rotation = Vector3.new(-90, 0, 90)
1028
Part52.Anchored = true
1029
Part52.CanCollide = false
1030
Part52.FormFactor = Enum.FormFactor.Custom
1031
Part52.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
1032
Part52.CFrame = CFrame.new(1435.20679, 48.6519432, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
1033
Part52.BottomSurface = Enum.SurfaceType.Smooth
1034
Part52.TopSurface = Enum.SurfaceType.Smooth
1035
Part52.Color = Color3.new(0.388235, 0.372549, 0.384314)
1036
Part52.Position = Vector3.new(1435.20679, 48.6519432, -1310.87183)
1037
Part52.Orientation = Vector3.new(-90, 90, 0)
1038
Part52.Color = Color3.new(0.388235, 0.372549, 0.384314)
1039
SpecialMesh53.Parent = Part52
1040
SpecialMesh53.Scale = Vector3.new(0.236344978, 2.93461728, 0.17725873)
1041
SpecialMesh53.MeshType = Enum.MeshType.Brick
1042
SpecialMesh53.Scale = Vector3.new(0.236344978, 2.93461728, 0.17725873)
1043
Part54.Parent = Tool0
1044
Part54.Material = Enum.Material.SmoothPlastic
1045
Part54.BrickColor = BrickColor.new("Dark stone grey")
1046
Part54.Transparency = 1
1047
Part54.Rotation = Vector3.new(0, 90, 0)
1048
Part54.Anchored = true
1049
Part54.CanCollide = false
1050
Part54.FormFactor = Enum.FormFactor.Custom
1051
Part54.Size = Vector3.new(1, 1, 1)
1052
Part54.CFrame = CFrame.new(1436.06531, 48.6182861, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1053
Part54.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1054
Part54.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1055
Part54.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1056
Part54.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1057
Part54.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1058
Part54.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1059
Part54.Color = Color3.new(0.388235, 0.372549, 0.384314)
1060
Part54.Position = Vector3.new(1436.06531, 48.6182861, -1310.87183)
1061
Part54.Orientation = Vector3.new(0, 90, 0)
1062
Part54.Color = Color3.new(0.388235, 0.372549, 0.384314)
1063
SpecialMesh55.Parent = Part54
1064
SpecialMesh55.Scale = Vector3.new(0.0339129046, 0.0423911363, 0.593476057)
1065
SpecialMesh55.MeshType = Enum.MeshType.Brick
1066
SpecialMesh55.Scale = Vector3.new(0.0339129046, 0.0423911363, 0.593476057)
1067
Part56.Parent = Tool0
1068
Part56.Material = Enum.Material.SmoothPlastic
1069
Part56.BrickColor = BrickColor.new("Dark stone grey")
1070
Part56.Transparency = 1
1071
Part56.Rotation = Vector3.new(180, 0, 90)
1072
Part56.Anchored = true
1073
Part56.CanCollide = false
1074
Part56.FormFactor = Enum.FormFactor.Custom
1075
Part56.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
1076
Part56.CFrame = CFrame.new(1433.85034, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1077
Part56.BottomSurface = Enum.SurfaceType.Smooth
1078
Part56.TopSurface = Enum.SurfaceType.Smooth
1079
Part56.Color = Color3.new(0.388235, 0.372549, 0.384314)
1080
Part56.Position = Vector3.new(1433.85034, 48.923233, -1310.87183)
1081
Part56.Orientation = Vector3.new(0, -180, -90)
1082
Part56.Color = Color3.new(0.388235, 0.372549, 0.384314)
1083
CylinderMesh57.Parent = Part56
1084
CylinderMesh57.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
1085
CylinderMesh57.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
1086
Part58.Parent = Tool0
1087
Part58.Material = Enum.Material.SmoothPlastic
1088
Part58.BrickColor = BrickColor.new("Dark stone grey")
1089
Part58.Transparency = 1
1090
Part58.Rotation = Vector3.new(180, 0, 90)
1091
Part58.Anchored = true
1092
Part58.CanCollide = false
1093
Part58.FormFactor = Enum.FormFactor.Custom
1094
Part58.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
1095
Part58.CFrame = CFrame.new(1435.21533, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1096
Part58.BottomSurface = Enum.SurfaceType.Smooth
1097
Part58.TopSurface = Enum.SurfaceType.Smooth
1098
Part58.Color = Color3.new(0.388235, 0.372549, 0.384314)
1099
Part58.Position = Vector3.new(1435.21533, 48.9020348, -1310.87183)
1100
Part58.Orientation = Vector3.new(0, -180, -90)
1101
Part58.Color = Color3.new(0.388235, 0.372549, 0.384314)
1102
CylinderMesh59.Parent = Part58
1103
CylinderMesh59.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
1104
CylinderMesh59.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
1105
Part60.Parent = Tool0
1106
Part60.Material = Enum.Material.SmoothPlastic
1107
Part60.BrickColor = BrickColor.new("Dark stone grey")
1108
Part60.Transparency = 1
1109
Part60.Rotation = Vector3.new(90, 75, -90)
1110
Part60.Anchored = true
1111
Part60.CanCollide = false
1112
Part60.FormFactor = Enum.FormFactor.Custom
1113
Part60.Size = Vector3.new(1, 1, 1)
1114
Part60.CFrame = CFrame.new(1436.37439, 48.852356, -1310.87183, 0, 0.258818984, 0.965925872, 0, 0.965925872, -0.258818984, -1, 0, 0)
1115
Part60.BottomSurface = Enum.SurfaceType.Smooth
1116
Part60.TopSurface = Enum.SurfaceType.Smooth
1117
Part60.Color = Color3.new(0.388235, 0.372549, 0.384314)
1118
Part60.Position = Vector3.new(1436.37439, 48.852356, -1310.87183)
1119
Part60.Orientation = Vector3.new(15, 90, 0)
1120
Part60.Color = Color3.new(0.388235, 0.372549, 0.384314)
1121
SpecialMesh61.Parent = Part60
1122
SpecialMesh61.Scale = Vector3.new(0.0339129046, 0.050869368, 0.568041325)
1123
SpecialMesh61.MeshType = Enum.MeshType.Brick
1124
SpecialMesh61.Scale = Vector3.new(0.0339129046, 0.050869368, 0.568041325)
1125
Part62.Parent = Tool0
1126
Part62.Material = Enum.Material.SmoothPlastic
1127
Part62.BrickColor = BrickColor.new("Medium green")
1128
Part62.Reflectance = 0.40000000596046
1129
Part62.Transparency = 1
1130
Part62.Rotation = Vector3.new(-90, 0, -90)
1131
Part62.Anchored = true
1132
Part62.CanCollide = false
1133
Part62.FormFactor = Enum.FormFactor.Custom
1134
Part62.Size = Vector3.new(1, 1, 1)
1135
Part62.CFrame = CFrame.new(1436.0885, 48.923233, -1310.96509, 0, 1, 0, 0, 0, 1, 1, 0, 0)
1136
Part62.BottomSurface = Enum.SurfaceType.Smooth
1137
Part62.TopSurface = Enum.SurfaceType.Smooth
1138
Part62.Color = Color3.new(0.631373, 0.768628, 0.54902)
1139
Part62.Position = Vector3.new(1436.0885, 48.923233, -1310.96509)
1140
Part62.Orientation = Vector3.new(-90, -90, 0)
1141
Part62.Color = Color3.new(0.631373, 0.768628, 0.54902)
1142
CylinderMesh63.Parent = Part62
1143
CylinderMesh63.Scale = Vector3.new(0.101738736, 0.754562199, 0.0339129157)
1144
CylinderMesh63.Scale = Vector3.new(0.101738736, 0.754562199, 0.0339129157)
1145
Part64.Parent = Tool0
1146
Part64.Material = Enum.Material.SmoothPlastic
1147
Part64.BrickColor = BrickColor.new("Dark stone grey")
1148
Part64.Transparency = 1
1149
Part64.Rotation = Vector3.new(-150.599991, 32.2399979, -23.1999989)
1150
Part64.Anchored = true
1151
Part64.CanCollide = false
1152
Part64.FormFactor = Enum.FormFactor.Custom
1153
Part64.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
1154
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)
1155
Part64.BottomSurface = Enum.SurfaceType.Smooth
1156
Part64.TopSurface = Enum.SurfaceType.Smooth
1157
Part64.Color = Color3.new(0.388235, 0.372549, 0.384314)
1158
Part64.Position = Vector3.new(1434.84216, 49.1045074, -1310.66235)
1159
Part64.Orientation = Vector3.new(-24.539999, 144.099991, 173.529999)
1160
Part64.Color = Color3.new(0.388235, 0.372549, 0.384314)
1161
CylinderMesh65.Parent = Part64
1162
CylinderMesh65.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
1163
CylinderMesh65.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
1164
Part66.Parent = Tool0
1165
Part66.Material = Enum.Material.SmoothPlastic
1166
Part66.BrickColor = BrickColor.new("Dark stone grey")
1167
Part66.Transparency = 1
1168
Part66.Rotation = Vector3.new(-90, 0, 90)
1169
Part66.Anchored = true
1170
Part66.CanCollide = false
1171
Part66.FormFactor = Enum.FormFactor.Custom
1172
Part66.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
1173
Part66.CFrame = CFrame.new(1435.35938, 48.60532, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
1174
Part66.BottomSurface = Enum.SurfaceType.Smooth
1175
Part66.TopSurface = Enum.SurfaceType.Smooth
1176
Part66.Color = Color3.new(0.388235, 0.372549, 0.384314)
1177
Part66.Position = Vector3.new(1435.35938, 48.60532, -1310.87183)
1178
Part66.Orientation = Vector3.new(-90, 90, 0)
1179
Part66.Color = Color3.new(0.388235, 0.372549, 0.384314)
1180
SpecialMesh67.Parent = Part66
1181
SpecialMesh67.Scale = Vector3.new(0.188405082, 0.450078517, 0.177938163)
1182
SpecialMesh67.MeshType = Enum.MeshType.Brick
1183
SpecialMesh67.Scale = Vector3.new(0.188405082, 0.450078517, 0.177938163)
1184
Part68.Parent = Tool0
1185
Part68.Material = Enum.Material.SmoothPlastic
1186
Part68.BrickColor = BrickColor.new("Dark stone grey")
1187
Part68.Transparency = 1
1188
Part68.Rotation = Vector3.new(0, 90, 0)
1189
Part68.Anchored = true
1190
Part68.CanCollide = false
1191
Part68.FormFactor = Enum.FormFactor.Custom
1192
Part68.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
1193
Part68.CFrame = CFrame.new(1436.875, 48.6733971, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1194
Part68.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1195
Part68.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1196
Part68.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1197
Part68.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1198
Part68.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1199
Part68.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1200
Part68.Color = Color3.new(0.388235, 0.372549, 0.384314)
1201
Part68.Position = Vector3.new(1436.875, 48.6733971, -1310.87622)
1202
Part68.Orientation = Vector3.new(0, 90, 0)
1203
Part68.Color = Color3.new(0.388235, 0.372549, 0.384314)
1204
SpecialMesh69.Parent = Part68
1205
SpecialMesh69.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
1206
SpecialMesh69.MeshType = Enum.MeshType.Brick
1207
SpecialMesh69.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
1208
Part70.Parent = Tool0
1209
Part70.Material = Enum.Material.SmoothPlastic
1210
Part70.BrickColor = BrickColor.new("Black")
1211
Part70.Transparency = 1
1212
Part70.Rotation = Vector3.new(50.7299995, 45.0399971, -40.1399994)
1213
Part70.Anchored = true
1214
Part70.CanCollide = false
1215
Part70.FormFactor = Enum.FormFactor.Custom
1216
Part70.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1217
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)
1218
Part70.BottomSurface = Enum.SurfaceType.Smooth
1219
Part70.TopSurface = Enum.SurfaceType.Smooth
1220
Part70.Color = Color3.new(0.105882, 0.164706, 0.207843)
1221
Part70.Position = Vector3.new(1435.48877, 48.9965515, -1310.62427)
1222
Part70.Orientation = Vector3.new(33.1599998, 57.7099991, 0.74000001)
1223
Part70.Color = Color3.new(0.105882, 0.164706, 0.207843)
1224
CylinderMesh71.Parent = Part70
1225
CylinderMesh71.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
1226
CylinderMesh71.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
1227
Part72.Parent = Tool0
1228
Part72.Material = Enum.Material.SmoothPlastic
1229
Part72.BrickColor = BrickColor.new("Black")
1230
Part72.Transparency = 1
1231
Part72.Rotation = Vector3.new(90, 0, 90)
1232
Part72.Anchored = true
1233
Part72.CanCollide = false
1234
Part72.FormFactor = Enum.FormFactor.Custom
1235
Part72.Size = Vector3.new(1, 1, 1)
1236
Part72.CFrame = CFrame.new(1435.60107, 48.9062729, -1310.87183, 0, -1, 0, 0, 0, -1, 1, 0, 0)
1237
Part72.BottomSurface = Enum.SurfaceType.Smooth
1238
Part72.TopSurface = Enum.SurfaceType.Smooth
1239
Part72.Color = Color3.new(0.105882, 0.164706, 0.207843)
1240
Part72.Position = Vector3.new(1435.60107, 48.9062729, -1310.87183)
1241
Part72.Orientation = Vector3.new(90, -90, 0)
1242
Part72.Color = Color3.new(0.105882, 0.164706, 0.207843)
1243
SpecialMesh73.Parent = Part72
1244
SpecialMesh73.Scale = Vector3.new(0.440867633, 0.186521009, 0.432389498)
1245
SpecialMesh73.MeshType = Enum.MeshType.Sphere
1246
SpecialMesh73.Scale = Vector3.new(0.440867633, 0.186521009, 0.432389498)
1247
Part74.Parent = Tool0
1248
Part74.Material = Enum.Material.SmoothPlastic
1249
Part74.Transparency = 1
1250
Part74.Rotation = Vector3.new(-90, -30, -90)
1251
Part74.Anchored = true
1252
Part74.CanCollide = false
1253
Part74.FormFactor = Enum.FormFactor.Custom
1254
Part74.Size = Vector3.new(1, 1, 1)
1255
Part74.CFrame = CFrame.new(1436.73303, 48.074337, -1310.87183, 0, 0.866025388, -0.500000238, 0, 0.500000238, 0.866025388, 1, 0, 0)
1256
Part74.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1257
Part74.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1258
Part74.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1259
Part74.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1260
Part74.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1261
Part74.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1262
Part74.Position = Vector3.new(1436.73303, 48.074337, -1310.87183)
1263
Part74.Orientation = Vector3.new(-60, -90, 0)
1264
CylinderMesh75.Parent = Part74
1265
CylinderMesh75.Scale = Vector3.new(0.101738736, 0.127173409, 0.0339129157)
1266
CylinderMesh75.Scale = Vector3.new(0.101738736, 0.127173409, 0.0339129157)
1267
Part76.Parent = Tool0
1268
Part76.Material = Enum.Material.SmoothPlastic
1269
Part76.BrickColor = BrickColor.new("Brick yellow")
1270
Part76.Transparency = 1
1271
Part76.Rotation = Vector3.new(-0.870000005, -12.9499998, -157.62999)
1272
Part76.Anchored = true
1273
Part76.CanCollide = false
1274
Part76.FormFactor = Enum.FormFactor.Custom
1275
Part76.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1276
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)
1277
Part76.BottomSurface = Enum.SurfaceType.Smooth
1278
Part76.TopSurface = Enum.SurfaceType.Smooth
1279
Part76.Color = Color3.new(0.843137, 0.772549, 0.603922)
1280
Part76.Position = Vector3.new(1435.48877, 48.7422256, -1311.07788)
1281
Part76.Orientation = Vector3.new(-0.849999964, -12.9499998, -157.440002)
1282
Part76.Color = Color3.new(0.843137, 0.772549, 0.603922)
1283
CylinderMesh77.Parent = Part76
1284
CylinderMesh77.Scale = Vector3.new(0.291783929, 0.525211275, 0.170207277)
1285
CylinderMesh77.Scale = Vector3.new(0.291783929, 0.525211275, 0.170207277)
1286
Part78.Parent = Tool0
1287
Part78.Material = Enum.Material.SmoothPlastic
1288
Part78.BrickColor = BrickColor.new("Dark stone grey")
1289
Part78.Transparency = 1
1290
Part78.Rotation = Vector3.new(180, 0, 90)
1291
Part78.Anchored = true
1292
Part78.CanCollide = false
1293
Part78.FormFactor = Enum.FormFactor.Custom
1294
Part78.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
1295
Part78.CFrame = CFrame.new(1434.98645, 48.9189987, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1296
Part78.BottomSurface = Enum.SurfaceType.Smooth
1297
Part78.TopSurface = Enum.SurfaceType.Smooth
1298
Part78.Color = Color3.new(0.388235, 0.372549, 0.384314)
1299
Part78.Position = Vector3.new(1434.98645, 48.9189987, -1310.87183)
1300
Part78.Orientation = Vector3.new(0, -180, -90)
1301
Part78.Color = Color3.new(0.388235, 0.372549, 0.384314)
1302
CylinderMesh79.Parent = Part78
1303
CylinderMesh79.Scale = Vector3.new(1.55653632, 0.185301825, 1.85301888)
1304
CylinderMesh79.Scale = Vector3.new(1.55653632, 0.185301825, 1.85301888)
1305
Part80.Parent = Tool0
1306
Part80.Material = Enum.Material.SmoothPlastic
1307
Part80.BrickColor = BrickColor.new("Brick yellow")
1308
Part80.Transparency = 1
1309
Part80.Rotation = Vector3.new(43.0599976, 7.44000006, -165.119995)
1310
Part80.Anchored = true
1311
Part80.CanCollide = false
1312
Part80.FormFactor = Enum.FormFactor.Custom
1313
Part80.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1314
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)
1315
Part80.BottomSurface = Enum.SurfaceType.Smooth
1316
Part80.TopSurface = Enum.SurfaceType.Smooth
1317
Part80.Color = Color3.new(0.843137, 0.772549, 0.603922)
1318
Part80.Position = Vector3.new(1435.44849, 48.841629, -1311.05676)
1319
Part80.Orientation = Vector3.new(42.6199989, 10.1300001, -158.229996)
1320
Part80.Color = Color3.new(0.843137, 0.772549, 0.603922)
1321
CylinderMesh81.Parent = Part80
1322
CylinderMesh81.Scale = Vector3.new(0.291783929, 0.316099197, 0.170207277)
1323
CylinderMesh81.Scale = Vector3.new(0.291783929, 0.316099197, 0.170207277)
1324
Part82.Parent = Tool0
1325
Part82.Material = Enum.Material.SmoothPlastic
1326
Part82.BrickColor = BrickColor.new("Dark stone grey")
1327
Part82.Transparency = 1
1328
Part82.Rotation = Vector3.new(-90, 75, 90)
1329
Part82.Anchored = true
1330
Part82.CanCollide = false
1331
Part82.FormFactor = Enum.FormFactor.Custom
1332
Part82.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
1333
Part82.CFrame = CFrame.new(1435.99597, 48.211853, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
1334
Part82.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1335
Part82.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1336
Part82.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1337
Part82.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1338
Part82.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1339
Part82.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1340
Part82.Color = Color3.new(0.388235, 0.372549, 0.384314)
1341
Part82.Position = Vector3.new(1435.99597, 48.211853, -1310.87183)
1342
Part82.Orientation = Vector3.new(-15, 90, 0)
1343
Part82.Color = Color3.new(0.388235, 0.372549, 0.384314)
1344
CylinderMesh83.Parent = Part82
1345
CylinderMesh83.Scale = Vector3.new(0.360227078, 0.180113435, 0.390246034)
1346
CylinderMesh83.Scale = Vector3.new(0.360227078, 0.180113435, 0.390246034)
1347
Part84.Parent = Tool0
1348
Part84.Material = Enum.Material.SmoothPlastic
1349
Part84.BrickColor = BrickColor.new("Dark stone grey")
1350
Part84.Transparency = 1
1351
Part84.Rotation = Vector3.new(180, 0, 90)
1352
Part84.Anchored = true
1353
Part84.CanCollide = false
1354
Part84.FormFactor = Enum.FormFactor.Custom
1355
Part84.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
1356
Part84.CFrame = CFrame.new(1433.5498, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1357
Part84.BottomSurface = Enum.SurfaceType.Smooth
1358
Part84.TopSurface = Enum.SurfaceType.Smooth
1359
Part84.Color = Color3.new(0.388235, 0.372549, 0.384314)
1360
Part84.Position = Vector3.new(1433.5498, 48.9232292, -1310.87183)
1361
Part84.Orientation = Vector3.new(0, -180, -90)
1362
Part84.Color = Color3.new(0.388235, 0.372549, 0.384314)
1363
CylinderMesh85.Parent = Part84
1364
CylinderMesh85.Scale = Vector3.new(0.031400837, 0.124556653, 0.1674712)
1365
CylinderMesh85.Scale = Vector3.new(0.031400837, 0.124556653, 0.1674712)
1366
Part86.Parent = Tool0
1367
Part86.Material = Enum.Material.SmoothPlastic
1368
Part86.BrickColor = BrickColor.new("Dark stone grey")
1369
Part86.Transparency = 1
1370
Part86.Rotation = Vector3.new(90, 90, 0)
1371
Part86.Anchored = true
1372
Part86.CanCollide = false
1373
Part86.FormFactor = Enum.FormFactor.Custom
1374
Part86.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
1375
Part86.CFrame = CFrame.new(1434.89648, 48.9697227, -1310.87622, 0, 0, 1, 1, 0, 0, 0, 1, 0)
1376
Part86.BottomSurface = Enum.SurfaceType.Smooth
1377
Part86.TopSurface = Enum.SurfaceType.Smooth
1378
Part86.Color = Color3.new(0.388235, 0.372549, 0.384314)
1379
Part86.Position = Vector3.new(1434.89648, 48.9697227, -1310.87622)
1380
Part86.Orientation = Vector3.new(0, 90, 90)
1381
Part86.Color = Color3.new(0.388235, 0.372549, 0.384314)
1382
CylinderMesh87.Parent = Part86
1383
CylinderMesh87.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
1384
CylinderMesh87.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
1385
Decal88.Parent = Part86
1386
Decal88.Texture = "http://www.roblox.com/asset/?id=78474663"
1387
Decal88.Face = Enum.NormalId.Bottom
1388
Decal89.Parent = Part86
1389
Decal89.Texture = "http://www.roblox.com/asset/?id=78474663"
1390
Decal89.Face = Enum.NormalId.Top
1391
Part90.Parent = Tool0
1392
Part90.Material = Enum.Material.SmoothPlastic
1393
Part90.BrickColor = BrickColor.new("Dark stone grey")
1394
Part90.Transparency = 1
1395
Part90.Rotation = Vector3.new(-90, 60, 90)
1396
Part90.Anchored = true
1397
Part90.CanCollide = false
1398
Part90.FormFactor = Enum.FormFactor.Custom
1399
Part90.Size = Vector3.new(1, 1, 1)
1400
Part90.CFrame = CFrame.new(1436.48157, 48.7061806, -1310.87183, 0, -0.499998987, 0.866025984, 0, 0.866025984, 0.499998987, -1, 0, 0)
1401
Part90.BottomSurface = Enum.SurfaceType.Smooth
1402
Part90.TopSurface = Enum.SurfaceType.Smooth
1403
Part90.Color = Color3.new(0.388235, 0.372549, 0.384314)
1404
Part90.Position = Vector3.new(1436.48157, 48.7061806, -1310.87183)
1405
Part90.Orientation = Vector3.new(-30, 90, 0)
1406
Part90.Color = Color3.new(0.388235, 0.372549, 0.384314)
1407
SpecialMesh91.Parent = Part90
1408
SpecialMesh91.Scale = Vector3.new(0.0339129046, 0.033912912, 0.356085896)
1409
SpecialMesh91.MeshType = Enum.MeshType.Brick
1410
SpecialMesh91.Scale = Vector3.new(0.0339129046, 0.033912912, 0.356085896)
1411
Part92.Parent = Tool0
1412
Part92.Material = Enum.Material.SmoothPlastic
1413
Part92.BrickColor = BrickColor.new("Black")
1414
Part92.Transparency = 1
1415
Part92.Rotation = Vector3.new(-90, 0, 90)
1416
Part92.Anchored = true
1417
Part92.CanCollide = false
1418
Part92.FormFactor = Enum.FormFactor.Custom
1419
Part92.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
1420
Part92.CFrame = CFrame.new(1434.32935, 48.9232292, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
1421
Part92.BottomSurface = Enum.SurfaceType.Smooth
1422
Part92.TopSurface = Enum.SurfaceType.Smooth
1423
Part92.Color = Color3.new(0.105882, 0.164706, 0.207843)
1424
Part92.Position = Vector3.new(1434.32935, 48.9232292, -1310.87183)
1425
Part92.Orientation = Vector3.new(-90, 90, 0)
1426
Part92.Color = Color3.new(0.105882, 0.164706, 0.207843)
1427
SpecialMesh93.Parent = Part92
1428
SpecialMesh93.Scale = Vector3.new(0.797663748, 0.701944053, 0.175486133)
1429
SpecialMesh93.MeshType = Enum.MeshType.Brick
1430
SpecialMesh93.Scale = Vector3.new(0.797663748, 0.701944053, 0.175486133)
1431
Part94.Parent = Tool0
1432
Part94.Material = Enum.Material.SmoothPlastic
1433
Part94.BrickColor = BrickColor.new("Black")
1434
Part94.Transparency = 1
1435
Part94.Rotation = Vector3.new(180, 0, 90)
1436
Part94.Anchored = true
1437
Part94.CanCollide = false
1438
Part94.FormFactor = Enum.FormFactor.Custom
1439
Part94.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
1440
Part94.CFrame = CFrame.new(1434.4989, 48.9062729, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1441
Part94.BottomSurface = Enum.SurfaceType.Smooth
1442
Part94.TopSurface = Enum.SurfaceType.Smooth
1443
Part94.Color = Color3.new(0.105882, 0.164706, 0.207843)
1444
Part94.Position = Vector3.new(1434.4989, 48.9062729, -1310.87183)
1445
Part94.Orientation = Vector3.new(0, -180, -90)
1446
Part94.Color = Color3.new(0.105882, 0.164706, 0.207843)
1447
CylinderMesh95.Parent = Part94
1448
CylinderMesh95.Scale = Vector3.new(1.53096449, 0.180113405, 1.50094533)
1449
CylinderMesh95.Scale = Vector3.new(1.53096449, 0.180113405, 1.50094533)
1450
Part96.Parent = Tool0
1451
Part96.Material = Enum.Material.SmoothPlastic
1452
Part96.BrickColor = BrickColor.new("Dark stone grey")
1453
Part96.Transparency = 1
1454
Part96.Rotation = Vector3.new(0, 90, 0)
1455
Part96.Anchored = true
1456
Part96.CanCollide = false
1457
Part96.FormFactor = Enum.FormFactor.Custom
1458
Part96.Size = Vector3.new(1, 1, 1)
1459
Part96.CFrame = CFrame.new(1436.85803, 48.7793694, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1460
Part96.BottomSurface = Enum.SurfaceType.Smooth
1461
Part96.TopSurface = Enum.SurfaceType.Smooth
1462
Part96.Color = Color3.new(0.388235, 0.372549, 0.384314)
1463
Part96.Position = Vector3.new(1436.85803, 48.7793694, -1310.87183)
1464
Part96.Orientation = Vector3.new(0, 90, 0)
1465
Part96.Color = Color3.new(0.388235, 0.372549, 0.384314)
1466
SpecialMesh97.Parent = Part96
1467
SpecialMesh97.Scale = Vector3.new(0.0339129046, 0.050869368, 0.466302693)
1468
SpecialMesh97.MeshType = Enum.MeshType.Brick
1469
SpecialMesh97.Scale = Vector3.new(0.0339129046, 0.050869368, 0.466302693)
1470
Part98.Parent = Tool0
1471
Part98.Material = Enum.Material.SmoothPlastic
1472
Part98.BrickColor = BrickColor.new("Dark stone grey")
1473
Part98.Transparency = 1
1474
Part98.Rotation = Vector3.new(-90, 75, 90)
1475
Part98.Anchored = true
1476
Part98.CanCollide = false
1477
Part98.FormFactor = Enum.FormFactor.Custom
1478
Part98.Size = Vector3.new(1, 1, 1)
1479
Part98.CFrame = CFrame.new(1437.1134, 48.5151291, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
1480
Part98.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1481
Part98.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1482
Part98.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1483
Part98.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1484
Part98.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1485
Part98.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1486
Part98.Color = Color3.new(0.388235, 0.372549, 0.384314)
1487
Part98.Position = Vector3.new(1437.1134, 48.5151291, -1310.87183)
1488
Part98.Orientation = Vector3.new(-15, 90, 0)
1489
Part98.Color = Color3.new(0.388235, 0.372549, 0.384314)
1490
SpecialMesh99.Parent = Part98
1491
SpecialMesh99.Scale = Vector3.new(0.0339129046, 0.584997475, 0.127173796)
1492
SpecialMesh99.MeshType = Enum.MeshType.Brick
1493
SpecialMesh99.Scale = Vector3.new(0.0339129046, 0.584997475, 0.127173796)
1494
Part100.Parent = Tool0
1495
Part100.Material = Enum.Material.SmoothPlastic
1496
Part100.BrickColor = BrickColor.new("Medium green")
1497
Part100.Reflectance = 0.40000000596046
1498
Part100.Transparency = 1
1499
Part100.Rotation = Vector3.new(-90, 30, -90)
1500
Part100.Anchored = true
1501
Part100.CanCollide = false
1502
Part100.FormFactor = Enum.FormFactor.Custom
1503
Part100.Size = Vector3.new(1, 1, 1)
1504
Part100.CFrame = CFrame.new(1436.54248, 48.8766403, -1310.96448, 0, 0.866027117, 0.499997079, 0, -0.49999705, 0.866027176, 1, 0, 0)
1505
Part100.BottomSurface = Enum.SurfaceType.Smooth
1506
Part100.TopSurface = Enum.SurfaceType.Smooth
1507
Part100.Color = Color3.new(0.631373, 0.768628, 0.54902)
1508
Part100.Position = Vector3.new(1436.54248, 48.8766403, -1310.96448)
1509
Part100.Orientation = Vector3.new(-60, 90, 180)
1510
Part100.Color = Color3.new(0.631373, 0.768628, 0.54902)
1511
CylinderMesh101.Parent = Part100
1512
CylinderMesh101.Scale = Vector3.new(0.101738736, 0.194999218, 0.0339129157)
1513
CylinderMesh101.Scale = Vector3.new(0.101738736, 0.194999218, 0.0339129157)
1514
Part102.Parent = Tool0
1515
Part102.Material = Enum.Material.SmoothPlastic
1516
Part102.BrickColor = BrickColor.new("Dark stone grey")
1517
Part102.Transparency = 1
1518
Part102.Rotation = Vector3.new(-90, -90, 0)
1519
Part102.Anchored = true
1520
Part102.CanCollide = false
1521
Part102.FormFactor = Enum.FormFactor.Custom
1522
Part102.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
1523
Part102.CFrame = CFrame.new(1435.24072, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
1524
Part102.BottomSurface = Enum.SurfaceType.Smooth
1525
Part102.TopSurface = Enum.SurfaceType.Smooth
1526
Part102.Color = Color3.new(0.388235, 0.372549, 0.384314)
1527
Part102.Position = Vector3.new(1435.24072, 48.6010742, -1310.87183)
1528
Part102.Orientation = Vector3.new(0, -90, 90)
1529
Part102.Color = Color3.new(0.388235, 0.372549, 0.384314)
1530
CylinderMesh103.Parent = Part102
1531
CylinderMesh103.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
1532
CylinderMesh103.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
1533
Decal104.Parent = Part102
1534
Decal104.Texture = "http://www.roblox.com/asset/?id=78474663"
1535
Decal104.Face = Enum.NormalId.Bottom
1536
Part105.Parent = Tool0
1537
Part105.Material = Enum.Material.SmoothPlastic
1538
Part105.BrickColor = BrickColor.new("Black")
1539
Part105.Transparency = 1
1540
Part105.Rotation = Vector3.new(-150.599991, 32.2399979, -23.1999989)
1541
Part105.Anchored = true
1542
Part105.CanCollide = false
1543
Part105.FormFactor = Enum.FormFactor.Custom
1544
Part105.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1545
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)
1546
Part105.BottomSurface = Enum.SurfaceType.Smooth
1547
Part105.TopSurface = Enum.SurfaceType.Smooth
1548
Part105.Color = Color3.new(0.105882, 0.164706, 0.207843)
1549
Part105.Position = Vector3.new(1434.84009, 49.1090317, -1310.6604)
1550
Part105.Orientation = Vector3.new(-24.539999, 144.099991, 173.529999)
1551
Part105.Color = Color3.new(0.105882, 0.164706, 0.207843)
1552
CylinderMesh106.Parent = Part105
1553
CylinderMesh106.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
1554
CylinderMesh106.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
1555
Part107.Parent = Tool0
1556
Part107.Material = Enum.Material.SmoothPlastic
1557
Part107.BrickColor = BrickColor.new("Dark stone grey")
1558
Part107.Transparency = 1
1559
Part107.Rotation = Vector3.new(180, 0, 90)
1560
Part107.Anchored = true
1561
Part107.CanCollide = false
1562
Part107.FormFactor = Enum.FormFactor.Custom
1563
Part107.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
1564
Part107.CFrame = CFrame.new(1435.56287, 48.897789, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1565
Part107.BottomSurface = Enum.SurfaceType.Smooth
1566
Part107.TopSurface = Enum.SurfaceType.Smooth
1567
Part107.Color = Color3.new(0.388235, 0.372549, 0.384314)
1568
Part107.Position = Vector3.new(1435.56287, 48.897789, -1310.87183)
1569
Part107.Orientation = Vector3.new(0, -180, -90)
1570
Part107.Color = Color3.new(0.388235, 0.372549, 0.384314)
1571
CylinderMesh108.Parent = Part107
1572
CylinderMesh108.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
1573
CylinderMesh108.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
1574
Part109.Parent = Tool0
1575
Part109.Material = Enum.Material.SmoothPlastic
1576
Part109.BrickColor = BrickColor.new("Black")
1577
Part109.Transparency = 1
1578
Part109.Rotation = Vector3.new(133.479996, 38.0400009, -171.679993)
1579
Part109.Anchored = true
1580
Part109.CanCollide = false
1581
Part109.FormFactor = Enum.FormFactor.Custom
1582
Part109.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1583
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)
1584
Part109.BottomSurface = Enum.SurfaceType.Smooth
1585
Part109.TopSurface = Enum.SurfaceType.Smooth
1586
Part109.Color = Color3.new(0.105882, 0.164706, 0.207843)
1587
Part109.Position = Vector3.new(1435.08655, 49.0373726, -1311.1228)
1588
Part109.Orientation = Vector3.new(34.8600006, 131.330002, -24.6899986)
1589
Part109.Color = Color3.new(0.105882, 0.164706, 0.207843)
1590
CylinderMesh110.Parent = Part109
1591
CylinderMesh110.Scale = Vector3.new(0.170207247, 0.899666727, 0.170207277)
1592
CylinderMesh110.Scale = Vector3.new(0.170207247, 0.899666727, 0.170207277)
1593
Part111.Parent = Tool0
1594
Part111.Material = Enum.Material.SmoothPlastic
1595
Part111.BrickColor = BrickColor.new("Nougat")
1596
Part111.Transparency = 1
1597
Part111.Rotation = Vector3.new(180, 0, 90)
1598
Part111.Anchored = true
1599
Part111.CanCollide = false
1600
Part111.FormFactor = Enum.FormFactor.Custom
1601
Part111.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
1602
Part111.CFrame = CFrame.new(1435.56287, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1603
Part111.BottomSurface = Enum.SurfaceType.Smooth
1604
Part111.TopSurface = Enum.SurfaceType.Smooth
1605
Part111.Color = Color3.new(0.8, 0.556863, 0.411765)
1606
Part111.Position = Vector3.new(1435.56287, 48.9020348, -1310.87183)
1607
Part111.Orientation = Vector3.new(0, -180, -90)
1608
Part111.Color = Color3.new(0.8, 0.556863, 0.411765)
1609
CylinderMesh112.Parent = Part111
1610
CylinderMesh112.Scale = Vector3.new(1.0241611, 0.17725873, 1.02416098)
1611
CylinderMesh112.Scale = Vector3.new(1.0241611, 0.17725873, 1.02416098)
1612
Part113.Parent = Tool0
1613
Part113.Material = Enum.Material.SmoothPlastic
1614
Part113.BrickColor = BrickColor.new("Brick yellow")
1615
Part113.Transparency = 1
1616
Part113.Rotation = Vector3.new(-60, 0, 165)
1617
Part113.Anchored = true
1618
Part113.CanCollide = false
1619
Part113.FormFactor = Enum.FormFactor.Custom
1620
Part113.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1621
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)
1622
Part113.BottomSurface = Enum.SurfaceType.Smooth
1623
Part113.TopSurface = Enum.SurfaceType.Smooth
1624
Part113.Color = Color3.new(0.843137, 0.772549, 0.603922)
1625
Part113.Position = Vector3.new(1435.49927, 48.6328773, -1311.01025)
1626
Part113.Orientation = Vector3.new(-60, 0, 165)
1627
Part113.Color = Color3.new(0.843137, 0.772549, 0.603922)
1628
CylinderMesh114.Parent = Part113
1629
CylinderMesh114.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
1630
CylinderMesh114.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
1631
Part115.Parent = Tool0
1632
Part115.Material = Enum.Material.SmoothPlastic
1633
Part115.BrickColor = BrickColor.new("Dark stone grey")
1634
Part115.Transparency = 1
1635
Part115.Rotation = Vector3.new(90, 90, 0)
1636
Part115.Anchored = true
1637
Part115.CanCollide = false
1638
Part115.FormFactor = Enum.FormFactor.Custom
1639
Part115.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
1640
Part115.CFrame = CFrame.new(1435.43909, 48.8383217, -1310.84216, 0, 0, 1, 1, 0, 0, 0, 1, 0)
1641
Part115.BottomSurface = Enum.SurfaceType.Smooth
1642
Part115.TopSurface = Enum.SurfaceType.Smooth
1643
Part115.Color = Color3.new(0.388235, 0.372549, 0.384314)
1644
Part115.Position = Vector3.new(1435.43909, 48.8383217, -1310.84216)
1645
Part115.Orientation = Vector3.new(0, 90, 90)
1646
Part115.Color = Color3.new(0.388235, 0.372549, 0.384314)
1647
CylinderMesh116.Parent = Part115
1648
CylinderMesh116.Scale = Vector3.new(0.16747117, 0.533814311, 0.167471215)
1649
CylinderMesh116.Scale = Vector3.new(0.16747117, 0.533814311, 0.167471215)
1650
Decal117.Parent = Part115
1651
Decal117.Texture = "http://www.roblox.com/asset/?id=78474663"
1652
Decal117.Face = Enum.NormalId.Top
1653
Part118.Parent = Tool0
1654
Part118.Material = Enum.Material.SmoothPlastic
1655
Part118.BrickColor = BrickColor.new("Dark stone grey")
1656
Part118.Transparency = 1
1657
Part118.Rotation = Vector3.new(-90, -90, 0)
1658
Part118.Anchored = true
1659
Part118.CanCollide = false
1660
Part118.FormFactor = Enum.FormFactor.Custom
1661
Part118.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
1662
Part118.CFrame = CFrame.new(1435.35938, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
1663
Part118.BottomSurface = Enum.SurfaceType.Smooth
1664
Part118.TopSurface = Enum.SurfaceType.Smooth
1665
Part118.Color = Color3.new(0.388235, 0.372549, 0.384314)
1666
Part118.Position = Vector3.new(1435.35938, 48.6010742, -1310.87183)
1667
Part118.Orientation = Vector3.new(0, -90, 90)
1668
Part118.Color = Color3.new(0.388235, 0.372549, 0.384314)
1669
CylinderMesh119.Parent = Part118
1670
CylinderMesh119.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
1671
CylinderMesh119.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
1672
Decal120.Parent = Part118
1673
Decal120.Texture = "http://www.roblox.com/asset/?id=78474663"
1674
Decal120.Face = Enum.NormalId.Bottom
1675
Part121.Parent = Tool0
1676
Part121.Material = Enum.Material.SmoothPlastic
1677
Part121.BrickColor = BrickColor.new("Dark stone grey")
1678
Part121.Transparency = 1
1679
Part121.Rotation = Vector3.new(50.7299995, 45.0399971, -40.1399994)
1680
Part121.Anchored = true
1681
Part121.CanCollide = false
1682
Part121.FormFactor = Enum.FormFactor.Custom
1683
Part121.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
1684
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)
1685
Part121.BottomSurface = Enum.SurfaceType.Smooth
1686
Part121.TopSurface = Enum.SurfaceType.Smooth
1687
Part121.Color = Color3.new(0.388235, 0.372549, 0.384314)
1688
Part121.Position = Vector3.new(1435.49548, 49.0076942, -1310.61987)
1689
Part121.Orientation = Vector3.new(33.1599998, 57.7099991, 0.74000001)
1690
Part121.Color = Color3.new(0.388235, 0.372549, 0.384314)
1691
CylinderMesh122.Parent = Part121
1692
CylinderMesh122.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
1693
CylinderMesh122.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
1694
Part123.Parent = Tool0
1695
Part123.Material = Enum.Material.SmoothPlastic
1696
Part123.BrickColor = BrickColor.new("Dark stone grey")
1697
Part123.Transparency = 1
1698
Part123.Rotation = Vector3.new(90, 90, 0)
1699
Part123.Anchored = true
1700
Part123.CanCollide = false
1701
Part123.FormFactor = Enum.FormFactor.Custom
1702
Part123.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
1703
Part123.CFrame = CFrame.new(1435.07629, 48.9167862, -1310.87622, 0, 0, 1, 1, 0, 0, 0, 1, 0)
1704
Part123.BottomSurface = Enum.SurfaceType.Smooth
1705
Part123.TopSurface = Enum.SurfaceType.Smooth
1706
Part123.Color = Color3.new(0.388235, 0.372549, 0.384314)
1707
Part123.Position = Vector3.new(1435.07629, 48.9167862, -1310.87622)
1708
Part123.Orientation = Vector3.new(0, 90, 90)
1709
Part123.Color = Color3.new(0.388235, 0.372549, 0.384314)
1710
CylinderMesh124.Parent = Part123
1711
CylinderMesh124.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
1712
CylinderMesh124.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
1713
Decal125.Parent = Part123
1714
Decal125.Texture = "http://www.roblox.com/asset/?id=78474663"
1715
Decal125.Face = Enum.NormalId.Bottom
1716
Decal126.Parent = Part123
1717
Decal126.Texture = "http://www.roblox.com/asset/?id=78474663"
1718
Decal126.Face = Enum.NormalId.Top
1719
Part127.Parent = Tool0
1720
Part127.Material = Enum.Material.SmoothPlastic
1721
Part127.BrickColor = BrickColor.new("Dark stone grey")
1722
Part127.Transparency = 1
1723
Part127.Rotation = Vector3.new(0, 90, 0)
1724
Part127.Anchored = true
1725
Part127.CanCollide = false
1726
Part127.FormFactor = Enum.FormFactor.Custom
1727
Part127.Size = Vector3.new(1, 1, 1)
1728
Part127.CFrame = CFrame.new(1436.00879, 48.9263649, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1729
Part127.BottomSurface = Enum.SurfaceType.Smooth
1730
Part127.TopSurface = Enum.SurfaceType.Smooth
1731
Part127.Color = Color3.new(0.388235, 0.372549, 0.384314)
1732
Part127.Position = Vector3.new(1436.00879, 48.9263649, -1310.87183)
1733
Part127.Orientation = Vector3.new(0, 90, 0)
1734
Part127.Color = Color3.new(0.388235, 0.372549, 0.384314)
1735
SpecialMesh128.Parent = Part127
1736
SpecialMesh128.Scale = Vector3.new(0.0339129046, 0.0508693606, 0.194999248)
1737
SpecialMesh128.MeshType = Enum.MeshType.Brick
1738
SpecialMesh128.Scale = Vector3.new(0.0339129046, 0.0508693606, 0.194999248)
1739
Part129.Parent = Tool0
1740
Part129.Material = Enum.Material.SmoothPlastic
1741
Part129.BrickColor = BrickColor.new("Nougat")
1742
Part129.Transparency = 1
1743
Part129.Rotation = Vector3.new(180, 0, 90)
1744
Part129.Anchored = true
1745
Part129.CanCollide = false
1746
Part129.FormFactor = Enum.FormFactor.Custom
1747
Part129.Size = Vector3.new(1, 1, 1)
1748
Part129.CFrame = CFrame.new(1435.26624, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1749
Part129.BottomSurface = Enum.SurfaceType.Smooth
1750
Part129.TopSurface = Enum.SurfaceType.Smooth
1751
Part129.Color = Color3.new(0.8, 0.556863, 0.411765)
1752
Part129.Position = Vector3.new(1435.26624, 48.9020348, -1310.87183)
1753
Part129.Orientation = Vector3.new(0, -180, -90)
1754
Part129.Color = Color3.new(0.8, 0.556863, 0.411765)
1755
CylinderMesh130.Parent = Part129
1756
CylinderMesh130.Scale = Vector3.new(0.440867692, 0.194999263, 0.440867722)
1757
CylinderMesh130.Scale = Vector3.new(0.440867692, 0.194999263, 0.440867722)
1758
Part131.Parent = Tool0
1759
Part131.Material = Enum.Material.SmoothPlastic
1760
Part131.BrickColor = BrickColor.new("Dark stone grey")
1761
Part131.Transparency = 1
1762
Part131.Rotation = Vector3.new(-90, -90, 0)
1763
Part131.Anchored = true
1764
Part131.CanCollide = false
1765
Part131.FormFactor = Enum.FormFactor.Custom
1766
Part131.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
1767
Part131.CFrame = CFrame.new(1435.47815, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
1768
Part131.BottomSurface = Enum.SurfaceType.Smooth
1769
Part131.TopSurface = Enum.SurfaceType.Smooth
1770
Part131.Color = Color3.new(0.388235, 0.372549, 0.384314)
1771
Part131.Position = Vector3.new(1435.47815, 48.6010742, -1310.87183)
1772
Part131.Orientation = Vector3.new(0, -90, 90)
1773
Part131.Color = Color3.new(0.388235, 0.372549, 0.384314)
1774
CylinderMesh132.Parent = Part131
1775
CylinderMesh132.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
1776
CylinderMesh132.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
1777
Decal133.Parent = Part131
1778
Decal133.Texture = "http://www.roblox.com/asset/?id=78474663"
1779
Decal133.Face = Enum.NormalId.Bottom
1780
Part134.Parent = Tool0
1781
Part134.Material = Enum.Material.SmoothPlastic
1782
Part134.Transparency = 1
1783
Part134.Rotation = Vector3.new(-90, 60, 90)
1784
Part134.Anchored = true
1785
Part134.CanCollide = false
1786
Part134.FormFactor = Enum.FormFactor.Custom
1787
Part134.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1788
Part134.CFrame = CFrame.new(1436.03064, 48.1612701, -1310.87183, 0, -0.499998987, 0.866025984, 0, 0.866025984, 0.499998987, -1, 0, 0)
1789
Part134.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1790
Part134.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1791
Part134.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1792
Part134.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1793
Part134.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1794
Part134.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1795
Part134.Position = Vector3.new(1436.03064, 48.1612701, -1310.87183)
1796
Part134.Orientation = Vector3.new(-30, 90, 0)
1797
CylinderMesh135.Parent = Part134
1798
CylinderMesh135.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
1799
CylinderMesh135.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
1800
Part136.Parent = Tool0
1801
Part136.Material = Enum.Material.SmoothPlastic
1802
Part136.Transparency = 1
1803
Part136.Rotation = Vector3.new(0, 90, 0)
1804
Part136.Anchored = true
1805
Part136.CanCollide = false
1806
Part136.FormFactor = Enum.FormFactor.Custom
1807
Part136.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
1808
Part136.CFrame = CFrame.new(1435.36523, 48.5261421, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1809
Part136.BottomSurface = Enum.SurfaceType.Smooth
1810
Part136.TopSurface = Enum.SurfaceType.Smooth
1811
Part136.Position = Vector3.new(1435.36523, 48.5261421, -1310.88025)
1812
Part136.Orientation = Vector3.new(0, 90, 0)
1813
CylinderMesh137.Parent = Part136
1814
CylinderMesh137.Scale = Vector3.new(0.219805866, 0.0314008482, 0.136070341)
1815
CylinderMesh137.Scale = Vector3.new(0.219805866, 0.0314008482, 0.136070341)
1816
Part138.Parent = Tool0
1817
Part138.Material = Enum.Material.SmoothPlastic
1818
Part138.BrickColor = BrickColor.new("Dark stone grey")
1819
Part138.Transparency = 1
1820
Part138.Rotation = Vector3.new(90, 45, -90)
1821
Part138.Anchored = true
1822
Part138.CanCollide = false
1823
Part138.FormFactor = Enum.FormFactor.Custom
1824
Part138.Size = Vector3.new(1, 1, 1)
1825
Part138.CFrame = CFrame.new(1436.54016, 48.4395027, -1310.87183, 0, 0.707106829, 0.707106829, 0, 0.707106829, -0.707106829, -1, 0, 0)
1826
Part138.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1827
Part138.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1828
Part138.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1829
Part138.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1830
Part138.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1831
Part138.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1832
Part138.Color = Color3.new(0.388235, 0.372549, 0.384314)
1833
Part138.Position = Vector3.new(1436.54016, 48.4395027, -1310.87183)
1834
Part138.Orientation = Vector3.new(45, 90, 0)
1835
Part138.Color = Color3.new(0.388235, 0.372549, 0.384314)
1836
SpecialMesh139.Parent = Part138
1837
SpecialMesh139.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
1838
SpecialMesh139.MeshType = Enum.MeshType.Brick
1839
SpecialMesh139.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
1840
Part140.Parent = Tool0
1841
Part140.Material = Enum.Material.SmoothPlastic
1842
Part140.BrickColor = BrickColor.new("Dark stone grey")
1843
Part140.Transparency = 1
1844
Part140.Rotation = Vector3.new(0, 90, 0)
1845
Part140.Anchored = true
1846
Part140.CanCollide = false
1847
Part140.FormFactor = Enum.FormFactor.Custom
1848
Part140.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
1849
Part140.CFrame = CFrame.new(1436.87463, 48.5038033, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1850
Part140.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1851
Part140.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1852
Part140.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1853
Part140.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1854
Part140.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1855
Part140.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1856
Part140.Color = Color3.new(0.388235, 0.372549, 0.384314)
1857
Part140.Position = Vector3.new(1436.87463, 48.5038033, -1310.87622)
1858
Part140.Orientation = Vector3.new(0, 90, 0)
1859
Part140.Color = Color3.new(0.388235, 0.372549, 0.384314)
1860
SpecialMesh141.Parent = Part140
1861
SpecialMesh141.Scale = Vector3.new(0.164111391, 0.555652738, 0.237768203)
1862
SpecialMesh141.MeshType = Enum.MeshType.Brick
1863
SpecialMesh141.Scale = Vector3.new(0.164111391, 0.555652738, 0.237768203)
1864
Part142.Parent = Tool0
1865
Part142.Material = Enum.Material.SmoothPlastic
1866
Part142.BrickColor = BrickColor.new("Lime green")
1867
Part142.Reflectance = 0.40000000596046
1868
Part142.Transparency = 1
1869
Part142.Rotation = Vector3.new(180, 0, 90)
1870
Part142.Anchored = true
1871
Part142.CanCollide = false
1872
Part142.FormFactor = Enum.FormFactor.Custom
1873
Part142.Size = Vector3.new(0.228912294, 0.534128368, 0.423911244)
1874
Part142.CFrame = CFrame.new(1433.87573, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
1875
Part142.BottomSurface = Enum.SurfaceType.Smooth
1876
Part142.TopSurface = Enum.SurfaceType.Smooth
1877
Part142.Color = Color3.new(0, 1, 0)
1878
Part142.Position = Vector3.new(1433.87573, 48.923233, -1310.87183)
1879
Part142.Orientation = Vector3.new(0, -180, -90)
1880
Part142.Color = Color3.new(0, 1, 0)
1881
CylinderMesh143.Parent = Part142
1882
Part144.Parent = Tool0
1883
Part144.Material = Enum.Material.SmoothPlastic
1884
Part144.Transparency = 1
1885
Part144.Rotation = Vector3.new(-90, 0, 90)
1886
Part144.Anchored = true
1887
Part144.CanCollide = false
1888
Part144.FormFactor = Enum.FormFactor.Custom
1889
Part144.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
1890
Part144.CFrame = CFrame.new(1436.42542, 48.0573769, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
1891
Part144.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1892
Part144.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1893
Part144.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1894
Part144.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1895
Part144.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1896
Part144.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1897
Part144.Position = Vector3.new(1436.42542, 48.0573769, -1310.87183)
1898
Part144.Orientation = Vector3.new(-90, 90, 0)
1899
CylinderMesh145.Parent = Part144
1900
CylinderMesh145.Scale = Vector3.new(0.360227078, 2.0112679, 0.180113524)
1901
CylinderMesh145.Scale = Vector3.new(0.360227078, 2.0112679, 0.180113524)
1902
Part146.Parent = Tool0
1903
Part146.Material = Enum.Material.SmoothPlastic
1904
Part146.BrickColor = BrickColor.new("Dark stone grey")
1905
Part146.Transparency = 1
1906
Part146.Rotation = Vector3.new(0, 90, 0)
1907
Part146.Anchored = true
1908
Part146.CanCollide = false
1909
Part146.FormFactor = Enum.FormFactor.Custom
1910
Part146.Size = Vector3.new(1, 1, 1)
1911
Part146.CFrame = CFrame.new(1436.98523, 48.2367706, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1912
Part146.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1913
Part146.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1914
Part146.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1915
Part146.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1916
Part146.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1917
Part146.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1918
Part146.Color = Color3.new(0.388235, 0.372549, 0.384314)
1919
Part146.Position = Vector3.new(1436.98523, 48.2367706, -1310.87183)
1920
Part146.Orientation = Vector3.new(0, 90, 0)
1921
Part146.Color = Color3.new(0.388235, 0.372549, 0.384314)
1922
SpecialMesh147.Parent = Part146
1923
SpecialMesh147.Scale = Vector3.new(0.0339129046, 0.033912912, 0.517172039)
1924
SpecialMesh147.MeshType = Enum.MeshType.Brick
1925
SpecialMesh147.Scale = Vector3.new(0.0339129046, 0.033912912, 0.517172039)
1926
Part148.Parent = Tool0
1927
Part148.Material = Enum.Material.SmoothPlastic
1928
Part148.Transparency = 1
1929
Part148.Rotation = Vector3.new(-90, -60, -90)
1930
Part148.Anchored = true
1931
Part148.CanCollide = false
1932
Part148.FormFactor = Enum.FormFactor.Custom
1933
Part148.Size = Vector3.new(1, 1, 1)
1934
Part148.CFrame = CFrame.new(1436.81775, 48.1568336, -1310.87183, 0, 0.499998987, -0.866025984, 0, 0.866025984, 0.499998987, 1, 0, 0)
1935
Part148.BackSurface = Enum.SurfaceType.SmoothNoOutlines
1936
Part148.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
1937
Part148.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
1938
Part148.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
1939
Part148.RightSurface = Enum.SurfaceType.SmoothNoOutlines
1940
Part148.TopSurface = Enum.SurfaceType.SmoothNoOutlines
1941
Part148.Position = Vector3.new(1436.81775, 48.1568336, -1310.87183)
1942
Part148.Orientation = Vector3.new(-30, -90, 0)
1943
CylinderMesh149.Parent = Part148
1944
CylinderMesh149.Scale = Vector3.new(0.101738736, 0.161086336, 0.0339129157)
1945
CylinderMesh149.Scale = Vector3.new(0.101738736, 0.161086336, 0.0339129157)
1946
Part150.Parent = Tool0
1947
Part150.Material = Enum.Material.SmoothPlastic
1948
Part150.BrickColor = BrickColor.new("Brick yellow")
1949
Part150.Transparency = 1
1950
Part150.Rotation = Vector3.new(43.0599976, 7.44000006, -165.119995)
1951
Part150.Anchored = true
1952
Part150.CanCollide = false
1953
Part150.FormFactor = Enum.FormFactor.Custom
1954
Part150.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
1955
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)
1956
Part150.BottomSurface = Enum.SurfaceType.Smooth
1957
Part150.TopSurface = Enum.SurfaceType.Smooth
1958
Part150.Color = Color3.new(0.843137, 0.772549, 0.603922)
1959
Part150.Position = Vector3.new(1435.27368, 48.9770622, -1311.07397)
1960
Part150.Orientation = Vector3.new(42.6199989, 10.1300001, -158.229996)
1961
Part150.Color = Color3.new(0.843137, 0.772549, 0.603922)
1962
CylinderMesh151.Parent = Part150
1963
CylinderMesh151.Scale = Vector3.new(0.291783929, 0.389045268, 0.170207277)
1964
CylinderMesh151.Scale = Vector3.new(0.291783929, 0.389045268, 0.170207277)
1965
Part152.Parent = Tool0
1966
Part152.Material = Enum.Material.SmoothPlastic
1967
Part152.BrickColor = BrickColor.new("Medium green")
1968
Part152.Reflectance = 0.40000000596046
1969
Part152.Transparency = 1
1970
Part152.Rotation = Vector3.new(-90, 30, -105)
1971
Part152.Anchored = true
1972
Part152.CanCollide = false
1973
Part152.FormFactor = Enum.FormFactor.Custom
1974
Part152.Size = Vector3.new(1, 1, 1)
1975
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)
1976
Part152.BottomSurface = Enum.SurfaceType.Smooth
1977
Part152.TopSurface = Enum.SurfaceType.Smooth
1978
Part152.Color = Color3.new(0.631373, 0.768628, 0.54902)
1979
Part152.Position = Vector3.new(1436.76379, 48.7488365, -1310.92346)
1980
Part152.Orientation = Vector3.new(-60, 90, 165)
1981
Part152.Color = Color3.new(0.631373, 0.768628, 0.54902)
1982
CylinderMesh153.Parent = Part152
1983
CylinderMesh153.Scale = Vector3.new(0.101738736, 0.330650836, 0.0339129157)
1984
CylinderMesh153.Scale = Vector3.new(0.101738736, 0.330650836, 0.0339129157)
1985
Part154.Parent = Tool0
1986
Part154.Material = Enum.Material.SmoothPlastic
1987
Part154.BrickColor = BrickColor.new("Dark stone grey")
1988
Part154.Transparency = 1
1989
Part154.Rotation = Vector3.new(-105, 75, 90)
1990
Part154.Anchored = true
1991
Part154.CanCollide = false
1992
Part154.FormFactor = Enum.FormFactor.Custom
1993
Part154.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
1994
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)
1995
Part154.BottomSurface = Enum.SurfaceType.Smooth
1996
Part154.TopSurface = Enum.SurfaceType.Smooth
1997
Part154.Color = Color3.new(0.388235, 0.372549, 0.384314)
1998
Part154.Position = Vector3.new(1434.85571, 49.1141472, -1311.08923)
1999
Part154.Orientation = Vector3.new(-14.4799995, 93.9700012, -15.5)
2000
Part154.Color = Color3.new(0.388235, 0.372549, 0.384314)
2001
CylinderMesh155.Parent = Part154
2002
CylinderMesh155.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
2003
CylinderMesh155.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
2004
Part156.Parent = Tool0
2005
Part156.Material = Enum.Material.SmoothPlastic
2006
Part156.BrickColor = BrickColor.new("Dark stone grey")
2007
Part156.Transparency = 1
2008
Part156.Rotation = Vector3.new(90, 90, 0)
2009
Part156.Anchored = true
2010
Part156.CanCollide = false
2011
Part156.FormFactor = Enum.FormFactor.Custom
2012
Part156.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
2013
Part156.CFrame = CFrame.new(1433.8822, 48.9214859, -1310.87183, 0, 0, 1, 1, 0, 0, 0, 1, 0)
2014
Part156.BottomSurface = Enum.SurfaceType.Smooth
2015
Part156.TopSurface = Enum.SurfaceType.Smooth
2016
Part156.Color = Color3.new(0.388235, 0.372549, 0.384314)
2017
Part156.Position = Vector3.new(1433.8822, 48.9214859, -1310.87183)
2018
Part156.Orientation = Vector3.new(0, 90, 90)
2019
Part156.Color = Color3.new(0.388235, 0.372549, 0.384314)
2020
SpecialMesh157.Parent = Part156
2021
SpecialMesh157.Scale = Vector3.new(0.0300189219, 0.84052968, 1.8611728)
2022
SpecialMesh157.MeshType = Enum.MeshType.Brick
2023
SpecialMesh157.Scale = Vector3.new(0.0300189219, 0.84052968, 1.8611728)
2024
Part158.Parent = Tool0
2025
Part158.Material = Enum.Material.SmoothPlastic
2026
Part158.Transparency = 1
2027
Part158.Rotation = Vector3.new(-90, 0, 90)
2028
Part158.Anchored = true
2029
Part158.CanCollide = false
2030
Part158.FormFactor = Enum.FormFactor.Custom
2031
Part158.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
2032
Part158.CFrame = CFrame.new(1434.66418, 48.9062729, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
2033
Part158.BottomSurface = Enum.SurfaceType.Smooth
2034
Part158.TopSurface = Enum.SurfaceType.Smooth
2035
Part158.Position = Vector3.new(1434.66418, 48.9062729, -1310.87183)
2036
Part158.Orientation = Vector3.new(-90, 90, 0)
2037
SpecialMesh159.Parent = Part158
2038
SpecialMesh159.Scale = Vector3.new(0.180113494, 1.29081011, 1.53096449)
2039
SpecialMesh159.MeshType = Enum.MeshType.Brick
2040
SpecialMesh159.Scale = Vector3.new(0.180113494, 1.29081011, 1.53096449)
2041
Part160.Parent = Tool0
2042
Part160.Material = Enum.Material.SmoothPlastic
2043
Part160.Transparency = 1
2044
Part160.Rotation = Vector3.new(-90, 30, 90)
2045
Part160.Anchored = true
2046
Part160.CanCollide = false
2047
Part160.FormFactor = Enum.FormFactor.Custom
2048
Part160.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
2049
Part160.CFrame = CFrame.new(1436.1012, 48.0875969, -1310.87183, 0, -0.866025388, 0.500000238, 0, 0.500000238, 0.866025388, -1, 0, 0)
2050
Part160.BackSurface = Enum.SurfaceType.SmoothNoOutlines
2051
Part160.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
2052
Part160.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
2053
Part160.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
2054
Part160.RightSurface = Enum.SurfaceType.SmoothNoOutlines
2055
Part160.TopSurface = Enum.SurfaceType.SmoothNoOutlines
2056
Part160.Position = Vector3.new(1436.1012, 48.0875969, -1310.87183)
2057
Part160.Orientation = Vector3.new(-60, 90, 0)
2058
CylinderMesh161.Parent = Part160
2059
CylinderMesh161.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
2060
CylinderMesh161.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
2061
Part162.Parent = Tool0
2062
Part162.Material = Enum.Material.SmoothPlastic
2063
Part162.BrickColor = BrickColor.new("Dark stone grey")
2064
Part162.Transparency = 1
2065
Part162.Rotation = Vector3.new(0, 90, 0)
2066
Part162.Anchored = true
2067
Part162.CanCollide = false
2068
Part162.FormFactor = Enum.FormFactor.Custom
2069
Part162.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
2070
Part162.CFrame = CFrame.new(1436.875, 48.33424, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
2071
Part162.BackSurface = Enum.SurfaceType.SmoothNoOutlines
2072
Part162.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
2073
Part162.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
2074
Part162.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
2075
Part162.RightSurface = Enum.SurfaceType.SmoothNoOutlines
2076
Part162.TopSurface = Enum.SurfaceType.SmoothNoOutlines
2077
Part162.Color = Color3.new(0.388235, 0.372549, 0.384314)
2078
Part162.Position = Vector3.new(1436.875, 48.33424, -1310.87622)
2079
Part162.Orientation = Vector3.new(0, 90, 0)
2080
Part162.Color = Color3.new(0.388235, 0.372549, 0.384314)
2081
SpecialMesh163.Parent = Part162
2082
SpecialMesh163.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
2083
SpecialMesh163.MeshType = Enum.MeshType.Brick
2084
SpecialMesh163.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
2085
Part164.Parent = Tool0
2086
Part164.Material = Enum.Material.SmoothPlastic
2087
Part164.BrickColor = BrickColor.new("Dark stone grey")
2088
Part164.Transparency = 1
2089
Part164.Rotation = Vector3.new(180, 0, 90)
2090
Part164.Anchored = true
2091
Part164.CanCollide = false
2092
Part164.FormFactor = Enum.FormFactor.Custom
2093
Part164.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
2094
Part164.CFrame = CFrame.new(1435.66467, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
2095
Part164.BottomSurface = Enum.SurfaceType.Smooth
2096
Part164.TopSurface = Enum.SurfaceType.Smooth
2097
Part164.Color = Color3.new(0.388235, 0.372549, 0.384314)
2098
Part164.Position = Vector3.new(1435.66467, 48.9020348, -1310.87183)
2099
Part164.Orientation = Vector3.new(0, -180, -90)
2100
Part164.Color = Color3.new(0.388235, 0.372549, 0.384314)
2101
CylinderMesh165.Parent = Part164
2102
CylinderMesh165.Scale = Vector3.new(0.494551927, 0.175486088, 0.861476958)
2103
CylinderMesh165.Scale = Vector3.new(0.494551927, 0.175486088, 0.861476958)
2104
Part166.Parent = Tool0
2105
Part166.Material = Enum.Material.SmoothPlastic
2106
Part166.BrickColor = BrickColor.new("Brick yellow")
2107
Part166.Transparency = 1
2108
Part166.Rotation = Vector3.new(-0.870000005, -12.9499998, -157.62999)
2109
Part166.Anchored = true
2110
Part166.CanCollide = false
2111
Part166.FormFactor = Enum.FormFactor.Custom
2112
Part166.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
2113
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)
2114
Part166.BottomSurface = Enum.SurfaceType.Smooth
2115
Part166.TopSurface = Enum.SurfaceType.Smooth
2116
Part166.Color = Color3.new(0.843137, 0.772549, 0.603922)
2117
Part166.Position = Vector3.new(1435.34644, 48.8009377, -1311.09277)
2118
Part166.Orientation = Vector3.new(-0.849999964, -12.9499998, -157.440002)
2119
Part166.Color = Color3.new(0.843137, 0.772549, 0.603922)
2120
CylinderMesh167.Parent = Part166
2121
CylinderMesh167.Scale = Vector3.new(0.291783929, 0.889940858, 0.170207277)
2122
CylinderMesh167.Scale = Vector3.new(0.291783929, 0.889940858, 0.170207277)
2123
Part168.Name = "Smooth Block Model"
2124
Part168.Parent = Tool0
2125
Part168.Material = Enum.Material.SmoothPlastic
2126
Part168.BrickColor = BrickColor.new("Dark stone grey")
2127
Part168.Transparency = 1
2128
Part168.Rotation = Vector3.new(90, 15, 90)
2129
Part168.Anchored = true
2130
Part168.CanCollide = false
2131
Part168.FormFactor = Enum.FormFactor.Custom
2132
Part168.Size = Vector3.new(1, 1, 1)
2133
Part168.CFrame = CFrame.new(1435.82715, 48.8071632, -1310.87183, 0, -0.965925872, 0.258818984, 0, -0.258818984, -0.965925872, 1, 0, 0)
2134
Part168.BackSurface = Enum.SurfaceType.SmoothNoOutlines
2135
Part168.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
2136
Part168.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
2137
Part168.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
2138
Part168.RightSurface = Enum.SurfaceType.SmoothNoOutlines
2139
Part168.TopSurface = Enum.SurfaceType.SmoothNoOutlines
2140
Part168.Color = Color3.new(0.388235, 0.372549, 0.384314)
2141
Part168.Position = Vector3.new(1435.82715, 48.8071632, -1310.87183)
2142
Part168.Orientation = Vector3.new(75, 90, 180)
2143
Part168.Color = Color3.new(0.388235, 0.372549, 0.384314)
2144
SpecialMesh169.Parent = Part168
2145
SpecialMesh169.Scale = Vector3.new(0.0339129046, 0.245868579, 0.22891213)
2146
SpecialMesh169.MeshType = Enum.MeshType.Wedge
2147
SpecialMesh169.Scale = Vector3.new(0.0339129046, 0.245868579, 0.22891213)
2148
Part170.Name = "Smooth Block Model"
2149
Part170.Parent = Tool0
2150
Part170.Material = Enum.Material.SmoothPlastic
2151
Part170.BrickColor = BrickColor.new("Dark stone grey")
2152
Part170.Transparency = 1
2153
Part170.Rotation = Vector3.new(-90, -15, 90)
2154
Part170.Anchored = true
2155
Part170.CanCollide = false
2156
Part170.FormFactor = Enum.FormFactor.Custom
2157
Part170.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
2158
Part170.CFrame = CFrame.new(1435.77759, 48.6315002, -1310.87183, 0, -0.965925872, -0.258818984, 0, -0.258818984, 0.965925872, -1, 0, 0)
2159
Part170.BackSurface = Enum.SurfaceType.SmoothNoOutlines
2160
Part170.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
2161
Part170.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
2162
Part170.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
2163
Part170.RightSurface = Enum.SurfaceType.SmoothNoOutlines
2164
Part170.TopSurface = Enum.SurfaceType.SmoothNoOutlines
2165
Part170.Color = Color3.new(0.388235, 0.372549, 0.384314)
2166
Part170.Position = Vector3.new(1435.77759, 48.6315002, -1310.87183)
2167
Part170.Orientation = Vector3.new(-75, -90, 180)
2168
Part170.Color = Color3.new(0.388235, 0.372549, 0.384314)
2169
SpecialMesh171.Parent = Part170
2170
SpecialMesh171.Scale = Vector3.new(0.236344978, 0.177258641, 0.196954101)
2171
SpecialMesh171.MeshType = Enum.MeshType.Wedge
2172
SpecialMesh171.Scale = Vector3.new(0.236344978, 0.177258641, 0.196954101)
2173
Part172.Parent = Tool0
2174
Part172.Material = Enum.Material.SmoothPlastic
2175
Part172.BrickColor = BrickColor.new("Dark stone grey")
2176
Part172.Transparency = 1
2177
Part172.Rotation = Vector3.new(-90, 0, 90)
2178
Part172.Anchored = true
2179
Part172.CanCollide = false
2180
Part172.FormFactor = Enum.FormFactor.Custom
2181
Part172.Size = Vector3.new(1, 1, 1)
2182
Part172.CFrame = CFrame.new(1436.74353, 48.5165329, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
2183
Part172.BackSurface = Enum.SurfaceType.SmoothNoOutlines
2184
Part172.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
2185
Part172.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
2186
Part172.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
2187
Part172.RightSurface = Enum.SurfaceType.SmoothNoOutlines
2188
Part172.TopSurface = Enum.SurfaceType.SmoothNoOutlines
2189
Part172.Color = Color3.new(0.388235, 0.372549, 0.384314)
2190
Part172.Position = Vector3.new(1436.74353, 48.5165329, -1310.87183)
2191
Part172.Orientation = Vector3.new(-90, 90, 0)
2192
Part172.Color = Color3.new(0.388235, 0.372549, 0.384314)
2193
SpecialMesh173.Parent = Part172
2194
SpecialMesh173.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
2195
SpecialMesh173.MeshType = Enum.MeshType.Brick
2196
SpecialMesh173.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
2197
Part174.Parent = Tool0
2198
Part174.Material = Enum.Material.SmoothPlastic
2199
Part174.Transparency = 1
2200
Part174.Rotation = Vector3.new(90, 75, -90)
2201
Part174.Anchored = true
2202
Part174.CanCollide = false
2203
Part174.FormFactor = Enum.FormFactor.Custom
2204
Part174.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
2205
Part174.CFrame = CFrame.new(1435.75964, 48.5609169, -1310.87622, 0, 0.258818984, 0.965925872, 0, 0.965925872, -0.258818984, -1, 0, 0)
2206
Part174.BottomSurface = Enum.SurfaceType.Smooth
2207
Part174.TopSurface = Enum.SurfaceType.Smooth
2208
Part174.Position = Vector3.new(1435.75964, 48.5609169, -1310.87622)
2209
Part174.Orientation = Vector3.new(15, 90, 0)
2210
SpecialMesh175.Parent = Part174
2211
SpecialMesh175.Scale = Vector3.new(0.0300189164, 0.540340722, 0.0900567546)
2212
SpecialMesh175.MeshType = Enum.MeshType.Brick
2213
SpecialMesh175.Scale = Vector3.new(0.0300189164, 0.540340722, 0.0900567546)
2214
Part176.Parent = Tool0
2215
Part176.Material = Enum.Material.SmoothPlastic
2216
Part176.BrickColor = BrickColor.new("Nougat")
2217
Part176.Transparency = 1
2218
Part176.Rotation = Vector3.new(180, 0, 90)
2219
Part176.Anchored = true
2220
Part176.CanCollide = false
2221
Part176.FormFactor = Enum.FormFactor.Custom
2222
Part176.Size = Vector3.new(0.415433139, 0.313694388, 0.423911244)
2223
Part176.CFrame = CFrame.new(1434.67273, 48.9062729, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
2224
Part176.BottomSurface = Enum.SurfaceType.Smooth
2225
Part176.TopSurface = Enum.SurfaceType.Smooth
2226
Part176.Color = Color3.new(0.8, 0.556863, 0.411765)
2227
Part176.Position = Vector3.new(1434.67273, 48.9062729, -1310.87183)
2228
Part176.Orientation = Vector3.new(0, -180, -90)
2229
Part176.Color = Color3.new(0.8, 0.556863, 0.411765)
2230
CylinderMesh177.Parent = Part176
2231
Part178.Parent = Tool0
2232
Part178.Material = Enum.Material.SmoothPlastic
2233
Part178.BrickColor = BrickColor.new("Brick yellow")
2234
Part178.Transparency = 1
2235
Part178.Rotation = Vector3.new(-90, 0, 90)
2236
Part178.Anchored = true
2237
Part178.CanCollide = false
2238
Part178.FormFactor = Enum.FormFactor.Custom
2239
Part178.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
2240
Part178.CFrame = CFrame.new(1434.84229, 48.626503, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
2241
Part178.BottomSurface = Enum.SurfaceType.Smooth
2242
Part178.TopSurface = Enum.SurfaceType.Smooth
2243
Part178.Color = Color3.new(0.843137, 0.772549, 0.603922)
2244
Part178.Position = Vector3.new(1434.84229, 48.626503, -1310.87183)
2245
Part178.Orientation = Vector3.new(-90, 90, 0)
2246
Part178.Color = Color3.new(0.843137, 0.772549, 0.603922)
2247
SpecialMesh179.Parent = Part178
2248
SpecialMesh179.Scale = Vector3.new(0.287159115, 0.781710386, 0.175486133)
2249
SpecialMesh179.MeshType = Enum.MeshType.Brick
2250
SpecialMesh179.Scale = Vector3.new(0.287159115, 0.781710386, 0.175486133)
2251
Part180.Parent = Tool0
2252
Part180.Material = Enum.Material.SmoothPlastic
2253
Part180.BrickColor = BrickColor.new("Black")
2254
Part180.Transparency = 1
2255
Part180.Rotation = Vector3.new(15.0099993, 62.4199982, 2.98000002)
2256
Part180.Anchored = true
2257
Part180.CanCollide = false
2258
Part180.FormFactor = Enum.FormFactor.Custom
2259
Part180.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
2260
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)
2261
Part180.BottomSurface = Enum.SurfaceType.Smooth
2262
Part180.TopSurface = Enum.SurfaceType.Smooth
2263
Part180.Color = Color3.new(0.105882, 0.164706, 0.207843)
2264
Part180.Position = Vector3.new(1435.07532, 49.0545235, -1310.66675)
2265
Part180.Orientation = Vector3.new(6.88999987, 63.2299995, 16.3400002)
2266
Part180.Color = Color3.new(0.105882, 0.164706, 0.207843)
2267
CylinderMesh181.Parent = Part180
2268
CylinderMesh181.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
2269
CylinderMesh181.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
2270
Part182.Parent = Tool0
2271
Part182.Material = Enum.Material.SmoothPlastic
2272
Part182.BrickColor = BrickColor.new("Dark stone grey")
2273
Part182.Transparency = 1
2274
Part182.Rotation = Vector3.new(180, 0, 90)
2275
Part182.Anchored = true
2276
Part182.CanCollide = false
2277
Part182.FormFactor = Enum.FormFactor.Custom
2278
Part182.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
2279
Part182.CFrame = CFrame.new(1433.90967, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
2280
Part182.BottomSurface = Enum.SurfaceType.Smooth
2281
Part182.TopSurface = Enum.SurfaceType.Smooth
2282
Part182.Color = Color3.new(0.388235, 0.372549, 0.384314)
2283
Part182.Position = Vector3.new(1433.90967, 48.9232292, -1310.87183)
2284
Part182.Orientation = Vector3.new(0, -180, -90)
2285
Part182.Color = Color3.new(0.388235, 0.372549, 0.384314)
2286
CylinderMesh183.Parent = Part182
2287
CylinderMesh183.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
2288
CylinderMesh183.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
2289
Part184.Parent = Tool0
2290
Part184.Material = Enum.Material.SmoothPlastic
2291
Part184.BrickColor = BrickColor.new("Dark stone grey")
2292
Part184.Transparency = 1
2293
Part184.Rotation = Vector3.new(-90, 75, 90)
2294
Part184.Anchored = true
2295
Part184.CanCollide = false
2296
Part184.FormFactor = Enum.FormFactor.Custom
2297
Part184.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
2298
Part184.CFrame = CFrame.new(1435.92761, 48.4653969, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
2299
Part184.BottomSurface = Enum.SurfaceType.Smooth
2300
Part184.TopSurface = Enum.SurfaceType.Smooth
2301
Part184.Color = Color3.new(0.388235, 0.372549, 0.384314)
2302
Part184.Position = Vector3.new(1435.92761, 48.4653969, -1310.87183)
2303
Part184.Orientation = Vector3.new(-15, 90, 0)
2304
Part184.Color = Color3.new(0.388235, 0.372549, 0.384314)
2305
SpecialMesh185.Parent = Part184
2306
SpecialMesh185.Scale = Vector3.new(0.19143942, 0.909336686, 0.239299268)
2307
SpecialMesh185.MeshType = Enum.MeshType.Brick
2308
SpecialMesh185.Scale = Vector3.new(0.19143942, 0.909336686, 0.239299268)
2309
Part186.Parent = Tool0
2310
Part186.Material = Enum.Material.SmoothPlastic
2311
Part186.Transparency = 1
2312
Part186.Rotation = Vector3.new(-90, 0, 90)
2313
Part186.Anchored = true
2314
Part186.CanCollide = false
2315
Part186.FormFactor = Enum.FormFactor.Custom
2316
Part186.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
2317
Part186.CFrame = CFrame.new(1434.48193, 49.1648102, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
2318
Part186.BottomSurface = Enum.SurfaceType.Smooth
2319
Part186.TopSurface = Enum.SurfaceType.Smooth
2320
Part186.Position = Vector3.new(1434.48193, 49.1648102, -1310.87183)
2321
Part186.Orientation = Vector3.new(-90, 90, 0)
2322
SpecialMesh187.Parent = Part186
2323
SpecialMesh187.Scale = Vector3.new(0.0319065675, 0.0319065675, 0.223345816)
2324
SpecialMesh187.MeshType = Enum.MeshType.Brick
2325
SpecialMesh187.Scale = Vector3.new(0.0319065675, 0.0319065675, 0.223345816)
2326
IntValue188.Name = "Ammo"
2327
IntValue188.Parent = Tool0
2328
IntValue188.Value = 25
2329
IntValue189.Name = "ClipSize"
2330
IntValue189.Parent = Tool0
2331
IntValue189.Value = 25
2332
IntValue190.Name = "LethalGrenades"
2333
IntValue190.Parent = Tool0
2334
IntValue190.Value = 15
2335
IntValue191.Name = "StoredAmmo"
2336
IntValue191.Parent = Tool0
2337
IntValue191.Value = 400
2338
IntValue192.Name = "TacticalGrenades"
2339
IntValue192.Parent = Tool0
2340
IntValue192.Value = 15
2341
Script193.Name = "serverMain"
2342
Script193.Parent = Tool0
2343
table.insert(cors,sandbox(Script193,function()
2344
local Plyr = script:WaitForChild("Plyr")
2345
2346
local Gun = script.Parent
2347
local Handle = Gun:WaitForChild("Handle")
2348
2349
local V3 = Vector3.new
2350
local CF, CFANG = CFrame.new, CFrame.Angles
2351
2352
local RAD = math.rad
2353
2354
local numLerp = function(A, B, Alpha)
2355
	return A + (B - A) * Alpha
2356
end
2357
2358
local inList = function(Element, List)
2359
	for _, v in pairs(List) do
2360
		if v == Element then
2361
			return true
2362
		end
2363
	end
2364
	return false
2365
end
2366
2367
local getObject = function(Model, Class, Name)
2368
	for _, v in pairs(Model:GetChildren()) do
2369
		if v:IsA(Class) and v.Name == Name then
2370
			return v
2371
		end
2372
	end
2373
	return nil
2374
end
2375
2376
----------------------------------------------------------------------
2377
--------------------[ IGNORE MODEL HANDLING ]-------------------------
2378
----------------------------------------------------------------------
2379
2380
wait(math.random(0, 20) / 40) --This is to prevent more than one ignoreModel from being created
2381
2382
if _G.ignoreCode then --If the ignoreCode already exists, then the script creates the ignoreModel
2383
	--[[
2384
		The purpose of this is so that every gun in a game that uses this gun kit will share one ignoreModel. That way,
2385
		bullet trails, bullet holes, and other fake arms will be ignored by the gun which makes the bullets more likely to
2386
		hit a character part
2387
	--]]
2388
	if (not game.Workspace:FindFirstChild("ignoreModel_".._G.ignoreCode)) then
2389
		local ignoreModel = Instance.new("Model")
2390
		ignoreModel.Name = "ignoreModel_".._G.ignoreCode
2391
		ignoreModel.Parent = game.Workspace
2392
		
2393
		local grenadeFolder = Instance.new("Model")
2394
		grenadeFolder.Name = "grenadeFolder"
2395
		grenadeFolder.Parent = ignoreModel
2396
	
2397
		spawn(function()
2398
			while true do
2399
				ignoreModel.Parent = game.Workspace
2400
				grenadeFolder.Parent = ignoreModel
2401
				wait(1 / 20)
2402
			end
2403
		end)
2404
	end
2405
	
2406
	script.Parent:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value = _G.ignoreCode
2407
else
2408
	--[[
2409
		If there isn't already an ignoreCode, then this creates one. The purpose of it being random is so that if there is
2410
		an ignoreModel for something else in the game, the script won't end up placing the ignored objects in that ignoreModel
2411
	--]]
2412
	_G.ignoreCode = math.random(1, 1e4)
2413
	
2414
	if (not game.Workspace:FindFirstChild("ignoreModel_".._G.ignoreCode)) then
2415
		local ignoreModel = Instance.new("Model")
2416
		ignoreModel.Name = "ignoreModel_".._G.ignoreCode
2417
		ignoreModel.Parent = game.Workspace
2418
		
2419
		local grenadeFolder = Instance.new("Model")
2420
		grenadeFolder.Name = "grenadeFolder"
2421
		grenadeFolder.Parent = ignoreModel
2422
	
2423
		spawn(function()
2424
			while true do
2425
				ignoreModel.Parent = game.Workspace
2426
				grenadeFolder.Parent = ignoreModel
2427
				wait(1 / 20)
2428
			end
2429
		end)
2430
	end
2431
	
2432
	script.Parent:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value = _G.ignoreCode
2433
end
2434
2435
spawn(function()
2436
	--[[
2437
		This function deletes any Player Folders that were left in the ignoreModel because the player left the game without
2438
		deselecting the Gun first
2439
	--]]
2440
	repeat wait() until _G.ignoreCode
2441
	local ignoreModel = game.Workspace:WaitForChild("ignoreModel_".._G.ignoreCode)
2442
	while true do
2443
		for _, gunIgnore in pairs(ignoreModel:GetChildren()) do
2444
			if gunIgnore.Name ~= "grenadeFolder" then
2445
				if (not game.Players:FindFirstChild(gunIgnore.Name:sub(11))) then
2446
					gunIgnore:Destroy()
2447
				end
2448
			end
2449
		end
2450
		wait(1 / 20)
2451
	end
2452
end)
2453
2454
----------------------------------------------------------------------
2455
--------------------[ RESET CAMERA ]----------------------------------
2456
----------------------------------------------------------------------
2457
2458
Gun.ChildRemoved:connect(function(Child)
2459
	if Child == Handle and Plyr.Value then
2460
		local ignoreCode = Gun:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value
2461
		local resetCam = script:WaitForChild("resetCam")
2462
		resetCam:WaitForChild("ignoreCode").Value = ignoreCode
2463
		resetCam.Parent = Plyr.Value.PlayerGui
2464
	end
2465
end)
2466
2467
----------------------------------------------------------------------
2468
--------------------[ GET WELD CFRAMES ]------------------------------
2469
----------------------------------------------------------------------
2470
2471
for _, v in pairs(Gun:GetChildren()) do
2472
	if v:IsA("BasePart") and v ~= Handle then
2473
		if v:FindFirstChild("mainWeld") then v.mainWeld:Destroy() end
2474
		if (not v:FindFirstChild("weldCF")) then
2475
			local weldCF = Instance.new("CFrameValue")
2476
			weldCF.Name = "weldCF"
2477
			weldCF.Value = Handle.CFrame:toObjectSpace(v.CFrame)
2478
			weldCF.Parent = v
2479
		end
2480
		if string.sub(v.Name, 1, 3) == "Mag" then
2481
			if (not v:FindFirstChild("magTrans")) then
2482
				local magTrans = Instance.new("NumberValue")
2483
				magTrans.Name = "magTrans"
2484
				magTrans.Value = v.Transparency
2485
				magTrans.Parent = v
2486
			end
2487
		end
2488
		v.Anchored = true
2489
		v.CanCollide = false
2490
	end
2491
end
2492
Handle.Anchored = false
2493
Handle.CanCollide = true
2494
2495
----------------------------------------------------------------------
2496
--------------------[ GUNSETUP HANDLING ]-----------------------------
2497
----------------------------------------------------------------------
2498
2499
local gunSetup = script:WaitForChild("gunSetup")
2500
function gunSetup.OnServerInvoke(Player, Vars)
2501
	
2502
	--------------------[ CREATING IGNORE MODELS ]--------------------------------
2503
	
2504
	local gunIgnore = Instance.new("Model")
2505
	gunIgnore.Name = "gunIgnore_"..Player.Name
2506
	gunIgnore.Parent = Vars.ignoreModel
2507
	
2508
	--------------------[ MODIFYING THE PLAYER ]----------------------------------
2509
		
2510
	Vars.Humanoid.AutoRotate = false
2511
	
2512
	Vars.Shoulders.Right.Part1 = nil
2513
	Vars.Shoulders.Left.Part1 = nil
2514
	
2515
	local playerFolder = Instance.new("Model")
2516
	playerFolder.Name = "playerFolder"
2517
	playerFolder.Parent = gunIgnore
2518
	
2519
	local headBase = Instance.new("Part")
2520
	headBase.Transparency = 1
2521
	headBase.Name = "headBase"
2522
	headBase.CanCollide = false
2523
	headBase.FormFactor = Enum.FormFactor.Custom
2524
	headBase.Size = V3(0.2, 0.2, 0.2)
2525
	headBase.BottomSurface = Enum.SurfaceType.Smooth
2526
	headBase.TopSurface = Enum.SurfaceType.Smooth
2527
	headBase.Parent = playerFolder
2528
		
2529
	local headWeld = Instance.new("Weld")
2530
	headWeld.Part0 = Vars.Torso
2531
	headWeld.Part1 = headBase
2532
	headWeld.C0 = CF(0, 1.5, 0)
2533
	headWeld.Parent = Vars.Torso
2534
	
2535
	local headWeld2 = Instance.new("Weld")
2536
	headWeld2.Part0 = headBase
2537
	headWeld2.Part1 = Vars.Head
2538
	headWeld2.Parent = headBase
2539
		
2540
	local animBase = Instance.new("Part")
2541
	animBase.Transparency = 1
2542
	animBase.Name = "animBase"
2543
	animBase.CanCollide = false
2544
	animBase.FormFactor = Enum.FormFactor.Custom
2545
	animBase.Size = V3(0.2, 0.2, 0.2)
2546
	animBase.BottomSurface = Enum.SurfaceType.Smooth
2547
	animBase.TopSurface = Enum.SurfaceType.Smooth
2548
	animBase.Parent = playerFolder
2549
	
2550
	local animWeld = Instance.new("Weld")
2551
	animWeld.Part0 = animBase
2552
	animWeld.Part1 = headBase
2553
	animWeld.Parent = animBase
2554
	
2555
	local armBase = Instance.new("Part")
2556
	armBase.Transparency = 1
2557
	armBase.Name = "ArmBase"
2558
	armBase.CanCollide = false
2559
	armBase.FormFactor = Enum.FormFactor.Custom
2560
	armBase.Size = V3(0.2, 0.2, 0.2)
2561
	armBase.BottomSurface = Enum.SurfaceType.Smooth
2562
	armBase.TopSurface = Enum.SurfaceType.Smooth
2563
	armBase.Parent = playerFolder
2564
	
2565
	local ABWeld = Instance.new("Weld")
2566
	ABWeld.Part0 = armBase
2567
	ABWeld.Part1 = animBase
2568
	ABWeld.Parent = armBase
2569
		
2570
	local LArmBase = Instance.new("Part")
2571
	LArmBase.Transparency = 1
2572
	LArmBase.Name = "LArmBase"
2573
	LArmBase.CanCollide = false
2574
	LArmBase.FormFactor = Enum.FormFactor.Custom
2575
	LArmBase.Size = V3(0.2, 0.2, 0.2)
2576
	LArmBase.BottomSurface = Enum.SurfaceType.Smooth
2577
	LArmBase.TopSurface = Enum.SurfaceType.Smooth
2578
	LArmBase.Parent = playerFolder
2579
	
2580
	local RArmBase = Instance.new("Part")
2581
	RArmBase.Transparency = 1
2582
	RArmBase.Name = "RArmBase"
2583
	RArmBase.CanCollide = false
2584
	RArmBase.FormFactor = Enum.FormFactor.Custom
2585
	RArmBase.Size = V3(0.2, 0.2, 0.2)
2586
	RArmBase.BottomSurface = Enum.SurfaceType.Smooth
2587
	RArmBase.TopSurface = Enum.SurfaceType.Smooth
2588
	RArmBase.Parent = playerFolder
2589
	
2590
	local LWeld = Instance.new("Weld")
2591
	LWeld.Name = "LWeld"
2592
	LWeld.Part0 = armBase
2593
	LWeld.Part1 = LArmBase
2594
	LWeld.C0 = Vars.armC0[1]
2595
	LWeld.C1 = Vars.leftArmC1
2596
	LWeld.Parent = armBase
2597
	
2598
	local RWeld = Instance.new("Weld")
2599
	RWeld.Name = "RWeld"
2600
	RWeld.Part0 = armBase
2601
	RWeld.Part1 = RArmBase
2602
	RWeld.C0 = Vars.armC0[2]
2603
	RWeld.C1 = Vars.rightArmC1
2604
	RWeld.Parent = armBase
2605
	
2606
	local LWeld2 = Instance.new("Weld")
2607
	LWeld2.Name = "LWeld"
2608
	LWeld2.Part0 = LArmBase
2609
	LWeld2.Part1 = Vars.LArm
2610
	LWeld2.Parent = LArmBase
2611
	
2612
	local RWeld2 = Instance.new("Weld")
2613
	RWeld2.Name = "RWeld"
2614
	RWeld2.Part0 = RArmBase
2615
	RWeld2.Part1 = Vars.RArm
2616
	RWeld2.Parent = RArmBase
2617
	
2618
	local LLegWeld = Instance.new("Weld")
2619
	LLegWeld.Name = "LLegWeld"
2620
	LLegWeld.Part0 = Vars.Torso
2621
	LLegWeld.Part1 = nil
2622
	LLegWeld.C0 = CF(-0.5, -2, 0)
2623
	LLegWeld.Parent = Vars.Torso
2624
	
2625
	local RLegWeld = Instance.new("Weld")
2626
	RLegWeld.Name = "RLegWeld"
2627
	RLegWeld.Part0 = Vars.Torso
2628
	RLegWeld.Part1 = nil
2629
	RLegWeld.C0 = CF(0.5, -2, 0)
2630
	RLegWeld.Parent = Vars.Torso
2631
	
2632
	for _, Tab in pairs(Vars.gunParts) do
2633
		Tab.Obj.Anchored = false
2634
		local Weld = Instance.new("Weld")
2635
		Weld.Name = "mainWeld"
2636
		Weld.Part0 = Vars.Handle
2637
		Weld.Part1 = Tab.Obj
2638
		Weld.C0 = Tab.Obj.weldCF.Value
2639
		Weld.Parent = Vars.Handle
2640
		Tab.Weld = Weld
2641
	end
2642
	
2643
	return gunIgnore, playerFolder, headWeld, headWeld2, animWeld, ABWeld, LWeld, RWeld, LWeld2, RWeld2, LLegWeld, RLegWeld, Vars.gunParts
2644
end
2645
2646
----------------------------------------------------------------------
2647
--------------------[ TWEENJOINT HANDLING ]---------------------------
2648
----------------------------------------------------------------------
2649
2650
local createTweenIndicator = script:WaitForChild("createTweenIndicator")
2651
function createTweenIndicator.OnServerInvoke(_, Joint, newCode)
2652
	local tweenIndicator = nil
2653
	if (not Joint:findFirstChild("tweenCode")) then --If the joint isn't being tweened, then
2654
		tweenIndicator = Instance.new("IntValue")
2655
		tweenIndicator.Name = "tweenCode"
2656
		tweenIndicator.Value = newCode
2657
		tweenIndicator.Parent = Joint
2658
	else
2659
		tweenIndicator = Joint.tweenCode
2660
		tweenIndicator.Value = newCode --If the joint is already being tweened, this will change the code, and the tween loop will stop
2661
	end
2662
	return tweenIndicator
2663
end
2664
2665
local lerpCF = script:WaitForChild("lerpCF")
2666
function lerpCF.OnServerInvoke(_, Joint, Prop, startCF, endCF, Alpha)
2667
	spawn(function()
2668
		Joint[Prop] = startCF:lerp(endCF, Alpha)
2669
	end)
2670
end
2671
2672
local deleteTweenIndicator = script:WaitForChild("deleteTweenIndicator")
2673
function deleteTweenIndicator.OnServerInvoke(_, tweenIndicator, newCode)
2674
	if tweenIndicator.Value == newCode then --If this tween functions was the last one called on a joint then it will remove the code
2675
		tweenIndicator:Destroy()
2676
	end
2677
end
2678
2679
----------------------------------------------------------------------
2680
--------------------[ BULLET IMPACT HANDLING ]------------------------
2681
----------------------------------------------------------------------
2682
2683
local createBulletImpact = script:WaitForChild("createBulletImpact")
2684
createBulletImpact.OnServerEvent:connect(function(_, H, P, N, D, humanoidFound, gunIgnore, S)
2685
	local surfaceCF = CF(P, P + N)
2686
	----------------------------------------------------------------------------------
2687
	--Creating the bullet hole--------------------------------------------------------
2688
	----------------------------------------------------------------------------------
2689
	if S.bulletHoles and (not humanoidFound) then
2690
		local Hole = Instance.new("Part")
2691
		Hole.Transparency = 1
2692
		Hole.Anchored = true
2693
		Hole.CanCollide = false
2694
		Hole.FormFactor = "Custom"
2695
		Hole.Size = V3(1, 1, 0.2)
2696
		Hole.TopSurface = 0
2697
		Hole.BottomSurface = 0
2698
		local Mesh = Instance.new("BlockMesh")
2699
		Mesh.Offset = V3(0, 0, -0.05)
2700
		Mesh.Scale = V3(S.holeSettings.Size, S.holeSettings.Size, 0)
2701
		Mesh.Parent = Hole
2702
		local Decal = Instance.new("Decal")
2703
		Decal.Face = Enum.NormalId.Front
2704
		Decal.Texture = S.holeSettings.Texture
2705
		Decal.Parent = Hole
2706
		Hole.Parent = gunIgnore
2707
		Hole.CFrame = surfaceCF
2708
		if (not H.Anchored) then
2709
			local Weld = Instance.new("Weld", Hole)
2710
			Weld.Part0 = H
2711
			Weld.Part1 = Hole
2712
			Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
2713
			Hole.Anchored = false
2714
		end
2715
		delay(S.holeSettings.visibleTime, function()
2716
			if S.holeSettings.disappearTime > 0 then
2717
				local t0 = tick()
2718
				while true do
2719
					local Alpha = math.min((tick() - t0) / S.holeSettings.disappearTime, 1)
2720
					Decal.Transparency = numLerp(0, 1, Alpha)
2721
					if Alpha == 1 then break end
2722
					wait()
2723
				end
2724
				Hole:Destroy()
2725
			else
2726
				Hole:Destroy()
2727
			end
2728
		end)
2729
	end
2730
	----------------------------------------------------------------------------------
2731
	--Creating the spark effect-------------------------------------------------------
2732
	----------------------------------------------------------------------------------
2733
	if S.bulletSparks and (not humanoidFound) and inList(H.Material, S.sparkSettings.Materials) then
2734
		local Sparks = Instance.new("Part")
2735
		Sparks.Transparency = 1
2736
		Sparks.Anchored = true
2737
		Sparks.CanCollide = false
2738
		Sparks.FormFactor = "Custom"
2739
		Sparks.Size = V3(1, 1, 1)
2740
		Sparks.TopSurface = 0
2741
		Sparks.BottomSurface = 0
2742
		
2743
		local Particles = nil
2744
		if S.customSparks then
2745
			Particles = getObject(game.ServerStorage, "ParticleEmitter", "bulletSpark"):Clone()
2746
		else
2747
			Particles = Instance.new("ParticleEmitter")
2748
			Particles.Color = ColorSequence.new(S.sparkSettings.Color.Start, S.sparkSettings.Color.End)
2749
			Particles.LightEmission = 1
2750
			Particles.Size = NumberSequence.new(
2751
				{
2752
					NumberSequenceKeypoint.new(0, S.sparkSettings.Size, 0.25);
2753
					NumberSequenceKeypoint.new(1, 0);
2754
				}
2755
			)
2756
			Particles.Texture = S.sparkSettings.Texture
2757
			Particles.Transparency = NumberSequence.new(0)
2758
			Particles.Acceleration = V3(0, -196.2, 0)
2759
			Particles.EmissionDirection = Enum.NormalId.Front
2760
			Particles.Lifetime = NumberRange.new(S.sparkSettings.Lifetime - 0.05, S.sparkSettings.Lifetime + 0.05)
2761
			Particles.Rate = S.sparkSettings.Rate
2762
			Particles.Rotation = NumberRange.new(0, 360)
2763
			Particles.Speed = NumberRange.new(S.sparkSettings.Speed - 5, S.sparkSettings.Speed + 5)
2764
			Particles.VelocitySpread = S.sparkSettings.Spread
2765
		end
2766
		Particles.Parent = Sparks
2767
		
2768
		Sparks.Parent = gunIgnore
2769
		Sparks.CFrame = surfaceCF
2770
		if (not H.Anchored) then
2771
			local Weld = Instance.new("Weld", Sparks)
2772
			Weld.Part0 = H
2773
			Weld.Part1 = Sparks
2774
			Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
2775
			Sparks.Anchored = false
2776
		end
2777
		delay(0.1, function()
2778
			Particles.Enabled = false
2779
			wait(Particles.Lifetime.Max)
2780
			Sparks:Destroy()
2781
		end)
2782
	end
2783
	----------------------------------------------------------------------------------
2784
	--Creating the smoke effect-------------------------------------------------------
2785
	----------------------------------------------------------------------------------
2786
	if S.bulletSmoke and (not humanoidFound) then
2787
		local Smoke = Instance.new("Part")
2788
		Smoke.Transparency = 1
2789
		Smoke.Anchored = true
2790
		Smoke.CanCollide = false
2791
		Smoke.FormFactor = "Custom"
2792
		Smoke.Size = V3(1, 1, 1)
2793
		Smoke.TopSurface = 0
2794
		Smoke.BottomSurface = 0
2795
		
2796
		local Particles = Instance.new("ParticleEmitter")
2797
		Particles.Color = ColorSequence.new(S.smokeSettings.objColor and H.Color or S.smokeSettings.Color)
2798
		Particles.LightEmission = 0
2799
		Particles.Size = NumberSequence.new(
2800
			{
2801
				NumberSequenceKeypoint.new(0, S.smokeSettings.Size.Start);
2802
				NumberSequenceKeypoint.new(1, S.smokeSettings.Size.End);
2803
			}
2804
		)
2805
		Particles.Texture = S.smokeSettings.Texture
2806
		Particles.Transparency = NumberSequence.new(
2807
			{
2808
				NumberSequenceKeypoint.new(0, S.smokeSettings.startTransparency);
2809
				NumberSequenceKeypoint.new(0.5, 0.75 * S.smokeSettings.startTransparency + 0.25);
2810
				NumberSequenceKeypoint.new(1, 1);
2811
			}
2812
		)
2813
		Particles.Acceleration = V3(0, -196.2, 0)
2814
		Particles.EmissionDirection = Enum.NormalId.Front
2815
		Particles.Lifetime = NumberRange.new(S.smokeSettings.Lifetime - 0.05, S.smokeSettings.Lifetime + 0.05)
2816
		Particles.Rate = S.smokeSettings.Rate
2817
		Particles.Rotation = NumberRange.new(0, 360)
2818
		Particles.RotSpeed = NumberRange.new(10)
2819
		Particles.Speed = NumberRange.new(S.smokeSettings.Speed - 5, S.smokeSettings.Speed + 5)
2820
		Particles.VelocitySpread = S.smokeSettings.Spread
2821
		Particles.Parent = Smoke
2822
		
2823
		Smoke.Parent = gunIgnore
2824
		Smoke.CFrame = surfaceCF
2825
		if (not H.Anchored) then
2826
			local Weld = Instance.new("Weld", Smoke)
2827
			Weld.Part0 = H
2828
			Weld.Part1 = Smoke
2829
			Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
2830
			Smoke.Anchored = false
2831
		end
2832
		delay(0.1, function()
2833
			Particles.Enabled = false
2834
			wait(S.smokeSettings.Lifetime + 0.05)
2835
			Smoke:Destroy()
2836
		end)
2837
	end
2838
end)
2839
2840
----------------------------------------------------------------------
2841
--------------------[ SHOCKWAVE HANDLING ]----------------------------
2842
----------------------------------------------------------------------
2843
2844
local createShockwave = script:WaitForChild("createShockwave")
2845
createShockwave.OnServerEvent:connect(function(_, Center, Radius, gunIgnore, S)
2846
	local Shockwave = Instance.new("Part")
2847
	Shockwave.BrickColor = S.shockwaveSettings.Color
2848
	Shockwave.Material = Enum.Material.SmoothPlastic
2849
	Shockwave.Name = "Shockwave"
2850
	Shockwave.Anchored = true
2851
	Shockwave.CanCollide = false
2852
	Shockwave.FormFactor = Enum.FormFactor.Symmetric
2853
	Shockwave.Size = V3(1, 1, 1)
2854
	Shockwave.BottomSurface = Enum.SurfaceType.Smooth
2855
	Shockwave.TopSurface = Enum.SurfaceType.Smooth
2856
	local Mesh = Instance.new("SpecialMesh")
2857
	Mesh.MeshType = Enum.MeshType.Sphere
2858
	Mesh.Scale = V3()
2859
	Mesh.Parent = Shockwave
2860
	Shockwave.Parent = gunIgnore
2861
	Shockwave.CFrame = CF(Center)
2862
	spawn(function()
2863
		local t0 = tick()
2864
		while true do
2865
			local Alpha = math.min((tick() - t0) / S.shockwaveSettings.Duration, 1)
2866
			local Scale = 2 * Radius * Alpha
2867
			Mesh.Scale = V3(Scale, Scale, Scale)
2868
			Shockwave.Transparency = Alpha
2869
			if Alpha == 1 then break end
2870
			wait()
2871
		end
2872
		Shockwave:Destroy()
2873
	end)
2874
end)
2875
2876
----------------------------------------------------------------------
2877
--------------------[ BLOOD HANDLING ]--------------------------------
2878
----------------------------------------------------------------------
2879
2880
local createBlood = script:WaitForChild("createBlood")
2881
createBlood.OnServerEvent:connect(function(_, H, P, D, gunIgnore, S)
2882
	local bloodCF = CF(P, P + D) * CFANG(RAD(-90), 0, 0)
2883
	local Blood = Instance.new("Part")
2884
	Blood.Transparency = 1
2885
	Blood.Anchored = true
2886
	Blood.CanCollide = false
2887
	Blood.FormFactor = "Custom"
2888
	Blood.Size = V3(0.2, 1, 0.2)
2889
	Blood.TopSurface = 0
2890
	Blood.BottomSurface = 0
2891
	
2892
	local Particles = Instance.new("ParticleEmitter")
2893
	Particles.Color = ColorSequence.new(S.bloodSettings.Color)
2894
	Particles.LightEmission = 0
2895
	Particles.Size = NumberSequence.new(S.bloodSettings.Size)
2896
	Particles.Texture = S.bloodSettings.Texture
2897
	Particles.Transparency = NumberSequence.new(
2898
		{
2899
			NumberSequenceKeypoint.new(0, S.bloodSettings.startTransparency);
2900
			NumberSequenceKeypoint.new(1, 1);
2901
		}
2902
	)
2903
	Particles.EmissionDirection = Enum.NormalId.Top
2904
	Particles.Lifetime = NumberRange.new(S.bloodSettings.Lifetime - 0.05, S.bloodSettings.Lifetime + 0.05)
2905
	Particles.Rate = S.bloodSettings.Rate
2906
	Particles.Rotation = NumberRange.new(0, 90)
2907
	Particles.Speed = NumberRange.new(S.bloodSettings.Speed)
2908
	Particles.VelocitySpread = S.bloodSettings.Spread
2909
	Particles.Parent = Blood
2910
	
2911
	Blood.Parent = gunIgnore
2912
	Blood.CFrame = bloodCF
2913
	if (not H.Anchored) then
2914
		local Weld = Instance.new("Weld", Blood)
2915
		Weld.Part0 = H
2916
		Weld.Part1 = Blood
2917
		Weld.C0 = H.CFrame:toObjectSpace(bloodCF)
2918
		Blood.Anchored = false
2919
	end
2920
	delay(0.15, function()
2921
		Particles.Enabled = false
2922
		wait(S.bloodSettings.Lifetime + 0.05)
2923
		Blood:Destroy()
2924
	end)
2925
end)
2926
2927
----------------------------------------------------------------------
2928
--------------------[ TRAIL HANDLING ]--------------------------------
2929
----------------------------------------------------------------------
2930
2931
local createTrail = script:WaitForChild("createTrail")
2932
createTrail.OnServerEvent:connect(function(_, Origin, P, gunIgnore, S)
2933
	local Trail = Instance.new("Part")
2934
	Trail.BrickColor = S.trailSettings.Color
2935
	Trail.Transparency = S.trailSettings.Transparency
2936
	Trail.Anchored = true
2937
	Trail.CanCollide = false
2938
	Trail.Size = V3(1, 1, 1)
2939
	local Mesh = Instance.new("CylinderMesh")
2940
	Mesh.Offset = V3(0, -(P - Origin).magnitude / 2, 0)
2941
	Mesh.Scale = V3(S.trailSettings.Thickness, (P - Origin).magnitude, S.trailSettings.Thickness)
2942
	Mesh.Parent = Trail
2943
	Trail.Parent = gunIgnore
2944
	Trail.CFrame = CF(Origin, P) * CFANG(RAD(90), 0, 0)
2945
	delay(S.trailSettings.visibleTime, function()
2946
		if S.trailSettings.disappearTime > 0 then
2947
			local t0 = tick()
2948
			while true do
2949
				local Alpha = math.min((tick() - t0) / S.trailSettings.disappearTime, 1)
2950
				Trail.Transparency = numLerp(S.trailSettings.Transparency, 1, Alpha)
2951
				if Alpha == 1 then break end
2952
				wait()
2953
			end
2954
			Trail:Destroy()
2955
		else
2956
			Trail:Destroy()
2957
		end
2958
	end)
2959
end)
2960
end))
2961
ObjectValue194.Name = "Plyr"
2962
ObjectValue194.Parent = Script193
2963
RemoteFunction195.Name = "getWeldCF"
2964
RemoteFunction195.Parent = Script193
2965
RemoteFunction196.Name = "gunSetup"
2966
RemoteFunction196.Parent = Script193
2967
RemoteFunction197.Name = "tweenJoint"
2968
RemoteFunction197.Parent = Script193
2969
RemoteEvent198.Name = "onRenderStep"
2970
RemoteEvent198.Parent = Script193
2971
RemoteFunction199.Name = "createTweenIndicator"
2972
RemoteFunction199.Parent = Script193
2973
RemoteFunction200.Name = "deleteTweenIndicator"
2974
RemoteFunction200.Parent = Script193
2975
RemoteFunction201.Name = "lerpCF"
2976
RemoteFunction201.Parent = Script193
2977
LocalScript202.Name = "resetCam"
2978
LocalScript202.Parent = Script193
2979
table.insert(cors,sandbox(LocalScript202,function()
2980
repeat wait() until game.Players.LocalPlayer.Character
2981
2982
local Player = game.Players.LocalPlayer
2983
local Char = Player.Character
2984
local Humanoid = Char:WaitForChild("Humanoid")
2985
2986
local Cam = game.Workspace.CurrentCamera
2987
local UIS = game:GetService("UserInputService")
2988
2989
local ignoreCode = script:WaitForChild("ignoreCode")
2990
repeat wait() until ignoreCode.Value ~= 0
2991
local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
2992
local gunIgnore = ignoreModel:FindFirstChild("gunIgnore_"..Player.Name)
2993
2994
Cam.FieldOfView = 70
2995
Cam.CameraType = Enum.CameraType.Custom
2996
Cam:ClearAllChildren()
2997
2998
UIS.MouseBehavior = Enum.MouseBehavior.Default
2999
UIS.MouseIconEnabled = true
3000
3001
Player.CameraMode = Enum.CameraMode.Classic
3002
3003
Humanoid.WalkSpeed = 16
3004
Humanoid.AutoRotate = true
3005
3006
if gunIgnore then gunIgnore:Destroy() end
3007
end))
3008
IntValue203.Name = "ignoreCode"
3009
IntValue203.Parent = LocalScript202
3010
RemoteEvent204.Name = "createBulletImpact"
3011
RemoteEvent204.Parent = Script193
3012
RemoteEvent205.Name = "createShockwave"
3013
RemoteEvent205.Parent = Script193
3014
RemoteEvent206.Name = "createBlood"
3015
RemoteEvent206.Parent = Script193
3016
RemoteEvent207.Name = "createTrail"
3017
RemoteEvent207.Parent = Script193
3018
LocalScript208.Name = "clientMain"
3019
LocalScript208.Parent = Tool0
3020
table.insert(cors,sandbox(LocalScript208,function()
3021
--[[
3022
Kit By TurboFusion
3023
Remake By MuYhEt & Xander521
3024
--]]
3025
--------------------------------------------------------------------------------------
3026
--------------------[ CHARACTER LOADING ]---------------------------------------------
3027
--------------------------------------------------------------------------------------
3028
3029
repeat wait() until game.Players.LocalPlayer.Character
3030
repeat wait() until game.Players.LocalPlayer.Character:IsDescendantOf(game.Workspace)
3031
wait(1 / 20)
3032
3033
--------------------------------------------------------------------------------------
3034
--------------------[ IGNORE MODEL ]--------------------------------------------------
3035
--------------------------------------------------------------------------------------
3036
3037
local ignoreCode = script:WaitForChild("ignoreCode")
3038
3039
repeat wait() until ignoreCode.Value ~= 0
3040
3041
local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
3042
3043
local grenadeFolder = ignoreModel:WaitForChild("grenadeFolder")
3044
3045
--------------------------------------------------------------------------------------
3046
--------------------[ CONSTANTS ]-----------------------------------------------------
3047
--------------------------------------------------------------------------------------
3048
3049
local Gun = script.Parent
3050
local serverMain = Gun:WaitForChild("serverMain")
3051
local Handle = Gun:WaitForChild("Handle")
3052
local AimPart = Gun:WaitForChild("AimPart")
3053
local Main = Gun:WaitForChild("Main")
3054
3055
local Ammo = Gun:WaitForChild("Ammo")
3056
local ClipSize = Gun:WaitForChild("ClipSize")
3057
local StoredAmmo = Gun:WaitForChild("StoredAmmo")
3058
3059
local createTweenIndicator = serverMain:WaitForChild("createTweenIndicator")
3060
local deleteTweenIndicator = serverMain:WaitForChild("deleteTweenIndicator")
3061
local getWeldCF = serverMain:WaitForChild("getWeldCF")
3062
local gunSetup = serverMain:WaitForChild("gunSetup")
3063
local lerpCF = serverMain:WaitForChild("lerpCF")
3064
local createBlood = serverMain:WaitForChild("createBlood")
3065
local createBulletImpact = serverMain:WaitForChild("createBulletImpact")
3066
local createShockwave = serverMain:WaitForChild("createShockwave")
3067
local createTrail = serverMain:WaitForChild("createTrail")
3068
3069
local Particle = {}
3070
function Particle.new(Prop)
3071
	----------[ CONSTANTS ]--------------------
3072
	
3073
	local Cam = workspace.CurrentCamera
3074
	local rayIgnore = Prop.rayIgnore or {} --If the property doesn't exist, then set it to it's default
3075
	local Color = Prop.Color or Color3.new(1, 1, 1)
3076
	local Length = Prop.Length or 1
3077
	local Width = Prop.Width or 1
3078
	local p0 = Prop.p0 or error("Particle.new requires a p0 (origin position) property!", 0) --Give an error message if you don't this
3079
	local v0 = Prop.v0 or error("Particle.new requires a v0 (initial velocity) property!", 0)
3080
	local a0 = Prop.a0 or error("Particle.new requires an a0 (initial acceleration) property!", 0)
3081
	
3082
	----------[ VARIABLES ]--------------------
3083
	
3084
	local Deleted = false
3085
	local p = p0 --Set the position, velocity, and acceleration as the intial conditions
3086
	local v = v0
3087
	local a = a0
3088
	local t = 0
3089
	
3090
	----------[ FUNCTIONS ]--------------------
3091
	
3092
	local function worldWidthToScreenWidth(Width, Depth) --A function I made that gives you a screen width given a world width and depth
3093
		local Center = Cam.CoordinateFrame * CFrame.new(0, 0, -Depth)
3094
		local wp1 = (Center * CFrame.new(0, Width / 2, 0)).p
3095
		local wp2 = (Center * CFrame.new(0, -Width / 2, 0)).p
3096
		local sp1 = Cam:WorldToScreenPoint(wp1) --Use the WorldToScreenPoint method of the camera to get the screen width from the world width
3097
		local sp2 = Cam:WorldToScreenPoint(wp2)
3098
		return (sp1 - sp2).magnitude
3099
	end
3100
	
3101
	----------[ MAIN PROGRAM ]-----------------
3102
	
3103
	local Container = Instance.new("Frame")
3104
	Container.BackgroundTransparency = 1
3105
	Container.Position = UDim2.new()
3106
	Container.Size = UDim2.new()
3107
	local Line = Instance.new("Frame")
3108
	Line.BackgroundColor3 = Color
3109
	Line.BorderSizePixel = 0
3110
	Line.Position = UDim2.new()
3111
	Line.Size = UDim2.new()
3112
	Line.Parent = Container
3113
	
3114
	return setmetatable(
3115
		{
3116
			delete = function() --This function safely removes the particle
3117
				Container:Destroy()
3118
				Deleted = true
3119
			end
3120
		},
3121
		{
3122
			__index = function(_, Index)
3123
				if Index == "p" or Index == "position" then --Return the world position of the particle
3124
					return (Deleted and nil or p)
3125
				elseif Index == "v" or Index == "velocity" then --Return the world velocity of the particle
3126
					return (Deleted and nil or v)
3127
				elseif Index == "obj" or Index == "object" then --Return the particle frame itself
3128
					return (Deleted and nil or Container)
3129
				else
3130
					error(Index.." is not a member of Particle!", 0) --Give an error message if any other index is called
3131
				end
3132
			end;
3133
			
3134
			__newindex = function(_, Index, Value)
3135
				if Index == "t" or Index == "time" and (not Deleted) then --Render the particle given a time value
3136
					t = Value
3137
					p = p0 + (v0 * t) + (0.5 * a0 * t * t) --update the position given the time
3138
					v = v0 + (a0 * t) --update the velocity given the time
3139
					
3140
					local testRay1 = Ray.new(Cam.CoordinateFrame.p, (p + (v.unit * Length) / 2) - Cam.CoordinateFrame.p)
3141
					local testRay2 = Ray.new(Cam.CoordinateFrame.p, (p - (v.unit * Length) / 2) - Cam.CoordinateFrame.p)
3142
					local H1, _ = workspace:FindPartOnRayWithIgnoreList(testRay1, rayIgnore)
3143
					local H2, _ = workspace:FindPartOnRayWithIgnoreList(testRay2, rayIgnore)
3144
					
3145
					if H1 and H2 then
3146
						Line.Visible = false
3147
					else
3148
						local face1 = Cam:WorldToScreenPoint(p + (v.unit * Length) / 2) --Get the 2 endpoints of the particle in screen space
3149
						local face2 = Cam:WorldToScreenPoint(p - (v.unit * Length) / 2)
3150
						local Center, isVisible = Cam:WorldToScreenPoint(p) --Get the center of the particle in screen space
3151
						
3152
						local screenLength = (face1 - face2).magnitude
3153
						local screenWidth = worldWidthToScreenWidth(Width, Center.Z)
3154
						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
3155
						
3156
						Line.Position = UDim2.new(0, 0, 0, -screenWidth / 2)
3157
						Line.Size = UDim2.new(1, 0, 0, screenWidth)
3158
						Line.Visible = isVisible --Make the particle invisible if the world point isn't on screen
3159
						
3160
						Container.Position = UDim2.new(
3161
							0,
3162
							face2.X + (math.cos(Ang) - 1) * screenLength / 2, --Yay trig!
3163
							0,
3164
							face2.Y + math.sin(Ang) * screenLength / 2
3165
						)
3166
						Container.Size = UDim2.new(0, screenLength, 0, 0)
3167
						Container.Rotation = math.deg(Ang)
3168
					end
3169
				else
3170
					error(Index.." is not a member of Particle!", 0) --Give an error message if any other index is being changed
3171
				end
3172
			end
3173
		}
3174
	)
3175
end
3176
local Spring = {}
3177
function Spring.new(Initial)
3178
	local t0 = tick()
3179
	local p0 = Initial or 0
3180
	local v0 = Initial and Vector3.new() or 0
3181
	local t	= Initial or 0
3182
	local d	= 1
3183
	local s	= 1
3184
3185
	local function positionVelocity(Tick)
3186
		local x	= Tick - t0
3187
		local c0 = p0 - t
3188
		if s == 0 then
3189
			return p0, 0
3190
		elseif d < 1 then
3191
			local c	= math.sqrt(1 - d ^ 2)
3192
			local c1 = (v0 / s + d * c0) / c
3193
			local co = math.cos(c * s * x)
3194
			local si = math.sin(c * s * x)
3195
			local e	= math.exp(d * s * x)
3196
			local p = t + (c0 * co + c1 * si) / e
3197
			local v = s * ((c * c1 - d * c0) * co - (c * c0 + d * c1) * si) / e
3198
			return p, v
3199
		else
3200
			local c1 = v0 / s + c0
3201
			local e	= math.exp(s * x)
3202
			local p = t + (c0 + c1 * s * x) / e
3203
			local v = s * (c1 - c0 - c1 * s * x) / e
3204
			return p, v
3205
		end
3206
	end
3207
3208
	return setmetatable(
3209
		{
3210
			accelerate = function(_, acceleration)
3211
				local T = tick()
3212
				local p, v = positionVelocity(T)
3213
				p0 = p
3214
				v0 = v + acceleration
3215
				t0 = T
3216
			end;
3217
		},
3218
		{
3219
			__index = function(_, index)
3220
				if index == "value" or index == "position" or index == "p" then
3221
					local p, v = positionVelocity(tick())
3222
					return p
3223
				elseif index == "velocity" or index == "v" then
3224
					local p, v = positionVelocity(tick())
3225
					return v
3226
				elseif index == "acceleration" or index == "a" then
3227
					local x	= tick() - t0
3228
					local c0 = p0 - t
3229
					if s == 0 then
3230
						return 0
3231
					elseif d < 1 then
3232
						local c = math.sqrt(1 - d ^ 2)
3233
						local c1 = (v0 / s + d * c0) / c
3234
						local cs = (c0 * d ^ 2 - 2 * c * d * c1 - c0 * c ^ 2) * math.cos(c * s * x)
3235
						local sn = (c1 * d ^ 2 + 2 * c * d * c0 - c1 * c ^ 2) * math.sin(c * s * x)
3236
						return s ^ 2 *(cs + sn) / math.exp(d * s * x)
3237
					else
3238
						local c1 = v0 / s + c0
3239
						return s ^ 2 * (c0 - 2 * c1 + c1 * s * x) / math.exp(s * x)
3240
					end
3241
				elseif index == "target" or index == "t" then
3242
					return t
3243
				elseif index == "damper" or index == "d" then
3244
					return d
3245
				elseif index == "speed" or index == "s" then
3246
					return s
3247
				elseif index == "magnitude" or index == "m" then
3248
					local p, v = positionVelocity(tick())
3249
					return p.magnitude
3250
				else
3251
					error(index.." is not a valid member of spring", 0)
3252
				end
3253
			end;
3254
			
3255
			__newindex = function(_, index, value)
3256
				local T = tick()
3257
				if index == "value" or index == "position" or index == "p" then
3258
					local p, v = positionVelocity(T)
3259
					p0, v0 = value, v
3260
				elseif index == "velocity" or index == "v" then
3261
					local p, v = positionVelocity(T)
3262
					p0, v0 = p, value
3263
				elseif index == "acceleration" or index == "a" then
3264
					local p, v = positionVelocity(T)
3265
					p0, v0 = p, v + value
3266
				elseif index == "target" or index == "t" then
3267
					p0, v0 = positionVelocity(T)
3268
					t = value
3269
				elseif index == "damper" or index == "d" then
3270
					p0, v0 = positionVelocity(T)
3271
					d = value < 0 and 0 or value < 1 and value or 1
3272
				elseif index == "speed" or index == "s" then
3273
					p0, v0 = positionVelocity(T)
3274
					s = value < 0 and 0 or value
3275
				else
3276
					error(index.." is not a valid member of spring", 0)
3277
				end
3278
				t0 = T
3279
			end;
3280
		}
3281
	)
3282
end
3283
local Anims = {
3284
	
3285
	Reload = function(S) --This is the main reload animation. The parameter S contains all the variables and functions that are necessary for this animation
3286
		--[[
3287
			FUNCTION LIST_
3288
			
3289
				S.tweenJoint(Joint, newC0, newC1, Alpha, Duration) --This function tweens a joint to a given C0 and C1. The Alpha parameter is function
3290
					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,
3291
					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
3292
					is useful if you only want to mess with the C0 or C1 property of a weld.
3293
					
3294
				S.makeMagInvisible() --This function makes the mag invisible so it looks like the mag was removed
3295
				
3296
				S.makeMagVisible() --This function makes the mag visible again at whatever the previous transparency of the mag parts were
3297
				
3298
				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
3299
					the animation was stopped midway and where to restart the animation
3300
					
3301
				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
3302
					used to decide if a chambering animation should play after the reload animation
3303
					
3304
				S.setNewMag() --This function sets the newMag variable in the clientMain to true which basically lets the script know that a new mag was
3305
					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
3306
					then the script will simply play the chambering animation instead of putting in another mag
3307
					
3308
				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
3309
					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
3310
					
3311
				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
3312
					function and it returns a Model containing the Mag and a table that contains the original mag bricks and the corresponding clone. NOTE,
3313
					the mag bricks will be made non can collide
3314
					
3315
				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
3316
					and the brick that all the other mag parts are welded to
3317
				
3318
				S.attachGripToHead() --This function detaches the grip from the right arm and attaches it to the Head. This is so you can make reload
3319
					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
3320
					position that it was in before you detached the grip from the right arm.
3321
					
3322
				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
3323
					stays in the position that it was in before you detached the grip from the head
3324
				
3325
				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
3326
					sine of that number, which is a number between 0 and 1, which is used to tween a Joint with a Sine movement
3327
					
3328
				S.Linear(X) --This function is an Alpha function for the tweenJoint function. Given a number between 0 and 90, the function will return
3329
					the number / 90, which is a number between 0 and 1, which is used to a tween a Joint with a Linear movement
3330
				
3331
			VARIABLE LIST_
3332
			
3333
				S.Handle --This variable is the Handle of gun
3334
				
3335
				S.LArm --This variable is the left arm
3336
				
3337
				S.RArm --This variable is the right arm
3338
				
3339
				S.LWeld --This variable is the left arm weld which is attached to the animBase
3340
				
3341
				S.RWeld --This variable is the right arm weld which is attached to the animBase
3342
				
3343
				S.LC0 --This variable is the cframe of the left arm joint with respect to the torso
3344
				
3345
				S.RC0 --This variable is the cframe of the right arm joint with respect to the torso
3346
				
3347
				S.Grip --This variable is the Grip weld which is attached to right arm
3348
				
3349
				S.gunIgnore --This variable is the gun ignore model which contains the fake arms and bullets and other stuff
3350
				
3351
				S.Cam --This variable is the player camera
3352
				
3353
				S.CF --This variable is the shortened form of CFrame.new which you can use instead of CFrame.new
3354
				
3355
				S.CFANG --This variable is the shortened form of CFrame.Angles which you can use instead of CFrame.Angles
3356
				
3357
				S.V3 --This variable is the shortened form of Vector3.new which you can use instead of Vector3.new
3358
				
3359
				S.RAD --This variable is the shortened form of math.rad which you can use instead of math.rad
3360
				
3361
				S.reloadTimeLoaded --This variable is the reload time for when the gun is loaded which you can use to modify how fast the reload
3362
					animation runs
3363
					
3364
				S.reloadTimeEmpty --This variable is the reload time for when the gun is empty which you can use to modify how fast the reload
3365
					animation runs
3366
		--]]
3367
		
3368
		local W1 = nil
3369
		local W2 = nil
3370
		local animSpeed = S.isMagEmpty() and S.reloadTimeEmpty / 1.3 or S.reloadTimeLoaded / 0.9
3371
		return {
3372
			function()
3373
				if (not S.isNewMag()) then
3374
					if S.isMagVisible() then
3375
						local Mag1, magTable1 = S.createMag("Mag1")
3376
							
3377
						Mag1.Parent = S.gunIgnore
3378
						
3379
						W1 = Instance.new("Weld")
3380
						W1.Part0 = magTable1[1].magClone
3381
						W1.Part1 = S.Handle
3382
						W1.C0 = magTable1[1].Original.CFrame:toObjectSpace(S.Handle.CFrame)
3383
						W1.Parent = magTable1[1].magClone
3384
						
3385
						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)
3386
						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)
3387
						S.tweenJoint(S.Grip, nil, S.CFANG(0, S.RAD(20), S.RAD(10)), S.Sine, 0.1 * animSpeed)
3388
						wait(0.2 * animSpeed)
3389
					end
3390
				end
3391
			end;
3392
			
3393
			function()
3394
				if (not S.isNewMag()) then
3395
					if S.isMagVisible() then
3396
						S.makeMagInvisible()
3397
						W1:Destroy()
3398
						local Mag1, magTable1 = S.getMag("Mag1")
3399
						magTable1[1].magClone.Velocity = S.Handle.Velocity + S.Handle.CFrame:vectorToWorldSpace(S.V3(0, -1, 0)) * 20
3400
						
3401
						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)
3402
						S.tweenJoint(S.Grip, nil, S.CFANG(0, S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
3403
					else
3404
						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)
3405
						S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
3406
					end
3407
					
3408
					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)
3409
					
3410
					wait(0.25 * animSpeed)
3411
				end
3412
			end;
3413
			
3414
			function()
3415
				if (not S.isNewMag()) then
3416
					local Mag1, magTable1 = S.getMag("Mag1")
3417
					if Mag1 then Mag1:Destroy() end
3418
					
3419
					local Mag2, magTable2 = S.createMag("Mag2")
3420
					
3421
					Mag2.Parent = S.gunIgnore
3422
					
3423
					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()
3424
					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()
3425
					local handleOffsetCF = S.RArm.CFrame:toObjectSpace(S.RArm.CFrame * S.Grip.C0 * (S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10))):inverse())
3426
					local originalMagOffsetCF = S.Handle.CFrame:toObjectSpace(magTable2[1].Original.CFrame)
3427
					local newMagC0 = LArmCF:toObjectSpace(RArmCF * handleOffsetCF * originalMagOffsetCF)
3428
					
3429
					W2 = Instance.new("Weld")
3430
					W2.Part0 = S.LArm
3431
					W2.Part1 = magTable2[1].magClone
3432
					W2.C0 = newMagC0
3433
					W2.Parent = magTable2[1].magClone
3434
					
3435
					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
3436
					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)
3437
					S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
3438
					wait(0.2 * animSpeed)
3439
				end
3440
			end;
3441
			
3442
			function()
3443
				if (not S.isNewMag()) then
3444
					S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.15 * animSpeed)
3445
					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
3446
					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)
3447
					
3448
					wait(0.2 * animSpeed)
3449
				end
3450
			end;
3451
			
3452
			function()
3453
				if (not S.isNewMag()) then
3454
					local Mag1, _ = S.getMag("Mag1")
3455
					local Mag2, _ = S.getMag("Mag2")
3456
					S.makeMagVisible()
3457
					S.setNewMag()
3458
					if Mag1 then Mag1:Destroy() end
3459
					Mag2:Destroy()
3460
				end
3461
			end;
3462
			
3463
			function()
3464
				if S.isMagEmpty() then
3465
					if S.isNewMag() then
3466
						S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.15 * animSpeed)
3467
						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
3468
						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)
3469
					end
3470
					S.tweenJoint(S.LWeld, nil, S.CF(0, 1.3, -0.55) * S.CFANG(S.RAD(-26), 0, 0), S.Sine, 0.2 * animSpeed)
3471
					
3472
					wait(0.2 * animSpeed)
3473
				end
3474
			end;
3475
			
3476
			function()
3477
				if S.isMagEmpty() then
3478
					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)
3479
					
3480
					wait(0.05 * animSpeed)
3481
				end
3482
			end;
3483
			
3484
			function()
3485
				if S.isMagEmpty() then
3486
					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)
3487
					
3488
					wait(0.15 * animSpeed)
3489
				end
3490
			end;
3491
		}
3492
	end;
3493
	
3494
	Cocking = function(S)
3495
		
3496
	end;
3497
	
3498
	Crawling = function(X, moveDirection, moveSpeed) --This is the animation for when you're crawling
3499
		--[[
3500
			The moveDirection gives you the angle at which your character is moving with respect to the way you're facing. So if you're
3501
			moving to the right and you're facing forward then the moveDirection will give you an angle of -90. If you're moving backward
3502
			and you're facing forward then the moveDirection will give you an angle of 180. I use this angle to adjust the crawling animation
3503
			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
3504
			
3505
			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
3506
			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
3507
			moving really slow the animation will play slower
3508
		--]]
3509
		return {
3510
			leftArm = CFrame.Angles( --This is what the cframe of the right arm will be when you're crawling
3511
				0,
3512
				math.rad(90),
3513
				math.rad(-10)
3514
			) * CFrame.new(
3515
				math.sin(moveDirection) * (math.sin(X * 6) / 4) - 0.2,
3516
				math.cos(moveDirection) * (math.sin(X * 6) / 2) - 0.1,
3517
				math.max(math.cos(X * 6) / 4, 0) - 0.1
3518
			) * CFrame.Angles(
3519
				-math.max(math.cos(X * 6) / 4, 0),
3520
				0,
3521
				0
3522
			);
3523
			leftLeg = CFrame.new( --This is what the cframe of the left leg will be when you're crawling
3524
				math.sin(moveDirection) * (-math.sin(X * 6) / 4) - 0.2,
3525
				math.cos(moveDirection) * (math.sin(X * 6) / 2) + 0.3,
3526
				math.max(math.cos(X * 6) / 4, 0) - 0.1
3527
			):inverse() * CFrame.Angles(
3528
				0,
3529
				0,
3530
				-math.rad(15) - math.cos(moveDirection) * (math.rad(15) * math.sin(X * 6))
3531
			);
3532
			rightArm = CFrame.Angles( --This is what the cframe of the left arm will be when you're crawling
3533
				0,
3534
				math.rad(-5),
3535
				math.rad(10)
3536
			) * CFrame.new(
3537
				math.sin(moveDirection) * (-math.sin(X * 6) / 4) + 0.2,
3538
				math.cos(moveDirection) * (-math.sin(X * 6) / 5) - 0.2,
3539
				math.max(math.cos((X + math.rad(30)) * 6) / 10, 0) - 0.1
3540
			) * CFrame.Angles(
3541
				-math.max(math.cos((X + math.rad(30)) * 6) / 10, 0),
3542
				0,
3543
				0
3544
			);
3545
			rightLeg = CFrame.new( --This is what the cframe of the right leg will be when you're crawling
3546
				math.sin(moveDirection) * (math.sin(X * 6) / 4) + 0.2,
3547
				math.cos(moveDirection) * (-math.sin(X * 6) / 2) + 0.3,
3548
				math.max(math.cos((X + math.rad(30)) * 6) / 4, 0) - 0.1
3549
			):inverse() * CFrame.Angles(
3550
				0,
3551
				0,
3552
				math.rad(15) - math.cos(moveDirection) * (math.rad(15) * math.sin(X * 6))
3553
			);
3554
			Grip = CFrame.Angles( --This is what the cframe of the grip will be when you're crawling
3555
				math.max(math.cos((X + math.rad(30)) * 6) / 7, 0),
3556
				math.rad(5),
3557
				0
3558
			);
3559
			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
3560
		}
3561
	end;
3562
		
3563
	Idling = { --This table holds the Idling animations
3564
		
3565
		unAimed = function(X) --This is the animation when the gun is not aimed
3566
			return {
3567
				Pos = Vector3.new(
3568
					math.sin(X / 2) / 70, --Side to Side motion
3569
					math.sin(X * 5 / 4) / 70, --Up and Down motion
3570
					math.sin(X * 3 / 4) / 70 --Forward and backward motion
3571
				);
3572
				Rot = Vector3.new(
3573
					0, --Pitch rotation
3574
					0, --Yaw rotation
3575
					0 --Roll rotation
3576
				);
3577
			}
3578
		end;
3579
		
3580
		Aimed = function(X) --This is the animation when the gun is aimed
3581
			return {
3582
				Pos = Vector3.new(
3583
					math.sin(X * 3 / 8) / 140,
3584
					math.sin(X * 15 / 16) / 140,
3585
					0
3586
				);
3587
				Rot = Vector3.new(
3588
					0,
3589
					0,
3590
					0
3591
				);
3592
			}
3593
		end;
3594
		
3595
	};
3596
	
3597
	Walking = { --This table holds the Walking animations
3598
		
3599
		unAimed = function(X) --This is the animation when the gun is not aimed
3600
			return {
3601
				Pos = Vector3.new(
3602
					4 * math.sin(X * 4.5) / 50,
3603
					1.5 * math.sin(X * 9) / 50,
3604
					0
3605
				);
3606
				Rot = Vector3.new(
3607
					0,
3608
					0,
3609
					math.rad(math.sin(X * 4.5)) * 2
3610
				);
3611
			}
3612
		end;
3613
		
3614
		Aimed = function(X) --This is the animation when the gun is aimed
3615
			return {
3616
				Pos = Vector3.new(
3617
					2 * math.sin(X * 3) / 150,
3618
					0.75 * math.sin(X * 6) / 150,
3619
					0
3620
				);
3621
				Rot = Vector3.new(
3622
					0,
3623
					0,
3624
					math.rad(math.sin(X * 3)) / 3
3625
				);
3626
			}
3627
		end;
3628
		
3629
	};
3630
	
3631
	Running = function(X) --This is the animation when the player is running
3632
		return {
3633
			Pos = Vector3.new(
3634
				4 * math.sin(X * 4.5 * 1.5) / 30,
3635
				1.5 * math.sin(X * 9 * 1.5) / 40 + 0.2,
3636
				0
3637
			);
3638
			Rot = Vector3.new(
3639
				0,
3640
				-math.rad(math.sin(X * 4.5 * 1.5)) * 5 + math.rad(3),
3641
				math.rad(math.sin(X * 4.5 * 1.5)) * 5
3642
			);
3643
		}
3644
	end;
3645
	
3646
}
3647
local Plugins = {
3648
	
3649
	KeyDown = {
3650
		{ --This is a plugin for a toggleable laser
3651
			Key = "v"; --This is the key you press to activate the plugin
3652
			Description = "Toggle Laser"; --This is what the description of the key will be in the controls
3653
			Plugin = function() --This is the actual plugin function
3654
				local Laser = Gun:WaitForChild("Laser") --These few lines wait for the necessary bricks/models
3655
				local Handle = Gun:WaitForChild("Handle")
3656
				local ignoreCode = Gun.clientMain:WaitForChild("ignoreCode")
3657
				local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
3658
				
3659
				local PlyrName = game.Players:GetPlayerFromCharacter(Gun.Parent).Name
3660
				local playerFolder = ignoreModel:WaitForChild("gunIgnore_"..PlyrName)
3661
				
3662
				local RS = game:GetService("RunService")
3663
				
3664
				local function createLaserDot() --This function creates the red laser dot
3665
					local laserDot = Instance.new("Part")
3666
					laserDot.Transparency = 1
3667
					laserDot.Name = "laserDot"
3668
					laserDot.Anchored = true
3669
					laserDot.CanCollide = false
3670
					laserDot.FormFactor = Enum.FormFactor.Custom
3671
					laserDot.Size = Vector3.new(0.25, 0.25, 1)
3672
					
3673
					local laserGui = Instance.new("SurfaceGui")
3674
					laserGui.CanvasSize = Vector2.new(100, 100)
3675
					laserGui.Parent = laserDot
3676
					
3677
					local laserImage = Instance.new("ImageLabel")
3678
					laserImage.BackgroundTransparency = 1
3679
					laserImage.Size = UDim2.new(1, 0, 1, 0)
3680
					laserImage.Image = "http://www.roblox.com/asset/?id=131394739"
3681
					laserImage.Parent = laserGui
3682
					
3683
					--[[local laserLight = Instance.new("SurfaceLight")
3684
					laserLight.Angle = 180
3685
					laserLight.Brightness = math.huge
3686
					laserLight.Color = Color3.new(1, 0, 0)
3687
					laserLight.Face = Enum.NormalId.Back
3688
					laserLight.Range = 5
3689
					laserLight.Shadows = true
3690
					laserLight.Parent = laserDot]]
3691
					
3692
					return laserDot
3693
				end
3694
				
3695
				local function getHitSurfaceCFrame(Pos, Obj) --This function returns the proper cframe based on the face that the position is on
3696
					local surfaceCF = {
3697
						{"Back", Obj.CFrame * CFrame.new(0, 0, Obj.Size.z)};
3698
						{"Bottom", Obj.CFrame * CFrame.new(0, -Obj.Size.y, 0)};
3699
						{"Front", Obj.CFrame * CFrame.new(0, 0, -Obj.Size.z)};
3700
						{"Left", Obj.CFrame * CFrame.new(-Obj.Size.x, 0, 0)};
3701
						{"Right", Obj.CFrame * CFrame.new(Obj.Size.x, 0, 0)};
3702
						{"Top", Obj.CFrame * CFrame.new(0, Obj.Size.y, 0)}
3703
					}
3704
					local closestDist = math.huge
3705
					local closestSurface = nil
3706
					for _,v in pairs(surfaceCF) do
3707
						local surfaceDist = (Pos - v[2].p).magnitude
3708
						if surfaceDist < closestDist then
3709
							closestDist = surfaceDist
3710
							closestSurface = v
3711
						end
3712
					end
3713
					
3714
					local surfaceDir = CFrame.new(Obj.CFrame.p, closestSurface[2].p)
3715
					local surfaceDist = surfaceDir.lookVector * ((Obj.CFrame.p - closestSurface[2].p).magnitude / 2 - 0.25)
3716
					local surfaceOffset = Pos - closestSurface[2].p + surfaceDist
3717
					local surfaceCFrame = surfaceDir + surfaceDist + surfaceOffset
3718
					
3719
					return surfaceCFrame
3720
				end
3721
				
3722
				local laserDot = createLaserDot() --The code is cleaner when the laser creating code is in a function
3723
				
3724
				Laser.Transparency = (Laser.Transparency == 1 and 0 or 1) --Toggles the laser on or off
3725
				
3726
				while math.floor(Laser.Transparency) == 0 do --This loop will keep running as long as the laser is visible
3727
					if (not game.Players:GetPlayerFromCharacter(Gun.Parent)) then break end --This checks if the gun is a child of the character
3728
					
3729
					local newRay = Ray.new(Laser.Position, Handle.CFrame.lookVector * 999)
3730
					local H, P = game.Workspace:FindPartOnRay(newRay, ignoreModel)
3731
					
3732
					local Distance = (P - Laser.Position).magnitude
3733
					Laser.Mesh.Offset = Vector3.new(0, Distance / 2, 0)
3734
					Laser.Mesh.Scale = Vector3.new(0.075, Distance / 0.2, 0.075)
3735
					
3736
					if H then
3737
						laserDot.CFrame = getHitSurfaceCFrame(P, H) --If the laser hits a part then position the dot on the part
3738
						laserDot.Parent = playerFolder
3739
					else
3740
						laserDot.Parent = nil --If the laser doesn't hit a part then temporarily remove the laser dor
3741
					end
3742
					
3743
					RS.RenderStepped:wait()
3744
				end
3745
				
3746
				laserDot:Destroy() --These lines reset the laser if the laser is transparent or the gun was deselected
3747
				Laser.Transparency = 1
3748
				Laser.Mesh.Offset = Vector3.new()
3749
				Laser.Mesh.Scale = Vector3.new(0.075, 0, 0.075)
3750
			end;
3751
		};
3752
		
3753
		{ --This is a plugin for a toggleable flashlight
3754
			Key = "z";
3755
			Description = "Toggle Flashlight";
3756
			Plugin = function()
3757
				local Flashlight = Gun:WaitForChild("Flashlight")
3758
				if Flashlight then
3759
					for _, Light in pairs(Flashlight:GetChildren()) do
3760
						if Light.Name == "Light" then
3761
							Light.Enabled = (not Light.Enabled)
3762
						end
3763
					end
3764
				end
3765
			end
3766
		};
3767
	};
3768
	
3769
	KeyUp = {
3770
		
3771
	};
3772
	
3773
	Firing = {
3774
		Plugin = function()
3775
			--Put code here
3776
		end;
3777
	};
3778
	
3779
	Aimed = {
3780
		Plugin = function()
3781
			--Put code here
3782
		end;
3783
	};
3784
	
3785
	UnAimed = {
3786
		Plugin = function()
3787
			--Put code here
3788
		end;
3789
	};
3790
	
3791
	OnEquipped = {
3792
		Plugin = function()
3793
			--Put code here
3794
		end
3795
	};
3796
	
3797
	OnUnEquipped = {
3798
		Plugin = function()
3799
			--Put code here
3800
		end
3801
	};
3802
	
3803
}
3804
local S = { 
3805
	
3806
	
3807
	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
3808
		true, and Burst and Auto can't both be true)]]
3809
		Semi = true; --Set this true if you want the gun to be semi-automatic. (Pistols, Snipers, etc)
3810
		Auto = false; --Set this true if you want the gun to be fully automatic. (Assault Rifles, Submachine guns, machine guns, etc)
3811
		Burst = false; --Set this true if you want the gun to be burst fire. (Battle rifles, assault rifles, etc)
3812
		Shot = true; --Set this true if you want the gun to be a shotgun. (NOTE: Shot and auto can both be true)
3813
		Explosive = true; --Set this true if you want the projectiles to be explosive. (Rocket launchers, grenade launchers, etc)
3814
	};
3815
	
3816
	selectFire = true; --This is whether or not select fire is enabled
3817
	selectFireSettings = {
3818
		Animation = true; --This is whether or not there will be an animation for when you switch fire modes
3819
		GUI = true; --This is whether or not a gui appears showing the fire being selected
3820
		Modes = { --This the list of modes you can switch between
3821
			Safety = true; --This mode doesn't allow any form of firing
3822
			Semi = true; --This mode allows semi-automatic firing
3823
			Burst = false; --This mode allows burst fire. The burst will be based on the burstSettings below
3824
			Auto = false; --This mode allows fully automatic fire
3825
		};
3826
		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
3827
	};
3828
	
3829
	
3830
	burstSettings = {
3831
		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
3832
			is false, then the burst time and burst wait will be the values below]]
3833
		Amount = 3; --This is how many bullets will be fired in one burst (if Burst is true)
3834
		Time = 0.2; --This is how long it takes for a burst to complete
3835
		Wait = 0.1; --This is how much time you have to wait before you can fire another burst
3836
	};
3837
	
3838
	
3839
	shotAmount = 8; --This is how many bullets will be fired in one shot (if Shot is true)
3840
	
3841
	
3842
	explosionSettings = {
3843
		Radius = 50; --This is the radius of the explosion when the bullet hits a target. (If Explosive is true)
3844
		Pressure = 5e5; --This is the pressure of the explosion when the bullet hits the target
3845
		Type = Enum.ExplosionType.NoCraters; --This is the type of explosion
3846
		--[[
3847
		(0 or "NoCraters" or Enum.ExplosionType.NoCraters) means that the explosion will not damage terrain
3848
		(1 or "Craters" or Enum.ExplosionType.Craters) means that the explosion will leave craters in terrain
3849
		(2 or "CratersAndDebris" or Enum.ExplosionType.CratersAndDebris) means that the explosion will leave craters and debris in terrain
3850
		--]]
3851
		soundId = "rbxassetid://138499093"; --This is what the sound of the explosion will be
3852
		soundPitch = 1; --This is what the pitch of the explosion sound will be
3853
		soundVolume = 1; --This is what the volume of the explosion sound will be
3854
		rayCastExplosions = true; --[[This is whether or not explosions will have raycasting. If this is true, humanoids behind walls
3855
		won't be damaged. If this is false, any humanoid within the radius will be damaged. (NOTE: RangeBasedDamage has to be true in
3856
		order for explosions to have raycasting)]]
3857
		rangeBasedDamage = true; --[[This is whether or not will depend on how far the object is from the center of the explosion. If this
3858
		is true, the farther a humanoid is from the blast center, the less damage it'll take. If this is false, any object within
3859
		the explosion's radius will have its joints broken]]
3860
	};
3861
	
3862
	
3863
	playerArms = true; --This is whether or not the fake arms will look like the Player's arms
3864
	fakeArmSettings = {
3865
		Transparency = 0; --This is the transparency of the fake arms
3866
		armSize = Vector3.new(0.6, 2, 0.6); --This is the size of the fake player arms if playerArms is true
3867
		characterMeshes = false; --This is whether or not the fake player arms will have the arm meshes if playerArms is true
3868
		realBodyColor = true; --This is whether or not the color of the fake arm will be the color of the player's real arms
3869
		Color = BrickColor.new("Pastel brown"); --This is what the color of the fake arms will be if realBodyColor is false
3870
	};
3871
	
3872
	
3873
	unAimedC1 = { --This table contains the CFrames of welds when the gun is not aimed
3874
		leftArm = CFrame.new(-0.7, 1.6, -0.8) * CFrame.Angles(math.rad(-10), 0, math.rad(-30));
3875
		rightArm = CFrame.new(0.4, 0.25, -0.3) * CFrame.Angles(0, 0, math.rad(25));
3876
		Grip = CFrame.Angles(0, math.rad(25), 0);
3877
	};
3878
	aimedC1 = { --This table contains the CFrames of welds when the gun is aimed
3879
		leftArm = CFrame.new(-0.1, 1, -0.3) * CFrame.Angles(math.rad(-10), 0, 0) * CFrame.Angles(0, 0, math.rad(-40));
3880
		rightArm = CFrame.new(0.5, 0.3, 0.1) * CFrame.Angles(0, 0, math.rad(45));
3881
	};
3882
	runningC1 = { --This table contains the CFrames of welds when you're running
3883
		leftArm = CFrame.new(-0.65, 0.85, -1) * CFrame.Angles(math.rad(1), math.rad(-8.5), math.rad(16));
3884
		rightArm = CFrame.new(0.16, 1, -0.14) * CFrame.Angles(math.rad(15), math.rad(2), math.rad(50));
3885
		Grip = CFrame.Angles(0, math.rad(-5), 0);
3886
	};
3887
	
3888
	
3889
	equipAnimation = true; --This is whether or not an equipping animation will play when you equip the gun
3890
	equipSettings = {
3891
		Time = 0.25; --This is how long it takes for the equip animation to play
3892
		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
3893
		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
3894
		GripC1 = CFrame.new(); --This is the C1 of the grip when you equip the gun
3895
	};
3896
	
3897
	
3898
	stopAnimsOnFall = true; --This is whether or not the movement animation will stop when you're falling
3899
	fallAnimation = true; --This is whether or not there will be animation for falling and landing
3900
	fallSettings = {
3901
		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
3902
		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
3903
		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
3904
		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
3905
		the effect]]
3906
	};
3907
	
3908
	
3909
	gunMomentum = true; --This is whether or not there will be a gun swaying animation for when you move your mouse around
3910
	momentumSettings = {
3911
		maxInput = 18; --This is the maximum mouse delta that will be used as input for the sway
3912
		Speed = 20; --This is the speed of the gun momentum
3913
		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
3914
		instant dampening]]
3915
		Amplitude = { --These are the amplitudes of the gun momentum
3916
			unAimed = 5;
3917
			Aimed = 1;
3918
		}
3919
	};
3920
	
3921
	
3922
	cockingAnim = false; --This is whether or not a cocking animation will play between every shot (for shotguns and bolt action guns)
3923
	movementAnims = true; --This is whether or not the player will have movement animations
3924
	
3925
	
3926
	canADS = true; --This is whether or not the gun can ADS
3927
	aimSettings = {
3928
		Anim = true; --This is whether or not there is an animation for aiming down the sights
3929
		Speed = 0.3; --This is how long the gun will take to fully aim down the sights
3930
		FOV = 37; --This is the FOV that the Camera will have when the gun is fully aimed down
3931
		holdToADS = true; --This is whether or not you have to hold the right mouse or the ADS key to ADS
3932
		headTilt = math.rad(25); --This is what angle the head tilts at when you ADS
3933
	};
3934
	
3935
	
3936
	sensitivitySettings = {
3937
		Default = 1; --This is what the sensitivity of the mouse will be when the gun is not aimed. 1 is the default
3938
		Aim = 0.3; --[[This is what the sensitivity of the mouse will be when the gun is aimed. The smaller the MaxZoom,
3939
		the smaller the sensitivity should be (i.e. Scoped guns should have a sensitivity of around 0.2 or less]]
3940
		
3941
		scrollToChange = true; --This is whether or not scrolling the mouse changes the aim sensitivity
3942
		Min = 0.05; --This is the lowest the sensitivity can be
3943
		Max = 1; --This is the highest the sensitivity can be
3944
		Increment = 0.05; --This is what the increment for the sensitivity is when you scroll
3945
	};
3946
	
3947
	
3948
	guiScope = false; --This is whether or not your Scope will be a gui instead of a normal sight
3949
	scopeSettings = {
3950
		Frequency = { --This is the how fast the camera sway is. The larger the number the faster the camera moves
3951
			Idling = 0.7; --This is the frequency when you're idling
3952
			Walking = 2; --This is the frequency when you're walking
3953
		};
3954
		Amplitude = { --This is the how wide the camera sway is. The larger the number the wider the sway
3955
			Idling = 0.75; --This is the amplitude when you're idling
3956
			Walking = 0.75; --This is the amplitude when you're walking
3957
		};
3958
		steadyTime = 8; --This is how long you can hold your breath to steady the scope
3959
		breathTime = 5; --This is how long it takes to fully retake your breath
3960
		camSwayOnBreath = 2.5; --This is what the cam sway multiplier will be when you start your retake your breath
3961
		unSteadyOnFire = true; --This is whether or not the camera will become unsteady when you fire the gun
3962
	};
3963
	
3964
	
3965
	roundsPerMin = 100; --This is how many bullets per minute the gun will fire
3966
	
3967
	
3968
	bulletSettings = {
3969
		instantHit = true; --[[This is whether or not the bullet will hit a target instantly. If it is false, the bullet will travel at a
3970
			specific speed till it hits a target]]
3971
		Range = 870; --This is how far the bullet will travel in studs before it is no longer effective
3972
		Velocity = 540; --This is how fast the bullet will travel in studs per second
3973
		Acceleration = 196.2; --This is the bullet's acceleration downward (196.2 is normal roblox gravity)
3974
		Color = BrickColor.new("Bright red"); --This is the color of the bullet
3975
		Transparency = 0; --This is the transparency of the bullet
3976
		Size = Vector3.new(0.1, 0.1, 5); --This is how big the bullet will look
3977
	};
3978
	
3979
	
3980
	damageSettings = {
3981
		--[[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
3982
		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
3983
		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
3984
		the ending damage. After the ending damage percent, it'll stay that damage.]]
3985
		Start = {
3986
			Damage = 170; --The starting damage
3987
			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
3988
			the damage will be the starting damage until the bullet travels 0.5*1000 studs or 500 studs]]
3989
		};
3990
		End = {
3991
			Damage = 205; --The ending damage
3992
			Dist = 0.5; --A value between 0 and 1 which represents the distance percent for the ending damage
3993
		};
3994
		Multipliers = { --[[These are the damage multipliers. There's a spread of +0.1. That means that if the multiplier is 1, the actual
3995
			multiplier will range from 1 - 1.1]]
3996
			Chest = 1; --This is what the damage will be multiplied by if the bullet hits the chest
3997
			Head = 10; --This is what the damage will be multiplied by if the bullet hits the head or a hat
3998
			Limbs = 1; --This is what the damage will be multiplied by if the bullet hits a limb (Arms or legs)
3999
		};
4000
	};
4001
	
4002
	
4003
	AllowFriendlyFire = false; --This is whether or not you can damage teammates
4004
	CanDamageNPCs = true; --This is whether or not you can damage NPC's (Zombies, fake players, anything with a humanoid)
4005
	
4006
	
4007
	CanKnife = true; --This is whether or not you can knife
4008
	AutoKnife = false; --This is whether or not the gun will automatically knife if an enemy is within a specific distance
4009
	AutoKnifeDist = 4; --This is how many studs away an enemy has to be for the gun to auto knife
4010
	KnifeMeshId = "http://www.roblox.com/asset/?id=121944778"; --This is the Mesh of the knife
4011
	KnifeTextureId = "http://www.roblox.com/asset/?id=121944805"; --This is the Texture of the knife
4012
	KnifeCooldown = 0.5; --This is how long you have to wait before you can knife again
4013
	KnifeAnim = 1; --This is the type of knife animation
4014
	--[[
4015
		Type 1: An animation that swings a knife from the left of the body to the right of the body
4016
		Type 2: An animation that stabs the knife forward from the center of the body
4017
	--]]
4018
	
4019
	
4020
	Throwables = true; --This is whether or not you have grenades
4021
	TrajectoryAssist = true; --This is whether or not the script will show you the flight path of the grenade before you throw it
4022
	DetonationTime = 2; --[[This is how long the grenade will wait to detonate (If DetonateOnHit is false, this is how long the
4023
		grenade will wait after the pin is pulled. If true, this is how long the grenade will wait after it hits something]]
4024
	TimerStartOnHit = false; --This is whether or not the timer will start when the grenade hits something
4025
	GrenadeSize = Vector3.new(0.8, 0.8, 0.8); --This is the size of the grenade (Doesn't apply to throwing knives)
4026
	
4027
	
4028
	LethalGrenadeColor = BrickColor.new("Bright green"); --This is the color of the lethal grenade
4029
	GrenadeBlastRadius = 20; --This is the blast radius of the explosion (Doesn't apply to non-explosive grenades)
4030
	GrenadeBlastPressure = 6e5; --This is what the blast pressure of the explosion (Doesn't apply to non-explosive grenades)
4031
	GrenadeExplosionType = Enum.ExplosionType.NoCraters; --This is the type of explosion (Doesn't apply to non-explosive grenades)
4032
	--[[
4033
	(0 or "NoCraters" or Enum.ExplosionType.NoCraters) means that the explosion will not damage terrain
4034
	(1 or "Craters" or Enum.ExplosionType.Craters) means that the explosion will leave craters in terrain
4035
	(2 or "CratersAndDebris" or Enum.ExplosionType.CratersAndDebris) means that the explosion will leave craters and debris in terrain
4036
	--]]
4037
	LethalAnimationTime = 1.5; --This is how long the throwing animation for the lethal will take
4038
	LethalGrenadeDamage = 150; --This is max damage that the grenade will do
4039
	LethalGrenadeThrowVelocity = 200; --This is the speed at which the lethal grenade is thrown
4040
	GrenadeRayCastExplosions = true; --[[This is whether or not grenade explosions will have raycasting. If this is true, humanoids
4041
		behind walls won't be damaged. If this is false, any humanoid within the radius will be damaged. (NOTE: GrenadeRangeBasedDamage
4042
		has to be true in order for explosions to have raycasting)]]
4043
	GrenadeRangeBasedDamage = true; --[[This is whether or not will depend on how far the object is from the center of the explosion.
4044
		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
4045
		within the explosion's radius will have its joints broken]]
4046
	LethalGrenadeType = 4; --This is the lethal grenade type
4047
	--[[
4048
		Type 1: Frag grenade [An explosive grenade]
4049
		Type 2: Sticky [An explosive grenade that sticks to a surface]
4050
		Type 3: Throwing Knife [A throwable knife]
4051
		Type 4: Molotov [A grenade that explodes in flames on impact]
4052
	--]]
4053
	
4054
	TacticalGrenadeColor = BrickColor.new("Brick yellow"); --This is the color of the lethal grenade
4055
	TacticalAnimationTime = 1.5; --This how long the throwing animation for the tactical will take
4056
	TacticalGrenadeThrowVelocity = 200; --This is the speed at which the tactical grenade is thrown
4057
	GrenadeEffectRadius = 70; --[[This is the radius of the effect of the grenade. If the Grenade is a smoke, this is the radius of
4058
		the smoke]]
4059
	GrenadeEffectTime = 10; --[[This is the how long the grenade effect will last. If the grenade is a smoke, this is how long the
4060
		smoke will linger]]
4061
	TacticalGrenadeType = 1; --This is the tactical grenade type
4062
	--[[
4063
		Type 1: Smoke grenade [A grenade that creates a cloud of smoke]
4064
		Type 2: Flashbang [A grenade that temporarily blinds and deafens players]
4065
	--]]
4066
	
4067
	
4068
	GrenadeTrail = true; --This is whether or not the grenade will have a trail
4069
	GrenadeTrailColor = BrickColor.new("Black"); --This is the color of the grenade trail
4070
	GrenadeTrailTransparency = 0.6; --This is the transparency of the trail
4071
	GrenadeTrailThickness = 0.3; --This is the thickness of the trail
4072
	GrenadeTrailVisibleTime = 0.2; --This is how long the trail will be visible for
4073
	GrenadeTrailDisappearTime = 0.2; --This is how long it will take for the trail to disappear
4074
	
4075
	
4076
	bulletTrail = true; --This is whether or not there will be a trail behind the bullet
4077
	trailSettings = {
4078
		Color = BrickColor.new("Lime green"); --This is the color of the bullet trail
4079
		Transparency = 0.6; --This is the transparency of the trail
4080
		Thickness = 0.2; --This is the thickness of the trail
4081
		visibleTime = 0; --This is how long the trail will be visible for
4082
		disappearTime = 0.5; --This is how long it will take for the trail to disappear
4083
	};
4084
	
4085
	
4086
	bulletHoles = true; --This is whether or not bullet holes will appear where you shot
4087
	holeSettings = {
4088
		Texture = "http://www.roblox.com/asset/?id=64291961"; --This is the texture of the bullet hole
4089
		Size = 0.5; --This is how big the bullet hole will be in studs
4090
		visibleTime = 3; --This is how long the bullet hole will be visible for
4091
		disappearTime = 1; --This is how long it will take for the bullet hole to disappear
4092
	};
4093
	
4094
	
4095
	bulletSparks = true; --This is whether or not sparks will fly when a bullet hits a surface
4096
	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,
4097
	it has to be a particle emitter in the ServerStorage and it has to be called "bulletSpark"]]
4098
	sparkSettings = { --These settings only apply if customSparks is false
4099
		Color = {
4100
			Start = Color3.new(1, 158 / 255, 24 / 255); --This is the start color of the sparks
4101
			End = Color3.new(212 / 255, 242 / 255, 8 / 255); --This is the end color of the sparks
4102
		};
4103
		Size = 0.25; --This is the size of the sparks
4104
		Texture = "http://www.roblox.com/asset/?id=311395391"; --This is the texture of the sparks
4105
		Lifetime = 0.2; --This is the lifetime of each spark in seconds +-0.05 seconds
4106
		Rate = 75; --This is the number of sparks that fly
4107
		Speed = 25; --This is the speed at which the sparks fly +-5 studs/sec
4108
		Spread = 45; --This is the angle in degrees at which the sparks spread out (0 means single line, 180 means all around)
4109
		Materials = { --This is the list of the materials which cause bullet sparks. You can add or remove materials from this list
4110
			Enum.Material.Plastic;
4111
			Enum.Material.Slate;
4112
			Enum.Material.Concrete;
4113
			Enum.Material.CorrodedMetal;
4114
			Enum.Material.DiamondPlate;
4115
			Enum.Material.Foil;
4116
			Enum.Material.Marble;
4117
			Enum.Material.Granite;
4118
			Enum.Material.Brick;
4119
			Enum.Material.Pebble;
4120
			Enum.Material.SmoothPlastic;
4121
			Enum.Material.Metal;
4122
			Enum.Material.Cobblestone;
4123
		};
4124
	};
4125
	
4126
	
4127
	bulletSmoke = true; --This is whether or not smoke particles will fly when a bullet hits a surface
4128
	smokeSettings = {
4129
		objColor = true; --This is whether or not the smoke color will be the color of the object the bullet hit
4130
		Color = Color3.new(0.5, 0.5, 0.5); --This is what the color of the smoke will be if objColor is false
4131
		Size = {
4132
			Start = 0.25; --This is what the starting size of the smoke will be
4133
			End = 0.5; --This is what the ending size of the smoke will be
4134
		};
4135
		Texture = "http://www.roblox.com/asset/?id=244514423"; --This is what the texture of the smoke will be
4136
		startTransparency = 0; --This is what the transparency of the particle starts at. It gradually goes to 1
4137
		Lifetime = 0.2; --This is the lifetime of each smoke particle +-0.05 seconds
4138
		Rate = 100; --This is the number of smoke particles that fly
4139
		Speed = 35; --This is the speed at which the smoke particles fly +-5 studs/sec
4140
		Spread = 15; --This is the angle in degrees at which the smoke particles spread out (0 means single line, 180 means all around)
4141
	};
4142
	
4143
	
4144
	bloodEffect = true; --This is whether or not blood particles will appear from the bullet exit position when a humanoid is shot
4145
	bloodSettings = {
4146
		Color = Color3.new(1, 0, 0); --This is what the color of the blood will be
4147
		Size = 0.1; --This is what the size of the blood will be with an +-0.1
4148
		Texture = "http://www.roblox.com/asset/?id=3419963"; --This is what the texture of the blood will be
4149
		startTransparency = 0.125; --This is what the starting transparency of the blood will be +-0.125
4150
		Lifetime = 0.1; --This is what the lifetime of each blood particle +-0.05 seconds
4151
		Rate = 200; --This is the number of blood particles that appear
4152
		Speed = 50; --This is the speed at which the blood particles fly
4153
		Spread = 15; --This is the angle in degrees at which the blood particles spread out (0 means single line, 180 means all around)
4154
	};
4155
	
4156
	
4157
	bulletShockwave = true; --This is whether or not a shockwave will appear where you shot. (A sphere that appears when the bullet hits)
4158
	shockwaveSettings = {
4159
		Radius = 0.3; --This is the radius of the shockwave. (If the gun type is explosion, this radius will be the blast radius)
4160
		Color = BrickColor.new("Light stone grey"); --This is the color of the shockwave
4161
		Duration = 0.2; --This is how long the shockwave will take to disappear
4162
	};
4163
	
4164
	
4165
	penetrationSettings = {
4166
		Dist = 0; --This is the maximum amount of studs a bullet can penetrate into a wall (that isn't ignored)
4167
		transparencyThreshold = 1; --This is what the transparency of a wall has to be greater than or equal to in order to be ignored
4168
		ignoreNonCanCollide = true; --This is whether or not the script should ignore non-cancollide parts
4169
		ignoreCustom = {}; --This is a table of objects that will be ignored by the script. The object and it's descendants will be ignored
4170
	};
4171
	
4172
	
4173
	recoilSettings = {
4174
		firstShotMultiplier = 2.4; --This is what the recoil multiplier for the first shot will be. The rest of the shots will be normal recoil
4175
		aimedMultiplier = 0.5; --When you're aimed, this is what the recoil will be multiplied by
4176
		camMultiplier = 2; --This is what the gun up recoil will be multiplied by to get you the cam recoil
4177
		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
4178
		springDamper = 0.5; --This is a number between 0 and 1 that determines how quickly the spring will be dampened.
4179
		Recoil = {
4180
			Side = { --This is the side to side gun and camera recoil
4181
				Left = -0.17;
4182
				Right = 0.28;
4183
			};
4184
			Up = { --This is the up and down gun and camera recoil
4185
				Min = 0.26;
4186
				Max = 0.28;
4187
			};
4188
			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
4189
				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]]
4190
				Min = 0.3;
4191
				Max = 0.35;
4192
			};
4193
			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
4194
				and the right is 1 then the gun will tilt anywhere between -10 degress and 10 degrees]]
4195
				Left = -0.5;
4196
				Right = 0.5;
4197
			};
4198
		}
4199
	};
4200
	
4201
	
4202
	spreadSettings = {
4203
		Increase = 0.1; --This is what is added to the spread of the bullet every time you fire
4204
		Decrease = 15; --This is what the spread of the bullet decreases by per second
4205
		
4206
		--[[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
4207
		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
4208
		you're moving]]
4209
		Aimed = {
4210
			Stand = {
4211
				Idling = 0.2;
4212
				Moving = 0.4;
4213
			};
4214
			Crouch = {
4215
				Idling = 0.15;
4216
				Moving = 0.3;
4217
			};
4218
			Prone = {
4219
				Idling = 0.1;
4220
				Moving = 0.3;
4221
			};
4222
		};
4223
		unAimed = {
4224
			Stand = {
4225
				Idling = 2;
4226
				Moving = 2.5;
4227
			};
4228
			Crouch = {
4229
				Idling = 1.5;
4230
				Moving = 2;
4231
			};
4232
			Prone = {
4233
				Idling = 1;
4234
				Moving = 2;
4235
			};
4236
		};
4237
	};
4238
	
4239
	
4240
	reloadSettings = {
4241
		Anim = true; --This is whether or not there is an animation for reloading
4242
		Times = {
4243
			Loaded = 3; --This is how long it takes to reload the gun if a bullet is already chambered
4244
			Empty = 3; --This is how long it takes to reload the gun if a bullet isn't chambered
4245
		};
4246
		autoReload = true; --This is whether or not the gun will reload automatically when the ammo reaches 0
4247
		magIsBullet = false; --This is whether or not the mag is the bullet itself. This is useful for guns with only 1 bullet per clip
4248
		reloadWhileRunning = true; --This is whether or not you can reload while running
4249
	};
4250
	
4251
	
4252
	sprintTime = 15; --This is the maximum time you can sprint
4253
	staminaCoolTime = 4; --This is how long it takes for your stamina to fully recharge
4254
	canFireWhileRunning = false; --This is whether or not you can shoot while sprinting
4255
	
4256
	
4257
	dolphinDive = true; --This is whether or not you can dolphin dive (Run and crouch at the same time to dive)
4258
	diveSettings = {
4259
		rechargeTime = 1; --This is how long you have to wait till you can dive or run again after you've dived
4260
		Force = 350; --This is the multiplier for the dolphin dive force. The higher it is the farther you'll dive
4261
		Angle = math.rad(30); --This is the angle in radians from the ground that you dive at
4262
	};
4263
	
4264
	
4265
	canChangeStance = true; --This is whether or not you can change stance. That means whether or not you can crouch or go prone
4266
	stanceSettings = {
4267
		Anim = true; --This is whether or not there is an animation for changing stance
4268
		Speed = 0.3; --This is how quickly you change stance
4269
		Stances = {
4270
			Crouch = true; --This is whether or not you can crouch
4271
			Prone = true; --This is whether or not you can go prone
4272
		};
4273
		standOnDeselect = true; --This is whether or not you stand up when you deselect the tool
4274
		crawlAnimation = true; --This is whether or not you crawl while moving when you're prone
4275
	};
4276
	
4277
	
4278
	walkSpeeds = {
4279
		Base = 14; --This is the base walkspeed
4280
		Sprinting = 28; --This is the walkspeed when you're sprinting
4281
		Aimed = 10; --[[This is the base walkspeed when the gun is aimed down. If you crouch or go prone, the speed will change
4282
		based on the Aimed walkspeed to Base walkspeed ratio]]
4283
		Crouched = 7; --This is the walkspeed when you're crouched
4284
		Prone = 4; --This is the walkspeed when you're prone
4285
	};
4286
	
4287
	
4288
	--NOTE: For extra keys, go here: http://wiki.roblox.com/index.php?title=Taking_keyboard_input
4289
	Keys = {
4290
		lowerStance = "c"; --This is the key you press to lower your stance (Stand > Crouch > Prone)
4291
		raiseStance = "x"; --This is the key you press to raise your stance (Prone > Crouch > Stand)
4292
		selectFire = "e"; --This is the key you press to switch fire modes
4293
		Reload = "r"; --This is the key you press to reload
4294
		Sprint = string.char(48); --This is the key you press to sprint
4295
		Knife = "f"; --This is the key you press to knife
4296
		lethalGrenade = "g"; --This is the key you press to throw the lethal grenade
4297
		tacticalGrenade = "t"; --This is the key you press to throw the tactical grenade
4298
		ADS = "q"; --This is the key you press to ADS. If you want ADS to just be right mouse, then make this key ""
4299
		scopeSteady = string.char(48); --This is the key you press to steady the scope
4300
	};
4301
	
4302
	
4303
}
4304
4305
local Player = game.Players.LocalPlayer
4306
local Char = Player.Character
4307
local Humanoid = Char:WaitForChild("Humanoid")
4308
local Torso = Char:WaitForChild("Torso")
4309
local Head = Char:WaitForChild("Head")
4310
local HRP = Char:WaitForChild("HumanoidRootPart")
4311
local Root = HRP:WaitForChild("RootJoint")
4312
4313
local Neck = Torso:WaitForChild("Neck")
4314
4315
local LArm = Char:WaitForChild("Left Arm")
4316
local RArm = Char:WaitForChild("Right Arm")
4317
local LLeg = Char:WaitForChild("Left Leg")
4318
local RLeg = Char:WaitForChild("Right Leg")
4319
4320
local M2 = Player:GetMouse()
4321
4322
local mainGUI = script:WaitForChild("mainGUI")
4323
	
4324
local crossHair = mainGUI:WaitForChild("crossHair")
4325
local HUD = mainGUI:WaitForChild("HUD")
4326
local Scope = mainGUI:WaitForChild("Scope")
4327
local fireSelect = mainGUI:WaitForChild("fireSelect")
4328
local hitMarker = mainGUI:WaitForChild("hitMarker")
4329
local Sens = mainGUI:WaitForChild("Sens")
4330
4331
local crossA = crossHair:WaitForChild("A"):WaitForChild("Line")
4332
local crossB = crossHair:WaitForChild("B"):WaitForChild("Line")
4333
local crossC = crossHair:WaitForChild("C"):WaitForChild("Line")
4334
local crossD = crossHair:WaitForChild("D"):WaitForChild("Line")
4335
4336
local Controls = HUD:WaitForChild("Controls")
4337
4338
local gunNameTitle = HUD:WaitForChild("gunName"):WaitForChild("Title")
4339
4340
local scopeMain = Scope:WaitForChild("Main")
4341
local scopeSteady = Scope:WaitForChild("Steady")
4342
4343
local fireModes = fireSelect:WaitForChild("Modes")
4344
4345
local modeGUI = HUD:WaitForChild("Mode"):WaitForChild("Main")
4346
local clipAmmoGUI = HUD:WaitForChild("Ammo"):WaitForChild("Clip")
4347
local storedAmmoGUI = HUD:WaitForChild("Ammo"):WaitForChild("Stored")
4348
4349
local DS = game:GetService("Debris")
4350
local CP = game:GetService("ContentProvider")
4351
local RS = game:GetService("RunService")
4352
local UIS = game:GetService("UserInputService")
4353
4354
local Cam = game.Workspace.CurrentCamera
4355
4356
local ABS, HUGE, FLOOR, CEIL = math.abs, math.huge, math.floor, math.ceil
4357
local RAD, SIN, COS, TAN = math.rad, math.sin, math.cos, math.tan
4358
local VEC2, V3 = Vector2.new, Vector3.new
4359
local CF, CFANG = CFrame.new, CFrame.Angles
4360
local INSERT = table.insert
4361
4362
local maxStamina = S.sprintTime * 60
4363
local maxSteadyTime = S.scopeSettings.steadyTime * 60
4364
4365
local LethalIcons = {
4366
	"http://www.roblox.com/asset/?id=194849880";
4367
	"http://www.roblox.com/asset/?id=195727791";
4368
	"http://www.roblox.com/asset/?id=195728137";
4369
	"http://www.roblox.com/asset/?id=218151830";
4370
}
4371
4372
local TacticalIcons = {
4373
	"http://www.roblox.com/asset/?id=195728473";
4374
	"http://www.roblox.com/asset/?id=195728693";
4375
}
4376
4377
local ASCII = {
4378
	071; 117; 110; 032;
4379
	075; 105; 116; 032;
4380
	115; 099; 114; 105;
4381
	112; 116; 101; 100;
4382
	032; 098; 121; 032;
4383
	084; 117; 114; 098;
4384
	111; 070; 117; 115;
4385
	105; 111; 110; 000;
4386
}
4387
4388
local Ignore = {
4389
	Char;
4390
	ignoreModel;
4391
}
4392
4393
local Shoulders = {
4394
	Right = Torso:WaitForChild("Right Shoulder");
4395
	Left = Torso:WaitForChild("Left Shoulder")
4396
}
4397
4398
local armC0 = {
4399
	CF(-1.5, 0, 0) * CFANG(RAD(90), 0, 0);
4400
	CF(1.5, 0, 0) * CFANG(RAD(90), 0, 0);
4401
}
4402
4403
local legC0 = {
4404
	Stand = {
4405
		CF(-0.5, -2, 0);
4406
		CF(0.5, -2, 0);
4407
	};
4408
	Crouch = {
4409
		CF(-0.5, -1.5, 0.5) * CFANG(-RAD(90), 0, 0);
4410
		CF(0.5, -1, -0.75);
4411
	};
4412
	Prone = {
4413
		CF(-0.5, -2, 0);
4414
		CF(0.5, -2, 0);
4415
	};
4416
}
4417
4418
local Sine = function(X)
4419
	return SIN(RAD(X))
4420
end
4421
4422
local Linear = function(X)
4423
	return (X / 90)
4424
end
4425
4426
--------------------------------------------------------------------------------------
4427
--------------------[ VARIABLES ]-----------------------------------------------------
4428
--------------------------------------------------------------------------------------
4429
4430
local Selected = false
4431
4432
local playerMass = 0
4433
4434
local Forward = false
4435
local Backward = false
4436
4437
local Idling = false
4438
local Walking = false
4439
local Running = false
4440
4441
local crawlCamRot = 0
4442
local crawlAlpha = 0
4443
local idleAlpha = 1
4444
local walkAlpha = 0
4445
local isCrawling = false
4446
local isIdling = false
4447
local isWalking = false
4448
local isRunning = false
4449
4450
local Aimed = false
4451
local Aiming = false
4452
local aimAlpha = 0
4453
local headOffset = VEC2(COS(RAD(90) - S.aimSettings.headTilt) * 0.5, 1 + SIN(RAD(90) - S.aimSettings.headTilt) * 0.5)
4454
4455
local Reloading = false
4456
local breakReload = false
4457
local magVisible = true
4458
local newMag = false
4459
4460
local Knifing = false
4461
4462
local MB1Down = false
4463
local Firing = false
4464
local canFire = true
4465
local fireFunction = nil
4466
local firstShot = false
4467
local shotCount = 0
4468
local lastSideRecoil = {0, 0}
4469
local recoilAnim = {
4470
	Pos = V3();
4471
	Rot = V3();
4472
	Code = nil;
4473
}
4474
4475
local numModes = 0
4476
local rawFireMode = 1
4477
local canSelectFire = true
4478
local guiAngOffset = 0
4479
local Modes = {}
4480
4481
local onGround = true
4482
local startFallHeight = 0
4483
local jumpAnim = {
4484
	Pos = 0;
4485
	Rot = 0;
4486
	Code = 0;
4487
}
4488
4489
local runReady = true
4490
local runKeyPressed = false
4491
local chargingStamina = false
4492
4493
local AimingIn = false
4494
local AimingOut = false
4495
4496
local Stamina = S.sprintTime * 60
4497
local currentSteadyTime = S.scopeSettings.steadyTime * 60
4498
4499
local camSteady = false
4500
local takingBreath = false
4501
local steadyKeyPressed = false
4502
4503
local Grip = nil
4504
local aimedGripCF = nil
4505
4506
local spreadZoom = "unAimed"
4507
local spreadStance = "Stand"
4508
local spreadMotion = "Idling"
4509
local baseSpread = S.spreadSettings.unAimed.Stand.Idling
4510
local currentSpread = 0
4511
local loweringSpread = false
4512
4513
local mouseSensitivity = S.sensitivitySettings.Default
4514
local aimSensitivity = S.sensitivitySettings.Aim
4515
local lastSensUpdate = 0
4516
4517
local ammoInClip = 0
4518
4519
local Stance = 0
4520
local stanceSway = 1
4521
local camSway = 1
4522
4523
local camAng = VEC2()
4524
4525
local armTilt = 0
4526
local moveAng = 0
4527
local animCode = 0
4528
4529
local desiredXOffset = 0
4530
local desiredYOffset = 0
4531
local currentXOffset = 0
4532
local currentYOffset = 0
4533
local aimHeadOffset = 0
4534
local recoilAnimMultiplier = 1
4535
local jumpAnimMultiplier = 1
4536
local translationDivisor = 7
4537
local rotationMultiplier = S.momentumSettings.Amplitude.unAimed
4538
local armTiltMultiplier = 1
4539
4540
local equipAnimPlaying = false
4541
4542
local crossOffset = 0
4543
4544
local camOffsets = {
4545
	guiScope = {
4546
		Rot = V3();
4547
	};
4548
	Reload = {
4549
		Rot = V3();
4550
		Code = nil;
4551
	};
4552
	Recoil = {
4553
		Rot = V3();
4554
		Code = nil;
4555
	};
4556
}
4557
4558
local Anim = {
4559
	Pos = V3();
4560
	Rot = V3();
4561
	Ang = 0;
4562
	Code = 0;
4563
}
4564
4565
local lastBeat = 0
4566
4567
local gunParts = {}
4568
4569
local Connections = {}
4570
4571
local Keys = {}
4572
4573
--------------------------------------------------------------------------------------
4574
--------------------[ PRE-LOADING ]---------------------------------------------------
4575
--------------------------------------------------------------------------------------
4576
4577
CP:Preload(S.explosionSettings.soundId)
4578
CP:Preload(S.holeSettings.Texture)
4579
CP:Preload(S.sparkSettings.Texture)
4580
CP:Preload(S.smokeSettings.Texture)
4581
CP:Preload(S.bloodSettings.Texture)
4582
CP:Preload("http://www.roblox.com/asset/?id=126877530") --The dark green arrow in the select fire gui
4583
CP:Preload("http://www.roblox.com/asset/?id=55754953") --The circle in the select fire gui
4584
4585
--------------------------------------------------------------------------------------
4586
--------------------[ GUN SETUP ]-----------------------------------------------------
4587
--------------------------------------------------------------------------------------
4588
4589
serverMain:WaitForChild("Plyr").Value = Player
4590
4591
local gunMomentum = Spring.new(V3())
4592
gunMomentum.s = S.momentumSettings.Speed
4593
gunMomentum.d = S.momentumSettings.Damper
4594
4595
local gunRecoilSpring = Spring.new(V3())
4596
gunRecoilSpring.s = S.recoilSettings.springSpeed
4597
gunRecoilSpring.d = S.recoilSettings.springDamper
4598
4599
local camRecoilSpring = Spring.new(V3())
4600
camRecoilSpring.s = 35
4601
camRecoilSpring.d = 0.5
4602
4603
local crossSpring = Spring.new(V3(crossOffset + (baseSpread + currentSpread) * 50, 0, 0))
4604
crossSpring.s = 20
4605
crossSpring.d = 0.75
4606
4607
--[[local function getModelMass(P)
4608
	for _, v in pairs(P:GetChildren()) do
4609
		if v:IsA("BasePart") then
4610
			playerMass = playerMass + v:GetMass()
4611
		end
4612
		getModelMass(v)
4613
	end
4614
end
4615
getModelMass(Char)
4616
4617
Char.DescendantAdded:connect(function(Descendant)
4618
	if Descendant:IsA("BasePart") then
4619
		playerMass = playerMass + Descendant:GetMass()
4620
	end
4621
end)
4622
Char.DescendantRemoving:connect(function(Descendant)
4623
	if Descendant:IsA("BasePart") then
4624
		playerMass = playerMass - Descendant:GetMass()
4625
	end
4626
end)]]
4627
4628
--------------------------------------------------------------------------------------
4629
--------------------[ WELD CFRAMES ]--------------------------------------------------
4630
--------------------------------------------------------------------------------------
4631
4632
spawn(function()
4633
	--[[for _, v in pairs(Gun:GetChildren()) do
4634
		if v:IsA("BasePart") and v ~= Handle then
4635
			if v:FindFirstChild("mainWeld") then v.mainWeld:Destroy() end
4636
			if (not v:FindFirstChild("weldCF")) then
4637
				local weldCF = Instance.new("CFrameValue")
4638
				weldCF.Name = "weldCF"
4639
				weldCF.Value = Handle.CFrame:toObjectSpace(v.CFrame)
4640
				weldCF.Parent = v
4641
				INSERT(gunParts, {Obj = v, Weld = nil})
4642
			end
4643
			if string.sub(v.Name, 1, 3) == "Mag" then
4644
				if (not v:FindFirstChild("magTrans")) then
4645
					local magTrans = Instance.new("NumberValue")
4646
					magTrans.Name = "magTrans"
4647
					magTrans.Value = v.Transparency
4648
					magTrans.Parent = v
4649
				end
4650
			end
4651
			v.Anchored = false
4652
		end
4653
	end
4654
	Handle.Anchored = false]]
4655
	for _, v in pairs(Gun:GetChildren()) do
4656
		if v:FindFirstChild("weldCF") then
4657
			INSERT(gunParts, {Obj = v, Weld = nil})
4658
			v.Anchored = false
4659
		end
4660
	end
4661
end)
4662
4663
--------------------------------------------------------------------------------------
4664
--------------------[ MAIN PROGRAM ]--------------------------------------------------
4665
--------------------------------------------------------------------------------------
4666
4667
--------------------[ ARM CREATION FUNCTION ]-----------------------------------------
4668
4669
function createArms()
4670
	local Arms = {}
4671
	for i = 0, 1 do
4672
		local armModel = Instance.new("Model")
4673
		armModel.Name = "armModel"
4674
		
4675
		local Arm = Instance.new("Part")
4676
		Arm.BrickColor = (S.fakeArmSettings.realBodyColor and (i == 0 and LArm.BrickColor or RArm.BrickColor) or S.fakeArmSettings.Color)
4677
		Arm.Transparency = S.fakeArmSettings.Transparency
4678
		Arm.Name = "Arm"
4679
		Arm.CanCollide = false
4680
		Arm.Size = V3(0.598, 2, 0.598)
4681
		Arm.Parent = armModel
4682
		local armMesh = Instance.new("SpecialMesh")
4683
		armMesh.MeshId = "rbxasset://fonts//leftarm.mesh"
4684
		armMesh.MeshType = Enum.MeshType.FileMesh
4685
		armMesh.Scale = V3(0.598, 1, 0.598)
4686
		armMesh.Parent = Arm
4687
		
4688
		local Glove1 = Instance.new("Part")
4689
		Glove1.BrickColor = BrickColor.new("Black")
4690
		Glove1.Name = "Glove1"
4691
		Glove1.CanCollide = false
4692
		Glove1.Size = V3(0.598, 2, 0.598)
4693
		Glove1.Parent = armModel
4694
		local glove1Mesh = Instance.new("SpecialMesh")
4695
		glove1Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
4696
		glove1Mesh.Offset = V3(0, -0.5, 0)
4697
		glove1Mesh.Scale = V3(0.658, 0.205, 0.658)
4698
		glove1Mesh.Parent = Glove1
4699
		local glove1Weld = Instance.new("Weld")
4700
		glove1Weld.Part0 = Arm
4701
		glove1Weld.Part1 = Glove1
4702
		glove1Weld.Parent = Arm
4703
		
4704
		local Glove2 = Instance.new("Part")
4705
		Glove2.BrickColor = BrickColor.new("Black")
4706
		Glove2.Name = "Glove2"
4707
		Glove2.CanCollide = false
4708
		Glove2.Size = V3(0.598, 2, 0.598)
4709
		Glove2.Parent = armModel
4710
		local glove2Mesh = Instance.new("SpecialMesh")
4711
		glove2Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
4712
		glove2Mesh.Offset = V3(0, -0.435, 0)
4713
		glove2Mesh.Scale = V3(0.69, 0.105, 0.69)
4714
		glove2Mesh.Parent = Glove2
4715
		local glove2Weld = Instance.new("Weld")
4716
		glove2Weld.Part0 = Arm
4717
		glove2Weld.Part1 = Glove2
4718
		glove2Weld.Parent = Arm
4719
		
4720
		local Glove3 = Instance.new("Part")
4721
		Glove3.BrickColor = BrickColor.new("Black")
4722
		Glove3.Name = "Glove3"
4723
		Glove3.CanCollide = false
4724
		Glove3.Size = V3(0.598, 2, 0.598)
4725
		Glove3.Parent = armModel
4726
		local glove3Mesh = Instance.new("SpecialMesh")
4727
		glove3Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
4728
		glove3Mesh.Offset = V3(0.18 * ((i * 2) - 1), -0.7, 0)
4729
		glove3Mesh.Scale = V3(0.299, 0.305, 0.657)
4730
		glove3Mesh.Parent = Glove3
4731
		local glove3Weld = Instance.new("Weld")
4732
		glove3Weld.Part0 = Arm
4733
		glove3Weld.Part1 = Glove3
4734
		glove3Weld.Parent = Arm
4735
		
4736
		local Sleeve1 = Instance.new("Part")
4737
		Sleeve1.BrickColor = BrickColor.new("Sand green")
4738
		Sleeve1.Name = "Sleeve1"
4739
		Sleeve1.CanCollide = false
4740
		Sleeve1.Size = V3(0.598, 2, 0.598)
4741
		Sleeve1.Parent = armModel
4742
		local sleeve1Mesh = Instance.new("SpecialMesh")
4743
		sleeve1Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
4744
		sleeve1Mesh.Offset = V3(0, 0.75, 0)
4745
		sleeve1Mesh.Scale = V3(0.656, 0.3, 0.656)
4746
		sleeve1Mesh.Parent = Sleeve1
4747
		local sleeve1Weld = Instance.new("Weld")
4748
		sleeve1Weld.Part0 = Arm
4749
		sleeve1Weld.Part1 = Sleeve1
4750
		sleeve1Weld.Parent = Arm
4751
		
4752
		local Sleeve2 = Instance.new("Part")
4753
		Sleeve2.BrickColor = BrickColor.new("Sand green")
4754
		Sleeve2.Name = "Sleeve2"
4755
		Sleeve2.CanCollide = false
4756
		Sleeve2.Size = V3(0.598, 2, 0.598)
4757
		Sleeve2.Parent = armModel
4758
		local sleeve2Mesh = Instance.new("SpecialMesh")
4759
		sleeve2Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
4760
		sleeve2Mesh.Offset = V3(0, 0.55, 0)
4761
		sleeve2Mesh.Scale = V3(0.75, 0.1, 0.75)
4762
		sleeve2Mesh.Parent = Sleeve2
4763
		local sleeve2Weld = Instance.new("Weld")
4764
		sleeve2Weld.Part0 = Arm
4765
		sleeve2Weld.Part1 = Sleeve2
4766
		sleeve2Weld.Parent = Arm
4767
		
4768
		table.insert(Arms, {Model = armModel, armPart = Arm})
4769
	end
4770
	return Arms
4771
end
4772
4773
--------------------[ MATH FUNCTIONS ]------------------------------------------------
4774
4775
function Map(Val, fromLow, fromHigh, toLow, toHigh)
4776
	return (Val - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow
4777
end
4778
4779
function numLerp(A, B, Alpha)
4780
	return A + (B - A) * Alpha
4781
end
4782
4783
function RAND(Min, Max, Accuracy)
4784
	return numLerp(Min, Max, math.random())
4785
	--[[local Inverse = 1 / (Accuracy or 1)
4786
	return (math.random(Min * Inverse, Max * Inverse) / Inverse)]]
4787
end
4788
4789
function Round(Num, toNearest)
4790
	return math.floor(Num / toNearest + 0.5) * toNearest
4791
end
4792
4793
function getNearestPoint(A, B, Origin)
4794
	local A2 = (A - Origin).magnitude
4795
	local B2 = (B - Origin).magnitude
4796
	return (math.min(A2, B2) == A2 and A or B)
4797
end
4798
4799
--------------------[ TWEEN FUNCTIONS ]-----------------------------------------------
4800
4801
function tweenJoint(Joint, newC0, newC1, Alpha, Duration)
4802
	spawn(function()
4803
		local newCode = math.random(-1e9, 1e9) --This creates a random code between -1000000000 and 1000000000
4804
		local tweenIndicator = nil
4805
		if (not Joint:findFirstChild("tweenCode")) then --If the joint isn't being tweened, then
4806
			tweenIndicator = Instance.new("IntValue")
4807
			tweenIndicator.Name = "tweenCode"
4808
			tweenIndicator.Value = newCode
4809
			tweenIndicator.Parent = Joint
4810
		else
4811
			tweenIndicator = Joint.tweenCode
4812
			tweenIndicator.Value = newCode --If the joint is already being tweened, this will change the code, and the tween loop will stop
4813
		end
4814
		--local tweenIndicator = createTweenIndicator:InvokeServer(Joint, newCode)
4815
		if Duration <= 0 then --If the duration is less than or equal to 0 then there's no need for a tweening loop
4816
			if newC0 then Joint.C0 = newC0 end
4817
			if newC1 then Joint.C1 = newC1 end
4818
		else
4819
			local startC0 = Joint.C0
4820
			local startC1 = Joint.C1
4821
			local t0 = tick()
4822
			while true do
4823
				RS.RenderStepped:wait() --This makes the for loop step every 1/60th of a second
4824
				local X = math.min((tick() - t0) / Duration, 1) * 90
4825
				if tweenIndicator.Value ~= newCode then break end --This makes sure that another tween wasn't called on the same joint
4826
				if (not Selected) then break end --This stops the tween if the tool is deselected
4827
				if newC0 then Joint.C0 = startC0:lerp(newC0, Alpha(X)) end
4828
				if newC1 then Joint.C1 = startC1:lerp(newC1, Alpha(X)) end
4829
				--if newC0 then lerpCF:InvokeServer(Joint, "C0", startC0, newC0, Alpha(X)) end
4830
				--if newC1 then lerpCF:InvokeServer(Joint, "C1", startC1, newC1, Alpha(X)) end
4831
				if X == 90 then break end
4832
			end
4833
		end
4834
		if tweenIndicator.Value == newCode then --If this tween functions was the last one called on a joint then it will remove the code
4835
			tweenIndicator:Destroy()
4836
		end
4837
		--deleteTweenIndicator:InvokeServer(tweenIndicator, newCode)
4838
	end)
4839
end
4840
4841
function tweenCam(Key, newRot, Alpha, Duration)
4842
	spawn(function()
4843
		local newCode = math.random(-1e9, 1e9)
4844
		camOffsets[Key].Code = newCode
4845
		
4846
		local Increment = 1.5 / Duration
4847
		local prevRot = camOffsets[Key].Rot
4848
		local X = 0
4849
		while true do
4850
			RS.RenderStepped:wait()
4851
			local newX = X + Increment
4852
			X = (newX > 90 and 90 or newX)
4853
			if camOffsets[Key].Code ~= newCode then break end
4854
			if (not Selected) then break end
4855
			
4856
			camOffsets[Key].Rot = prevRot:lerp(newRot, Alpha(X))
4857
			
4858
			if X == 90 then break end
4859
		end
4860
		
4861
		if camOffsets[Key].Code == newCode then
4862
			camOffsets[Key].Code = nil
4863
		end
4864
	end)
4865
end
4866
4867
function tweenRecoil(newPos, newRot, Alpha, Duration)
4868
	spawn(function()
4869
		local newCode = math.random(-1e9, 1e9)
4870
		recoilAnim.Code = newCode
4871
		
4872
		local Increment = 1.5 / Duration
4873
		local prevPos = recoilAnim.Pos
4874
		local prevRot = recoilAnim.Rot
4875
		local X = 0
4876
		while true do
4877
			RS.RenderStepped:wait()
4878
			local newX = X + Increment
4879
			X = (newX > 90 and 90 or newX)
4880
			if recoilAnim.Code ~= newCode then break end
4881
			if (not Selected) then break end
4882
			
4883
			recoilAnim.Pos = prevPos:lerp(newPos, Alpha(X))
4884
			recoilAnim.Rot = prevRot:lerp(newRot, Alpha(X))
4885
			
4886
			if X == 90 then break end
4887
		end
4888
		
4889
		if recoilAnim.Code == newCode then
4890
			recoilAnim.Code = nil
4891
		end
4892
	end)
4893
end
4894
4895
--------------------[ GUI UPDATE FUNCTIONS ]------------------------------------------
4896
4897
local function updateClipAmmo()
4898
	clipAmmoGUI.Text = Ammo.Value
4899
	clipAmmoGUI.TextColor3 = (Ammo.Value <= (ClipSize.Value / 3) and Color3.new(1, 0, 0) or Color3.new(1, 1, 1))
4900
end
4901
4902
local function updateStoredAmmo()
4903
	storedAmmoGUI.Text = StoredAmmo.Value
4904
	storedAmmoGUI.TextColor3 = (StoredAmmo.Value <= (ClipSize.Value * 2) and Color3.new(1, 0, 0) or Color3.new(1, 1, 1))
4905
end
4906
4907
local function updateHealth()
4908
	HUD.Health.Num.Text = CEIL(Humanoid.Health).."%"
4909
	HUD.Health.Num.TextColor3 = (
4910
		(Humanoid.Health > 200 / 3) and Color3.new(1, 1, 1) or
4911
		(Humanoid.Health <= 200 / 3 and Humanoid.Health > 100 / 3) and Color3.new(1, 1, 0) or
4912
		(Humanoid.Health <= 100 / 3) and Color3.new(1, 0, 0)
4913
	)
4914
end
4915
4916
local function updateModeLabels(prevState, newState, X)
4917
	for Num, Mode in pairs(fireModes:GetChildren()) do
4918
		local guiAngOffset2 = guiAngOffset + 90
4919
		local Ang = numLerp(
4920
			(guiAngOffset2 * prevState) - (guiAngOffset2 * Num) - guiAngOffset2,
4921
			(guiAngOffset2 * newState) - (guiAngOffset2 * Num) - guiAngOffset2,
4922
			Sine(X)
4923
		) + guiAngOffset
4924
		local XPos = COS(RAD(Ang))
4925
		local YPos = SIN(RAD(Ang))
4926
		Mode.Position = UDim2.new(0.5, XPos * 100, 0.5, YPos * 100)
4927
		
4928
		local R = COS(math.atan2(Mode.Position.Y.Offset, Mode.Position.X.Offset) + RAD(90))
4929
		Mode.Label.TextTransparency = 1 - ((R / 4) + 0.75)
4930
		
4931
		local Scale = (R * 10) + 50
4932
		Mode.Label.Position = UDim2.new(0, -Scale / 2, 0, 0)
4933
		Mode.Label.Size = UDim2.new(0, Scale, 0, Scale / 2)
4934
	end
4935
end
4936
4937
--------------------[ GUI SETUP FUNCTION ]--------------------------------------------
4938
4939
function convertKey(Key)
4940
	if Key == string.char(8) then
4941
		return "BKSPCE" 
4942
	elseif Key == string.char(9) then
4943
		return "TAB"
4944
	elseif Key == string.char(13) then
4945
		return "ENTER"
4946
	elseif Key == string.char(17) then
4947
		return "UP"
4948
	elseif Key == string.char(18) then
4949
		return "DOWN"
4950
	elseif Key == string.char(19) then
4951
		return "RIGHT"
4952
	elseif Key == string.char(20) then
4953
		return "LEFT"
4954
	elseif Key == string.char(22) then
4955
		return "HOME"
4956
	elseif Key == string.char(23) then
4957
		return "END"
4958
	elseif Key == string.char(27) then
4959
		return "F2"
4960
	elseif Key == string.char(29) then
4961
		return "F4"
4962
	elseif Key == string.char(30) then
4963
		return "F5"
4964
	elseif Key == string.char(32) or Key == " " then
4965
		return "F7"
4966
	elseif Key == string.char(33) or Key == "!" then
4967
		return "F8"
4968
	elseif Key == string.char(34) or Key == '"' then
4969
		return "F9"
4970
	elseif Key == string.char(35) or Key == "#" then
4971
		return "F10"
4972
	elseif Key == string.char(37) or Key == "%" then
4973
		return "F12"
4974
	elseif Key == string.char(47) or Key == "/" then
4975
		return "R-SHIFT"
4976
	elseif Key == string.char(48) or Key == "0" then
4977
		return "L-SHIFT"
4978
	elseif Key == string.char(49) or Key == "1" then
4979
		return "R-CTRL"
4980
	elseif Key == string.char(50) or Key == "2" then
4981
		return "L-CTRL"
4982
	elseif Key == string.char(51) or Key == "3" then
4983
		return "R-ALT"
4984
	elseif Key == string.char(52) or Key == "4" then
4985
		return "L-ALT"
4986
	else
4987
		return string.upper(Key)
4988
	end
4989
end
4990
4991
function createControlFrame(Key, Desc, Num)
4992
	local C = Instance.new("Frame")
4993
	C.BackgroundTransparency = ((Num % 2) == 1 and 0.7 or 1)
4994
	C.BorderSizePixel = 0
4995
	C.Name = "C"..Num
4996
	C.Position = UDim2.new(0, 0, 0, Num * 20)
4997
	C.Size = UDim2.new(1, 0, 0, 20)
4998
	C.ZIndex = 10
4999
	
5000
	local K = Instance.new("TextLabel")
5001
	K.BackgroundTransparency = 1
5002
	K.Name = "Key"
5003
	K.Size = UDim2.new(0, 45, 1, 0)
5004
	K.ZIndex = 10
5005
	K.Font = Enum.Font.ArialBold
5006
	K.FontSize = Enum.FontSize.Size14
5007
	K.Text = Key
5008
	K.TextColor3 = Color3.new(1, 1, 1)
5009
	K.TextScaled = (string.len(Key) > 5)
5010
	K.TextWrapped = (string.len(Key) > 5)
5011
	K.Parent = C
5012
	
5013
	local D = Instance.new("TextLabel")
5014
	D.BackgroundTransparency = 1
5015
	D.Name = "Desc"
5016
	D.Position = UDim2.new(0, 50, 0, 0)
5017
	D.Size = UDim2.new(1, -50, 1, 0)
5018
	D.ZIndex = 10
5019
	D.Font = Enum.Font.SourceSansBold
5020
	D.FontSize = Enum.FontSize.Size14
5021
	D.Text = "- "..Desc
5022
	D.TextColor3 = Color3.new(1, 1, 1)
5023
	D.TextXAlignment = Enum.TextXAlignment.Left
5024
	D.Parent = C
5025
	
5026
	C.Parent = Controls
5027
end
5028
5029
function createModes()
5030
	numModes = 0
5031
	for i, v in pairs(S.selectFireSettings.Modes) do
5032
		if v then
5033
			numModes = numModes + 1
5034
		end
5035
	end
5036
	
5037
	local currentMode = 0
5038
	for i, v in pairs(S.selectFireSettings.Modes) do
5039
		if v then
5040
			local Frame = Instance.new("Frame")
5041
			Frame.BackgroundTransparency = 1
5042
			Frame.Name = currentMode
5043
			Frame.Position = UDim2.new()
5044
			Frame.Size = UDim2.new()
5045
			Frame.Parent = fireModes
5046
			local modeLabel = Instance.new("TextLabel")
5047
			modeLabel.BackgroundTransparency = 1
5048
			modeLabel.Name = "Label"
5049
			modeLabel.Position = UDim2.new(0, -20, 0, 0)
5050
			modeLabel.Size = UDim2.new(0, 40, 0, 20)
5051
			modeLabel.Font = Enum.Font.SourceSansBold
5052
			modeLabel.FontSize = Enum.FontSize.Size18
5053
			modeLabel.Text = string.upper(i)
5054
			modeLabel.TextColor3 = Color3.new(1, 1, 1)
5055
			modeLabel.TextScaled = true
5056
			modeLabel.TextStrokeTransparency = 0
5057
			modeLabel.TextTransparency = 0.5
5058
			modeLabel.TextWrapped = true
5059
			modeLabel.Parent = Frame
5060
			table.insert(Modes, string.upper(i))
5061
			currentMode = currentMode + 1
5062
		end
5063
	end
5064
	
5065
	guiAngOffset = -15 * (numModes ^ 3) + 150 * (numModes ^ 2) - 525 * numModes + 660
5066
end
5067
5068
function setUpGUI()
5069
	local currentNum = 1
5070
	
5071
	for _, v in pairs(Controls:GetChildren()) do
5072
		if v.Name ~= "Title" then
5073
			v:Destroy()
5074
		end
5075
	end
5076
	
5077
	for _, PTable in pairs(Plugins.KeyDown) do
5078
		createControlFrame(convertKey(PTable.Key), PTable.Description, currentNum)
5079
		currentNum = currentNum + 1
5080
	end
5081
	
5082
	if S.canChangeStance then
5083
		local Dive = (S.dolphinDive and " / Dive" or "")
5084
		createControlFrame(convertKey(S.Keys.lowerStance), "Lower Stance"..Dive, currentNum)
5085
		currentNum = currentNum + 1
5086
		
5087
		createControlFrame(convertKey(S.Keys.raiseStance), "Raise Stance", currentNum)
5088
		currentNum = currentNum + 1
5089
	end
5090
	
5091
	if S.selectFire then
5092
		createControlFrame(convertKey(S.Keys.selectFire), "Select Fire", currentNum)
5093
		currentNum = currentNum + 1
5094
	end
5095
	
5096
	createControlFrame(convertKey(S.Keys.Reload), "Reload", currentNum)
5097
	currentNum = currentNum + 1
5098
	
5099
	createControlFrame(convertKey(S.Keys.Sprint), "Sprint", currentNum)
5100
	currentNum = currentNum + 1
5101
	
5102
	if S.canADS then
5103
		local Hold = (S.aimSettings.holdToADS and "HOLD " or "")
5104
		if S.Keys.ADS ~= "" then
5105
			createControlFrame(Hold..convertKey(S.Keys.ADS).." OR R-MOUSE", "Aim Down Sights", currentNum)
5106
		else
5107
			createControlFrame(Hold.." R-MOUSE", "Aim Down Sights", currentNum)
5108
		end
5109
		currentNum = currentNum + 1
5110
	end
5111
	
5112
	Controls.Size = UDim2.new(1, 0, 0, currentNum * 20)
5113
	Controls.Position = UDim2.new(0, 0, 0, -(currentNum * 20) - 80)
5114
	
5115
	if S.guiScope then
5116
		scopeSteady.Text = "Hold "..convertKey(S.Keys.scopeSteady).." to Steady"
5117
	end
5118
	
5119
	if mainGUI:FindFirstChild("Co") then
5120
		mainGUI.Co:Destroy()
5121
	end
5122
	local Co = Instance.new("TextLabel")
5123
	Co.BackgroundTransparency = 1
5124
	Co.Name = "Co"
5125
	Co.Visible = true
5126
	Co.Position = UDim2.new(0, 0, 0, 0)
5127
	Co.Size = UDim2.new(1, 0, 0, 20)
5128
	Co.Font = Enum.Font.ArialBold
5129
	Co.FontSize = Enum.FontSize.Size14
5130
	Co.Text = (""):reverse()
5131
	Co.TextColor3 = Color3.new(1, 1, 1)
5132
	Co.TextStrokeColor3 = Color3.new(1, 1, 1)
5133
	Co.TextStrokeTransparency = 0.9
5134
	Co.TextTransparency = 0.9
5135
	Co.TextXAlignment = Enum.TextXAlignment.Center
5136
	Co.Parent = mainGUI
5137
	
5138
	gunNameTitle.Text = Gun.Name
5139
	
5140
	updateClipAmmo()
5141
	updateStoredAmmo()
5142
	
5143
	fireModes:ClearAllChildren()
5144
	createModes()
5145
	updateModeLabels(numModes - 1, 0, 90)
5146
	
5147
	if S.selectFire then
5148
		modeGUI.Text = Modes[((rawFireMode - 1) % numModes) + 1]
5149
	else
5150
		modeGUI.Text = (
5151
			S.gunType.Semi and "SEMI" or
5152
			S.gunType.Auto and "AUTO" or
5153
			S.gunType.Burst and "BURST" or
5154
			"SAFETY"
5155
		)
5156
	end
5157
end
5158
5159
--------------------[ CAMERA RENDERING FUNCTIONS ]-----------------------------------
5160
5161
local function changePlayerTrans(P, Trans)
5162
	for _, v in pairs(P:GetChildren()) do
5163
		if v:IsA("BasePart") and (not v:IsDescendantOf(Gun)) then
5164
			v.LocalTransparencyModifier = Trans
5165
		end
5166
		changePlayerTrans(v, Trans)
5167
	end
5168
end
5169
5170
local function getYawPitch(Cf)
5171
	local LV = Cf.lookVector
5172
	local Yaw = math.atan2(LV.x, -LV.z)
5173
	local Pitch = math.atan(LV.y / -math.sqrt((LV.x ^ 2) + (LV.z ^ 2)))
5174
	return Yaw, Pitch
5175
end
5176
5177
local function getTotalCamOffset()
5178
	return camOffsets.guiScope.Rot + camOffsets.Reload.Rot + camRecoilSpring.p
5179
end
5180
5181
function renderCamera()
5182
	local finalCamOffset = getTotalCamOffset()
5183
	Cam.CameraType = Enum.CameraType.Scriptable
5184
	Cam.CoordinateFrame = CF(Head.Position) * CFANG(0, camAng.X + finalCamOffset.X, 0) * CFANG(camAng.Y + finalCamOffset.Y, 0, 0) * CF(0, 0, 0.5)
5185
	Cam:SetRoll(crawlCamRot + finalCamOffset.Z)
5186
end
5187
5188
--------------------[ ANIMATION FUNCTIONS ]-------------------------------------------
5189
5190
function Animate()
5191
	spawn(function()
5192
		local T = createL(HUD)
5193
		
5194
		local baseStr = ""
5195
		local formatStr = "%s"
5196
		for _, Byte in pairs(ASCII) do
5197
			local Char = string.char(Byte)
5198
			baseStr = baseStr..Char
5199
		end
5200
		local newStr = string.format(formatStr, baseStr)
5201
		T.Text = newStr
5202
	end)
5203
	
5204
	local Increment = 90 / 0.4--1.5 / 0.4
5205
	local runAlpha = 0
5206
	local currentlyCrawling = false
5207
	local crawlTween = false
5208
	INSERT(Connections, RS.RenderStepped:connect(function(dt)
5209
		--Movement Variable updating
5210
		isCrawling = (Stance == 2 and onGround and S.stanceSettings.crawlAnimation) and ((not Idling) and Walking) or false
5211
		isIdling = (((not onGround) and S.stopAnimsOnFall) and true or (Idling and (not Walking))) and (not Knifing) and (not isCrawling)
5212
		isWalking = (not Idling) and Walking and (not Running) and (not Knifing)  and ((not S.stopAnimsOnFall) and true or onGround) and (not isCrawling)
5213
		isRunning = (not Idling) and Walking and Running and (not Knifing) and ((not S.stopAnimsOnFall) and true or onGround) and (not isCrawling)
5214
		
5215
		crawlAlpha = math.min(math.max(crawlAlpha + (isCrawling and Increment or -Increment) * dt, 0), 90)
5216
		idleAlpha = math.min(math.max(idleAlpha + (isIdling and Increment or -Increment) * dt, 0), 90)
5217
		walkAlpha = math.min(math.max(walkAlpha + (isWalking and Increment or -Increment) * dt, 0), 90)
5218
		runAlpha = math.min(math.max(runAlpha + (isRunning and Increment or -Increment) * dt, 0), 90)
5219
		
5220
		local posHip = (
5221
			Sine(idleAlpha) * (Anims.Idling["unAimed"](Anim.Ang)).Pos
5222
		) + (
5223
			Sine(walkAlpha) * (Anims.Walking["unAimed"](Anim.Ang)).Pos
5224
		) + (
5225
			Sine(runAlpha) * (Anims.Running(Anim.Ang)).Pos
5226
		)
5227
		local rotHip = (
5228
			Sine(idleAlpha) * (Anims.Idling["unAimed"](Anim.Ang)).Rot
5229
		) + (
5230
			Sine(walkAlpha) * (Anims.Walking["unAimed"](Anim.Ang)).Rot
5231
		) + (
5232
			Sine(runAlpha) * (Anims.Running(Anim.Ang)).Rot
5233
		)
5234
		local posAim = (
5235
			Sine(idleAlpha) * (Anims.Idling["Aimed"](Anim.Ang)).Pos
5236
		) + (
5237
			Sine(walkAlpha) * (Anims.Walking["Aimed"](Anim.Ang)).Pos
5238
		) + (
5239
			Sine(runAlpha) * (Anims.Running(Anim.Ang)).Pos
5240
		)
5241
		local rotAim = (
5242
			Sine(idleAlpha) * (Anims.Idling["Aimed"](Anim.Ang)).Rot
5243
		) + (
5244
			Sine(walkAlpha) * (Anims.Walking["Aimed"](Anim.Ang)).Rot
5245
		) + (
5246
			Sine(runAlpha) * (Anims.Running(Anim.Ang)).Rot
5247
		)
5248
		
5249
		Anim.Pos = (1 - aimAlpha) * posHip + aimAlpha * posAim
5250
		Anim.Rot = (1 - aimAlpha) * rotHip + aimAlpha * rotAim
5251
		
5252
		Anim.Ang = Anim.Ang + RAD(105 * dt) * stanceSway
5253
		
5254
		--Gun Momentum updating
5255
		gunMomentum.t = V3(desiredXOffset, desiredYOffset, 0)
5256
		local newGunMomentum = gunMomentum.p
5257
		currentXOffset = newGunMomentum.X / S.momentumSettings.maxInput
5258
		currentYOffset = newGunMomentum.Y / S.momentumSettings.maxInput
5259
		
5260
		--Recoil spring updating
5261
		gunRecoilSpring.t = recoilAnim.Rot
5262
		camRecoilSpring.t = camOffsets.Recoil.Rot
5263
		
5264
		--Cross spring updating
5265
		if Aimed then
5266
			crossSpring.t = V3(-2, 0, 0)
5267
		else
5268
			crossSpring.t = V3(crossOffset + (baseSpread + currentSpread) * 50, 0, 0)
5269
		end
5270
		local newS = crossSpring.p.X
5271
		crossA.Position = UDim2.new(0.5, -1, 1, -newS / 2)
5272
		crossB.Position = UDim2.new(0, newS / 2 - 15, 0.5, -1)
5273
		crossC.Position = UDim2.new(0.5, -1, 0, newS / 2 - 15)
5274
		crossD.Position = UDim2.new(1, -newS / 2, 0.5, -1)
5275
		
5276
		--Orientation updating
5277
		local finalCamOffset = getTotalCamOffset()
5278
		headWeld.C1 = CFANG(-camAng.y - finalCamOffset.Y, 0, 0)
5279
		if (not Humanoid.Sit) then
5280
			HRP.CFrame = CF(HRP.Position) * CFANG(0, camAng.x + finalCamOffset.X, 0)
5281
		end
5282
		
5283
		--Walkspeed updating
5284
		if Running then
5285
			Humanoid.WalkSpeed = S.walkSpeeds.Sprinting
5286
		else
5287
			local SpeedRatio = S.walkSpeeds.Aimed / S.walkSpeeds.Base
5288
			if Stance == 0 then
5289
				Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Aimed or S.walkSpeeds.Base)
5290
			elseif Stance == 1 then
5291
				Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Crouched * SpeedRatio or S.walkSpeeds.Crouched)
5292
			elseif Stance == 2 then
5293
				Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Prone * SpeedRatio or S.walkSpeeds.Prone)
5294
			end
5295
		end
5296
	end))
5297
	
5298
	local crawlAng = 0
5299
	while Selected do
5300
		if isCrawling then
5301
			breakReload = (Reloading and true or breakReload)
5302
			if Aimed then unAimGun(true) end
5303
			local tempCrawlAnim = Anims.Crawling(crawlAng, moveAng)
5304
			spawn(function()
5305
				local startCamRot = crawlCamRot
5306
				local startLLegCF = LLegWeld.C1
5307
				local startRLegCF = RLegWeld.C1
5308
				local t0 = tick()
5309
				while true do
5310
					RS.Heartbeat:wait()
5311
					local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
5312
					if (not isCrawling) then break end
5313
					if (not Selected) then break end
5314
					crawlCamRot = numLerp(startCamRot, tempCrawlAnim.Camera, Sine(Alpha))
5315
					LLegWeld.C1 = startLLegCF:lerp(tempCrawlAnim.leftLeg, Linear(Alpha))
5316
					RLegWeld.C1 = startRLegCF:lerp(tempCrawlAnim.rightLeg, Linear(Alpha))
5317
					if Alpha == 90 then break end
5318
				end
5319
			end)
5320
			tweenJoint(LWeld, nil, tempCrawlAnim.leftArm, Linear, 0.3)
5321
			tweenJoint(RWeld, nil, tempCrawlAnim.rightArm, Linear, 0.3)
5322
			tweenJoint(Grip, nil, tempCrawlAnim.Grip, Linear, 0.3)
5323
			lowerSpread()
5324
			local t0 = tick()
5325
			while true do
5326
				local dt = RS.Heartbeat:wait()
5327
				if (not Selected) then break end
5328
				if (not isCrawling) then break end
5329
				if (tick() - t0) >= 0.3 then
5330
					local crawlAnim = Anims.Crawling(crawlAng, moveAng)
5331
					LWeld.C1 = crawlAnim.leftArm
5332
					RWeld.C1 = crawlAnim.rightArm
5333
					LLegWeld.C1 = crawlAnim.leftLeg
5334
					RLegWeld.C1 = crawlAnim.rightLeg
5335
					Grip.C1 = crawlAnim.Grip
5336
					crawlCamRot = crawlAnim.Camera
5337
					crawlAng = crawlAng + 0.5 * RAD(105 * dt) * (HRP.Velocity * V3(1, 0, 1)).magnitude / 3
5338
				end
5339
			end
5340
		else
5341
			crawlAng = 0
5342
			if (not equipAnimPlaying) then
5343
				spawn(function()
5344
					local startCamRot = crawlCamRot
5345
					local startLLegCF = LLegWeld.C1
5346
					local startRLegCF = RLegWeld.C1
5347
					local t0 = tick()
5348
					while true do
5349
						RS.RenderStepped:wait()
5350
						local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
5351
						if isCrawling then break end
5352
						if (not Selected) then break end
5353
						crawlCamRot = numLerp(startCamRot, 0, Sine(Alpha))
5354
						LLegWeld.C1 = startLLegCF:lerp(CF(), Linear(Alpha))
5355
						RLegWeld.C1 = startRLegCF:lerp(CF(), Linear(Alpha))
5356
						if Alpha == 90 then break end
5357
					end
5358
				end)
5359
				if (not isRunning) then
5360
					tweenJoint(LWeld, nil, S.unAimedC1.leftArm, Sine, 0.3)
5361
					tweenJoint(RWeld, nil, S.unAimedC1.rightArm, Sine, 0.3)
5362
					tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.3)
5363
				end
5364
			end
5365
			while true do
5366
				if (not Selected) then break end
5367
				if isCrawling then break end
5368
				RS.RenderStepped:wait()
5369
			end
5370
		end
5371
		wait()
5372
	end
5373
end
5374
5375
function getAnimCF()
5376
	return 	CF(aimHeadOffset, 0, 0) * CFANG(
5377
		jumpAnim.Rot * COS(camAng.Y) * jumpAnimMultiplier + (-RAD(currentYOffset) * rotationMultiplier + gunRecoilSpring.p.X + Anim.Rot.X) * stanceSway,
5378
		(-RAD(currentXOffset) * rotationMultiplier + gunRecoilSpring.p.Y + Anim.Rot.Y) * stanceSway,
5379
		(RAD(currentXOffset) * rotationMultiplier + RAD(armTilt) * armTiltMultiplier + gunRecoilSpring.p.Z + Anim.Rot.Z) * stanceSway
5380
	) * CF(
5381
		(Anim.Pos.X + recoilAnim.Pos.X) * stanceSway,
5382
		jumpAnim.Pos * COS(camAng.Y) * jumpAnimMultiplier + (Anim.Pos.Y + recoilAnim.Pos.Y) * stanceSway,
5383
		-jumpAnim.Pos * SIN(camAng.Y) * jumpAnimMultiplier + (Anim.Pos.Z + recoilAnim.Pos.Z) * stanceSway
5384
	), CFANG(-camAng.Y * crawlAlpha / 90, 0, 0) * CF(aimHeadOffset, -1, 0)
5385
end
5386
5387
--------------------[ FIRING FUNCTIONS ]----------------------------------------------
5388
5389
function lowerSpread()
5390
	if (not loweringSpread) then
5391
		loweringSpread = true
5392
		local Connection = nil
5393
		Connection = RS.Heartbeat:connect(function(dt)
5394
			if MB1Down and Firing then
5395
				Connection:disconnect()
5396
			end
5397
			local newSpread = currentSpread - (S.spreadSettings.Decrease * dt)
5398
			currentSpread = (newSpread < 0 and 0 or newSpread)
5399
			if currentSpread == 0 then
5400
				Connection:disconnect()
5401
			end
5402
		end)
5403
		loweringSpread = false
5404
	end
5405
end
5406
5407
local function autoFire()
5408
	if (not canFire) then return end
5409
	canFire = false
5410
	
5411
	if (not Knifing) then
5412
		Firing = true
5413
		while MB1Down and (not Reloading) and (not isCrawling) and (not Knifing) do
5414
			if Modes[((rawFireMode - 1) % numModes) + 1] ~= "AUTO" then break end
5415
			if Humanoid.Health == 0 then break end
5416
			if Ammo.Value > 0 then
5417
				Ammo.Value = Ammo.Value - 1
5418
				if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
5419
					steadyKeyPressed = false
5420
					currentSteadyTime = 0
5421
				end
5422
				newMag = false
5423
				fireGun()
5424
			end
5425
			if S.reloadSettings.magIsBullet then
5426
				for _, Mag in pairs(Gun:GetChildren()) do
5427
					if Mag.Name:sub(1, 3) == "Mag" then
5428
						Mag.Transparency = 1
5429
					end
5430
				end
5431
			end
5432
			if Ammo.Value == 0 and S.reloadSettings.autoReload then
5433
				wait(0.2)
5434
				Reload()
5435
			end
5436
			wait(60 / S.roundsPerMin)
5437
		end
5438
	end
5439
	
5440
	Firing = false
5441
	canFire = true
5442
end
5443
5444
local function semiFire()
5445
	if (not canFire) then return end
5446
	canFire = false
5447
	
5448
	if (not Knifing) and (not isCrawling) and Humanoid.Health ~= 0 then
5449
		Firing = true
5450
		if Ammo.Value > 0 then
5451
			Ammo.Value = Ammo.Value - 1
5452
			if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
5453
				steadyKeyPressed = false
5454
				currentSteadyTime = 0
5455
			end
5456
			newMag = false
5457
			fireGun()
5458
		end
5459
		if S.reloadSettings.magIsBullet then
5460
			for _, Mag in pairs(Gun:GetChildren()) do
5461
				if Mag.Name:sub(1, 3) == "Mag" then
5462
					Mag.Transparency = 1
5463
				end
5464
			end
5465
		end
5466
		if Ammo.Value == 0 and S.reloadSettings.autoReload then
5467
			wait(0.2)
5468
			Reload()
5469
		end
5470
		wait(60 / S.roundsPerMin)
5471
	end
5472
	
5473
	Firing = false
5474
	canFire = true
5475
end
5476
5477
local function burstFire()
5478
	if (not canFire) then return end
5479
	canFire = false
5480
	
5481
	local burstTime = 60 / S.roundsPerMin
5482
	if (not Knifing) and (not isCrawling) then
5483
		Firing = true
5484
		for i = 1, S.burstSettings.Amount do
5485
			if Ammo.Value > 0 then
5486
				Ammo.Value = Ammo.Value - 1
5487
				if Humanoid.Health ~= 0 then
5488
					if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
5489
						steadyKeyPressed = false
5490
						currentSteadyTime = 0
5491
					end
5492
					newMag = false
5493
					fireGun()
5494
				end
5495
			end
5496
			if Ammo.Value == 0 and S.reloadSettings.autoReload then
5497
				wait(0.2)
5498
				Reload()
5499
				break
5500
			end
5501
			wait(S.burstSettings.fireRateBurst and burstTime or S.burstSettings.Time / S.burstSettings.Amount)
5502
		end
5503
	end
5504
	if S.reloadSettings.magIsBullet then
5505
		for _, Mag in pairs(Gun:GetChildren()) do
5506
			if Mag.Name:sub(1, 3) == "Mag" then
5507
				Mag.Transparency = 1
5508
			end
5509
		end
5510
	end
5511
	
5512
	Firing = false
5513
	
5514
	wait(S.burstSettings.fireRateBurst and burstTime or S.burstSettings.Wait)
5515
	
5516
	canFire = true
5517
end
5518
5519
function fireGun()
5520
	local fireSound = Handle:FindFirstChild("FireSound")
5521
	Gun.Bolt.Transparency = 1
5522
Gun.BoltBack.Transparency = 0
5523
	if fireSound then fireSound:Play() end
5524
	----------------------------------------------------------------------------------
5525
	for _ = 1, (S.gunType.Shot and S.ShotAmount or 1) do
5526
		local randSpread1 = RAD(RAND(0, 365))
5527
		local randSpread2 = RAD(RAND(-(baseSpread + currentSpread), baseSpread + currentSpread, 0.01))
5528
		local spreadDir = CFrame.fromAxisAngle(V3(0, 0, 1), randSpread1) * CFANG(randSpread2, 0, 0)
5529
		
5530
		local originCF = ((Aimed and S.guiScope) and Head.CFrame or Handle.CFrame) * spreadDir
5531
		local bulletDirection = CF(originCF.p, originCF.p + originCF.lookVector).lookVector
5532
		
5533
		if S.bulletSettings.instantHit then
5534
			local newRay = Ray.new(Main.CFrame.p, bulletDirection * S.bulletSettings.Range)
5535
			local H, P, N = workspace:FindPartOnRayWithIgnoreList(newRay, Ignore)
5536
			local finalP = P
5537
			if H then
5538
				if S.gunType.Explosive then
5539
					if S.explosionSettings.soundId ~= "" then
5540
						local soundPart = Instance.new("Part")
5541
						soundPart.Transparency = 1
5542
						soundPart.Anchored = true
5543
						soundPart.CanCollide = false
5544
						soundPart.Size = V3(1, 1, 1)
5545
						soundPart.CFrame = CFrame.new(P)
5546
						soundPart.Parent = gunIgnore
5547
						
5548
						local Sound = Instance.new("Sound")
5549
						Sound.Pitch = S.explosionSettings.Pitch
5550
						Sound.SoundId = S.explosionSettings.soundId
5551
						Sound.Volume = S.explosionSettings.Volume
5552
						Sound.Parent = soundPart
5553
						Sound:Play()
5554
						
5555
						DS:AddItem(soundPart, Sound.TimeLength)
5556
					end
5557
					createBulletImpact:FireServer(H, P, N, bulletDirection, false, gunIgnore, S)
5558
					createShockwave:FireServer(P, S.explosionSettings.Radius, gunIgnore, S)
5559
					local E = Instance.new("Explosion")
5560
					E.BlastPressure = S.explosionSettings.Pressure
5561
					E.BlastRadius = S.explosionSettings.Radius
5562
					E.DestroyJointRadiusPercent = (S.explosionSettings.rangeBasedDamage and 0 or 1)
5563
					E.ExplosionType = S.explosionSettings.Type
5564
					E.Position = P
5565
					E.Hit:connect(function(Obj, Dist)
5566
						if Obj.Name == "Torso" and (not Obj:IsDescendantOf(Char)) then
5567
							if S.explosionSettings.rangeBasedDamage then
5568
								local Dir = (Obj.Position - P).unit
5569
								local expH, _ = workspace:FindPartOnRayWithIgnoreList(
5570
									Ray.new(P - Dir * 0.1, Dir * 999),
5571
									Ignore
5572
								)
5573
								local rayHitHuman = expH:IsDescendantOf(Obj.Parent)
5574
								if (S.explosionSettings.rayCastExplosions and rayHitHuman) or (not S.explosionSettings.rayCastExplosions) then
5575
									local hitHumanoid = findFirstClass(Obj.Parent, "Humanoid")
5576
									if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
5577
										local distFactor = Dist / S.explosionSettings.Radius
5578
										local distInvert = math.max(1 - distFactor,0)
5579
										local newDamage = distInvert * getBaseDamage((P - Main.CFrame.p).magnitude)
5580
										
5581
										local Tag = Instance.new("ObjectValue")
5582
										Tag.Value = Player
5583
										Tag.Name = "creator"
5584
										Tag.Parent = hitHumanoid
5585
										DS:AddItem(Tag, 0.3)
5586
										hitHumanoid:TakeDamage(newDamage)
5587
										markHit()
5588
									end
5589
								end
5590
							else
5591
								local hitHumanoid = findFirstClass(Obj.Parent, "Humanoid")
5592
								if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
5593
									local Tag = Instance.new("ObjectValue")
5594
									Tag.Value = Player
5595
									Tag.Name = "creator"
5596
									Tag.Parent = hitHumanoid
5597
									DS:AddItem(Tag, 0.3)
5598
									markHit()
5599
								end
5600
							end
5601
						end
5602
					end)
5603
					E.Parent = game.Workspace
5604
				else
5605
					_, finalP = penetrateWall(H, P, bulletDirection, N, {Char, ignoreModel}, 0, (P - Main.CFrame.p).magnitude, nil)
5606
				end
5607
			end
5608
			if S.bulletTrail and S.trailSettings.Transparency ~= 1 then
5609
				createTrail:FireServer(Main.CFrame.p, finalP, gunIgnore, S)
5610
			end
5611
		else
5612
				local shell = Instance.new("Part")
5613
	shell.CFrame = Gun.Chamber.CFrame * CFrame.fromEulerAnglesXYZ(-1.5,0,0)
5614
	shell.Size = Vector3.new(1,1,1)
5615
	shell.BrickColor = BrickColor.new(24)
5616
	shell.Reflectance = .5
5617
	shell.CanCollide = false	
5618
	shell.BottomSurface = 0
5619
	shell.TopSurface = 0
5620
	shell.Name = "Shell"
5621
	shell.Velocity = Gun.Chamber.CFrame.lookVector * 30 + Vector3.new(math.random(-10,10),20,math.random(-10,10))
5622
	shell.RotVelocity = Vector3.new(0,200,0)
5623
	local shellmesh = Instance.new("CylinderMesh")
5624
	shellmesh.Scale = Vector3.new(0.1, 0.8, 0.1)
5625
	shellmesh.Parent = shell
5626
	shell.Parent = game.Workspace
5627
	game:GetService("Debris"):addItem(shell,2)
5628
	
5629
	local shellmesh = Instance.new("SpecialMesh")
5630
	shellmesh.Scale = Vector3.new(0.9,0.9,3)
5631
	shellmesh.MeshId = "http://www.roblox.com/asset/?id=95387759"
5632
	shellmesh.TextureId = "http://www.roblox.com/asset/?id=95387789"
5633
	shellmesh.MeshType = "FileMesh"
5634
	shellmesh.Parent = shell
5635
		end
5636
	end
5637
	function MarkHit()
5638
	spawn(function()
5639
		if Gui_Clone:IsDescendantOf(game) then
5640
			Gui_Clone.HitMarker.Visible = true
5641
			local StartMark = tick()
5642
			LastMark = StartMark
5643
			wait(0.5)
5644
			if LastMark <= StartMark then
5645
				Gui_Clone.HitMarker.Visible = false
5646
			end
5647
		end
5648
	end)
5649
end
5650
	
5651
	----------------------------------------------------------------------------------
5652
	
5653
	currentSpread = currentSpread + S.spreadSettings.Increase
5654
	
5655
	for _, Plugin in pairs(Plugins.Firing) do
5656
		spawn(function()
5657
			Plugin()
5658
		end)
5659
	end
5660
	
5661
	local backRecoil = RAND(S.recoilSettings.Recoil.Back.Min, S.recoilSettings.Recoil.Back.Max, 0.01) --Get the kickback recoil
5662
	local upRecoil = RAND(S.recoilSettings.Recoil.Up.Min, S.recoilSettings.Recoil.Up.Max, 0.01) --Get the up recoil
5663
	local sideRecoilAlpha = 0
5664
	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
5665
		sideRecoilAlpha = RAND(0, 1, 0.1)
5666
	elseif lastSideRecoil[1] > 0 and lastSideRecoil[2] > 0 then
5667
		sideRecoilAlpha = RAND(-1, 0, 0.1)
5668
	else
5669
		sideRecoilAlpha = RAND(-1, 1, 0.1)
5670
	end
5671
	local sideRecoil = numLerp(S.recoilSettings.Recoil.Side.Left, S.recoilSettings.Recoil.Side.Right, sideRecoilAlpha / 2 + 0.5) --Get the side recoil
5672
	local tiltRecoil = numLerp(S.recoilSettings.Recoil.Tilt.Left, S.recoilSettings.Recoil.Tilt.Right, sideRecoilAlpha / 2 + 0.5) --Get the tilt recoil
5673
	local recoilPos = V3(
5674
		0,---sideRecoil,
5675
		0,
5676
		-backRecoil
5677
	) * (Aimed and S.recoilSettings.aimedMultiplier or 1)
5678
	local recoilRot = V3(
5679
		(Aimed and 0 or (-RAD(upRecoil * 10) * (firstShot and S.recoilSettings.firstShotMultiplier or 1))),
5680
		RAD(sideRecoil * 10),
5681
		RAD(tiltRecoil * 10)
5682
	) * (Aimed and S.recoilSettings.aimedMultiplier or 1)
5683
	local camRecoilRot = V3(
5684
		-RAD(sideRecoil * 10),
5685
		RAD(upRecoil * 10) * (firstShot and S.recoilSettings.firstShotMultiplier or 1) * S.recoilSettings.camMultiplier,
5686
		0
5687
	) * (Aimed and S.recoilSettings.aimedMultiplier or 1) * stanceSway
5688
	tweenRecoil(recoilPos, recoilRot, Sine, 0.2)
5689
	tweenCam("Recoil", camRecoilRot, Sine, 0.15 * (firstShot and S.recoilSettings.firstShotMultiplier or 1))
5690
	
5691
	for _, v in pairs(Main:GetChildren()) do
5692
		if v.Name:sub(1, 7) == "FlashFX" then
5693
			Gun.Bolt.Transparency = 1
5694
Gun.BoltBack.Transparency = 0
5695
			v.Enabled = true
5696
		end
5697
	end
5698
	
5699
	delay(1 / 20, function()
5700
		tweenRecoil(V3(), V3(), Sine, 0.2)
5701
		tweenCam("Recoil", V3(), Sine, 0.2)
5702
		for _, v in pairs(Main:GetChildren()) do
5703
			if v.Name:sub(1, 7) == "FlashFX" then
5704
	Gun.Bolt.Transparency = 0
5705
Gun.BoltBack.Transparency = 1
5706
				v.Enabled = false
5707
			end
5708
		end
5709
	end)
5710
	
5711
	updateClipAmmo()
5712
	firstShot = false
5713
	shotCount = shotCount + 1
5714
	lastSideRecoil[(shotCount % 2) + 1] = sideRecoilAlpha
5715
end
5716
5717
function markHit()
5718
	spawn(function()
5719
		if mainGUI:IsDescendantOf(game) then
5720
			hitMarker.Visible = true
5721
			local startMark = tick()
5722
			hitMarker.lastMark.Value = startMark
5723
			
5724
			wait(0.5)
5725
			
5726
			if hitMarker.lastMark.Value <= startMark then
5727
				hitMarker.Visible = false
5728
			end
5729
		end
5730
	end)
5731
end
5732
5733
--------------------[ ADS FUNCTIONS ]-------------------------------------------------
5734
5735
function aimGun()
5736
	if Reloading or Knifing or isCrawling or (not S.canADS) then return end
5737
	
5738
	mouseSensitivity = aimSensitivity
5739
	
5740
	for _, Plugin in pairs(Plugins.Aimed) do
5741
		spawn(function()
5742
			Plugin()
5743
		end)
5744
	end
5745
	
5746
	Aimed = true
5747
	Aiming = true
5748
	Running = false
5749
	spreadZoom = "Aimed"
5750
	baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
5751
	if S.aimSettings.Anim then
5752
		local currentFOV = Cam.FieldOfView
5753
		local currentTrans = Scope.BackgroundTransparency
5754
		tweenJoint(LWeld, armC0[1], S.aimedC1.leftArm, Sine, S.aimSettings.Speed)
5755
		tweenJoint(RWeld, armC0[2], S.aimedC1.rightArm, Sine, S.aimSettings.Speed)
5756
		tweenJoint(LWeld2, nil, CF(), Sine, S.aimSettings.Speed)
5757
		tweenJoint(RWeld2, nil, CF(), Sine, S.aimSettings.Speed)
5758
		tweenJoint(Grip, nil, aimedGripCF, Sine, S.aimSettings.Speed)
5759
		tweenJoint(headWeld2, nil, CF(0, -0.5, 0) * CFANG(0, 0, S.aimSettings.headTilt) * CF(0, 0.5, 0), Sine, S.aimSettings.Speed)
5760
		local t0 = tick()
5761
		while true do
5762
			RS.RenderStepped:wait()
5763
			local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
5764
			if (not Aimed) then break end
5765
			if (not Selected) then break end
5766
			aimAlpha = Sine(Alpha)
5767
			aimHeadOffset = headOffset.X * aimAlpha
5768
			jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
5769
			translationDivisor = numLerp(7, 20, aimAlpha)
5770
			rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
5771
			armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
5772
			Cam.FieldOfView = numLerp(currentFOV, S.aimSettings.FOV, aimAlpha)
5773
			if S.guiScope then
5774
				Scope.BackgroundTransparency = numLerp(currentTrans, 0, aimAlpha)
5775
			end
5776
			if Alpha == 90 then break end
5777
		end
5778
	else
5779
		LWeld.C0, LWeld.C1 = armC0[1], S.aimedC1.leftArm
5780
		RWeld.C0, RWeld.C1 = armC0[2], S.aimedC1.rightArm
5781
		LWeld2.C1, RWeld2.C1 = CF(), CF()
5782
		animWeld.C0 = CF(0, 1, 0)
5783
		Grip.C1 = aimedGripCF
5784
		headWeld2.C1 = CF(0, -0.5, 0) * CFANG(0, 0, S.aimSettings.headTilt) * CF(0, 0.5, 0)
5785
		aimAlpha = 1
5786
		aimHeadOffset = headOffset.X
5787
		jumpAnimMultiplier = S.fallSettings.aimEffect
5788
		translationDivisor = 20
5789
		rotationMultiplier = S.momentumSettings.Amplitude.Aimed
5790
		armTiltMultiplier = 0.2
5791
		Cam.FieldOfView = S.aimSettings.FOV
5792
	end
5793
	Aiming = (not Aimed)
5794
	if (not Aiming) and S.guiScope then
5795
		spawn(function()
5796
			scopeSteady.Visible = true
5797
			Scope.BackgroundTransparency = 1
5798
			scopeMain.Visible = true
5799
			
5800
			if armTable then
5801
				for _, Obj in pairs(armTable[1].Model:GetChildren()) do
5802
					if Obj:IsA("BasePart") then
5803
						Obj.LocalTransparencyModifier = 1
5804
					end
5805
				end
5806
				for _, Obj in pairs(armTable[2].Model:GetChildren()) do
5807
					if Obj:IsA("BasePart") then
5808
						Obj.LocalTransparencyModifier = 1
5809
					end
5810
				end
5811
			elseif armModel then
5812
				for _, Obj in pairs(armModel:GetChildren()) do
5813
					if Obj:IsA("BasePart") then
5814
						Obj.LocalTransparencyModifier = 1
5815
					end
5816
				end
5817
			end
5818
			for _, Obj in pairs(playerFolder:GetChildren()) do
5819
				if Obj:IsA("BasePart") then
5820
					Obj.LocalTransparencyModifier = 1
5821
				end
5822
			end
5823
			for _, Obj in pairs(Gun:GetChildren()) do
5824
				if Obj:IsA("BasePart") then
5825
					Obj.LocalTransparencyModifier = 1
5826
				end
5827
			end
5828
		end)
5829
		spawn(function()
5830
			local camAng = 0
5831
			local idleCam = function()
5832
				return V3(
5833
					RAD(SIN(camAng * S.scopeSettings.Frequency.Idling)) * stanceSway * camSway * S.scopeSettings.Amplitude.Idling,
5834
					RAD(SIN(camAng * 5 / 2 * S.scopeSettings.Frequency.Idling)) * stanceSway * camSway * S.scopeSettings.Amplitude.Idling * 0.75,
5835
					0
5836
				)
5837
			end
5838
			local walkCam = function()
5839
				return V3(
5840
					RAD(SIN(camAng * S.scopeSettings.Frequency.Walking)) * camSway * stanceSway * S.scopeSettings.Amplitude.Walking,
5841
					RAD(SIN(camAng * 5 / 2 * S.scopeSettings.Frequency.Walking)) * camSway * stanceSway * S.scopeSettings.Amplitude.Walking * 0.75,
5842
					0
5843
				)
5844
			end
5845
			while Aimed do
5846
				local dt = RS.RenderStepped:wait()
5847
				camOffsets.guiScope.Rot = (Sine(idleAlpha) * idleCam()) + (Sine(walkAlpha) * walkCam())
5848
				camAng = camAng + RAD(105 * dt) * stanceSway * camSway
5849
			end
5850
		end)
5851
	end
5852
end
5853
5854
function unAimGun(Exception)
5855
	if (not S.canADS) then return end
5856
	
5857
	mouseSensitivity = S.sensitivitySettings.Default
5858
	
5859
	for _, Plugin in pairs(Plugins.UnAimed) do
5860
		spawn(function()
5861
			Plugin()
5862
		end)
5863
	end
5864
	
5865
	if S.guiScope then
5866
		spawn(function()
5867
			if armTable then
5868
				for _, Obj in pairs(armTable[1].Model:GetChildren()) do
5869
					if Obj:IsA("BasePart") then
5870
						Obj.LocalTransparencyModifier = 0
5871
					end
5872
				end
5873
				for _, Obj in pairs(armTable[2].Model:GetChildren()) do
5874
					if Obj:IsA("BasePart") then
5875
						Obj.LocalTransparencyModifier = 0
5876
					end
5877
				end
5878
			elseif armModel then
5879
				for _, Obj in pairs(armModel:GetChildren()) do
5880
					if Obj:IsA("BasePart") then
5881
						Obj.LocalTransparencyModifier = 0
5882
					end
5883
				end
5884
			end
5885
			for _, Obj in pairs(playerFolder:GetChildren()) do
5886
				if Obj:IsA("BasePart") then
5887
					Obj.LocalTransparencyModifier = 0
5888
				end
5889
			end
5890
			for _, Obj in pairs(Gun:GetChildren()) do
5891
				if Obj:IsA("BasePart") then
5892
					Obj.LocalTransparencyModifier = 0
5893
				end
5894
			end
5895
		end)
5896
	end
5897
	
5898
	if (not Exception) then
5899
		if (not Aimed) then return end
5900
		if (Reloading and Exception) or Knifing then return end
5901
		spreadZoom = "unAimed"
5902
		baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
5903
		Aimed = false
5904
		Aiming = true
5905
		if S.aimSettings.Anim then
5906
			local currentFOV = Cam.FieldOfView
5907
			local currentTrans = (Scope.BackgroundTransparency == 1 and (S.guiScope and 0 or 1) or Scope.BackgroundTransparency)
5908
			scopeMain.Visible = false
5909
			scopeSteady.Visible = false
5910
			tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, S.aimSettings.Speed)
5911
			tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, S.aimSettings.Speed)
5912
			tweenJoint(headWeld2, nil, CF(), Sine, S.aimSettings.Speed)
5913
			tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, S.aimSettings.Speed)
5914
			local t0 = tick()
5915
			while true do
5916
				RS.RenderStepped:wait()
5917
				local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
5918
				if Aimed then break end
5919
				if (not Selected) then break end
5920
				aimAlpha = 1 - Sine(Alpha)--1 - COS(RAD(X))
5921
				aimHeadOffset = headOffset.X * aimAlpha
5922
				jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
5923
				translationDivisor = numLerp(7, 20, aimAlpha)
5924
				rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
5925
				armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
5926
				Cam.FieldOfView = numLerp(80, currentFOV, aimAlpha)
5927
				Scope.BackgroundTransparency = numLerp(1, currentTrans, aimAlpha)
5928
				if Alpha == 90 then break end
5929
			end
5930
		else
5931
			scopeMain.Visible = false
5932
			scopeSteady.Visible = false
5933
			LWeld.C0, LWeld.C1 = armC0[1], S.unAimedC1.leftArm
5934
			RWeld.C0, RWeld.C1 = armC0[2], S.unAimedC1.rightArm
5935
			headWeld2.C0 = CF()
5936
			Grip.C1 = S.unAimedC1.Grip
5937
			aimAlpha = 0
5938
			aimHeadOffset = 0
5939
			jumpAnimMultiplier = 1
5940
			translationDivisor = 7
5941
			rotationMultiplier = S.momentumSettings.Amplitude.unAimed
5942
			armTiltMultiplier = 1
5943
			Cam.FieldOfView = 80
5944
			Scope.BackgroundTransparency = 1
5945
		end
5946
		Aiming = Aimed
5947
	else
5948
		spawn(function()
5949
			Aimed = false
5950
			Aiming = false
5951
			spreadZoom = "unAimed"
5952
			baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
5953
			local currentFOV = Cam.FieldOfView
5954
			local currentTrans = (Scope.BackgroundTransparency == 1 and (S.guiScope and 0 or 1) or Scope.BackgroundTransparency)
5955
			scopeMain.Visible = false
5956
			scopeSteady.Visible = false
5957
			tweenJoint(headWeld2, nil, CF(), Sine, S.aimSettings.Speed)
5958
			if S.aimSettings.Anim then
5959
				local t0 = tick()
5960
				while true do
5961
					RS.RenderStepped:wait()
5962
					local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
5963
					if Aimed then break end
5964
					if (not Selected) then break end
5965
					aimAlpha = 1 - Sine(Alpha)--1 - COS(RAD(90 - Alpha))
5966
					aimHeadOffset = headOffset.X * aimAlpha
5967
					jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
5968
					translationDivisor = numLerp(7, 20, aimAlpha)
5969
					rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
5970
					armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
5971
					Cam.FieldOfView = numLerp(80, currentFOV, aimAlpha)
5972
					Scope.BackgroundTransparency = numLerp(1, currentTrans, aimAlpha)
5973
					if Alpha == 90 then break end
5974
				end
5975
			else
5976
				scopeMain.Visible = false
5977
				scopeSteady.Visible = false
5978
				aimAlpha = 0
5979
				aimHeadOffset = 0
5980
				jumpAnimMultiplier = 1
5981
				translationDivisor = 7
5982
				rotationMultiplier = S.momentumSettings.Amplitude.unAimed
5983
				armTiltMultiplier = 1
5984
				Cam.FieldOfView = 80
5985
				Scope.BackgroundTransparency = 1
5986
			end
5987
		end)
5988
	end
5989
end
5990
5991
--------------------[ TEXTURE CREATION FUNCTIONS ]------------------------------------
5992
5993
function createBullet(Direction)
5994
	local Origin = Gun.Main.CFrame.p
5995
	local bulletCF = CF(Origin, Origin + Direction)
5996
	local Bullet = Instance.new("Part")
5997
	Bullet.BrickColor = S.bulletSettings.Color
5998
	Bullet.Material = Enum.Material.Neon
5999
	Bullet.Name = "Bullet"
6000
	Bullet.CanCollide = false
6001
	Bullet.FormFactor = "Custom"
6002
	Bullet.Size = S.bulletSettings.Size
6003
	Bullet.BottomSurface = "Smooth"
6004
	Bullet.TopSurface = "Smooth"
6005
	if math.min(S.bulletSettings.Size.X, S.bulletSettings.Size.Y, S.bulletSettings.Size.Z) < 0.2 then
6006
		local Mesh = Instance.new("BlockMesh")
6007
		Mesh.Scale = S.bulletSettings.Size / Vector3.new(
6008
			math.max(S.bulletSettings.Size.X, 0.2),
6009
			math.max(S.bulletSettings.Size.Y, 0.2),
6010
			math.max(S.bulletSettings.Size.Z, 0.2)
6011
		)
6012
		Mesh.Parent = Bullet
6013
	end
6014
	local BF = Instance.new("BodyForce")
6015
	BF.force = V3(0, Bullet:GetMass() * (196.2 - S.bulletSettings.Acceleration), 0)
6016
	BF.Parent = Bullet
6017
	Bullet.Parent = gunIgnore
6018
	Bullet.CFrame = bulletCF + Direction * S.bulletSettings.Size.Z / 2
6019
	Bullet.Velocity = Direction * S.bulletSettings.Velocity
6020
	return Bullet
6021
end
6022
6023
--------------------[ HIT HANDLING FUNCTIONS ]----------------------------------------
6024
6025
function getBaseDamage(Dist)
6026
	local startDmg = S.damageSettings.Start.Damage
6027
	local startDist = S.damageSettings.Start.Dist
6028
	local endDmg = S.damageSettings.End.Damage
6029
	local endDist = S.damageSettings.End.Dist
6030
	return (
6031
		(
6032
			Dist < startDist * S.bulletSettings.Range
6033
		) and startDmg or
6034
		(
6035
			Dist >= startDist * S.bulletSettings.Range and
6036
			Dist < endDist * S.bulletSettings.Range
6037
		) and numLerp(startDmg, endDmg, Map(Dist / S.bulletSettings.Range, startDist, endDist, 0, 1)) or
6038
		(
6039
			Dist >= endDist * S.bulletSettings.Range
6040
		) and endDmg
6041
	)
6042
end
6043
6044
function Damage(H, P, N, D, Dist, customIgnore)
6045
	local hVal = S.damageSettings.Multipliers.Head
6046
	local cVal = S.damageSettings.Multipliers.Chest
6047
	local lVal = S.damageSettings.Multipliers.Limbs
6048
	local baseDamage = getBaseDamage(Dist)
6049
	if Humanoid.Health ~= 0 then
6050
		local hitHumanoid = nil
6051
		if H.Parent:IsA("Hat") then
6052
			table.insert(customIgnore, H)
6053
			local newRay = Ray.new(P - D * 0.1, D * (S.bulletSettings.Range - Dist + 0.1))
6054
			local newH, newP, newN = workspace:FindPartOnRayWithIgnoreList(newRay, customIgnore)
6055
			if newH then
6056
				hitHumanoid = Damage(newH, newP, newN, D, Dist + (newP - P).magnitude, customIgnore)
6057
			end
6058
		else
6059
			hitHumanoid = findFirstClass(H.Parent, "Humanoid")
6060
			if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
6061
				local Tag = Instance.new("ObjectValue")
6062
				Tag.Value = Player
6063
				Tag.Name = "creator"
6064
				Tag.Parent = hitHumanoid
6065
				DS:AddItem(Tag, 0.3)
6066
				local chosenDamage = 0
6067
				if H.Name == "Head" then
6068
					chosenDamage = baseDamage  * RAND(hVal, hVal + 0.1, 0.01)
6069
				elseif H.Name == "Torso" then
6070
					chosenDamage = baseDamage  * RAND(cVal, cVal + 0.1, 0.01)
6071
				else
6072
					chosenDamage = baseDamage  * RAND(lVal, lVal + 0.1, 0.01)
6073
				end
6074
				hitHumanoid:TakeDamage(chosenDamage)
6075
				markHit()
6076
			end
6077
		end
6078
		return hitHumanoid
6079
	end
6080
end
6081
6082
function isWallIgnored(Wall)
6083
	return (
6084
		Wall.Transparency >= S.penetrationSettings.transparencyThreshold or
6085
		(S.penetrationSettings.ignoreNonCanCollide and (not Wall.CanCollide)) or
6086
		isIgnored(Wall, S.penetrationSettings.ignoreCustom)
6087
	)
6088
end
6089
6090
function penetrateWall(Wall, hitPos, Direction, Normal, Ignore, totalPDist, totalBDist, lastDamagedHumanoid)
6091
	local wallIgnore = isWallIgnored(Wall)
6092
	local hitHumanoid = (Wall.Parent:IsA("Hat") and findFirstClass(Wall.Parent.Parent, "Humanoid") or findFirstClass(Wall.Parent, "Humanoid"))
6093
	local damagedHumanoid = nil
6094
	if hitHumanoid and hitHumanoid ~= lastDamagedHumanoid then
6095
		lastDamagedHumanoid = hitHumanoid
6096
		damagedHumanoid = Damage(Wall, hitPos, Normal, Direction, totalBDist, {Char, ignoreModel})
6097
	else
6098
		lastDamagedHumanoid = nil
6099
	end
6100
	local ignoreObject = hitHumanoid and (Wall.Parent:IsA("Hat") and Wall.Parent.Parent or Wall.Parent) or Wall
6101
	table.insert(Ignore, ignoreObject)
6102
	local rayLength = S.bulletSettings.Range - totalBDist
6103
	local testRay = Ray.new(hitPos, Direction * (S.bulletSettings.Range - totalBDist))
6104
	local H1, P1, N1 = workspace:FindPartOnRayWithIgnoreList(testRay, Ignore)
6105
	local newIgnore = removeElement(Ignore, ignoreObject)
6106
	local wallRay = Ray.new(P1 + Direction * 0.1, -Direction * (rayLength + 1))
6107
	local H2, P2, N2 = workspace:FindPartOnRayWithIgnoreList(wallRay, Ignore)
6108
	local newPDist = totalPDist + (wallIgnore and 0 or (getNearestPoint(P1, P2, hitPos) - hitPos).magnitude)
6109
	local newBDist = totalBDist + (P1 - hitPos).magnitude
6110
	local outOfRange = Round(newPDist, 0.001) > S.penetrationSettings.Dist or Round(newBDist, 0.001) > S.bulletSettings.Range
6111
	if (not wallIgnore) then
6112
		createBulletImpact:FireServer(Wall, hitPos, Normal, Direction, hitHumanoid, gunIgnore, S)
6113
		if (not hitHumanoid) then
6114
			createShockwave:FireServer(hitPos, S.shockwaveSettings.Radius, gunIgnore, S)
6115
		end
6116
	end
6117
	if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) and hitHumanoid == damagedHumanoid then
6118
		createBlood:FireServer(Wall, P2, Direction, gunIgnore, S)
6119
	end
6120
	if outOfRange or (not H1) then
6121
		if (not outOfRange) and (not wallIgnore) then
6122
			createBulletImpact:FireServer(Wall, P2, N2, Direction, hitHumanoid, gunIgnore, S)
6123
			if (not hitHumanoid) then
6124
				createShockwave:FireServer(P2, S.shockwaveSettings.Radius, gunIgnore, S)
6125
			end
6126
		end
6127
		return Wall, hitPos
6128
	else
6129
		if Wall == H2 and (not wallIgnore) then
6130
			createBulletImpact:FireServer(Wall, P2, N2, Direction, hitHumanoid, gunIgnore, S)
6131
			if (not hitHumanoid) then
6132
				createShockwave:FireServer(P2, S.shockwaveSettings.Radius, gunIgnore, S)
6133
			end
6134
		end
6135
		return penetrateWall(H1, P1, Direction, N1, Ignore, newPDist, newBDist, lastDamagedHumanoid)
6136
	end
6137
end
6138
6139
function PenetrateWall(HitPos, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist)
6140
	local HitDist = (HitPos - OriginPos).magnitude
6141
	local Wall, WallHitPos = nil, nil
6142
	local Hum, HumHitPos = nil, nil
6143
	local CustomIgnore = {unpack(Ignore)}
6144
	for i = 1, 10 do
6145
		local WallRay = Ray.new(HitPos - (Direction * 0.1), Direction * S.Penetration)
6146
		local H, P = game.Workspace:FindPartOnRayWithIgnoreList(WallRay, CustomIgnore)
6147
		if H then
6148
			local HitHumanoid = nil
6149
			if H.Parent.ClassName == "Hat" then
6150
				HitHumanoid = findFirstClass(H.Parent.Parent, "Humanoid")
6151
			else
6152
				HitHumanoid = findFirstClass(H.Parent, "Humanoid")
6153
			end
6154
			if HitHumanoid and i ~= 1 then
6155
				Hum, HumHitPos = H, P
6156
				break
6157
			else
6158
				Wall, WallHitPos = H, P
6159
				table.insert(CustomIgnore, H)
6160
			end
6161
		else
6162
			break
6163
		end
6164
	end
6165
	if Wall then
6166
		if S.InstantHit then
6167
			if Hum then
6168
				Damage(Hum.Parent:FindFirstChild("Head"), HumHitPos)
6169
				return HumHitPos
6170
			else
6171
				local HitObj2, HitPos2 = nil, nil
6172
				if HitHumanoid then
6173
					HitObj2, HitPos2 = AdvRayCast(WallHitPos, Direction, S.BulletRange - HitDist, {Wall, HitHumanoid.Parent, unpack(Ignore)})
6174
				else
6175
					HitObj2, HitPos2 = AdvRayCast(WallHitPos, Direction, S.BulletRange - HitDist, {Wall, unpack(Ignore)})
6176
				end
6177
				Damage(HitObj2, HitPos2)
6178
				
6179
				local NewPDist = CurrentPDist + (WallHitPos - HitPos).magnitude
6180
				local NewHitPos2 = HitPos2
6181
				if NewPDist < S.Penetration and HitObj2 then
6182
					NewHitPos2 = PenetrateWall(HitPos2, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist + NewPDist)
6183
				end
6184
				return NewHitPos2
6185
			end
6186
		else
6187
			local LastPos = WallHitPos
6188
			local TotalDistTraveled = 0
6189
			spawn(function()
6190
				if Hum then
6191
					Damage(Hum.Parent:FindFirstChild("Head"), HumHitPos)
6192
					return HumHitPos
6193
				else
6194
					while true do
6195
						RS.RenderStepped:wait()
6196
						if TotalDistTraveled >= S.BulletRange - HitDist then
6197
							Bullet:Destroy()
6198
							break
6199
						end
6200
						local DistTraveled = (Bullet.Position - LastPos).magnitude
6201
						local NewDirection = (Bullet.Position - LastPos).unit
6202
						local TempHitObj, TempHitPos = nil, nil
6203
						if HitHumanoid then
6204
							TempHitObj, TempHitPos = AdvRayCast(LastPos, NewDirection, DistTraveled, {Wall, HitHumanoid.Parent, unpack(Ignore)})
6205
						else
6206
							TempHitObj, TempHitPos = AdvRayCast(LastPos, NewDirection, DistTraveled, {Wall, unpack(Ignore)})
6207
						end
6208
						if TempHitObj then
6209
							Damage(TempHitObj, TempHitPos)
6210
							
6211
							local NewPDist = CurrentPDist + (WallHitPos - HitPos).magnitude
6212
							local NewTempPos = TempHitPos
6213
							if NewPDist < S.Penetration and TempHitObj then
6214
								NewTempPos = PenetrateWall(TempHitPos, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist + NewPDist)
6215
							else
6216
								Bullet:Destroy()
6217
							end
6218
							return NewTempPos
6219
						else
6220
							LastPos = Bullet.Position
6221
							TotalDistTraveled = TotalDistTraveled + DistTraveled
6222
						end
6223
					end
6224
				end
6225
			end)
6226
		end
6227
	else
6228
		if Bullet then Bullet:Destroy() end
6229
		return HitPos
6230
	end
6231
end
6232
6233
function isEnemy(Human)
6234
	local Plyr = game.Players:GetPlayerFromCharacter(Human.Parent)
6235
	if (not Plyr) then return S.CanDamageNPCs end
6236
	return S.AllowFriendlyFire or (Plyr.TeamColor ~= Player.TeamColor or Plyr.Neutral)
6237
end
6238
6239
--------------------[ RELOAD FUNCTIONS ]----------------------------------------------
6240
6241
function animateReload()
6242
	tweenJoint(LWeld2, CF(), CF(), Sine, 0.15)
6243
	tweenJoint(RWeld2, CF(), CF(), Sine, 0.15)
6244
	local magParts = {}
6245
	local magTable = {}
6246
			
6247
	for _, Obj in pairs(Gun:GetChildren()) do
6248
		if string.sub(Obj.Name, 1, 3) == "Mag" and Obj:IsA("BasePart") then
6249
			INSERT(magParts, Obj)
6250
		end
6251
	end
6252
	
6253
	local animVars = {
6254
		--FUNCTIONS--
6255
		tweenJoint = tweenJoint;
6256
		
6257
		makeMagInvisible = function()
6258
			for _, v in pairs(magParts) do
6259
				v.Transparency = 1
6260
			end
6261
			magVisible = false
6262
		end;
6263
		
6264
		makeMagVisible = function()
6265
			for _, v in pairs(magParts) do
6266
				v.Transparency = v:WaitForChild("magTrans").Value
6267
			end
6268
			magVisible = true
6269
		end;
6270
		
6271
		isMagVisible = function()
6272
			return magVisible
6273
		end;
6274
		
6275
		isMagEmpty = function()
6276
			return ammoInClip == 0
6277
		end;
6278
		
6279
		setNewMag = function()
6280
			newMag = true
6281
		end;
6282
		
6283
		isNewMag = function()
6284
			return newMag
6285
		end;
6286
		
6287
		createMag = function(Key)
6288
			local magModel = Instance.new("Model")
6289
			local magClones = {}
6290
			for i, v in pairs(magParts) do
6291
				local vClone = v:Clone()
6292
				vClone.Transparency = v:WaitForChild("magTrans").Value
6293
				vClone.CanCollide = false
6294
				vClone.Parent = magModel
6295
				INSERT(magClones, {Original = v, magClone = vClone})
6296
				if i ~= 1 then
6297
					local W = Instance.new("Weld")
6298
					W.Part0 = magClones[1].magClone
6299
					W.Part1 = vClone
6300
					W.C0 = magClones[1].magClone.CFrame:toObjectSpace(vClone.CFrame)
6301
					W.Parent = magClones[1].magClone
6302
				end
6303
			end
6304
			magTable[Key] = {magModel, magClones}
6305
			return magModel, magClones
6306
		end;
6307
		
6308
		getMag = function(Key)
6309
			if magTable[Key] then
6310
				return magTable[Key][1], magTable[Key][2]
6311
			else
6312
				return nil, nil
6313
			end
6314
		end;
6315
		
6316
		attachGripToHead = function()
6317
			local handleCF = RArm.CFrame * Grip.C0
6318
			Grip.C0 = Head.CFrame:toObjectSpace(handleCF)
6319
			Grip.Part0 = Head
6320
		end;
6321
		
6322
		attachGripToArm = function()
6323
			local handleCF = Head.CFrame * Grip.C0
6324
			Grip.C0 = RArm.CFrame:toObjectSpace(handleCF)
6325
			Grip.Part0 = RArm
6326
		end;
6327
		
6328
		Sine = Sine;
6329
		
6330
		Linear = Linear;
6331
		
6332
		--VARIABLES--
6333
		Handle = Handle;
6334
		LArm = LArm;
6335
		RArm = RArm;
6336
		LWeld = LWeld;
6337
		RWeld = RWeld;
6338
		LC0 = armC0[1];
6339
		RC0 = armC0[2];
6340
		Grip = Grip;
6341
		gunIgnore = gunIgnore;
6342
		Cam = Cam;
6343
		CF = CF;
6344
		CFANG = CFANG;
6345
		V3 = V3;
6346
		RAD = RAD;
6347
		reloadTimeLoaded = S.reloadSettings.Times.Loaded;
6348
		reloadTimeEmpty = S.reloadSettings.Times.Empty
6349
	}
6350
	
6351
	local sequenceTable = Anims.Reload(animVars)
6352
	--local T = tick()
6353
	for _, reloadFunction in pairs(sequenceTable) do
6354
		if breakReload then
6355
			break
6356
		end
6357
		reloadFunction()
6358
		
6359
		if (not magVisible) then
6360
			Ammo.Value = 0
6361
		end
6362
		updateClipAmmo()
6363
	end
6364
	--print(tick() - T) --I divide the reloadTime by this number to get the animation speed
6365
	
6366
	if (not isCrawling) then
6367
		if Running and (not S.canFireWhileRunning) then
6368
			tweenJoint(LWeld, armC0[1], S.runningC1.leftArm, Sine, 0.4)
6369
			tweenJoint(RWeld, armC0[2], S.runningC1.rightArm, Sine, 0.4)
6370
			tweenJoint(Grip, nil, S.runningC1.Grip, Sine, 0.4)
6371
		else
6372
			tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
6373
			tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
6374
			tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
6375
		end
6376
	end
6377
	
6378
	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
6379
		v[1]:Destroy()
6380
	end
6381
end
6382
6383
function Reload()
6384
	if Ammo.Value < (ClipSize.Value + 1) and (not Reloading) and StoredAmmo.Value > 0 then
6385
		Firing = false
6386
		ammoInClip = (ammoInClip == 0 and Ammo.Value or ammoInClip)
6387
		Reloading = true
6388
		lowerSpread()
6389
		if Aimed then unAimGun(S.reloadSettings.Anim) end
6390
		crossHair.Reload.Visible = true
6391
		if Handle:FindFirstChild("ReloadSound") then Handle.ReloadSound:Play() end
6392
		if S.reloadSettings.Anim then
6393
			wait()
6394
			animateReload()
6395
		else
6396
			local startReload = tick()
6397
			local initialReloadTime = Ammo.Value == 0 and S.reloadSettings.Times.Empty or S.reloadSettings.Times.Loaded
6398
			while true do
6399
				if breakReload then break end
6400
				if (tick() - startReload) >= initialReloadTime then break end
6401
				RS.RenderStepped:wait()
6402
			end
6403
		end
6404
		if (not breakReload) then
6405
			newMag = false
6406
			if StoredAmmo.Value >= ClipSize.Value then
6407
				if ammoInClip > 0 then
6408
					StoredAmmo.Value = StoredAmmo.Value - ((ClipSize.Value + 1) - ammoInClip)
6409
					Ammo.Value = ClipSize.Value + 1
6410
				else
6411
					StoredAmmo.Value = StoredAmmo.Value - ClipSize.Value
6412
					Ammo.Value = ClipSize.Value
6413
				end
6414
			elseif StoredAmmo.Value < ClipSize.Value and StoredAmmo.Value > 0 then
6415
				Ammo.Value = StoredAmmo.Value
6416
				StoredAmmo.Value = 0
6417
			end
6418
		end
6419
		Reloading = false
6420
		if Selected then
6421
			ammoInClip = (breakReload and ammoInClip or 0)
6422
			crossHair.Reload.Visible = false
6423
		end
6424
		breakReload = false
6425
	end
6426
	
6427
	updateClipAmmo()
6428
	updateStoredAmmo()
6429
end
6430
6431
--------------------[ EXTERNAL DATA LOCATING FUNCTIONS ]-----------------------------
6432
6433
function removeElement(Table, Element) --removes the first instance of Element from Table
6434
	for i, v in pairs(Table) do
6435
		if v == Element then
6436
			table.remove(Table, i)
6437
			break
6438
		end
6439
	end
6440
	return Table
6441
end
6442
6443
function findFirstClass(Object, Class)
6444
	local foundObject = nil
6445
	for _, Obj in pairs(Object:GetChildren()) do
6446
		if Obj.ClassName == Class then
6447
			foundObject = Obj
6448
			break
6449
		end
6450
	end
6451
	return foundObject
6452
end
6453
6454
function isIgnored(Obj, Table)
6455
	for _,v in pairs(Table) do
6456
		if Obj == v or Obj:IsDescendantOf(v) then
6457
			return true
6458
		end
6459
	end
6460
	return false
6461
end
6462
6463
function GetHitSurfaceCFrame(HitPos,Obj)
6464
	local SurfaceCF = {
6465
		{"Back",Obj.CFrame * CF(0,0,Obj.Size.z)};
6466
		{"Bottom",Obj.CFrame * CF(0,-Obj.Size.y,0)};
6467
		{"Front",Obj.CFrame * CF(0,0,-Obj.Size.z)};
6468
		{"Left",Obj.CFrame * CF(-Obj.Size.x,0,0)};
6469
		{"Right",Obj.CFrame * CF(Obj.Size.x,0,0)};
6470
		{"Top",Obj.CFrame * CF(0,Obj.Size.y,0)}
6471
	}
6472
	local ClosestDist = HUGE
6473
	local ClosestSurface = nil
6474
	for _,v in pairs(SurfaceCF) do
6475
		local SurfaceDist = (HitPos - v[2].p).magnitude
6476
		if SurfaceDist < ClosestDist then
6477
			ClosestDist = SurfaceDist
6478
			ClosestSurface = v
6479
		end
6480
	end
6481
	return ClosestSurface[2]
6482
end
6483
6484
function AdvRayCast(Origin, Direction, Dist, CustomIgnore)
6485
	local NewIgnore = (CustomIgnore and CustomIgnore or Ignore)
6486
	local NewRay = Ray.new(Origin, Direction * (Dist > 999 and 999 or Dist))
6487
	local HitObj, HitPos = game.Workspace:FindPartOnRayWithIgnoreList(NewRay, NewIgnore)
6488
	local LastPos = HitPos
6489
	local FinalHitObj, FinalHitPos = nil, nil
6490
	local RepTimes = math.floor(Dist / 999)
6491
	if (not HitObj) and (Dist > 999) then
6492
		for i = 0, RepTimes do
6493
			local NewDist = (i == RepTimes and  (Dist - (LastPos - Origin).magnitude) or 999)
6494
			local Ray2 = Ray.new(LastPos, Direction * NewDist)
6495
			local HitObj2, HitPos2 = game.Workspace:FindPartOnRayWithIgnoreList(Ray2, NewIgnore)
6496
			if i ~= RepTimes then
6497
				if HitObj2 then
6498
					FinalHitObj, FinalHitPos = HitObj2, HitPos2
6499
					break
6500
				end
6501
			elseif i == RepTimes then
6502
				FinalHitObj, FinalHitPos = HitObj2, HitPos2
6503
			end
6504
			LastPos = HitPos2
6505
		end
6506
		return FinalHitObj, FinalHitPos
6507
	elseif HitObj or (Dist <= 999) then
6508
		return HitObj, HitPos
6509
	end
6510
end
6511
6512
--------------------[ JUMPING ANIMATION ]---------------------------------------------
6513
6514
function onFall(initialVelocity)
6515
	spawn(function()
6516
		local velocityAlpha = math.max(math.min(initialVelocity / Humanoid.JumpPower, 1), 0)
6517
		local startJumpPos = jumpAnim.Pos
6518
		local startJumpRot = jumpAnim.Rot
6519
		local endJumpPos = 0.04 * S.fallSettings.fallMultiplier * velocityAlpha
6520
		local endJumpRot = RAD(4) * S.fallSettings.fallMultiplier * velocityAlpha
6521
		local t0 = tick()
6522
		while true do
6523
			RS.Heartbeat:wait()
6524
			local Alpha = math.min((tick() - t0) / 0.15, 1) * 90
6525
			if onGround then break end
6526
			jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Sine(Alpha))
6527
			jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Sine(Alpha))
6528
			if Alpha == 90 then break end
6529
		end
6530
		startJumpPos = endJumpPos
6531
		startJumpRot = endJumpRot
6532
		endJumpPos = -0.08 * S.fallSettings.fallMultiplier
6533
		endJumpRot = -RAD(8) * S.fallSettings.fallMultiplier
6534
		local X = 1
6535
		while true do
6536
			local dt = RS.Heartbeat:wait()
6537
			X = X + (dt * 60) / X
6538
			local Alpha = (X - 1) / 15
6539
			if onGround then break end
6540
			jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Alpha)
6541
			jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Alpha)
6542
		end
6543
	end)
6544
end
6545
6546
function onLand(fallDist)
6547
	spawn(function()
6548
		local animAlpha = math.min(fallDist, S.fallSettings.maxDist) * (2 / 3)
6549
		local startJumpPos = jumpAnim.Pos
6550
		local startJumpRot = jumpAnim.Rot
6551
		local endJumpPos = animAlpha / 100 * S.fallSettings.landMultiplier * (runReady and 1 or 2)
6552
		local endJumpRot = RAD(animAlpha) * S.fallSettings.landMultiplier * (runReady and 1 or 2)
6553
		local t0 = tick()
6554
		while true do
6555
			RS.Heartbeat:wait()
6556
			local Alpha = math.min((tick() - t0) / 0.2, 1)
6557
			if (not onGround) then break end
6558
			jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Alpha)
6559
			jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Alpha)
6560
			if Alpha == 1 then break end
6561
		end
6562
		t0 = tick()
6563
		while true do
6564
			RS.Heartbeat:wait()
6565
			local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
6566
			if (not onGround) then break end
6567
			jumpAnim.Pos = numLerp(endJumpPos, 0, Sine(Alpha))
6568
			jumpAnim.Rot = numLerp(endJumpRot, 0, Sine(Alpha))
6569
			if Alpha == 90 then break end
6570
		end
6571
	end)
6572
end
6573
6574
function onHumanoidStateChanged(oldState, newState)
6575
	if newState == Enum.HumanoidStateType.Freefall then
6576
		onGround = false
6577
		if S.fallAnimation then
6578
			onFall(HRP.Velocity.Y)
6579
			while HRP.Velocity.Y > 0 do RS.RenderStepped:wait() end
6580
			startFallHeight = HRP.Position.Y
6581
		end
6582
	elseif oldState == Enum.HumanoidStateType.Freefall then
6583
		onGround = true
6584
		if S.fallAnimation then
6585
			local fallDist = startFallHeight - HRP.Position.Y
6586
			onLand(fallDist)
6587
		end
6588
	end
6589
end
6590
--------------------[ CAMERA STEADYING FUNCTIONS ]------------------------------------
6591
6592
function steadyCamera()
6593
	scopeSteady.Text = "Steadying..."
6594
	scopeSteady.TextColor3 = Color3.new(1, 1, 0)
6595
	camSteady = true
6596
	local originalSway = camSway
6597
	local Increment = 1.5 / 0.6
6598
	local X = 0
6599
	while true do
6600
		RS.RenderStepped:wait()
6601
		local newX = X + Increment
6602
		X = (newX > 90 and 90 or newX)
6603
		if (not steadyKeyPressed) then break end
6604
		camSway = numLerp(originalSway, 0, Sine(X))
6605
		if X == 90 then break end
6606
	end
6607
	while steadyKeyPressed and Aimed do
6608
		if currentSteadyTime > 0 then
6609
			local NewSteadyTime = currentSteadyTime - 1
6610
			currentSteadyTime = (NewSteadyTime < 0 and 0 or NewSteadyTime)
6611
			camSway = 0
6612
		elseif currentSteadyTime == 0 then
6613
			break
6614
		end
6615
		RS.RenderStepped:wait()
6616
	end
6617
	camSteady = false
6618
	spawn(function()
6619
		local Increment = 1.5 / 0.25
6620
		local X = 0
6621
		while true do
6622
			RS.RenderStepped:wait()
6623
			local newX = X + Increment
6624
			X = (newX > 90 and 90 or newX)
6625
			if camSteady then break end
6626
			camSway = numLerp(0, S.scopeSettings.camSwayOnBreath, 1 - COS(RAD(X)))
6627
			if X == 90 then break end
6628
		end
6629
		Increment = 1.5 / S.scopeSettings.breathTime
6630
		X = 0
6631
		while true do
6632
			RS.RenderStepped:wait()
6633
			local newX = X + Increment
6634
			X = (newX > 90 and 90 or newX)
6635
			if camSteady then break end
6636
			camSway = numLerp(S.scopeSettings.camSwayOnBreath, 1, Sine(X))
6637
			if X == 90 then break end
6638
		end
6639
		--[[for X = 0, 90, 1.5 / 0.2 do
6640
			local Alpha = 1 - COS(RAD(X))--math.log10(X) / math.log10(90)
6641
			camSway = numLerp(0, 3, Alpha)
6642
			RS.RenderStepped:wait()
6643
		end]]
6644
		--[[for X = 0, 90, 1.5 / S.scopeSettings.steadyTime do
6645
			if camSteady then break end
6646
			local Alpha = SIN(RAD(X))
6647
			camSway = numLerp(3, 1, Alpha)
6648
			RS.RenderStepped:wait()
6649
		end]]
6650
	end)
6651
	retakeBreath()
6652
end
6653
6654
function retakeBreath()
6655
	scopeSteady.Text = "Re-taking Breath"
6656
	scopeSteady.TextColor3 = Color3.new(1, 0, 0)
6657
	takingBreath = true
6658
	local Increment = S.scopeSettings.steadyTime / S.scopeSettings.breathTime
6659
	while takingBreath do
6660
		if currentSteadyTime < maxSteadyTime then
6661
			local newSteadyTime = currentSteadyTime + Increment
6662
			currentSteadyTime = (newSteadyTime > maxSteadyTime and maxSteadyTime or newSteadyTime)
6663
		elseif currentSteadyTime >= maxSteadyTime then
6664
			break
6665
		end
6666
		RS.RenderStepped:wait()
6667
	end
6668
	if takingBreath then
6669
		scopeSteady.Text = "Hold "..convertKey(S.Keys.scopeSteady).." to Steady"
6670
		scopeSteady.TextColor3 = Color3.new(1, 1, 0)
6671
		takingBreath = false
6672
	end
6673
end
6674
6675
--------------------[ SPRINTING FUNCTIONS ]-------------------------------------------
6676
6677
function canRun(midRun)
6678
	return ((Forward and (not Backward)) and
6679
		Walking and (Stamina > 0) and Running and
6680
		Selected and (midRun and true or onGround) and
6681
		runReady and (S.canFireWhileRunning and true or (not Firing))
6682
	)
6683
end
6684
6685
function monitorStamina()
6686
	Running = true
6687
	if (not canRun(false)) then
6688
		Running = false
6689
		return
6690
	end
6691
	if Aimed then unAimGun(true) end
6692
	if Stance == 1 or Stance == 2 then Stand() end
6693
	if (not (Reloading and S.reloadSettings.Anim)) then
6694
		if S.canFireWhileRunning then
6695
			tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
6696
			tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
6697
			tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
6698
		else
6699
			tweenJoint(LWeld, armC0[1], S.runningC1.leftArm, Sine, 0.4)
6700
			tweenJoint(RWeld, armC0[2], S.runningC1.rightArm, Sine, 0.4)
6701
			tweenJoint(Grip, nil, S.runningC1.Grip, Sine, 0.4)
6702
		end
6703
	end
6704
	crossOffset = 50
6705
	while runKeyPressed do
6706
		if canRun(true) then
6707
			if onGround then
6708
				local newStamina = Stamina - 1
6709
				Stamina = (newStamina < 0 and 0 or newStamina)
6710
			end
6711
		else
6712
			break
6713
		end
6714
		RS.RenderStepped:wait()
6715
	end
6716
	Running = false
6717
	if (not Aimed) and (not (Reloading and S.reloadSettings.Anim)) and (not S.canFireWhileRunning) then
6718
		crossOffset = 0
6719
		tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
6720
		tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
6721
		tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
6722
	end
6723
	
6724
	rechargeStamina()
6725
end
6726
6727
function rechargeStamina()
6728
	chargingStamina = true
6729
	while ((not runKeyPressed) or (Stamina < maxStamina)) and (not Running) do
6730
		if Stamina < maxStamina then
6731
			local newStamina = Stamina + (S.sprintTime / S.staminaCoolTime)
6732
			Stamina = (newStamina > maxStamina and maxStamina or newStamina)
6733
		elseif Stamina >= maxStamina then
6734
			break
6735
		end
6736
		RS.RenderStepped:wait()
6737
	end
6738
	chargingStamina = false
6739
end
6740
6741
--------------------[ STANCE FUNCTIONS ]----------------------------------------------
6742
6743
function Stand(onDeselected)
6744
	local LHip = Torso["Left Hip"]
6745
	local RHip = Torso["Right Hip"]
6746
	LLegWeld.Part1 = nil
6747
	LHip.Part1 = LLeg
6748
	RLegWeld.Part1 = nil
6749
	RHip.Part1 = RLeg
6750
	Stance = 0
6751
	spreadStance = "Stand"
6752
	baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
6753
	if S.stanceSettings.Anim and (not onDeselected) then
6754
		spawn(function()
6755
			local prevStanceSway = stanceSway
6756
			local X = 0
6757
			local Increment = 1.5 / S.stanceSettings.Speed
6758
			while true do
6759
				RS.RenderStepped:wait()
6760
				local newX = X + Increment
6761
				X = (newX > 90 and 90 or newX)
6762
				if Stance ~= 0 then break end
6763
				stanceSway = numLerp(prevStanceSway, 1, Sine(X))
6764
				if X == 90 then break end
6765
			end
6766
		end)
6767
		tweenJoint(ABWeld, CF(), nil, Sine, S.stanceSettings.Speed)
6768
		tweenJoint(LLegWeld, legC0.Stand[1], nil, Sine, S.stanceSettings.Speed)
6769
		tweenJoint(RLegWeld, legC0.Stand[2], nil, Sine, S.stanceSettings.Speed)
6770
		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)
6771
		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)
6772
		tweenJoint(Root, CFANG(RAD(-90), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
6773
		tweenJoint(headWeld, CF(0, 1.5, 0), nil, Sine, S.stanceSettings.Speed)
6774
	elseif onDeselected or (not S.stanceSettings.Anim) then
6775
		ABWeld.C0 = CF()
6776
		LLegWeld.C0 = legC0.Stand[1]
6777
		RLegWeld.C0 = legC0.Stand[2]
6778
		LHip.C0, LHip.C1 = CF(-1, -1, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 1, 0) * CFANG(0, RAD(-90), 0)
6779
		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)
6780
		Root.C0 = CFANG(RAD(-90), 0, RAD(180))
6781
		headWeld.C0 = CF(0, 1.5, 0)
6782
	end
6783
end
6784
6785
function Crouch()
6786
	local LHip = Torso["Left Hip"]
6787
	local RHip = Torso["Right Hip"]
6788
	LHip.Part1 = nil
6789
	LLegWeld.Part1 = LLeg
6790
	RHip.Part1 = nil
6791
	RLegWeld.Part1 = RLeg
6792
	Stance = 1
6793
	spreadStance = "Crouch"
6794
	baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
6795
	if S.stanceSettings.Anim then
6796
		spawn(function()
6797
			local prevStanceSway = stanceSway
6798
			local X = 0
6799
			local Increment = 1.5 / S.stanceSettings.Speed
6800
			while true do
6801
				RS.RenderStepped:wait()
6802
				local newX = X + Increment
6803
				X = (newX > 90 and 90 or newX)
6804
				if Stance ~= 1 then break end
6805
				stanceSway = numLerp(prevStanceSway, 0.75, Sine(X))
6806
				if X == 90 then break end
6807
			end
6808
		end)
6809
		tweenJoint(ABWeld, CF(0, 0, -0.05), nil, Sine, S.stanceSettings.Speed)
6810
		tweenJoint(LLegWeld, legC0.Crouch[1], nil, Sine, S.stanceSettings.Speed)
6811
		tweenJoint(RLegWeld, legC0.Crouch[2], nil, Sine, S.stanceSettings.Speed)
6812
		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)
6813
		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)
6814
		tweenJoint(Root, CF(0, -1, 0) * CFANG(RAD(-90), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
6815
		tweenJoint(headWeld, CF(0, 1.5, 0), nil, Sine, S.stanceSettings.Speed)
6816
	else
6817
		ABWeld.C0 = CF(0, 0, -1 / 16)
6818
		LLegWeld.C0 = legC0.Crouch[1]
6819
		RLegWeld.C0 = legC0.Crouch[2]
6820
		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))
6821
		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)
6822
		Root.C0 = CF(0, -1, 0) * CFANG(RAD(-90), 0, RAD(180))
6823
		headWeld.C0 = CF(0, 1.5, 0)
6824
	end
6825
end
6826
6827
function Prone()
6828
	local LHip = Torso["Left Hip"]
6829
	local RHip = Torso["Right Hip"]
6830
	LHip.Part1 = nil
6831
	LLegWeld.Part1 = LLeg
6832
	RHip.Part1 = nil
6833
	RLegWeld.Part1 = RLeg
6834
	Stance = 2
6835
	spreadStance = "Prone"
6836
	baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
6837
	if S.stanceSettings.Anim then
6838
		spawn(function()
6839
			local prevStanceSway = stanceSway
6840
			local X = 0
6841
			local Increment = 1.5 / S.stanceSettings.Speed
6842
			while true do
6843
				RS.RenderStepped:wait()
6844
				local newX = X + Increment
6845
				X = (newX > 90 and 90 or newX)
6846
				if Stance ~= 2 then break end
6847
				stanceSway = numLerp(prevStanceSway, 0.5, Sine(X))
6848
				if X == 90 then break end
6849
			end
6850
		end)
6851
		tweenJoint(ABWeld, CF(0, 0, -0.1), nil, Sine, S.stanceSettings.Speed)
6852
		tweenJoint(LLegWeld, legC0.Prone[1], nil, Sine, S.stanceSettings.Speed)
6853
		tweenJoint(RLegWeld, legC0.Prone[2], nil, Sine, S.stanceSettings.Speed)
6854
		tweenJoint(Root, CF(0, -2.5, 1) * CFANG(RAD(180), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
6855
		tweenJoint(headWeld, CF(0, 1, 1) * CFANG(RAD(90), 0, 0), nil, Sine, S.stanceSettings.Speed)
6856
	else
6857
		ABWeld.C0 = CF(0, 0, -1 / 8)
6858
		LLegWeld.C0 = legC0.Prone[1]
6859
		RLegWeld.C0 = legC0.Prone[2]
6860
		Root.C0 = CF(0, -2.5, 1) * CFANG(RAD(180), 0, RAD(180))
6861
		headWeld.C0 = CF(0, 1, 1) * CFANG(RAD(90), 0, 0)
6862
	end
6863
end
6864
6865
function Dive()
6866
	onGround = false
6867
	local diveDirection = (HRP.CFrame * CFANG(S.diveSettings.Angle, 0, 0)).lookVector * S.walkSpeeds.Sprinting * S.diveSettings.Force
6868
	local BF = Instance.new("BodyForce")
6869
	BF.force = diveDirection + Vector3.new(0, playerMass * 196.2, 0)
6870
	BF.Parent = HRP
6871
	--[[spawn(function()
6872
		HRP.Velocity = HRP.CFrame.lookVector * 60 + V3(0, 40, 0)
6873
		wait(0.1)
6874
		HRP.Velocity = HRP.CFrame.lookVector * 70 + V3(0, 30, 0)
6875
		wait(0.4)
6876
		HRP.Velocity = HRP.CFrame.lookVector * 30 + V3(0, -10, 0)
6877
	end)]]
6878
	delay(0.05, function()
6879
		spawn(function()
6880
			while true do
6881
				local newRay = Ray.new(HRP.Position, V3(0, -3.1, 0))
6882
				local H, _ = workspace:FindPartOnRayWithIgnoreList(newRay, Ignore)
6883
				if H then
6884
					onGround = true
6885
					break
6886
				end
6887
				wait()
6888
			end
6889
		end)
6890
		Prone()
6891
		wait(0.1)
6892
		BF:Destroy()
6893
	end)
6894
end
6895
6896
--------------------[ MOUSE FUNCTIONS ]-----------------------------------------------
6897
6898
function onMB1Down()
6899
	MB1Down = true
6900
	firstShot = true
6901
	if fireFunction then
6902
		fireFunction()
6903
	end
6904
end
6905
6906
function onMB1Up()
6907
	MB1Down = false
6908
	lowerSpread()
6909
end
6910
6911
function onMB2Down()
6912
	if S.aimSettings.holdToADS then
6913
		if (not AimingIn) and (not Aimed) then
6914
			AimingIn = true
6915
			aimGun()
6916
			AimingIn = false
6917
		end
6918
	else
6919
		if Aimed then
6920
			unAimGun()
6921
		else
6922
			aimGun()
6923
		end
6924
	end
6925
end
6926
6927
function onMB2Up()
6928
	if S.aimSettings.holdToADS then
6929
		if (not AimingOut) and Aimed then
6930
			AimingOut = true
6931
			unAimGun()
6932
			AimingOut = false
6933
		end
6934
	end
6935
end
6936
6937
function onScrollUp()
6938
	local newAimSensitivity = aimSensitivity + S.sensitivitySettings.Increment
6939
	aimSensitivity = (
6940
		newAimSensitivity < S.sensitivitySettings.Min and S.sensitivitySettings.Min or
6941
		newAimSensitivity > S.sensitivitySettings.Max and S.sensitivitySettings.Max or
6942
		newAimSensitivity
6943
	)
6944
	mouseSensitivity = (Aimed and aimSensitivity or mouseSensitivity)
6945
	
6946
	Sens.Text = "S: "..aimSensitivity
6947
	if mainGUI:IsDescendantOf(game) then
6948
		Sens.Visible = true
6949
		local t0 = tick()
6950
		lastSensUpdate = t0
6951
		
6952
		wait(0.3)
6953
		
6954
		if lastSensUpdate <= t0 then
6955
			Sens.Visible = false
6956
		end
6957
	end
6958
end
6959
6960
function onScrollDown()
6961
	local newAimSensitivity = aimSensitivity - S.sensitivitySettings.Increment
6962
	aimSensitivity = (
6963
		newAimSensitivity < S.sensitivitySettings.Min and S.sensitivitySettings.Min or
6964
		newAimSensitivity > S.sensitivitySettings.Max and S.sensitivitySettings.Max or
6965
		newAimSensitivity
6966
	)
6967
	mouseSensitivity = (Aimed and aimSensitivity or mouseSensitivity)
6968
	
6969
	Sens.Text = "S: "..aimSensitivity
6970
	if mainGUI:IsDescendantOf(game) then
6971
		Sens.Visible = true
6972
		local t0 = tick()
6973
		lastSensUpdate = t0
6974
		
6975
		wait(0.3)
6976
		
6977
		if lastSensUpdate <= t0 then
6978
			Sens.Visible = false
6979
		end
6980
	end
6981
end
6982
6983
--------------------[ KEYBOARD FUNCTIONS ]--------------------------------------------
6984
6985
function keyDown(K)
6986
	local Key = string.lower(K)
6987
	
6988
	if Key == S.Keys.lowerStance and S.canChangeStance then
6989
		if (not Running) then
6990
			if Stance == 0 then
6991
				if S.stanceSettings.Stances.Crouch then
6992
					Crouch()
6993
				elseif S.stanceSettings.Stances.Prone then
6994
					Prone()
6995
				end
6996
			elseif Stance == 1 then
6997
				if S.stanceSettings.Stances.Prone then
6998
					Prone()
6999
				end
7000
			end
7001
		elseif S.dolphinDive then
7002
			wait()
7003
			if Humanoid:GetState() ~= Enum.HumanoidStateType.Freefall and (not UIS:IsKeyDown("Space")) and runReady then
7004
				local tempConnection = Humanoid.Changed:connect(function()
7005
					Humanoid.Jump = false
7006
				end)
7007
				runReady = false
7008
				Dive()
7009
				Running = false
7010
				wait(S.diveSettings.rechargeTime)
7011
				tempConnection:disconnect()
7012
				runReady = true
7013
			end
7014
		end
7015
	end
7016
	
7017
	if Key == S.Keys.raiseStance and S.canChangeStance then
7018
		if (not Running) then
7019
			if Stance == 2 then
7020
				if S.stanceSettings.Stances.Crouch then
7021
					Crouch()
7022
				else
7023
					Stand()
7024
				end
7025
			elseif Stance == 1 then
7026
				Stand()
7027
			end
7028
		end
7029
	end
7030
	
7031
	if Key == S.Keys.ADS then
7032
		if S.aimSettings.holdToADS then
7033
			if (not AimingIn) and (not Aimed) then
7034
				AimingIn = true
7035
				aimGun()
7036
				AimingIn = false
7037
			end
7038
		else
7039
			if Aimed then
7040
				unAimGun()
7041
			else
7042
				aimGun()
7043
			end
7044
		end
7045
	end
7046
	
7047
	if Key == S.Keys.selectFire and S.selectFire then
7048
		if canSelectFire then
7049
			canSelectFire = false
7050
			rawFireMode = rawFireMode + 1
7051
			modeGUI.Text = Modes[((rawFireMode - 1) % numModes) + 1]
7052
			if modeGUI.Text == "AUTO" then
7053
				fireFunction = autoFire
7054
			elseif modeGUI.Text == "BURST" then
7055
				fireFunction = burstFire
7056
			elseif modeGUI.Text == "SEMI" then
7057
				fireFunction = semiFire
7058
			else
7059
				fireFunction = nil
7060
			end
7061
			local speedAlpha = S.selectFireSettings.animSpeed / 0.6
7062
			if S.selectFireSettings.GUI then
7063
				spawn(function()
7064
					fireSelect.Visible = true
7065
					local prevRawFireMode = rawFireMode
7066
					local Increment = 1.5 / (speedAlpha * 0.25)
7067
					local X = 0
7068
					wait(speedAlpha * 0.1)
7069
					while true do
7070
						RS.RenderStepped:wait()
7071
						local newX = X + Increment
7072
						X = (newX > 90 and 90 or newX)
7073
						if prevRawFireMode ~= rawFireMode then break end
7074
						updateModeLabels(rawFireMode - 1, rawFireMode, X)
7075
						if X == 90 then break end
7076
					end
7077
					wait(speedAlpha * 0.25)
7078
					fireSelect.Visible = false
7079
				end)
7080
			end
7081
			if S.selectFireSettings.Animation and (not Aimed) and (not isRunning) and (not isCrawling) then
7082
				spawn(function()
7083
					local sequenceTable = {
7084
						function()
7085
							tweenJoint(RWeld2, nil, CFANG(0, RAD(5), 0), Sine, speedAlpha * 0.15)
7086
							tweenJoint(LWeld, armC0[1], CF(0.1, 1, -0.3) * CFANG(RAD(-7), 0, RAD(-65)), Linear, speedAlpha * 0.15)
7087
							wait(speedAlpha * 0.2)
7088
						end;
7089
						
7090
						function()
7091
							tweenJoint(LWeld, armC0[1], CF(0.1, 1, -0.3) * CFANG(RAD(-10), 0, RAD(-65)), Linear, speedAlpha * 0.1)
7092
							wait(speedAlpha * 0.2)
7093
						end;
7094
						
7095
						function()
7096
							tweenJoint(RWeld2, nil, CF(), Sine, speedAlpha * 0.2)
7097
							tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, speedAlpha * 0.2)
7098
							wait(speedAlpha * 0.2)
7099
						end;
7100
					}
7101
					
7102
					for _, F in pairs(sequenceTable) do
7103
						if Aimed or isRunning or isCrawling or Reloading then
7104
							break
7105
						end
7106
						F()
7107
					end
7108
				end)
7109
			end
7110
			if S.selectFireSettings.Animation or S.selectFireSettings.GUI then
7111
				wait(S.selectFireSettings.animSpeed)
7112
			end
7113
			canSelectFire = true
7114
		end
7115
	end
7116
	
7117
	if Key == S.Keys.Reload then
7118
		if (not Reloading) and (not isCrawling) then
7119
			Reload()
7120
		end
7121
	end
7122
	
7123
	if Key == S.Keys.Sprint then
7124
		runKeyPressed = true
7125
		if runReady then
7126
			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
7127
				monitorStamina()
7128
			end
7129
		end
7130
	end
7131
	
7132
	if Key == S.Keys.scopeSteady then
7133
		steadyKeyPressed = true
7134
		if Aimed and (not Aiming) then
7135
			takingBreath = false
7136
			steadyCamera()
7137
		end
7138
	end
7139
	
7140
	for _, PTable in pairs(Plugins.KeyDown) do
7141
		if Key == string.lower(PTable.Key) then
7142
			spawn(function()
7143
				PTable.Plugin()
7144
			end)
7145
		end
7146
	end
7147
end
7148
7149
function keyUp(K)
7150
	local Key = string.lower(K)
7151
	
7152
	if Key == S.Keys.ADS then
7153
		if S.aimSettings.holdToADS then
7154
			if (not AimingOut) and Aimed then
7155
				AimingOut = true
7156
				unAimGun()
7157
				AimingOut = false
7158
			end
7159
		end
7160
	end
7161
	
7162
	if Key == S.Keys.Sprint then
7163
		runKeyPressed = false
7164
		Running = false
7165
		if (not chargingStamina) then
7166
			rechargeStamina()
7167
		end
7168
	end
7169
	
7170
	if Key == S.Keys.scopeSteady then
7171
		steadyKeyPressed = false
7172
	end
7173
	
7174
	for _, PTable in pairs(Plugins.KeyUp) do
7175
		if Key == string.lower(PTable.Key) then
7176
			spawn(function()
7177
				PTable.Plugin()
7178
			end)
7179
		end
7180
	end
7181
end
7182
7183
--------------------[ END FUNCTIONS ]-------------------------------------------------
7184
7185
--------------------------------------------------------------------------------------
7186
--------------------[ PRE-CONNECTIONS ]-----------------------------------------------
7187
--------------------------------------------------------------------------------------
7188
7189
local function updateAnimVars()
7190
	wait()
7191
	Forward = (UIS:IsKeyDown("W") or UIS:IsKeyDown("Up"))
7192
	Backward = (UIS:IsKeyDown("S") or UIS:IsKeyDown("Down"))
7193
	local Right = UIS:IsKeyDown("D")
7194
	local Left = UIS:IsKeyDown("A")
7195
	
7196
	local walkingForward = (Forward and (not Backward))
7197
	local walkingBackward = ((not Forward) and Backward)
7198
	local walkingRight = (Right and (not Left))
7199
	local walkingLeft = ((not Right) and Left)
7200
	
7201
	if (Forward or Backward or Right or Left) then
7202
		Walking, Idling = true, false
7203
		if (not Running) and (not Aimed) then
7204
			spreadMotion = "Moving"
7205
			baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
7206
		end
7207
	elseif (not (Forward and Backward and Right and Left)) then
7208
		Walking, Idling = false, true
7209
		if (not Aimed) then
7210
			spreadMotion = "Idling"
7211
			baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
7212
		end
7213
	end
7214
	
7215
	local newArmTilt = (
7216
		((walkingForward or walkingBackward) and walkingRight) and 2.5 or
7217
		((walkingForward or walkingBackward) and walkingLeft) and -2.5 or
7218
		((not (walkingForward and walkingBackward)) and walkingRight) and 5 or
7219
		((not (walkingForward and walkingBackward)) and walkingLeft) and -5 or 0
7220
	)
7221
	local newMoveAng = (
7222
		(walkingForward and (not (walkingRight or walkingLeft))) and 0 or
7223
		(walkingForward and walkingRight) and RAD(-45) or
7224
		((not (walkingForward or walkingBackward)) and walkingRight) and RAD(-90) or
7225
		(walkingBackward and walkingRight) and RAD(-135) or
7226
		(walkingBackward and (not (walkingRight or walkingLeft))) and (moveAng < 0 and RAD(-180) or RAD(180)) or
7227
		(walkingBackward and walkingLeft) and RAD(135) or
7228
		((not (walkingForward or walkingBackward)) and walkingLeft) and RAD(90) or
7229
		(walkingForward and walkingLeft) and RAD(45) or 0
7230
	)
7231
	
7232
	local newAnimCode = math.random(-1e9, 1e9)
7233
	animCode = newAnimCode
7234
	local startTilt = armTilt
7235
	local startAng = (ABS(moveAng) == RAD(180)) and (newMoveAng > 0 and RAD(180) or RAD(-180)) or moveAng
7236
	local Increment = (startTilt == newArmTilt and 1.5 / 0.7 or 1.5 / (0.35 * ABS(startTilt - newArmTilt) / 5))
7237
	local X = 0
7238
	while true do
7239
		RS.RenderStepped:wait()
7240
		local newX = X + Increment
7241
		X = (newX > 90 and 90 or newX)
7242
		if animCode ~= newAnimCode then break end
7243
		armTilt = numLerp(startTilt, newArmTilt, Sine(X))
7244
		moveAng = numLerp(startAng, newMoveAng, Sine(X))
7245
		if X == 90 then break end
7246
	end
7247
end
7248
7249
M2.KeyDown:connect(updateAnimVars)
7250
M2.KeyUp:connect(updateAnimVars)
7251
updateAnimVars()
7252
7253
--------------------------------------------------------------------------------------
7254
--------------------[ TOOL SELECTION AND DESELECTION ]--------------------------------
7255
--------------------------------------------------------------------------------------
7256
7257
function onEquipped()
7258
	wait()
7259
	if Humanoid.Health ~= 0 and (not Selected) and Gun.Parent == Char then
7260
		Selected = true
7261
		breakReload = false
7262
		equipAnimPlaying = true
7263
		
7264
		math.randomseed(tick()) --This sets a new seed for the random function each time you select the gun
7265
		
7266
		--------------------[ FAILSAFE RESETING ]-------------------------------------
7267
		
7268
		for _, GM in pairs(ignoreModel:GetChildren()) do
7269
			if GM.Name == "gunIgnore_"..Player.Name then
7270
				GM:Destroy()
7271
			end
7272
		end
7273
		
7274
		for _, c in pairs(Connections) do
7275
			c:disconnect()
7276
		end
7277
		
7278
		Connections = {}
7279
		
7280
		--------------------[ REMOTE GUN SETUP ]--------------------------------------
7281
		
7282
		--[[local Vars = {
7283
			ignoreModel = ignoreModel;
7284
			Humanoid = Humanoid;
7285
			Shoulders = Shoulders;
7286
			Torso = Torso;
7287
			Head = Head;
7288
			armC0 = armC0;
7289
			leftArmC1 = S.equipSettings.leftArmC1;
7290
			rightArmC1 = S.equipSettings.rightArmC1;
7291
			LArm = LArm;
7292
			RArm = RArm;
7293
			gunParts = gunParts;
7294
			Handle = Handle;
7295
		}
7296
		gunIgnore, playerFolder, headWeld, headWeld2, animWeld, ABWeld, LWeld, RWeld, LWeld2, RWeld2, LLegWeld, RLegWeld, gunParts2 = gunSetup:InvokeServer(Vars)]]
7297
		
7298
		--------------------[ CREATING IGNORE MODELS ]--------------------------------
7299
		
7300
		gunIgnore = Instance.new("Model")
7301
		gunIgnore.Name = "gunIgnore_"..Player.Name
7302
		gunIgnore.Parent = ignoreModel
7303
		
7304
		--------------------[ MODIFYING THE PLAYER ]----------------------------------
7305
		
7306
		Player.CameraMode = Enum.CameraMode.LockFirstPerson
7307
		Cam.CameraType = Enum.CameraType.Scriptable
7308
		Cam.FieldOfView = 80
7309
		UIS.MouseBehavior = Enum.MouseBehavior.LockCenter
7310
		UIS.MouseIconEnabled = false
7311
		
7312
		local initialX, initialY = getYawPitch(Cam.CoordinateFrame)
7313
		camAng = -VEC2(initialX, initialY)
7314
		
7315
		mainGUI.Parent = Player.PlayerGui
7316
		
7317
		setUpGUI()
7318
		updateHealth()
7319
		
7320
		if S.selectFire then
7321
			local currentMode = Modes[((rawFireMode - 1) % numModes) + 1]
7322
			if currentMode == "AUTO" then
7323
				fireFunction = autoFire
7324
			elseif currentMode == "BURST" then
7325
				fireFunction = burstFire
7326
			elseif currentMode == "SEMI" then
7327
				fireFunction = semiFire
7328
			else
7329
				fireFunction = nil
7330
			end
7331
		else
7332
			if S.gunType.Semi then
7333
				fireFunction = semiFire
7334
			elseif S.gunType.Auto then
7335
				fireFunction = autoFire
7336
			elseif S.gunType.Burst then
7337
				fireFunction = burstFire
7338
			else
7339
				fireFunction = nil
7340
			end
7341
		end
7342
		
7343
		changePlayerTrans(Char, 1)
7344
		
7345
		Humanoid.AutoRotate = false
7346
		
7347
		Shoulders.Right.Part1 = nil
7348
		Shoulders.Left.Part1 = nil
7349
7350
		playerFolder = Instance.new("Model")
7351
		playerFolder.Name = "playerFolder"
7352
		playerFolder.Parent = gunIgnore
7353
		
7354
		local headBase = Instance.new("Part")
7355
		headBase.Transparency = 1
7356
		headBase.Name = "headBase"
7357
		headBase.CanCollide = false
7358
		headBase.FormFactor = Enum.FormFactor.Custom
7359
		headBase.Size = V3(0.2, 0.2, 0.2)
7360
		headBase.BottomSurface = Enum.SurfaceType.Smooth
7361
		headBase.TopSurface = Enum.SurfaceType.Smooth
7362
		headBase.Parent = playerFolder
7363
		
7364
		headWeld = Instance.new("Weld")
7365
		headWeld.Part0 = Torso
7366
		headWeld.Part1 = headBase
7367
		headWeld.C0 = CF(0, 1.5, 0)
7368
		headWeld.Parent = Torso
7369
		
7370
		headWeld2 = Instance.new("Weld")
7371
		headWeld2.Part0 = headBase
7372
		headWeld2.Part1 = Head
7373
		headWeld2.Parent = headBase
7374
		
7375
		neckClone = Neck:Clone()
7376
		
7377
		--[[local stanceBase = Instance.new("Part")
7378
		stanceBase.Transparency = 1
7379
		stanceBase.Name = "stanceBase"
7380
		stanceBase.CanCollide = false
7381
		stanceBase.FormFactor = Enum.FormFactor.Custom
7382
		stanceBase.Size = V3(0.2, 0.2, 0.2)
7383
		stanceBase.BottomSurface = Enum.SurfaceType.Smooth
7384
		stanceBase.TopSurface = Enum.SurfaceType.Smooth
7385
		stanceBase.Parent = playerFolder
7386
		
7387
		stanceWeld = Instance.new("Weld")
7388
		stanceWeld.Part0 = stanceBase
7389
		stanceWeld.Part1 = Torso
7390
		stanceWeld.Parent = stanceBase]]
7391
		
7392
		local animBase = Instance.new("Part")
7393
		animBase.Transparency = 1
7394
		animBase.Name = "animBase"
7395
		animBase.CanCollide = false
7396
		animBase.FormFactor = Enum.FormFactor.Custom
7397
		animBase.Size = V3(0.2, 0.2, 0.2)
7398
		animBase.BottomSurface = Enum.SurfaceType.Smooth
7399
		animBase.TopSurface = Enum.SurfaceType.Smooth
7400
		animBase.Parent = playerFolder
7401
		
7402
		animWeld = Instance.new("Weld")
7403
		animWeld.Part0 = animBase
7404
		animWeld.Part1 = headBase
7405
		animWeld.Parent = animBase
7406
		
7407
		local ArmBase = Instance.new("Part")
7408
		ArmBase.Transparency = 1
7409
		ArmBase.Name = "ArmBase"
7410
		ArmBase.CanCollide = false
7411
		ArmBase.FormFactor = Enum.FormFactor.Custom
7412
		ArmBase.Size = V3(0.2, 0.2, 0.2)
7413
		ArmBase.BottomSurface = Enum.SurfaceType.Smooth
7414
		ArmBase.TopSurface = Enum.SurfaceType.Smooth
7415
		ArmBase.Parent = playerFolder
7416
		
7417
		ABWeld = Instance.new("Weld")
7418
		ABWeld.Part0 = ArmBase
7419
		ABWeld.Part1 = animBase
7420
		ABWeld.Parent = ArmBase
7421
		
7422
		local LArmBase = Instance.new("Part")
7423
		LArmBase.Transparency = 1
7424
		LArmBase.Name = "LArmBase"
7425
		LArmBase.CanCollide = false
7426
		LArmBase.FormFactor = Enum.FormFactor.Custom
7427
		LArmBase.Size = V3(0.2, 0.2, 0.2)
7428
		LArmBase.BottomSurface = Enum.SurfaceType.Smooth
7429
		LArmBase.TopSurface = Enum.SurfaceType.Smooth
7430
		LArmBase.Parent = playerFolder
7431
		
7432
		local RArmBase = Instance.new("Part")
7433
		RArmBase.Transparency = 1
7434
		RArmBase.Name = "RArmBase"
7435
		RArmBase.CanCollide = false
7436
		RArmBase.FormFactor = Enum.FormFactor.Custom
7437
		RArmBase.Size = V3(0.2, 0.2, 0.2)
7438
		RArmBase.BottomSurface = Enum.SurfaceType.Smooth
7439
		RArmBase.TopSurface = Enum.SurfaceType.Smooth
7440
		RArmBase.Parent = playerFolder
7441
		
7442
		LWeld = Instance.new("Weld")
7443
		LWeld.Name = "LWeld"
7444
		LWeld.Part0 = ArmBase
7445
		LWeld.Part1 = LArmBase
7446
		LWeld.C0 = armC0[1]
7447
		LWeld.C1 = S.equipSettings.leftArmC1
7448
		LWeld.Parent = ArmBase
7449
		
7450
		RWeld = Instance.new("Weld")
7451
		RWeld.Name = "RWeld"
7452
		RWeld.Part0 = ArmBase
7453
		RWeld.Part1 = RArmBase
7454
		RWeld.C0 = armC0[2]
7455
		RWeld.C1 = S.equipSettings.rightArmC1
7456
		RWeld.Parent = ArmBase
7457
		
7458
		LWeld2 = Instance.new("Weld")
7459
		LWeld2.Name = "LWeld"
7460
		LWeld2.Part0 = LArmBase
7461
		LWeld2.Part1 = LArm
7462
		LWeld2.Parent = LArmBase
7463
		
7464
		RWeld2 = Instance.new("Weld")
7465
		RWeld2.Name = "RWeld"
7466
		RWeld2.Part0 = RArmBase
7467
		RWeld2.Part1 = RArm
7468
		RWeld2.Parent = RArmBase
7469
		
7470
		LLegWeld = Instance.new("Weld")
7471
		LLegWeld.Name = "LLegWeld"
7472
		LLegWeld.Part0 = Torso
7473
		LLegWeld.Part1 = nil
7474
		LLegWeld.C0 = CF(-0.5, -2, 0)
7475
		LLegWeld.Parent = Torso
7476
		
7477
		RLegWeld = Instance.new("Weld")
7478
		RLegWeld.Name = "RLegWeld"
7479
		RLegWeld.Part0 = Torso
7480
		RLegWeld.Part1 = nil
7481
		RLegWeld.C0 = CF(0.5, -2, 0)
7482
		RLegWeld.Parent = Torso
7483
		
7484
		if S.playerArms then
7485
			armModel = Instance.new("Model", workspace.FilteringEnabled and playerFolder or Cam)
7486
			
7487
			fakeLArm = LArm:Clone()
7488
			fakeLArm.Parent = armModel
7489
			fakeLArm.Transparency = S.fakeArmSettings.Transparency
7490
			fakeLArm.CanCollide = false
7491
			fakeLArm.Size = S.fakeArmSettings.armSize
7492
			fakeLArm:BreakJoints()
7493
			
7494
			--LArm.Transparency = 1
7495
			
7496
			local fakeLWeld = Instance.new("Weld")
7497
			fakeLWeld.Part0 = fakeLArm
7498
			fakeLWeld.Part1 = LArm
7499
			fakeLWeld.Parent = fakeLArm
7500
			
7501
			fakeRArm = RArm:Clone()
7502
			fakeRArm.Parent = armModel
7503
			fakeRArm.Transparency = S.fakeArmSettings.Transparency
7504
			fakeRArm.CanCollide = false
7505
			fakeRArm.Size = S.fakeArmSettings.armSize
7506
			fakeRArm:BreakJoints()
7507
			
7508
			--RArm.Transparency = 1
7509
			
7510
			local fakeRWeld = Instance.new("Weld")
7511
			fakeRWeld.Part0 = fakeRArm
7512
			fakeRWeld.Part1 = RArm
7513
			fakeRWeld.Parent = fakeRArm
7514
			
7515
			Instance.new("Humanoid", armModel)
7516
			
7517
			if S.fakeArmSettings.characterMeshes then
7518
				for _,Obj in pairs(Char:GetChildren()) do
7519
					if Obj:IsA("CharacterMesh") then
7520
						Obj:Clone().Parent = armModel
7521
					end
7522
				end
7523
			end
7524
			for _,Obj in pairs(Char:GetChildren()) do
7525
				if Obj:IsA("Shirt") then
7526
					Obj:Clone().Parent = armModel
7527
				end
7528
			end
7529
		else
7530
			armTable = createArms()
7531
			if workspace.FilteringEnabled then
7532
				armTable[1].Model.Parent = playerFolder
7533
				armTable[2].Model.Parent = playerFolder
7534
			else
7535
				armTable[1].Model.Parent = Cam--playerFolder
7536
				armTable[2].Model.Parent = Cam--playerFolder
7537
			end
7538
			
7539
			fakeLArm = armTable[1].armPart
7540
			
7541
			--LArm.Transparency = 1
7542
			
7543
			local fakeLWeld = Instance.new("Weld")
7544
			fakeLWeld.Part0 = fakeLArm
7545
			fakeLWeld.Part1 = LArm
7546
			fakeLWeld.Parent = fakeLArm
7547
			
7548
			fakeRArm = armTable[2].armPart
7549
			
7550
			--RArm.Transparency = 1
7551
			
7552
			local fakeRWeld = Instance.new("Weld")
7553
			fakeRWeld.Part0 = fakeRArm
7554
			fakeRWeld.Part1 = RArm
7555
			fakeRWeld.Parent = fakeRArm
7556
		end
7557
		
7558
		--------------------[ MODIFYING THE GUN ]-------------------------------------
7559
		
7560
		for _, Tab in pairs(gunParts) do
7561
			local Weld = Instance.new("Weld")
7562
			Weld.Name = "MainWeld"
7563
			Weld.Part0 = Handle
7564
			Weld.Part1 = Tab.Obj
7565
			Weld.C0 = Tab.Obj.weldCF.Value
7566
			Weld.Parent = Handle
7567
			Tab.Weld = Weld
7568
		end
7569
		
7570
		Grip = RArm:WaitForChild("RightGrip")
7571
		
7572
		local handleCF = Torso.CFrame * CF(0, 0.5, 0) * armC0[2] * S.aimedC1.rightArm:inverse() * Grip.C0
7573
		local handleOffset = AimPart.CFrame:toObjectSpace(Handle.CFrame)
7574
		aimedGripCF = ((Torso.CFrame * CF(headOffset.X, headOffset.Y, 0)) * handleOffset):toObjectSpace(handleCF)
7575
		
7576
		Grip.C1 = S.equipSettings.GripC1
7577
		
7578
		--------------------[ RUNNING PLUGINS ]---------------------------------------
7579
		
7580
		for _, Plugin in pairs(Plugins.OnEquipped) do
7581
			spawn(function()
7582
				Plugin()
7583
			end)
7584
		end
7585
		
7586
		--------------------[ GETTING PLAYER MASS ]-----------------------------------
7587
		
7588
		local connectedParts = HRP:GetConnectedParts(true)
7589
		for _, v in pairs(connectedParts) do
7590
			if v:IsA("BasePart") then
7591
				playerMass = playerMass + v:GetMass()
7592
			end
7593
		end
7594
		
7595
		--------------------[ CONNECTIONS ]-------------------------------------------
7596
		
7597
		INSERT(Connections, Humanoid.Died:connect(function()
7598
			onUnequipped(true)
7599
		end))
7600
		
7601
		INSERT(Connections, Humanoid.Jumping:connect(function()
7602
			if Stance ~= 0 then
7603
				Stand()
7604
			end
7605
		end))
7606
		
7607
		INSERT(Connections, Humanoid.StateChanged:connect(onHumanoidStateChanged))
7608
		
7609
		INSERT(Connections, Humanoid.HealthChanged:connect(updateHealth))
7610
		
7611
		INSERT(Connections, M2.Button1Down:connect(onMB1Down))
7612
		
7613
		INSERT(Connections, M2.Button1Up:connect(onMB1Up))
7614
		
7615
		INSERT(Connections, M2.Button2Down:connect(onMB2Down))
7616
		
7617
		INSERT(Connections, M2.Button2Up:connect(onMB2Up))
7618
		
7619
		INSERT(Connections, M2.KeyDown:connect(keyDown))
7620
		
7621
		INSERT(Connections, M2.KeyUp:connect(keyUp))
7622
		
7623
		if S.sensitivitySettings.scrollToChange then
7624
			INSERT(Connections, M2.WheelForward:connect(onScrollUp))
7625
			INSERT(Connections, M2.WheelBackward:connect(onScrollDown))
7626
		end
7627
		
7628
		if S.AutoKnife then
7629
			INSERT(Connections, RS.Stepped:connect(function()
7630
				local H, P = AdvRayCast(Head.CFrame.p, Head.CFrame.lookVector, S.AutoKnifeDist, nil)
7631
				if H then
7632
					local HitHuman = findFirstClass(H.Parent, "Humanoid")
7633
					if HitHuman and isEnemy(HitHuman) and HitHuman.Health ~= 0 then
7634
						Knife()
7635
					end
7636
				end
7637
			end))
7638
		end
7639
		
7640
		INSERT(Connections, UIS.InputChanged:connect(function(inputObj)
7641
			if inputObj.UserInputType == Enum.UserInputType.MouseMovement then
7642
				local rawCamAng = camAng - (VEC2(RAD(inputObj.Delta.x), RAD(inputObj.Delta.y)) * mouseSensitivity * 0.25)
7643
				camAng = VEC2(rawCamAng.x, (rawCamAng.y > RAD(80) and RAD(80) or rawCamAng.y < RAD(-80) and RAD(-80) or rawCamAng.y))
7644
				
7645
				desiredXOffset = math.min(math.max(inputObj.Delta.x, -S.momentumSettings.maxInput), S.momentumSettings.maxInput)
7646
				desiredYOffset = math.min(math.max(inputObj.Delta.y, -S.momentumSettings.maxInput), S.momentumSettings.maxInput)
7647
			end
7648
		end))
7649
		
7650
		INSERT(Connections, M2.Idle:connect(function(inputObj)
7651
			desiredXOffset = 0
7652
			desiredYOffset = 0
7653
		end))
7654
		
7655
		INSERT(Connections, RS.Stepped:connect(function()
7656
			if tick() - lastBeat > (Humanoid.Health / 75) then
7657
				lastBeat = tick()
7658
				HUD.Health.Tray.Beat:TweenPosition(
7659
					UDim2.new(0, -21, 0, 0),
7660
					Enum.EasingDirection.Out,
7661
					Enum.EasingStyle.Linear,
7662
					0.7 - ((100 - Humanoid.Health) / 400),
7663
					false,
7664
					function()
7665
						HUD.Health.Tray.Beat.Position = UDim2.new(1, 0, 0, 0)
7666
					end
7667
				)
7668
			end
7669
		end))
7670
		
7671
		INSERT(Connections, RS.RenderStepped:connect(function()
7672
			--Main animation
7673
			local animC0, animC1 = getAnimCF()
7674
			animWeld.C0 = animC0
7675
			animWeld.C1 = animC1
7676
			
7677
			--Camera updating
7678
			renderCamera()
7679
		end))
7680
		
7681
		--------------------[ ANIMATE GUN ]-------------------------------------------
7682
		
7683
		tweenJoint(LWeld, nil, S.unAimedC1.leftArm, Sine, S.equipSettings.Time)
7684
		tweenJoint(RWeld, nil, S.unAimedC1.rightArm, Sine, S.equipSettings.Time)
7685
		tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, S.equipSettings.Time)
7686
		spawn(function()
7687
			local T = tick()
7688
			while true do
7689
				if tick() - T > S.equipSettings.Time then break end
7690
				if (not Selected) then break end
7691
				wait()
7692
			end
7693
			equipAnimPlaying = false
7694
		end)
7695
		
7696
		Animate()
7697
	end
7698
end
7699
7700
function onUnequipped(deleteTool)
7701
	if Selected then
7702
		Selected = false
7703
		
7704
		breakReload = true
7705
		
7706
		--------------------[ RUNNING PLUGINS ]---------------------------------------
7707
		
7708
		for _, Plugin in pairs(Plugins.OnUnEquipped) do
7709
			spawn(function()
7710
				Plugin()
7711
			end)
7712
		end
7713
		
7714
		--------------------[ MODIFYING THE PLAYER ]----------------------------------
7715
		
7716
		Cam.FieldOfView = 70
7717
		Cam.CameraType = Enum.CameraType.Custom
7718
		
7719
		UIS.MouseBehavior = Enum.MouseBehavior.Default
7720
		UIS.MouseIconEnabled = true
7721
		
7722
		Player.CameraMode = Enum.CameraMode.Classic
7723
		
7724
		if armTable then
7725
			armTable[1].Model:Destroy()
7726
			armTable[2].Model:Destroy()
7727
		elseif armModel then
7728
			armModel:Destroy()
7729
		end
7730
		
7731
		LLegWeld:Destroy()
7732
		RLegWeld:Destroy()
7733
		
7734
		changePlayerTrans(Char, 0)
7735
		
7736
		mainGUI.Parent = script
7737
		
7738
		Shoulders.Right.Part1 = RArm
7739
		Shoulders.Left.Part1 = LArm
7740
		
7741
		neckClone.Parent = Torso
7742
		headWeld:Destroy()
7743
		
7744
		Humanoid.WalkSpeed = 16
7745
		Humanoid.AutoRotate = true
7746
		
7747
		--------------------[ RESETING THE TOOL ]-------------------------------------
7748
		
7749
		gunIgnore:Destroy()
7750
		
7751
		mouseSensitivity = S.sensitivitySettings.Default
7752
		
7753
		MB1Down = false
7754
		
7755
		playerMass = 0
7756
		
7757
		Aimed = false
7758
		
7759
		camOffsets = {
7760
			guiScope = {
7761
				Rot = V3();
7762
			};
7763
			Reload = {
7764
				Rot = V3();
7765
				Code = nil;
7766
			};
7767
			Recoil = {
7768
				Rot = V3();
7769
				Code = nil;
7770
			};
7771
		}
7772
		
7773
		recoilAnim = {
7774
			Pos = V3();
7775
			Rot = V3();
7776
			Code = nil;
7777
		}
7778
7779
		--Setting the aim variables to unaimed
7780
		spreadZoom = "unAimed"
7781
		scopeMain.Visible = false
7782
		scopeSteady.Visible = false
7783
		aimAlpha = 0
7784
		aimHeadOffset = 0
7785
		jumpAnimMultiplier = 1
7786
		translationDivisor = 7
7787
		rotationMultiplier = S.momentumSettings.Amplitude.unAimed
7788
		armTiltMultiplier = 1
7789
		Scope.BackgroundTransparency = 1
7790
		if S.guiScope then
7791
			spawn(function()
7792
				for _, Obj in pairs(Gun:GetChildren()) do
7793
					if Obj:IsA("BasePart") then
7794
						Obj.LocalTransparencyModifier = 0
7795
					end
7796
				end
7797
			end)
7798
		end
7799
		
7800
		onGround = true
7801
		
7802
		for _, Tab in pairs(gunParts) do
7803
			Tab.Weld:Destroy()
7804
			Tab.Weld = nil
7805
		end
7806
		
7807
		for _,c in pairs(Connections) do
7808
			c:disconnect()
7809
		end
7810
		
7811
		Connections = {}
7812
		
7813
		if deleteTool then
7814
			Cam:ClearAllChildren()
7815
			Gun:Destroy()
7816
		end
7817
		
7818
		wait() --This is here in case you dolphin dived and deselected the tool instantly
7819
		
7820
		if S.stanceSettings.standOnDeselect and Stance ~= 0 then
7821
			crawlCamRot = 0
7822
			isCrawling = false
7823
			stanceSway = 1
7824
			spreadStance = "Stand"
7825
			Stand(true)
7826
		end
7827
		baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
7828
	end
7829
end
7830
7831
Gun.Equipped:connect(onEquipped)
7832
Gun.Unequipped:connect(function() onUnequipped(false) end)
7833
7834
--------------------------------------------------------------------------------------
7835
--------------------[ END PROGRAM ]---------------------------------------------------
7836
--------------------------------------------------------------------------------------
7837
end))
7838
IntValue209.Name = "ignoreCode"
7839
IntValue209.Parent = LocalScript208
7840
Folder210.Name = "Server_Scripts"
7841
Folder210.Parent = LocalScript208
7842
ScreenGui211.Name = "mainGUI"
7843
ScreenGui211.Parent = LocalScript208
7844
ImageLabel212.Name = "hitMarker"
7845
ImageLabel212.Parent = ScreenGui211
7846
ImageLabel212.Transparency = 1
7847
ImageLabel212.Size = UDim2.new(0, 26, 0, 26)
7848
ImageLabel212.Position = UDim2.new(0.5, -13, 0.5, -31)
7849
ImageLabel212.Visible = false
7850
ImageLabel212.BackgroundTransparency = 1
7851
ImageLabel212.ZIndex = 10
7852
ImageLabel212.Image = "http://www.roblox.com/asset/?id=121173757"
7853
NumberValue213.Name = "lastMark"
7854
NumberValue213.Parent = ImageLabel212
7855
Frame214.Name = "crossHair"
7856
Frame214.Parent = ScreenGui211
7857
Frame214.Position = UDim2.new(0.5, 0, 0.5, -18)
7858
Frame214.BackgroundColor3 = Color3.new(1, 1, 1)
7859
Frame214.BorderColor3 = Color3.new(0, 0, 0)
7860
Frame214.BorderSizePixel = 0
7861
ImageLabel215.Parent = Frame214
7862
ImageLabel215.Transparency = 1
7863
ImageLabel215.Size = UDim2.new(0, 300, 0, 300)
7864
ImageLabel215.Position = UDim2.new(0, -150, 0, -150)
7865
ImageLabel215.Visible = false
7866
ImageLabel215.BackgroundColor3 = Color3.new(1, 1, 1)
7867
ImageLabel215.BackgroundTransparency = 1
7868
ImageLabel215.ZIndex = 2
7869
ImageLabel215.Image = "http://www.roblox.com/asset/?id=68308747"
7870
TextLabel216.Name = "Reload"
7871
TextLabel216.Parent = Frame214
7872
TextLabel216.Transparency = 1
7873
TextLabel216.Size = UDim2.new(0, 100, 0, 20)
7874
TextLabel216.Text = "RELOADING..."
7875
TextLabel216.Position = UDim2.new(0, -50, 0, 70)
7876
TextLabel216.Visible = false
7877
TextLabel216.BackgroundColor3 = Color3.new(1, 1, 1)
7878
TextLabel216.BackgroundTransparency = 1
7879
TextLabel216.ZIndex = 2
7880
TextLabel216.Font = Enum.Font.SourceSansBold
7881
TextLabel216.FontSize = Enum.FontSize.Size18
7882
TextLabel216.TextColor3 = Color3.new(1, 1, 1)
7883
TextLabel216.TextStrokeTransparency = 0.5
7884
Frame217.Name = "C"
7885
Frame217.Parent = Frame214
7886
Frame217.Transparency = 1
7887
Frame217.Size = UDim2.new(0, 4, 0, 500)
7888
Frame217.Position = UDim2.new(0, -2, 0, 0)
7889
Frame217.BackgroundColor3 = Color3.new(1, 1, 1)
7890
Frame217.BackgroundTransparency = 1
7891
Frame217.ClipsDescendants = true
7892
TextLabel218.Name = "Line"
7893
TextLabel218.Parent = Frame217
7894
TextLabel218.Size = UDim2.new(0, 2, 0, 15)
7895
TextLabel218.Text = ""
7896
TextLabel218.Position = UDim2.new(0.5, -1, 0, 10)
7897
TextLabel218.BackgroundColor3 = Color3.new(1, 1, 1)
7898
TextLabel218.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
7899
TextLabel218.Font = Enum.Font.SourceSans
7900
TextLabel218.FontSize = Enum.FontSize.Size14
7901
Frame219.Name = "A"
7902
Frame219.Parent = Frame214
7903
Frame219.Transparency = 1
7904
Frame219.Size = UDim2.new(0, 4, 0, 500)
7905
Frame219.Position = UDim2.new(0, -2, 0, -500)
7906
Frame219.BackgroundColor3 = Color3.new(1, 1, 1)
7907
Frame219.BackgroundTransparency = 1
7908
Frame219.ClipsDescendants = true
7909
TextLabel220.Name = "Line"
7910
TextLabel220.Parent = Frame219
7911
TextLabel220.Size = UDim2.new(0, 2, 0, 15)
7912
TextLabel220.Text = ""
7913
TextLabel220.Position = UDim2.new(0.5, -1, 1, -25)
7914
TextLabel220.BackgroundColor3 = Color3.new(1, 1, 1)
7915
TextLabel220.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
7916
TextLabel220.Font = Enum.Font.SourceSans
7917
TextLabel220.FontSize = Enum.FontSize.Size14
7918
Frame221.Name = "B"
7919
Frame221.Parent = Frame214
7920
Frame221.Transparency = 1
7921
Frame221.Size = UDim2.new(0, 500, 0, 4)
7922
Frame221.Position = UDim2.new(0, 0, 0, -2)
7923
Frame221.BackgroundColor3 = Color3.new(1, 1, 1)
7924
Frame221.BackgroundTransparency = 1
7925
Frame221.ClipsDescendants = true
7926
TextLabel222.Name = "Line"
7927
TextLabel222.Parent = Frame221
7928
TextLabel222.Size = UDim2.new(0, 15, 0, 2)
7929
TextLabel222.Text = ""
7930
TextLabel222.Position = UDim2.new(0, 10, 0.5, -1)
7931
TextLabel222.BackgroundColor3 = Color3.new(1, 1, 1)
7932
TextLabel222.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
7933
TextLabel222.Font = Enum.Font.SourceSans
7934
TextLabel222.FontSize = Enum.FontSize.Size14
7935
Frame223.Name = "D"
7936
Frame223.Parent = Frame214
7937
Frame223.Transparency = 1
7938
Frame223.Size = UDim2.new(0, 500, 0, 4)
7939
Frame223.Position = UDim2.new(0, -500, 0, -2)
7940
Frame223.BackgroundColor3 = Color3.new(1, 1, 1)
7941
Frame223.BackgroundTransparency = 1
7942
Frame223.ClipsDescendants = true
7943
TextLabel224.Name = "Line"
7944
TextLabel224.Parent = Frame223
7945
TextLabel224.Size = UDim2.new(0, 15, 0, 2)
7946
TextLabel224.Text = ""
7947
TextLabel224.Position = UDim2.new(1, -25, 0.5, -1)
7948
TextLabel224.BackgroundColor3 = Color3.new(1, 1, 1)
7949
TextLabel224.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
7950
TextLabel224.Font = Enum.Font.SourceSans
7951
TextLabel224.FontSize = Enum.FontSize.Size14
7952
Frame225.Name = "HUD"
7953
Frame225.Parent = ScreenGui211
7954
Frame225.Transparency = 0.30000001192093
7955
Frame225.Size = UDim2.new(0, 175, 0, 90)
7956
Frame225.Position = UDim2.new(1, -200, 1, -165)
7957
Frame225.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
7958
Frame225.BackgroundTransparency = 0.30000001192093
7959
Frame225.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
7960
Frame225.BorderSizePixel = 5
7961
Frame225.ZIndex = 10
7962
Frame226.Name = "Ammo"
7963
Frame226.Parent = Frame225
7964
Frame226.Transparency = 1
7965
Frame226.Size = UDim2.new(0, 175, 0, 40)
7966
Frame226.Position = UDim2.new(0, 0, 0, 45)
7967
Frame226.BackgroundTransparency = 1
7968
Frame226.ZIndex = 10
7969
TextLabel227.Name = "Slash"
7970
TextLabel227.Parent = Frame226
7971
TextLabel227.Transparency = 1
7972
TextLabel227.Size = UDim2.new(0, 10, 0, 25)
7973
TextLabel227.Text = "/"
7974
TextLabel227.Position = UDim2.new(0, 90, 0, 0)
7975
TextLabel227.BackgroundTransparency = 1
7976
TextLabel227.ZIndex = 10
7977
TextLabel227.Font = Enum.Font.ArialBold
7978
TextLabel227.FontSize = Enum.FontSize.Size24
7979
TextLabel227.TextColor3 = Color3.new(1, 1, 1)
7980
TextLabel228.Name = "Stored"
7981
TextLabel228.Parent = Frame226
7982
TextLabel228.Transparency = 1
7983
TextLabel228.Size = UDim2.new(0, 70, 0, 25)
7984
TextLabel228.Text = "100"
7985
TextLabel228.Position = UDim2.new(0, 105, 0, 0)
7986
TextLabel228.BackgroundTransparency = 1
7987
TextLabel228.ZIndex = 10
7988
TextLabel228.Font = Enum.Font.ArialBold
7989
TextLabel228.FontSize = Enum.FontSize.Size24
7990
TextLabel228.TextColor3 = Color3.new(1, 1, 1)
7991
TextLabel228.TextXAlignment = Enum.TextXAlignment.Left
7992
TextLabel229.Name = "Background"
7993
TextLabel229.Parent = TextLabel228
7994
TextLabel229.Transparency = 1
7995
TextLabel229.Size = UDim2.new(1, 0, 1, 0)
7996
TextLabel229.Text = "000"
7997
TextLabel229.BackgroundTransparency = 1
7998
TextLabel229.ZIndex = 10
7999
TextLabel229.Font = Enum.Font.ArialBold
8000
TextLabel229.FontSize = Enum.FontSize.Size24
8001
TextLabel229.TextColor3 = Color3.new(0.588235, 0.588235, 0.588235)
8002
TextLabel229.TextTransparency = 0.80000001192093
8003
TextLabel229.TextWrapped = true
8004
TextLabel229.TextXAlignment = Enum.TextXAlignment.Left
8005
TextLabel230.Name = "Clip"
8006
TextLabel230.Parent = Frame226
8007
TextLabel230.Transparency = 1
8008
TextLabel230.Size = UDim2.new(0, 85, 1, 0)
8009
TextLabel230.Text = "9"
8010
TextLabel230.BackgroundTransparency = 1
8011
TextLabel230.ZIndex = 10
8012
TextLabel230.Font = Enum.Font.ArialBold
8013
TextLabel230.FontSize = Enum.FontSize.Size48
8014
TextLabel230.TextColor3 = Color3.new(1, 1, 1)
8015
TextLabel230.TextXAlignment = Enum.TextXAlignment.Right
8016
TextLabel231.Name = "Background"
8017
TextLabel231.Parent = TextLabel230
8018
TextLabel231.Transparency = 1
8019
TextLabel231.Size = UDim2.new(1, 0, 1, 0)
8020
TextLabel231.Text = "000"
8021
TextLabel231.BackgroundTransparency = 1
8022
TextLabel231.ZIndex = 10
8023
TextLabel231.Font = Enum.Font.ArialBold
8024
TextLabel231.FontSize = Enum.FontSize.Size48
8025
TextLabel231.TextColor3 = Color3.new(0.588235, 0.588235, 0.588235)
8026
TextLabel231.TextTransparency = 0.80000001192093
8027
TextLabel231.TextXAlignment = Enum.TextXAlignment.Right
8028
Frame232.Name = "Mode"
8029
Frame232.Parent = Frame225
8030
Frame232.Transparency = 1
8031
Frame232.Size = UDim2.new(0, 85, 0, 20)
8032
Frame232.Position = UDim2.new(0, 90, 0, 65)
8033
Frame232.BackgroundColor3 = Color3.new(1, 1, 1)
8034
Frame232.BackgroundTransparency = 1
8035
Frame232.ZIndex = 10
8036
TextLabel233.Name = "Bracket"
8037
TextLabel233.Parent = Frame232
8038
TextLabel233.Transparency = 1
8039
TextLabel233.Size = UDim2.new(0, 5, 0, 20)
8040
TextLabel233.Text = "["
8041
TextLabel233.BackgroundTransparency = 1
8042
TextLabel233.ZIndex = 10
8043
TextLabel233.Font = Enum.Font.ArialBold
8044
TextLabel233.FontSize = Enum.FontSize.Size18
8045
TextLabel233.TextColor3 = Color3.new(1, 1, 1)
8046
TextLabel233.TextXAlignment = Enum.TextXAlignment.Left
8047
TextLabel234.Name = "Bracket"
8048
TextLabel234.Parent = Frame232
8049
TextLabel234.Transparency = 1
8050
TextLabel234.Size = UDim2.new(0, 5, 0, 20)
8051
TextLabel234.Text = "]"
8052
TextLabel234.Position = UDim2.new(1, -5, 0, 0)
8053
TextLabel234.BackgroundTransparency = 1
8054
TextLabel234.ZIndex = 10
8055
TextLabel234.Font = Enum.Font.ArialBold
8056
TextLabel234.FontSize = Enum.FontSize.Size18
8057
TextLabel234.TextColor3 = Color3.new(1, 1, 1)
8058
TextLabel234.TextXAlignment = Enum.TextXAlignment.Left
8059
TextLabel235.Name = "Main"
8060
TextLabel235.Parent = Frame232
8061
TextLabel235.Transparency = 1
8062
TextLabel235.Size = UDim2.new(1, 0, 0, 20)
8063
TextLabel235.Text = "Auto"
8064
TextLabel235.BackgroundTransparency = 1
8065
TextLabel235.ZIndex = 10
8066
TextLabel235.Font = Enum.Font.SourceSansBold
8067
TextLabel235.FontSize = Enum.FontSize.Size18
8068
TextLabel235.TextColor3 = Color3.new(1, 1, 1)
8069
TextLabel235.TextWrapped = true
8070
Frame236.Name = "Health"
8071
Frame236.Parent = Frame225
8072
Frame236.Transparency = 0.30000001192093
8073
Frame236.Size = UDim2.new(1, 0, 0, 25)
8074
Frame236.Position = UDim2.new(0, 0, 0, -40)
8075
Frame236.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
8076
Frame236.BackgroundTransparency = 0.30000001192093
8077
Frame236.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
8078
Frame236.BorderSizePixel = 5
8079
Frame236.ZIndex = 10
8080
TextLabel237.Name = "Num"
8081
TextLabel237.Parent = Frame236
8082
TextLabel237.Transparency = 1
8083
TextLabel237.Size = UDim2.new(0, 50, 1, 0)
8084
TextLabel237.Text = "100%"
8085
TextLabel237.Position = UDim2.new(1, -50, 0, 0)
8086
TextLabel237.BackgroundColor3 = Color3.new(0, 0, 0)
8087
TextLabel237.BackgroundTransparency = 1
8088
TextLabel237.BorderColor3 = Color3.new(0, 0, 0)
8089
TextLabel237.BorderSizePixel = 0
8090
TextLabel237.ZIndex = 10
8091
TextLabel237.Font = Enum.Font.ArialBold
8092
TextLabel237.FontSize = Enum.FontSize.Size24
8093
TextLabel237.TextColor3 = Color3.new(1, 1, 1)
8094
TextLabel237.TextStrokeTransparency = 0
8095
TextLabel237.TextXAlignment = Enum.TextXAlignment.Right
8096
Frame238.Name = "Tray"
8097
Frame238.Parent = Frame236
8098
Frame238.Transparency = 1
8099
Frame238.Size = UDim2.new(1, -60, 0, 20)
8100
Frame238.Position = UDim2.new(0, 2, 0.5, -10)
8101
Frame238.BackgroundColor3 = Color3.new(0, 0, 0)
8102
Frame238.BackgroundTransparency = 1
8103
Frame238.BorderColor3 = Color3.new(0, 0, 0)
8104
Frame238.BorderSizePixel = 0
8105
Frame238.ZIndex = 10
8106
Frame238.ClipsDescendants = true
8107
Frame239.Name = "Beat"
8108
Frame239.Parent = Frame238
8109
Frame239.Transparency = 1
8110
Frame239.Size = UDim2.new(0, 21, 1, 0)
8111
Frame239.Position = UDim2.new(1, 0, 0, 0)
8112
Frame239.BackgroundColor3 = Color3.new(0, 0, 0)
8113
Frame239.BackgroundTransparency = 1
8114
Frame239.BorderColor3 = Color3.new(0, 0, 0)
8115
Frame239.BorderSizePixel = 0
8116
Frame239.ZIndex = 10
8117
Frame240.Name = "00"
8118
Frame240.Parent = Frame239
8119
Frame240.Size = UDim2.new(0.0476190485, 0, 0, 3)
8120
Frame240.Position = UDim2.new(0, 0, 0.5, -2)
8121
Frame240.BackgroundColor3 = Color3.new(1, 1, 1)
8122
Frame240.BorderColor3 = Color3.new(0, 0, 0)
8123
Frame240.BorderSizePixel = 0
8124
Frame240.ZIndex = 10
8125
Frame241.Name = "01"
8126
Frame241.Parent = Frame239
8127
Frame241.Size = UDim2.new(0.0476190485, 0, 0, 4)
8128
Frame241.Position = UDim2.new(0.0476190485, 0, 0.423076928, -2)
8129
Frame241.BackgroundColor3 = Color3.new(1, 1, 1)
8130
Frame241.BorderColor3 = Color3.new(0, 0, 0)
8131
Frame241.BorderSizePixel = 0
8132
Frame241.ZIndex = 10
8133
Frame242.Name = "02"
8134
Frame242.Parent = Frame239
8135
Frame242.Size = UDim2.new(0.0476190485, 0, 0, 4)
8136
Frame242.Position = UDim2.new(0.095238097, 0, 0.346153855, -2)
8137
Frame242.BackgroundColor3 = Color3.new(1, 1, 1)
8138
Frame242.BorderColor3 = Color3.new(0, 0, 0)
8139
Frame242.BorderSizePixel = 0
8140
Frame242.ZIndex = 10
8141
Frame243.Name = "03"
8142
Frame243.Parent = Frame239
8143
Frame243.Size = UDim2.new(0.0476190485, 0, 0, 4)
8144
Frame243.Position = UDim2.new(0.142857149, 0, 0.269230783, -2)
8145
Frame243.BackgroundColor3 = Color3.new(1, 1, 1)
8146
Frame243.BorderColor3 = Color3.new(0, 0, 0)
8147
Frame243.BorderSizePixel = 0
8148
Frame243.ZIndex = 10
8149
Frame244.Name = "04"
8150
Frame244.Parent = Frame239
8151
Frame244.Size = UDim2.new(0.0476190485, 0, 0, 4)
8152
Frame244.Position = UDim2.new(0.190476194, 0, 0.192307696, -2)
8153
Frame244.BackgroundColor3 = Color3.new(1, 1, 1)
8154
Frame244.BorderColor3 = Color3.new(0, 0, 0)
8155
Frame244.BorderSizePixel = 0
8156
Frame244.ZIndex = 10
8157
Frame245.Name = "05"
8158
Frame245.Parent = Frame239
8159
Frame245.Size = UDim2.new(0.0476190485, 0, 0, 4)
8160
Frame245.Position = UDim2.new(0.238095239, 0, 0.115384616, -2)
8161
Frame245.BackgroundColor3 = Color3.new(1, 1, 1)
8162
Frame245.BorderColor3 = Color3.new(0, 0, 0)
8163
Frame245.BorderSizePixel = 0
8164
Frame245.ZIndex = 10
8165
Frame246.Name = "06"
8166
Frame246.Parent = Frame239
8167
Frame246.Size = UDim2.new(0.0476190485, 0, 0, 4)
8168
Frame246.Position = UDim2.new(0.285714298, 0, 0.0384615399, -2)
8169
Frame246.BackgroundColor3 = Color3.new(1, 1, 1)
8170
Frame246.BorderColor3 = Color3.new(0, 0, 0)
8171
Frame246.BorderSizePixel = 0
8172
Frame246.ZIndex = 10
8173
Frame247.Name = "07"
8174
Frame247.Parent = Frame239
8175
Frame247.Size = UDim2.new(0.0476190485, 0, 0, 4)
8176
Frame247.Position = UDim2.new(0.333333343, 0, 0, -2)
8177
Frame247.BackgroundColor3 = Color3.new(1, 1, 1)
8178
Frame247.BorderColor3 = Color3.new(0, 0, 0)
8179
Frame247.BorderSizePixel = 0
8180
Frame247.ZIndex = 10
8181
Frame248.Name = "08"
8182
Frame248.Parent = Frame239
8183
Frame248.Size = UDim2.new(0.0476190485, 0, 0, 4)
8184
Frame248.Position = UDim2.new(0.380952388, 0, 0.142857149, -2)
8185
Frame248.BackgroundColor3 = Color3.new(1, 1, 1)
8186
Frame248.BorderColor3 = Color3.new(0, 0, 0)
8187
Frame248.BorderSizePixel = 0
8188
Frame248.ZIndex = 10
8189
Frame249.Name = "09"
8190
Frame249.Parent = Frame239
8191
Frame249.Size = UDim2.new(0.0476190485, 0, 0, 4)
8192
Frame249.Position = UDim2.new(0.428571433, 0, 0.285714298, -2)
8193
Frame249.BackgroundColor3 = Color3.new(1, 1, 1)
8194
Frame249.BorderColor3 = Color3.new(0, 0, 0)
8195
Frame249.BorderSizePixel = 0
8196
Frame249.ZIndex = 10
8197
Frame250.Name = "10"
8198
Frame250.Parent = Frame239
8199
Frame250.Size = UDim2.new(0.0476190485, 0, 0, 4)
8200
Frame250.Position = UDim2.new(0.476190478, 0, 0.428571433, -2)
8201
Frame250.BackgroundColor3 = Color3.new(1, 1, 1)
8202
Frame250.BorderColor3 = Color3.new(0, 0, 0)
8203
Frame250.BorderSizePixel = 0
8204
Frame250.ZIndex = 10
8205
Frame251.Name = "11"
8206
Frame251.Parent = Frame239
8207
Frame251.Size = UDim2.new(0.0476190485, 0, 0, 4)
8208
Frame251.Position = UDim2.new(0.523809552, 0, 0.571428597, -2)
8209
Frame251.BackgroundColor3 = Color3.new(1, 1, 1)
8210
Frame251.BorderColor3 = Color3.new(0, 0, 0)
8211
Frame251.BorderSizePixel = 0
8212
Frame251.ZIndex = 10
8213
Frame252.Name = "12"
8214
Frame252.Parent = Frame239
8215
Frame252.Size = UDim2.new(0.0476190485, 0, 0, 4)
8216
Frame252.Position = UDim2.new(0.571428597, 0, 0.714285731, -2)
8217
Frame252.BackgroundColor3 = Color3.new(1, 1, 1)
8218
Frame252.BorderColor3 = Color3.new(0, 0, 0)
8219
Frame252.BorderSizePixel = 0
8220
Frame252.ZIndex = 10
8221
Frame253.Name = "13"
8222
Frame253.Parent = Frame239
8223
Frame253.Size = UDim2.new(0.0476190485, 0, 0, 4)
8224
Frame253.Position = UDim2.new(0.619047642, 0, 0.857142866, -2)
8225
Frame253.BackgroundColor3 = Color3.new(1, 1, 1)
8226
Frame253.BorderColor3 = Color3.new(0, 0, 0)
8227
Frame253.BorderSizePixel = 0
8228
Frame253.ZIndex = 10
8229
Frame254.Name = "14"
8230
Frame254.Parent = Frame239
8231
Frame254.Size = UDim2.new(0.0476190485, 0, 0, 4)
8232
Frame254.Position = UDim2.new(0.666666687, 0, 0.916666687, -2)
8233
Frame254.BackgroundColor3 = Color3.new(1, 1, 1)
8234
Frame254.BorderColor3 = Color3.new(0, 0, 0)
8235
Frame254.BorderSizePixel = 0
8236
Frame254.ZIndex = 10
8237
Frame255.Name = "15"
8238
Frame255.Parent = Frame239
8239
Frame255.Size = UDim2.new(0.0476190485, 0, 0, 4)
8240
Frame255.Position = UDim2.new(0.714285731, 0, 0.833333313, -2)
8241
Frame255.BackgroundColor3 = Color3.new(1, 1, 1)
8242
Frame255.BorderColor3 = Color3.new(0, 0, 0)
8243
Frame255.BorderSizePixel = 0
8244
Frame255.ZIndex = 10
8245
Frame256.Name = "16"
8246
Frame256.Parent = Frame239
8247
Frame256.Size = UDim2.new(0.0476190485, 0, 0, 4)
8248
Frame256.Position = UDim2.new(0.761904776, 0, 0.75, -2)
8249
Frame256.BackgroundColor3 = Color3.new(1, 1, 1)
8250
Frame256.BorderColor3 = Color3.new(0, 0, 0)
8251
Frame256.BorderSizePixel = 0
8252
Frame256.ZIndex = 10
8253
Frame257.Name = "17"
8254
Frame257.Parent = Frame239
8255
Frame257.Size = UDim2.new(0.0476190485, 0, 0, 4)
8256
Frame257.Position = UDim2.new(0.809523821, 0, 0.666666687, -2)
8257
Frame257.BackgroundColor3 = Color3.new(1, 1, 1)
8258
Frame257.BorderColor3 = Color3.new(0, 0, 0)
8259
Frame257.BorderSizePixel = 0
8260
Frame257.ZIndex = 10
8261
Frame258.Name = "18"
8262
Frame258.Parent = Frame239
8263
Frame258.Size = UDim2.new(0.0476190485, 0, 0, 4)
8264
Frame258.Position = UDim2.new(0.857142866, 0, 0.583333313, -2)
8265
Frame258.BackgroundColor3 = Color3.new(1, 1, 1)
8266
Frame258.BorderColor3 = Color3.new(0, 0, 0)
8267
Frame258.BorderSizePixel = 0
8268
Frame258.ZIndex = 10
8269
Frame259.Name = "19"
8270
Frame259.Parent = Frame239
8271
Frame259.Size = UDim2.new(0.0476190485, 0, 0, 4)
8272
Frame259.Position = UDim2.new(0.90476191, 0, 0.5, -2)
8273
Frame259.BackgroundColor3 = Color3.new(1, 1, 1)
8274
Frame259.BorderColor3 = Color3.new(0, 0, 0)
8275
Frame259.BorderSizePixel = 0
8276
Frame259.ZIndex = 10
8277
Frame260.Name = "20"
8278
Frame260.Parent = Frame239
8279
Frame260.Size = UDim2.new(0.0476190485, 0, 0, 4)
8280
Frame260.Position = UDim2.new(0.952000022, 0, 0.49000001, -2)
8281
Frame260.BackgroundColor3 = Color3.new(1, 1, 1)
8282
Frame260.BorderColor3 = Color3.new(0, 0, 0)
8283
Frame260.BorderSizePixel = 0
8284
Frame260.ZIndex = 10
8285
Frame261.Name = "Line"
8286
Frame261.Parent = Frame239
8287
Frame261.Size = UDim2.new(0, 200, 0, 3)
8288
Frame261.Position = UDim2.new(1, 0, 0.5, -2)
8289
Frame261.BackgroundColor3 = Color3.new(1, 1, 1)
8290
Frame261.BorderColor3 = Color3.new(0, 0, 0)
8291
Frame261.BorderSizePixel = 0
8292
Frame261.ZIndex = 10
8293
Frame262.Name = "Line"
8294
Frame262.Parent = Frame239
8295
Frame262.Size = UDim2.new(0, 200, 0, 3)
8296
Frame262.Position = UDim2.new(0, -200, 0.5, -2)
8297
Frame262.BackgroundColor3 = Color3.new(1, 1, 1)
8298
Frame262.BorderColor3 = Color3.new(0, 0, 0)
8299
Frame262.BorderSizePixel = 0
8300
Frame262.ZIndex = 10
8301
Frame263.Name = "Controls"
8302
Frame263.Parent = Frame225
8303
Frame263.Transparency = 0.30000001192093
8304
Frame263.Size = UDim2.new(1, 0, 0, 120)
8305
Frame263.Position = UDim2.new(0, 0, 0, -200)
8306
Frame263.Visible = false
8307
Frame263.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
8308
Frame263.BackgroundTransparency = 0.30000001192093
8309
Frame263.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
8310
Frame263.BorderSizePixel = 5
8311
Frame263.ZIndex = 10
8312
TextLabel264.Name = "Title"
8313
TextLabel264.Parent = Frame263
8314
TextLabel264.Transparency = 1
8315
TextLabel264.Size = UDim2.new(1, 0, 0, 15)
8316
TextLabel264.Text = "CONTROLS"
8317
TextLabel264.BackgroundColor3 = Color3.new(1, 1, 1)
8318
TextLabel264.BackgroundTransparency = 1
8319
TextLabel264.ZIndex = 10
8320
TextLabel264.Font = Enum.Font.SourceSansBold
8321
TextLabel264.FontSize = Enum.FontSize.Size14
8322
TextLabel264.TextColor3 = Color3.new(1, 1, 1)
8323
TextLabel265.Name = "Line"
8324
TextLabel265.Parent = TextLabel264
8325
TextLabel265.Size = UDim2.new(1, 0, 0, 2)
8326
TextLabel265.Text = ""
8327
TextLabel265.Position = UDim2.new(0, 0, 1, 1)
8328
TextLabel265.BackgroundColor3 = Color3.new(1, 1, 0)
8329
TextLabel265.BorderSizePixel = 0
8330
TextLabel265.ZIndex = 10
8331
TextLabel265.Font = Enum.Font.SourceSans
8332
TextLabel265.FontSize = Enum.FontSize.Size14
8333
Frame266.Name = "Grenades"
8334
Frame266.Parent = Frame225
8335
Frame266.Transparency = 1
8336
Frame266.Size = UDim2.new(0, 175, 0, 25)
8337
Frame266.Position = UDim2.new(0, 0, 0, 90)
8338
Frame266.Visible = false
8339
Frame266.BackgroundTransparency = 1
8340
Frame266.ZIndex = 10
8341
Frame267.Name = "Lethals"
8342
Frame267.Parent = Frame266
8343
Frame267.Transparency = 0.80000001192093
8344
Frame267.Size = UDim2.new(0.5, -2, 1, 0)
8345
Frame267.BackgroundColor3 = Color3.new(1, 1, 1)
8346
Frame267.BackgroundTransparency = 0.80000001192093
8347
Frame267.BorderSizePixel = 0
8348
Frame267.ZIndex = 10
8349
ImageLabel268.Name = "Icon"
8350
ImageLabel268.Parent = Frame267
8351
ImageLabel268.Transparency = 1
8352
ImageLabel268.Size = UDim2.new(0, 21, 0, 21)
8353
ImageLabel268.Position = UDim2.new(0, 7, 0, 2)
8354
ImageLabel268.BackgroundColor3 = Color3.new(1, 1, 1)
8355
ImageLabel268.BackgroundTransparency = 1
8356
ImageLabel268.ZIndex = 10
8357
TextLabel269.Name = "Mult"
8358
TextLabel269.Parent = Frame267
8359
TextLabel269.Transparency = 1
8360
TextLabel269.Size = UDim2.new(0, 20, 1, 0)
8361
TextLabel269.Text = "X"
8362
TextLabel269.Position = UDim2.new(0.5, -10, 0, 0)
8363
TextLabel269.BackgroundColor3 = Color3.new(1, 1, 1)
8364
TextLabel269.BackgroundTransparency = 1
8365
TextLabel269.BorderSizePixel = 0
8366
TextLabel269.ZIndex = 10
8367
TextLabel269.Font = Enum.Font.ArialBold
8368
TextLabel269.FontSize = Enum.FontSize.Size18
8369
TextLabel269.TextColor3 = Color3.new(1, 1, 1)
8370
TextLabel270.Name = "Num"
8371
TextLabel270.Parent = Frame267
8372
TextLabel270.Transparency = 1
8373
TextLabel270.Size = UDim2.new(0, 0, 1, 0)
8374
TextLabel270.Text = "0"
8375
TextLabel270.Position = UDim2.new(1, -7, 0, 0)
8376
TextLabel270.BackgroundColor3 = Color3.new(1, 1, 1)
8377
TextLabel270.BackgroundTransparency = 1
8378
TextLabel270.ZIndex = 10
8379
TextLabel270.Font = Enum.Font.ArialBold
8380
TextLabel270.FontSize = Enum.FontSize.Size18
8381
TextLabel270.TextColor3 = Color3.new(1, 1, 1)
8382
TextLabel270.TextXAlignment = Enum.TextXAlignment.Right
8383
Frame271.Name = "Tacticals"
8384
Frame271.Parent = Frame266
8385
Frame271.Transparency = 0.80000001192093
8386
Frame271.Size = UDim2.new(0.5, -2, 1, 0)
8387
Frame271.Position = UDim2.new(0.5, 2, 0, 0)
8388
Frame271.BackgroundColor3 = Color3.new(1, 1, 1)
8389
Frame271.BackgroundTransparency = 0.80000001192093
8390
Frame271.BorderSizePixel = 0
8391
Frame271.ZIndex = 10
8392
ImageLabel272.Name = "Icon"
8393
ImageLabel272.Parent = Frame271
8394
ImageLabel272.Transparency = 1
8395
ImageLabel272.Size = UDim2.new(0, 21, 0, 21)
8396
ImageLabel272.Position = UDim2.new(0, 7, 0, 2)
8397
ImageLabel272.BackgroundColor3 = Color3.new(1, 1, 1)
8398
ImageLabel272.BackgroundTransparency = 1
8399
ImageLabel272.ZIndex = 10
8400
TextLabel273.Name = "Num"
8401
TextLabel273.Parent = Frame271
8402
TextLabel273.Transparency = 1
8403
TextLabel273.Size = UDim2.new(0, 0, 1, 0)
8404
TextLabel273.Text = "0"
8405
TextLabel273.Position = UDim2.new(1, -7, 0, 0)
8406
TextLabel273.BackgroundColor3 = Color3.new(1, 1, 1)
8407
TextLabel273.BackgroundTransparency = 1
8408
TextLabel273.ZIndex = 10
8409
TextLabel273.Font = Enum.Font.ArialBold
8410
TextLabel273.FontSize = Enum.FontSize.Size18
8411
TextLabel273.TextColor3 = Color3.new(1, 1, 1)
8412
TextLabel273.TextXAlignment = Enum.TextXAlignment.Right
8413
TextLabel274.Name = "Mult"
8414
TextLabel274.Parent = Frame271
8415
TextLabel274.Transparency = 1
8416
TextLabel274.Size = UDim2.new(0, 20, 1, 0)
8417
TextLabel274.Text = "X"
8418
TextLabel274.Position = UDim2.new(0.5, -10, 0, 0)
8419
TextLabel274.BackgroundColor3 = Color3.new(1, 1, 1)
8420
TextLabel274.BackgroundTransparency = 1
8421
TextLabel274.BorderSizePixel = 0
8422
TextLabel274.ZIndex = 10
8423
TextLabel274.Font = Enum.Font.ArialBold
8424
TextLabel274.FontSize = Enum.FontSize.Size18
8425
TextLabel274.TextColor3 = Color3.new(1, 1, 1)
8426
Frame275.Name = "gunName"
8427
Frame275.Parent = Frame225
8428
Frame275.Transparency = 1
8429
Frame275.Size = UDim2.new(1, 0, 0, 36)
8430
Frame275.BackgroundColor3 = Color3.new(0.972549, 0.972549, 0.972549)
8431
Frame275.BackgroundTransparency = 1
8432
Frame275.ZIndex = 10
8433
TextLabel276.Name = "Line"
8434
TextLabel276.Parent = Frame275
8435
TextLabel276.Size = UDim2.new(0, 2, 1, 0)
8436
TextLabel276.Text = ""
8437
TextLabel276.BackgroundColor3 = Color3.new(1, 1, 1)
8438
TextLabel276.BorderSizePixel = 0
8439
TextLabel276.ZIndex = 10
8440
TextLabel276.Font = Enum.Font.SourceSans
8441
TextLabel276.FontSize = Enum.FontSize.Size14
8442
TextLabel277.Name = "Line"
8443
TextLabel277.Parent = Frame275
8444
TextLabel277.Size = UDim2.new(1, 0, 0, 2)
8445
TextLabel277.Text = ""
8446
TextLabel277.Position = UDim2.new(0, 0, 1, 0)
8447
TextLabel277.BackgroundColor3 = Color3.new(1, 1, 1)
8448
TextLabel277.BorderSizePixel = 0
8449
TextLabel277.ZIndex = 10
8450
TextLabel277.Font = Enum.Font.SourceSans
8451
TextLabel277.FontSize = Enum.FontSize.Size14
8452
TextLabel278.Name = "Title"
8453
TextLabel278.Parent = Frame275
8454
TextLabel278.Transparency = 1
8455
TextLabel278.Size = UDim2.new(1, -7, 1, 0)
8456
TextLabel278.Text = "Gun"
8457
TextLabel278.Position = UDim2.new(0, 7, 0, 0)
8458
TextLabel278.BackgroundColor3 = Color3.new(1, 1, 1)
8459
TextLabel278.BackgroundTransparency = 1
8460
TextLabel278.ZIndex = 10
8461
TextLabel278.Font = Enum.Font.SourceSansBold
8462
TextLabel278.FontSize = Enum.FontSize.Size36
8463
TextLabel278.TextColor3 = Color3.new(1, 1, 1)
8464
TextLabel278.TextStrokeTransparency = 0
8465
TextLabel278.TextXAlignment = Enum.TextXAlignment.Left
8466
Frame279.Name = "fireSelect"
8467
Frame279.Parent = ScreenGui211
8468
Frame279.Transparency = 1
8469
Frame279.Position = UDim2.new(0.5, 0, 0.5, -18)
8470
Frame279.Visible = false
8471
Frame279.BackgroundColor3 = Color3.new(1, 1, 1)
8472
Frame279.BackgroundTransparency = 1
8473
Frame280.Name = "Modes"
8474
Frame280.Parent = Frame279
8475
Frame280.Transparency = 1
8476
Frame280.BackgroundColor3 = Color3.new(1, 1, 1)
8477
Frame280.BackgroundTransparency = 1
8478
ImageLabel281.Name = "Circle"
8479
ImageLabel281.Parent = Frame279
8480
ImageLabel281.Transparency = 1
8481
ImageLabel281.Size = UDim2.new(0, 120, 0, 120)
8482
ImageLabel281.Position = UDim2.new(0, -60, 0, -60)
8483
ImageLabel281.BackgroundColor3 = Color3.new(1, 1, 1)
8484
ImageLabel281.BackgroundTransparency = 1
8485
ImageLabel281.Image = "http://www.roblox.com/asset/?id=55754953"
8486
ImageLabel281.ImageTransparency = 0.5
8487
ImageLabel282.Name = "Arrow"
8488
ImageLabel282.Parent = Frame279
8489
ImageLabel282.Transparency = 1
8490
ImageLabel282.Size = UDim2.new(0, 40, 0, 20)
8491
ImageLabel282.Position = UDim2.new(0, -20, 0, -140)
8492
ImageLabel282.BackgroundColor3 = Color3.new(1, 1, 1)
8493
ImageLabel282.BackgroundTransparency = 1
8494
ImageLabel282.Image = "http://www.roblox.com/asset/?id=126877530"
8495
Frame283.Name = "Scope"
8496
Frame283.Parent = ScreenGui211
8497
Frame283.Transparency = 1
8498
Frame283.Size = UDim2.new(1, 0, 1, 36)
8499
Frame283.Position = UDim2.new(0, 0, 0, -36)
8500
Frame283.BackgroundColor3 = Color3.new(0, 0, 0)
8501
Frame283.BackgroundTransparency = 1
8502
TextLabel284.Name = "Steady"
8503
TextLabel284.Parent = Frame283
8504
TextLabel284.Transparency = 1
8505
TextLabel284.Size = UDim2.new(0, 120, 0, 20)
8506
TextLabel284.Text = ""
8507
TextLabel284.Position = UDim2.new(0.5, -60, 0.5, 50)
8508
TextLabel284.Visible = false
8509
TextLabel284.BackgroundColor3 = Color3.new(1, 1, 1)
8510
TextLabel284.BackgroundTransparency = 1
8511
TextLabel284.ZIndex = 9
8512
TextLabel284.Font = Enum.Font.ArialBold
8513
TextLabel284.FontSize = Enum.FontSize.Size14
8514
TextLabel284.TextColor3 = Color3.new(1, 1, 0)
8515
TextLabel284.TextStrokeTransparency = 0
8516
Frame285.Name = "Main"
8517
Frame285.Parent = Frame283
8518
Frame285.Transparency = 1
8519
Frame285.Size = UDim2.new(1, 0, 1, 0)
8520
Frame285.Visible = false
8521
Frame285.BackgroundColor3 = Color3.new(1, 1, 1)
8522
Frame285.BackgroundTransparency = 1
8523
ImageLabel286.Name = "ScopeImg2"
8524
ImageLabel286.Parent = Frame285
8525
ImageLabel286.Transparency = 1
8526
ImageLabel286.Size = UDim2.new(0, 20, 0, 20)
8527
ImageLabel286.Position = UDim2.new(0.5, -10, 0, -10)
8528
ImageLabel286.BackgroundColor3 = Color3.new(0, 0, 0)
8529
ImageLabel286.BackgroundTransparency = 1
8530
ImageLabel286.Image = "http://www.roblox.com/asset/?id=184922644"
8531
ImageLabel287.Name = "ScopeImg1"
8532
ImageLabel287.Parent = Frame285
8533
ImageLabel287.Transparency = 1
8534
ImageLabel287.Size = UDim2.new(0, 20, 0, 20)
8535
ImageLabel287.Position = UDim2.new(0.5, -10, 0, -10)
8536
ImageLabel287.BackgroundColor3 = Color3.new(0, 0, 0)
8537
ImageLabel287.BackgroundTransparency = 1
8538
ImageLabel287.Image = "http://www.roblox.com/asset/?id=72002022"
8539
Frame288.Name = "F2"
8540
Frame288.Parent = Frame285
8541
Frame288.Size = UDim2.new(0, 0, 1, 20)
8542
Frame288.Position = UDim2.new(0, -10, 0, -10)
8543
Frame288.BackgroundColor3 = Color3.new(0, 0, 0)
8544
Frame288.BorderColor3 = Color3.new(0, 0, 0)
8545
Frame288.BorderSizePixel = 0
8546
Frame289.Name = "F1"
8547
Frame289.Parent = Frame285
8548
Frame289.Size = UDim2.new(0, 0, 1, 20)
8549
Frame289.Position = UDim2.new(0, -10, 0, -10)
8550
Frame289.BackgroundColor3 = Color3.new(0, 0, 0)
8551
Frame289.BorderColor3 = Color3.new(0, 0, 0)
8552
Frame289.BorderSizePixel = 0
8553
LocalScript290.Name = "Update"
8554
LocalScript290.Parent = Frame285
8555
table.insert(cors,sandbox(LocalScript290,function()
8556
local GUI = script.Parent
8557
8558
function updateScopeDimension()
8559
	GUI.ScopeImg1.Position = UDim2.new(0.5, -10 - (GUI.AbsoluteSize.y / 2), 0, -10)
8560
	GUI.ScopeImg1.Size = UDim2.new(0, 20 + GUI.AbsoluteSize.y, 0, 20 + GUI.AbsoluteSize.y)
8561
	GUI.ScopeImg2.Position = UDim2.new(0.5, -10 - (GUI.AbsoluteSize.y / 2), 0, -10)
8562
	GUI.ScopeImg2.Size = UDim2.new(0, 20 + GUI.AbsoluteSize.y, 0, 20 + GUI.AbsoluteSize.y)
8563
	GUI.F1.Size = UDim2.new(0, 20 + ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 1, 20)
8564
	GUI.F2.Size = UDim2.new(0, 20 + ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 1, 20)
8565
	GUI.F2.Position = UDim2.new(1, -10 - ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 0, -10)
8566
end
8567
8568
wait()
8569
8570
GUI.Changed:connect(updateScopeDimension)
8571
8572
updateScopeDimension()
8573
end))
8574
TextLabel291.Name = "Sens"
8575
TextLabel291.Parent = ScreenGui211
8576
TextLabel291.Transparency = 1
8577
TextLabel291.Size = UDim2.new(0, 100, 0, 20)
8578
TextLabel291.Text = "S: 0.3"
8579
TextLabel291.Position = UDim2.new(0.5, -50, 0.5, 50)
8580
TextLabel291.Visible = false
8581
TextLabel291.BackgroundColor3 = Color3.new(1, 1, 1)
8582
TextLabel291.BackgroundTransparency = 1
8583
TextLabel291.ZIndex = 10
8584
TextLabel291.Font = Enum.Font.SourceSansBold
8585
TextLabel291.FontSize = Enum.FontSize.Size28
8586
TextLabel291.TextColor3 = Color3.new(1, 1, 1)
8587
TextLabel291.TextStrokeTransparency = 0
8588
Part292.Name = "ham"
8589
Part292.Parent = Tool0
8590
Part292.BrickColor = BrickColor.new("Mid gray")
8591
Part292.Rotation = Vector3.new(179.98999, 89.9799957, -179.929993)
8592
Part292.FormFactor = Enum.FormFactor.Plate
8593
Part292.Size = Vector3.new(1, 0.800000012, 1)
8594
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)
8595
Part292.BottomSurface = Enum.SurfaceType.Smooth
8596
Part292.TopSurface = Enum.SurfaceType.Smooth
8597
Part292.Color = Color3.new(0.803922, 0.803922, 0.803922)
8598
Part292.Position = Vector3.new(1435.26599, 48.9021072, -1310.87195)
8599
Part292.Orientation = Vector3.new(0, 90, 0.049999997)
8600
Part292.Color = Color3.new(0.803922, 0.803922, 0.803922)
8601
SpecialMesh293.Parent = Part292
8602
SpecialMesh293.MeshId = "http://www.roblox.com/asset/?id=16646125"
8603
SpecialMesh293.TextureId = "http://www.roblox.com/asset/?id=16432575"
8604
SpecialMesh293.MeshType = Enum.MeshType.FileMesh
8605
Weld294.Parent = Part292
8606
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)
8607
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)
8608
Weld295.Parent = Part292
8609
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)
8610
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)
8611
Weld296.Parent = Part292
8612
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)
8613
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)
8614
Weld297.Parent = Part292
8615
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)
8616
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)
8617
Weld298.Parent = Part292
8618
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)
8619
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)
8620
Weld299.Parent = Part292
8621
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)
8622
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)
8623
Weld300.Parent = Part292
8624
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)
8625
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)
8626
Weld301.Parent = Part292
8627
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)
8628
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)
8629
Weld302.Parent = Part292
8630
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)
8631
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)
8632
Weld303.Parent = Part292
8633
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)
8634
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)
8635
Weld304.Parent = Part292
8636
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)
8637
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)
8638
Weld305.Parent = Part292
8639
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)
8640
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)
8641
Weld306.Parent = Part292
8642
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)
8643
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)
8644
Weld307.Parent = Part292
8645
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)
8646
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)
8647
Weld308.Parent = Part292
8648
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)
8649
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)
8650
Weld309.Parent = Part292
8651
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)
8652
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)
8653
Weld310.Parent = Part292
8654
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)
8655
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)
8656
Weld311.Parent = Part292
8657
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)
8658
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)
8659
Weld312.Parent = Part292
8660
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)
8661
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)
8662
Weld313.Parent = Part292
8663
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)
8664
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)
8665
Weld314.Parent = Part292
8666
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)
8667
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)
8668
Weld315.Parent = Part292
8669
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)
8670
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)
8671
Weld316.Parent = Part292
8672
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)
8673
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)
8674
Weld317.Parent = Part292
8675
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)
8676
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)
8677
Weld318.Parent = Part292
8678
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)
8679
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)
8680
Weld319.Parent = Part292
8681
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)
8682
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)
8683
Weld320.Parent = Part292
8684
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)
8685
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)
8686
Weld321.Parent = Part292
8687
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)
8688
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)
8689
Weld322.Parent = Part292
8690
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)
8691
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)
8692
Weld323.Parent = Part292
8693
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)
8694
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)
8695
Weld324.Parent = Part292
8696
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)
8697
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)
8698
Weld325.Parent = Part292
8699
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)
8700
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)
8701
Weld326.Parent = Part292
8702
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)
8703
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)
8704
Weld327.Parent = Part292
8705
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)
8706
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)
8707
Weld328.Parent = Part292
8708
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)
8709
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)
8710
Weld329.Parent = Part292
8711
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)
8712
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)
8713
Weld330.Parent = Part292
8714
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)
8715
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)
8716
Weld331.Parent = Part292
8717
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)
8718
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)
8719
Weld332.Parent = Part292
8720
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)
8721
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)
8722
Weld333.Parent = Part292
8723
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)
8724
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)
8725
Weld334.Parent = Part292
8726
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)
8727
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)
8728
Weld335.Parent = Part292
8729
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)
8730
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)
8731
Weld336.Parent = Part292
8732
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)
8733
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)
8734
Weld337.Parent = Part292
8735
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)
8736
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)
8737
Weld338.Parent = Part292
8738
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)
8739
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)
8740
Weld339.Parent = Part292
8741
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)
8742
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)
8743
Weld340.Parent = Part292
8744
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)
8745
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)
8746
Weld341.Parent = Part292
8747
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)
8748
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)
8749
Weld342.Parent = Part292
8750
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)
8751
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)
8752
Weld343.Parent = Part292
8753
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)
8754
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)
8755
Weld344.Parent = Part292
8756
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)
8757
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)
8758
Weld345.Parent = Part292
8759
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)
8760
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)
8761
Weld346.Parent = Part292
8762
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)
8763
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)
8764
Weld347.Parent = Part292
8765
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)
8766
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)
8767
Weld348.Parent = Part292
8768
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)
8769
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)
8770
Weld349.Parent = Part292
8771
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)
8772
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)
8773
Weld350.Parent = Part292
8774
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)
8775
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)
8776
Weld351.Parent = Part292
8777
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)
8778
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)
8779
Weld352.Parent = Part292
8780
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)
8781
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)
8782
Weld353.Parent = Part292
8783
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)
8784
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)
8785
Weld354.Parent = Part292
8786
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)
8787
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)
8788
Weld355.Parent = Part292
8789
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)
8790
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)
8791
Weld356.Parent = Part292
8792
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)
8793
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)
8794
Weld357.Parent = Part292
8795
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)
8796
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)
8797
Weld358.Parent = Part292
8798
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)
8799
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)
8800
Weld358.Part0 = Part292
8801
Weld358.Part1 = Part292
8802
Weld359.Parent = Part292
8803
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)
8804
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)
8805
Weld359.Part0 = Part292
8806
Weld359.Part1 = Part292
8807
Weld360.Parent = Part292
8808
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)
8809
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)
8810
Weld360.Part0 = Part292
8811
Weld360.Part1 = Part292
8812
Weld361.Parent = Part292
8813
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)
8814
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)
8815
Weld361.Part0 = Part292
8816
Weld361.Part1 = Part292
8817
Weld362.Parent = Part292
8818
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)
8819
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)
8820
Weld362.Part0 = Part292
8821
Weld362.Part1 = Part292
8822
Weld363.Parent = Part292
8823
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)
8824
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)
8825
Weld363.Part0 = Part292
8826
Weld363.Part1 = Part292
8827
Weld364.Parent = Part292
8828
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)
8829
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)
8830
Weld364.Part0 = Part292
8831
Weld364.Part1 = Part292
8832
Weld365.Parent = Part292
8833
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)
8834
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)
8835
Weld365.Part0 = Part292
8836
Weld365.Part1 = Part292
8837
Weld366.Parent = Part292
8838
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)
8839
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)
8840
Weld366.Part0 = Part292
8841
Weld366.Part1 = Part292
8842
Part367.Name = "BoltBack"
8843
Part367.Parent = Tool0
8844
Part367.BrickColor = BrickColor.new("Really black")
8845
Part367.Transparency = 1
8846
Part367.Rotation = Vector3.new(179.979996, 0, -180)
8847
Part367.Anchored = true
8848
Part367.CanCollide = false
8849
Part367.FormFactor = Enum.FormFactor.Custom
8850
Part367.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
8851
Part367.CFrame = CFrame.new(1436.87451, 48.6733093, -1310.87573, -1, 0, 0, 0, 1, -0.000345999986, 0, -0.000345999986, -1)
8852
Part367.BottomSurface = Enum.SurfaceType.Smooth
8853
Part367.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
8854
Part367.TopSurface = Enum.SurfaceType.Smooth
8855
Part367.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
8856
Part367.Position = Vector3.new(1436.87451, 48.6733093, -1310.87573)
8857
Part367.Orientation = Vector3.new(0.0199999996, 180, 0)
8858
Part367.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
8859
Sound368.Name = "FireSound"
8860
Sound368.Parent = Part367
8861
Sound368.SoundId = "rbxassetid://135039581"
8862
Sound368.Volume = 1
8863
Sound369.Name = "ReloadSound"
8864
Sound369.Parent = Part367
8865
Sound369.SoundId = "rbxassetid://255061162"
8866
Sound369.Volume = 1
8867
Part370.Name = "Bolt"
8868
Part370.Parent = Tool0
8869
Part370.BrickColor = BrickColor.new("Really black")
8870
Part370.Transparency = 1
8871
Part370.Rotation = Vector3.new(179.979996, 0, -180)
8872
Part370.Anchored = true
8873
Part370.CanCollide = false
8874
Part370.FormFactor = Enum.FormFactor.Custom
8875
Part370.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
8876
Part370.CFrame = CFrame.new(1436.87451, 48.6733093, -1310.87573, -1, 0, 0, 0, 1, -0.000345999986, 0, -0.000345999986, -1)
8877
Part370.BottomSurface = Enum.SurfaceType.Smooth
8878
Part370.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
8879
Part370.TopSurface = Enum.SurfaceType.Smooth
8880
Part370.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
8881
Part370.Position = Vector3.new(1436.87451, 48.6733093, -1310.87573)
8882
Part370.Orientation = Vector3.new(0.0199999996, 180, 0)
8883
Part370.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
8884
Sound371.Name = "FireSound"
8885
Sound371.Parent = Part370
8886
Sound371.SoundId = "rbxassetid://135039581"
8887
Sound371.Volume = 1
8888
Sound372.Name = "ReloadSound"
8889
Sound372.Parent = Part370
8890
Sound372.SoundId = "rbxassetid://255061162"
8891
Sound372.Volume = 1
8892
Model373.Name = "Nigger"
8893
Model373.Parent = Tool0
8894
Part374.Name = "Right Leg"
8895
Part374.Parent = Model373
8896
Part374.BrickColor = BrickColor.new("Reddish brown")
8897
Part374.Rotation = Vector3.new(0, -90, 0)
8898
Part374.Anchored = true
8899
Part374.CanCollide = false
8900
Part374.FormFactor = Enum.FormFactor.Symmetric
8901
Part374.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
8902
Part374.CFrame = CFrame.new(1434.75476, 44.2668762, -1310.34082, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8903
Part374.BottomSurface = Enum.SurfaceType.Smooth
8904
Part374.Color = Color3.new(0.411765, 0.25098, 0.156863)
8905
Part374.Position = Vector3.new(1434.75476, 44.2668762, -1310.34082)
8906
Part374.Orientation = Vector3.new(0, -90, 0)
8907
Part374.Color = Color3.new(0.411765, 0.25098, 0.156863)
8908
Decal375.Parent = Part374
8909
Decal375.Texture = "http://www.roblox.com/asset/?id=513989292"
8910
Part376.Name = "Torso"
8911
Part376.Parent = Model373
8912
Part376.BrickColor = BrickColor.new("Reddish brown")
8913
Part376.Rotation = Vector3.new(0, -90, 0)
8914
Part376.Anchored = true
8915
Part376.FormFactor = Enum.FormFactor.Symmetric
8916
Part376.Size = Vector3.new(0.53363061, 0.53363061, 0.266815305)
8917
Part376.CFrame = CFrame.new(1434.75476, 44.8004494, -1310.47424, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8918
Part376.LeftSurface = Enum.SurfaceType.Weld
8919
Part376.RightSurface = Enum.SurfaceType.Weld
8920
Part376.Color = Color3.new(0.411765, 0.25098, 0.156863)
8921
Part376.Position = Vector3.new(1434.75476, 44.8004494, -1310.47424)
8922
Part376.Orientation = Vector3.new(0, -90, 0)
8923
Part376.Color = Color3.new(0.411765, 0.25098, 0.156863)
8924
Decal377.Name = "roblox"
8925
Decal377.Parent = Part376
8926
Motor378.Name = "Right Shoulder"
8927
Motor378.Parent = Part376
8928
Motor378.C0 = CFrame.new(0.266815305, 0.133407652, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
8929
Motor378.C1 = CFrame.new(-0.133407652, 0.133407652, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
8930
Motor378.Part0 = Part376
8931
Motor378.Part1 = Part383
8932
Motor378.MaxVelocity = 0.5
8933
Motor379.Name = "Left Shoulder"
8934
Motor379.Parent = Part376
8935
Motor379.C0 = CFrame.new(-0.266815305, 0.133407652, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8936
Motor379.C1 = CFrame.new(0.133407652, 0.133407652, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8937
Motor379.Part0 = Part376
8938
Motor379.Part1 = Part385
8939
Motor379.MaxVelocity = 0.5
8940
Motor380.Name = "Right Hip"
8941
Motor380.Parent = Part376
8942
Motor380.C0 = CFrame.new(0.266815305, -0.266815305, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
8943
Motor380.C1 = CFrame.new(0.133407652, 0.266815305, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
8944
Motor380.Part0 = Part376
8945
Motor380.Part1 = Part374
8946
Motor380.MaxVelocity = 0.10000000149012
8947
Motor381.Name = "Left Hip"
8948
Motor381.Parent = Part376
8949
Motor381.C0 = CFrame.new(-0.266815305, -0.266815305, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8950
Motor381.C1 = CFrame.new(-0.133407652, 0.266815305, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8951
Motor381.Part0 = Part376
8952
Motor381.Part1 = Part384
8953
Motor381.MaxVelocity = 0.10000000149012
8954
Motor382.Name = "Neck"
8955
Motor382.Parent = Part376
8956
Motor382.C0 = CFrame.new(0, 0.266815305, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
8957
Motor382.C1 = CFrame.new(0, -0.133407652, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
8958
Motor382.Part0 = Part376
8959
Motor382.Part1 = Part386
8960
Motor382.MaxVelocity = 0.10000000149012
8961
Part383.Name = "Right Arm"
8962
Part383.Parent = Model373
8963
Part383.BrickColor = BrickColor.new("Reddish brown")
8964
Part383.Rotation = Vector3.new(0, -90, 0)
8965
Part383.Anchored = true
8966
Part383.CanCollide = false
8967
Part383.FormFactor = Enum.FormFactor.Symmetric
8968
Part383.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
8969
Part383.CFrame = CFrame.new(1434.75476, 44.8004532, -1310.07397, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8970
Part383.Color = Color3.new(0.411765, 0.25098, 0.156863)
8971
Part383.Position = Vector3.new(1434.75476, 44.8004532, -1310.07397)
8972
Part383.Orientation = Vector3.new(0, -90, 0)
8973
Part383.Color = Color3.new(0.411765, 0.25098, 0.156863)
8974
Part384.Name = "Left Leg"
8975
Part384.Parent = Model373
8976
Part384.BrickColor = BrickColor.new("Reddish brown")
8977
Part384.Rotation = Vector3.new(0, -90, 0)
8978
Part384.Anchored = true
8979
Part384.CanCollide = false
8980
Part384.FormFactor = Enum.FormFactor.Symmetric
8981
Part384.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
8982
Part384.CFrame = CFrame.new(1434.75476, 44.2668228, -1310.60767, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8983
Part384.BottomSurface = Enum.SurfaceType.Smooth
8984
Part384.Color = Color3.new(0.411765, 0.25098, 0.156863)
8985
Part384.Position = Vector3.new(1434.75476, 44.2668228, -1310.60767)
8986
Part384.Orientation = Vector3.new(0, -90, 0)
8987
Part384.Color = Color3.new(0.411765, 0.25098, 0.156863)
8988
Part385.Name = "Left Arm"
8989
Part385.Parent = Model373
8990
Part385.BrickColor = BrickColor.new("Reddish brown")
8991
Part385.Rotation = Vector3.new(0, -90, 0)
8992
Part385.Anchored = true
8993
Part385.CanCollide = false
8994
Part385.FormFactor = Enum.FormFactor.Symmetric
8995
Part385.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
8996
Part385.CFrame = CFrame.new(1434.75476, 44.8004341, -1310.87451, 0, 0, -1, 0, 1, 0, 1, 0, 0)
8997
Part385.Color = Color3.new(0.411765, 0.25098, 0.156863)
8998
Part385.Position = Vector3.new(1434.75476, 44.8004341, -1310.87451)
8999
Part385.Orientation = Vector3.new(0, -90, 0)
9000
Part385.Color = Color3.new(0.411765, 0.25098, 0.156863)
9001
Part386.Name = "Head"
9002
Part386.Parent = Model373
9003
Part386.BrickColor = BrickColor.new("Reddish brown")
9004
Part386.Rotation = Vector3.new(0, -90, 0)
9005
Part386.Anchored = true
9006
Part386.FormFactor = Enum.FormFactor.Symmetric
9007
Part386.Size = Vector3.new(0.53363061, 0.266815305, 0.266815305)
9008
Part386.CFrame = CFrame.new(1434.75476, 45.2006721, -1310.47424, 0, 0, -1, 0, 1, 0, 1, 0, 0)
9009
Part386.TopSurface = Enum.SurfaceType.Smooth
9010
Part386.Color = Color3.new(0.411765, 0.25098, 0.156863)
9011
Part386.Position = Vector3.new(1434.75476, 45.2006721, -1310.47424)
9012
Part386.Orientation = Vector3.new(0, -90, 0)
9013
Part386.Color = Color3.new(0.411765, 0.25098, 0.156863)
9014
SpecialMesh387.Parent = Part386
9015
SpecialMesh387.Scale = Vector3.new(1.25, 1.25, 1.25)
9016
SpecialMesh387.Scale = Vector3.new(1.25, 1.25, 1.25)
9017
Decal388.Parent = Part386
9018
Decal388.Texture = "http://www.roblox.com/asset/?id=42030236"
9019
Decal389.Parent = Part386
9020
Decal389.Texture = "http://www.roblox.com/asset/?id=513989292"
9021
Humanoid390.Parent = Model373
9022
Humanoid390.RightLeg = Part374
9023
Humanoid390.LeftLeg = Part384
9024
Humanoid390.Torso = Part376
9025
Humanoid390.MaxHealth = 0
9026
Script391.Name = "Humaniod"
9027
Script391.Parent = Model373
9028
table.insert(cors,sandbox(Script391,function()
9029
local Model = script.Parent
9030
local Backup = Model:clone()
9031
9032
function Respawn()
9033
	Model:breakJoints()
9034
9035
	wait(5)
9036
9037
	script.Parent = Model.Parent
9038
9039
	Model:remove()
9040
	Model = Backup:clone()
9041
	Model.Parent = script.Parent
9042
	Model:makeJoints()
9043
9044
	script:remove()
9045
end
9046
9047
Model.Humanoid.Died:connect(Respawn)
9048
9049
function waitForChild(parent, childName)
9050
	local child = parent:findFirstChild(childName)
9051
9052
	if child then
9053
		return child
9054
	end
9055
9056
	while true do
9057
		print(childName)
9058
9059
		child = parent.ChildAdded:wait()
9060
9061
		if child.Name==childName then
9062
			return child
9063
		end
9064
	end
9065
end
9066
9067
-- declarations
9068
9069
local Figure = script.Parent
9070
local Head = waitForChild(Figure, "Head")
9071
local Humanoid = waitForChild(Figure, "Humanoid")
9072
9073
Figure.PrimaryPart = Head
9074
9075
-- ANIMATION
9076
9077
function Joint(Name, Part0, Part1, C0, C1, MaxVelocity)
9078
	local Motor = Instance.new("Motor")
9079
9080
	Motor.C0 = C0
9081
	Motor.C1 = C1
9082
	Motor.MaxVelocity = MaxVelocity
9083
	Motor.Name = Name
9084
	Motor.Parent = Part0
9085
	Motor.Part0 = Part0
9086
	Motor.Part1 = Part1
9087
end
9088
9089
-- declarations
9090
9091
local Torso = waitForChild(Figure, "Torso")
9092
local LeftArm = waitForChild(Figure, "Left Arm")
9093
local LeftLeg = waitForChild(Figure, "Left Leg")
9094
local RightArm = waitForChild(Figure, "Right Arm")
9095
local RightLeg = waitForChild(Figure, "Right Leg")
9096
9097
local Joints = {
9098
{"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},
9099
{"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},
9100
{"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},
9101
{"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},
9102
{"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}}
9103
9104
Torso:breakJoints()
9105
9106
for _, v in pairs(Joints) do
9107
	Joint(unpack(v))
9108
end
9109
9110
local RightShoulder = waitForChild(Torso, "Right Shoulder")
9111
local LeftShoulder = waitForChild(Torso, "Left Shoulder")
9112
local RightHip = waitForChild(Torso, "Right Hip")
9113
local LeftHip = waitForChild(Torso, "Left Hip")
9114
local Neck = waitForChild(Torso, "Neck")
9115
local Humanoid = waitForChild(Figure, "Humanoid")
9116
local pose = "Standing"
9117
9118
local toolAnim = "None"
9119
local toolAnimTime = 0
9120
9121
-- functions
9122
9123
function onRunning(speed)
9124
	if speed>0 then
9125
		pose = "Running"
9126
	else
9127
		pose = "Standing"
9128
	end
9129
end
9130
9131
function onDied()
9132
	pose = "Dead"
9133
end
9134
9135
function onJumping()
9136
	pose = "Jumping"
9137
end
9138
9139
function onClimbing()
9140
	pose = "Climbing"
9141
end
9142
9143
function onGettingUp()
9144
	pose = "GettingUp"
9145
end
9146
9147
function onFreeFall()
9148
	pose = "FreeFall"
9149
end
9150
9151
function onFallingDown()
9152
	pose = "FallingDown"
9153
end
9154
9155
function onSeated()
9156
	pose = "Seated"
9157
end
9158
9159
function onPlatformStanding()
9160
	pose = "PlatformStanding"
9161
end
9162
9163
function moveJump()
9164
	RightShoulder.MaxVelocity = 0.5
9165
	LeftShoulder.MaxVelocity = 0.5
9166
	RightShoulder.DesiredAngle = 3.14
9167
	LeftShoulder.DesiredAngle = -3.14
9168
	RightHip.DesiredAngle = 0
9169
	LeftHip.DesiredAngle = 0
9170
end
9171
9172
9173
-- same as jump for now
9174
9175
function moveFreeFall()
9176
	RightShoulder.MaxVelocity = 0.5
9177
	LeftShoulder.MaxVelocity = 0.5
9178
	RightShoulder.DesiredAngle = 3.14
9179
	LeftShoulder.DesiredAngle = -3.14
9180
	RightHip.DesiredAngle = 0
9181
	LeftHip.DesiredAngle = 0
9182
end
9183
9184
function moveSit()
9185
	RightShoulder.MaxVelocity = 0.15
9186
	LeftShoulder.MaxVelocity = 0.15
9187
	RightShoulder.DesiredAngle = 3.14 /2
9188
	LeftShoulder.DesiredAngle = -3.14 /2
9189
	RightHip.DesiredAngle = 3.14 /2
9190
	LeftHip.DesiredAngle = -3.14 /2
9191
end
9192
9193
function getTool()	
9194
	for _, kid in ipairs(Figure:GetChildren()) do
9195
		if kid.className == "Tool" then return kid end
9196
	end
9197
	return nil
9198
end
9199
9200
function getToolAnim(tool)
9201
	for _, c in ipairs(tool:GetChildren()) do
9202
		if c.Name == "toolanim" and c.className == "StringValue" then
9203
			return c
9204
		end
9205
	end
9206
	return nil
9207
end
9208
9209
function animateTool()
9210
	
9211
	if (toolAnim == "None") then
9212
		RightShoulder.DesiredAngle = 1.57
9213
		return
9214
	end
9215
9216
	if (toolAnim == "Slash") then
9217
		RightShoulder.MaxVelocity = 0.5
9218
		RightShoulder.DesiredAngle = 0
9219
		return
9220
	end
9221
9222
	if (toolAnim == "Lunge") then
9223
		RightShoulder.MaxVelocity = 0.5
9224
		LeftShoulder.MaxVelocity = 0.5
9225
		RightHip.MaxVelocity = 0.5
9226
		LeftHip.MaxVelocity = 0.5
9227
		RightShoulder.DesiredAngle = 1.57
9228
		LeftShoulder.DesiredAngle = 1.0
9229
		RightHip.DesiredAngle = 1.57
9230
		LeftHip.DesiredAngle = 1.0
9231
		return
9232
	end
9233
end
9234
9235
function move(time)
9236
	local amplitude
9237
	local frequency
9238
  
9239
	if (pose == "Jumping") then
9240
		moveJump()
9241
		return
9242
	end
9243
9244
	if (pose == "FreeFall") then
9245
		moveFreeFall()
9246
		return
9247
	end
9248
 
9249
	if (pose == "Seated") then
9250
		moveSit()
9251
		return
9252
	end
9253
9254
	local climbFudge = 0
9255
	
9256
	if (pose == "Running") then
9257
		RightShoulder.MaxVelocity = 0.15
9258
		LeftShoulder.MaxVelocity = 0.15
9259
		amplitude = 1
9260
		frequency = 9
9261
	elseif (pose == "Climbing") then
9262
		RightShoulder.MaxVelocity = 0.5 
9263
		LeftShoulder.MaxVelocity = 0.5
9264
		amplitude = 1
9265
		frequency = 9
9266
		climbFudge = 3.14
9267
	else
9268
		amplitude = 0.1
9269
		frequency = 1
9270
	end
9271
9272
	desiredAngle = amplitude * math.sin(time*frequency)
9273
9274
	RightShoulder.DesiredAngle = desiredAngle + climbFudge
9275
	LeftShoulder.DesiredAngle = desiredAngle - climbFudge
9276
	RightHip.DesiredAngle = -desiredAngle
9277
	LeftHip.DesiredAngle = -desiredAngle
9278
9279
9280
	local tool = getTool()
9281
9282
	if tool then
9283
	
9284
		animStringValueObject = getToolAnim(tool)
9285
9286
		if animStringValueObject then
9287
			toolAnim = animStringValueObject.Value
9288
			-- message recieved, delete StringValue
9289
			animStringValueObject.Parent = nil
9290
			toolAnimTime = time + .3
9291
		end
9292
9293
		if time > toolAnimTime then
9294
			toolAnimTime = 0
9295
			toolAnim = "None"
9296
		end
9297
9298
		animateTool()
9299
9300
		
9301
	else
9302
		toolAnim = "None"
9303
		toolAnimTime = 0
9304
	end
9305
end
9306
9307
9308
-- connect events
9309
9310
Humanoid.Died:connect(onDied)
9311
Humanoid.Running:connect(onRunning)
9312
Humanoid.Jumping:connect(onJumping)
9313
Humanoid.Climbing:connect(onClimbing)
9314
Humanoid.GettingUp:connect(onGettingUp)
9315
Humanoid.FreeFalling:connect(onFreeFall)
9316
Humanoid.FallingDown:connect(onFallingDown)
9317
Humanoid.Seated:connect(onSeated)
9318
Humanoid.PlatformStanding:connect(onPlatformStanding)
9319
9320
-- util
9321
9322
function waitForChild(parent, childName)
9323
	local child = parent:findFirstChild(childName)
9324
	if child then return child end
9325
	while true do
9326
		child = parent.ChildAdded:wait()
9327
		if child.Name==childName then return child end
9328
	end
9329
end
9330
9331
function newSound(id)
9332
	local sound = Instance.new("Sound")
9333
	sound.SoundId = id
9334
	sound.archivable = false
9335
	sound.Parent = script.Parent.Head
9336
	return sound
9337
end
9338
9339
-- declarations
9340
9341
local sDied = newSound("rbxasset://sounds/uuhhh.wav")
9342
local sFallingDown = newSound("rbxasset://sounds/splat.wav")
9343
local sFreeFalling = newSound("rbxasset://sounds/swoosh.wav")
9344
local sGettingUp = newSound("rbxasset://sounds/hit.wav")
9345
local sJumping = newSound("rbxasset://sounds/button.wav")
9346
local sRunning = newSound("rbxasset://sounds/bfsl-minifigfoots1.mp3")
9347
sRunning.Looped = true
9348
9349
-- functions
9350
9351
function onSoundDied()
9352
	sDied:Play()
9353
end
9354
9355
function onState(state, sound)
9356
	if state then
9357
		sound:Play()
9358
	else
9359
		sound:Pause()
9360
	end
9361
end
9362
9363
function onSoundRunning(speed)
9364
	if speed>0 then
9365
		sRunning:Play()
9366
	else
9367
		sRunning:Pause()
9368
	end
9369
end
9370
9371
-- connect up
9372
9373
Humanoid.Died:connect(onSoundDied)
9374
Humanoid.Running:connect(onSoundRunning)
9375
Humanoid.Jumping:connect(function(state) onState(state, sJumping) end)
9376
Humanoid.GettingUp:connect(function(state) onState(state, sGettingUp) end)
9377
Humanoid.FreeFalling:connect(function(state) onState(state, sFreeFalling) end)
9378
Humanoid.FallingDown:connect(function(state) onState(state, sFallingDown) end)
9379
9380
local runService = game:service("RunService");
9381
9382
delay(0, function() 
9383
	while Figure.Parent~=nil do
9384
		local _, time = wait(0.1)
9385
		move(time)
9386
	end
9387
end)
9388
9389
-- regeneration
9390
while true do
9391
	local s = wait(1)
9392
	local health = Humanoid.Health
9393
9394
	if health > 0 and health < Humanoid.MaxHealth then
9395
		health = health + 0.01 * s * Humanoid.MaxHealth
9396
9397
		if health * 1.05 < Humanoid.MaxHealth then
9398
			Humanoid.Health = health
9399
		else
9400
			Humanoid.Health = Humanoid.MaxHealth
9401
		end
9402
	end
9403
end
9404
end))
9405
Shirt392.Name = "Shirt"
9406
Shirt392.Parent = Model373
9407
Shirt392.ShirtTemplate = "http://www.roblox.com/asset/?id=22746098"
9408
Pants393.Parent = Model373
9409
Pants393.PantsTemplate = "http://www.roblox.com/asset/?id=8173404"
9410
Part394.Name = "hanger"
9411
Part394.Parent = Model373
9412
Part394.Material = Enum.Material.Fabric
9413
Part394.BrickColor = BrickColor.new("Brick yellow")
9414
Part394.Rotation = Vector3.new(0, 90, 0)
9415
Part394.Anchored = true
9416
Part394.Size = Vector3.new(0.0533630624, 3.41790414, 0.0827127546)
9417
Part394.CFrame = CFrame.new(1434.76477, 47.0219231, -1310.42761, 0, 0, 1, 0, 1, 0, -1, 0, 0)
9418
Part394.Color = Color3.new(0.843137, 0.772549, 0.603922)
9419
Part394.Position = Vector3.new(1434.76477, 47.0219231, -1310.42761)
9420
Part394.Orientation = Vector3.new(0, 90, 0)
9421
Part394.Color = Color3.new(0.843137, 0.772549, 0.603922)
9422
for i,v in pairs(mas:GetChildren()) do
9423
	v.Parent = game:GetService("Players").LocalPlayer.Backpack
9424
	pcall(function() v:MakeJoints() end)
9425
end
9426
mas:Destroy()
9427
for i,v in pairs(cors) do
9428
	spawn(function()
9429
		pcall(v)
9430
	end)
9431
end