View difference between Paste ID: LQC2GRy6 and FvzWuRnr
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
2
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
3
local RealPlayer = Player
4
do print("FE Compatibility code by Mokiros");InternalData = {}InternalData.RealOwner = owner;InternalData.RealObjs = {};InternalData.SoundLoudness = {};local a=RealPlayer;script.Parent=a.Character;local b=Instance.new("RemoteEvent")b.Name="UserInput_Event"local function c()local d={_fakeEvent=true,Functions={},Connect=function(self,e)table.insert(self.Functions,e)end}d.connect=d.Connect;return d end;local f={Target=nil,Hit=CFrame.new(),KeyUp=c(),KeyDown=c(),Button1Up=c(),Button1Down=c()}local g={InputBegan=c(),InputEnded=c()}local CAS={Actions={},BindAction=function(self,h,i,j,...)CAS.Actions[h]=i and{Name=h,Function=i,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function k(self,l,...)local d=f[l]if d and d._fakeEvent then for m,e in pairs(d.Functions)do e(...)end end end;f.TrigEvent=k;g.TrigEvent=k;b.OnServerEvent:Connect(function(n,o)if n~=a then return end;f.Target=o.Target;f.Hit=o.Hit;if not o.isMouse then local p=o.UserInputState==Enum.UserInputState.Begin;if o.UserInputType==Enum.UserInputType.MouseButton1 then return f:TrigEvent(p and"Button1Down"or"Button1Up")end;for m,d in pairs(CAS.Actions)do for m,q in pairs(d.Keys)do if q==o.KeyCode then d.Function(d.Name,o.UserInputState,o)end end end;f:TrigEvent(p and"KeyDown"or"KeyUp",o.KeyCode.Name:lower())g:TrigEvent(p and"InputBegan"or"InputEnded",o,false)end end)b.Parent=NLS([==[local a=game:GetService("Players").LocalPlayer;local b=script:WaitForChild("UserInput_Event")local c=a:GetMouse()local d=game:GetService("UserInputService")local e=function(f,g)if g then return end;b:FireServer({KeyCode=f.KeyCode,UserInputType=f.UserInputType,UserInputState=f.UserInputState,Hit=c.Hit,Target=c.Target})end;d.InputBegan:Connect(e)d.InputEnded:Connect(e)local h,i;while wait(1/30)do if h~=c.Hit or i~=c.Target then h,i=c.Hit,c.Target;b:FireServer({isMouse=true,Target=i,Hit=h})end end]==],Player.Character)local r=game;local s={__index=function(self,q)local t=rawget(self,"_RealService")if t then return t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u end end,__call=function(self,...)local t=rawget(self,"_RealService")if t then return t(...)end end}local function v(d,w)d._RealService=typeof(w)=="string"and r:GetService(w)or w;return setmetatable(d,s)end;local x={GetService=function(self,t)return self[t]end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;x.RunService=v({RenderStepped=r:GetService("RunService").Heartbeat,BindToRenderStep=function(self,h,m,i)self._btrs[h]=self.Heartbeat:Connect(i)end,UnbindFromRenderStep=function(self,h)self._btrs[h]:Disconnect()end},"RunService")setmetatable(x,{__index=function(self,t)return r:GetService(t)or typeof(r[t])=="function"and function(m,...)return r[t](r,...)end or r[t]end,__newindex=s.__newindex,__call=s.__call})game,owner=x,x.Players.LocalPlayer
5
	script.Parent = InternalData.RealOwner.Character
6
	local Event = Instance.new("RemoteEvent");Event.Name = "UserInput";InternalData.Event = Event
7
	local function createObject (connections, index)
8
    	local proxy = newproxy (true);local meta = getmetatable (proxy);
9
    	local runbind = function (self, i, ...) connections[i]:Fire (...); end;
10
		while (#connections > 0) do connections[table.remove(connections, 1)] = Instance.new ('BindableEvent');end;
11
    	meta.__index = function (self, i)
12
        	if (i == 'TriggerEvent') then return runbind end;
13
        	return connections[i] and connections[i].Event or index[i];
14
    	end;
15
    	meta.__newindex = index;meta.__metatable = false;return proxy
16
	end;
17
	local Mouse = createObject({"KeyUp","KeyDown","Button1Down","Button1Up"},{["Target"] = nil;["Hit"] = CFrame.new()})
18
	local UserInputService = createObject({"InputBegan","InputEnded"},{})
19
	local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
20
		self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
21
	end};ContextActionService.UnBindAction = ContextActionService.BindAction
22
	Event.OnServerEvent:Connect(function(FiredBy,Input)
23
		if FiredBy ~= InternalData.RealOwner then return end
24
		if Input.MouseEvent then
25
			Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
26
		elseif Input.Sound then
27
			if InternalData.SoundLoudness[Input.Sound] then InternalData.SoundLoudness[Input.Sound] = Input.Loudness end
28
		else
29
			local Begin = Input.UserInputState == Enum.UserInputState.Begin
30
			if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TriggerEvent(Begin and "Button1Down" or "Button1Up") end
31
			for _,Action in pairs(ContextActionService.Actions) do
32
				for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
33
			end
34
			Mouse:TriggerEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower());UserInputService:TriggerEvent(Begin and "InputBegan" or "InputEnded",Input,false)
35
		end
36
	end)
37
	InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
38
	Event.Parent = NLS([[
39
		local Player = owner;
40
		local Sounds = {};
41
		local Event = script:WaitForChild("UserInput");
42
		local UserInputService = game:GetService("UserInputService");
43
		local Mouse = Player:GetMouse();
44
		local Input = function(Input,gameProcessedEvent)
45
			if gameProcessedEvent then return end
46
			Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
47
		end
48
		Event.OnClientEvent:connect(function(Args)
49
			if Args[1] == "NewSound" then table.insert(Sounds,Args[2]) end
50
		end)
51
		UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
52
		local Hit,Target
53
		while wait(1/30) do
54
			for x,Sound in pairs(Sounds) do
55
				if Sound.Parent then Event:FireServer({["Sound"]=Sound,["Loudness"]=Sound.PlaybackLoudness}) end
56
			end
57
			if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
58
				Hit = Mouse.Hit;Target = Mouse.Target;
59
				Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
60
			end
61
		end
62
	]],InternalData.RealOwner.Character)
63
end
64
InternalData.NewOwner = setmetatable({},{
65
	__index = function (self,Index)
66
			local Type = type(InternalData.RealOwner[Index])
67
			if Type == "function" then
68
				if Index:lower() == "getmouse" or Index:lower() == "mouse" then
69
				return function (self)return InternalData["Mouse"] end
70
				end
71
			return function (self,...)return InternalData.RealOwner[Index](InternalData.RealOwner,...) end
72
		elseif Index == "FakePlayer" then
73
			return true
74
		end
75
		return InternalData.RealOwner[Index]
76
	end;
77
	__tostring = function(self) return tostring(InternalData.RealOwner) end
78
})
79
--LoadLibrary("RbxUtility").Create
80
InternalData.LoadLibrary = LoadLibrary;LoadLibrary = function(Library)
81
	if Library == "RbxUtility" then
82
		return setmetatable({},{
83
			__tostring = function() return "RbxUtility" end;
84
			__index = function(self, Index)
85
				if Index:lower() == "create" then
86
					return function(Type)
87
						return function(Data)
88
							Data = Data or {}
89
							local Inst = Instance.new(Type)
90
							for x,y in pairs(Data) do
91
								if InternalData.RealObjs[y] then y = InternalData.RealObjs[y] end
92
								if y == owner then y = InternalData.RealOwner end
93
								Inst[x] = y
94
							end
95
							return Inst
96
						end
97
					end
98
				end
99
				return InternalData.LoadLibrary(Library)[Index]
100
			end
101
		})
102
	end
103
	return InternalData.LoadLibrary(Library)
104
end
105
InternalData.RealInstance = Instance;Instance = setmetatable({},{
106
	__index = function (self,Index)
107
		if Index:lower() == 'new' then
108
			return function (Type, Parent)
109
				if Parent == owner then Parent = InternalData.RealOwner end
110
				if InternalData.RealObjs[Parent] then Parent = InternalData.RealObjs[Parent] end
111
				local Real = InternalData.RealInstance.new(Type,Parent)
112
				if not Type then return end
113
				if Type == "BillboardGui" then
114
					local ToReturn = setmetatable({},{
115
						__index = function (self,Index)
116
							if type(Real[Index]) == "function" then
117
								if Index:lower() == "clone" then
118
									return function (self)
119
										local Real = Real:Clone()
120
										local ToReturn = setmetatable({RealObject = Real},{
121
											__index = function (self,Index)
122
												if type(Real[Index]) == "function" then return function (self,...) return Real[Index](Real,...)end end
123
												return Real[Index]
124
											end;
125
											__newindex = function (self,Index,Value)
126
												if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
127
												if Value == owner then Value = InternalData.RealOwner end
128
												Real[Index] = Value
129
											end;
130
											__tostring = function(self) return tostring(Real) end;
131
										})
132
										InternalData.RealObjs[ToReturn] = Real;return ToReturn;
133
									end
134
								end
135
								return function (self,...) return Real[Index](Real,...)end
136
							end
137
							return Real[Index]
138
						end;
139
						__newindex = function (self,Index,Value)
140
							if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
141
							if Value == owner then Value = InternalData.RealOwner end
142
							Real[Index] = Value
143
						end;
144
						__tostring = function(self) return tostring(Real) end;
145
					})
146
					InternalData.RealObjs[ToReturn] = Real;return ToReturn;
147
				elseif Type:lower() == "sound" then
148
					Real.Parent = owner.Character;
149
					local ToReturn = setmetatable({RealObject = Real},{
150
						__index = function (self,Index)
151
							if Index:lower() == "playbackloudness" then
152
								return InternalData.SoundLoudness[Real] or 0
153
							elseif type(Real[Index]) == "function" then
154
								if Index:lower() == "clone" then
155
									return function (self)
156
										local Real = Real:Clone()
157
										local ToReturn = setmetatable({},{
158
											__index = function (self,Index)
159
												if type(Real[Index]) == "function" then return function (self,...) return Real[Index](Real,...)end end
160
												return Real[Index]
161
											end;
162
											__newindex = function (self,Index,Value)
163
												if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
164
												if Value == owner then Value = InternalData.RealOwner end
165
												Real[Index] = Value
166
											end;
167
											__tostring = function(self) return tostring(Real) end;
168
										})
169
										InternalData.RealObjs[ToReturn] = Real;return ToReturn;
170
									end
171
								end
172
								return function (self,...) return Real[Index](Real,...)end
173
							end
174
							return Real[Index]
175
						end;
176
						__newindex = function (self,Index,Value)
177
							if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
178
							if Value == owner then Value = InternalData.RealOwner end
179
							Real[Index] = Value
180
						end;
181
						__tostring = function(self) return tostring(Real) end;
182
					})
183
					InternalData.RealObjs[ToReturn] = Real;InternalData.SoundLoudness[Real] = 0;repeat wait() until InternalData.Event.Parent InternalData.Event:FireClient(InternalData.RealOwner,{"NewSound",Real}) return ToReturn;
184
				else
185
					local ToReturn = setmetatable({RealObject = Real},{
186
						__index = function (self,Index)
187
							if type(Real[Index]) == "function" then
188
								if Index:lower() == "clone" then
189
									return function (self)
190
										local Real = Real:Clone()
191
										local ToReturn = setmetatable({},{
192
											__index = function (self,Index)
193
												if type(Real[Index]) == "function" then return function (self,...) return Real[Index](Real,...)end end
194
												return Real[Index]
195
											end;
196
											__newindex = function (self,Index,Value)
197
												if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
198
												if Value == owner then Value = InternalData.RealOwner end
199
												Real[Index] = Value
200
											end;
201
											__tostring = function(self) return tostring(Real) end;
202
										})
203
										InternalData.RealObjs[ToReturn] = Real;return ToReturn;
204
									end
205
								end
206
								return function (self,...) return Real[Index](Real,...)end
207
							end
208
							return Real[Index]
209
						end;
210
						__newindex = function (self,Index,Value)
211
							if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
212
							if Value == owner then Value = InternalData.RealOwner end
213
							Real[Index] = Value
214
						end;
215
						__tostring = function(self) return tostring(Real) end;
216
					})
217
					InternalData.RealObjs[ToReturn] = Real;return ToReturn;
218
				end
219
			end
220
		end
221
		return InternalData.RealInstance[Index]
222
	end;
223
	__tostring = function(self) return tostring(InternalData.RealInstance) end;
224
});
225
InternalData.RealGame = game;game = setmetatable({},{
226
	__index = function (self,Index)
227
		if InternalData.RealGame[Index] then
228
			local Type = type(InternalData.RealGame[Index])
229
			if Type == "function" then
230
				if Index:lower() == "getservice" or Index:lower() == "service" then
231
					return function (self,Service)
232
						local FakeServices = {
233
							["players"] = function()
234
								return setmetatable({},{
235
									__index = function (self2,Index2)
236
										local RealService = InternalData.RealGame:GetService(Service)
237
										local Type2 = type(RealService[Index2])
238
										if Type2 == "function" then
239
											return function (self,...) return RealService[Index2](RealService,...)end
240
										else
241
											if Index2:lower() == "localplayer" then return InternalData.NewOwner end
242
											return RealService[Index2]
243
										end
244
									end;
245
									__tostring = function(self) return tostring(InternalData.RealGame:GetService(Service)) end
246
								})
247
							end;
248
							["contextactionservice"] = function() return InternalData["ContextActionService"] end;
249
							["userinputservice"] = function() return InternalData["UserInputService"] end;
250
							["debris"] = function()
251
								return setmetatable({},{
252
									__index = function(self2,Index2)
253
										local RealService = InternalData.RealGame:GetService(Service)
254
										local Type2 = type(RealService[Index2])
255
										if Type2 == "function" then
256
											if Index2:lower() == "additem" then
257
												return function (self,Item,Time)
258
													if InternalData.RealObjs[Item] then Item = InternalData.RealObjs[Item] end
259
													return RealService:AddItem(Item,Time)
260
												end
261
											end
262
											return function (self,...) return RealService[Index2](RealService,...) end
263
										end
264
										return RealService[Index2]
265
									end;
266
									__tostring = function(self) return tostring(InternalData.RealGame:GetService("Debris")) end
267
								})
268
							end;
269
							["runservice"] = function()
270
								return setmetatable({},{
271
									__index = function(self2,Index2)
272
										local RealService = InternalData.RealGame:GetService(Service)
273
										local Type2 = type(RealService[Index2])
274
										if Type2 == "function" then
275
											return function (self,...) return RealService[Index2](RealService,...) end
276
										else
277
											local RunServices = {
278
												["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return InternalData.RealGame:GetService("RunService").Stepped:Connect(Function) end end;
279
												["renderstepped"] = function() return RealService["Stepped"] end
280
											}
281
											if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
282
											return RealService[Index2]
283
										end
284
									end;
285
									__tostring = function(self) return tostring(InternalData.RealGame:GetService("RunService")) end
286
								})
287
							end
288
						}
289
						if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
290
						return InternalData.RealGame:GetService(Service)
291
					end
292
				end
293
				return function (self,...) return InternalData.RealGame[Index](InternalData.RealGame,...) end
294
			else
295
				if game:GetService(Index) then return game:GetService(Index) end
296
				return InternalData.RealGame[Index]
297
			end
298
		end
299
		return nil
300
	end;
301
	__tostring = function(self) return tostring(InternalData.game) end
302
});Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete!")
303
304
-- xdddddd edit
305
-- hey im sanesssss dont leek or ill tomkat u
306
307
local startup = 1.5
308
309
--------------------------------------------------------
310
311
        pls = game:GetService'Players'
312
        rs = game:GetService'RunService'
313
        uinps = game:GetService'UserInputService'
314
        lp = pls.LocalPlayer
315
        mouse = lp:GetMouse()
316
        c = lp.Character
317
        human = c.Humanoid
318
        human.MaxHealth = math.huge
319
        wait()
320
        human.Health = math.huge
321
        c.Health:Destroy()
322
323
--------------------------------------------------------
324
325
        Debounces = {
326
                AnimationCycles = 0;
327
                FPS = 0;
328
                scalingDamage = false;
329
                damageLevel = 0;
330
                attackNumber = 0;
331
                isAttacking = false;
332
                isMoving = false;
333
                isSprinting = false;
334
                isBoosting = false;
335
                isPassive = false;
336
                isTyping = false;
337
        }
338
339
--------------------------------------------------------
340
341
        numLerp = function(start, goal, alpha)
342
                return(((goal - start) * alpha) + start)
343
        end
344
345
        CFrameZero = function()
346
                return CFrame.new(Vector3.new())
347
        end
348
349
        rad = function(value)
350
                return math.rad(value)
351
        end
352
353
        CFAngles = function(Vector)
354
                return CFrame.Angles(rad(Vector.x),rad(Vector.y),rad(Vector.z))
355
        end
356
357
--------------------------------------------------------
358
359
        AnimStat = {
360
                lerpSpeed = .2;
361
                lerpSpeed2 = .35;
362
                lerpTween = 0;
363
        }
364
365
        Joints = {
366
                c.HumanoidRootPart.RootJoint;
367
                c.Torso.Neck;
368
                c.Torso['Left Shoulder'];
369
                c.Torso['Right Shoulder'];
370
                c.Torso['Left Hip'];
371
                c.Torso['Right Hip'];
372
        }
373
374
        JointTargets = {
375
                CFrameZero();
376
                CFrameZero();
377
                CFrameZero();
378
                CFrameZero();
379
                CFrameZero();
380
                CFrameZero();
381
        }
382
383
--------------------------------------------------------
384
385
        BodyColors = {
386
                HeadColor = BrickColor.new("Institutional white");
387
                LeftArmColor = BrickColor.new("Institutional white");
388
                RightArmColor = BrickColor.new("Institutional white");
389
                LeftLegColor = BrickColor.new("Institutional white");
390
                RightLegColor = BrickColor.new("Institutional white");
391
                TorsoColor = BrickColor.new("Mid gray");
392
        }
393
394
        Customs = {
395
                Face = "http://www.roblox.com/asset/?id=8560915";
396
                Shirt = "http://www.roblox.com/asset/?id=334781688";
397
                Pants = "http://www.roblox.com/asset/?id=335237283";
398
        }
399
400
--------------------------------------------------------
401
402
        prepareCharacter = function()
403
                local transPoints = {
404
                        NumberSequenceKeypoint.new(0,.819,.0375),
405
                        NumberSequenceKeypoint.new(.207,.594,.0187),
406
                        NumberSequenceKeypoint.new(.4,.55,.031),
407
                        NumberSequenceKeypoint.new(.57,.619,.05),
408
                        NumberSequenceKeypoint.new(.76,.8,.0375),
409
                        NumberSequenceKeypoint.new(1,1,0),
410
                }
411
                local sizePoints = {
412
                        NumberSequenceKeypoint.new(0,.687,0),
413
                        NumberSequenceKeypoint.new(.111,.875,0),
414
                        NumberSequenceKeypoint.new(.327,1.19,0),
415
                        NumberSequenceKeypoint.new(.646,1.56,0),
416
                        NumberSequenceKeypoint.new(.805,1.37,0),
417
                        NumberSequenceKeypoint.new(.905,1.06,0),
418
                        NumberSequenceKeypoint.new(.968,.938,0),
419
                        NumberSequenceKeypoint.new(.984,1.13,0),
420
                        NumberSequenceKeypoint.new(1,1.62,0),
421
                }
422
                local Size = NumberSequence.new(sizePoints)
423
                local Transparency = NumberSequence.new(transPoints)
424
                rayModel = Instance.new("Model",c)
425
                efxBlock = Instance.new("Part",c)
426
                efxBlock.BrickColor = BrickColor.new("Lime green")
427
                efxBlock.Material = "Neon"
428
                efxBlock.FormFactor = "Custom"
429
                efxBlock.Transparency = .3
430
                efxBlock.Size = Vector3.new(.3,.3,.3)
431
                local mesh = Instance.new("SpecialMesh",efxBlock)
432
                mesh.MeshType = Enum.MeshType.Sphere
433
                mesh.Scale = Vector3.new(1,1,1)
434
                light = Instance.new("PointLight",c.Head)
435
                light.Range = 10
436
                light.Color = Color3.new(0,255/255,0)
437
                light.Shadows = false
438
                local particles = Instance.new("ParticleEmitter",efxBlock)
439
                particles.Color = ColorSequence.new(Color3.new(0,255/255,0), Color3.new(0,155/255,0))
440
                particles.LightEmission = 1
441
                particles.Size = Size
442
                particles.Name = "Fire"
443
                particles.Transparency = Transparency
444
                particles.LockedToPart = true
445
                particles.VelocityInheritance = .5
446
                particles.LockedToPart = true
447
                particles.Rate = 70
448
                particles.Texture = "rbxassetid://267871019"
449
                particles.Lifetime = NumberRange.new(2,2)
450
                particles.RotSpeed = NumberRange.new(100,100)
451
                particles.Speed = NumberRange.new(7,7)
452
                script.Parent = efxBlock
453
                fire = particles
454
                local offset = Vector3.new(-0.11, .23, -0.5)
455
                local weld = Instance.new("Weld",c.Head)
456
                weld.Part0 = c.Head
457
                weld.Part1 = efxBlock
458
                weld.C0 = CFrame.new(offset) * CFrame.Angles(math.rad(-40),math.rad(10),math.rad(40))
459
                efxBlock.Parent = c
460
                local music = Instance.new("Sound",c)
461
                music.SoundId = "rbxassetid://316012176"
462
                music.Looped = true
463
                music.Volume = 0
464
                fight = music
465
                local music2 = Instance.new("Sound",c)
466
                music2.SoundId = "rbxassetid://316014309"
467
                music2.Looped = true
468
                music2.Volume = 0
469
                sans = music2
470
                pointGyro = Instance.new("BodyGyro",c.HumanoidRootPart)
471
                pointGyro.P = 1e7
472
                pointGyro.D = 1e3
473
                pointGyro.MaxTorque = Vector3.new(0,1e7,0)
474
                animator = c.Humanoid:FindFirstChild("Animator")
475
                if animator then
476
                        animator:Destroy()
477
                end
478
                c.Torso.roblox:Destroy()
479
                for i,v in pairs (c.Head:children()) do
480
                        if v.ClassName == "Sound" then
481
                                v:Destroy()
482
                        end
483
                end
484
                for i = 1,#Joints do
485
                        Joints[i].C1 = CFrame.new(Vector3.new())
486
                end
487
                human.WalkSpeed = 0
488
                human.JumpPower = 0
489
        end
490
491
        uinps.InputBegan:connect(function(InputObject)
492
                if InputObject.KeyCode == Enum.KeyCode.K and Debounces.isTyping == false then
493
                        Debounces.isPassive = not Debounces.isPassive
494
                end
495
        end)
496
497
        setJointCFrames = function(table)
498
                for i = 1,#table do
499
                        JointTargets[i] = table[i]
500
                end
501
                AnimationCycles = 0
502
        end
503
504
        setLerp = function(speed)
505
                AnimStat.lerpSpeed = speed
506
        end
507
508
        setTween = function(tween)
509
                AnimStat.lerpTween = tween
510
        end
511
512
        takeDamage = function(position,damage,distance,platformStand)
513
                for i,v in pairs (pls:children()) do
514
                        if v.ClassName == "Player" and v:FindFirstChild("Character") then
515
                                local torso = v.Character:FindFirstChild("Torso")
516
                                if torso and (torso.Position - position).magnitude < distance then
517
                                        v.Character.Humanoid:TakeDamage(damage)
518
                                        if platformStand == true then
519
                                                v.Character.PlatformStand = platformStand
520
                                        end
521
                                end
522
                        end
523
                end
524
        end
525
526
--------------------------------------------------------
527
528
        prepareCharacter()
529
530
--------------------------------------------------------
531
532
        spawn(function()
533
                local sine = 0
534
                while wait() do
535
                        pointGyro.CFrame = CFrame.new(Vector3.new(),(mouse.Hit.p - c.HumanoidRootPart.CFrame.p).unit * 100)
536
                        if Debounces.isAttacking == false and Debounces.isMoving == false and Debounces.isBoosting == false then
537
                                setLerp(.1)
538
                                if Debounces.isPassive == true then
539
                                        setJointCFrames({
540
                                                CFrame.new(Vector3.new(0, -0.901 + math.sin(tick() * 1.5)/45, 0)) * CFAngles(Vector3.new(-22.001, 0, 0));
541
                                                CFrame.new(Vector3.new(-0.001, 1.52 + math.sin(tick() * -1.5)/35, math.sin(tick() * 1.5)/35)) * CFAngles(Vector3.new(-10.861 + math.sin((-tick() + 2) * 1.5) * 5, 13.765, -1.658));
542
                                                CFrame.new(Vector3.new(-1.5, -0.1 + math.sin(tick() * 1.5)/15, -0.801)) * CFAngles(Vector3.new(44.999, 0, 0));
543
                                                CFrame.new(Vector3.new(1.7, 0.2 + math.sin(tick() * 1.5)/15, 0.199)) * CFAngles(Vector3.new(-15.001, -15.001, 15));
544
                                                CFrame.new(Vector3.new(-0.7, -1.8, 0.6)) * CFAngles(Vector3.new(-59.511, 3.84, 0.489));
545
                                                CFrame.new(Vector3.new(0.5, -1, -0.801)) * CFAngles(Vector3.new(14.999, -15, -0.001));
546
                                        })
547
                                else
548
                                        setJointCFrames({
549
                                                CFrame.new(Vector3.new(0, 0 + math.sin(tick() * 1.5)/25, 0)) * CFAngles(Vector3.new(0, 0, 0));
550
                                                CFrame.new(Vector3.new(0, 1.5 + math.sin(tick() * -1.5)/35, math.sin(tick() * 1.5)/35)) * CFAngles(Vector3.new(1.554 + math.sin((-tick() + 2) * 1.5) * 5, -0.001, -0.001));
551
                                                CFrame.new(Vector3.new(-1.06, -0.03 + math.sin(tick() * 1.5)/25, 0.449)) * CFAngles(Vector3.new(-29.511, 0, 29.51));
552
                                                CFrame.new(Vector3.new(1.059, -0.031 + math.sin(tick() * 1.5)/25, 0.449)) * CFAngles(Vector3.new(-29.511, -3.842, -29.511));
553
                                                CFrame.new(Vector3.new(-0.49, -2, -0.05/1.5)) * CFAngles(Vector3.new(0, 8.885, 0));
554
                                                CFrame.new(Vector3.new(0.49, -2, -0.05/1.5)) * CFAngles(Vector3.new(-0.001, -8.886, 0));
555
                                        })
556
                                end
557
                        elseif Debounces.isAttacking == false and Debounces.isMoving == true and Debounces.isBoosting == false then
558
                                sine = sine + math.rad(12)
559
                                human.WalkSpeed = 15
560
                                setLerp(.15)
561
                                setJointCFrames({
562
                                        CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, math.sin(sine) * -2.5, 0));
563
                                        CFrame.new(Vector3.new(0, 1.499, -0.04)) * CFAngles(Vector3.new(-5.676, -0.001 - math.sin(sine) * 3, -0.001));
564
                                        CFrame.new(Vector3.new(-1.97, 0 + math.sin(sine + .5)/20, 0.1 + math.sin(-sine)/2)/1.3) * CFAngles(Vector3.new(-5 + math.sin(sine) * 23, 0, 0));
565
                                        CFrame.new(Vector3.new(1.97, 0 - math.sin(sine + .5)/20, 0.1 + math.sin(sine)/2)/1.3) * CFAngles(Vector3.new(-5 + math.sin(-sine) * 23, 0, 0));
566
                                        CFrame.new(Vector3.new(-0.5, -1.93 - math.cos(sine)/8.7, 0.2 + math.sin(sine)/2)) * CFAngles(Vector3.new(-15 + math.sin(-sine) * 30, 0, 0));
567
                                        CFrame.new(Vector3.new(0.5, -1.93 + math.cos(sine)/8.7, 0.2 + math.sin(-sine)/2)) * CFAngles(Vector3.new(-15 + math.sin(sine) * 30, 0, 0));
568
                                })
569
                        end
570
                        if Debounces.scalingDamage == true then
571
                                takeDamage(c.HumanoidRootPart.Position,Debounces.damageLevel,8,true)
572
                        end
573
                end
574
        end)
575
576
        human.Changed:connect(function(prop)
577
                if prop == "MoveDirection" then
578
                        if human.MoveDirection.magnitude > .02 then
579
                                Debounces.isMoving = true
580
                        else
581
                                Debounces.isMoving = false
582
                        end
583
                end
584
        end)
585
586
        uinps.InputBegan:connect(function(InputObject)
587
                if InputObject.KeyCode == Enum.KeyCode.A and Debounces.isAttacking == false and Debounces.isSprinting == true and Debounces.isBoosting == false and Debounces.isPassive == true and Debounces.isTyping == false then
588
                        Debounces.isBoosting = true
589
                        Debounces.damageLevel = 10
590
                        Debounces.scalingDamage = true
591
                        local vel = Instance.new("BodyVelocity",c.HumanoidRootPart)
592
                        setLerp(.15)
593
                        setJointCFrames({
594
                                CFrame.new(Vector3.new(0, -0.901, 0)) * CFAngles(Vector3.new(-22.001, 0, 20));
595
                                CFrame.new(Vector3.new(-0.001, 1.52, 0)) * CFAngles(Vector3.new(-10.372, 28.758, -1.837));
596
                                CFrame.new(Vector3.new(-0.7, -0.2, -0.801)) * CFAngles(Vector3.new(45, 0, 45));
597
                                CFrame.new(Vector3.new(1.7, 0.2, 0.199)) * CFAngles(Vector3.new(-15.001, -15.001, 45));
598
                                CFrame.new(Vector3.new(-0.3, -2, 0.2)) * CFAngles(Vector3.new(-11.283, -17.801, 19.495));
599
                                CFrame.new(Vector3.new(0.9, -2, -0.201)) * CFAngles(Vector3.new(15, -15, 29.999));
600
                        })
601
                        local boostSpeed = 250
602
                        local efx = Instance.new("Sound",c.Head)
603
                        efx.SoundId = "rbxassetid://200632875"
604
                        efx.Pitch = math.random(1100,1300)/1000
605
                        efx.Volume = .5
606
                        efx:Play()
607
                        spawn(function()
608
                                wait(5)
609
                                efx:Destroy()
610
                        end)
611
                        vel.Velocity = (c.HumanoidRootPart.Position - c.HumanoidRootPart.CFrame:toWorldSpace(CFrame.new(1,0,0)).p).unit * boostSpeed
612
                        vel.P = 1e3
613
                        vel.MaxForce = Vector3.new(math.huge,0,math.huge)
614
                        wait(.15)
615
                        vel.P = 1000
616
                        vel.MaxForce = Vector3.new(3000,0,3000)
617
                        vel.Velocity = Vector3.new()
618
                        wait(.3)
619
                        setLerp(.3)
620
                        setJointCFrames({
621
                                CFrame.new(Vector3.new(0, -0.901, 0)) * CFAngles(Vector3.new(-22.001, 0, 13));
622
                                CFrame.new(Vector3.new(-0.001, 1.52, 0)) * CFAngles(Vector3.new(-30.239, 42.47, 11.879));
623
                                CFrame.new(Vector3.new(-1.9, -0.2, -0.401)) * CFAngles(Vector3.new(44.999, 0, -45));
624
                                CFrame.new(Vector3.new(1.5, 0.4, 0.599)) * CFAngles(Vector3.new(-62.058, -21.088, -15.383));
625
                                CFrame.new(Vector3.new(-0.7, -1.8, 0.6)) * CFAngles(Vector3.new(-59.239, -26.158, -14.457));
626
                                CFrame.new(Vector3.new(0.5, -1, -0.801)) * CFAngles(Vector3.new(-0.505, -14.478, -18.968));
627
                        })
628
                        wait(.2)
629
                        vel:Destroy()
630
                        Debounces.damageLevel = 0
631
                        Debounces.scalingDamage = false
632
                        Debounces.isBoosting = false
633
                end
634
        end)
635
636
        uinps.InputBegan:connect(function(InputObject)
637
                if InputObject.KeyCode == Enum.KeyCode.D and Debounces.isAttacking == false and Debounces.isSprinting == true and Debounces.isBoosting == false and Debounces.isPassive == true and Debounces.isTyping == false then
638
                        Debounces.isBoosting = true
639
                        Debounces.damageLevel = 10
640
                        Debounces.scalingDamage = true
641
                        local vel = Instance.new("BodyVelocity",c.HumanoidRootPart)
642
                        setLerp(.15)
643
                        setJointCFrames({
644
                                CFrame.new(Vector3.new(0, -0.901, 0)) * CFAngles(Vector3.new(-22.001, 0, -15));
645
                                CFrame.new(Vector3.new(-0.001, 1.52, 0)) * CFAngles(Vector3.new(-13.603, -45.662, -6.645));
646
                                CFrame.new(Vector3.new(-1.9, 0, -0.201)) * CFAngles(Vector3.new(31.935, -7.436, -60.853));
647
                                CFrame.new(Vector3.new(1.9, 0, 0.399)) * CFAngles(Vector3.new(-3.644, -23.448, 59.102));
648
                                CFrame.new(Vector3.new(-1.1, -1.8, 0)) * CFAngles(Vector3.new(-3.616, -11.936, -29.566));
649
                                CFrame.new(Vector3.new(0.1, -1.6, -0.601)) * CFAngles(Vector3.new(1.943, -7.181, -32.528));
650
                        })
651
                        local boostSpeed = 250
652
                        local efx = Instance.new("Sound",c.Head)
653
                        efx.SoundId = "rbxassetid://200632875"
654
                        efx.Pitch = math.random(1100,1300)/1000
655
                        efx.Volume = .5
656
                        efx:Play()
657
                        spawn(function()
658
                                wait(5)
659
                                efx:Destroy()
660
                        end)
661
                        vel.Velocity = (c.HumanoidRootPart.Position - c.HumanoidRootPart.CFrame:toWorldSpace(CFrame.new(-1,0,0)).p).unit * boostSpeed
662
                        vel.P = 1e3
663
                        vel.MaxForce = Vector3.new(math.huge,0,math.huge)
664
                        wait(.15)
665
                        vel.P = 1000
666
                        vel.MaxForce = Vector3.new(3000,0,3000)
667
                        vel.Velocity = Vector3.new()
668
                        wait(.3)
669
                        setLerp(.3)
670
                        setJointCFrames({
671
                                CFrame.new(Vector3.new(0, -0.901, 0)) * CFAngles(Vector3.new(-22.001, 0, -13));
672
                                CFrame.new(Vector3.new(-0.001, 1.52, 0)) * CFAngles(Vector3.new(-12.936, -46.206, -2.327));
673
                                CFrame.new(Vector3.new(-1.9, 0.2, -0.201)) * CFAngles(Vector3.new(45, 0, -60));
674
                                CFrame.new(Vector3.new(1.7, 0, -0.401)) * CFAngles(Vector3.new(14.035, -5.69, 35.342));
675
                                CFrame.new(Vector3.new(-0.3, -1.8, 0.6)) * CFAngles(Vector3.new(-55.479, -10.612, 15.729));
676
                                CFrame.new(Vector3.new(0.5, -1, -0.801)) * CFAngles(Vector3.new(14.999, -15, 14.999));
677
                        })
678
                        wait(.2)
679
                        vel:Destroy()
680
                        Debounces.damageLevel = 0
681
                        Debounces.scalingDamage = false
682
                        Debounces.isBoosting = false
683
                end
684
        end)
685
686
        uinps.InputBegan:connect(function(InputObject)
687
                if InputObject.KeyCode == Enum.KeyCode.W and Debounces.isAttacking == false and Debounces.isSprinting == true and Debounces.isBoosting == false and Debounces.isPassive == true and Debounces.isTyping == false then
688
                        Debounces.isBoosting = true
689
                        Debounces.damageLevel = 10
690
                        Debounces.scalingDamage = true
691
                        local vel = Instance.new("BodyVelocity",c.HumanoidRootPart)
692
                        setLerp(.15)
693
                        setJointCFrames({
694
                                CFrame.new(Vector3.new(0, -0.901, 0)) * CFAngles(Vector3.new(-40.001, 0, 5));
695
                                CFrame.new(Vector3.new(-0.001, 1.429, 0.2)) * CFAngles(Vector3.new(25.141, -8.347, 0.878));
696
                                CFrame.new(Vector3.new(-1.5, 0, .101)) * CFAngles(Vector3.new(14.999, -0.001, 0));
697
                                CFrame.new(Vector3.new(1.7, 0.199, -0.401)) * CFAngles(Vector3.new(28.08, -0.358, 21.087));
698
                                CFrame.new(Vector3.new(-0.5, -1.8, 0.6)) * CFAngles(Vector3.new(-29.448, 3.57, -1.5));
699
                                CFrame.new(Vector3.new(0.499, -1.6, -0.401)) * CFAngles(Vector3.new(-0.505, -14.478, -3.968));
700
                        })
701
                        local boostSpeed = 250
702
                        local efx = Instance.new("Sound",c.Head)
703
                        efx.SoundId = "rbxassetid://200632875"
704
                        efx.Pitch = math.random(1100,1300)/1000
705
                        efx.Volume = .5
706
                        efx:Play()
707
                        spawn(function()
708
                                wait(5)
709
                                efx:Destroy()
710
                        end)
711
                        vel.Velocity = (c.HumanoidRootPart.Position - c.HumanoidRootPart.CFrame:toWorldSpace(CFrame.new(0,0,1)).p).unit * boostSpeed
712
                        vel.P = 1e3
713
                        vel.MaxForce = Vector3.new(math.huge,0,math.huge)
714
                        wait(.15)
715
                        vel.P = 1000
716
                        vel.MaxForce = Vector3.new(3000,0,3000)
717
                        vel.Velocity = Vector3.new()
718
                        wait(.3)
719
                        setLerp(.3)
720
                        setJointCFrames({
721
                                CFrame.new(Vector3.new(0, -0.901, 0)) * CFAngles(Vector3.new(-22.001, 40, -13));
722
                                CFrame.new(Vector3.new(-0.001, 1.52, 0)) * CFAngles(Vector3.new(-12.936, -46.206, -2.327));
723
                                CFrame.new(Vector3.new(-1.9, 0.2, -0.201)) * CFAngles(Vector3.new(45, 0, -60));
724
                                CFrame.new(Vector3.new(1.7, 0, -0.401)) * CFAngles(Vector3.new(14.035, -5.69, 35.342));
725
                                CFrame.new(Vector3.new(-0.3, -1.8, 0.6)) * CFAngles(Vector3.new(-55.479, -10.612, 15.729));
726
                                CFrame.new(Vector3.new(0.5, -1, -0.801)) * CFAngles(Vector3.new(14.999, -15, 14.999));
727
                        })
728
                        wait(.2)
729
                        vel:Destroy()
730
                        Debounces.damageLevel = 0
731
                        Debounces.scalingDamage = false
732
                        Debounces.isBoosting = false
733
                end
734
        end)
735
736
        uinps.InputBegan:connect(function(InputObject)
737
                if InputObject.KeyCode == Enum.KeyCode.S and Debounces.isAttacking == false and Debounces.isSprinting == true and Debounces.isBoosting == false and Debounces.isPassive == true and Debounces.isTyping == false then
738
                        Debounces.isBoosting = true
739
                        Debounces.damageLevel = 10
740
                        Debounces.scalingDamage = true
741
                        local vel = Instance.new("BodyVelocity",c.HumanoidRootPart)
742
                        setLerp(.15)
743
                        setJointCFrames({
744
                                CFrame.new(Vector3.new(0, -.3, 0)) * CFAngles(Vector3.new(15, 0, 0));
745
                                CFrame.new(Vector3.new(-0.001, 1.52, -0.03)) * CFAngles(Vector3.new(-5.298, -1.305, -4.093));
746
                                CFrame.new(Vector3.new(-1.7, 0, -0.201)) * CFAngles(Vector3.new(12.112, -6.562, -16.939));
747
                                CFrame.new(Vector3.new(1.7, 0, -0.201)) * CFAngles(Vector3.new(8.817, 8.378, 20.465));
748
                                CFrame.new(Vector3.new(-0.7, -1.8, 0.2)) * CFAngles(Vector3.new(-14.432, 3.06, -2.373));
749
                                CFrame.new(Vector3.new(0.5, -1.8, -0.201)) * CFAngles(Vector3.new(-0.505, -14.478, -3.968));
750
                        })
751
                        local boostSpeed = 150
752
                        local boostSpeed = 250
753
                        local efx = Instance.new("Sound",c.Head)
754
                        efx.SoundId = "rbxassetid://200632875"
755
                        efx.Pitch = math.random(1100,1300)/1000
756
                        efx.Volume = .5
757
                        efx:Play()
758
                        spawn(function()
759
                                wait(5)
760
                                efx:Destroy()
761
                        end)
762
                        vel.Velocity = (c.HumanoidRootPart.Position - c.HumanoidRootPart.CFrame:toWorldSpace(CFrame.new(0,0,-1)).p).unit * boostSpeed
763
                        vel.P = 1e3
764
                        vel.MaxForce = Vector3.new(math.huge,0,math.huge)
765
                        wait(.15)
766
                        vel.P = 1000
767
                        vel.MaxForce = Vector3.new(3000,0,3000)
768
                        vel.Velocity = Vector3.new()
769
                        wait(.3)
770
                        setLerp(.3)
771
                        setJointCFrames({
772
                                CFrame.new(Vector3.new(0, -.5, 0)) * CFAngles(Vector3.new(4, 0, 0));
773
                                CFrame.new(Vector3.new(-0.001, 1.52, -0.03)) * CFAngles(Vector3.new(-20.081, 28.752, 3.598));
774
                                CFrame.new(Vector3.new(-1.7, 0.2, -0.601)) * CFAngles(Vector3.new(59.51, -3.841, -14.511));
775
                                CFrame.new(Vector3.new(1.7, 0.2, 0.399)) * CFAngles(Vector3.new(-47.597, -13.104, 17.887));
776
                                CFrame.new(Vector3.new(-0.7, -1.4, 0.2)) * CFAngles(Vector3.new(-44.477, 3.836, -0.524));
777
                                CFrame.new(Vector3.new(0.5, -1.4, -0.601)) * CFAngles(Vector3.new(-15.868, -12.953, -7.631));
778
                        })
779
                        wait(.2)
780
                        vel:Destroy()
781
                        Debounces.damageLevel = 0
782
                        Debounces.scalingDamage = false
783
                        Debounces.isBoosting = false
784
                end
785
        end)
786
787
        uinps.InputBegan:connect(function(InputObject)
788
                if InputObject.KeyCode == Enum.KeyCode.Q and Debounces.isAttacking == false and Debounces.isSprinting == false and Debounces.isPassive == true and Debounces.isTyping == false then
789
                        local isLooping = true
790
                        uinps.InputEnded:connect(function(InputObject2)
791
                                if InputObject2.KeyCode == Enum.KeyCode.Q then
792
                                        isLooping = false
793
                                end
794
                        end)
795
                        while true do
796
                                if isLooping == false then
797
										startup = 1.5
798
                                        break
799
                                end
800
                                Debounces.attackNumber = Debounces.attackNumber + 1
801
                                local aimPos = mouse.Hit.p
802
                                local head = Instance.new("Part",c)
803
                                head.Size = Vector3.new(18,.2,24)
804
                                head.CanCollide = false
805
                                head.Anchored = true
806
                                head.Transparency = 1
807
                                for i = 1,2 do
808
                                        local decal = Instance.new("Decal",head)
809
                                        decal.Texture = "rbxassetid://323497117"
810
                                        if i == 1 then
811
                                                decal.Face = Enum.NormalId.Top
812
                                        else
813
                                                decal.Face = Enum.NormalId.Bottom
814
                                        end
815
                                end
816
                                if Debounces.attackNumber%2 == 1 then
817
                                        head.CFrame = CFrame.new(c.Torso.CFrame:toWorldSpace(CFrame.new(8,8,.5)).p,aimPos)
818
                                else
819
                                        head.CFrame = CFrame.new(c.Torso.CFrame:toWorldSpace(CFrame.new(-8,8,.5)).p,aimPos)
820
                                end
821
                                spawn(function()
822
                                        local timer = 0
823
                                        while rs.RenderStepped:wait() do
824
                                                if timer >= 1.6 then
825
                                                        break
826
                                                end
827
                                                head.CFrame = head.CFrame * CFrame.Angles(0,0,math.rad(timer * 25/(Debounces.FPS/60)))
828
                                                timer = timer + 1/30/(Debounces.FPS/60)
829
                                        end
830
                                        head.CFrame = CFrame.new(head.CFrame.p,aimPos)
831
                                        local ray = Ray.new(head.CFrame.p,(aimPos - head.CFrame.p).unit * 999)
832
                                        local hit, pos = workspace:FindPartOnRay(ray,c)
833
                                        local dis = (head.CFrame.p - pos).magnitude
834
                                        local rayPart = Instance.new("Part",rayModel)
835
										rayPart.BrickColor = BrickColor.new("Lime green")
836
                                        rayPart.Material = "Neon"
837
                                        rayPart.FormFactor = "Custom"
838
                                        rayPart.Anchored = true
839
                                        rayPart.CanCollide = false
840
                                        rayPart.Size = Vector3.new(16,16,dis + 400)
841
                                        local rayCFrame = CFrame.new(head.CFrame.p + (aimPos - head.CFrame.p).unit * (dis/2 + 200),head.CFrame.p + (aimPos - head.CFrame.p).unit * dis * 2)
842
                                        rayPart.CFrame = rayCFrame
843
                                        head:Destroy()
844
                                end)
845
                                wait()
846
                                local s = Instance.new("Sound",head)
847
                                s.Volume = 1
848
                                s.SoundId = "rbxassetid://332223043"
849
                                s:Play()
850
                                wait(startup)
851
								startup = startup / 1.1
852
                        end
853
                end
854
        end)
855
856
        uinps.InputBegan:connect(function(InputObj)
857
                if InputObj.KeyCode == Enum.KeyCode.E and Debounces.isAttacking == false and Debounces.isSprinting == false and Debounces.isPassive == true and Debounces.isTyping == false then
858
                        Debounces.isAttacking = true
859
                        local aimPos = mouse.Hit.p
860
                        local head = Instance.new("Part",c)
861
                        head.Size = Vector3.new(20,.2,26)
862
                        head.CanCollide = false
863
                        head.Anchored = true
864
                        head.CFrame = CFrame.new(c.HumanoidRootPart.CFrame:toWorldSpace(CFrame.new(0,0,-9)).p,aimPos)
865
                        head.Transparency = 1
866
                        for i = 1,2 do
867
                                local decal = Instance.new("Decal",head)
868
                                decal.Texture = "rbxassetid://323497117"
869
                                if i == 1 then
870
                                        decal.Face = Enum.NormalId.Top
871
                                else
872
                                        decal.Face = Enum.NormalId.Bottom
873
                                end
874
                        end
875
                        setLerp(.1)
876
                        setJointCFrames({
877
                                CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, 0, 0));
878
                                CFrame.new(Vector3.new(0, 1.499, -0.09)) * CFAngles(Vector3.new(-11.676, -0.001, -0.001));
879
                                CFrame.new(Vector3.new(-1.7, 0, 0)) * CFAngles(Vector3.new(-12.808, -28.88, -21.502));
880
                                CFrame.new(Vector3.new(1.699, 1.2, 0.599)) * CFAngles(Vector3.new(-146.606, 16.571, 13.928));
881
                                CFrame.new(Vector3.new(-0.501, -1.601, 0.6)) * CFAngles(Vector3.new(-60, 0, -0.001));
882
                                CFrame.new(Vector3.new(0.5, -1.4, -0.4)) * CFAngles(Vector3.new(-15.001, -15.001, 0));
883
                        })
