View difference between Paste ID: Myc5Jp84 and fUZavdkM
SHOW: | | - or go back to the newest paste.
1
if script == nil then return end
2
3
4-
Player = script:FindFirstChild("Player") ~= nil and script.Player.Value or game:GetService("Players"):FindFirstChild("MlgNoscoperStabber")
4+
Player = script:FindFirstChild("Player") ~= nil and script.Player.Value or game:GetService("Players"):FindFirstChild("MlgDerpBoy")
5
Name = "M110 SASS"
6
MC = BrickColor.new("Bright blue")
7
DC = BrickColor.new("Black")
8
GC = BrickColor.new("Bright Blue")
9
MR = 0
10
GR = 0
11
MagSize = 10
12
Sight = 1
13
Grip = 2
14
Reliability = 75
15
AimSpeed = 8
16
Ready = true
17
Jammed = false
18
Attachment = false
19
Mode = 0
20
WSPenalty = 12
21
Spread = 1000000
22
selected = false
23
canDual = false
24
dual = false
25
Button1Down = false
26
damage = 32
27
canFire = true
28
canFire2 = false
29
readyTime = 0.4
30
automatic = false
31
burst = false
32
burstCount = 0
33
burstCountMax = 3
34
canSilence = false
35
silenced = false
36
canZoom = false
37
zoom = false
38
switchToSingle = false
39
switchToBurst = false
40
switchToAutomatic = false
41
42
43
ammoGui = Instance.new("ScreenGui")
44
ammoGui.Name = Name
45
local frame = Instance.new("Frame")
46
frame.Name = "Frame"
47
frame.Size = UDim2.new(0, 165, 0, 60)
48
frame.Position = UDim2.new(0, 0, 1, -400)
49
frame.BackgroundColor3 = Color3.new(1, 1, 1)
50
frame.BorderColor3 = Color3.new(0, 0, 0)
51
frame.Parent = ammoGui
52
local label = Instance.new("TextLabel")
53
label.Name = "Weapon"
54
label.Text = "Weapon: " ..Name
55
label.Size = UDim2.new(1, 0, 0, 20)
56
label.Position = UDim2.new(0, 0, 0, 0)
57
label.BackgroundColor3 = Color3.new(1, 0, 0)
58
label.BorderColor3 = Color3.new(0, 0, 0)
59
label.Parent = frame
60
local label = Instance.new("TextLabel")
61
label.Name = "MagazinePrefix"
62
label.Text = "    Magazine:"
63
label.TextXAlignment = "Left"
64
label.Size = UDim2.new(1, 0, 0, 20)
65
label.Position = UDim2.new(0, 0, 0, 20)
66
label.BackgroundColor3 = Color3.new(1, 1, 1)
67
label.BorderColor3 = Color3.new(0, 0, 0)
68
label.Parent = frame
69
local label = Instance.new("TextLabel")
70
label.Name = "Magazine"
71
label.Text = "0/0"
72
label.TextXAlignment = "Right"
73
label.Size = UDim2.new(1, 0, 0, 20)
74
label.Position = UDim2.new(0, -10, 0, 20)
75
label.BackgroundTransparency = 1
76
label.BorderSizePixel = 0
77
label.Parent = frame
78
local label = Instance.new("TextLabel")
79
label.Name = "AmmoPrefix"
80
label.Text = "    7.62x51mm:"
81
label.TextXAlignment = "Left"
82
label.Size = UDim2.new(1, 0, 0, 20)
83
label.Position = UDim2.new(0, 0, 0, 40)
84
label.BackgroundColor3 = Color3.new(1, 1, 1)
85
label.BorderColor3 = Color3.new(0, 0, 0)
86
label.Parent = frame
87
local label = Instance.new("TextLabel")
88
label.Name = "Ammo"
89
label.Text = "0/0"
90
label.TextXAlignment = "Right"
91
label.Size = UDim2.new(1, 0, 0, 20)
92
label.Position = UDim2.new(0, -10, 0, 40)
93
label.BackgroundTransparency = 1
94
label.BorderSizePixel = 0
95
label.Parent = frame
96
97
98
function updateGui()
99
	if selected == false then return end
100
	if Player:FindFirstChild("PlayerGui") == nil then Instance.new("PlayerGui").Parent = Player end
101
	if Player.PlayerGui:FindFirstChild(Name) == nil then
102
		ammoGui:Clone().Parent = Player.PlayerGui
103
	end
104
	Player.PlayerGui[Name].Frame.Magazine.Text = tostring(magazine.Value).. "/" ..tostring(magazineMax.Value)
105
	Player.PlayerGui[Name].Frame.Ammo.Text = tostring(ammo.Value).. "/" ..tostring(ammoMax.Value)
106
end
107
108
109
function makeParts(format)
110
	local model = Instance.new("Model")
111
	model.Name = Name
112
	local pm = Instance.new("Part")
113
	pm.Name = "Handle"
114
	pm.formFactor = "Symmetric"
115
	pm.Size = Vector3.new(1, 1, 1)
116
	pm.BrickColor = MC
117
	pm.Reflectance = MR
118
	pm.CanCollide = false
119
	pm.Locked = true
120
	pm.TopSurface = 0
121
	pm.BottomSurface = 0
122
	pm.Parent = model
123
	local m = Instance.new("BlockMesh")
124
	m.Scale = Vector3.new(0.3, 1.1, 0.41)
125
	m.Offset = Vector3.new(0, -0.14, 0.07)
126
	m.Parent = pm
127
	if format ~= nil then
128
		local w = Instance.new("Weld")
129
		w.Part0 = pm
130
		if format == "RightHand" then
131
			w.Part1 = Player.Character:FindFirstChild("Right Arm")
132
			w.C0 = CFrame.new(0, 1.15, 0.7)
133
			w.C1 = CFrame.new()
134
		elseif format == "RightHolster" then
135
			w.Part1 = Player.Character:FindFirstChild("Torso")
136
			w.C0 = CFrame.new(0.65, -0.85, 0.4) * CFrame.fromEulerAnglesXYZ(math.rad(32), math.rad(-90), 0)
137
			w.C1 = CFrame.new()
138
			model.Name = Name.. " (Holstered)"
139
		end
140
		w.Parent = pm
141
		model.Parent = Player.Character
142
	end
143
	--[[
144
	sniper1  http://www.roblox.com/asset/?id=1868836
145
	equip    http://www.roblox.com/asset/?id=13510737
146
	fire1     http://www.roblox.com/asset/?id=2760979
147
	fire2    http://www.roblox.com/asset/?id=13510352
148
	fire3    http://www.roblox.com/asset/?id=2692806
149
	fire4    http://www.roblox.com/asset/?id=2691586
150
	fire5    http://www.roblox.com/asset/?id=2920959
151
	fire6    http://www.roblox.com/asset/?id=2697431
152
	fire7    http://www.roblox.com/asset/?id=2920959
153
	reload1   http://www.roblox.com/asset/?id=2691591
154
	reload2   http://www.roblox.com/asset/?id=2697432
155
	reload3  http://www.roblox.com/asset/?id=2920960
156
	reload4  http://www.roblox.com/asset/?id=2761842
157
	shotgun1 http://www.roblox.com/asset/?id=2697294
158
	--]]
159
	local s = Instance.new("Sound")
160
	s.Name = "Fire"
161
	s.SoundId = "http://www.roblox.com/Asset/?id=10209875"
162
	s.Volume = 1
163
	s.Pitch = 1.4
164
	s.Looped = false
165
	s.Parent = pm
166
	local s = Instance.new("Sound")
167
	s.Name = "Fire2"
168
	s.SoundId = "http://roblox.com/asset/?id=2691586"
169
	s.Volume = 1
170
	s.Pitch = 3
171
	s.Looped = false
172
	s.Parent = pm	
173
	local s = Instance.new("Sound")
174
	s.Name = "Lock"
175
	s.SoundId = "http://www.roblox.com/Asset/?id=10209845"
176
	s.Volume = 1
177
	s.Pitch = 3
178
	s.Looped = false
179
	s.Parent = pm
180
	local s = Instance.new("Sound")
181
	s.Name = "Jam"
182
	s.SoundId = "http://www.roblox.com/Asset/?id=10209636"
183
	s.Volume = 1
184
	s.Pitch = 2
185
	s.Looped = false
186
	s.Parent = pm		
187
	local s = Instance.new("Sound")
188
	s.Name = "Release"
189
	s.SoundId = "http://www.roblox.com/Asset/?id=10209813"
190
	s.Volume = 1
191
	s.Pitch = 4
192
	s.Looped = false
193
	s.Parent = pm
194
	local s = Instance.new("Sound")
195
	s.Name = "Reload"
196
	s.SoundId = "http://www.roblox.com/asset/?id=2697295"
197
	s.Volume = 1
198
	s.Pitch = 7.5
199
	s.Looped = false
200
	s.Parent = pm
201
	local s = Instance.new("Sound")
202
	s.Name = "Empty"
203
	s.SoundId = "http://www.roblox.com/asset/?id=2697295"
204
	s.Volume = 1
205
	s.Pitch = 5
206
	s.Looped = false
207
	s.Parent = pm
208
	local s = Instance.new("Sound")
209
	s.Name = "Switch"
210
	s.SoundId = "http://www.roblox.com/asset/?id=2697295"
211
	s.Volume = 1
212
	s.Pitch = 10
213
	s.Looped = false
214
	s.Parent = pm
215
	local s = Instance.new("Sound")
216
	s.Name = "Equip"
217
	s.SoundId = "http://www.roblox.com/Asset/?id=10209845"
218
	s.Volume = 1
219
	s.Pitch = 1
220
	s.Looped = false
221
	s.Parent = pm
222
	local s = Instance.new("Sound")
223
	s.Name = "Bullet"
224
	s.SoundId = "http://www.roblox.com/Asset/?id=18426149"
225
	s.Volume = 1
226
	s.Pitch = 1
227
	s.Looped = false
228
	s.Parent = pm		
229
	local p = Instance.new("Part")
230
	p.Name = "ShellOut"
231
	p.formFactor = "Symmetric"
232
	p.Size = Vector3.new(1, 1, 1)
233
	p.Transparency = 1
234
	p.Locked = true
235
	p.CanCollide = false
236
	p.TopSurface = 0
237
	p.BottomSurface = 0
238
	p.Parent = model
239
	local w = Instance.new("Weld")
240
	w.Part0 = p
241
	w.Part1 = pm
242
	w.C0 = CFrame.new(0, 0, 1) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
243
	w.C1 = CFrame.new()
244
	w.Parent = p
245
	local p = Instance.new("Part")
246
	p.Name = "Grip"
247
	p.formFactor = "Symmetric"
248
	p.Size = Vector3.new(1, 1, 1)
249
	p.BrickColor = GC
250
	p.Reflectance = GR
251
	p.CanCollide = false
252
	p.Locked = true
253
	p.TopSurface = 0
254
	p.BottomSurface = 0
255
	p.Parent = model
256
	local m = Instance.new("BlockMesh")
257
	m.Scale = Vector3.new(0.29, 0.38, 0.7)
258
	m.Parent = p
259
	local w = Instance.new("Weld")
260
	w.Part0 = p
261
	w.Part1 = pm
262
	w.C0 = CFrame.new(0, -0.15, -0.5) * CFrame.fromEulerAnglesXYZ(math.rad(15), 0, 0)
263
	w.C1 = CFrame.new()
264
	w.Parent = p
265
	local p = Instance.new("Part")
266
	p.Name = "Magazine Housing"
267
	p.formFactor = "Symmetric"
268
	p.Size = Vector3.new(1, 1, 1)
269
	p.BrickColor = MC
270
	p.Reflectance = MR
271
	p.CanCollide = false
272
	p.Locked = true
273
	p.TopSurface = 0
274
	p.BottomSurface = 0
275
	p.Parent = model
276
	local m = Instance.new("BlockMesh")
277
	m.Scale = Vector3.new(0.3, 0.46, 0.4)
278
	m.Parent = p
279
	local w = Instance.new("Weld")
280
	w.Part0 = p
281
	w.Part1 = pm
282
	w.C0 = CFrame.new(0, 0.46, -0.21)
283
	w.C1 = CFrame.new()
284
	w.Parent = p
285
	local p = Instance.new("Part")
286
	p.Name = "MagazineHole"
287
	p.formFactor = "Symmetric"
288
	p.Size = Vector3.new(1, 1, 1)
289
	p.BrickColor = BrickColor.new("Really black")
290
	p.CanCollide = false
291
	p.Locked = true
292
	p.TopSurface = 0
293
	p.BottomSurface = 0
294
	p.Parent = model
295
	local m = Instance.new("BlockMesh")
296
	m.Scale = Vector3.new(0.28, 0.44, 0.405)
297
	m.Parent = p
298
	local w = Instance.new("Weld")
299
	w.Part0 = p
300
	w.Part1 = pm
301
	w.C0 = CFrame.new(0, 0.46, -0.21)
302
	w.C1 = CFrame.new()
303
	w.Parent = p	
304
	local pm2 = Instance.new("Part")
305
	pm2.Name = "Magazine"
306
	pm2.formFactor = "Symmetric"
307
	pm2.Size = Vector3.new(1, 1, 1)
308
	pm2.BrickColor = BrickColor.new("Dark stone grey")
309
	pm2.Locked = true
310
	pm2.CanCollide = false
311
	pm2.TopSurface = 0
312
	pm2.BottomSurface = 0
313
	pm2.Parent = model
314
	local m = Instance.new("BlockMesh")
315
	m.Scale = Vector3.new(0.25, 0.43, 0.6)
316
	m.Parent = pm2
317
	local w = Instance.new("Weld")
318
	w.Part0 = pm2
319
	w.Part1 = pm
320
	w.C0 = CFrame.new(0, 0.46, -0.45)
321
	w.C1 = CFrame.new()
322
	w.Parent = pm2
323
	local p = Instance.new("Part")
324
	p.Name = "MagPull"
325
	p.formFactor = "Symmetric"
326
	p.Size = Vector3.new(1, 1, 1)
