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