View difference between Paste ID: TZwuTJm2 and jBQBd7gE
SHOW: | | - or go back to the newest paste.
1
 if game:GetService("RunService"):IsClient() then error("Please run as a server script. Use h/ instead of hl/.") end
2
print("FE Compatibility: by WaverlyCole & Mokiros")
3
InternalData = {}
4
do
5
	script.Parent = owner.Character
6
	local Event = Instance.new("RemoteEvent")
7
	Event.Name = "UserInput"
8
	local function NewFakeEvent()
9
		local Fake = {fakeEvent=true,Connect=function(self,Func)self.Function=Func end}Fake.connect = Fake.Connect
10
		return Fake
11
	end
12
	local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()}
13
	local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()}
14
	local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
15
		self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
16
	end};ContextActionService.UnBindAction = ContextActionService.BindAction
17
	local function TriggerEvent(self,Event,...)
18
		local Trigger = Mouse[Event]
19
		if Trigger and Trigger.fakeEvent and Trigger.Function then
20
			Trigger.Function(...)
21
		end
22
	end
23
	Mouse.TrigEvent = TriggerEvent
24
	UserInputService.TrigEvent = TriggerEvent
25
	Event.OnServerEvent:Connect(function(FiredBy,Input)
26
		if FiredBy.Name ~= owner.Name then end
27
		if Input.MouseEvent then
28
			Mouse.Target = Input.Target
29
			Mouse.Hit = Input.Hit
30
		else
31
			local Begin = Input.UserInputState == Enum.UserInputState.Begin
32
			if Input.UserInputType == Enum.UserInputType.MouseButton1 then
33
				return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up")
34
			end
35
			for _,Action in pairs(ContextActionService.Actions) do
36
				for _,Key in pairs(Action.Keys) do
37
					if Key==Input.KeyCode then
38
						Action.Function(Action.Name,Input.UserInputState,Input)
39
					end
40
				end
41
			end
42
			Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower())
43
			UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false)
44
		end
45
	end)
46
	InternalData["Mouse"] = Mouse
47
	InternalData["ContextActionService"] = ContextActionService
48
	InternalData["UserInputService"] = UserInputService
49
	Event.Parent = NLS([[
50
		local Player = owner
51
		local Event = script:WaitForChild("UserInput")
52
		local UserInputService = game:GetService("UserInputService")
53
		local Mouse = Player:GetMouse()
54
		local Input = function(Input,gameProcessedEvent)
55
			if gameProcessedEvent then return end
56
			Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
57
		end
58
		UserInputService.InputBegan:Connect(Input)
59
		UserInputService.InputEnded:Connect(Input)
60
		local Hit,Target
61
		while wait(1/30) do
62
			if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
63
				Hit,Target = Mouse.Hit,Mouse.Target
64
				Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
65
			end
66
		end
67
	]],owner.Character)
