View difference between Paste ID: RhFfkAFm and aavyXdmC
SHOW: | | - or go back to the newest paste.
1-
-- Synapse Decompiler
1+
2-
-- Purchase Here: https://brack4712.xyz/synapse/purchase/
2+
3-
-- synapse is amazing.
3+
4-
---made by MichaelJackson AKA pickachu500 
4+
5
Player.Backpack:FindFirstChild("Client").Disabled = true
6
local IS = game:GetService("UserInputService")
7
local Camera = workspace.CurrentCamera
8
local KT = Instance.new("Tool", Player.Backpack)
9
KT.Name = "Knife"
10
KT.RequiresHandle = false
11
KT.CanBeDropped = false
12
local Spec = 0
13
local WeaponType
14
local Spectatable = {}
15
local SpectatingPlayer
16
local FPS = false
17-
local GT = Instance.new("Tool", Player.Backpack)
17+
18-
GT.Name = "Gun"
18+
19-
GT.RequiresHandle = false
19+
20-
GT.CanBeDropped = false
20+
21
local Rig = Instance.new("Model", Char)
22
local Humanoid = Char:WaitForChild("Humanoid")
23
local Primed = false
24
if 0 >= Humanoid.Health then
25
	return
26
end
27
local Mouse = Player:GetMouse()
28
Mouse.TargetFilter = workspace.CurrentCamera
29
local Disabled = false
30
if Camera:findFirstChild("FpsModel") then
31
	Camera:findFirstChild("FpsModel"):Destroy()
32
end
33
local LA, RA, Head, T = Char:WaitForChild("Left Arm"), Char:WaitForChild("Right Arm"), Char:WaitForChild("Head"), Char:WaitForChild("Torso")
34
local FpsModel = Instance.new("Model", Camera)
35
FpsModel.Name = "FpsModel"
36
local FpsWeapon = Instance.new("Part")
37
FpsWeapon.Parent = FpsModel
38
FpsWeapon.CanCollide = false
39
FpsWeapon.Transparency = 1
40
FpsWeapon.Size = Vector3.new(1, 1, 1)
41
FpsWeapon.Name = "WeaponFPS"
42
local FpsLArm = Char:WaitForChild("Left Arm"):clone()
43
FpsLArm.Parent = FpsModel
44
FpsLArm.CanCollide = false
45
FpsLArm.Transparency = 1
46
local m = Instance.new("BlockMesh", FpsLArm)
47
m.Scale = Vector3.new(1, 1, 1)
48
local FpsRArm = Char:WaitForChild("Right Arm"):clone()
49
FpsRArm.Parent = FpsModel
50
FpsRArm.CanCollide = false
51
FpsRArm.Transparency = 1
52
local m = Instance.new("BlockMesh", FpsRArm)
53
m.Scale = Vector3.new(1, 1.1, 1)
54
spawn(function()
55
	wait(0.5)
56
	if Char:FindFirstChild("Body Colors") then
57
		FpsLArm.BrickColor = Char:FindFirstChild("Body Colors").LeftArmColor
58
		FpsRArm.BrickColor = Char:FindFirstChild("Body Colors").RightArmColor
59
	end
60
end)
61
local Modules = game.ReplicatedStorage:WaitForChild("Modules")
62
local M = require(Modules:WaitForChild("AnimationCore"))
63
local WC = require(Modules:WaitForChild("WeaponCore"))
64
local AniDB = false
65
local Selected = false
66
function AniEquipKnife()
67
	if WeaponType == "Gun" or not Selected then
68
		return
69
	end
70
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.45, 0.5, -0.25) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(25)), 0.1, true)
71
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(-180), math.rad(0), math.rad(0)), 0.25, true)
72
	wait(0.1)
73
	if WeaponType == "Gun" or not Selected then
74
		return
75
	end
76
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-75), math.rad(-25), math.rad(0)), 0.25, true)
77
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-55), math.rad(25), math.rad(0)), 0.25, true)
78
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.25, true)
79
end
80
function AniChargeKnife()
81
	if WeaponType == "Gun" or not Selected then
82
		return
83
	end