884
                        spawn(function()
885
                                local timer = 0
886
                                while rs.RenderStepped:wait() do
887
                                        if timer >= 2 then
888
                                                break
889
                                        end
890
                                        head.CFrame = head.CFrame * CFrame.Angles(0,0,math.rad(timer * 25/(Debounces.FPS/60)))
891
                                        timer = timer + 1/30/(Debounces.FPS/60)
892
                                end
893
                                head.CFrame = CFrame.new(head.CFrame.p,aimPos)
894
                                local ray = Ray.new(head.CFrame.p,(aimPos - head.CFrame.p).unit * 999)
895
                                local hit, pos = workspace:FindPartOnRay(ray,c)
896
                                local dis = (head.CFrame.p - pos).magnitude
897
                                local rayPart = Instance.new("Part",rayModel)
898
								rayPart.BrickColor = BrickColor.new("Lime green")
899
                                rayPart.Material = "Neon"
900
                                rayPart.FormFactor = "Custom"
901
                                rayPart.Name = "Punch"
902
                                rayPart.Anchored = true
903
                                rayPart.CanCollide = false
904
                                rayPart.Size = Vector3.new(78,78,dis + 400)
905
                                local rayCFrame = CFrame.new(head.CFrame.p + (aimPos - head.CFrame.p).unit * (dis/2 + 200),head.CFrame.p + (aimPos - head.CFrame.p).unit * dis * 2)
906
                                rayPart.CFrame = rayCFrame
907
                                head:Destroy()
908
                        end)