327
	p.BrickColor = BrickColor.new("Black")
328
	p.Locked = true
329
	p.CanCollide = false
330
	p.TopSurface = 0
331
	p.BottomSurface = 0
332
	p.Parent = model
333
	local m = Instance.new("BlockMesh")
334
	m.Scale = Vector3.new(0.26, 0.44, 0.2)
335
	m.Parent = p
336
	local w = Instance.new("Weld")
337
	w.Part0 = p
338
	w.Part1 = pm2
339
	w.C0 = CFrame.new(0, 0, -0.1)
340
	w.C1 = CFrame.new()
341
	w.Parent = p
342
	local p = Instance.new("Part")
343
	p.Name = "Trigger Housing"
344
	p.formFactor = "Symmetric"
345
	p.Size = Vector3.new(1, 1, 1)
346
	p.BrickColor = MC
347
	p.Reflectance = MR
348
	p.CanCollide = false
349
	p.Locked = true
350
	p.TopSurface = 0
351
	p.BottomSurface = 0
352
	p.Parent = model
353
	local m = Instance.new("BlockMesh")
354
	m.Scale = Vector3.new(0.1, 0.4, 0.025)
355
	m.Parent = p
356
	local w = Instance.new("Weld")
357
	w.Part0 = p
358
	w.Part1 = pm
359
	w.C0 = CFrame.new(0, 0.1, -0.37)
360
	w.C1 = CFrame.new()
361
	w.Parent = p
362
	local p = Instance.new("Part")
363
	p.Name = "Trigger"
364
	p.formFactor = "Symmetric"
365
	p.Size = Vector3.new(1, 1, 1)
366
	p.BrickColor = MC
367
	p.Reflectance = MR
368
	p.CanCollide = false
369
	p.Locked = true
370
	p.TopSurface = 0
371
	p.BottomSurface = 0
372
	p.Parent = model
373
	local m = Instance.new("BlockMesh")
374
	m.Scale = Vector3.new(0.1, 0.05, 0.15)
375
	m.Parent = p
376
	local w = Instance.new("Weld")
377
	w.Part0 = p
378
	w.Part1 = pm
379
	w.C0 = CFrame.new(0, 0.03, -0.275)
380
	w.C1 = CFrame.new()
381
	w.Parent = p
382
	local p = Instance.new("Part")
383
	p.Name = "ForeBarrel"
384
	p.CanCollide = false
385
	p.formFactor = "Symmetric"
386
	p.Size = Vector3.new(1, 1, 1)
387
	p.BrickColor = GC
388
	p.Reflectance = GR
389
	p.Locked = true
390
	p.TopSurface = 0
391
	p.BottomSurface = 0
392
	p.Parent = model
393
	local m = Instance.new("CylinderMesh")
394
	m.Scale = Vector3.new(0.36, 1.2, 0.36)
395
	m.Parent = p
396
	local w = Instance.new("Weld")
397
	w.Part0 = p
398
	w.Part1 = pm
399
	w.C0 = CFrame.new(0, 1.285, -0.04)
400
	w.C1 = CFrame.new()
401
	w.Parent = p
402
	local p = Instance.new("Part")
403
	p.Name = "Rail"
404
	p.CanCollide = false
405
	p.formFactor = "Symmetric"
406
	p.Size = Vector3.new(1, 1, 1)
407
	p.BrickColor = DC
408
	p.Locked = true
409
	p.TopSurface = 0
410
	p.BottomSurface = 0
411
	p.Parent = model
412
	local m = Instance.new("BlockMesh")
413
	m.Scale = Vector3.new(0.36, 1, 0.16)
414
	m.Parent = p
415
	local w = Instance.new("Weld")
416
	w.Part0 = p
417
	w.Part1 = pm
418
	w.C0 = CFrame.new(0, 1.19, -0.04)
419
	w.C1 = CFrame.new()
420
	w.Parent = p
421
	local p = Instance.new("Part")
422
	p.Name = "Rail"
423
	p.CanCollide = false
424
	p.formFactor = "Symmetric"
425
	p.Size = Vector3.new(1, 1, 1)
426
	p.BrickColor = GC
427
	p.Reflectance = MR
428
	p.Locked = true
429
	p.TopSurface = 0
430
	p.BottomSurface = 0
431
	p.Parent = model
432
	local m = Instance.new("BlockMesh")
433
	m.Scale = Vector3.new(0.38, 0.5, 0.18)
434
	m.Parent = p
435
	local w = Instance.new("Weld")
436
	w.Part0 = p
437
	w.Part1 = pm
438
	w.C0 = CFrame.new(0, 0.938, -0.04)
439
	w.C1 = CFrame.new()
440
	w.Parent = p	
441
	local p = Instance.new("Part")
442
	p.Name = "Rail"
443
	p.CanCollide = false
444
	p.formFactor = "Symmetric"
445
	p.Size = Vector3.new(1, 1, 1)
446
	p.BrickColor = GC
447
	p.Reflectance = MR
448
	p.Locked = true
449
	p.TopSurface = 0
450
	p.BottomSurface = 0
451
	p.Parent = model
452
	local m = Instance.new("BlockMesh")
453
	m.Scale = Vector3.new(0.18, 2.08, 0.38)
454
	m.Parent = p
455
	local w = Instance.new("Weld")
456
	w.Part0 = p
457
	w.Part1 = pm
458
	w.C0 = CFrame.new(0, 0.65, -0.04)
459
	w.C1 = CFrame.new()
460
	w.Parent = p
461
	local p = Instance.new("Part")
462
	p.Name = "Center" --------------
463
	p.CanCollide = false
464
	p.formFactor = "Symmetric"
465
	p.Size = Vector3.new(1, 1, 1)
466
	p.BrickColor = MC
467
	p.Reflectance = MR
468
	p.Locked = true
469
	p.TopSurface = 0
470
	p.BottomSurface = 0
471
	p.Parent = model
472
	local m = Instance.new("CylinderMesh")
473
	m.Scale = Vector3.new(0.32, 1.1, 0.32)
474
	m.Parent = p
475
	local w = Instance.new("Weld")
476
	w.Part0 = p
477
	w.Part1 = pm
478
	w.C0 = CFrame.new(0, 0.14, -0.04)
479
	w.C1 = CFrame.new()
480
	w.Parent = p
481
	local p = Instance.new("Part")
482
	p.Name = "CHandleC" --------------
483
	p.CanCollide = false
484
	p.formFactor = "Symmetric"
485
	p.Size = Vector3.new(1, 1, 1)
486
	p.BrickColor = DC
487
	p.Locked = true
488
	p.TopSurface = 0
489
	p.BottomSurface = 0
490
	p.Parent = model
491
	local m = Instance.new("CylinderMesh")
492
	m.Scale = Vector3.new(0.32, 0.1, 0.32)
493
	m.Parent = p
494
	local w = Instance.new("Weld")
495
	w.Part0 = p
496
	w.Part1 = pm
497
	w.C0 = CFrame.new(0, -0.08, -0.38) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
498
	w.C1 = CFrame.new()
499
	w.Parent = p
500
	local p = Instance.new("Part")
501
	p.Name = "CHandleB" --------------
502
	p.CanCollide = false
503
	p.formFactor = "Symmetric"
504
	p.Size = Vector3.new(1, 1, 1)
505
	p.BrickColor = DC
506
	p.Transparency = 1
507
	p.Locked = true
508
	p.TopSurface = 0
509
	p.BottomSurface = 0
510
	p.Parent = model
511
	local m = Instance.new("CylinderMesh")
512
	m.Scale = Vector3.new(0.32, 0.1, 0.32)
513
	m.Parent = p
514
	local w = Instance.new("Weld")
515
	w.Part0 = p
516
	w.Part1 = pm
517
	w.C0 = CFrame.new(0, -0.08, -0.72) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
518
	w.C1 = CFrame.new()
519
	w.Parent = p
520
	local p = Instance.new("Part")
521
	p.Name = "CHandleB1" --------------
522
	p.CanCollide = false
523
	p.formFactor = "Symmetric"
524
	p.Size = Vector3.new(1, 1, 1)
525
	p.BrickColor = DC
526
	p.Transparency = 1
527
	p.Locked = true
528
	p.TopSurface = 0
529
	p.BottomSurface = 0
530
	p.Parent = model
531
	local m = Instance.new("BlockMesh")
532
	m.Scale = Vector3.new(0.15, 0.8, 0.1)
533
	m.Parent = p
534
	local w = Instance.new("Weld")
535
	w.Part0 = p
536
	w.Part1 = pm
537
	w.C0 = CFrame.new(0, -0.3, 0.08)
538
	w.C1 = CFrame.new()
539
	w.Parent = p		
540
	local p = Instance.new("Part")
541
	p.Name = "Bolt" --------------
542
	p.CanCollide = false
543
	p.formFactor = "Symmetric"
544
	p.Size = Vector3.new(1, 1, 1)
545
	p.BrickColor = BrickColor.new("Dark stone grey")
546
	p.Locked = true
547
	p.TopSurface = 0
548
	p.BottomSurface = 0
549
	p.Parent = model
550
	local m = Instance.new("CylinderMesh")
551
	m.Name = "Mesh"
552
	m.Scale = Vector3.new(0.14, 0.3, 0.14)
553
	m.Offset = Vector3.new(0, 0, 0)
554
	m.Parent = p
555
	local w = Instance.new("Weld")
556
	w.Part0 = p
557
	w.Part1 = pm
558
	w.C0 = CFrame.new(-0.1, 0.4, -0.04)
559
	w.C1 = CFrame.new()
560
	w.Parent = p
561
	local p = Instance.new("Part")
562
	p.Name = "DustCover" --------------
563
	p.CanCollide = false
564
	p.formFactor = "Symmetric"
565
	p.Size = Vector3.new(1, 1, 1)
566
	p.BrickColor = DC
567
	p.Locked = true
568
	p.TopSurface = 0
569
	p.BottomSurface = 0
570
	p.Parent = model
571
	local m = Instance.new("BlockMesh")
572
	m.Name = "Mesh"
573
	m.Scale = Vector3.new(0.14, 0.34, 0.14)
574
	m.Offset = Vector3.new(0, 0, 0)
575
	m.Parent = p
576
	local w = Instance.new("Weld")
577
	w.Part0 = p
578
	w.Part1 = pm
579
	w.C0 = CFrame.new(-0.105, 0.4, -0.06) * CFrame.fromEulerAnglesXYZ(0, math.rad(-6), 0)
580
	w.C1 = CFrame.new()
581
	w.Parent = p	
582
	local p = Instance.new("Part")
583
	p.Name = "Barrel Support"
584
	p.formFactor = "Symmetric"
585
	p.Size = Vector3.new(1, 1, 1)
586
	p.BrickColor = DC
587
	p.Reflectance = MR
588
	p.CanCollide = false
589
	p.Locked = true
590
	p.TopSurface = 0
591
	p.BottomSurface = 0
592
	p.Parent = model
593
	local m = Instance.new("SpecialMesh")
594
	m.MeshType = "Sphere"
595
	m.Scale = Vector3.new(0.24, 0.24, 0.24)
596
	m.Parent = p
597
	local w = Instance.new("Weld")
598
	w.Part0 = p
599
	w.Part1 = pm
600
	w.C0 = CFrame.new(0, 1.88, -0.04)
601
	w.C1 = CFrame.new()
602
	w.Parent = p	
603
	local p = Instance.new("Part")
604
	p.Name = "Barrel 1"
605
	p.formFactor = "Symmetric"
606
	p.Size = Vector3.new(1, 1, 1)
607
	p.BrickColor = DC
608
	p.Reflectance = MR
609
	p.CanCollide = false
610
	p.Locked = true
611
	p.TopSurface = 0
612
	p.BottomSurface = 0
613
	p.Parent = model
614
	local m = Instance.new("CylinderMesh")
615
	m.Scale = Vector3.new(0.15, 0.8, 0.15)
616
	m.Parent = p
617
	local w = Instance.new("Weld")
618
	w.Part0 = p
619
	w.Part1 = pm
620
	w.C0 = CFrame.new(0, 2.2, -0.04)
621
	w.C1 = CFrame.new()
622
	w.Parent = p
623
	local p = Instance.new("Part")
624
	p.Name = "Hole"
625
	p.formFactor = "Symmetric"
626
	p.Size = Vector3.new(1, 1, 1)
627
	p.BrickColor = BrickColor.new("Really black")
628
	p.CanCollide = false
629
	p.Locked = true
630
	p.TopSurface = 0
631
	p.BottomSurface = 0
632
	p.Parent = model
633
	local m = Instance.new("CylinderMesh")
634
	m.Scale = Vector3.new(0.12, 0.4, 0.12)
635
	m.Parent = p
636
	local w = Instance.new("Weld")
637
	w.Part0 = p
638
	w.Part1 = pm
639
	w.C0 = CFrame.new(0, 2.504, -0.04)
640
	w.C1 = CFrame.new()
641
	w.Parent = p
642
	local p = Instance.new("Part")
643
	if silenced == false then
644
		p.Name = "Muzzle"
645
	else
646
		p.Name = "Muzzle 2"
647
	end
648
	p.formFactor = "Symmetric"
649
	p.Size = Vector3.new(1, 1, 1)
650
	p.BrickColor = DC
651
	p.Reflectance = MR
652
	p.CanCollide = false
653
	p.Locked = true
654
	p.TopSurface = 0
655
	p.BottomSurface = 0
656
	p.Parent = model
657
	local m = Instance.new("CylinderMesh")
658
	m.Scale = Vector3.new(0.18, 0.4, 0.18)
659
	m.Parent = p
660
	local w = Instance.new("Weld")
661
	w.Part0 = p
662
	w.Part1 = pm
663
	w.C0 = CFrame.new(0, 2.5, -0.04)
664
	w.C1 = CFrame.new()
665
	w.Parent = p
666
	local s = Instance.new("Smoke")
667
	s.Enabled = false
668
	s.Name = "Smoke"
669
	s.RiseVelocity = -5
