View difference between Paste ID: AbcFq6AE and vYZQ7YBi
SHOW: | | - or go back to the newest paste.
1
--RPG 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("SilentSoulGamer") --Replace my name with yours for the RPG to work.
6+
Player = script:FindFirstChild("Player") ~= nil and script.Player.Value or game:GetService("Players"):FindFirstChild("jassm11") --Replace my name with yours for the RPG to work.
7
Name = "RPG" --Sets name of the RPG.
8
selected = false
9
canDual = false
10
dual = false
11
Button1Down = false
12
damage = 100 --Sets damage also.
13
canFire = true
14
canFire2 = false
15
readyTime = 0.5
16
automatic = true
17
burst = false
18
burstCount = 0
19
burstCountMax = 3
20
canSilence = false
21
silenced = false
22
canZoom = true
23
zoom = false
24
switchToSingle = false
25
switchToBurst = false
26
switchToAutomatic = false
27
28
29
ammoGui = Instance.new("ScreenGui")
30
ammoGui.Name = Name
31
local frame = Instance.new("Frame")
32
frame.Name = "Frame"
33
frame.Size = UDim2.new(0, 165, 0, 60)
34
frame.Position = UDim2.new(0, 0, 1, -60)
35
frame.BackgroundColor3 = Color3.new(1, 1, 1)
36
frame.BorderColor3 = Color3.new(0, 0, 0)
37
frame.Parent = ammoGui
38
local label = Instance.new("TextLabel")
39
label.Name = "Weapon"
40
label.Text = "Wargarkaztestplace's " ..Name
41
label.Size = UDim2.new(1, 0, 0, 20)
42
label.Position = UDim2.new(0, 0, 0, 0)
43
label.BackgroundColor3 = Color3.new(1, 0, 0)
44
label.BorderColor3 = Color3.new(0, 0, 0)
45
label.Parent = frame
46
local label = Instance.new("TextLabel")
47
label.Name = "MagazinePrefix"
48
label.Text = "    Magazine:"
49
label.TextXAlignment = "Left"
50
label.Size = UDim2.new(1, 0, 0, 20)
51
label.Position = UDim2.new(0, 0, 0, 20)
52
label.BackgroundColor3 = Color3.new(1, 1, 1)
53
label.BorderColor3 = Color3.new(0, 0, 0)
54
label.Parent = frame
55
local label = Instance.new("TextLabel")
56
label.Name = "Magazine"
57
label.Text = "0/0"
58
label.TextXAlignment = "Right"
59
label.Size = UDim2.new(1, 0, 0, 20)
60
label.Position = UDim2.new(0, -10, 0, 20)
61
label.BackgroundTransparency = 1
62
label.BorderSizePixel = 0
63
label.Parent = frame
64
local label = Instance.new("TextLabel")
65
label.Name = "AmmoPrefix"
66
label.Text = "    Ammunition:"
67
label.TextXAlignment = "Left"
68
label.Size = UDim2.new(1, 0, 0, 20)
69
label.Position = UDim2.new(0, 0, 0, 40)
70
label.BackgroundColor3 = Color3.new(1, 1, 1)
71
label.BorderColor3 = Color3.new(0, 0, 0)
72
label.Parent = frame
73
local label = Instance.new("TextLabel")
74
label.Name = "Ammo"
75
label.Text = "0/0"
76
label.TextXAlignment = "Right"
77
label.Size = UDim2.new(1, 0, 0, 20)
78
label.Position = UDim2.new(0, -10, 0, 40)
79
label.BackgroundTransparency = 1
80
label.BorderSizePixel = 0
81
label.Parent = frame
82
83
84
function updateGui()
85
	if selected == false then return end
86
	if Player:FindFirstChild("PlayerGui") == nil then Instance.new("PlayerGui").Parent = Player end
87
	if Player.PlayerGui:FindFirstChild(Name) == nil then
88
		ammoGui:Clone().Parent = Player.PlayerGui
89
	end
90
	Player.PlayerGui[Name].Frame.Magazine.Text = tostring(magazine.Value).. "/" ..tostring(magazineMax.Value)
91
	Player.PlayerGui[Name].Frame.Ammo.Text = tostring(ammo.Value).. "/" ..tostring(ammoMax.Value)
92
end
93
94
95
function makeParts(format)
96
	local model = Instance.new("Model")
97
	model.Name = Name
98
	local pm = Instance.new("Part")
99
	pm.Name = "Handle"
100
	pm.FormFactor = "Custom"
101
	pm.Size = Vector3.new(1, 1, 1)
102
	pm.BrickColor = BrickColor.new("Black")
103
	pm.Locked = true
104
	pm.TopSurface = 0
105
	pm.BottomSurface = 0
106
	pm.Parent = model
107
	local m = Instance.new("CylinderMesh")
108
	m.Scale = Vector3.new(0.35, 1.5, 0.35)
109
	m.Parent = pm
110
	if format ~= nil then
111
		local w = Instance.new("Weld")
112
		w.Part0 = pm
113
		if format == "RightHand" then
114
			w.Part1 = Player.Character:FindFirstChild("Right Arm")
115
			w.C0 = CFrame.new(0, 1.5, 0.75)
116
			w.C1 = CFrame.new()
117
		elseif format == "RightHolster" then
118
			w.Part1 = Player.Character:FindFirstChild("Torso")
119
			w.C0 = CFrame.new(-0.65, 1, 0) * CFrame.fromEulerAnglesXYZ(math.rad(185), math.rad(90), 0)
120
			w.C1 = CFrame.new()
121
			model.Name = Name.. " (Holstered)"
122
		end
123
		w.Parent = pm
124
		model.Parent = Player.Character
125
	end
126
	--[[
127
	sniper1  http://www.roblox.com/Asset/?id=1868836
128
	equip    http://www.roblox.com/Asset/?id=13510737
129
	fire1     http://www.roblox.com/Asset/?id=2760979
130
	fire2    http://www.roblox.com/Asset/?id=13510352
131
	fire3    http://www.roblox.com/Asset/?id=2692806
132
	fire4    http://www.roblox.com/Asset/?id=2691586
133
	fire5    http://www.roblox.com/Asset/?id=2920959
134
	fire6    http://www.roblox.com/Asset/?id=2697431
135
	fire7    http://www.roblox.com/Asset/?id=2920959
136
	reload1   http://www.roblox.com/Asset/?id=2691591
137
	reload2   http://www.roblox.com/Asset/?id=2697432
138
	reload3  http://www.roblox.com/Asset/?id=2920960
139
	reload4  http://www.roblox.com/Asset/?id=2761842
140
	shotgun1 http://www.roblox.com/Asset/?id=2697294
141
	--]]
142
	local s = Instance.new("Sound")
143
	s.Name = "Equip"
144
	s.SoundId = "http://www.roblox.com/Asset/?id=10209881"
145
	s.Volume = 1
146
	s.Pitch = 1
147
	s.Looped = false
148
	s.Parent = pm
149
	local s = Instance.new("Sound")
150
	s.Name = "Fire"
151
	s.SoundId = "rbxasset://sounds/Shoulder fired rocket.wav"
152
	s.Volume = 1
153
	s.Pitch = 1.25
154
	s.Looped = false
155
	s.Parent = pm
156
	local s = Instance.new("Sound")
157
	s.Name = "Reload"
158
	s.SoundId = "http://www.roblox.com/Asset/?id=2691591"
159
	s.Volume = 1
160
	s.Pitch = 1.25
161
	s.Looped = false
162
	s.Parent = pm
163
	local s = Instance.new("Sound")
164
	s.Name = "Empty"
165
	s.SoundId = "http://www.roblox.com/Asset/?id=2697295"
166
	s.Volume = 1
167
	s.Pitch = 5
168
	s.Looped = false
169
	s.Parent = pm
170
	local s = Instance.new("Sound")
171
	s.Name = "Switch"
172
	s.SoundId = "http://www.roblox.com/Asset/?id=2697295"
173
	s.Volume = 1
174
	s.Pitch = 10
175
	s.Looped = false
176
	s.Parent = pm
177
	local p = Instance.new("Part")
178
	p.Name = "Grip / Trigger Housing"
179
	p.FormFactor = "Custom"
180
	p.Size = Vector3.new(1, 1, 1)
181
	p.BrickColor = BrickColor.new("Black")
182
	p.Locked = true
183
	p.TopSurface = 0
184
	p.BottomSurface = 0
185
	p.Parent = model
186
	local m = Instance.new("SpecialMesh")
187
	m.MeshType = "Brick"
188
	m.Scale = Vector3.new(0.29, 0.75, 0.1)
189
	m.Parent = p
190
	local w = Instance.new("Weld")
191
	w.Part0 = p
192
	w.Part1 = pm
193
	w.C0 = CFrame.new(0, -0.2, -0.15)
194
	w.C1 = CFrame.new()
195
	w.Parent = p
196
	local p = Instance.new("Part")