909
                        wait()
910
                        local s = Instance.new("Sound",head)
911
                        s.Volume = 1
912
                        s.SoundId = "rbxassetid://332223043"
913
                        s.Pitch = .8
914
                        s:Play()
915
                        wait(.5)
916
                        setLerp(.17)
917
                        setJointCFrames({
918
                                CFrame.new(Vector3.new(0, -.5, 0)) * CFAngles(Vector3.new(-20, 15, 0));
919
                                CFrame.new(Vector3.new(0, 1.499, -0.09)) * CFAngles(Vector3.new(-11.676, 14.999, -0.001));
920
                                CFrame.new(Vector3.new(-1.7, 0, 0.2)) * CFAngles(Vector3.new(-33.928, -4.374, -38.76));
921
                                CFrame.new(Vector3.new(1.499, 0.4, -0.601)) * CFAngles(Vector3.new(74.335, 25.091, -6.155));
922
                                CFrame.new(Vector3.new(-0.501, -1.601, 0.6)) * CFAngles(Vector3.new(-45, 0, -0.001));
923
                                CFrame.new(Vector3.new(0.5, -1.8, -0.4)) * CFAngles(Vector3.new(-15, -15, 0));
924
                        })
925
                        wait(1)
926
                        Debounces.isAttacking = false