670
	s.Opacity = 0.3
671
	s.Color = Color3.new(75 / 225, 75 / 225, 75 / 225)
672
	s.Size = 1
673
	s.Parent = p
674
	local f = Instance.new("Fire")
675
	f.Enabled = false
676
	f.Name = "Fire"
677
	f.Heat = -35
678
	f.Size = 1
679
	f.Parent = p
680
	local p = Instance.new("Part")
681
	if silenced == false then
682
		p.Name = "Silencer"
683
	else
684
		p.Name = "Muzzle"
685
	end
686
	p.formFactor = "Symmetric"
687
	p.Size = Vector3.new(1, 1, 1)
688
	p.BrickColor = BrickColor.new("Black")
689
 	p.CanCollide = false
690
	if silenced == false then
691
		p.Transparency = 1
692
	else
693
		p.Transparency = 0
694
	end
695
	p.Locked = true
696
	p.TopSurface = 0
697
	p.BottomSurface = 0
698
	p.Parent = model
699
	local m = Instance.new("CylinderMesh")
700
	m.Scale = Vector3.new(0.2, 1.4, 0.2)
701
	m.Parent = p
702
	local w = Instance.new("Weld")
703
	w.Part0 = p
704
	w.Part1 = pm
705
	w.C0 = CFrame.new(0, 2.4, -0.04)
706
	w.C1 = CFrame.new()
707
	w.Parent = p
708
	local p = Instance.new("Part")
709
	p.Name = "Silencer1"
710
	p.formFactor = "Symmetric"
711
	p.Size = Vector3.new(1, 1, 1)
712
	p.BrickColor = BrickColor.new("Really black")
713
 	p.CanCollide = false
714
	if silenced == false then
715
		p.Transparency = 1
716
	else
717
		p.Transparency = 0
718
	end
719
	p.Locked = true
720
	p.TopSurface = 0
721
	p.BottomSurface = 0
722
	p.Parent = model
723
	local m = Instance.new("CylinderMesh")
724
	m.Scale = Vector3.new(0.12, 1.403, 0.12)
725
	m.Parent = p
726
	local w = Instance.new("Weld")
727
	w.Part0 = p
728
	w.Part1 = pm
729
	w.C0 = CFrame.new(0, 2.4, -0.04)
730
	w.C1 = CFrame.new()
731
	w.Parent = p	
732
	local p = Instance.new("Part") -- Standard Stock
733
	p.Name = "StockC"
734
	p.CanCollide = false
735
	p.formFactor = "Symmetric"
736
	p.Size = Vector3.new(1, 1, 1)
737
	p.BrickColor = DC
738
	p.Reflectance = GR
739
	p.Locked = true
740
	p.TopSurface = 0
741
	p.BottomSurface = 0
742
	p.Parent = model
743
	local m = Instance.new("CylinderMesh")
744
	m.Scale = Vector3.new(0.2, 1, 0.2)
745
	m.Parent = p
746
	local w = Instance.new("Weld")
747
	w.Part0 = p
748
	w.Part1 = pm
749
	w.C0 = CFrame.new(0, -0.6, -0.1)
750
	w.C1 = CFrame.new()
751
	w.Parent = p	
752
	local pt = Instance.new("Part")
753
	pt.Name = "StockT"
754
	pt.CanCollide = false
755
	pt.formFactor = "Symmetric"
756
	pt.Size = Vector3.new(1, 1, 1)
757
	pt.BrickColor = GC
758
	pt.Reflectance = GR
759
	pt.Locked = true
760
	pt.TopSurface = 0
761
	pt.BottomSurface = 0
762
	pt.Parent = model
763
	local m = Instance.new("CylinderMesh")
764
	m.Scale = Vector3.new(0.25, 0.8, 0.25)
765
	m.Offset = Vector3.new(0, 0.4, 0)
766
	m.Parent = pt
767
	local w = Instance.new("Weld")
768
	w.Part0 = pt
769
	w.Part1 = pm
770
	if selected == true then
771
		w.C0 = CFrame.new(0, -0.9, -0.1)
772
	else
773
		w.C0 = CFrame.new(0, -0.4, -0.1)	
774
	end
775
	w.C1 = CFrame.new()
776
	w.Parent = pt
777
	local p = Instance.new("Part")
778
	p.Name = "StockAngle1"
779
	p.CanCollide = false
780
	p.formFactor = "Symmetric"
781
	p.Size = Vector3.new(1, 1, 1)
782
	p.BrickColor = GC
783
	p.Reflectance = GR
784
	p.Locked = true
785
	p.TopSurface = 0
786
	p.BottomSurface = 0
787
	p.Parent = model
788
	local m = Instance.new("SpecialMesh")
789
	m.MeshType = "Wedge"
790
	m.Scale = Vector3.new(0.2, 0.5, 0.5)
791
	m.Parent = p
792
	local w = Instance.new("Weld")
793
	w.Part0 = p
794
	w.Part1 = pt
795
	w.C0 = CFrame.new(0, -0.3, -0.55) * CFrame.fromEulerAnglesXYZ(math.rad(270), 0, math.rad(180))
796
	w.C1 = CFrame.new()
797
	w.Parent = p
798
	local p = Instance.new("Part")
799
	p.Name = "StockAngle2"
800
	p.CanCollide = false
801
	p.formFactor = "Symmetric"
802
	p.Size = Vector3.new(1, 1, 1)
803
	p.BrickColor = GC
804
	p.Reflectance = GR
805
	p.Locked = true
806
	p.TopSurface = 0
807
	p.BottomSurface = 0
808
	p.Parent = model
809
	local m = Instance.new("SpecialMesh")
810
	m.MeshType = "Wedge"
811
	m.Scale = Vector3.new(0.2, 0.4, 0.6)
812
	m.Parent = p
813
	local w = Instance.new("Weld")
814
	w.Part0 = p
815
	w.Part1 = pt
816
	w.C0 = CFrame.new(0, -0.24, -0.3) * CFrame.fromEulerAnglesXYZ(math.rad(270), 0, math.rad(180))
817
	w.C1 = CFrame.new()
818
	w.Parent = p--]]
819
	local p = Instance.new("Part")
820
	p.Name = "BoltHole" --------------
821
	p.CanCollide = false
822
	p.formFactor = "Symmetric"
823
	p.Size = Vector3.new(1, 1, 1)
824
	p.BrickColor = BrickColor.new("Really black")
825
	p.Locked = true
826
	p.TopSurface = 0
827
	p.BottomSurface = 0
828
	p.Parent = model
829
	local m = Instance.new("CylinderMesh")
830
	m.Scale = Vector3.new(0.13, 0.29, 0.13)
831
	m.Parent = p
832
	local w = Instance.new("Weld")
833
	w.Part0 = p
834
	w.Part1 = pm
835
	w.C0 = CFrame.new(-0.1, 0.4, -0.04)
836
	w.C1 = CFrame.new()
837
	w.Parent = p		
838
	if Sight == 0 then
839
		local p = Instance.new("Part")
840
		p.Name = "Frontsight"
841
		p.formFactor = "Symmetric"
842
		p.Size = Vector3.new(1, 1, 1)
843
		p.BrickColor = DC
844
		p.Reflectance = MR
845
		p.CanCollide = false
846
		p.Locked = true
847
		p.TopSurface = 0
848
		p.BottomSurface = 0
849
		p.Parent = model
850
		local m = Instance.new("BlockMesh")
851
		m.Scale = Vector3.new(0.08, 0.1, 0.3)
852
		m.Parent = p
853
		local w = Instance.new("Weld")
854
		w.Part0 = p
855
		w.Part1 = pm
856
		w.C0 = CFrame.new(0, 2.1, 0.1)
857
		w.C1 = CFrame.new()
858
		w.Parent = p
859
		local p = Instance.new("Part")
860
		p.Name = "Frontsight"
861
		p.formFactor = "Symmetric"
862
		p.Size = Vector3.new(1, 1, 1)
863
		p.BrickColor = DC
864
		p.Reflectance = MR
865
		p.CanCollide = false
866
		p.Locked = true
867
		p.TopSurface = 0
868
		p.BottomSurface = 0
869
		p.Parent = model
870
		local m = Instance.new("CylinderMesh")
871
		m.Scale = Vector3.new(0.1, 0.1, 0.1)
872
		m.Parent = p
873
		local w = Instance.new("Weld")
874
		w.Part0 = p
875
		w.Part1 = pm
876
		w.C0 = CFrame.new(0, 2.1, 0.26)
877
		w.C1 = CFrame.new()
878
		w.Parent = p					
879
		local p = Instance.new("Part")
880
		p.Name = "Rearsight"
881
		p.CanCollide = false
882
		p.formFactor = "Symmetric"
883
		p.Size = Vector3.new(1, 1, 1)
884
		p.BrickColor = DC
885
		p.Reflectance = MR
886
		p.Locked = true
887
		p.TopSurface = 0
888
		p.BottomSurface = 0
889
		p.Parent = model
890
		local m = Instance.new("BlockMesh")
891
		m.Scale = Vector3.new(0.22, 0.25, 0.2)
892
		m.Parent = p
893
		local w = Instance.new("Weld")
894
		w.Part0 = p
895
		w.Part1 = pm
896
		w.C0 = CFrame.new(0, -0.2, 0.1)
897
		w.C1 = CFrame.new()
898
		w.Parent = p
899
		local p = Instance.new("Part")
900
		p.Name = "Rearsight"
901
		p.CanCollide = false
902
		p.formFactor = "Symmetric"
903
		p.Size = Vector3.new(1, 1, 1)
904
		p.BrickColor = DC
905
		p.Reflectance = MR
906
		p.Locked = true
907
		p.TopSurface = 0
908
		p.BottomSurface = 0
909
		p.Parent = model
910
		local m = Instance.new("BlockMesh")
911
		m.Scale = Vector3.new(0.08, 0.08, 0.2)
912
		m.Offset = Vector3.new(0.07, 0, 0)
913
		m.Parent = p
914
		local w = Instance.new("Weld")
915
		w.Part0 = p
916
		w.Part1 = pm
917
		w.C0 = CFrame.new(0, -0.2, 0.16)
918
		w.C1 = CFrame.new()
919
		w.Parent = p
920
		local p = Instance.new("Part")
921
		p.Name = "Rearsight"
922
		p.CanCollide = false
923
		p.formFactor = "Symmetric"
924
		p.Size = Vector3.new(1, 1, 1)
925
		p.BrickColor = DC
926
		p.Reflectance = MR
927
		p.Locked = true
928
		p.TopSurface = 0
929
		p.BottomSurface = 0
930
		p.Parent = model
931
		local m = Instance.new("BlockMesh")
932
		m.Scale = Vector3.new(0.08, 0.08, 0.2)
933
		m.Offset = Vector3.new(-0.07, 0, 0)
934
		m.Parent = p
935
		local w = Instance.new("Weld")
936
		w.Part0 = p
937
		w.Part1 = pm
938
		w.C0 = CFrame.new(0, -0.2, 0.16)
939
		w.C1 = CFrame.new()
940
		w.Parent = p			
941
	elseif Sight == 1 then
942
		canZoom = true
943
		local p = Instance.new("Part") -------------- SCOPE
944
		p.Name = "Scope Base"
945
		p.formFactor = "Symmetric"
946
		p.CanCollide = false
947
		p.Size = Vector3.new(1, 1, 1)
948
		p.BrickColor = DC
949
		p.Reflectance = MR
950
		p.Locked = true
951
		p.TopSurface = 0
952
		p.BottomSurface = 0
953
		p.Parent = model
954
		local m = Instance.new("BlockMesh")
955
		m.Scale = Vector3.new(0.1, 0.14, 0.4)
956
		m.Parent = p
957
		local w = Instance.new("Weld")
958
		w.Part0 = p
959
		w.Part1 = pm
960
		w.C0 = CFrame.new(0, 0.1, 0.1)
961
		w.C1 = CFrame.new()
962
		w.Parent = p
963
		local p = Instance.new("Part")
964
		p.Name = "Scope Base"
965
		p.formFactor = "Symmetric"
966
		p.CanCollide = false
967
		p.Size = Vector3.new(1, 1, 1)
968
		p.BrickColor = DC
969
		p.Reflectance = MR
970
		p.Locked = true
971
		p.TopSurface = 0
972
		p.BottomSurface = 0
973
		p.Parent = model
974
		local m = Instance.new("BlockMesh")
975
		m.Scale = Vector3.new(0.1, 0.14, 0.4)
976
		m.Parent = p
977
		local w = Instance.new("Weld")
978
		w.Part0 = p
979
		w.Part1 = pm
980
		w.C0 = CFrame.new(0, 0.48, 0.1)
981
		w.C1 = CFrame.new()
982
		w.Parent = p
983
		local p = Instance.new("Part")
984
		p.Name = "Scope End 1" --End = Back
985
		p.CanCollide = false
986
		p.formFactor = "Symmetric"
987
		p.Size = Vector3.new(1, 1, 1)
988
		p.BrickColor = DC
989
		p.Reflectance = MR
990
		p.Locked = true
991
		p.TopSurface = 0
992
		p.BottomSurface = 0
993
		p.Parent = model
994
		local m = Instance.new("CylinderMesh")
995
		m.Scale = Vector3.new(0.24, 0.375, 0.24)
996
		m.Parent = p
997
		local w = Instance.new("Weld")
998
		w.Part0 = p
999
		w.Part1 = pm
1000
		w.C0 = CFrame.new(0, -0.2, 0.3)
1001
		w.C1 = CFrame.new()
1002
		w.Parent = p
1003
		local p = Instance.new("Part")
1004
		p.Name = "Scope Center 1"
1005
		p.CanCollide = false
1006
		p.formFactor = "Symmetric"
1007
		p.Size = Vector3.new(1, 1, 1)
1008
		p.BrickColor = DC
1009
		p.Reflectance = MR
1010
		p.Locked = true
1011
		p.TopSurface = 0
1012
		p.BottomSurface = 0
1013
		p.Parent = model
1014
		local m = Instance.new("CylinderMesh")