197
	p.Name = "Grip 1"
198
	p.FormFactor = "Custom"
199
	p.Size = Vector3.new(1, 1, 1)
200
	p.BrickColor = BrickColor.new("Black")
201
	p.Locked = true
202
	p.TopSurface = 0
203
	p.BottomSurface = 0
204
	p.Parent = model
205
	local m = Instance.new("SpecialMesh")
206
	m.MeshType = "Brick"
207
	m.Scale = Vector3.new(0.29, 0.35, 0.9)
208
	m.Parent = p
209
	local w = Instance.new("Weld")
210
	w.Part0 = p
211
	w.Part1 = pm
212
	w.C0 = CFrame.new(0, -0.4, -0.65)
213
	w.C1 = CFrame.new()
214
	w.Parent = p
215
	local p = Instance.new("Part")
216
	p.Name = "Grip 2"
217
	p.FormFactor = "Custom"
218
	p.Size = Vector3.new(1, 1, 1)
219
	p.BrickColor = BrickColor.new("Reddish brown")
220
	p.Material = "Wood"
221
	p.Locked = true
222
	p.TopSurface = 0
223
	p.BottomSurface = 0
224
	p.Parent = model
225
	local m = Instance.new("SpecialMesh")
226
	m.MeshType = "Brick"
227
	m.Scale = Vector3.new(0.29, 0.35, 0.8)
228
	m.Parent = p
229
	local w = Instance.new("Weld")
230
	w.Part0 = p
231
	w.Part1 = pm
232
	w.C0 = CFrame.new(0, -1.1, -0.575)
233
	w.C1 = CFrame.new()
234
	w.Parent = p
235
	local p = Instance.new("Part")
236
	p.Name = "Trigger Housing 1"
237
	p.FormFactor = "Custom"
238
	p.Size = Vector3.new(1, 1, 1)
239
	p.BrickColor = BrickColor.new("Black")
240
	p.Locked = true
241
	p.TopSurface = 0
242
	p.BottomSurface = 0
243
	p.Parent = model
244
	local m = Instance.new("SpecialMesh")
245
	m.MeshType = "Brick"
246
	m.Scale = Vector3.new(0.1, 0.25, 0.025)
247
	m.Parent = p
248
	local w = Instance.new("Weld")
249
	w.Part0 = p
250
	w.Part1 = pm
251
	w.C0 = CFrame.new(0, -0.1, -0.5)
252
	w.C1 = CFrame.new()
253
	w.Parent = p
254
	local p = Instance.new("Part")
255
	p.Name = "Trigger Housing 2"
256
	p.FormFactor = "Custom"
257
	p.Size = Vector3.new(1, 1, 1)
258
	p.BrickColor = BrickColor.new("Black")
259
	p.Locked = true
260
	p.TopSurface = 0
261
	p.BottomSurface = 0
262
	p.Parent = model
263
	local m = Instance.new("SpecialMesh")
264
	m.MeshType = "Brick"
265
	m.Scale = Vector3.new(0.1, 0.025, 0.3)
266
	m.Parent = p
267
	local w = Instance.new("Weld")
268
	w.Part0 = p
269
	w.Part1 = pm
270
	w.C0 = CFrame.new(0, 0.01, -0.35)
271
	w.C1 = CFrame.new()
272
	w.Parent = p
273
	local p = Instance.new("Part")
274
	p.Name = "Trigger"
275
	p.FormFactor = "Custom"
276
	p.Size = Vector3.new(1, 1, 1)
277
	p.BrickColor = BrickColor.new("Black")
278
	p.Locked = true
279
	p.TopSurface = 0
280
	p.BottomSurface = 0
281
	p.Parent = model
282
	local m = Instance.new("SpecialMesh")
283
	m.MeshType = "Brick"
284
	m.Scale = Vector3.new(0.1, 0.05, 0.15)
285
	m.Parent = p
286
	local w = Instance.new("Weld")
287
	w.Part0 = p
288
	w.Part1 = pm
289
	w.C0 = CFrame.new(0, -0.11, -0.275)
290
	w.C1 = CFrame.new()
291
	w.Parent = p
292
	local p = Instance.new("Part")
293
	p.Name = "Center 1"
294
	p.FormFactor = "Custom"
295
	p.Size = Vector3.new(1, 1, 1)
296
	p.BrickColor = BrickColor.new("Black")
297
	p.Locked = true
298
	p.TopSurface = 0
299
	p.BottomSurface = 0
300
	p.Parent = model
301
	local m = Instance.new("CylinderMesh")
302
	m.Scale = Vector3.new(0.4, 0.5, 0.4)
303
	m.Parent = p
304
	local w = Instance.new("Weld")
305
	w.Part0 = p
306
	w.Part1 = pm
307
	w.C0 = CFrame.new(0, -1, 0)
308
	w.C1 = CFrame.new()
309
	w.Parent = p
310
	local p = Instance.new("Part")
311
	p.Name = "Center 2"
312
	p.FormFactor = "Custom"
313
	p.Size = Vector3.new(1, 1, 1)
314
	p.BrickColor = BrickColor.new("Reddish brown")
315
	p.Material = "Wood"
316
	p.Locked = true
317
	p.TopSurface = 0
318
	p.BottomSurface = 0
319
	p.Parent = model
320
	local m = Instance.new("CylinderMesh")
321
	m.Scale = Vector3.new(0.45, 1, 0.45)
322
	m.Parent = p
323
	local w = Instance.new("Weld")
324
	w.Part0 = p
325
	w.Part1 = pm
326
	w.C0 = CFrame.new(0, -1.75, 0)
327
	w.C1 = CFrame.new()
328
	w.Parent = p
329
	local p = Instance.new("Part")
330
	p.Name = "Center 3"
331
	p.FormFactor = "Custom"
332
	p.Size = Vector3.new(1, 1, 1)
333
	p.BrickColor = BrickColor.new("Reddish brown")
334
	p.Material = "Wood"
335
	p.Locked = true
336
	p.TopSurface = 0
337
	p.BottomSurface = 0
338
	p.Parent = model
339
	local m = Instance.new("SpecialMesh")
340
	m.MeshType = "FileMesh"
341
	m.MeshId = "http://www.roblox.com/Asset/?id=1778999"
342
	m.Scale = Vector3.new(0.335, 0.45, 0.335)
343
	m.Parent = p
344
	local w = Instance.new("Weld")
345
	w.Part0 = p
346
	w.Part1 = pm
347
	w.C0 = CFrame.new(0, -2.6225, 0)
348
	w.C1 = CFrame.new()
349
	w.Parent = p
350
	local p = Instance.new("Part")
351
	p.Name = "Center 4"
352
	p.FormFactor = "Custom"
353
	p.Size = Vector3.new(1, 1, 1)
354
	p.BrickColor = BrickColor.new("Reddish brown")
355
	p.Material = "Wood"
356
	p.Locked = true
357
	p.TopSurface = 0
358
	p.BottomSurface = 0
359
	p.Parent = model
360
	local m = Instance.new("CylinderMesh")
361
	m.Scale = Vector3.new(0.325, 1.25, 0.325)
362
	m.Parent = p
363
	local w = Instance.new("Weld")
364
	w.Part0 = p
365
	w.Part1 = pm
366
	w.C0 = CFrame.new(0, -3, 0)
367
	w.C1 = CFrame.new()
368
	w.Parent = p
369
	local p = Instance.new("Part")
370
	p.Name = "End 1"
371
	p.FormFactor = "Custom"
372
	p.Size = Vector3.new(1, 1, 1)
373
	p.BrickColor = BrickColor.new("Black")
374
	p.CanCollide = false
375
	p.Locked = true
376
	p.TopSurface = 0
377
	p.BottomSurface = 0
378
	p.Parent = model
379
	local m = Instance.new("CylinderMesh")
380
	m.Scale = Vector3.new(0.31, 0.1, 0.31)
381
	m.Parent = p
382
	local w = Instance.new("Weld")
383
	w.Part0 = p
384
	w.Part1 = pm
385
	w.C0 = CFrame.new(0, -3.625, 0)
386
	w.C1 = CFrame.new()
387
	w.Parent = p
388
	local p = Instance.new("Part")
389
	p.Name = "End 2"
390
	p.FormFactor = "Custom"
391
	p.Size = Vector3.new(1, 1, 1)
392
	p.BrickColor = BrickColor.new("Black")
393
	p.CanCollide = false
394
	p.Locked = true
395
	p.TopSurface = 0
396
	p.BottomSurface = 0
397
	p.Parent = model
398
	local m = Instance.new("SpecialMesh")
399
	m.MeshType = "FileMesh"
400
	m.MeshId = "http://www.roblox.com/Asset/?id=1778999"
401
	m.Scale = Vector3.new(0.425, 0.875, 0.425)
402
	m.Parent = p
403
	local w = Instance.new("Weld")
404
	w.Part0 = p
405
	w.Part1 = pm