927
                end
928
        end)
929
        
930
        reflect = function(d,n)
931
                local i, n = -1 * d.unit, n.unit
932
                local dot = n:Dot(i)
933
                return 2*dot*n - i
934
        end
935
936
        makeReflectionBeam = function(pos,look,isCrit)
937
                local ray = Ray.new(pos,look)
938
                local hit,hitpos,norm = workspace:FindPartOnRay(ray,c)
939
                local e = Instance.new("Part",rayModel)
940
                e.Anchored = true
941
                e.CanCollide = false
942
                e.BrickColor = BrickColor.new("White")
943
                e.Material = "Neon"
944
                e.FormFactor = "Custom"
945
                e.Size = Vector3.new(6,6,(pos - hitpos).magnitude)
946
                if isCrit == true then
947
                        e.Size = Vector3.new(16,16,(pos - hitpos).magnitude)
948
                        e.Name = "Punch"
949
                end
950
                e.CFrame = CFrame.new(pos + (hitpos - pos)/2, pos)
951
                local e = Instance.new("Sound",c)
952
                if isCrit == true then
953
                        e.Volume = .5
954
                else
955
                        e.Volume = .3
956
                        e.Pitch = 1.5
957
                end
958
                e.SoundId = "rbxassetid://200632875"
959
                e:Play()