1015
		m.Scale = Vector3.new(0.2, 0.8, 0.2)
1016
		m.Parent = p
1017
		local w = Instance.new("Weld")
1018
		w.Part0 = p
1019
		w.Part1 = pm
1020
		w.C0 = CFrame.new(0, 0.3, 0.3)
1021
		w.C1 = CFrame.new()
1022
		w.Parent = p
1023
		local p = Instance.new("Part")
1024
		p.Name = "Scope Front 1"
1025
		p.CanCollide = false
1026
		p.formFactor = "Symmetric"
1027
		p.Size = Vector3.new(1, 1, 1)
1028
		p.BrickColor = DC
1029
		p.Reflectance = MR
1030
		p.Locked = true
1031
		p.TopSurface = 0
1032
		p.BottomSurface = 0
1033
		p.Parent = model
1034
		local m = Instance.new("CylinderMesh")
1035
		m.Scale = Vector3.new(0.28, 0.7, 0.28)
1036
		m.Parent = p
1037
		local w = Instance.new("Weld")
1038
		w.Part0 = p
1039
		w.Part1 = pm
1040
		w.C0 = CFrame.new(0, 0.94, 0.3)
1041
		w.C1 = CFrame.new()
1042
		w.Parent = p
1043
		local p = Instance.new("Part")
1044
		p.Name = "Scope Window F"
1045
		p.CanCollide = false
1046
		p.formFactor = "Symmetric"
1047
		p.Size = Vector3.new(1, 1, 1)
1048
		p.BrickColor = BrickColor.new("White")
1049
		p.Reflectance = 0.3
1050
		p.Locked = true
1051
		p.TopSurface = 0
1052
		p.BottomSurface = 0
1053
		p.Parent = model
1054
		local m = Instance.new("CylinderMesh")
1055
		m.Scale = Vector3.new(0.27, 0.7, 0.27)
1056
		m.Offset = Vector3.new(0, -0.003 ,0)
1057
		m.Parent = p
1058
		local w = Instance.new("Weld")
1059
		w.Part0 = p
1060
		w.Part1 = pm
1061
		w.C0 = CFrame.new(0, 0.94, 0.3)
1062
		w.C1 = CFrame.new()
1063
		w.Parent = p
1064
		local p = Instance.new("Part")
1065
		p.Name = "Scope Window B" 
1066
		p.CanCollide = false
1067
		p.formFactor = "Symmetric"
1068
		p.Size = Vector3.new(1, 1, 1)
1069
		p.BrickColor = BrickColor.new("White")
1070
		p.Reflectance = 0.3
1071
		p.Locked = true
1072
		p.TopSurface = 0
1073
		p.BottomSurface = 0
1074
		p.Parent = model
1075
		local m = Instance.new("CylinderMesh")
1076
		m.Scale = Vector3.new(0.23, 0.375, 0.23)
1077
		m.Offset = Vector3.new(0, 0.003 ,0)
1078
		m.Parent = p
1079
		local w = Instance.new("Weld")
1080
		w.Part0 = p
1081
		w.Part1 = pm
1082
		w.C0 = CFrame.new(0, -0.2, 0.3)
1083
		w.C1 = CFrame.new()
1084
		w.Parent = p
1085
	elseif Sight == 2 then
1086
		local p = Instance.new("Part")
1087
		p.Name = "SightBottom"
1088
		p.CanCollide = false
1089
		p.formFactor = "Symmetric"
1090
		p.Size = Vector3.new(1, 1, 1)
1091
		p.BrickColor = DC
1092
		p.Reflectance = MR
1093
		p.Locked = true
1094
		p.TopSurface = 0
1095
		p.BottomSurface = 0
1096
		p.Parent = model
1097
		local m = Instance.new("BlockMesh")
1098
		m.Scale = Vector3.new(0.2, 0.5, 0.18)
1099
		m.Parent = p
1100
		local w = Instance.new("Weld")
1101
		w.Part0 = p
1102
		w.Part1 = pm
1103
		w.C0 = CFrame.new(0, 0.25, 0.12)
1104
		w.C1 = CFrame.new()
1105
		w.Parent = p
1106
		local p = Instance.new("Part")
1107
		p.Name = "Image"
1108
		p.CanCollide = false
1109
		p.formFactor = "Symmetric"
1110
		p.Size = Vector3.new(1, 1, 1)
1111
		p.BrickColor = MC
1112
		p.Transparency = 1
1113
		p.Locked = true
1114
		p.TopSurface = 0
1115
		p.BottomSurface = 0
1116
		p.Parent = model
1117
		local d = Instance.new("Decal")
1118
		d.Face = "Top"
1119
		d.Texture = "http://www.roblox.com/asset/?id=29712167"
1120
		d.Parent = p
1121
		local m = Instance.new("BlockMesh")
1122
		m.Scale = Vector3.new(0.1, 0.001, 0.1)
1123
		m.Parent = p
1124
		local w = Instance.new("Weld")
1125
		w.Part0 = p
1126
		w.Part1 = pm
1127
		w.C0 = CFrame.new(0, 0.1, 0.25)
1128
		w.C1 = CFrame.new()
1129
		w.Parent = p		
1130
		local p = Instance.new("Part")
1131
		p.Name = "SightCube"
1132
		p.CanCollide = false
1133
		p.formFactor = "Symmetric"
1134
		p.Size = Vector3.new(1, 1, 1)
1135
		p.BrickColor = DC
1136
		p.Reflectance = MR
1137
		p.Transparency = 0.8
1138
		p.Locked = true
1139
		p.TopSurface = 0
1140
		p.BottomSurface = 0
1141
		p.Parent = model
1142
		local m = Instance.new("BlockMesh")
1143
		m.Scale = Vector3.new(0.25, 0.25, 0.25)
1144
		m.Parent = p
1145
		local w = Instance.new("Weld")
1146
		w.Part0 = p
1147
		w.Part1 = pm
1148
		w.C0 = CFrame.new(0, 0.1, 0.25)
1149
		w.C1 = CFrame.new()
1150
		w.Parent = p
1151
		local p = Instance.new("Part")
1152
		p.Name = "SightBox"
1153
		p.CanCollide = false
1154
		p.formFactor = "Symmetric"
1155
		p.Size = Vector3.new(1, 1, 1)
1156
		p.BrickColor = DC
1157
		p.Reflectance = MR
1158
		p.Locked = true
1159
		p.TopSurface = 0
1160
		p.BottomSurface = 0
1161
		p.Parent = model
1162
		local m = Instance.new("BlockMesh")
1163
		m.Scale = Vector3.new(0.05, 0.25, 0.25)
1164
		m.Offset = Vector3.new(0.1, 0, 0)
1165
		m.Parent = p
1166
		local w = Instance.new("Weld")
1167
		w.Part0 = p
1168
		w.Part1 = pm
1169
		w.C0 = CFrame.new(0, 0.1, 0.25)
1170
		w.C1 = CFrame.new()
1171
		w.Parent = p
1172
		local p = Instance.new("Part")
1173
		p.Name = "SightBox"
1174
		p.CanCollide = false
1175
		p.formFactor = "Symmetric"
1176
		p.Size = Vector3.new(1, 1, 1)
1177
		p.BrickColor = DC
1178
		p.Reflectance = MR
1179
		p.Locked = true
1180
		p.TopSurface = 0
1181
		p.BottomSurface = 0
1182
		p.Parent = model
1183
		local m = Instance.new("BlockMesh")
1184
		m.Scale = Vector3.new(0.05, 0.25, 0.25)
1185
		m.Offset = Vector3.new(-0.1, 0, 0)
1186
		m.Parent = p
1187
		local w = Instance.new("Weld")
1188
		w.Part0 = p
1189
		w.Part1 = pm
1190
		w.C0 = CFrame.new(0, 0.1, 0.25)
1191
		w.C1 = CFrame.new()
1192
		w.Parent = p
1193
		local p = Instance.new("Part")
1194
		p.Name = "SightBox"
1195
		p.CanCollide = false
1196
		p.formFactor = "Symmetric"
1197
		p.Size = Vector3.new(1, 1, 1)
1198
		p.BrickColor = DC
1199
		p.Reflectance = MR
1200
		p.Locked = true
1201
		p.TopSurface = 0
1202
		p.BottomSurface = 0
1203
		p.Parent = model
1204
		local m = Instance.new("BlockMesh")
1205
		m.Scale = Vector3.new(0.25, 0.25, 0.05)
1206
		m.Offset = Vector3.new(0, 0, -0.1)
1207
		m.Parent = p
1208
		local w = Instance.new("Weld")
1209
		w.Part0 = p
1210
		w.Part1 = pm
1211
		w.C0 = CFrame.new(0, 0.1, 0.25)
1212
		w.C1 = CFrame.new()
1213
		w.Parent = p
1214
		local p = Instance.new("Part")
1215
		p.Name = "SightBox"
1216
		p.CanCollide = false
1217
		p.formFactor = "Symmetric"
1218
		p.Size = Vector3.new(1, 1, 1)
1219
		p.BrickColor = DC
1220
		p.Reflectance = MR
1221
		p.Locked = true
1222
		p.TopSurface = 0
1223
		p.BottomSurface = 0
1224
		p.Parent = model
1225
		local m = Instance.new("BlockMesh")
1226
		m.Scale = Vector3.new(0.25, 0.25, 0.05)
1227
		m.Offset = Vector3.new(0, 0, 0.1)
1228
		m.Parent = p
1229
		local w = Instance.new("Weld")
1230
		w.Part0 = p
1231
		w.Part1 = pm
1232
		w.C0 = CFrame.new(0, 0.1, 0.25)
1233
		w.C1 = CFrame.new()
1234
		w.Parent = p	
1235
	else end
1236
	if Grip == 1 then
1237
		local p = Instance.new("Part") --------------- ForeGrip Attachment
1238
		p.Name = "ForeGrip"
1239
		p.formFactor = "Symmetric"
1240
		p.Size = Vector3.new(1, 1, 1)
1241
		p.BrickColor = BrickColor.new("Black")
1242
		p.CanCollide = false
1243
		p.Locked = true
1244
		p.TopSurface = 0
1245
		p.BottomSurface = 0
1246
		p.Parent = model
1247
		local m = Instance.new("CylinderMesh")
1248
		m.Scale = Vector3.new(0.25, 0.6, 0.25)
1249
		m.Parent = p
1250
		local w = Instance.new("Weld")
1251
		w.Part0 = p
1252
		w.Part1 = pm
1253
		w.C0 = CFrame.new(0, 0.4, 1.1) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
1254
		w.C1 = CFrame.new()
1255
		w.Parent = p
1256
	elseif Grip == 2 then
1257
		local p = Instance.new("Part") ---Bipod
1258
		p.Name = "BipodM" --------------
1259
		p.CanCollide = false
1260
		p.formFactor = "Symmetric"
1261
		p.Size = Vector3.new(1, 1, 1)
1262
		p.BrickColor = DC
1263
		p.Reflectance = MR
1264
		p.Locked = true
1265
		p.TopSurface = 0
1266
		p.BottomSurface = 0
1267
		p.Parent = model
1268
		local m = Instance.new("BlockMesh")
1269
		m.Scale = Vector3.new(0.17, 0.25, 0.2)
1270
		m.Parent = p
1271
		local w = Instance.new("Weld")
1272
		w.Part0 = p
1273
		w.Part1 = pm
1274
		w.C0 = CFrame.new(0, 1, -0.25)
1275
		w.C1 = CFrame.new()
1276
		w.Parent = p
1277
		local p = Instance.new("Part")
1278
		p.Name = "BipodArm"
1279
		p.formFactor = "Symmetric"
1280
		p.Size = Vector3.new(1, 1, 1)
1281
		p.CanCollide = false
1282
		p.BrickColor = DC
1283
		p.Reflectance = MR
1284
		p.Locked = true
1285
		p.TopSurface = 0
1286
		p.BottomSurface = 0
1287
		p.Parent = model
1288
		local m = Instance.new("CylinderMesh")
1289
		m.Scale = Vector3.new(0.15, 1, 0.15)
1290
		m.Offset = Vector3.new(0, -0.44 ,0)
1291
		m.Parent = p
1292
		local w = Instance.new("Weld")
1293
		w.Part0 = p
1294
		w.Part1 = pm
1295
		w.C0 = CFrame.new(-0.09, 1, -0.3)
1296
		w.C1 = CFrame.new()
1297
		w.Parent = p
1298
		local p = Instance.new("Part")
1299
		p.Name = "BipodArm"
1300
		p.formFactor = "Symmetric"
1301
		p.Size = Vector3.new(1, 1, 1)
1302
		p.CanCollide = false
1303
		p.BrickColor = DC
1304
		p.Reflectance = MR
1305
		p.Locked = true
1306
		p.TopSurface = 0
1307
		p.BottomSurface = 0
1308
		p.Parent = model
1309
		local m = Instance.new("CylinderMesh")
1310
		m.Scale = Vector3.new(0.15, 1, 0.15)
1311
		m.Offset = Vector3.new(0, -0.44 ,0)
1312
		m.Parent = p
1313
		local w = Instance.new("Weld")
1314
		w.Part0 = p
1315
		w.Part1 = pm
1316
		w.C0 = CFrame.new(0.09, 1, -0.3)
1317
		w.C1 = CFrame.new()
1318
		w.Parent = p--]]
1319
	else end
1320
	if Attachment == true then
1321
		local p = Instance.new("Part")
1322
		p.Name = "LaserPod"
1323
		p.formFactor = "Symmetric"
1324
		p.Size = Vector3.new(1, 1, 1)
1325
		p.CanCollide = false
1326
		p.BrickColor = DC
1327
		p.Reflectance = MR
1328
		p.Locked = true
1329
		p.TopSurface = 0
1330
		p.BottomSurface = 0
1331
		p.Parent = model
1332
		local m = Instance.new("BlockMesh")
1333
		m.Scale = Vector3.new(0.1, 0.35, 0.25)
1334
		m.Parent = p
1335
		local w = Instance.new("Weld")