406
	w.C0 = CFrame.new(0, 3.61, 0) * CFrame.fromEulerAnglesXYZ(math.rad(180), 0, 0)
407
	w.C1 = CFrame.new()
408
	w.Parent = p
409
	local f = Instance.new("Fire")
410
	f.Enabled = false
411
	f.Name = "Fire"
412
	f.Color = Color3.new(1, 0.5, 0)
413
	f.SecondaryColor = Color3.new(1, 0.75, 0.5)
414
	f.Heat = -25
415
	f.Size = 5
416
	f.Parent = p
417
	local s = Instance.new("Smoke")
418
	s.Enabled = false
419
	s.Name = "Smoke"
420
	s.Opacity = 0.5
421
	s.Color = Color3.new(0.8, 0.8, 0.8)
422
	s.RiseVelocity = -10
423
	s.Size = 5
424
	s.Parent = p
425
	local p = Instance.new("Part")
426
	p.Name = "Muzzle"
427
	p.FormFactor = "Custom"
428
	p.Size = Vector3.new(1, 1, 1)
429
	p.Transparency = 1
430
	p.CanCollide = false
431
	p.Locked = true
432
	p.Parent = model
433
	local w = Instance.new("Weld")
434
	w.Part0 = p
435
	w.Part1 = pm
436
	w.C0 = CFrame.new(0, 0.26, 0)
437
	w.C1 = CFrame.new()
438
	w.Parent = p
439
	local f = Instance.new("Fire")
440
	f.Enabled = false
441
	f.Name = "Fire"
442
	f.Color = Color3.new(1, 0.5, 0)
443
	f.SecondaryColor = Color3.new(1, 0.75, 0.5)
444
	f.Heat = -25
445
	f.Size = 2.5
446
	f.Parent = p
447
	local s = Instance.new("Smoke")
448
	s.Enabled = false
449
	s.Name = "Smoke"
450
	s.Opacity = 0.3
451
	s.Color = Color3.new(0.8, 0.8, 0.8)
452
	s.RiseVelocity = -10
453
	s.Size = 2.5
454
	s.Parent = p
455
	local pm2 = Instance.new("Part")
456
	if magazine.Value <= 0 then pm2.Transparency = 1 end
457
	pm2.Name = "Projectile"
458
	pm2.FormFactor = "Custom"
459
	pm2.Size = Vector3.new(1, 1, 1)
460
	pm2.BrickColor = BrickColor.new("Grime")
461
	pm2.CanCollide = false
462
	pm2.Locked = true
463
	pm2.TopSurface = 0
464
	pm2.BottomSurface = 0
465
	pm2.Parent = model
466
	local m = Instance.new("CylinderMesh")
467
	m.Scale = Vector3.new(0.2, 1, 0.2)
468
	m.Parent = pm2
469
	local w = Instance.new("Weld")
470
	w.Part0 = pm2
471
	w.Part1 = pm
472
	w.C0 = CFrame.new(0, 0.3, 0)
473
	w.C1 = CFrame.new()
474
	w.Parent = pm2
475
	local f = Instance.new("Fire")
476
	f.Enabled = false
477
	f.Name = "Fire"
478
	f.Color = Color3.new(1, 0.5, 0)
479
	f.SecondaryColor = Color3.new(1, 0.75, 0.5)
480
	f.Heat = 25
481
	f.Size = 1
482
	f.Parent = pm2
483
	local s = Instance.new("Smoke")
484
	s.Enabled = false
485
	s.Name = "Smoke"
486
	s.Opacity = 0.25
487
	s.Color = Color3.new(0.8, 0.8, 0.8)
488
	s.RiseVelocity = 10
489
	s.Size = 5
490
	s.Parent = pm2
491
	local p = Instance.new("Part")
492
	if magazine.Value <= 0 then p.Transparency = 1 end
493
	p.Name = "Projectile Center 1"
494
	p.FormFactor = "Custom"
495
	p.Size = Vector3.new(1, 1, 1)
496
	p.BrickColor = BrickColor.new("Grime")
497
	p.CanCollide = false
498
	p.Locked = true
499
	p.TopSurface = 0
500
	p.BottomSurface = 0
501
	p.Parent = model
502
	local m = Instance.new("SpecialMesh")
503
	m.MeshType = "FileMesh"
504
	m.MeshId = "http://www.roblox.com/Asset/?id=1033714" --http://www.roblox.com/Asset/?id=1778999
505
	m.Scale = Vector3.new(0.25, 1.25, 0.25)
506
	m.Parent = p
507
	local w = Instance.new("Weld")
508
	w.Part0 = p
509
	w.Part1 = pm2
510
	w.C0 = CFrame.new(0, 0.65, 0)
511
	w.C1 = CFrame.new()
512
	w.Parent = p
513
	local p = Instance.new("Part")
514
	if magazine.Value <= 0 then p.Transparency = 1 end
515
	p.Name = "Projectile Center 2"
516
	p.FormFactor = "Custom"
517
	p.Size = Vector3.new(1, 1, 1)
518
	p.BrickColor = BrickColor.new("Grime")
519
	p.CanCollide = false
520
	p.Locked = true
521
	p.TopSurface = 0
522
	p.BottomSurface = 0
523
	p.Parent = model
524
	local m = Instance.new("SpecialMesh")
525
	m.MeshType = "FileMesh"
526
	m.MeshId = "http://www.roblox.com/Asset/?id=1033714" --http://www.roblox.com/Asset/?id=1778999
527
	m.Scale = Vector3.new(0.25, 1.1, 0.25)
528
	m.Parent = p
529
	local w = Instance.new("Weld")
530
	w.Part0 = p
531
	w.Part1 = pm2
532
	w.C0 = CFrame.new(0, -1.53, 0) * CFrame.fromEulerAnglesXYZ(math.rad(180), 0, 0)
533
	w.C1 = CFrame.new()
534
	w.Parent = p
535
	local p = Instance.new("Part")
536
	if magazine.Value <= 0 then p.Transparency = 1 end
537
	p.Name = "Projectile Tip"
538
	p.FormFactor = "Custom"
539
	p.Size = Vector3.new(1, 1, 1)
540
	p.BrickColor = BrickColor.new("Grime")
541
	p.CanCollide = false
542
	p.Locked = true
543
	p.TopSurface = 0
544
	p.BottomSurface = 0
545
	p.Parent = model
546
	local m = Instance.new("CylinderMesh")
547
	m.Scale = Vector3.new(0.1, 0.1, 0.1)
548
	m.Parent = p
549
	local w = Instance.new("Weld")
550
	w.Part0 = p
551
	w.Part1 = pm2
552
	w.C0 = CFrame.new(0, 1.89, 0)
553
	w.C1 = CFrame.new()
554
	w.Parent = p
555
	return model
556
end
557
558
559
function removeParts(format)
560
	if format == "RightHand" then
561
		pcall(function() Player.Character[Name]:Remove() end)
562
	elseif format == "LeftHand" then
563
		pcall(function() Player.Character[Name.. " (Left)"]:Remove() end)
564
	elseif format == "RightHolster" then
565
		pcall(function() Player.Character[Name.. " (Holstered)"]:Remove() end)
566
	elseif format == "LeftHolster" then
567
		pcall(function() Player.Character[Name.. " (Holstered, Left)"]:Remove() end)
568
	end
569
end
570
571
572
function SetAngle(Joint, Angle, Character)
573
	if Character == nil then return false end
574
	local Joints = {
575
		Character.Torso:FindFirstChild("Right Shoulder 2"),
576
		Character.Torso:FindFirstChild("Left Shoulder 2"),
577
		Character.Torso:FindFirstChild("Right Hip 2"),
578
		Character.Torso:FindFirstChild("Left Hip 2")
579
	}
580
	if Joints[Joint] == nil then return false end
581
	if Joint == 1 or Joint == 3 then
582
		Joints[Joint].DesiredAngle = Angle
583
	end
584
	if Joint == 2 or Joint == 4 then
585
		Joints[Joint].DesiredAngle = -Angle
586
	end
587
end
588
589
590
function ForceAngle(Joint, Angle, Character)
591
	if Character == nil then return false end
592
	local Joints = {
593
		Character.Torso:FindFirstChild("Right Shoulder 2"),
594
		Character.Torso:FindFirstChild("Left Shoulder 2"),
595
		Character.Torso:FindFirstChild("Right Hip 2"),
596
		Character.Torso:FindFirstChild("Left Hip 2")
597
	}
598
	if Joints[Joint] == nil then return false end
599
	if Joint == 1 or Joint == 3 then
600
		Joints[Joint].DesiredAngle = Angle
601
		Joints[Joint].CurrentAngle = Angle
602
	end
603
	if Joint == 2 or Joint == 4 then
604
		Joints[Joint].DesiredAngle = -Angle
605
		Joints[Joint].CurrentAngle = -Angle
606
	end
607
end
608
609
610
function SetSpeed(Joint, Speed, Character)
611
	if Character == nil then return false end
