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