1336
		w.Part0 = p
1337
		w.Part1 = pm
1338
		w.C0 = CFrame.new(-0.22, 1.8, -0.04)
1339
		w.C1 = CFrame.new()
1340
		w.Parent = p--]]
1341
		local p = Instance.new("Part")
1342
		p.Name = "LaserPod"
1343
		p.formFactor = "Symmetric"
1344
		p.Size = Vector3.new(1, 1, 1)
1345
		p.CanCollide = false
1346
		p.BrickColor = DC
1347
		p.Reflectance = MR
1348
		p.Locked = true
1349
		p.TopSurface = 0
1350
		p.BottomSurface = 0
1351
		p.Parent = model
1352
		local m = Instance.new("CylinderMesh")
1353
		m.Scale = Vector3.new(0.12, 0.35, 0.12)
1354
		m.Parent = p
1355
		local w = Instance.new("Weld")
1356
		w.Part0 = p
1357
		w.Part1 = pm
1358
		w.C0 = CFrame.new(-0.22, 1.8, 0.1)
1359
		w.C1 = CFrame.new()
1360
		w.Parent = p
1361
		local p = Instance.new("Part")
1362
		p.Name = "Laser"
1363
		p.CanCollide = false
1364
		p.formFactor = "Symmetric"
1365
		p.Size = Vector3.new(1, 1, 1)
1366
		p.BrickColor = BrickColor.new("Bright red")
1367
		p.Locked = true
1368
		if selected == true and Mode == 1 then
1369
			p.Transparency = 0.4
1370
		else
1371
			p.Transparency = 1
1372
		end
1373
		p.TopSurface = 0
1374
		p.BottomSurface = 0
1375
		p.Parent = model
1376
		local m = Instance.new("BlockMesh")
1377
		m.Scale = Vector3.new(0.01, 500, 0.01)
1378
		m.Offset = Vector3.new(0, -250, 0)
1379
		m.Parent = p
1380
		local w = Instance.new("Weld")
1381
		w.Part0 = p
1382
		w.Part1 = pm
1383
		w.C0 = CFrame.new(-0.22, 1.8, 0.1)
1384
		w.C1 = CFrame.new()
1385
		w.Parent = p	
1386
		local p = Instance.new("Part")
1387
		p.Name = "LaserPod"
1388
		p.formFactor = "Symmetric"
1389
		p.Size = Vector3.new(1, 1, 1)
1390
		p.CanCollide = false
1391
		p.BrickColor = DC
1392
		p.Reflectance = MR
1393
		p.Locked = true
1394
		p.TopSurface = 0
1395
		p.BottomSurface = 0
1396
		p.Parent = model
1397
		local m = Instance.new("CylinderMesh")
1398
		m.Scale = Vector3.new(0.12, 0.35, 0.12)
1399
		m.Parent = p
1400
		local w = Instance.new("Weld")
1401
		w.Part0 = p
1402
		w.Part1 = pm
1403
		w.C0 = CFrame.new(-0.22, 1.8, -0.14)
1404
		w.C1 = CFrame.new()
1405
		w.Parent = p
1406
	else end	
1407
	return model
1408
end
1409
1410
1411
function removeParts(format)
1412
	if format == "RightHand" then
1413
		pcall(function() Player.Character[Name]:Remove() end)
1414
	elseif format == "LeftHand" then
1415
		pcall(function() Player.Character[Name.. " (Left)"]:Remove() end)
1416
	elseif format == "RightHolster" then
1417
		pcall(function() Player.Character[Name.. " (Holstered)"]:Remove() end)
1418
	elseif format == "LeftHolster" then
1419
		pcall(function() Player.Character[Name.. " (Holstered, Left)"]:Remove() end)
1420
	end
1421
end
1422
1423
1424
function SetAngle(Joint, Angle, Character)
1425
	if Character == nil then return false end
1426
	local Joints = {
1427
		Character.Torso:FindFirstChild("Right Shoulder 2"),
1428
		Character.Torso:FindFirstChild("Left Shoulder 2"),
1429
		Character.Torso:FindFirstChild("Right Hip 2"),
1430
		Character.Torso:FindFirstChild("Left Hip 2")
1431
	}
1432
	if Joints[Joint] == nil then return false end
1433
	if Joint == 1 or Joint == 3 then
1434
		Joints[Joint].DesiredAngle = Angle
1435
	end
1436
	if Joint == 2 or Joint == 4 then
1437
		Joints[Joint].DesiredAngle = -Angle
1438
	end
1439
end
1440
1441
1442
function ForceAngle(Joint, Angle, Character)
1443
	if Character == nil then return false end
1444
	local Joints = {
1445
		Character.Torso:FindFirstChild("Right Shoulder 2"),
1446
		Character.Torso:FindFirstChild("Left Shoulder 2"),
1447
		Character.Torso:FindFirstChild("Right Hip 2"),
1448
		Character.Torso:FindFirstChild("Left Hip 2")
1449
	}
1450
	if Joints[Joint] == nil then return false end
1451
	if Joint == 1 or Joint == 3 then
1452
		Joints[Joint].DesiredAngle = Angle
1453
		Joints[Joint].CurrentAngle = Angle
1454
	end
1455
	if Joint == 2 or Joint == 4 then
1456
		Joints[Joint].DesiredAngle = -Angle
1457
		Joints[Joint].CurrentAngle = -Angle
1458
	end
1459
end
1460
1461
1462
function SetSpeed(Joint, Speed, Character)
1463
	if Character == nil then return false end
1464
	local Joints = {
1465
		Character.Torso:FindFirstChild("Right Shoulder 2"),
1466
		Character.Torso:FindFirstChild("Left Shoulder 2"),
1467
		Character.Torso:FindFirstChild("Right Hip 2"),
1468
		Character.Torso:FindFirstChild("Left Hip 2")
1469
	}
1470
	if Joints[Joint] == nil then return false end
1471
	Joints[Joint].MaxVelocity = Speed
1472
end
1473
1474
1475
function DisableLimb(Limb, Character)
1476
	if Character == nil then return false end
1477
	if Character:FindFirstChild("Torso") == nil then return false end
1478
	local Joints = {
1479
		Character.Torso:FindFirstChild("Right Shoulder"),
1480
		Character.Torso:FindFirstChild("Left Shoulder"),
1481
		Character.Torso:FindFirstChild("Right Hip"),
1482
		Character.Torso:FindFirstChild("Left Hip")
1483
	}
1484
	local Limbs = {
1485
		Character:FindFirstChild("Right Arm"),
1486
		Character:FindFirstChild("Left Arm"),
1487
		Character:FindFirstChild("Right Leg"),
1488
		Character:FindFirstChild("Left Leg")
1489
	}
1490
	if Joints[Limb] == nil then return false end
1491
	if Limbs[Limb] == nil then return false end
1492
	local Joint = Instance.new("Motor")
1493
	Joint.Parent = Character.Torso
1494
	Joint.Part0 = Character.Torso
1495
	Joint.Part1 = Limbs[Limb]
1496
	if Limb == 1 then
1497
		Joint.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
1498
		Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
1499
		Joint.Name = "Right Shoulder 2"
1500
	elseif Limb == 2 then
1501
		Joint.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
1502
		Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
1503
		Joint.Name = "Left Shoulder 2"
1504
	elseif Limb == 3 then
1505
		Joint.C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
1506
		Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
1507
		Joint.Name = "Right Hip 2"
1508
	elseif Limb == 4 then
1509
		Joint.C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
1510
		Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
1511
		Joint.Name = "Left Hip 2"
1512
	end
1513
	Joint.MaxVelocity = Joints[Limb].MaxVelocity
1514
	Joint.CurrentAngle = Joints[Limb].CurrentAngle
1515
	Joint.DesiredAngle = Joints[Limb].DesiredAngle
1516
	Joints[Limb]:Remove()
1517
end
1518
1519
1520
function ResetLimbCFrame(Limb, Character)
1521
	if Character == nil then return false end
1522
	if Character.Parent == nil then return false end
1523
	if Character:FindFirstChild("Torso") == nil then return false end
1524
	local Joints = {
1525
		Character.Torso:FindFirstChild("Right Shoulder 2"),
1526
		Character.Torso:FindFirstChild("Left Shoulder 2"),
1527
		Character.Torso:FindFirstChild("Right Hip 2"),
1528
		Character.Torso:FindFirstChild("Left Hip 2")
1529
	}
1530
	local Limbs = {
1531
		Character:FindFirstChild("Right Arm"),
1532
		Character:FindFirstChild("Left Arm"),
1533
		Character:FindFirstChild("Right Leg"),
1534
		Character:FindFirstChild("Left Leg")
1535
	}
1536
	if Joints[Limb] == nil then return false end
1537
	if Limbs[Limb] == nil then return false end
1538
	if Limb == 1 then
1539
		Joints[Limb].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
1540
		Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
1541
	elseif Limb == 2 then
1542
		Joints[Limb].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
1543
		Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
1544
	elseif Limb == 3 then
1545
		Joints[Limb].C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
1546
		Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
1547
	elseif Limb == 4 then
1548
		Joints[Limb].C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
1549
		Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
1550
	end
1551
end
1552
1553
1554
function EnableLimb(Limb, Character)
1555
	if Character == nil then return false end
1556
	if Character:FindFirstChild("Torso") == nil then return false end
1557
	local Joints = {
1558
		Character.Torso:FindFirstChild("Right Shoulder 2"),
1559
		Character.Torso:FindFirstChild("Left Shoulder 2"),
1560
		Character.Torso:FindFirstChild("Right Hip 2"),
1561
		Character.Torso:FindFirstChild("Left Hip 2")
1562
	}
1563
	local Limbs = {
1564
		Character:FindFirstChild("Right Arm"),
1565
		Character:FindFirstChild("Left Arm"),
1566
		Character:FindFirstChild("Right Leg"),
1567
		Character:FindFirstChild("Left Leg")
1568
	}
1569
	if Joints[Limb] == nil then return false end
1570
	if Limbs[Limb] == nil then return false end
1571
	if Limb == 1 then
1572
		Joints[Limb].Name = "Right Shoulder"
1573
	elseif Limb == 2 then
1574
		Joints[Limb].Name = "Left Shoulder"
1575
	elseif Limb == 3 then
1576
		Joints[Limb].Name = "Right Hip"
1577
	elseif Limb == 4 then
1578
		Joints[Limb].Name = "Left Hip"
1579
	end
1580
	Animate = Character:FindFirstChild("Animate")
1581
	if Animate == nil then return false end
1582
	Animate = Animate:Clone()
1583
	Character.Animate:Remove()
1584
	Animate.Parent = Character
1585
end
1586
1587
1588
function playAnimation(format, mouse)
1589
	if format == "equip" then
1590
		if Ready == true then
1591
			Player.Character.Humanoid.WalkSpeed = AimSpeed
1592
		else end
1593
		EnableLimb(1, Player.Character)
1594
		EnableLimb(2, Player.Character)
1595
		DisableLimb(2, Player.Character)
1596
		SetSpeed(2, 0.1, Player.Character)
1597
		ForceAngle(2, 0, Player.Character)
1598
		SetAngle(2, math.rad(-50), Player.Character)
1599
		wait(0.25)
1600
		if Player.Character:FindFirstChild(Name.. " (Holstered)") == nil then makeParts("RightHolster") end
1601
		Player.Character[Name.. " (Holstered)"].Handle.Weld:Remove()
1602
		local w = Instance.new("Weld")
1603
		w.Part0 = Player.Character[Name.. " (Holstered)"].Handle
1604
		w.Part1 = Player.Character:FindFirstChild("Left Arm")
1605
		w.C0 = CFrame.new(0.5, -0.25, -0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
1606
		w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50), 0, 0)
1607
		w.Parent = Player.Character[Name.. " (Holstered)"].Handle
1608
		SetAngle(2, 0, Player.Character)
1609
		wait(0.25)
1610
		DisableLimb(1, Player.Character)
1611
		ForceAngle(1, 0, Player.Character)
1612
		delay(0.3, function() Player.Character[Name.. " (Holstered)"].Handle.Equip:Play() end)
1613
		for i = 0, 1, 0.05 do
1614
			if Player.Character:FindFirstChild("Torso") ~= nil then
1615
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1616
					Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
1617
					Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new((-0.5 * i) + (1.5 * (1 - i)), 1.2 * i, 0.8 * i) * CFrame.fromEulerAnglesXYZ(math.rad(300 + ((1 - i) * 50)), math.rad(10), math.rad(-90) * i)
1618
					Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
1619
					Player.Character.Torso["Right Shoulder 2"].C1 =  CFrame.new((-0.9 * i) + (-1.5 * (1 - i)), -0.35 * i, 0.51 * i) * CFrame.fromEulerAnglesXYZ(math.rad(-90 * i), math.rad(-5 * i), 0)
1620
					w.C0 = CFrame.new(0.5 - (i * (0.5 * 2)), -0.25 - (i * (-0.25 * 2)), -0.75 - (i * (-0.75 * 2))) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 + (i * 180)), 0)
1621
					w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50 - i * 25), 0, -math.rad(i * 15))
1622
					wait()
1623
				else return false end
1624
			else return false end
1625
		end
1626
		return playAnimation("hold")
1627
	end
1628
	if format == "unequip" then
1629
		if Ready == true then
1630
			Player.Character.Humanoid.WalkSpeed = 16
1631
		else end	
1632
		Player.Character[Name].Handle.Weld:Remove()
1633
		local w = Instance.new("Weld")
1634
		w.Part0 = Player.Character[Name].Handle
1635
		w.Part1 = Player.Character:FindFirstChild("Left Arm")
1636
		w.C0 = CFrame.new(0.5, -0.25, -0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
1637
		w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50), 0, 0)
1638
		w.Parent = Player.Character[Name].Handle
1639
		for i = 1, 0, -0.05 do
1640
			if Player.Character:FindFirstChild("Torso") ~= nil then
1641
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1642
					Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