84
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-180), math.rad(0), math.rad(0)), .1, true)
85
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-90), math.rad(25), math.rad(0)), .1, true)
86
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), .1, true)
87
end
88
function AniChargeKnife2()
89
	if WeaponType == "Gun" or not Selected then
90
		return
91
	end
92
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-180), math.rad(0), math.rad(0)), .1, true)
93
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-90), math.rad(25), math.rad(0)), .1, true)
94
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), .1, true)
95
end
96
function AniThrowKnife()
97
	if WeaponType == "Gun" or not Selected then
98
		return
99
	end
100
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-10), math.rad(-25), math.rad(0)), 0.1, true)
101
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-35), math.rad(25), math.rad(0)), 0.1, true)
102
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.1, true)
103
	wait(0.1)
104
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 0.5, -0.25) * CFrame.Angles(math.rad(25), math.rad(-25), math.rad(0)), 0.2, true)
105
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-35), math.rad(25), math.rad(0)), 0.2, true)
106
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.2, true)
107
end
108
function AniSlashKnife1()
109
	if WeaponType == "Gun" or not Selected then
110
		return
111
	end
112
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-125), math.rad(-30), math.rad(0)), 0.15, true)
113
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-65), math.rad(30), math.rad(0)), 0.15, true)
114
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.15, true)
115
	wait(0.15)
116
	if WeaponType == "Gun" or not Selected then
117
		return
118
	end
119
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 1, -0.25) * CFrame.Angles(math.rad(-15), math.rad(-35), math.rad(0)), 0.05, true)
120
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-35), math.rad(35), math.rad(0)), 0.05, true)
121
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.05, true)
122
	wait(0.05)
123
	if WeaponType == "Gun" or not Selected then
124
		return
125
	end
126
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-75), math.rad(-25), math.rad(0)), 0.25, true)
127
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-55), math.rad(25), math.rad(0)), 0.25, true)
128
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.25, true)
129
end
130
function AniSlashKnife2()
131
	if WeaponType == "Gun" or not Selected then
132
		return
133
	end
134
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-175), math.rad(-10), math.rad(0)), 0.25, true)
135
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-65), math.rad(10), math.rad(0)), 0.25, true)
136
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(110), math.rad(180), math.rad(0)), 0.25, true)
137
	wait(0.25)
138
	if WeaponType == "Gun" or not Selected then
139
		return
140
	end
141
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 1, -0.25) * CFrame.Angles(math.rad(-35), math.rad(-35), math.rad(0)), 0.05, true)
142
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 1, -0.25) * CFrame.Angles(math.rad(-35), math.rad(15), math.rad(0)), 0.05, true)
143
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(110), math.rad(180), math.rad(0)), 0.05, true)
144
	wait(0.05)
145
	if WeaponType == "Gun" or not Selected then
146
		return
147
	end
148
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 1, -0.25) * CFrame.Angles(math.rad(-55), math.rad(-35), math.rad(0)), 0.25, true)
149
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-55), math.rad(25), math.rad(0)), 0.25, true)
150
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(110), math.rad(180), math.rad(0)), 0.25, true)
151
	wait(0.25)
152
	if WeaponType == "Gun" or not Selected then
153
		return
154
	end
155
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-75), math.rad(-25), math.rad(0)), 0.25, true)
156
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.25, true)
157
end
158
function AniSlashKnife3()
159
	if WeaponType == "Gun" or not Selected then
160
		return
161
	end
162
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 0.5, -0.7) * CFrame.Angles(math.rad(45), math.rad(-30), math.rad(0)), 0.2, true)
163
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-35), math.rad(10), math.rad(0)), 0.2, true)
164
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.2, true)
165
	wait(0.2)
166
	if WeaponType == "Gun" or not Selected then
167
		return
168
	end
169
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 1, -0.25) * CFrame.Angles(math.rad(-60), math.rad(-35), math.rad(0)), 0.05, true)
170
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-45), math.rad(35), math.rad(0)), 0.05, true)
171
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1.5, 1) * CFrame.Angles(math.rad(130), math.rad(0), math.rad(0)), 0.05, true)
172
	wait(0.05)