612
	local Joints = {
613
		Character.Torso:FindFirstChild("Right Shoulder 2"),
614
		Character.Torso:FindFirstChild("Left Shoulder 2"),
615
		Character.Torso:FindFirstChild("Right Hip 2"),
616
		Character.Torso:FindFirstChild("Left Hip 2")
617
	}
618
	if Joints[Joint] == nil then return false end
619
	Joints[Joint].MaxVelocity = Speed
620
end
621
622
623
function DisableLimb(Limb, Character)
624
	if Character == nil then return false end
625
	if Character:FindFirstChild("Torso") == nil then return false end
626
	local Joints = {
627
		Character.Torso:FindFirstChild("Right Shoulder"),
628
		Character.Torso:FindFirstChild("Left Shoulder"),
629
		Character.Torso:FindFirstChild("Right Hip"),
630
		Character.Torso:FindFirstChild("Left Hip")
631
	}
632
	local Limbs = {
633
		Character:FindFirstChild("Right Arm"),
634
		Character:FindFirstChild("Left Arm"),
635
		Character:FindFirstChild("Right Leg"),
636
		Character:FindFirstChild("Left Leg")
637
	}
638
	if Joints[Limb] == nil then return false end
639
	if Limbs[Limb] == nil then return false end
640
	local Joint = Instance.new("Motor")
641
	Joint.Parent = Character.Torso
642
	Joint.Part0 = Character.Torso
643
	Joint.Part1 = Limbs[Limb]
644
	if Limb == 1 then
645
		Joint.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
646
		Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
647
		Joint.Name = "Right Shoulder 2"
648
	elseif Limb == 2 then
649
		Joint.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
650
		Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
651
		Joint.Name = "Left Shoulder 2"
652
	elseif Limb == 3 then
653
		Joint.C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
654
		Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
655
		Joint.Name = "Right Hip 2"
656
	elseif Limb == 4 then
657
		Joint.C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
658
		Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
659
		Joint.Name = "Left Hip 2"
660
	end
661
	Joint.MaxVelocity = Joints[Limb].MaxVelocity
662
	Joint.CurrentAngle = Joints[Limb].CurrentAngle
663
	Joint.DesiredAngle = Joints[Limb].DesiredAngle
664
	Joints[Limb]:Remove()
665
end
666
667
668
function ResetLimbCFrame(Limb, Character)
669
	if Character == nil then return false end
670
	if Character.Parent == nil then return false end
671
	if Character:FindFirstChild("Torso") == nil then return false end
672
	local Joints = {
673
		Character.Torso:FindFirstChild("Right Shoulder 2"),
674
		Character.Torso:FindFirstChild("Left Shoulder 2"),
675
		Character.Torso:FindFirstChild("Right Hip 2"),
676
		Character.Torso:FindFirstChild("Left Hip 2")
677
	}
678
	local Limbs = {
679
		Character:FindFirstChild("Right Arm"),
680
		Character:FindFirstChild("Left Arm"),
681
		Character:FindFirstChild("Right Leg"),
682
		Character:FindFirstChild("Left Leg")
683
	}
684
	if Joints[Limb] == nil then return false end
685
	if Limbs[Limb] == nil then return false end
686
	if Limb == 1 then
687
		Joints[Limb].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
688
		Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
689
	elseif Limb == 2 then
690
		Joints[Limb].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
691
		Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
692
	elseif Limb == 3 then
693
		Joints[Limb].C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
694
		Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
695
	elseif Limb == 4 then
696
		Joints[Limb].C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
697
		Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
698
	end
699
end
700
701
702
function EnableLimb(Limb, Character)
703
	if Character == nil then return false end
704
	if Character:FindFirstChild("Torso") == nil then return false end
705
	local Joints = {
706
		Character.Torso:FindFirstChild("Right Shoulder 2"),
707
		Character.Torso:FindFirstChild("Left Shoulder 2"),
708
		Character.Torso:FindFirstChild("Right Hip 2"),
709
		Character.Torso:FindFirstChild("Left Hip 2")
710
	}
711
	local Limbs = {
712
		Character:FindFirstChild("Right Arm"),
713
		Character:FindFirstChild("Left Arm"),
714
		Character:FindFirstChild("Right Leg"),
715
		Character:FindFirstChild("Left Leg")
716
	}
717
	if Joints[Limb] == nil then return false end
718
	if Limbs[Limb] == nil then return false end
719
	if Limb == 1 then
720
		Joints[Limb].Name = "Right Shoulder"
721
	elseif Limb == 2 then
722
		Joints[Limb].Name = "Left Shoulder"
723
	elseif Limb == 3 then
724
		Joints[Limb].Name = "Right Hip"
725
	elseif Limb == 4 then
726
		Joints[Limb].Name = "Left Hip"
727
	end
728
	Animate = Character:FindFirstChild("Animate")
729
	if Animate == nil then return false end
730
	Animate = Animate:Clone()
731
	Character.Animate:Remove()
732
	Animate.Parent = Character
733
end
734
735
736
function playAnimation(format, mouse)
737
	if format == "equip" then
738
		coroutine.resume(coroutine.create(function()
739
			for i = 0, 1, 0.025 do
740
				if Player.Character:FindFirstChild("Torso") ~= nil then
741
					if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
742
						Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(90) * i, 0, math.rad(67.5) * i)
743
						Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(0, 0.5 * (1 - i), 0) * CFrame.new(0, 1.85 * i, 0)
744
					else return false end
745
				else return false end
746
				wait()
747
			end
748
		end))
749
		for i = 0, 1, 0.05 do
750
			if Player.Character:FindFirstChild("Torso") ~= nil then
751
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
752
					Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, -0.25 * i) * CFrame.fromEulerAnglesXYZ(math.rad(-90) * i, 0, math.rad(-20) * i)
753
					Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0)
754
				else return false end
755
			else return false end
756
			wait()
757
		end
758
		removeParts("RightHolster")
759
		makeParts("RightHand")
760
		for i = 0, 1, 0.05 do
761
			if Player.Character:FindFirstChild("Torso") ~= nil then
762
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
763
					Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5 * (1 - i), 0.5 * (1 - i), -0.25 * (1 - i)) * CFrame.fromEulerAnglesXYZ(math.rad(-90) * (1 - i), 0, math.rad(-20) * (1 - i)) * CFrame.new(1.25 * i, 0.5 * i, 0) * CFrame.fromEulerAnglesXYZ(math.rad(90) * i, 0, 0)
764
					Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5 * (1 - i), 0) * CFrame.new(0, 0.75 * i, 0.1 * i)
765
				else return false end
766
			else return false end
767
			if Player.Character:FindFirstChild(Name) ~= nil then
768
				if Player.Character[Name]:FindFirstChild("Handle") ~= nil then
769
					Player.Character[Name].Handle.Weld.C0 = CFrame.new(0, 1.5, 0.75)
770
					Player.Character[Name].Handle.Weld.C1 = CFrame.fromEulerAnglesXYZ(math.rad(-90) * (1 - i), 0, 0)
771
				else return false end
772
			else return false end
773
			wait()
774
		end
775
		makeParts("RightHolster")
776
		removeParts("RightHand")
777
		return playAnimation("hold")
778
	end
779
	if format == "unequip" then
780
		coroutine.resume(coroutine.create(function()
781
			for i = 1, 0, -0.025 do
782
				if Player.Character:FindFirstChild("Torso") ~= nil then
783
					if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
784
						Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(90) * i, 0, math.rad(67.5) * i)
785
						Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(0, 0.5 * (1 - i), 0) * CFrame.new(0, 1.85 * i, 0)
786
					else return false end
787
				else return false end
788
				wait()
789
			end
790
		end))
791
		for i = 1, 0, -0.05 do
792
			if Player.Character:FindFirstChild("Torso") ~= nil then
793
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
794
					Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5 * (1 - i), 0.5 * (1 - i), -0.25 * (1 - i)) * CFrame.fromEulerAnglesXYZ(math.rad(-90) * (1 - i), 0, math.rad(-20) * (1 - i)) * CFrame.new(1.25 * i, 0.5 * i, 0) * CFrame.fromEulerAnglesXYZ(math.rad(90) * i, 0, 0)
795
					Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5 * (1 - i), 0) * CFrame.new(0, 0.75 * i, 0.1 * i)
796
				else return false end
797
			else return false end
798
			if Player.Character:FindFirstChild(Name) ~= nil then
799
				if Player.Character[Name]:FindFirstChild("Handle") ~= nil then
800
					Player.Character[Name].Handle.Weld.C0 = CFrame.new(0, 1.5, 0.75)
801
					Player.Character[Name].Handle.Weld.C1 = CFrame.fromEulerAnglesXYZ(math.rad(-90) * (1 - i), 0, 0)
802
				else return false end
803
			else return false end
804
			wait()
805
		end
806
		makeParts("RightHolster")
807
		removeParts("RightHand")
808
		for i = 1, 0, -0.05 do