1643
					Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new((-0.5 * i) + (1.5 * (1 - i)), 1.2 * i, 0.8 * i) * CFrame.fromEulerAnglesXYZ(math.rad(300 + ((1 - i) * 50)), math.rad(10), math.rad(-90) * i)
1644
					Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
1645
					Player.Character.Torso["Right Shoulder 2"].C1 =  CFrame.new((-0.9 * i) + (-1.5 * (1 - i)), -0.35 * i, 0.51 * i) * CFrame.fromEulerAnglesXYZ(math.rad(-90 * i), math.rad(-5 * i), 0)
1646
					w.C0 = CFrame.new(0.5 - (i * (0.5 * 2)), -0.25 - (i * (-0.25 * 2)), -0.75 - (i * (-0.75 * 2))) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 + (i * 180)), 0)
1647
					w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50 - i * 25), 0, -math.rad(i * 15))
1648
					wait()
1649
				else return false end
1650
			else return false end
1651
		end
1652
		w.C0 = CFrame.new(0.5, -0.25, -0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
1653
		w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50), 0, 0)
1654
		ResetLimbCFrame(1, Player.Character)
1655
		ResetLimbCFrame(2, Player.Character)
1656
		EnableLimb(1, Player.Character)
1657
		EnableLimb(2, Player.Character)
1658
		DisableLimb(2, Player.Character)
1659
		SetSpeed(2, 0.1, Player.Character)
1660
		ForceAngle(2, 0, Player.Character)
1661
		SetAngle(2, math.rad(-50), Player.Character)
1662
		wait(0.25)
1663
		SetAngle(2, 0, Player.Character)
1664
		removeParts("RightHand")
1665
		makeParts("RightHolster")
1666
		wait(0.25)
1667
		makeParts("RightHand")
1668
		removeParts("RightHolster")
1669
		return true
1670
	end
1671
	if format == "hold" then
1672
		if Ready == false then
1673
			for i = 0, 15, 5 do
1674
				if Player.Character:FindFirstChild("Torso") ~= nil then
1675
					if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1676
						Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
1677
						Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 - i), math.rad(-90))
1678
						Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
1679
						Player.Character.Torso["Right Shoulder 2"].C1 =  CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + i), math.rad(-5), 0)
1680
						wait()
1681
					else return false end
1682
				else return false end
1683
			end
1684
		else
1685
			for i = 15, 0, -5 do
1686
				if Player.Character:FindFirstChild("Torso") ~= nil then
1687
					if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1688
						Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
1689
						Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 - i), math.rad(-90))
1690
						Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
1691
						Player.Character.Torso["Right Shoulder 2"].C1 =  CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + i), math.rad(-5), 0)
1692
						wait()
1693
					else return false end
1694
				else return false end
1695
			end	
1696
		end
1697
	end
1698
	if format == "ready" then
1699
		if Ready == true then
1700
			for i = 0, 15, 5 do
1701
				if Player.Character:FindFirstChild("Torso") ~= nil then
1702
					if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1703
						Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
1704
						Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 - i), math.rad(-90))
1705
						Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
1706
						Player.Character.Torso["Right Shoulder 2"].C1 =  CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + i), math.rad(-5), 0)
1707
						wait()
1708
					else return false end
1709
				else return false end
1710
			end
1711
		else
1712
			for i = 15, 0, -5 do
1713
				if Player.Character:FindFirstChild("Torso") ~= nil then
1714
					if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1715
						Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
1716
						Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 - i), math.rad(-90))
1717
						Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
1718
						Player.Character.Torso["Right Shoulder 2"].C1 =  CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + i), math.rad(-5), 0)
1719
						wait()
1720
					else return false end
1721
				else return false end
1722
			end	
1723
		end
1724
	end	
1725
	if format == "reload" then
1726
		for i = 5, 0, -1 do
1727
			if Player.Character:FindFirstChild("Torso") ~= nil then
1728
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1729
					Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
1730
					Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.3, 0.75, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(315 + (i * 1.5)), math.rad(i * 4), math.rad(-90))
1731
					wait()
1732
				else return false end
1733
			else return false end
1734
		end							
1735
		coroutine.resume(coroutine.create(function()
1736
			for i = 0, 25, 5 do
1737
				if Player.Character:FindFirstChild("Torso") ~= nil then
1738
					if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1739
						Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
1740
						Player.Character.Torso["Right Shoulder 2"].C1 =  CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + i), math.rad(-5), 0)
1741
						wait()
1742
					else return false end
1743
				else return false end
1744
			end
1745
		end))
1746
		Player.Character[Name].Handle.Release:Play()
1747
		Player.Character[Name].Magazine.Transparency = 1
1748
		Player.Character[Name].MagPull.Transparency = 1
1749
		local Mag = Instance.new("Model")
1750
		Mag.Name = "Spent Magazine"		
1751
		local source = Player.Character[Name]:FindFirstChild("Magazine")
1752
		if source == nil then return end
1753
		source = source:Clone()
1754
		source.CanCollide = true
1755
		source.Transparency = 0
1756
		source.Parent = Mag
1757
		coroutine.resume(coroutine.create(function() wait(4.5) for i = 0, 1, 0.1 do source.Transparency = i wait() end source:Remove() end))
1758
		for _, Part in pairs(Player.Character[Name]:GetChildren()) do
1759
			if Part.Name == "MagPull" then
1760
				local new = Part:Clone()
1761
				new.Parent = Mag
1762
				new.Transparency = 0
1763
				new.CanCollide = true
1764
				local w = Instance.new("Weld", new)
1765
				w.Part0 = w.Parent
1766
				w.Part1 = source
1767
				w.C0 = Part.Weld.C0
1768
				w.C1 = Part.Weld.C1
1769
				coroutine.resume(coroutine.create(function() wait(4.5) for i = 0, 1, 0.1 do new.Transparency = i wait() end new:Remove() end))
1770
			else end
1771
		end
1772
		Mag.Parent = game.Workspace
1773
		for i = 0, 25, 5 do
1774
			if Player.Character:FindFirstChild("Torso") ~= nil then
1775
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1776
					Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
1777
					Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5 + (i / 60), 1.2 - (i / 20), 0.8 + (i / 35)) * CFrame.fromEulerAnglesXYZ(math.rad(300 - i), math.rad(10 + -i * 3.5), math.rad(-90))
1778
					wait()
1779
				else return false end
1780
			else return false end
1781
		end
1782
		magazineNew = Player.Character[Name].Magazine:Clone()
1783
		magazineNew.Name = "New Magazine" 
1784
		magazineNew.Transparency = 0
1785
		magazineNew.Parent = Player.Character[Name]
1786
		local w = Instance.new("Weld")
1787
		w.Part0 = magazineNew
1788
		w.Part1 = Player.Character:FindFirstChild("Left Arm")
1789
		w.C0 = CFrame.new(0, 1.1, 0)
1790
		w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
1791
		w.Parent = magazineNew
1792
		wait(0.2)
1793
		for i = 25, 0, -5 do
1794
			if Player.Character:FindFirstChild("Torso") ~= nil then
1795
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1796
					Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
1797
					Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.3 + ((i + 10) / 60), 1.2 - ((i + 10) / 20), 0.8 + (i / 35)) * CFrame.fromEulerAnglesXYZ(math.rad(300 - (i - 10)), math.rad(10 + -i * 3.5), math.rad(-90))
1798
					Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
1799
					Player.Character.Torso["Right Shoulder 2"].C1 =  CFrame.new(-0.9 + ((25 - i) / 30), -0.35, 0.51 + ((25 - i) / 25)) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + i), math.rad(-5), math.rad((25 * 2) - (i * 2)))
1800
					wait()
1801
				else return false end
1802
			else return false end
1803
		end
1804
		Player.Character[Name].Magazine.Transparency = 0
1805
		Player.Character[Name].MagPull.Transparency = 0
1806
		CamShake(1, 30000)	
1807
		CamShake(1, -30000)													
1808
		Player.Character[Name]["New Magazine"]:Remove()
1809
		wait(0.1)
1810
		if Player.Character:FindFirstChild("Torso") ~= nil then
1811
			if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1812
				Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
1813
				Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.3, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10), math.rad(-90))
1814
				Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
1815
				Player.Character.Torso["Right Shoulder 2"].C1 =  CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-5), 0)
1816
			else return false end
1817
		else return false end
1818
		Player.Character[Name].Handle.Reload:Play()	
1819
		Player.Character[Name].Handle.Jam:Play()				
1820
		wait(0.2)
1821
		if magazine.Value == 0 or Jammed == true then
1822
			playAnimation("charge")
1823
		else
1824
			playAnimation("hold")
1825
		end
1826
	end
1827
	if format == "charge" then
1828
		Player.Character[Name].Handle.Weld:Remove()
1829
		local w = Instance.new("Weld")
1830
		w.Part0 = Player.Character[Name].Handle
1831
		w.Part1 = Player.Character:FindFirstChild("Left Arm")
1832
		w.C0 = CFrame.new(-0.85, -0.3, 0.5) * CFrame.fromEulerAnglesXYZ(math.rad(15), math.rad(90), 0)
1833
		w.C1 = CFrame.new(0, 0.4, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(40), 0, 0)
1834
		w.Parent = Player.Character[Name].Handle
1835
		if Player.Character:FindFirstChild("Torso") ~= nil then
1836
			if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1837
				Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
1838
				Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.4, 0.9, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(280), math.rad(-10), math.rad(-90))
1839
			else return false end
1840
		else return false end
1841
		wait(0.2)
1842
		Player.Character[Name].Handle.Equip:Play()
1843
		Player.Character[Name].CHandleC.Transparency = 1
1844
		Player.Character[Name].CHandleB.Transparency = 0
1845
		Player.Character[Name].CHandleB1.Transparency = 0	
1846
		Player.Character[Name].Bolt.Mesh.Offset = Vector3.new(0, 0.115, 0)
1847
		Player.Character[Name].Bolt.Mesh.Scale = Vector3.new(0.14, 0.1, 0.14)		
1848
		Player.Character[Name].DustCover.Mesh.Offset = Vector3.new(0, 0, 0.115)	
1849
		Jammed = false	
1850
		if magazine.Value ~= 0 then
1851
			makeShell(Player.Character[Name]:FindFirstChild("ShellOut"))	
1852
		else end					
1853
		for i = 0, 1, 0.25 do
1854
			if Player.Character:FindFirstChild("Torso") ~= nil then
1855
				if Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1856
					Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
1857
					Player.Character.Torso["Right Shoulder 2"].C1 =  CFrame.new(-1.2, 0 - (i / 1.5), 0.9) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-5), 0)
1858
					wait()
1859
				else return false end
1860
			else return false end
1861
		end
1862
		wait(0.08)
1863
		Player.Character[Name].CHandleC.Transparency = 0
1864
		Player.Character[Name].CHandleB.Transparency = 1
1865
		Player.Character[Name].CHandleB1.Transparency = 1
1866
		Player.Character[Name].Bolt.Mesh.Offset = Vector3.new(0, 0, 0)
1867
		Player.Character[Name].Bolt.Mesh.Scale = Vector3.new(0.14, 0.3, 0.14)			
1868
		wait(0.02)
1869
		removeParts("RightHand")
1870
		makeParts("RightHand")	
1871
		Player.Character[Name].DustCover.Mesh.Offset = Vector3.new(0, 0, 0.115)			
1872
		playAnimation("hold")
1873
		return true
1874
	end
1875
	if format == "fire" then
1876
		Player.Character[Name].Bolt.Mesh.Offset = Vector3.new(0, 0.115, 0)
1877
		Player.Character[Name].Bolt.Mesh.Scale = Vector3.new(0.14, 0.1, 0.14)		
1878
		Player.Character[Name].DustCover.Mesh.Offset = Vector3.new(0, 0, 0.115)		
1879
		makeShell(Player.Character[Name]:FindFirstChild("ShellOut"))
1880
		if Player.Character[Name]:FindFirstChild("Handle") ~= nil then
1881
			if silenced then
1882
				Player.Character[Name].Handle.Fire2.Volume = math.random(3, 8) / 10
1883
				Player.Character[Name].Handle.Fire2.Pitch = math.random(1.8, 2)
1884
				Player.Character[Name].Handle.Fire2:Play()
1885
				CamShake(10, 3000)
1886
			else
1887
				Player.Character[Name].Handle.Fire.Volume = math.random(9, 10) / 10
1888
				Player.Character[Name].Handle.Fire:Play()
1889
				CamShake(10, 3000)
1890
			end
1891
		else return false end
1892
		if Player.Character[Name]:FindFirstChild("Muzzle") ~= nil then
1893
			if silenced == false then
1894
				coroutine.resume(coroutine.create(function() Player.Character[Name].Muzzle.Smoke.Enabled = true Player.Character[Name].Muzzle.Fire.Enabled = true wait(0.1) Player.Character[Name].Muzzle.Smoke.Enabled = false Player.Character[Name].Muzzle.Fire.Enabled = false end))
1895
			else end
1896
		else return false end
1897
		for i = 0, 6, 3 do
1898
			if Player.Character:FindFirstChild("Torso") ~= nil then
1899
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1900
					Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
1901
					Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.3, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 + i), math.rad(-90))
1902
					Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
1903
					Player.Character.Torso["Right Shoulder 2"].C1 =  CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 - i), math.rad(-5), 0)
1904
					wait()
1905
				else return false end
1906
			else return false end
1907
		end
1908
		if magazine.Value ~= 0 then
1909
			Player.Character[Name].Bolt.Mesh.Offset = Vector3.new(0, 0, 0)
1910
			Player.Character[Name].Bolt.Mesh.Scale = Vector3.new(0.14, 0.3, 0.14)				
1911
		elseif magazine.Value == 0 then
1912
			Player.Character[Name].Handle.Lock:Play()
1913
		end
1914
		if math.random(1, Reliability) == 1 then 
1915
			Jammed = true
1916
			Player.Character[Name].Handle.Jam:Play()			
1917
		end
1918
		for i = 6, 0, -3 do
1919
			if Player.Character:FindFirstChild("Torso") ~= nil then
1920
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
1921
					Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
1922
					Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.3, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 + i), math.rad(-90))
1923
					Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