960
                spawn(function()
961
                        wait(6)
962
                        e:Destroy()
963
                end)
964
                wait(.05)
965
                if hit ~= nil then
966
                        newDir = reflect(look.unit,norm,isCrit)
967
                        makeReflectionBeam(hitpos,newDir * 999,isCrit)
968
                end
969
        end
970
971
        uinps.InputBegan:connect(function(InputObject)
972
                if InputObject.KeyCode == Enum.KeyCode.Q and Debounces.isAttacking == false and Debounces.isSprinting == true and Debounces.isPassive == true and Debounces.isTyping == false then
973
                        local isLooping = true
974
                        uinps.InputEnded:connect(function(InputObject2)
975
                                if InputObject2.KeyCode == Enum.KeyCode.Q then
976
                                        isLooping = false
977
                                end
978
                        end)
979
                        while true do
980
                                if isLooping == false then
981
                                        break
982
                                end
983
                                Debounces.attackNumber = Debounces.attackNumber + 1
984
                                local aimPos = mouse.Hit.p
985
                                local head = Instance.new("Part",c)
986
                                head.Size = Vector3.new(12,.2,12)
987
                                head.CanCollide = false
988
                                head.Anchored = true
989
                                head.Transparency = 1
990
                                for i = 1,2 do
991
                                        local decal = Instance.new("Decal",head)
992
                                        decal.Texture = "rbxassetid://323497117"
993
                                        if i == 1 then
994
                                                decal.Face = Enum.NormalId.Top
995
                                        else
996
                                                decal.Face = Enum.NormalId.Bottom
997
                                        end
998
                                end
999
                                if Debounces.attackNumber%2 == 1 then
1000
                                        head.CFrame = CFrame.new(c.Torso.CFrame:toWorldSpace(CFrame.new(8,8,.5)).p,aimPos)
1001
                                else
1002
                                        head.CFrame = CFrame.new(c.Torso.CFrame:toWorldSpace(CFrame.new(-8,8,.5)).p,aimPos)
1003
                                end
1004
                                spawn(function()
1005
                                        local timer = 0
1006
                                        while rs.RenderStepped:wait() do
1007
                                                if timer >= 1.55 then
1008
                                                        break
1009
                                                end
1010
                                                head.CFrame = head.CFrame * CFrame.Angles(0,0,math.rad(timer * 25/(Debounces.FPS/60)))
1011
                                                timer = timer + 1/30/(Debounces.FPS/60)
1012
                                        end
1013
                                        head.CFrame = CFrame.new(head.CFrame.p,aimPos)
1014
                                        head:Destroy()
1015
                                        makeReflectionBeam(head.CFrame.p,(head.CFrame.p - aimPos).unit * -999,false)        
1016
                                end)
1017
                                
1018
                                wait()
1019
                                local s = Instance.new("Sound",head)
1020
                                s.Volume = 1
1021
                                s.SoundId = "rbxassetid://332223043"
1022
                                s.Pitch = 1.02
1023
                                s:Play()
1024
                                wait(.2)
1025
                        end
1026
                end
1027
        end)