809
			if Player.Character:FindFirstChild("Torso") ~= nil then
810
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
811
					Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.5, 0.5, -0.25 * i) * CFrame.fromEulerAnglesXYZ(math.rad(-90) * i, 0, math.rad(-20) * i)
812
					Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.5, 0)
813
				else return false end
814
			else return false end
815
			wait()
816
		end
817
		removeParts("RightHolster")
818
		makeParts("RightHand")
819
		return true
820
	end
821
	if format == "hold" then
822
		if Player.Character:FindFirstChild("Torso") ~= nil then
823
			if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
824
				Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(67.5))
825
				Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(0, 1.85, 0)
826
				Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.25, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
827
				Player.Character.Torso["Right Shoulder 2"].C1 =  CFrame.new(0, 0.75, 0.1)
828
			else return false end
829
		else return false end
830
	end
831
	if format == "reload" then
832
		Player.Character[Name].Handle.Reload.Volume = 0
833
		Player.Character[Name].Handle.Reload.Pitch = 1.78
834
		Player.Character[Name].Handle.Reload:Play()
835
		coroutine.resume(coroutine.create(function()
836
			for i = 0, 1, 0.06 do
837
				if Player.Character:FindFirstChild("Torso") ~= nil and Player.Character:FindFirstChild(Name) ~= nil then
838
					if Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil and Player.Character[Name]:FindFirstChild("Handle") ~= nil then
839
						Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.25 + i / 10, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(i * 90))
840
						Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.75, 0.1)
841
						Player.Character[Name].Handle.Weld.C1 = CFrame.new(0, -1.4 * i, 0) * CFrame.fromEulerAnglesXYZ(0, 0, math.rad(-i * 170))
842
					end
843
				end
844
				wait()
845
			end
846
		end))
847
		for i = 1, 0, -0.1 do
848
			if Player.Character:FindFirstChild("Torso") ~= nil then
849
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
850
					Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(90) * i, 0, math.rad(67.5) * i)
851
					Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(0, 0.5 * (1 - i), 0) * CFrame.new(0, 1.85 * i, 0)
852
				else return false end
853
			else return false end
854
			wait()
855
		end
856
		local projectile = Instance.new("Model")
857
		projectile.Name = Name.. " Projectile"
858
		local source = Player.Character[Name]:FindFirstChild("Projectile")
859
		if source == nil then return end
860
		source = source:Clone()
861
		source.Transparency = 0
862
		source.Parent = projectile
863
		for _, Part in pairs(Player.Character[Name]:GetChildren()) do
864
			if string.match(Part.Name, "Projectile") and Part.Name ~= "Projectile" then
865
				local new = Part:Clone()
866
				new.Parent = projectile
867
				new.Transparency = 0
868
				--new.CFrame = source.CFrame * (Part.Weld.C0 * Part.Weld.C1):inverse()
869
				local w = Instance.new("Weld", new)
870
				w.Part0 = w.Parent
871
				w.Part1 = source
872
				w.C0 = Part.Weld.C0
873
				w.C1 = Part.Weld.C1
874
			end
875
		end
876
		local w = Instance.new("Weld", source)
877
		w.Part0 = w.Parent
878
		w.Part1 = Player.Character:FindFirstChild("Left Arm")
879
		w.C0 = CFrame.new(0.2, -0.8, -0.6) * CFrame.fromEulerAnglesXYZ(math.rad(180), 0, math.rad(-37.5))
880
		projectile.Parent = Player.Character[Name]
881
		for i = 0, 1, 0.1 do
882
			if Player.Character:FindFirstChild("Torso") ~= nil then
883
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
884
					Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(110) * i, 0, math.rad(67.5) * i)
885
					Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(0, 0.5 * (1 - i), 0) * CFrame.new(0.35 * i, 1.85 * i, 0)
886
				else return false end
887
			else return false end
888
			wait()
889
		end
890
		Player.Character[Name].Handle.Reload.Volume = 1
891
		Player.Character[Name].Handle.Reload.Pitch = 0.9
892
		for i = 0, 0.9, 0.1 do
893
			if Player.Character:FindFirstChild("Torso") ~= nil then
894
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
895
					Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5 + i, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(110), 0, math.rad(67.5))
896
					Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(0.35 * (1 - i), 1.85, 0)
897
				else return false end
898
			else return false end
899
			wait()
900
		end
901
		projectile:Remove()
902
		Player.Character[Name].Handle.Reload:Stop()
903
		for _, Part in pairs(Player.Character[Name]:GetChildren()) do
904
			if string.match(Part.Name, "Projectile") then
905
				Part.Transparency = 0
906
			end
907
		end
908
		coroutine.resume(coroutine.create(function()
909
			for i = 1, 0, -0.1 do
910
				if Player.Character:FindFirstChild("Torso") ~= nil and Player.Character:FindFirstChild(Name) ~= nil then
911
					if Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil and Player.Character[Name]:FindFirstChild("Handle") ~= nil then
912
						Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new(1.25 + i / 10, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, math.rad(i * 90))
913
						Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(0, 0.75, 0.1)
914
						Player.Character[Name].Handle.Weld.C1 = CFrame.new(0, -1.4 * i, 0) * CFrame.fromEulerAnglesXYZ(0, 0, math.rad(-i * 170))
915
					end
916
				end
917
				wait()
918
			end
919
		end))
920
		for i = 0.9, 0, -0.1 do
921
			if Player.Character:FindFirstChild("Torso") ~= nil then
922
				if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
923
					Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new(-1.5 + i, 0.5, 0) * CFrame.fromEulerAnglesXYZ(math.rad(110), 0, math.rad(67.5))
924
					Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(0, 1.85, 0)
925
				else return false end
926
			else return false end
927
			wait()
928
		end
929
		Player.Character[Name].Handle.Weld.C1 = CFrame.new()
930
		playAnimation("hold")
931
		return true
932
	end
933
	if format == "fire" then
934
		if Player.Character[Name]:FindFirstChild("Handle") ~= nil then
935
			Player.Character[Name].Handle.Fire:Play()
936
			CamShake(0.1, 5000)
937
		else return false end
938
		if Player.Character:FindFirstChild("Humanoid") ~= nil then
939
			coroutine.resume(coroutine.create(function() if Player.Character.Humanoid.PlatformStand == false and Player.Character.Humanoid.Sit == false then Player.Character.Humanoid.PlatformStand = true wait(0.1) Player.Character.Humanoid.PlatformStand = false end end))
940
		else return false end
941
		if Player.Character:FindFirstChild("Torso") ~= nil then
942
			coroutine.resume(coroutine.create(function() Player.Character.Torso.Velocity = Player.Character.Torso.Velocity + (Player.Character.Torso.CFrame.lookVector * -100) + Vector3.new(0, 25, 0) end))
943
		else return false end
944
		if Player.Character[Name]:FindFirstChild("Muzzle") ~= nil then
945
			coroutine.resume(coroutine.create(function() Player.Character[Name].Muzzle.Smoke.Enabled = true Player.Character[Name].Muzzle.Fire.Enabled = true wait(0.5) Player.Character[Name].Muzzle.Smoke.Enabled = false Player.Character[Name].Muzzle.Fire.Enabled = false end))
946
		else return false end
947
		if Player.Character[Name]:FindFirstChild("End 2") ~= nil then
948
			coroutine.resume(coroutine.create(function() Player.Character[Name]["End 2"].Smoke.Enabled = true Player.Character[Name]["End 2"].Fire.Enabled = true wait(0.5) Player.Character[Name]["End 2"].Smoke.Enabled = false Player.Character[Name]["End 2"].Fire.Enabled = false end))
949
		else return false end
950
	end
951
	return true
952
end
953
954
955
function CamShake(time, freq)
956
	coroutine.resume(coroutine.create(function()
957
		local cam = Workspace.CurrentCamera
958
		local time = 10
959
		local seed = Vector3.new(math.random(100, 200) / freq, math.random(100, 200) / freq, 0)
960
		if math.random(1, 2) == 1 then seed = Vector3.new(-seed.x, seed.y, 0) end
961
		if math.random(1, 2) == 1 then seed = Vector3.new(seed.x, -seed.y, 0) end
962
		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)
963
		for i = 1, time do
964
			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)
965
			wait()
966
		end
967
	end))
968
end
969
970
971
function Weld(x, y)
972
	local weld = Instance.new("Weld")
973
	weld.Part0 = x
974
	weld.Part1 = y
975
	CJ = CFrame.new(x.Position)
976
	C0 = x.CFrame:inverse() * CJ
977
	C1 = y.CFrame:inverse() * CJ
978
	weld.C0 = C0
979
	weld.C1 = C1
980
	weld.Parent = x
981
end
982
983
984
function tagHumanoid(humanoid)
985
	local tag = Instance.new("ObjectValue")
986
	tag.Name = "creator"
987
	tag.Value = Player
988
	tag.Parent = humanoid
989
	local tag = Instance.new("StringValue")
990
	tag.Name = "creatorType1"