1924
					Player.Character.Torso["Right Shoulder 2"].C1 =  CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 - i), math.rad(-5), 0)
1925
					wait()
1926
				else return false end
1927
			else return false end
1928
		end
1929
	end
1930
	return true
1931
end
1932
1933
1934
function CamShake(time, freq)
1935
	coroutine.resume(coroutine.create(function()
1936
		local cam = game:GetService("Workspace").CurrentCamera
1937
		local time = 10
1938
		local seed = Vector3.new(math.random(100, 200) / freq, math.random(100, 200) / freq, 0)
1939
		if math.random(1, 2) == 1 then seed = Vector3.new(-seed.x, seed.y, 0) end
1940
		if math.random(1, 2) == 1 then seed = Vector3.new(seed.x, -seed.y, 0) end
1941
		cam.CoordinateFrame = (CFrame.new(cam.Focus.p) * (cam.CoordinateFrame - cam.CoordinateFrame.p) * CFrame.fromEulerAnglesXYZ(seed.x * time, seed.y * time, 0)) * CFrame.new(0, 0, (cam.CoordinateFrame.p - cam.Focus.p).magnitude)
1942
		for i = 1, time do
1943
			cam.CoordinateFrame = (CFrame.new(cam.Focus.p) * (cam.CoordinateFrame - cam.CoordinateFrame.p) * CFrame.fromEulerAnglesXYZ(-seed.x, -seed.y, 0)) * CFrame.new(0, 0, (cam.CoordinateFrame.p - cam.Focus.p).magnitude)
1944
			wait()
1945
		end
1946
	end))
1947
end
1948
1949
1950
function makeShell(part)
1951
	if part == nil then return false end
1952
	local casing = Instance.new("Part")
1953
	casing.Name = "Shell"
1954
	casing.formFactor = "Custom"
1955
	casing.Size = Vector3.new(0.2, 0.25, 0.2)
1956
	casing.CFrame = CFrame.new(part.Position) * CFrame.fromEulerAnglesXYZ(math.rad(math.random(0, 360)), math.rad(math.random(0, 360)), math.rad(math.random(0, 360)))
1957
	casing.BrickColor = BrickColor.new("New Yeller")
1958
	local mesh = Instance.new("CylinderMesh")
1959
	mesh.Scale = Vector3.new(0.4, 1, 0.4)
1960
	mesh.Parent = casing
1961
	casing.Parent = game:GetService("Workspace")
1962
	casing:BreakJoints()
1963
	casing.Velocity = (part.CFrame.lookVector * 50) + Vector3.new(0, 10, 0)
1964
	coroutine.resume(coroutine.create(function() wait(4.5) for i = 0, 1, 0.1 do casing.Transparency = i wait() end casing:Remove() end))
1965
end
1966
1967
1968
function Weld(x, y)
1969
	local weld = Instance.new("Weld")
1970
	weld.Part0 = x
1971
	weld.Part1 = y
1972
	CJ = CFrame.new(x.Position)
1973
	C0 = x.CFrame:inverse() * CJ
1974
	C1 = y.CFrame:inverse() * CJ
1975
	weld.C0 = C0
1976
	weld.C1 = C1
1977
	weld.Parent = x
1978
end
1979
1980
1981
function tagHumanoid(humanoid)
1982
	local tag = Instance.new("ObjectValue")
1983
	tag.Name = "creator"
1984
	tag.Value = Player
1985
	tag.Parent = humanoid
1986
	local tag = Instance.new("StringValue")
1987
	tag.Name = "creatorType1"
1988
	tag.Value = Name
1989
	tag.Parent = humanoid
1990
	local tag = Instance.new("StringValue")
1991
	tag.Name = "creatorType2"
1992
	tag.Value = "shot"
1993
	tag.Parent = humanoid
1994
end
1995
1996
1997
function untagHumanoid(humanoid)
1998
	if humanoid ~= nil then
1999
		local tag = humanoid:FindFirstChild("creator")
2000
		if tag ~= nil then
2001
			tag:Remove()
2002
		end
2003
		local tag = humanoid:FindFirstChild("creatorType1")
2004
		if tag ~= nil then
2005
			tag:Remove()
2006
		end
2007
		local tag = humanoid:FindFirstChild("creatorType2")
2008
		if tag ~= nil then
2009
			tag:Remove()
2010
		end
2011
	end
2012
end
2013
2014
2015
function fire(startPoint, endPoint, hit)
2016
	local trail = Instance.new("Part")
2017
	trail.Name = "Bullet Trail"
2018
	trail.BrickColor = BrickColor.new("Dark stone grey")
2019
	trail.TopSurface = 0
2020
	trail.BottomSurface = 0
2021
	trail.formFactor = 0
2022
	trail.Size = Vector3.new(1, 1, 1)
2023
	trail.Transparency = 0.5
2024
	trail.Anchored = true
2025
	trail.CanCollide = false
2026
	trail.CFrame = CFrame.new((startPoint + endPoint) / 2, endPoint)
2027
	trail.Parent = game:GetService("Workspace")
2028
	local mesh = Instance.new("SpecialMesh")
2029
	mesh.MeshType = "Brick"
2030
	mesh.Scale = Vector3.new(0.1, 0.1, (startPoint - endPoint).magnitude)
2031
	mesh.Parent = trail
2032
	coroutine.resume(coroutine.create(function(part) for i = 1, 10 do part.Mesh.Scale = Vector3.new(part.Mesh.Scale.x - 0.01, part.Mesh.Scale.y - 0.01, part.Mesh.Scale.z) wait() end part:Remove() end), trail)
2033
	if hit ~= nil then
2034
		if hit.Parent == nil then return end
2035
		if hit.Parent.ClassName == "Hat" then
2036
			if hit.Parent.Parent.Humanoid ~= nil then
2037
				hit.Parent.Parent.Humanoid:TakeDamage(damage * 5)
2038
			end
2039
		end		
2040
		if hit.Parent:FindFirstChild("Humanoid") ~= nil then
2041
			tagHumanoid(hit.Parent.Humanoid)
2042
			if hit.Name == "Head" then
2043
				hit.Parent.Humanoid:TakeDamage(damage * 10)
2044
			elseif hit.Name == "Torso" then
2045
				hit.Parent.Humanoid:TakeDamage(damage * 2)
2046
			elseif hit.Name == "Left Leg" then
2047
				hit.Parent.Humanoid:TakeDamage(damage)	
2048
				hit.Parent.Humanoid.Sit = true	
2049
			elseif hit.Name == "Right Leg" then
2050
				hit.Parent.Humanoid:TakeDamage(damage)	
2051
				hit.Parent.Humanoid.Sit = true								
2052
			else
2053
				hit.Parent.Humanoid:TakeDamage(damage)
2054
			end
2055
			if math.random(1, 10) == 1 then
2056
				hit.Parent.Humanoid.Sit = true
2057
			end
2058
			delay(0.1, function() untagHumanoid(hit.Parent.Humanoid) end)
2059
		end
2060
		if hit.Anchored == false then
2061
			hit.Velocity = hit.Velocity + ((endPoint - startPoint).unit * (damage * 2))
2062
		end
2063
	end
2064
end
2065
2066
2067
function onButton1Down(mouse)
2068
	if selected == false then return end
2069
	if Player.Character:FindFirstChild(Name) ~= nil and Button1Down == false and canFire == true and (function() if dual == true then if Player.Character:FindFirstChild(Name.. " (Left)") ~= nil then return true else return false end else return true end end)() == true then
2070
		if Player.Character[Name]:FindFirstChild("Handle") == nil then return end
2071
		if Player.Character[Name]:FindFirstChild("Muzzle") == nil then return end
2072
		if dual == true then if Player.Character[Name.. " (Left)"]:FindFirstChild("Handle") == nil then return end end
2073
		if dual == true then if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end end
2074
		mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
2075
		Button1Down = true
2076
		canFire = false
2077
		canFire2 = true
2078
		while canFire2 == true do
2079
			local humanoid = Player.Character:FindFirstChild("Humanoid")
2080
			if humanoid == nil then
2081
				canFire2 = false
2082
				break
2083
			end
2084
			if humanoid.Health <= 0 then
2085
				canFire2 = false
2086
				break
2087
			end
2088
			local fireLeft = false
2089
			if automatic == false and burst == false then
2090
				canFire2 = false
2091
			elseif automatic == false and burst == true then
2092
				if burstCount >= burstCountMax then
2093
					canFire2 = false
2094
					burstCount = 0
2095
					break
2096
				end
2097
				burstCount = burstCount + 1
2098
			elseif automatic == true and burst == false then
2099
				fireLeft = true
2100
			end
2101
			if Jammed ~= true and Ready == true then
2102
				if magazine.Value > 0 then
2103
					magazine.Value = magazine.Value - 1
2104
					updateGui()
2105
					if silenced == true then
2106
						CamShake(1, Spread)
2107
					else end		
2108
					fire(Player.Character[Name].Muzzle.Position, mouse.Hit.p, mouse.Target)
2109
					coroutine.resume(coroutine.create(function()
2110
						if dual == true then
2111
							playAnimation("rightFire")
2112
						elseif dual == false then
2113
							playAnimation("fire")
2114
						end
2115
					end))
2116
				else
2117
					Player.Character[Name].Handle.Empty:Play()
2118
				end
2119
			else
2120
				Player.Character[Name].Handle.Jam:Play()	
2121
			end
2122
			if fireLeft == true and dual == true and automatic == true then
2123
				if magazine.Value > 0 then
2124
					coroutine.resume(coroutine.create(function()
2125
						wait(readyTime / 2)
2126
						magazine.Value = magazine.Value - 1
2127
						updateGui()
2128
						fire(Player.Character[Name.. " (Left)"].Muzzle.Position, mouse.Hit.p, mouse.Target)
2129
						playAnimation("leftFire")
2130
					end))
2131
				else
2132
					coroutine.resume(coroutine.create(function()
2133
						wait(readyTime / 2)
2134
						Player.Character[Name].Handle.Empty:Play()
2135
					end))
2136
				end
2137
			end
2138
			wait(readyTime)
2139
		end
2140
		mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
2141
		canFire = true
2142
	end
2143
end
2144
2145
2146
function onButton1Up(mouse)
2147
	if selected == false then return end
2148
	Button1Down = false
2149
	canFire2 = false
2150
	burstCount = 0
2151
	while canFire == false do wait() end
2152
	if dual == true and automatic == false then
2153
		if Player.Character[Name.. " (Left)"]:FindFirstChild("Handle") == nil then return end
2154
		if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end
2155
		mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
2156
		canFire = false
2157
		canFire2 = true
2158
		while canFire2 == true do
2159
			local humanoid = Player.Character:FindFirstChild("Humanoid")
2160
			if humanoid == nil then
2161
				canFire2 = false
2162
				break
2163
			end
2164
			if humanoid.Health <= 0 then
2165
				canFire2 = false
2166
				break
2167
			end
2168
			if burst == false then
2169
				canFire2 = false
2170
			elseif burst == true then
2171
				if burstCount >= burstCountMax then
2172
					canFire2 = false
2173
					burstCount = 0
2174
					break
2175
				end
2176
				burstCount = burstCount + 1
2177
			end
2178
			if magazine.Value <= 0 then
2179
				Player.Character[Name].Handle.Empty:Play()
2180
			else
2181
				coroutine.resume(coroutine.create(function()
2182
					playAnimation("leftFire")
2183
				end))
2184
				magazine.Value = magazine.Value - 1
2185
				updateGui()
2186
				fire(Player.Character[Name.. " (Left)"].Muzzle.Position, mouse.Hit.p, mouse.Target)
2187
			end
2188
			wait(readyTime)
2189
		end
2190
		mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
2191
		canFire = true
2192
	end
2193
end
2194
2195
2196
function onKeyDown(key, mouse)
2197
	if selected == false then return end
2198
	key = key:lower()
2199
	if key == "q" and Button1Down == false and canFire == true then
2200
		if mouse.Target == nil then return end
2201
		if game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent) ~= nil then
2202
			if dual == true then onKeyDown("t", mouse) end
2203
			onDeselected(mouse)
2204
			removeParts("RightHolster")
2205
			script.Parent.Parent = game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent).Backpack
2206
		end
2207
	end
2208
	if key == "e" and Button1Down == false and canFire == true and canSilence == true then
2209
		if silenced then
2210
			silenced = false
2211
			if Player.Character:FindFirstChild(Name) == nil then return end
2212
			if Player.Character[Name]:FindFirstChild("Muzzle") == nil then return end
2213
			if Player.Character[Name]:FindFirstChild("Muzzle 2") == nil then return end
2214
			Player.Character[Name].Muzzle.Transparency = 1
2215
			Player.Character[Name].Silencer1.Transparency = 1			
2216
			Player.Character[Name].Muzzle.Name = "Silencer"
2217
			Player.Character[Name]["Muzzle 2"].Name = "Muzzle"
2218
			if dual == true then
2219
				if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end
2220
				if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle 2") == nil then return end
2221
				Player.Character[Name.. " (Left)"].Muzzle.Transparency = 1
2222
				Player.Character[Name.. " (Left)"].Muzzle.Name = "Silencer"
2223
				Player.Character[Name.. " (Left)"]["Muzzle 2"].Name = "Muzzle"
2224
			end
2225
		else
2226
			silenced = true
2227
			if Player.Character:FindFirstChild(Name) == nil then return end
2228
			if Player.Character[Name]:FindFirstChild("Silencer") == nil then return end
2229
			if Player.Character[Name]:FindFirstChild("Muzzle") == nil then return end
2230
			Player.Character[Name].Silencer.Transparency = 0
2231
			Player.Character[Name].Silencer1.Transparency = 0						
2232
			Player.Character[Name].Muzzle.Name = "Muzzle 2"
2233
			Player.Character[Name].Silencer.Name = "Muzzle"
2234
			if dual == true then
2235
				if Player.Character[Name.. " (Left)"]:FindFirstChild("Silencer") == nil then return end
2236
				if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end
2237
				Player.Character[Name.. " (Left)"].Silencer.Transparency = 0