1028
1029
        uinps.InputBegan:connect(function(InputObj)
1030
                if InputObj.KeyCode == Enum.KeyCode.E and Debounces.isAttacking == false and Debounces.isSprinting == true and Debounces.isPassive == true and Debounces.isTyping == false then
1031
                        Debounces.isAttacking = true
1032
                        local aimPos = c.HumanoidRootPart.CFrame:toWorldSpace(CFrame.new(0,0,-999)).p
1033
                        local head = Instance.new("Part",c)
1034
                        head.Size = Vector3.new(18,.2,18)
1035
                        head.CanCollide = false
1036
                        head.Anchored = true
1037
                        head.CFrame = CFrame.new(c.HumanoidRootPart.CFrame:toWorldSpace(CFrame.new(0,0,-9)).p,aimPos)
1038
                        head.Transparency = 1
1039
                        for i = 1,2 do
1040
                                local decal = Instance.new("Decal",head)
1041
                                decal.Texture = "rbxassetid://323497117"
1042
                                if i == 1 then
1043
                                        decal.Face = Enum.NormalId.Top
1044
                                else
1045
                                        decal.Face = Enum.NormalId.Bottom
1046
                                end
1047
                        end
1048
                        setLerp(.1)
1049
                        setJointCFrames({
1050
                                CFrame.new(Vector3.new(0, 0, 0)) * CFAngles(Vector3.new(0, 0, 0));
1051
                                CFrame.new(Vector3.new(0, 1.499, -0.09)) * CFAngles(Vector3.new(-11.676, -0.001, -0.001));
1052
                                CFrame.new(Vector3.new(-1.7, 0, 0)) * CFAngles(Vector3.new(-12.808, -28.88, -21.502));
1053
                                CFrame.new(Vector3.new(1.699, 1.2, 0.599)) * CFAngles(Vector3.new(-146.606, 16.571, 13.928));
1054
                                CFrame.new(Vector3.new(-0.501, -1.601, 0.6)) * CFAngles(Vector3.new(-60, 0, -0.001));
1055
                                CFrame.new(Vector3.new(0.5, -1.4, -0.4)) * CFAngles(Vector3.new(-15.001, -15.001, 0));
1056
                        })
1057
                        spawn(function()
1058
                                local timer = 0
1059
                                while rs.RenderStepped:wait() do
1060
                                        if timer >= 1.55/.8 then
1061
                                                break
1062
                                        end
1063
                                        head.CFrame = head.CFrame * CFrame.Angles(0,0,math.rad(timer * 25/(Debounces.FPS/60)))
1064
                                        timer = timer + 1/30/(Debounces.FPS/60)
1065
                                end
1066
                                head.CFrame = CFrame.new(head.CFrame.p,aimPos)
1067
                                head:Destroy()
1068
                                makeReflectionBeam(head.CFrame.p,(head.CFrame.p - aimPos).unit * -999,true)
1069
                        end)
1070
                        wait()
1071
                        local s = Instance.new("Sound",head)
1072
                        s.Volume = 2
1073
                        s.SoundId = "rbxassetid://332223043"
1074
                        s.Pitch = .8
1075
                        s:Play()
1076
                        wait(.75)
1077
                        setLerp(.17)
1078
                        setJointCFrames({
1079
                                CFrame.new(Vector3.new(0, -.5, 0)) * CFAngles(Vector3.new(-20, 15, 0));
1080
                                CFrame.new(Vector3.new(0, 1.499, -0.09)) * CFAngles(Vector3.new(-11.676, 14.999, -0.001));
1081
                                CFrame.new(Vector3.new(-1.7, 0, 0.2)) * CFAngles(Vector3.new(-33.928, -4.374, -38.76));
1082
                                CFrame.new(Vector3.new(1.499, 0.4, -0.601)) * CFAngles(Vector3.new(74.335, 25.091, -6.155));
1083
                                CFrame.new(Vector3.new(-0.501, -1.601, 0.6)) * CFAngles(Vector3.new(-45, 0, -0.001));
1084
                                CFrame.new(Vector3.new(0.5, -1.8, -0.4)) * CFAngles(Vector3.new(-15, -15, 0));
1085
                        })
1086
                        wait(.5)
1087
                        Debounces.isAttacking = false
1088
                end
1089
        end)