991
	tag.Value = Name
992
	tag.Parent = humanoid
993
	local tag = Instance.new("StringValue")
994
	tag.Name = "creatorType2"
995
	tag.Value = "blown to bits"
996
	tag.Parent = humanoid
997
end
998
999
1000
function untagHumanoid(humanoid)
1001
	if humanoid ~= nil then
1002
		local tag = humanoid:FindFirstChild("creator")
1003
		if tag ~= nil then
1004
			tag:Remove()
1005
		end
1006
		local tag = humanoid:FindFirstChild("creatorType1")
1007
		if tag ~= nil then
1008
			tag:Remove()
1009
		end
1010
		local tag = humanoid:FindFirstChild("creatorType2")
1011
		if tag ~= nil then
1012
			tag:Remove()
1013
		end
1014
	end
1015
end
1016
1017
1018
function fire(startPoint, endPoint, hit)
1019
	local projectile = Instance.new("Model")
1020
	projectile.Name = Name.. " Projectile"
1021
	local source = Player.Character[Name]:FindFirstChild("Projectile")
1022
	if source == nil then return end
1023
	source.Transparency = 1
1024
	source = source:Clone()
1025
	source.Transparency = 0
1026
	source.CanCollide = false
1027
	pcall(function() source.Fire.Enabled = true end)
1028
	pcall(function() source.Smoke.Enabled = true end)
1029
	source.CFrame = CFrame.new(startPoint, endPoint) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
1030
	source.Parent = projectile
1031
	for _, Part in pairs(Player.Character[Name]:GetChildren()) do
1032
		if string.match(Part.Name, "Projectile") and Part.Name ~= "Projectile" then
1033
			local new = Part:Clone()
1034
			new.Parent = projectile
1035
			new.Transparency = 0
1036
			new.CFrame = source.CFrame * (Part.Weld.C0 * Part.Weld.C1):inverse()
1037
			local w = Instance.new("Weld", new)
1038
			w.Part0 = w.Parent
1039
			w.Part1 = source
1040
			w.C0 = Part.Weld.C0
1041
			w.C1 = Part.Weld.C1
1042
			Part.Transparency = 1
1043
		end
1044
	end
1045
	projectile.Parent = Workspace
1046
	local vel = Instance.new("BodyVelocity")
1047
	vel.maxForce = Vector3.new(math.huge, math.huge, math.huge)
1048
	vel.velocity = (endPoint - startPoint).unit * 100
1049
	vel.Parent = source
1050
	local gyro = Instance.new("BodyGyro")
1051
	gyro.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
1052
	gyro.cframe = CFrame.new(startPoint, endPoint) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
1053
	gyro.Parent = source
1054
	coroutine.resume(coroutine.create(function() wait(1) gyro:Remove() end))
1055
	wait(0.2)
1056
	source.CanCollide = true
1057
	local connection = nil
1058
	connection = source.Touched:connect(function()
1059
		if hit.Parent == nil then return end
1060
		if hit.Parent == projectile then return end
1061
		if hit.Parent == Player.Character then return end
1062
		if hit.Parent == Player.Character:FindFirstChild(Name) then return end
1063
		if hit.Parent.Parent == Player.Character then return end
1064
		for i = 1, math.random(3, 6) do
1065
			local s = Instance.new("Sound", source)
1066
			s.SoundId = "http://www.roblox.com/Asset/?id=2101148"
1067
			s.Volume = 1
1068
			s.Pitch = math.random(1, 10) / 10
1069
			s:Play()
1070
		end
1071
		coroutine.resume(coroutine.create(function()
1072
			pcall(function() vel:Remove() end)
1073
			for _, Part in pairs(projectile:GetChildren()) do
1074
				if Part.Name ~= "Projectile" then
1075
					Part:Remove()
1076
				else
1077
					Part.Anchored = true
1078
					Part.Transparency = 1
1079
					Part.CanCollide = false
1080
					pcall(function() Part.Fire.Enabled = false end)
1081
					pcall(function() Part.Smoke.Enabled = false end)
1082
				end
1083
			end
1084
			connection:disconnect()
1085
			wait(5)
1086
			projectile:Remove()
1087
		end))
1088
		local range = damage / 5
1089
		local power = damage / 2
1090
		local function Push(Part)
1091
			if #Part:GetChildren() > 0 then for _, Parts in pairs(Part:GetChildren()) do Push(Parts) end end
1092
			if pcall(function() local x = Part.CFrame end) == false then return end
1093
			if Part.Anchored == true then return end
1094
			if (Part.Position - source.Position).magnitude > range then return end
1095
			Part.Velocity = Part.Velocity + ((Part.Position - source.Position).unit * power)
1096
			coroutine.wrap(function()
1097
					if Part.Parent:FindFirstChild("Humanoid") ~= nil then
1098
						Part.Parent.Humanoid:TakeDamage(1000000) --Set to damage of explosion
1099
					end
1100
			end)()
1101
		end
1102
		Push(Workspace)
1103
		for i = 1, math.random(5, 20) do
1104
			local blast = Instance.new("Part")
1105
			blast.FormFactor = 0
1106
			blast.Size = Vector3.new(1, 1, 1)
1107
			local color = math.random(1, 4)
1108
			if color == 1 then
1109
				blast.BrickColor = BrickColor.new("Really red")
1110
			elseif color == 2 then
1111
				blast.BrickColor = BrickColor.new("Bright orange")
1112
			elseif color == 3 then
1113
				blast.BrickColor = BrickColor.new("Neon orange")
1114
			elseif color == 4 then
1115
				blast.BrickColor = BrickColor.new("Bright red")
1116
			end
1117
			blast.TopSurface = 0
1118
			blast.BottomSurface = 0
1119
			blast.Anchored = true
1120
			blast.CanCollide = false
1121
			blast.CFrame = source.CFrame * CFrame.new(math.random(-damage / 50, damage / 50), math.random(-damage / 50, damage / 50), math.random(-damage / 50, damage / 50))
1122
			blast.Parent = Workspace
1123
			local mesh = Instance.new("SpecialMesh")
1124
			mesh.MeshType = "Sphere"
1125
			mesh.Parent = blast
1126
			coroutine.resume(coroutine.create(function()
1127
				for i = 1, range, math.random(range, range + 100) / 100 do
1128
					blast.Transparency = i / range
1129
					mesh.Scale = Vector3.new(i, i, i)
1130
					wait()
1131
				end
1132
				blast:Remove()
1133
			end))
1134
		end
1135
	end)
1136
	coroutine.resume(coroutine.create(function()
1137
		wait(10)
1138
		for _, Part in pairs(projectile:GetChildren()) do
1139
			Part.CanCollide = false
1140
		end
1141
		pcall(function() source.Fire.Enabled = false end)
1142
		pcall(function() source.Smoke.Enabled = false end)
1143
		pcall(function() vel:Remove() end)
1144
		pcall(function() connection:disconnect() end)
1145
	end))
1146
end
1147
1148
1149
function onButton1Down(mouse)
1150
	if selected == false then return end
1151
	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
1152
		if Player.Character[Name]:FindFirstChild("Handle") == nil then return end
1153
		if Player.Character[Name]:FindFirstChild("Muzzle") == nil then return end
1154
		if dual == true then if Player.Character[Name.. " (Left)"]:FindFirstChild("Handle") == nil then return end end
1155
		if dual == true then if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end end
1156
		mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"
1157
		Button1Down = true
1158
		canFire = false
1159
		canFire2 = true
1160
		while canFire2 == true do
1161
			local humanoid = Player.Character:FindFirstChild("Humanoid")
1162
			if humanoid == nil then
1163
				canFire2 = false
1164
				break
1165
			end
1166
			if humanoid.Health <= 0 then
1167
				canFire2 = false
1168
				break
1169
			end
1170
			local fireLeft = false
1171
			if automatic == false and burst == false then
1172
				canFire2 = false
1173
			elseif automatic == false and burst == true then
1174
				if burstCount >= burstCountMax then
1175
					canFire2 = false
1176
					burstCount = 0
1177
					break
1178
				end
1179
				burstCount = burstCount + 1
1180
			elseif automatic == true and burst == false then
1181
				fireLeft = true
1182
			end
1183
			if magazine.Value > 0 then
1184
				magazine.Value = magazine.Value - 1
1185
				updateGui()
1186
				fire(Player.Character[Name].Muzzle.Position, mouse.Hit.p, mouse.Target)
1187
				coroutine.resume(coroutine.create(function()
1188
					if dual == true then
1189
						playAnimation("rightFire")
1190
					elseif dual == false then
1191
						playAnimation("fire")
1192
					end
1193
				end))
1194
			else
1195
				Player.Character[Name].Handle.Empty:Play()
1196
			end
1197
			if fireLeft == true and dual == true and automatic == true then
1198
				if magazine.Value > 0 then