68
end
69
RealGame = game;game = setmetatable({},{
70
	__index = function (self,Index)
71
		local Sandbox = function (Thing)
72
			if Thing:IsA("Player") then
73
				local RealPlayer = Thing
74
				return setmetatable({},{
75
					__index = function (self,Index)
76
						local Type = type(RealPlayer[Index])
77
						if Type == "function" then
78
							if Index:lower() == "getmouse" or Index:lower() == "mouse" then
79
								return function (self)
80
									return InternalData["Mouse"]
81
								end
82
							end
83
							return function (self,...)
84
								return RealPlayer[Index](RealPlayer,...)
85
							end
86
						else
87
							if Index == "PlrObj" then
88
								return RealPlayer
89
							end
90
							return RealPlayer[Index]
91
						end
92
					end;
93
					__tostring = function(self)
94
						return RealPlayer.Name
95
					end
96
				})
97
			end
98
		end
99
		if RealGame[Index] then
100
			local Type = type(RealGame[Index])
101
			if Type == "function" then
102
				if Index:lower() == "getservice" or Index:lower() == "service" then
103
					return function (self,Service)
104
						if Service:lower() == "players" then
105
							return setmetatable({},{
106
								__index = function (self2,Index2)
107
									local RealService = RealGame:GetService(Service)
108
									local Type2 = type(Index2)
109
									if Type2 == "function" then
110
										return function (self,...)
111
											return RealService[Index2](RealService,...)
112
										end
113
									else
114
										if Index2:lower() == "localplayer" then
115
											return Sandbox(owner)
116
										end
117
										return RealService[Index2]
118
									end
119
								end;
120
								__tostring = function(self)
121
									return RealGame:GetService(Service).Name
122
								end
123
							})
124
						elseif Service:lower() == "contextactionservice" then
125
							return InternalData["ContextActionService"]
126
						elseif Service:lower() == "contextactionservice" then
127
							return InternalData["UserInputService"]
128
						elseif Service:lower() == "runservice" then
129
							return setmetatable({},{
130
								__index = function(self2,Index2)
131
									local RealService = RealGame:GetService(Service)
132
									local Type2 = type(Index2)
133
									if Type2 == "function" then
134
										return function (self,...)
135
											return RealService[Index2](RealService,...)
136
										end
137
									else
138
										if Index2:lower() == "bindtorenderstep" then
139
											return function (self,Name,Priority,Function)
140
												return RealGame:GetService("RunService").Stepped:Connect(Function)
141
											end
142
										end
143
										if Index2:lower() == "renderstepped" then
144
											return RealService["Stepped"]
145
										end
146
										return RealService[Index2]
147
									end
148
								end
149
							})
150
						else
151
							return RealGame:GetService(Service)
152
						end
153
					end
154
				end
155
				return function (self,...)
156
					return RealGame[Index](RealGame,...)
157
				end
158
			else
159
				if game:GetService(Index) then
160
					return game:GetService(Index)
161
				end
162
				return RealGame[Index]
163
			end
164
		else
165
			return nil
166
		end
167
	end
168
});Game = game;owner = game:GetService("Players").LocalPlayer;script = {}
169
print("Complete! Running...")
170
171
pls=game:GetService'Players';
172
rs=game:GetService'RunService';
173
uinps=game:GetService'UserInputService';
174
lp=pls.LocalPlayer;
175
mouse=lp:GetMouse();
176
c=lp.Character;
177
rayModel=Instance.new('Model',c);
178
human=c.Humanoid;
179
Cone=nil;
180
human.MaxHealth=5000;
181
wait();
182
human.Health=5000;
183
c.Health:Destroy();
184
Debounces={
185
FPS=0;
186
isAttacking=false;
187
isMoving=false;
188
isSprinting=false;
189
Debounce=false;
190
isTyping=false;
191
isJumping=false;
192
isFlash=false;
193
};
194
numLerp=function(start,goal,alpha)
195
return(((goal-start)*alpha)+start);
196
end;
197
CFrameZero=function()
198
return CFrame.new(Vector3.new());
199
end;
200
local function a()
201
local t=tick();
202
local l=t%1*3;
203
local t=.5*math.pi*(l%1);
204
if l<1 then
205
return Color3.new(1,1-math.cos(t),1-math.sin(t));
206
elseif l<2 then
207
return Color3.new(1-math.sin(t),1,1-math.cos(t));
208
else
209
return Color3.new(1-math.cos(t),1-math.sin(t),1);
210
end;
211
end;
212
rad=function(value)
213
return math.rad(value);
214
end;
215
CFAngles=function(Vector)
216
return CFrame.Angles(rad(Vector.x),rad(Vector.y),rad(Vector.z));
217
end;
218
AnimStat={
219
lerpSpeed=.2;
220
lerpSpeed2=.35;
221
lerpTween=0;
222
};
223
Joints={
224
c.HumanoidRootPart.RootJoint;
225
c.Torso.Neck;
226
c.Torso['Left Shoulder'];
227
c.Torso['Right Shoulder'];
228
c.Torso['Left Hip'];
229
c.Torso['Right Hip'];
230
};
231
JointTargets={
232
CFrameZero();
233
CFrameZero();
234
CFrameZero();
235
CFrameZero();
236
CFrameZero();
237
CFrameZero();
238
};
239
prepareCharacter=function()
240
music=Instance.new('Sound',c.HumanoidRootPart);
241
music.SoundId='rbxassetid://394144904';
242
music.Looped=true;
243
music.Volume=.6;
244
music2=Instance.new('Sound',c);
245
music2.SoundId='rbxassetid://259613634';
246
music2.Looped=true;
247
music2.Volume=1;
248
music3=Instance.new('Sound',c.HumanoidRootPart);
249
music3.SoundId='rbxassetid://266530326';
250
music3.Looped=true;
251
music3.Volume=1;
252
music4=Instance.new('Sound',c.HumanoidRootPart);
253
music4.SoundId='rbxassetid://155738252';
254
music4.Looped=true;
255
music4.Volume=1;
256
music5=Instance.new('Sound',c.HumanoidRootPart);
257
music5.SoundId='rbxassetid://215391212';
258
music5.Looped=true;
259
music5.Volume=1;
260
human.WalkSpeed=0;
261
human.JumpPower=0;
262
for i,v in pairs(c:children())do
263
if v:isA'Hat'then v:Destroy();end;
264
if v:FindFirstChild'roblox'then v.roblox:Destroy();end;
265
if v.Name=='Head'then v.Transparency=1 for _,x in pairs(v:children())do if x.ClassName=='Sound'then x:Destroy();end;end;end;
266
if v:FindFirstChild'face'then v.face:Destroy();end;
267
if v:isA'Part'then v.BrickColor=BrickColor.new'White';end;
268
end
269
local shirt=c:FindFirstChild'Shirt'or Instance.new('Shirt',c);
270
local pants=c:FindFirstChild'Pants'or Instance.new('Pants',c);
271
shirt.ShirtTemplate='rbxassetid://334755544';
272
pants.PantsTemplate='rbxassetid://315964941';
273
local Head=Instance.new('Part',c);
274
Head.Size=Vector3.new(2.5,2.5,1);
275
Head.Transparency=1;
276
Head:BreakJoints();
277
local hw=Instance.new('Weld',c.Head);
278
hw.Part0=c.Head;
279
hw.Part1=Head;
280
hw.C0=CFrame.new(0,.3,0);
281
faceDecal=Instance.new('Decal',Head);
282
faceDecal.Face=Enum.NormalId.Front;
283
faceDecal.Texture='rbxassetid://400387868';
284
local backDecal=Instance.new('Decal',Head);
285
backDecal.Face=Enum.NormalId.Back;
286
backDecal.Texture='rbxassetid://400377807';
287
local mes=Instance.new('BlockMesh',Head);
288
mes.Scale=Vector3.new(1,1,.4);
289
local Anim=human:FindFirstChild'Animator'
290
if Anim then Anim:Destroy();end;
291
end;
292
setJointCFrames=function(table)
293
for i=1,#table do
294
JointTargets[i]=table[i];
295
end;
296
end;
297
triWave=function(x)
298
local pi2=math.pi/2;
299
return math.abs((x/pi2)%4-2)-1;
300
end;
301
setLerp=function(speed)
302
AnimStat.lerpSpeed=speed;
303
end;
304
setTween=function(tween)
305
AnimStat.lerpTween=tween;
306
end;
307
playSound=function(id,part,vol,pitch)
308
local vol=vol or 1;
309
local pitch=pitch or 1;
310
local x=Instance.new('Sound',part);
311
x.Volume=vol;
312
x.Pitch=pitch;
313
x.SoundId='rbxassetid://'..id;
314
spawn(function()
315
wait();
316
x:Play();
317
wait(x.TimeLength+.2);
318
x:Destroy();
319
end);
320
end;
321
lerpBoom=function()
322
if Cone then
323
Cone.CFrame=CFrame.new(c.HumanoidRootPart.CFrame.p,c.HumanoidRootPart.CFrame.p+c.HumanoidRootPart.Velocity)*CFrame.Angles(-math.pi/2,0,0);
324
cMesh.Scale=Vector3.new(20,20+c.HumanoidRootPart.Velocity.magnitude/10,20);
325
Cone.Transparency=1-c.HumanoidRootPart.Velocity.magnitude/1000;
326
else
327
Cone=Instance.new('Part',c);
328
Cone.Anchored=true;
329
Cone.CanCollide=false;
330
Cone.Transparency=math.random(50,70)/100;
331
Cone.Size=Vector3.new(1,1,1);
332
Cone.CFrame=CFrame.new(c.HumanoidRootPart.CFrame.p,c.HumanoidRootPart.CFrame.p+c.HumanoidRootPart.Velocity)*CFrame.Angles(-math.pi/2,0,0);
333
cMesh=Instance.new('SpecialMesh',Cone);
334
cMesh.MeshId='rbxassetid://1033714';
335
cMesh.Scale=Vector3.new(20,50,20);
336
end;
337
end;
338
noBoom=function()
339
if Cone then local x=Cone Cone=nil;
340
for i=1,20 do
341
wait();
342
x.Mesh.Scale=x.Mesh.Scale+Vector3.new(-.5,1,-.5);
343
x.Transparency=x.Transparency+1/30;
344
end;
345
end;
346
end;
347
gasterBlast=function(tCFrame,aimPos,charge)
348
local aimTarget;
349
if aimPos then
350
aimTarget=CFrame.new(tCFrame,aimPos);
351
else
352
aimTarget=tCFrame;
353
end;
354
local gast=Instance.new('Part',c);
355
gast.Size=Vector3.new(12,.2,12);
356
gast.CanCollide=false;
357
gast.Anchored=true;
358
gast.Transparency=1;
359
if charge then
360
playSound(400523331,gast,math.random(90,110)/100);
361
end;
362
wait();
363
for i=1,2 do
364
local decal=Instance.new('Decal',gast);
365
decal.Texture='rbxassetid://323497117';
366
if i==1 then
367
decal.Face=Enum.NormalId.Top;
368
else
369
decal.Face=Enum.NormalId.Bottom;
370
end;
371
end;
372
gast.CFrame=CFrame.new(aimTarget.p-Vector3.new(math.sin(tick()*10)*10,20,math.cos(tick()*10)*10));
373
spawn(function()
374
local tarCFrame=gast.CFrame;
375
local isLooping=true;
376
spawn(function()
377
while rs.RenderStepped:wait()and isLooping do
378
gast.CFrame=gast.CFrame:lerp(tarCFrame,.6/(Debounces.FPS/60));
379
end;
380
end);
381
for i=1,30 do
382
wait();
383
tarCFrame=gast.CFrame:lerp(aimTarget,.24);
384
end;
385
playSound(340722848,gast,math.random(90,110)/100);
386
isLooping=false;
387
wait(.08);
388
local ray=Ray.new(aimTarget.p,aimTarget.lookVector.unit*999);
389
local _,pos=workspace:FindPartOnRay(ray,c);
390
local dis=(aimTarget.p-pos).magnitude;
391
local rayCFrame=CFrame.new(gast.CFrame.p+(pos-gast.CFrame.p).unit*(dis/2+200),gast.CFrame.p+(pos-gast.CFrame.p).unit*dis*2)*CFrame.Angles(0,math.pi/2,0);
392
local rayPart=Instance.new('Part',rayModel);
393
rayPart.Material='Neon';
394
rayPart.FormFactor='Custom';
395
rayPart.Color=a();
396
rayPart.Anchored=true;
397
rayPart.CanCollide=false;
398
rayPart.Shape='Cylinder';
399
rayPart.Size=Vector3.new(dis+400,8,8);
400
rayPart.CFrame=rayCFrame;
401
gast:Destroy();
402
end);
403
end;
404
largegasterBlast=function(tCFrame,aimPos)
405
local aimTarget;
406
if aimPos then
407
aimTarget=CFrame.new(tCFrame,aimPos);
408
else
409
aimTarget=tCFrame;
410
end;
411
local gast=Instance.new('Part',c);
412
gast.Size=Vector3.new(25,.2,25);
413
gast.CanCollide=false;
414
gast.Anchored=true;
415
gast.Transparency=1;
416
playSound(400523331,gast,math.random(85,97)/100);
417
wait();
418
for i=1,2 do
419
local decal=Instance.new('Decal',gast);
420
decal.Texture='rbxassetid://323497117';
421
if i==1 then
422
decal.Face=Enum.NormalId.Top;
423
else
424
decal.Face=Enum.NormalId.Bottom;
425
end;
426
end;
427
gast.CFrame=CFrame.new(aimTarget.p-Vector3.new(math.sin(tick()*10)*10,20,math.cos(tick()*10)*10));
428
spawn(function()
429
local tarCFrame=gast.CFrame;
430
local isLooping=true;
431
spawn(function()
432
while rs.RenderStepped:wait()and isLooping do
433
gast.CFrame=gast.CFrame:lerp(tarCFrame,.6/(Debounces.FPS/60));
434
end;
435
end);
436
for i=1,40 do
437
wait();
438
tarCFrame=gast.CFrame:lerp(aimTarget,.18);
439
end;
440
playSound(340722848,gast,math.random(80,95)/100);
441
isLooping=false;
442
wait(.08);
443
local ray=Ray.new(aimTarget.p,aimTarget.lookVector.unit*999);
444
local _,pos=workspace:FindPartOnRay(ray,c);
445
local dis=(aimTarget.p-pos).magnitude;
446
local rayCFrame=CFrame.new(gast.CFrame.p+(pos-gast.CFrame.p).unit*(dis/2+200),gast.CFrame.p+(pos-gast.CFrame.p).unit*dis*2)*CFrame.Angles(0,math.pi/2,0);
447
local rayPart=Instance.new('Part',rayModel);
448
rayPart.Material='Neon';
449
rayPart.FormFactor='Custom';
450
rayPart.Color=a();
451
rayPart.Anchored=true;
452
rayPart.CanCollide=false;
453
rayPart.Shape='Cylinder';
454
rayPart.Size=Vector3.new(dis+400,17,17);
455
rayPart.CFrame=rayCFrame;
456
gast:Destroy();
457
end);
458
end;
459
prepareCharacter();
460
spawn(function()
461
local sine=0;
462
while wait()do
463
if Debounces.isFlash then
464
if(tick()*8)%2>1 then
465
faceDecal.Texture='rbxassetid://400377503';
466
else
467
faceDecal.Texture='rbxassetid://400387868';
468
end;
469
else
470
faceDecal.Texture='rbxassetid://400387868';
471
end;
472
if Debounces.isAttacking==false and Debounces.isMoving==false and Debounces.Debounce==false and Debounces.isJumping==false then
473
setLerp(.8);
474
local spasm=math.abs(math.sin(tick()*20))*1.1;
475
local spasm2=math.abs(math.sin(tick()*20-2))*1.1;
476
local spasm3=math.abs(math.sin(tick()*20-2.3))*1.1;
477
setJointCFrames({
478
CFrame.new(Vector3.new(0,0-spasm,0))*CFAngles(Vector3.new(0,0,0));
479
CFrame.new(Vector3.new(0,1.5,0))*CFAngles(Vector3.new(-0.011,-0.502,-1.177));
480
CFrame.new(Vector3.new(-1.5-spasm2^2/3,-0.001,0))*CFAngles(Vector3.new(-2.344,7.899,-2.82+spasm3^2*-60));
481
CFrame.new(Vector3.new(1.569+spasm2^2/3,0,-0.1))*CFAngles(Vector3.new(4.822,1.123,6.383+spasm3^2*60));
482
CFrame.new(Vector3.new(-0.61,-2+spasm/1.01,-.15))*CFAngles(Vector3.new(-2.206,0.767,-0.582));
483
CFrame.new(Vector3.new(0.55,-2+spasm/1.01,-.1))*CFAngles(Vector3.new(-0.026,0.463,3.184));
484
});
485
elseif Debounces.isAttacking==false and Debounces.isMoving==true and Debounces.Debounce==false and Debounces.isSprinting==false and Debounces.isJumping==false then
486
sine=tick()*18;
487
human.WalkSpeed=120;
488
setLerp(.35);
489
setJointCFrames({
490
CFrame.new(Vector3.new(0,math.sin(sine)/50-.3,0))*CFAngles(Vector3.new(-30-math.sin(sine*2)*3,math.sin(sine*2)*15,0));
491
CFrame.new(Vector3.new(0,1.48,0.099))*CFAngles(Vector3.new(14.999,-0.001,0));
492
CFrame.new(Vector3.new(-1.5,-0.001,0.2+math.sin(sine*2+math.pi)*1.2))*CFAngles(Vector3.new(-25.001+math.sin(sine*2+math.pi)*-90,0,-15));
493
CFrame.new(Vector3.new(1.5,-0.001,0.2+math.sin(sine*2)*1.2))*CFAngles(Vector3.new(-25+math.sin(sine*2)*-90,-0.001,14.999));
494
CFrame.new(Vector3.new(-0.501,-2+math.cos(sine*2+math.pi)/3,.3+math.sin(sine*2)))*CFAngles(Vector3.new(-25+math.sin(sine*2)*-70,0,-0.001));
495
CFrame.new(Vector3.new(0.499,-2+math.cos(sine*2)/3,.3+math.sin(sine*2+math.pi)))*CFAngles(Vector3.new(-25+math.sin(sine*2)*70,0,0));
496
});
497
elseif Debounces.isAttacking==false and Debounces.isMoving==true and Debounces.Debounce==false and Debounces.isSprinting==true and Debounces.isJumping==false then
498
sine=tick()*28;
499
human.WalkSpeed=400;
500
lerpBoom();
501
setLerp(.65);
502
setJointCFrames({
503
CFrame.new(Vector3.new(0,math.sin(sine)/50-.3,0))*CFAngles(Vector3.new(-30-math.sin(sine*2)*3,math.sin(sine*2)*15,0));
504
CFrame.new(Vector3.new(0,1.48,0.099))*CFAngles(Vector3.new(14.999,-0.001,0));
505
CFrame.new(Vector3.new(-1.5,-0.001,0.2+math.sin(sine*2+math.pi)*1.2))*CFAngles(Vector3.new(-25.001+math.sin(sine*2+math.pi)*-90,0,-15));
506
CFrame.new(Vector3.new(1.5,-0.001,0.2+math.sin(sine*2)*1.2))*CFAngles(Vector3.new(-25+math.sin(sine*2)*-90,-0.001,14.999));
507
CFrame.new(Vector3.new(-0.501,-2+math.cos(sine*2+math.pi)/3,.3+math.sin(sine*2)))*CFAngles(Vector3.new(-25+math.sin(sine*2)*-70,0,-0.001));
508
CFrame.new(Vector3.new(0.499,-2+math.cos(sine*2)/3,.3+math.sin(sine*2+math.pi)))*CFAngles(Vector3.new(-25+math.sin(sine*2)*70,0,0));
509
});
510
elseif Debounces.isJumping==true and Debounces.Debounce==false then
511
setLerp(.14);
512
human.WalkSpeed=45;
513
setJointCFrames({
514
CFrame.new(Vector3.new(0,0,0))*CFAngles(Vector3.new(-8,0,0));
515
CFrame.new(Vector3.new(0,1.5,-0.15))*CFAngles(Vector3.new(-10.138,3.687,0.306));
516
CFrame.new(Vector3.new(-1.23,0.069,-0.56))*CFAngles(Vector3.new(50.809,0.672,18.704));
517
CFrame.new(Vector3.new(0.929,-0.031,-1.0912))*CFAngles(Vector3.new(63.00,13.85,-36.416));
518
CFrame.new(Vector3.new(-0.63,-1.82,-0.74))*CFAngles(Vector3.new(31.324,3.424,-1.249));
519
CFrame.new(Vector3.new(0.619,-1.331,0.82))*CFAngles(Vector3.new(-59.644,0.998,9.776));
520
});
521
end;
522
end;
523
end);
524
human.Changed:connect(function(prop)
525
if prop=='MoveDirection'then
526
if human.MoveDirection.magnitude>.02 then
527
Debounces.isMoving=true;
528
else
529
Debounces.isMoving=false;
530
end;
531
end;
532
end);
533
uinps.InputBegan:connect(function(InputObj)
534
if InputObj.KeyCode==Enum.KeyCode.Slash then
535
local finishEvent=nil;
536
Debounces.isTyping=true
537
finishEvent=uinps.InputBegan:connect(function(InputObj)
538
if InputObj.KeyCode==Enum.KeyCode.Return or InputObj.UserInputType==Enum.UserInputType.MouseButton1 then
539
Debounces.isTyping=false;
540
finishEvent:disconnect();
541
end;
542
end);
543
end;
544
end);
545
mouse.KeyDown:connect(function(key)
546
if key=='0'then
547
Debounces.isSprinting=true;
548
playSound(160248522,c.Torso);
549
for i=1,3 do
550
spawn(function()
551
local e=Instance.new('Part',c);
552
e.Size=Vector3.new(1,1,1);
553
e.Material='Neon';
554
e.Color=a();
555
e.Anchored=true;
556
e.CFrame=c.HumanoidRootPart.CFrame*CFrame.Angles(0,0,-math.pi/2);
557
e.CanCollide=false;
558
local rm=Instance.new('SpecialMesh',e);
559
rm.MeshType='FileMesh';
560
rm.MeshId='rbxassetid://3270017';
561
rm.Scale=Vector3.new(3.2,3.2,10);
562
for x=1,30 do
563
wait();
564
rm.Scale=rm.Scale:lerp(Vector3.new(i*30,i*30,(4-i)*450),.1);
565
e.Transparency=x/30+.5;
566
end;
567
end);
568
end;
569
c.HumanoidRootPart.Velocity=c.HumanoidRootPart.CFrame.lookVector*200;
570
end;
571
end);
572
mouse.KeyUp:connect(function(key)
573
if key=='0'then
574
Debounces.isSprinting=false;
575
end;
576
end);
577
mouse.KeyDown:connect(function(key)
578
if key=='v'then
579
playSound(201858087,c.Torso,math.random(90,120)/100);
580
local oldPos=c.HumanoidRootPart.CFrame.p;
581
local mHit=mouse.Hit.p;
582
for i=1,2 do
583
spawn(function()
584
local pos
585
if i==1 then pos=oldPos else pos=mHit end
586
local p=Instance.new('Part',workspace);
587
p.Anchored=true;
588
p.CanCollide=false;
589
p.Color=a();
590
p.FormFactor='Custom';
591
p.CFrame=CFrame.new(pos+Vector3.new(0,500,0));
592
p.Transparency=.4;
593
p.Size=Vector3.new(20,1000,20);
594
for i=1,20 do
595
wait();
596
p.Transparency=.4+(i/10)*.6;
597
p.Size=Vector3.new(20-i*1.5,1000,20-i*1.5);
598
p.CFrame=CFrame.new(pos+Vector3.new(0,500,0));
599
end;
600
p:Destroy();
601
end);
602
end;
603
if Debounces.isMoving then
604
c.HumanoidRootPart.CFrame=CFrame.new(mouse.Hit.p+Vector3.new(0,4,0),Vector3.new(c.HumanoidRootPart.Velocity.x,mouse.Hit.p.y+4,c.HumanoidRootPart.Velocity.z));
605
else
606
c.HumanoidRootPart.CFrame=CFrame.new(mouse.Hit.p+Vector3.new(0,4,0),Vector3.new(oldPos.x,mouse.Hit.p.y+4,oldPos.z));
607
end;
608
end;
609
end);
610
mouse.KeyDown:connect(function(key)
611
if key=='r'then
612
local pointTarget=mouse.Hit.p;
613
for i=1,20 do
614
wait();
615
gasterBlast(CFrame.new(pointTarget+Vector3.new(math.sin(tick()*10)*20,5+math.abs(math.sin(tick()*5)*10),math.cos(tick()*10)*20),pointTarget));
616
end;
617
wait();
618
largegasterBlast(CFrame.new(pointTarget+Vector3.new(0,35,0),pointTarget));
619
end;
620
end);
621
mouse.KeyDown:connect(function(key)
622
if key=='f'then
623
local pointTarget=mouse.Hit.p;
624
for i=1,20 do
625
wait();
626
gasterBlast(CFrame.new(c.HumanoidRootPart.CFrame.p+Vector3.new(0,50,0),pointTarget):toWorldSpace(CFrame.new(math.sin(i/2)*(20-i),math.cos(i/2)*(20-i),-i)));
627
end;
628
largegasterBlast(CFrame.new(c.HumanoidRootPart.CFrame.p+Vector3.new(0,50,0),pointTarget):toWorldSpace(CFrame.new(0,0,-25)));
629
end;
630
end);
631
mouse.Button1Down:connect(function()
632
Debounces.isFlash=true;
633
end);
634
mouse.Button1Up:connect(function()
635
Debounces.isFlash=false;
636
end);
637
mouse.KeyDown:connect(function(key)
638
if key=='k'then
639
if music.isPlaying then music:Stop();else music:Play();end;
640
end;
641
end);
642
mouse.KeyDown:connect(function(key)
643
if key=='j'then
644
if music2.isPlaying then music2:Stop();else music2:Play();end;
645
end;
646
end);
647
mouse.KeyDown:connect(function(key)
648
if key=='l'then
649
if music3.isPlaying then music3:Stop();else music3:Play();end;
650
end;
651
end);
652
mouse.KeyDown:connect(function(key)
653
if key=='p'then
654
if music4.isPlaying then music4:Stop();else music4:Play();end;
655
end;
656
end);
657
mouse.KeyDown:connect(function(key)
658
if key=='o'then
659
if music5.isPlaying then music4:Stop();else music5:Play();end;
660
end;
661
end);
662
mouse.KeyDown:connect(function(key)
663
if key=='e'then
664
gasterBlast(c.Torso.CFrame.p+Vector3.new(math.sin(tick()*10)*10,12,math.cos(tick()*10)*10),mouse.Hit.p,true);
665
end;
666
end);
667
mouse.KeyDown:connect(function(key)
668
if key=='c'then
669
largegasterBlast(c.Torso.CFrame.p+Vector3.new(math.sin(tick()*10)*10,12,math.cos(tick()*10)*10),mouse.Hit.p);
670
end;
671
end);
672
mouse.KeyDown:connect(function(key)
673
if key=='q'then
674
for i=1,5 do
675
wait();
676
gasterBlast(c.Torso.CFrame.p+Vector3.new(math.sin(tick()*10)*10,12,math.cos(tick()*10)*10),mouse.Hit.p);
677
end;
678
largegasterBlast(c.Torso.CFrame.p+Vector3.new(0,25,0),mouse.Hit.p);
679
end;
680
end);
681
mouse.KeyDown:connect(function(key)
682
if key=='t'then
683
local pointTarget=mouse.Hit.p;
684
for i=1,20 do
685
gasterBlast(pointTarget+Vector3.new(math.sin(math.deg((360/40)*i))*(20-i),5+i,math.cos(math.deg((360/40)*i))*(20-i)),pointTarget);
686
end;
687
wait(.2);
688
for i=1,10 do
689
largegasterBlast(pointTarget+Vector3.new(math.sin(math.deg((360/20)*i))*25,20,math.cos(math.deg((360/20)*i))*25),pointTarget);
690
end;
691
end;
692
end);
693
human.StateChanged:connect(function(os,ns)
694
if c.HumanoidRootPart.Velocity.Y<.1 and Debounces.isJumping==true and ns==Enum.HumanoidStateType.Landed then
695
Debounces.isJumping=false;
696
end;
697
end);
698
for i=1,#Joints do
699
Joints[i].C1=CFrameZero();
700
end;
701
rs.RenderStepped:connect(function()
702
Debounces.FPS=1/rs.RenderStepped:wait();
703
if Debounces.FPS<30 then
704
Debounces.FPS=30;
705
end;
706
if Debounces.isSprinting then
707
lerpBoom();
708
else
709
noBoom();
710
end;
711
for _,v in pairs(rayModel:children())do
712
v.Transparency=v.Transparency+.06/(Debounces.FPS/60);
713
if v.Transparency>.99 then v:Destroy();return;end;
714
v.CanCollide=true;
715
local tParts=v:GetTouchingParts();
716
v.CanCollide=false;
717
local vCFrame=v.CFrame;
718
v.Size=v.Size+Vector3.new(0,1,1)/(Debounces.FPS/60);
719
v.CFrame=vCFrame;
720
for _,x in pairs(tParts)do
721
if x and x.Parent and x.Parent:FindFirstChild'Humanoid'and x.Parent.Humanoid:isA'Humanoid'and x.Parent~=c then
722
x.Parent.Humanoid:TakeDamage(1,2);
723
end;
724
end;
725
end;
726
local FPSLerp=AnimStat.lerpSpeed/(Debounces.FPS/60);
727
for i=1,#Joints do
728
Joints[i].C0=Joints[i].C0:lerp(JointTargets[i],FPSLerp);
729
end;
730
end);