173
	if WeaponType == "Gun" or not Selected then
174
		return
175
	end
176
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 1, -0.25) * CFrame.Angles(math.rad(-65), math.rad(-35), math.rad(0)), 0.25, true)
177
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-55), math.rad(25), math.rad(0)), 0.25, true)
178
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1.5, 1) * CFrame.Angles(math.rad(130), math.rad(0), math.rad(0)), 0.25, true)
179
	wait(0.25)
180
	if WeaponType == "Gun" or not Selected then
181
		return
182
	end
183
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-75), math.rad(-25), math.rad(0)), 0.25, true)
184
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.25, true)
185
end
186
function AniSlashKnife4()
187
	if WeaponType == "Gun" or not Selected then
188
		return
189
	end
190
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-125), math.rad(0), math.rad(0)), 0.15, true)
191
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-65), math.rad(0), math.rad(0)), 0.15, true)
192
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.15, true)
193
	wait(0.15)
194
	if WeaponType == "Gun" or not Selected then
195
		return
196
	end
197
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 1, -0.25) * CFrame.Angles(math.rad(-15), math.rad(-45), math.rad(0)), 0.05, true)
198
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-35), math.rad(45), math.rad(0)), 0.05, true)
199
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.05, true)
200
	wait(0.05)
201
	if WeaponType == "Gun" or not Selected then
202
		return
203
	end
204
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-75), math.rad(-25), math.rad(0)), 0.25, true)
205
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(-55), math.rad(25), math.rad(0)), 0.25, true)
206
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0, -1, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.25, true)
207
end
208
function AniEquipGun()
209
	if WeaponType == "Knife" or not Selected then
210
		return
211
	end
212
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.45, 0.5, -0.25) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(25)), 0.1, true)
213
	wait(0.1)
214
	if WeaponType == "Knife" or not Selected then
215
		return
216
	end
217
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.45, 0.5, -0.25) * CFrame.Angles(math.rad(-90), math.rad(-25), math.rad(0)), 0.25, true)
218
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.9, 1, -0.25) * CFrame.Angles(math.rad(-90), math.rad(75), math.rad(0)), 0.25, true)
219
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0.5, -1.75, -0.35) * CFrame.Angles(math.rad(180), math.rad(0), math.rad(-25)), 0.25, true)
220
end
221
function AniShootGun()
222
	if WeaponType == "Knife" or not Selected then
223
		return
224
	end
225
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.45, 0.5, -0.25) * CFrame.Angles(math.rad(-120), math.rad(-25), math.rad(-8)), 0.06, true)
226
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.9, 1, -0.25) * CFrame.Angles(math.rad(-110), math.rad(78), math.rad(5)), 0.06, true)
227
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0.5, -1.75, -0.35) * CFrame.Angles(math.rad(180), math.rad(0), math.rad(-25)), 0.06, true)
228
	wait(0.06)
229
	if WeaponType == "Knife" or not Selected then
230
		return
231
	end
232
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.45, 0.5, -0.25) * CFrame.Angles(math.rad(-90), math.rad(-25), math.rad(0)), 0.15, true)
233
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.9, 1, -0.25) * CFrame.Angles(math.rad(-90), math.rad(75), math.rad(0)), 0.15, true)
234
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0.5, -1.75, -0.35) * CFrame.Angles(math.rad(180), math.rad(0), math.rad(-25)), 0.15, true)
235
	wait(0.15)
236
	if WeaponType == "Knife" or not Selected then
237
		return
238
	end
239
end
240
function AniReloadGun()
241
	if WeaponType == "Knife" or not Selected then
242
		return
243
	end
244
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.5, 0.5, -0.25) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-25)), 0.55, true)
245
	wait(0.55)
246
	if WeaponType == "Knife" or not Selected then
247
		return
248
	end
249
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.45, 0.5, -0.25) * CFrame.Angles(math.rad(-90), math.rad(-25), math.rad(-15)), 0.4, true)
250
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.7, 1.5, -0.5) * CFrame.Angles(math.rad(-100), math.rad(55), math.rad(-25)), 0.4, true)
251
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0.5, -1.75, -0.35) * CFrame.Angles(math.rad(180), math.rad(0), math.rad(-25)), 0.4, true)
252
	wait(0.4)
