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