2238
				Player.Character[Name.. " (Left)"].Muzzle.Name = "Muzzle 2"
2239
				Player.Character[Name.. " (Left)"].Silencer.Name = "Muzzle"
2240
			end
2241
		end
2242
	end
2243
	if key == "r" and Button1Down == false and canFire == true then
2244
		if ammo.Value > 0 and magazine.Value ~= magazineMax.Value + 1 then
2245
			canFire = false
2246
			burstCount = 0
2247
			mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
2248
			if magazine.Value > 0 then magazine.Value = 1 end
2249
			updateGui()
2250
			if dual == true then
2251
				playAnimation("reloadDual")
2252
			elseif dual == false then
2253
				playAnimation("reload")
2254
			end
2255
			if ammo.Value - magazineMax.Value < 0 then
2256
				magazine.Value = ammo.Value
2257
				ammo.Value = 0
2258
			elseif ammo.Value - magazineMax.Value >= 0 then
2259
				ammo.Value = ammo.Value - magazineMax.Value
2260
				magazine.Value = magazine.Value + MagSize
2261
			end
2262
			updateGui()
2263
			mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
2264
			canFire = true
2265
		end
2266
	end
2267
	if key == "t" and Button1Down == false and canFire == true and canDual == true then
2268
		canFire = false
2269
		if dual == false then
2270
			local weapon = nil
2271
			for _, p in pairs(Player.Backpack:GetChildren()) do
2272
				if p.Name == Name and p ~= script.Parent then weapon = p break end
2273
			end
2274
			if weapon ~= nil then
2275
				dual = true
2276
				weapon.Name = "Dual"
2277
				weapon.Parent = script
2278
				silenced = false
2279
				removeParts("RightHand")
2280
				makeParts("RightHand")
2281
				removeParts("RightHolster")
2282
				makeParts("LeftHolster")
2283
				playAnimation("leftEquip")
2284
				removeParts("LeftHolster")
2285
				makeParts("LeftHand")
2286
				magazineMax.Value = math.ceil(magazineMax.Value * 2)
2287
				ammoMax.Value = math.ceil(ammoMax.Value * 2)
2288
				magazine.Value = magazine.Value + weapon.Magazine.Value
2289
				ammo.Value = ammo.Value + weapon.Ammo.Value
2290
				updateGui()
2291
			end
2292
		elseif dual == true then
2293
			local weapon = script:FindFirstChild("Dual")
2294
			if weapon ~= nil then
2295
				dual = false
2296
				weapon.Name = Name
2297
				weapon.Parent = Player.Backpack
2298
				silenced = false
2299
				removeParts("RightHand")
2300
				makeParts("RightHand")
2301
				playAnimation("leftUnequip")
2302
				removeParts("LeftHand")
2303
				makeParts("RightHolster")
2304
				playAnimation("hold")
2305
				weapon.Magazine.Value = math.floor(magazine.Value / 2)
2306
				weapon.Ammo.Value = math.floor(ammo.Value / 2)
2307
				magazineMax.Value = math.ceil(magazineMax.Value / 2)
2308
				ammoMax.Value = math.ceil(ammoMax.Value / 2)
2309
				magazine.Value = math.ceil(magazine.Value / 2)
2310
				ammo.Value = math.ceil(ammo.Value / 2)
2311
				updateGui()
2312
			end
2313
		end
2314
		canFire = true
2315
	end
2316
	if key == "y" and canZoom == true then
2317
		if zoom == false then
2318
			zoom = true
2319
			local pos = mouse.Hit.p
2320
			local target = mouse.Target
2321
			local cam = game:GetService("Workspace").CurrentCamera
2322
			focus = Instance.new("Part", workspace)
2323
			focus.Anchored = true
2324
			focus.CanCollide = false
2325
			focus.Transparency = 1
2326
			focus.TopSurface = 0
2327
			focus.BottomSurface = 0
2328
			focus.formFactor = "Plate"
2329
			focus.Size = Vector3.new(0, 0, 0)
2330
			focus.CFrame = CFrame.new(pos) * (CFrame.new(Player.Character.Torso.CFrame.p, pos) - CFrame.new(Player.Character.Torso.CFrame.p, pos).p)
2331
			cam.CameraSubject = focus
2332
			cam.CameraType = "Attach"
2333
			while zoom == true and selected == true do
2334
				local set = false
2335
				if target ~= nil then
2336
					if target.Parent ~= nil then
2337
						if target.Anchored == false then
2338
							focus.CFrame = CFrame.new(target.CFrame.p) * (CFrame.new(Player.Character.Torso.CFrame.p, target.CFrame.p) - CFrame.new(Player.Character.Torso.CFrame.p, target.CFrame.p).p)
2339
							set = true
2340
						end
2341
					end
2342
				end
2343
				if set == false then
2344
					focus.CFrame = CFrame.new(pos) * (CFrame.new(Player.Character.Torso.CFrame.p, pos) - CFrame.new(Player.Character.Torso.CFrame.p, pos).p)
2345
				end
2346
				wait()
2347
			end
2348
			if focus ~= nil then focus:Remove() focus = nil end
2349
			local cam = game:GetService("Workspace").CurrentCamera
2350
			cam.CameraSubject = Player.Character:FindFirstChild("Humanoid")
2351
			cam.CameraType = "Custom"
2352
		else
2353
			zoom = false
2354
		end
2355
	end
2356
	if key == "u" and Button1Down == false and canFire == true then
2357
		if automatic == false and burst == false then
2358
			if switchToBurst == true then
2359
				burst = true
2360
				local m = Instance.new("Message", Player)
2361
				m.Text = "Burst"
2362
				pcall(function() Player.Character[Name].Handle.Switch:Play() end)
2363
				delay(2.5, function() m:Remove() end)
2364
			elseif switchToAutomatic == true then
2365
				automatic = true
2366
				local m = Instance.new("Message", Player)
2367
				m.Text = "Automatic"
2368
				pcall(function() Player.Character[Name].Handle.Switch:Play() end)
2369
				delay(2.5, function() m:Remove() end)
2370
			end
2371
		elseif automatic == false and burst == true then
2372
			if switchToAutomatic == true then
2373
				automatic = true
2374
				burst = false
2375
				local m = Instance.new("Message", Player)
2376
				m.Text = "Automatic"
2377
				pcall(function() Player.Character[Name].Handle.Switch:Play() end)
2378
				delay(2.5, function() m:Remove() end)
2379
			elseif switchToSingle == true then
2380
				burst = false
2381
				local m = Instance.new("Message", Player)
2382
				m.Text = "Single"
2383
				pcall(function() Player.Character[Name].Handle.Switch:Play() end)
2384
				delay(2.5, function() m:Remove() end)
2385
			end
2386
		elseif automatic == true and burst == false then
2387
			if switchToSingle == true then
2388
				automatic = false
2389
				local m = Instance.new("Message", Player)
2390
				m.Text = "Single"
2391
				pcall(function() Player.Character[Name].Handle.Switch:Play() end)
2392
				delay(2.5, function() m:Remove() end)
2393
			elseif switchToBurst == true then
2394
				automatic = false
2395
				burst = true
2396
				local m = Instance.new("Message", Player)
2397
				m.Text = "Burst"
2398
				pcall(function() Player.Character[Name].Handle.Switch:Play() end)
2399
				delay(2.5, function() m:Remove() end)
2400
			end
2401
		end
2402
	end
2403
	if key == "f" and Button1Down == false and canFire == true and Attachment == true then
2404
		if Mode == 1 and Mode ~= 0 then
2405
			Player.Character[Name].Handle.Switch:Play()
2406
			Player.Character[Name].Laser.Transparency = 1
2407
			Mode = 0
2408
		elseif Mode == 0 and Mode ~= 1 then
2409
			Player.Character[Name].Handle.Switch:Play()		
2410
			Player.Character[Name].Laser.Transparency = 0.4
2411
			Mode = 1
2412
		end
2413
	end
2414
	if key == "c" and Button1Down == false and canFire == true then
2415
		if magazine.Value ~= 0 then
2416
			canFire = false
2417
			burstCount = 0
2418
			if magazine.Value ~= 0 then magazine.Value = magazine.Value - 1 end
2419
			updateGui()
2420
			playAnimation("charge")
2421
			canFire = true
2422
		end
2423
	end	
2424
	if key == "x" and canFire == true then
2425
		canFire = false
2426
		playAnimation("ready")
2427
		if Ready == false then
2428
			Player.Character.Humanoid.WalkSpeed = AimSpeed
2429
			Ready = true
2430
		else
2431
			Player.Character.Humanoid.WalkSpeed = 16
2432
			Ready = false
2433
		end
2434
		canFire = true
2435
	end			
2436
end
2437
2438
2439
function onSelected(mouse)
2440
	if selected == true then return end
2441
	selected = true
2442
	canFire = false
2443
	mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
2444
	while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
2445
		if Player.Character.WeaponActivated.Value == nil then break end
2446
		if Player.Character.WeaponActivated.Value.Parent == nil then break end
2447
		wait()
2448
	end
2449
	updateGui()
2450
	local weapon = Instance.new("ObjectValue")
2451
	weapon.Name = "WeaponActivated"
2452
	weapon.Value = script.Parent
2453
	weapon.Parent = Player.Character
2454
	DisableLimb(1, Player.Character)
2455
	DisableLimb(2, Player.Character)
2456
	ForceAngle(1, 0, Player.Character)
2457
	ForceAngle(2, 0, Player.Character)
2458
	if dual == true then
2459
		coroutine.resume(coroutine.create(function() playAnimation("leftEquip") end))
2460
		playAnimation("rightEquip")
2461
		removeParts("LeftHolster")
2462
		makeParts("LeftHand")
2463
	else
2464
		playAnimation("equip")
2465
	end
2466
	removeParts("RightHolster")
2467
	makeParts("RightHand")
2468
	mouse.Button1Down:connect(function() onButton1Down(mouse) end)
2469
	mouse.Button1Up:connect(function() onButton1Up(mouse) end)
2470
	mouse.KeyDown:connect(function(key) onKeyDown(key, mouse) end)
2471
	mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
2472
	canFire = true
2473
end
2474
2475
2476
function onDeselected(mouse)
2477
	if selected == false then return end
2478
	Button1Down = false
2479
	while canFire == false do
2480
		wait()
2481
	end
2482
	selected = false
2483
	if dual == true then
2484
		if math.random(1, 2) == 1 then
2485
			coroutine.resume(coroutine.create(function() playAnimation("leftUnequip") end))
2486
			wait(math.random(1, 10) / 10)
2487
			playAnimation("rightUnequip")
2488
		else
2489
			coroutine.resume(coroutine.create(function() playAnimation("rightUnequip") end))
2490
			wait(math.random(1, 10) / 10)
2491
			playAnimation("leftUnequip")
2492
		end
2493
		removeParts("LeftHand")
2494
		makeParts("LeftHolster")
2495
	else
2496
		playAnimation("unequip")
2497
	end
2498
	removeParts("RightHand")
2499
	makeParts("RightHolster")
2500
	ForceAngle(1, 0, Player.Character)
2501
	ForceAngle(2, 0, Player.Character)
2502
	ResetLimbCFrame(1, Player.Character)
2503
	ResetLimbCFrame(2, Player.Character)
2504
	EnableLimb(1, Player.Character)
2505
	EnableLimb(2, Player.Character)
2506
	if Player.PlayerGui:FindFirstChild(Name) ~= nil then Player.PlayerGui[Name]:Remove() end
2507
	if Player.Character:FindFirstChild("WeaponActivated") ~= nil then
2508
		if Player.Character.WeaponActivated.Value == script.Parent then
2509
			Player.Character.WeaponActivated:Remove()
2510
		end
2511
	end
2512
	while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
2513
		if Player.Character.WeaponActivated.Value == nil then break end
2514
		if Player.Character.WeaponActivated.Value.Parent == nil then break end
2515
		wait()
2516
	end
2517
end
2518
2519
2520
if script.Parent.className ~= "HopperBin" then
2521
	if Player == nil then print("Error: Player not found!") return end
2522
	Tool = Instance.new("HopperBin")
2523
	Tool.Name = Name
2524
	Tool.Parent = Player.Backpack
2525
	script.Name = "Main"
2526
	script.Parent = Tool
2527
elseif script.Parent.className == "HopperBin" then
2528
	while script.Parent.Parent.className ~= "Backpack" do
2529
		wait()
2530
	end
2531
	if script.Parent:FindFirstChild("MagazineMax") == nil then
2532
		magazineMax = Instance.new("NumberValue")
2533
		magazineMax.Name = "MagazineMax"
2534
		magazineMax.Value = 10
2535
		magazineMax.Parent = script.Parent
2536
	else
2537
		magazineMax = script.Parent.MagazineMax
2538
	end
2539
	if script.Parent:FindFirstChild("Magazine") == nil then
2540
		magazine = Instance.new("NumberValue")
2541
		magazine.Name = "Magazine"
2542
		magazine.Value = 0
2543
		magazine.Parent = script.Parent
2544
	else
2545
		magazine = script.Parent.Magazine
2546
	end
2547
	if script.Parent:FindFirstChild("AmmoMax") == nil then
2548
		ammoMax = Instance.new("NumberValue")
2549
		ammoMax.Name = "AmmoMax"
2550
		ammoMax.Value = 110
2551
		ammoMax.Parent = script.Parent
2552
	else
2553
		ammoMax = script.Parent.AmmoMax
2554
	end
2555
	if script.Parent:FindFirstChild("Ammo") == nil then
2556
		ammo = Instance.new("NumberValue")
2557
		ammo.Name = "Ammo"
2558
		ammo.Value = script.Parent.AmmoMax.Value
2559
		ammo.Parent = script.Parent
2560
	else
2561
		ammo = script.Parent.Ammo
2562
	end
2563
	Player = script.Parent.Parent.Parent
2564
	makeParts("RightHolster")
2565
	script.Parent.Selected:connect(onSelected)
2566
	script.Parent.Deselected:connect(onDeselected)
2567
end