253
	if WeaponType == "Knife" or not Selected then
254
		return
255
	end
256
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.45, 0.5, -0.25) * CFrame.Angles(math.rad(-95), math.rad(-30), math.rad(20)), 0.35, true)
257
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.7, 1.5, -0.5) * CFrame.Angles(math.rad(-100), math.rad(60), math.rad(-25)), 0.35, true)
258
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0.5, -1.75, -0.35) * CFrame.Angles(math.rad(180), math.rad(25), math.rad(-25)), 0.35, true)
259
	wait(0.35)
260
	if WeaponType == "Knife" or not Selected then
261
		return
262
	end
263
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.45, 0.5, -0.25) * CFrame.Angles(math.rad(-90), math.rad(-25), math.rad(0)), 0.25, true)
264
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.9, 1, -0.25) * CFrame.Angles(math.rad(-80), math.rad(75), math.rad(0)), 0.25, true)
265
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0.5, -1.75, -0.35) * CFrame.Angles(math.rad(180), math.rad(0), math.rad(-25)), 0.25, true)
266
	wait(0.25)
267
	if WeaponType == "Knife" then
268
		return
269
	end
270
	M.Animate(Char:findFirstChild("MotorRight Arm", true), CFrame.new(-0.45, 0.5, -0.25) * CFrame.Angles(math.rad(-90), math.rad(-25), math.rad(0)), 0.5, true)
271
	M.Animate(Char:findFirstChild("MotorLeft Arm", true), CFrame.new(0.9, 1, -0.25) * CFrame.Angles(math.rad(-90), math.rad(75), math.rad(0)), 0.5, true)
272
	M.Animate(Char:findFirstChild("MotorWeapon", true), CFrame.new(0.5, -1.75, -0.35) * CFrame.Angles(math.rad(180), math.rad(0), math.rad(-25)), 0.5, true)
273
end
274
local FpsPart = Instance.new("Part")
275
FpsPart.Transparency = 1
276
FpsPart.Anchored = true
277
FpsPart.Parent = FpsModel
278
FpsPart.CanCollide = false
279
FpsPart.FormFactor = "Custom"
280
FpsPart.Size = Vector3.new(0.2, 0.2, 0.2)
281
local FpsWeaponWeld = Instance.new("Motor")
282
FpsWeaponWeld.Parent = FpsPart
283
FpsWeaponWeld.Part1 = FpsWeapon
284
FpsWeaponWeld.Part0 = FpsRArm
285
FpsWeaponWeld.C1 = CFrame.new(0, 2, 1)
286
FpsWeaponWeld.C0 = CFrame.new()
287
local FpsLArmWeld = Instance.new("Motor")
288
FpsLArmWeld.Parent = FpsLArm
289
FpsLArmWeld.Part1 = FpsLArm
290
FpsLArmWeld.Part0 = FpsPart
291
FpsLArmWeld.C1 = CFrame.new(0.5, 0, 0)
292
FpsLArmWeld.C0 = CFrame.new(-1, 0.75, 0)
293
local FpsRArmWeld = Instance.new("Motor")
294
FpsRArmWeld.Parent = FpsRArm
295
FpsRArmWeld.Part1 = FpsRArm
296
FpsRArmWeld.Part0 = FpsPart
297
FpsRArmWeld.C1 = CFrame.new(-0.5, 0, 0)
298
FpsRArmWeld.C0 = CFrame.new(1, 0.75, 0)
299
local energy = 100
300
local maxEnergy = 100
301
local move_anim_speed = 5
302
local last_p = Vector3.new()
303
local move_amm = 0
304
local walking = false
305
local running = false
306
local walkingStop = true
307
local aniRun = false
308
local aniLegs = false
309
local idle = true
310
local WalkSpeed = Humanoid.WalkSpeed
311
Humanoid.WalkSpeed = WalkSpeed
312
local DB = false
313
local Charging = false
314
local Speed = 0.35
315
local shake_freq = 5
316
local CanMelee = true
317
local CanReload = true
318
local Shooting = false
319
local Aimed = false
320
local Zoomed = false
321
local RunSpeed = 20
322
Camera.CameraType = "Custom"
323
Camera.CameraSubject = Humanoid
324
coroutine.resume(coroutine.create(function()
325
	while FpsModel ~= nil do
326
		local delta = wait()
327
		local cur_p = T.Position
328
		if (cur_p - last_p).magnitude >= 0.1 then
329
			move_amm = math.min(1, move_amm + delta * move_anim_speed)
330
			walking = true
331
			if running then
332
				if energy <= 0 then
333
					aniRun = false
334
					running = false
335
					shake_freq = 5
336
					Humanoid.WalkSpeed = WalkSpeed
337
				end
338
			elseif energy < maxEnergy then
339
				energy = energy + 0.2
340
			end
341
		else
342
			move_amm = math.max(0, move_amm - delta * move_anim_speed)
343
			walking = false
344
			if energy < maxEnergy then
345
				energy = energy + 0.2
346
			end
347
		end
348
		last_p = cur_p
349
	end
350
end))
351
local RightArmWeld, LeftArmWeld, WeaponWeld
352
local Cloaked = false
353
local UserInputService = game:GetService("UserInputService")
354
local Mobile = UserInputService.TouchEnabled
355
if UserInputService.KeyboardEnabled then
356
	Mobile = false