1199
					coroutine.resume(coroutine.create(function()
1200
						wait(readyTime / 2)
1201
						magazine.Value = magazine.Value - 1
1202
						updateGui()
1203
						fire(Player.Character[Name.. " (Left)"].Muzzle.Position, mouse.Hit.p, mouse.Target)
1204
						playAnimation("leftFire")
1205
					end))
1206
				else
1207
					coroutine.resume(coroutine.create(function()
1208
						wait(readyTime / 2)
1209
						Player.Character[Name].Handle.Empty:Play()
1210
					end))
1211
				end
1212
			end
1213
			wait(readyTime)
1214
		end
1215
		mouse.Icon = "rbxasset://textures\\GunCursor.png"
1216
		canFire = true
1217
	end
1218
end
1219
1220
1221
function onButton1Up(mouse)
1222
	if selected == false then return end
1223
	Button1Down = false
1224
	canFire2 = false
1225
	burstCount = 0
1226
	while canFire == false do wait() end
1227
	if dual == true and automatic == false then
1228
		if Player.Character[Name.. " (Left)"]:FindFirstChild("Handle") == nil then return end
1229
		if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end
1230
		mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"
1231
		canFire = false
1232
		canFire2 = true
1233
		while canFire2 == true do
1234
			local humanoid = Player.Character:FindFirstChild("Humanoid")
1235
			if humanoid == nil then
1236
				canFire2 = false
1237
				break
1238
			end
1239
			if humanoid.Health <= 0 then
1240
				canFire2 = false
1241
				break
1242
			end
1243
			if burst == false then
1244
				canFire2 = false
1245
			elseif burst == true then
1246
				if burstCount >= burstCountMax then
1247
					canFire2 = false
1248
					burstCount = 0
1249
					break
1250
				end
1251
				burstCount = burstCount + 1
1252
			end
1253
			if magazine.Value <= 0 then
1254
				Player.Character[Name].Handle.Empty:Play()
1255
			else
1256
				coroutine.resume(coroutine.create(function()
1257
					playAnimation("leftFire")
1258
				end))
1259
				magazine.Value = magazine.Value - 1
1260
				updateGui()
1261
				fire(Player.Character[Name.. " (Left)"].Muzzle.Position, mouse.Hit.p, mouse.Target)
1262
			end
1263
			wait(readyTime)
1264
		end
1265
		mouse.Icon = "rbxasset://textures\\GunCursor.png"
1266
		canFire = true
1267
	end
1268
end
1269
1270
1271
function onKeyDown(key, mouse)
1272
	if selected == false then return end
1273
	key = key:lower()
1274
	if key == "q" and Button1Down == false and canFire == true then
1275
		if mouse.Target == nil then return end
1276
		if game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent) ~= nil then
1277
			if dual == true then onKeyDown("t", mouse) end
1278
			onDeselected(mouse)
1279
			removeParts("RightHolster")
1280
			script.Parent.Parent = game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent).Backpack
1281
		end
1282
	end
1283
	if key == "e" and Button1Down == false and canFire == true and canSilence == true then
1284
		if silenced then
1285
			silenced = false
1286
			if Player.Character:FindFirstChild(Name) == nil then return end
1287
			if Player.Character[Name]:FindFirstChild("Muzzle") == nil then return end
1288
			if Player.Character[Name]:FindFirstChild("Muzzle 2") == nil then return end
1289
			Player.Character[Name].Muzzle.Transparency = 1
1290
			Player.Character[Name].Muzzle.Name = "Silencer"
1291
			Player.Character[Name]["Muzzle 2"].Name = "Muzzle"
1292
			if dual == true then
1293
				if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end
1294
				if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle 2") == nil then return end
1295
				Player.Character[Name.. " (Left)"].Muzzle.Transparency = 1
1296
				Player.Character[Name.. " (Left)"].Muzzle.Name = "Silencer"
1297
				Player.Character[Name.. " (Left)"]["Muzzle 2"].Name = "Muzzle"
1298
			end
1299
		else
1300
			silenced = true
1301
			if Player.Character:FindFirstChild(Name) == nil then return end
1302
			if Player.Character[Name]:FindFirstChild("Silencer") == nil then return end
1303
			if Player.Character[Name]:FindFirstChild("Muzzle") == nil then return end
1304
			Player.Character[Name].Silencer.Transparency = 0
1305
			Player.Character[Name].Muzzle.Name = "Muzzle 2"
1306
			Player.Character[Name].Silencer.Name = "Muzzle"
1307
			if dual == true then
1308
				if Player.Character[Name.. " (Left)"]:FindFirstChild("Silencer") == nil then return end
1309
				if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end
1310
				Player.Character[Name.. " (Left)"].Silencer.Transparency = 0
1311
				Player.Character[Name.. " (Left)"].Muzzle.Name = "Muzzle 2"
1312
				Player.Character[Name.. " (Left)"].Silencer.Name = "Muzzle"
1313
			end
1314
		end
1315
	end
1316
	if key == "r" and Button1Down == false and canFire == true then
1317
		if ammo.Value > 0 and magazine.Value ~= magazineMax.Value then
1318
			canFire = false
1319
			burstCount = 0
1320
			mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"
1321
			if magazine.Value > 0 then ammo.Value = ammo.Value + magazine.Value magazine.Value = 0 end
1322
			updateGui()
1323
			if dual == true then
1324
				playAnimation("reloadDual")
1325
			elseif dual == false then
1326
				playAnimation("reload")
1327
			end
1328
			if ammo.Value - magazineMax.Value < 0 then
1329
				magazine.Value = ammo.Value
1330
				ammo.Value = 0
1331
			elseif ammo.Value - magazineMax.Value >= 0 then
1332
				ammo.Value = ammo.Value - magazineMax.Value
1333
				magazine.Value = magazineMax.Value
1334
			end
1335
			updateGui()
1336
			mouse.Icon = "rbxasset://textures\\GunCursor.png"
1337
			canFire = true
1338
		end
1339
	end
1340
	if key == "t" and Button1Down == false and canFire == true and canDual == true then
1341
		canFire = false
1342
		if dual == false then
1343
			local weapon = nil
1344
			for _, p in pairs(Player.Backpack:GetChildren()) do
1345
				if p.Name == Name and p ~= script.Parent then weapon = p break end
1346
			end
1347
			if weapon ~= nil then
1348
				dual = true
1349
				weapon.Name = "Dual"
1350
				weapon.Parent = script
1351
				silenced = false
1352
				removeParts("RightHand")
1353
				makeParts("RightHand")
1354
				removeParts("RightHolster")
1355
				makeParts("LeftHolster")
1356
				playAnimation("leftEquip")
1357
				removeParts("LeftHolster")
1358
				makeParts("LeftHand")
1359
				magazineMax.Value = math.ceil(magazineMax.Value * 2)
1360
				ammoMax.Value = math.ceil(ammoMax.Value * 2)
1361
				magazine.Value = magazine.Value + weapon.Magazine.Value
1362
				ammo.Value = ammo.Value + weapon.Ammo.Value
1363
				updateGui()
1364
			end
1365
		elseif dual == true then
1366
			local weapon = script:FindFirstChild("Dual")
1367
			if weapon ~= nil then
1368
				dual = false
1369
				weapon.Name = Name
1370
				weapon.Parent = Player.Backpack
1371
				silenced = false
1372
				removeParts("RightHand")
1373
				makeParts("RightHand")
1374
				playAnimation("leftUnequip")
1375
				removeParts("LeftHand")
1376
				makeParts("RightHolster")
1377
				playAnimation("hold")
1378
				weapon.Magazine.Value = math.floor(magazine.Value / 2)
1379
				weapon.Ammo.Value = math.floor(ammo.Value / 2)
1380
				magazineMax.Value = math.ceil(magazineMax.Value / 2)
1381
				ammoMax.Value = math.ceil(ammoMax.Value / 2)
1382
				magazine.Value = math.ceil(magazine.Value / 2)
1383
				ammo.Value = math.ceil(ammo.Value / 2)
1384
				updateGui()
1385
			end
1386
		end
1387
		canFire = true
1388
	end
1389
	if key == "y" and canZoom == true then
1390
		if zoom == false then
1391
			zoom = true
1392
			local pos = mouse.Hit.p
1393
			local target = mouse.Target
1394
			local cam = Workspace.CurrentCamera
1395
			focus = Instance.new("Part", Workspace)
1396
			focus.Anchored = true
1397
			focus.CanCollide = false
1398
			focus.Transparency = 1
1399
			focus.TopSurface = 0
1400
			focus.BottomSurface = 0
1401
			focus.FormFactor = "Plate"
1402
			focus.Size = Vector3.new(0, 0, 0)
1403
			focus.CFrame = CFrame.new(pos) * (CFrame.new(Player.Character.Torso.Position, pos) - CFrame.new(Player.Character.Torso.Position, pos).p)
1404
			cam.CameraSubject = focus
1405
			cam.CameraType = "Attach"
1406
			while zoom == true and selected == true do