1090
1091
        uinps.InputBegan:connect(function(InputObj)
1092
                if InputObj.KeyCode == Enum.KeyCode.Slash then
1093
                        local finishEvent = nil
1094
                        Debounces.isTyping = true
1095
                        finishEvent = uinps.InputBegan:connect(function(InputObj)
1096
                                if InputObj.KeyCode == Enum.KeyCode.Return or InputObj.UserInputType == Enum.UserInputType.MouseButton1 then
1097
                                        Debounces.isTyping = false
1098
                                        finishEvent:disconnect()
1099
                                end
1100
                        end)
1101
                end
1102
        end)
1103
1104
        uinps.InputBegan:connect(function(InputObj)
1105
                if InputObj.KeyCode == Enum.KeyCode.LeftShift then
1106
                        Debounces.isSprinting = true
1107
                end
1108
        end)
1109
1110
        uinps.InputEnded:connect(function(InputObj)
1111
                if InputObj.KeyCode == Enum.KeyCode.LeftShift then
1112
                        Debounces.isSprinting = false
1113
                end
1114
        end)
1115
1116
        rs.RenderStepped:connect(function()
1117
                Debounces.FPS = 1/rs.RenderStepped:wait()
1118
                local FPSLerp = AnimStat.lerpSpeed/(Debounces.FPS/60)
1119
                if Debounces.isPassive == false then
1120
                        fire.Enabled = false
1121
                        light.Range = 0
1122
                        fight:Pause()
1123
                        sans:Resume()
1124
                        efxBlock.Transparency = 1
1125
                else
1126
                        fire.Enabled = true
1127
                        light.Range = 10
1128
                        fight:Resume()
1129
                        sans:Pause()
1130
                        efxBlock.Transparency = 0
1131
                end
1132
                for i,v in pairs (rayModel:children()) do
1133
                        if v.Transparency >= 1 then
1134
                                v:Destroy()
1135
                        else
1136
                                v.CanCollide = true
1137
                                local parts = v:GetTouchingParts()
1138
                                v.CanCollide = false
1139
                                for i = 1,#parts do
1140
                                        if parts[i].Parent:FindFirstChild("Humanoid") and parts[i].Parent ~= c and v.Name ~= "Punch" then
1141
                                                parts[i].Parent.Humanoid:TakeDamage(3/(Debounces.FPS/60))
1142
                                        elseif parts[i].Parent:FindFirstChild("Humanoid") and parts[i].Parent ~= c and v.Name == "Punch" then
1143
                                                parts[i].Parent:BreakJoints()
1144
												parts[i].Parent.Humanoid.PlatformStand = true
1145
                                        end
1146
                                end
1147
								if v.Name == "Punch" then
1148
                              	    v.Size = v.Size + Vector3.new(-5/(Debounces.FPS/60),-5/(Debounces.FPS/60),100)
1149
								else
1150
									v.Size = v.Size + Vector3.new(1/(Debounces.FPS/60),1/(Debounces.FPS/60),0)
1151
								end
1152
                                v.Transparency = v.Transparency + .05/(Debounces.FPS/60)
1153
                        end
1154
                end
1155
                for i = 1,#Joints do
1156
                        Joints[i].C0 = Joints[i].C0:lerp(JointTargets[i], FPSLerp)
1157
                end
1158
                local sineval = math.sin(tick() * 2) * 3
1159
                fire.Acceleration = Vector3.new(sineval,1,sineval)
1160
                light.Brightness = math.sin(math.cos(tick() * 2) * 1.5)
1161
        end)