357
end
358
runService.RenderStepped:connect(function()
359
	local last_time = tick()
360
	local delta = tick() - last_time
361
	last_time = tick()
362
	local breathe_amp = 1.5
363
	local breathe_freq = 1
364
	local breathe = math.sin(math.rad(tick() * 90 * breathe_freq)) * breathe_amp
365
	local shake_amp = {0.075, 0.075}
366
	local arm_shake = CFrame.new(math.cos(math.rad(tick() * 90 * shake_freq)) * move_amm * shake_amp[1], math.abs(math.cos(math.rad(tick() * 90 * shake_freq)) * move_amm * shake_amp[2]), 0)
367
	if (Head.Position - Camera.CoordinateFrame.p).magnitude < 2.5 and Selected then
368
		if Cloaked then
369
			FpsLArm.Transparency = 0.5
370
			FpsRArm.Transparency = 0.5
371
			FpsWeapon.Transparency = 0.5
372
		else
373
			FpsLArm.Transparency = 0
374
			FpsRArm.Transparency = 0
375
			FpsWeapon.Transparency = 0
376
		end
377
		FPS = true
378
	else
379
		FpsLArm.Transparency = 1
380
		FpsRArm.Transparency = 1
381
		FpsWeapon.Transparency = 1
382
		FPS = false
383
	end
384
	if FpsModel ~= nil and Char ~= nil and 0 < Humanoid.Health then
385
		if WeaponType == "Gun" then
386
			FpsPart.CFrame = Camera.CoordinateFrame * CFrame.new(0.7, -2, -0.4) * CFrame.Angles(math.rad(0 + breathe / 2), math.rad(0), math.rad(0)) * arm_shake
387
		elseif WeaponType == "Knife" then
388
			FpsPart.CFrame = Camera.CoordinateFrame * CFrame.new(0, -1.6, -0.4) * CFrame.Angles(math.rad(0 + breathe / 2), math.rad(0), math.rad(0)) * arm_shake
389
		end
390
		if RightArmWeld ~= nil and LeftArmWeld ~= nil and WeaponWeld ~= nil then
391
			if WeaponType == "Gun" then
392
				FpsLArmWeld.C1 = LeftArmWeld.C1 * CFrame.new(0.15, 0.09, -0.43) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(-5))
393
				FpsRArmWeld.C1 = RightArmWeld.C1
394
				FpsWeaponWeld.C1 = WeaponWeld.C1 * CFrame.new(0.1, -0.2, 0.25)
395
			elseif WeaponType == "Knife" then
396
				FpsLArmWeld.C1 = LeftArmWeld.C1 * CFrame.new(0.15, 0.09, -0.43)
397
				FpsRArmWeld.C1 = RightArmWeld.C1 * CFrame.Angles(math.rad(0), math.rad(25), math.rad(0))