1407
				local set = false
1408
				if target ~= nil then
1409
					if target.Parent ~= nil then
1410
						if target.Anchored == false then
1411
							focus.CFrame = CFrame.new(target.Position) * (CFrame.new(Player.Character.Torso.Position, target.Position) - CFrame.new(Player.Character.Torso.Position, target.Position).p)
1412
							set = true
1413
						end
1414
					end
1415
				end
1416
				if set == false then
1417
					focus.CFrame = CFrame.new(pos) * (CFrame.new(Player.Character.Torso.Position, pos) - CFrame.new(Player.Character.Torso.Position, pos).p)
1418
				end
1419
				wait()
1420
			end
1421
			if focus ~= nil then focus:Remove() focus = nil end
1422
			local cam = Workspace.CurrentCamera
1423
			cam.CameraSubject = Player.Character:FindFirstChild("Humanoid")
1424
			cam.CameraType = "Custom"
1425
		else
1426
			zoom = false
1427
		end
1428
	end
1429
	if key == "u" and Button1Down == false and canFire == true then
1430
		if automatic == false and burst == false then
1431
			if switchToBurst == true then
1432
				burst = true
1433
				local m = Instance.new("Message", Player)
1434
				m.Text = "Burst"
1435
				pcall(function() Player.Character[Name].Handle.Switch:Play() end)
1436
				delay(2.5, function() m:Remove() end)
1437
			elseif switchToAutomatic == true then
1438
				automatic = true
1439
				local m = Instance.new("Message", Player)
1440
				m.Text = "Automatic"
1441
				pcall(function() Player.Character[Name].Handle.Switch:Play() end)
1442
				delay(2.5, function() m:Remove() end)
1443
			end
1444
		elseif automatic == false and burst == true then
1445
			if switchToAutomatic == true then
1446
				automatic = true
1447
				burst = false
1448
				local m = Instance.new("Message", Player)
1449
				m.Text = "Automatic"
1450
				pcall(function() Player.Character[Name].Handle.Switch:Play() end)
1451
				delay(2.5, function() m:Remove() end)
1452
			elseif switchToSingle == true then
1453
				burst = false
1454
				local m = Instance.new("Message", Player)
1455
				m.Text = "Single"
1456
				pcall(function() Player.Character[Name].Handle.Switch:Play() end)
1457
				delay(2.5, function() m:Remove() end)
1458
			end
1459
		elseif automatic == true and burst == false then
1460
			if switchToSingle == true then
1461
				automatic = false
1462
				local m = Instance.new("Message", Player)
1463
				m.Text = "Single"
1464
				pcall(function() Player.Character[Name].Handle.Switch:Play() end)
1465
				delay(2.5, function() m:Remove() end)
1466
			elseif switchToBurst == true then
1467
				automatic = false
1468
				burst = true
1469
				local m = Instance.new("Message", Player)
1470
				m.Text = "Burst"
1471
				pcall(function() Player.Character[Name].Handle.Switch:Play() end)
1472
				delay(2.5, function() m:Remove() end)
1473
			end
1474
		end
1475
	end
1476
end
1477
1478
1479
function onSelected(mouse)
1480
	if selected == true then return end
1481
	selected = true
1482
	canFire = false
1483
	mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"
1484
	while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
1485
		if Player.Character.WeaponActivated.Value == nil then break end
1486
		if Player.Character.WeaponActivated.Value.Parent == nil then break end
1487
		wait()
1488
	end
1489
	updateGui()
1490
	local weapon = Instance.new("ObjectValue")
1491
	weapon.Name = "WeaponActivated"
1492
	weapon.Value = script.Parent
1493
	weapon.Parent = Player.Character
1494
	DisableLimb(1, Player.Character)
1495
	DisableLimb(2, Player.Character)
1496
	ForceAngle(1, 0, Player.Character)
1497
	ForceAngle(2, 0, Player.Character)
1498
	if dual == true then
1499
		coroutine.resume(coroutine.create(function() playAnimation("leftEquip") end))
1500
		playAnimation("rightEquip")
1501
		removeParts("LeftHolster")
1502
		makeParts("LeftHand")
1503
	else
1504
		playAnimation("equip")
1505
	end
1506
	removeParts("RightHolster")
1507
	makeParts("RightHand")
1508
	mouse.Button1Down:connect(function() onButton1Down(mouse) end)
1509
	mouse.Button1Up:connect(function() onButton1Up(mouse) end)
1510
	mouse.KeyDown:connect(function(key) onKeyDown(key, mouse) end)
1511
	mouse.Icon = "rbxasset://textures\\GunCursor.png"
1512
	canFire = true
1513
end
1514
1515
1516
function onDeselected(mouse)
1517
	if selected == false then return end
1518
	Button1Down = false
1519
	while canFire == false do
1520
		wait()
1521
	end
1522
	selected = false
1523
	if dual == true then
1524
		if math.random(1, 2) == 1 then
1525
			coroutine.resume(coroutine.create(function() playAnimation("leftUnequip") end))
1526
			wait(math.random(1, 10) / 10)
1527
			playAnimation("rightUnequip")
1528
		else
1529
			coroutine.resume(coroutine.create(function() playAnimation("rightUnequip") end))
1530
			wait(math.random(1, 10) / 10)
1531
			playAnimation("leftUnequip")
1532
		end
1533
		removeParts("LeftHand")
1534
		makeParts("LeftHolster")
1535
	else
1536
		playAnimation("unequip")
1537
	end
1538
	removeParts("RightHand")
1539
	makeParts("RightHolster")
1540
	ForceAngle(1, 0, Player.Character)
1541
	ForceAngle(2, 0, Player.Character)
1542
	ResetLimbCFrame(1, Player.Character)
1543
	ResetLimbCFrame(2, Player.Character)
1544
	EnableLimb(1, Player.Character)
1545
	EnableLimb(2, Player.Character)
1546
	silenced = false
1547
	if Player.PlayerGui:FindFirstChild(Name) ~= nil then Player.PlayerGui[Name]:Remove() end
1548
	if Player.Character:FindFirstChild("WeaponActivated") ~= nil then
1549
		if Player.Character.WeaponActivated.Value == script.Parent then
1550
			Player.Character.WeaponActivated:Remove()
1551
		end
1552
	end
1553
	while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
1554
		if Player.Character.WeaponActivated.Value == nil then break end
1555
		if Player.Character.WeaponActivated.Value.Parent == nil then break end
1556
		wait()
1557
	end
1558
end
1559
1560
1561
if script.Parent.ClassName ~= "HopperBin" then
1562
	if Player == nil then print("Error: Player not found!") return end
1563
	Tool = Instance.new("HopperBin")
1564
	Tool.Name = Name
1565
	Tool.Parent = Player.Backpack
1566
	script.Name = "Main"
1567
	script.Parent = Tool
1568
elseif script.Parent.ClassName == "HopperBin" then
1569
	while script.Parent.Parent.ClassName ~= "Backpack" do
1570
		wait()
1571
	end
1572
	if script.Parent:FindFirstChild("MagazineMax") == nil then
1573
		magazineMax = Instance.new("NumberValue")
1574
		magazineMax.Name = "MagazineMax"
1575
		magazineMax.Value = 1
1576
		magazineMax.Parent = script.Parent
1577
	else
1578
		magazineMax = script.Parent.MagazineMax
1579
	end
1580
	if script.Parent:FindFirstChild("Magazine") == nil then
1581
		magazine = Instance.new("NumberValue")
1582
		magazine.Name = "Magazine"
1583
		magazine.Value = 0
1584
		magazine.Parent = script.Parent
1585
	else
1586
		magazine = script.Parent.Magazine
1587
	end
1588
	if script.Parent:FindFirstChild("AmmoMax") == nil then
1589
		ammoMax = Instance.new("NumberValue")
1590
		ammoMax.Name = "AmmoMax"
1591
		ammoMax.Value = 20 --You may set the ammo of the RPG here.
1592
		ammoMax.Parent = script.Parent
1593
	else
1594
		ammoMax = script.Parent.AmmoMax
1595
	end
1596
	if script.Parent:FindFirstChild("Ammo") == nil then
1597
		ammo = Instance.new("NumberValue")
1598
		ammo.Name = "Ammo"
1599
		ammo.Value = script.Parent.AmmoMax.Value
1600
		ammo.Parent = script.Parent
1601
	else
1602
		ammo = script.Parent.Ammo
1603
	end
1604
	Player = script.Parent.Parent.Parent
1605
	makeParts("RightHolster")
1606
	script.Parent.Selected:connect(onSelected)
1607
	script.Parent.Deselected:connect(onDeselected)
1608
end
1609
--lego
1610-
game.Workspace.SilentSoulGamer.Humanoid.MaxHealth = math.huge  -----Replace my name with yours for INF HP
1610+
game.Workspace.jassm11.Humanoid.MaxHealth = math.huge  -----Replace my name with yours for INF HP
1611
print(lego)