398
				FpsWeaponWeld.C1 = WeaponWeld.C1 * CFrame.new(0, 0.15, 0.25)
399
			end
400
		end
401
	end
402
end)
403
local debouncetime = 1
404
local lastjump = time()
405
local WeaponMesh
406
local used = false
407
local Perk = PERKY
408
Humanoid.Changed:connect(function(prop)
409
	if Perk == "Kevlar" and (Humanoid.Health == 98 or Humanoid.Health == 1398) and not used then
410
		Player.PlayerGui.Sounds.KevlarHurt:Play()
411
		used = true
412
	end
413
end)
414
local GunSkin = "http://www.roblox.com/asset/?id=79401500"
415
local KnifeSkin = "http://www.roblox.com/asset/?id=130252453"
416
local Charged = false
417
local MouseDown = false
418
local DB2 = false
419
local Ability = ABIL
420
local Gamemode
421
local CanCloak = true
422
local Knife = false
423
local Gun = false
424
local ThrowGui = Player.PlayerGui.GUI.ThrowKnife
425
local CloakGui = Player.PlayerGui.GUI.CloakGui
426
local Crosshair = Player.PlayerGui.GUI.MobileCrosshair
427
local Gui = Player.PlayerGui.GUI
428
game.Players.LocalPlayer.Backpack.ChildAdded:connect(function(c)
429
	if c.Name == "Gun" and not Gun then
430
		spawn(function()
431
			Gamemode = game.ReplicatedStorage.RemoteFunction:InvokeServer("Gamemode")
432
			Perk = game.ReplicatedStorage.RemoteFunction:InvokeServer("Perk")
433
		end)
434
		local Skin = game.ReplicatedStorage.RemoteFunction:InvokeServer("Skin", "Gun")
435
		if Skin ~= nil then
436
			GunSkin = Skin
437
		end
438
		if game.Players.LocalPlayer.Backpack:findFirstChild("Gun") ~= nil then
439
			Gun = true
440
			if Mobile then
441
			else
442
				KT.Activated:connect(function()
443
					if Gamemode == "One In The Chamber" and Char.Bullet.Value == false then
444
						return
445
					end
446
					if not DB then
447
						DB = false
448
						WC.ShootGun(Char, Char, Mouse.Hit.p, FPS, FpsWeapon)
449
						AniShootGun()
450
						wait(0.21)
451-
				GT.Activated:connect(function()
451+
452
						if not Selected then
453
							wait()
454
						end
455
						wait(0.1)
456
						DB = false
457
					end
458
				end)
459
			end
460
			KT.Equipped:connect(function()
461
				Selected = true
462
				WeaponType = "Gun"
463
				Mouse.Icon = "http://www.roblox.com/asset/?id=117431027"
464
				WC.EquipGun(Char, Char, GunSkin)
465
				RightArmWeld = Char:WaitForChild("MotorRight Arm")
466
				LeftArmWeld = Char:WaitForChild("MotorLeft Arm")
467
				WeaponWeld = Char:WaitForChild("MotorWeapon")
468
				WeaponMesh = Char:WaitForChild("Weapon"):findFirstChild("Mesh"):clone()
469-
			GT.Equipped:connect(function()
469+
470
				AniEquipGun()
471
			end)
472
			KT.Unequipped:connect(function()
473
				Selected = false
474
				Mouse.Icon = "rbxasset://textures\\ArrowCursor.png"
475
				if WeaponMesh ~= nil then
476
					WeaponMesh:Destroy()
477
				end
478
				WeaponType = nil
479
				WC.Unequip(Char, Char)
480
			end)
481-
			GT.Unequipped:connect(function()
481+
482
	elseif c.Name == "Knife" and not Knife then
483
		spawn(function()
484
			Ability = ABIL
485
			Perk = PERKY
486
			if Ability == nil then
487
				Ability = ABIL
488
			end
489
			Gamemode = game.ReplicatedStorage.RemoteFunction:InvokeServer("Gamemode")
490
		end)
491
		local Skin = game.ReplicatedStorage.RemoteFunction:InvokeServer("Skin", "Knife")
492
		if Skin ~= nil then
493
			KnifeSkin = Skin
494
		end
495
		if game.Players.LocalPlayer.Backpack:findFirstChild("Knife") ~= nil then
496
			Knife = true
497
			KT.Activated:connect(function()
498
				MouseDown = true
499
				spawn(function()
500
					if Cloaked then
501
						WC.UnCloak(Char, Char)
502
						Cloaked = false
503
					end
504
				end)
505
				if Gamemode == "Infected" or Gamemode == "One In The Chamber" then
506
					return
507
				end
508
				if not DB2 and not DB then
509
					DB2 = true
510
					spawn(function()
511
						wait(0.35)
512
						if MouseDown and not DB then
513
							DB2 = true
514
							if Perk ~= "Quick Hands" then
515
								AniChargeKnife()
516
								wait(.1)
517
							else
518
								AniChargeKnife2()
519
								wait(.1)
520
							end
521
							if MouseDown and not DB then
522
								Charged = true
523
							end
524
							wait(0.5)
525
							DB2 = false
526
						else
527
							DB2 = false
528
						end
529
					end)
530
				end
531
			end)
532
			KT.Deactivated:connect(function()
533
				MouseDown = false
534
				if Charged then
535
					DB = true
536
					DB2 = true
537
					Charged = false
538
					spawn(function()
539
540
						WC.ThrowKnife(Char, Char, Mouse.Hit.p, Ability)
541
					end)
542
					AniThrowKnife()
543
					wait(0.3)
544
					AniEquipKnife()
545
					DB = false
546
					DB2 = false
547
				elseif not DB then
548
					DB = true
549
					do
550
						local Ran = math.random(1, 3)
551
						spawn(function()
552
							WC.StabKnife(Char, Char, Ran, Ability)
553
						end)
554
						if Ran == 1 then
555
							AniSlashKnife1()
556
						elseif Ran == 2 then
557
							AniSlashKnife2()
558
						elseif Ran == 3 then
559
							AniSlashKnife3()
560
						elseif Ran == 4 then
561
							AniSlashKnife4()
562
						end
563
						wait(0.25)
564
						DB = false
565
					end
566
				end
567
			end)
568
			KT.Equipped:connect(function()
569
				Selected = true
570
				WeaponType = "Knife"
571
				Mouse.Icon = "http://www.roblox.com/asset/?id=117431027"
572
				WC.EquipKnife(Char, Char, KnifeSkin)
573
				RightArmWeld = Char:WaitForChild("MotorRight Arm")
574
				LeftArmWeld = Char:WaitForChild("MotorLeft Arm")
575
				WeaponWeld = Char:WaitForChild("MotorWeapon")
576
				WeaponMesh = Char:WaitForChild("Weapon"):findFirstChild("Mesh"):clone()
577
				WeaponMesh.Parent = FpsWeapon
578
				AniEquipKnife()
579
				if Char then
580
					if workspace.GameInProgress.Mode.Value ~= "Infected" then
581
						Char.Humanoid.WalkSpeed = 20
582
						if workspace.GameInProgress.Mode.Value == "Cold Killer" then
583
							Char.Humanoid.WalkSpeed = 20
584
						elseif Perk == "Speedy Gonzales" then
585
							Char.Humanoid.WalkSpeed = 25
586
						else
587
							Char.Humanoid.WalkSpeed = 20
588
						end
589
					else
590
						Char.Humanoid.WalkSpeed = 13
591
					end
592
				end
593
			end)
594
			KT.Unequipped:connect(function()
595
				if Mobile then
596
					ThrowGui.Visible = false
597
					if Perk == "Shadow Cloak" then
598
						CloakGui.Visible = false
599
					end
600
				end
601
				Charged = false
602
				MouseDown = false
603
				Selected = false
604
				Mouse.Icon = "rbxasset://textures\\ArrowCursor.png"
605
				if WeaponMesh ~= nil then
606
					WeaponMesh:Destroy()
607
				end
608
				WeaponType = nil
609
				WC.Unequip(Char, Char)
610
				if workspace.GameInProgress.Mode.Value ~= "Infected" then
611
					Char.Humanoid.WalkSpeed = 16
612
				else
613
					Char.Humanoid.WalkSpeed = 13
614
				end
615
				if Cloaked then
616
					WC.UnCloak(Char, Char)
617
					Cloaked = false
618
				end
619
			end)
620
		end
621
	end
622
end)
623
local DB3 = false
624
IS.InputBegan:connect(function(input, chatting)
625
	if input.UserInputType == Enum.UserInputType.Gamepad1 and input.UserInputState == Enum.UserInputState.Begin and not chatting and Selected and input.KeyCode == Enum.KeyCode.ButtonX and WeaponType == "Knife" and CanCloak and Perk == "Shadow Cloak" then
626
		if Gamemode == "Infected" or Gamemode == "One In The Chamber" then
627
			return
628
		end
629
		CanCloak = false
630
		WC.Cloak(Char, Char)
631
		Cloaked = true
632
		wait(10)
633
		if Cloaked then
634
			WC.UnCloak(Char, Char)
635
			Cloaked = false
636
		end
637
		wait(15)
638
		CanCloak = true
639
	end
640
	if input.UserInputType == Enum.UserInputType.Keyboard and input.UserInputState == Enum.UserInputState.Begin and not chatting and Selected then
641
		if input.KeyCode == Enum.KeyCode.E and WeaponType == "Knife" and not DB3 then
642
			if Gamemode == "Infected" or Gamemode == "One In The Chamber" then
643
				return
644
			end
645
			DB3 = true
646
			spawn(function()
647
				if Cloaked then
648
					WC.UnCloak(Char, Char)
649
					Cloaked = false
650
				end
651
			end)
652
			if not DB2 and not DB then
653
				DB2 = true
654
				if not DB then
655
					DB2 = true
656
					DB = true
657
					if Perk ~= "Quick Hands" then
658
						AniChargeKnife()
659
						wait(.1)
660
					else
661
						AniChargeKnife2()
662
						wait(.1)
663
					end
664
					if not Selected or WeaponType ~= "Knife" then
665
						DB2 = false
666
						DB = false
667
						return
668
					end
669
					spawn(function()
670
						WC.ThrowKnife(Char, Char, Mouse.Hit.p, Ability)
671
					end)
672
					AniThrowKnife()
673
					wait(0.3)
674
					AniEquipKnife()
675
					DB = false
676
					DB2 = false
677
				else
678
					DB2 = false
679
				end
680
			end
681
			wait(0.25)
682
			DB3 = false
683
		elseif input.KeyCode == Enum.KeyCode.Q and WeaponType == "Knife" and CanCloak and Perk == "Shadow Cloak" then
684
			if Gamemode == "Infected" or Gamemode == "One In The Chamber" then
685
				return
686
			end
687
			CanCloak = false
688
			WC.Cloak(Char, Char)
689
			Cloaked = true
690
			wait(10)
691
			if Cloaked then
692
				WC.UnCloak(Char, Char)
693
				Cloaked = false
694
			end
695
			wait(15)
696
			CanCloak = true
697
		end
698
	end
699
end)
700
game.Players.ChildAdded:connect(function(c)
701
	wait(3)
702
	repeat
703
		wait()
704
	until not DB and not DB2 and not MouseDown
705
	if WeaponType == "Gun" then
706
		WC.EquipGun(Char, Char, GunSkin)
707
		AniEquipGun()
708
	elseif WeaponType == "Knife" then
709
		WC.EquipKnife(Char, Char, KnifeSkin)
710
		AniEquipKnife()
711
	end
712
end)
713
local Modules = game.ReplicatedStorage:WaitForChild("Modules")
714
local M = require(Modules:WaitForChild("AnimationCore"))
715
local WC = require(Modules:WaitForChild("WeaponCore"))
716
local Mouse = game.Players.LocalPlayer:GetMouse()
717
local Char = game.Players.LocalPlayer.Character
718
Mouse.Button1Down:Connect(function()
719
WC.ThrowKnife(Char, Char, Mouse.Hit.p, "Laser Knife")
720
end)