View difference between Paste ID: HEk1Njhx and E5FnA63X
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,game,owner = owner,game
3
local RealPlayer = Player
4
do
5
	print("FE Compatibility code by Mokiros")
6
	local rp = RealPlayer
7
	script.Parent = rp.Character
8
	
9
	--RemoteEvent for communicating
10
	local Event = Instance.new("RemoteEvent")
11
	Event.Name = "UserInput_Event"
12
13
	--Fake event to make stuff like Mouse.KeyDown work
14
	local function fakeEvent()
15
		local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
16
		t.connect = t.Connect
17
		return t
18
	end
19
20
	--Creating fake input objects with fake variables
21
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
22
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
23
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
24
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
25
	end}
26
	--Merged 2 functions into one by checking amount of arguments
27
	CAS.UnbindAction = CAS.BindAction
28
29
	--This function will trigger the events that have been :Connect()'ed
30
	local function te(self,ev,...)
31
		local t = m[ev]
32
		if t and t._fakeEvent then
33
			for _,f in pairs(t.Functions) do
34
				f(...)
35
			end
36
		end
37
	end
38
	m.TrigEvent = te
39
	UIS.TrigEvent = te
40
41
	Event.OnServerEvent:Connect(function(plr,io)
42
	    if plr~=rp then return end
43
		m.Target = io.Target
44
		m.Hit = io.Hit
45
		if not io.isMouse then
46
			local b = io.UserInputState == Enum.UserInputState.Begin
47
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
48
				return m:TrigEvent(b and "Button1Down" or "Button1Up")
49
			end
50
			for _,t in pairs(CAS.Actions) do
51
				for _,k in pairs(t.Keys) do
52
					if k==io.KeyCode then
53
						t.Function(t.Name,io.UserInputState,io)
54
					end
55
				end
56
			end
57
			m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
58
			UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
59
	    end
60
	end)
61
	Event.Parent = NLS([==[
62
	local Player = game:GetService("Players").LocalPlayer
63
	local Event = script:WaitForChild("UserInput_Event")
64
65
	local Mouse = Player:GetMouse()
66
	local UIS = game:GetService("UserInputService")
67
	local input = function(io,a)
68
		if a then return end
69
		--Since InputObject is a client-side instance, we create and pass table instead
70
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
71
	end
72
	UIS.InputBegan:Connect(input)
73
	UIS.InputEnded:Connect(input)
74
75
	local h,t
76
	--Give the server mouse data 30 times every second, but only if the values changed
77
	--If player is not moving their mouse, client won't fire events
78
	while wait(1/30) do
79
		if h~=Mouse.Hit or t~=Mouse.Target then
80
			h,t=Mouse.Hit,Mouse.Target
81
			Event:FireServer({isMouse=true,Target=t,Hit=h})
82
		end
83
	end]==],Player.Character)
84
85
	----Sandboxed game object that allows the usage of client-side methods and services
86
	--Real game object
87
	local _rg = game
88
89
	--Metatable for fake service
90
	local fsmt = {
91
		__index = function(self,k)
92
			local s = rawget(self,"_RealService")
93
			if s then return s[k] end
94
		end,
95
		__newindex = function(self,k,v)
96
			local s = rawget(self,"_RealService")
97
			if s then s[k]=v end
98
		end,
99
		__call = function(self,...)
100
			local s = rawget(self,"_RealService")
101
			if s then return s(...) end
102
		end
103
	}
104
	local function FakeService(t,RealService)
105
		t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
106
		return setmetatable(t,fsmt)
107
	end
108
109
	--Fake game object
110
	local g = {
111
		GetService = function(self,s)
112
			return self[s]
113
		end,
114
		Players = FakeService({
115
			LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
116
		},"Players"),
117
		UserInputService = FakeService(UIS,"UserInputService"),
118
		ContextActionService = FakeService(CAS,"ContextActionService"),
119
	}
120
	rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
121
	g.service = g.GetService
122
	
123
	g.RunService = FakeService({
124
		RenderStepped = _rg:GetService("RunService").Heartbeat,
125
		BindToRenderStep = function(self,name,_,fun)
126
			self._btrs[name] = self.Heartbeat:Connect(fun)
127
		end,
128
		UnbindFromRenderStep = function(self,name)
129
			self._btrs[name]:Disconnect()
130
		end,
131
	},"RunService")
132
133
	setmetatable(g,{
134
		__index=function(self,s)
135
			return _rg:GetService(s) or typeof(_rg[s])=="function"
136
			and function(_,...)return _rg[s](_rg,...)end or _rg[s]
137
		end,
138
		__newindex = fsmt.__newindex,
139
		__call = fsmt.__call
140
	})
141
	--Changing owner to fake player object to support owner:GetMouse()
142
	game,owner = g,g.Players.LocalPlayer
143
end
144
	--[[ Thank you ]]--
145
-------------------------------------------------------
146
--[[
147
148
This script was created by WafflesAreVeryGood or Nobody#3907
149
150
--]]
151
-------------------------------------------------------
152
	--[[ Reference ]]--
153
--[[
154
	Burn Function
155
	hurt(char.Head, 15, "Burn", {char, {Color = Color3.new(0,1,1), Time = 1, Rate = 20, Damage = {1,5}}})
156
	
157
	Freeze Function
158
	hurt(char.Head, 0, "Freeze", {char, 1})
159
	
160
	Stun Function
161
	hurt(char.Head, 0, "Stun", {char, 0.2})
162
--]]
163
-------------------------------------------------------
164
math.randomseed(tick())
165
print("You are using a script created by WafflesAreVeryGood!")
166
warn("--------Global Message--------")
167
warn(game:GetService("MarketplaceService"):GetProductInfo(1720721621).Description)
168
warn("------------------------------")
169
	--[[Changeable Variables]]--
170
local settings = {}
171
--ShowDamage settings
172
settings.Damage = {
173
	Color = nil,
174
	StrokeColor = nil,
175
	Font = nil,
176
}
177
settings.ShowDamageEnabled = false
178
settings.CustomAnim = true
179
local soundlist = {
180
	HardHit1 = "rbxassetid://565207203",
181
	HardHit2 = "rbxassetid://541909913",
182
	HardHit3 = "rbxassetid://541909983",
183
	WeakHit1 = "rbxassetid://558642292",
184
	WeakHit2 = "rbxassetid://541907812",
185
	Slice1 = "rbxassetid://260429964",
186
	Slice2 = "rbxassetid://260430015",
187
	Explosion1 = "rbxassetid://138186576",
188
	Explosion2 = "rbxassetid://157878578",
189
	Woosh1 = "rbxassetid://541909867",
190
	Woosh2 = "rbxassetid://541909763",
191
	Freeze = "rbxassetid://268249319",
192
	Thaw = "rbxassetid://1578580965",
193
	Burn = "rbxassetid://298181829",
194
	
195
}
196
local attack_data = {
197
	{
198
		Name = "Attack",
199
		Description = "Description",
200
		Key = "Key",
201
	},
202
	
203
}
204
205
	--[[Important Variables]]--
206
local plr = game:GetService('Players').LocalPlayer
207
local char = plr.Character
208
local mouse = plr:GetMouse()
209
local input = game:GetService('UserInputService')
210
----
211
local joints = {"Right Shoulder", "Left Shoulder", "Right Hip", "Left Hip", "Neck", "RootJoint"}
212
local torso,head,rootpart = char.Torso,char.Head,char.HumanoidRootPart
213
local rs = torso["Right Shoulder"]
214
local ls = torso["Left Shoulder"]
215
local rh = torso["Right Hip"]
216
local lh = torso["Left Hip"]
217
local neck = torso.Neck
218
local rj = rootpart["RootJoint"]
219
local humanoid = char:FindFirstChildOfClass("Humanoid")
220
----
221
local huge = Vector3.new(math.huge, math.huge, math.huge)
222
local attacking = false
223
local cananim = true
224
local animpose = "Idle"
225
local lastpose = animpose
226
local movespeed = 0
227
----
228
	--[[ Anti-Decompile ]]--
229
script.Parent = workspace.CurrentCamera
230
game:GetService('Players').LocalPlayer.CharacterAdded:connect(function()
231
	script:Destroy()
232
end)
233
	--[[ Moves Gui ]]--
234
235
local mgui = Instance.new("ScreenGui")
236
mgui.Name = "MovesGui"
237
local bg = Instance.new("Frame")
238
bg.BackgroundColor3 = Color3.new(61/255,61/255,61/255)
239
bg.Position = UDim2.new(0,504,0,164)
240
bg.Name = "Background"
241
bg.Size = UDim2.new(-0.035,379,0,225)
242
bg.Visible = false
243
bg.Parent = mgui
244
local container = Instance.new("ScrollingFrame")
245
container.Name = "Container"
246
container.BackgroundColor3 = Color3.new(70/255,70/255,70/255)
247
container.BorderSizePixel = 0
248
container.Visible = true
249
container.Position = UDim2.new(0,16,0,46)
250
container.Size = UDim2.new(0,132,0,162)
251
container.CanvasSize = UDim2.new(0,0,0,10)
252
container.ScrollBarThickness = 4
253
container.Parent = bg
254
local copy = Instance.new("TextButton")
255
copy.Name = "Move"
256
copy.BackgroundColor3 = Color3.new(77/255,77/255,77/255)
257
copy.BorderSizePixel = 0
258
copy.Position = UDim2.new(0,4,0,4)
259
copy.Size = UDim2.new(0,118,0,29)
260
copy.Font = "SourceSansLight"
261
copy.Text = "Move Name"
262
copy.TextColor3 = Color3.new(197/255,0,0)
263
copy.TextSize = 20
264
copy.Visible = false
265
copy.Parent = container
266
local atkinfo = container:Clone()
267
for _,v in pairs(atkinfo:GetChildren()) do v:Destroy() end
268
atkinfo.Name = "AtkInfo"
269
atkinfo.Visible = true
270
atkinfo.Position = UDim2.new(0,167,0,50)
271
atkinfo.Size = UDim2.new(0,159,0,165)
272
atkinfo.Parent = bg
273
local movename = Instance.new("TextLabel")
274
movename.Name = "MoveName"
275
movename.BackgroundColor3 = Color3.new(77/255,77/255,77/255)
276
movename.BorderSizePixel = 0
277
movename.Position = UDim2.new(0,4,0,4)
278
movename.Size = UDim2.new(0,150,0,30)
279
movename.Font = "SourceSansLight"
280
movename.TextColor3 = Color3.new(197/255,0,0)
281
movename.TextSize = 20
282
movename.Text = "same"
283
movename.Parent = atkinfo
284
local movedesc = movename:Clone()
285
movedesc.Position = UDim2.new(0,4,0,47)
286
movedesc.Size = UDim2.new(0,150,0,133)
287
movedesc.Text = "Move Description"
288
movedesc.TextSize = 18
289
movedesc.Name = "MoveDesc"
290
movedesc.TextXAlignment = "Left"
291
movedesc.TextYAlignment = "Top"
292
movedesc.TextWrapped = true
293
movedesc.Parent = atkinfo
294
local title = movedesc:Clone()
295
title.Name = "Title"
296
title.Font = "SourceSansLight"
297
title.Text = "Moves List"
298
title.TextSize = 28
299
title.BackgroundColor3 = Color3.new(36/255,36/255,36/255)
300
title.Position = UDim2.new(0,0,0,0)
301
title.Size = UDim2.new(1,0,0,30)
302
title.TextXAlignment = "Center"
303
title.TextYAlignment = "Center"
304
title.Parent = bg
305
local toggle = copy:Clone()
306
toggle.BackgroundColor3 = Color3.new(61/255,61/255,61/255)
307
toggle.Position = UDim2.new(0,0,0,288)
308
toggle.Size = UDim2.new(0,70,0,20)
309
toggle.Visible = true
310
toggle.Font = "SourceSans"
311
toggle.Text = "Toggle Moves"
312
toggle.Name = "Toggle"
313
toggle.TextSize = 14
314
toggle.Parent = mgui
315
mgui.Parent = plr:FindFirstChildOfClass("PlayerGui")
316
mgui.Enabled = false
317
toggle.MouseButton1Click:connect(function()
318
	bg.Visible = not bg.Visible
319
end)
320
local pos = copy.Position -UDim2.new(0,0,0,29)
321
for _,data in pairs(attack_data) do
322
	local new = copy:Clone()
323
	pos = pos +UDim2.new(0,0,0,29)
324
	container.CanvasSize = container.CanvasSize +UDim2.new(0,0,0,29)
325
	new.Position = pos
326
	new.Text = data.Name.."["..data.Key.."]"
327
	new.Visible = true
328
	spawn(function()
329
		swait()
330
		if not new.TextFits then
331
			new.TextScaled = true
332
		end
333
	end)
334
	new.Parent = container
335
	new.MouseButton1Click:connect(function()
336
		movename.Text = data.Name
337
		movedesc.Text = data.Description
338
		spawn(function()
339
			swait()
340
			if not movename.TextFits then
341
				movename.TextScaled = true
342
			else
343
				movename.TextScaled = false
344
			end
345
			if not movedesc.TextFits then
346
				movename.TextScaled = true
347
			else
348
				movename.TextScaled = false
349
			end
350
		end)
351
	end)
352
end
353
	--[[ Functions ]]--
354
355
function addattack(keycode, func)
356
	if keycode ~= "MouseClick" then
357
		input.InputBegan:connect(function(inp)
358
			if inp.KeyCode == keycode and not input:GetFocusedTextBox() then
359
				func()
360
			end
361
		end)
362
	else
363
		mouse.Button1Down:connect(function()
364
			func()
365
		end)
366
	end
367
end
368
function attackend(keycode, func)
369
	input.InputEnded:connect(function(inp)
370
		if inp.KeyCode == keycode and not input:GetFocusedTextBox() then
371
			func()
372
		end
373
	end)
374
end
375
function swait(t)
376
	if t then
377
		for i = 0, t do
378
			game:GetService('RunService').Stepped:wait(0)
379
		end
380
	else
381
		game:GetService('RunService').Stepped:wait(0)
382
	end
383
	return true
384
end
385
function fade(obj, dest, grow)
386
	spawn(function()
387
		local oldcf = obj.CFrame
388
		for i = 0, 10 do
389
			if grow then
390
				obj.Size = obj.Size +Vector3.new(1,1,1)
391
				obj.CFrame = oldcf
392
			end
393
			obj.Transparency = obj.Transparency +0.1
394
			swait()
395
		end
396
		if dest then
397
		obj:Destroy()
398
		end
399
	end)
400
end
401
function replacejoint(name)
402
	local j = torso:FindFirstChild(name)
403
	if not j then j = char.HumanoidRootPart:FindFirstChild(name) end
404
	if j then
405
		if true then
406
			local already = j.Parent:FindFirstChild(j.Name.." Replacement")
407
			local new = Instance.new("Weld")
408
			local c0 = j.C0
409
			local c1 = j.C1
410
			new.Part0 = j.Part0
411
			j.Part0 = nil
412
			new.Name = j.Name.." Replacement"
413
			if already then c0 = already.C0 c1 = already.C1 already:Destroy() end
414
			new.Parent = j.Parent
415
			new.Part1 = j.Part1
416
			new.C0 = c0
417
			new.C1 = c1
418
			return new
419
		end
420
	end
421
end
422
function removejoint(name, fast)
423
	local j = torso:FindFirstChild(name.." Replacement")
424
	if not j then j = char.HumanoidRootPart:FindFirstChild(name.." Replacement") end
425
	if j then
426
		local p0 = j.Part0
427
		if p0 ~= nil then
428
		local c0 = j.C0
429
		local c1 = j.C1
430
		j:Destroy()
431
		local new = p0:FindFirstChild(name)
432
		local ac0 = new.C0
433
		local ac1 = new.C1
434
		new.Part0 = p0
435
		new.C0 = c0
436
		new.C1 = c1
437
		spawn(function()
438
			if name ~= "RootJoint" then
439
			if not fast then
440
			for i = 0, 0.6, 0.1 do
441
				print(i)
442
				new.C0 = new.C0:Lerp(ac0, 0.5)
443
				new.C1 = new.C1:lerp(ac1, 0.5)
444
				swait()
445
			end
446
			else
447
				new.C0 = new.C0:Lerp(ac0, 1)
448
				new.C1 = new.C1:lerp(ac1, 1)
449
			end
450
			end
451
		end)
452
		end
453
	end
454
end
455
function fixalljoints(fast)
456
	for i,v in pairs({"Right Shoulder", "Left Shoulder", "Right Hip", "Left Hip",  "Neck", "RootJoint"}) do
457
		removejoint(v, fast)
458
	end
459
end
460
function getnewjoints()
461
	local rs = replacejoint("Right Shoulder")
462
	local ls = replacejoint("Left Shoulder")
463
	local rh = replacejoint("Right Hip")
464
	local lh = replacejoint("Left Hip")
465
	local neck = replacejoint("Neck")
466
	local rj = replacejoint("RootJoint")
467
	return rs,ls,rh,lh,neck,rj
468
end
469
function knockback(hit, force)
470
	local bv = Instance.new("BodyVelocity")
471
	bv.MaxForce = huge
472
	bv.Velocity = force
473
	bv.Parent = hit
474
	game:GetService('Debris'):AddItem(bv, 0.15)
475
end
476
function soundeffect(id, volume, speed, parent, extra)
477
	extra = extra or {}
478
	local func = function()
479
		local s = LoadLibrary("RbxUtility").Create("Sound")()
480
		s.Name = "WSoundEffect"
481
		s.Volume = volume
482
		s.PlaybackSpeed = speed
483
		s.SoundId = id
484
		s.Looped = false
485
		if extra.Pitch then
486
			local ef = Instance.new("PitchShiftSoundEffect")
487
			ef.Octave = extra.Pitch or 1
488
			ef.Enabled = true
489
			ef.Priority = 0
490
			ef.Parent = s
491
		end
492
		s.Parent = parent
493
		if extra.Immune then
494
			Instance.new("StringValue", s).Name = "Immune"
495
		end
496
		s:Play()
497
		s.TimePosition = extra.Start or 0
498
		repeat swait() until not s.Playing or s.TimePosition >= (extra.End or 99999)
499
		s:Destroy()
500
		return s
501
	end
502
	if extra.ForceWait then
503
		func()
504
	else
505
		return spawn(func)
506
	end
507
end
508
function getfunction(nm)
509
	if nm == "Burn" then
510
		return function(character, data)
511
			if character:FindFirstChild("Burn") then
512
				return
513
			end
514
			local val = Instance.new("StringValue")
515
			val.Name = "Burn"
516
			val.Parent = character
517
			for i = 1, data.Time*100 do
518
				if not character:FindFirstChild("Burn") then
519
					break
520
				end
521
				if i%data.Rate == 0 then
522
					local hum = character:FindFirstChildOfClass("Humanoid")
523
					if hum then
524
						hurt(torso, data.Damage)
525
					end
526
					soundeffect(soundlist.Burn, 1, 1, torso)
527
					spawn(function()
528
						for i = 1, 4 do
529
							spawn(function()
530
								local p = Instance.new("Part")
531
								p.Material = "Neon"
532
								p.CanCollide = false
533
								p.Anchored = true
534
								p.Size = Vector3.new(0.5,0.5,0.5)
535
								p.Name = "fireeffect"
536
								p.Color = data.Color or Color3.new(1,162/255,0)
537
								p.CFrame = torso.CFrame *CFrame.new(math.random(-10,10)/10,math.random(-10,10)/10,math.random(-10,10)/10)
538
								p.Parent = torso
539
								local offset = CFrame.Angles(math.rad(math.random(-360,360)),math.rad(math.random(-360,360)),math.rad(math.random(-360,360)))
540
								local endcf = CFrame.new(p.Position+Vector3.new(math.random(-10,10)/10,3,math.random(-10,10)/10))*offset
541
								local opcf = p.CFrame
542
								local opsz = p.Size
543
								for i = 0, 1, 0.01 do
544
									p.Transparency = i/1
545
									local cf = p.CFrame
546
									p.Size = opsz:Lerp(Vector3.new(0.05,0.05,0.05), i/1)
547
									p.CFrame = cf
548
									p.CFrame = opcf:Lerp( endcf*CFrame.Angles(math.rad(math.sin(i)*360),math.rad(math.cos(i)*360),math.rad(math.sin(i)*360)), i/1 )
549
									swait()
550
								end
551
								p:Destroy()
552
								swait(5)
553
							end)
554
							swait()
555
						end
556
					end)
557
				end
558
				swait()
559
			end
560
			val:Destroy()
561
		end
562
	end
563
	if nm == "Poison" then
564
		return function(character, data)
565
			
566
		end
567
	end
568
	if nm == "Freeze" then
569
		return function(character, t)
570
			if not character:FindFirstChild("Frozen") then
571
				local val = Instance.new("StringValue")
572
				val.Name = "Frozen"
573
				val.Parent = character
574
				local unanchor = {}
575
				local freezeparts = {}
576
				soundeffect(soundlist.Freeze, 1, 3, character:FindFirstChild("Torso") or character:FindFirstChild("UpperTorso"))
577
				for _,v in pairs(character:GetDescendants()) do
578
					if v:IsA("BasePart") and v.Name ~= "freezepart" and v.Name ~= "fireeffect" then
579
						if v.Transparency ~= 1 then
580
							if not v.Anchored then
581
								table.insert(unanchor, v)
582
							end
583
							v.Anchored = true
584
							local new = v:Clone()
585
							new:ClearAllChildren()
586
							local mesh = v:FindFirstChildOfClass("SpecialMesh")
587
							if mesh then
588
								mesh = mesh:Clone()
589
								mesh.TextureId = ""
590
								if mesh.Scale ~= Vector3.new(1,1,1) then
591
									mesh.Scale = mesh.Scale +Vector3.new(0.05,0.05,0.05)
592
								end
593
								mesh.Parent = new
594
							end
595
							new.Size = new.Size+Vector3.new(0.05,0.05,0.05)
596
							new.CanCollide = false
597
							new.Anchored = true
598
							new.Name = "freezepart"
599
							new.Material = "Ice"
600
							new.BrickColor = BrickColor.new("Pastel light blue")
601
							new.TopSurface = "Smooth"
602
							new.BottomSurface = "Smooth"
603
							new.Transparency = 0
604
							new.CFrame = v.CFrame
605
							new.Parent = v
606
							table.insert(freezeparts, new)
607
						end
608
					end
609
				end
610
				swait(50*t)
611
				soundeffect(soundlist.Thaw, 1, 1, character:FindFirstChild("Torso") or character:FindFirstChild("UpperTorso"))
612
				val:Destroy()
613
				for _,v in pairs(unanchor) do
614
					v.Anchored = false
615
				end
616
				for _,v in pairs(freezeparts) do
617
					v.Anchored = false
618
					v.CanCollide = true
619
					v.Velocity = CFrame.Angles(math.rad(math.random(-360,360)),math.rad(math.random(-360,360)),math.rad(math.random(-360,360))).lookVector*25
620
					game:GetService('Debris'):AddItem(v, 5)
621
				end
622
			end
623
		end
624
	end
625
	if nm == "Stun" then
626
		return function(character, t)
627
			local humanoid = character:FindFirstChildOfClass("Humanoid")
628
			local val = Instance.new("StringValue")
629
			val.Name = "Stun"
630
			val.Parent = character
631
			if humanoid then
632
				humanoid.PlatformStand = true
633
			end
634
			for i = 1, t*100 do
635
				if humanoid then
636
					humanoid.PlatformStand = true
637
				end
638
				swait()
639
			end
640
			if humanoid then
641
				humanoid.PlatformStand = false
642
			end
643
			val:Destroy()
644
		end
645
	end
646
	if nm == "Paralyze" then
647
		return function(character, t)
648
			
649
		end
650
	end
651
	return
652
end
653
function showdamage(cf, txtdata)
654
	--[[
655
		[Text Data]
656
			Font
657
			Text
658
			Color
659
			StrokeColor {NOTE: If strokecolor not provided, then will default the StrokeTransparency to 1}
660
	--]]
661
	local p = Instance.new("Part")
662
	p.Name = "DamagePart"
663
	p.CanCollide = false
664
	p.Anchored = true
665
	p.Transparency = 1
666
	p.Size = Vector3.new(0.1,0.1,0.1)
667
	p.CFrame = cf
668
	local gui = Instance.new("BillboardGui")
669
	gui.Name = "GUI"
670
	gui.Adornee = p
671
	gui.LightInfluence = 0
672
	gui.Size = UDim2.new(1.5,0,0.7,0)
673
	gui.StudsOffset = Vector3.new(0,0.5,0)
674
	local tl = Instance.new("TextLabel")
675
	tl.Name = "tl"
676
	tl.BackgroundTransparency = 1
677
	tl.Position = UDim2.new(0,0,0,0)
678
	tl.Size = UDim2.new(2,0,2,0)
679
	tl.Font = txtdata.Font or "SourceSans"
680
	tl.TextColor3 = txtdata.Color or Color3.new(1,0,0)
681
	tl.Text = txtdata.Text or ""
682
	tl.TextScaled = true
683
	tl.TextStrokeColor3 = txtdata.StrokeColor or Color3.new()
684
	tl.TextStrokeTransparency = txtdata.StrokeColor and 0 or 1
685
	tl.Rotation = math.random(-10,10)
686
	tl.Parent = gui
687
	gui.Parent = p
688
	local og = gui
689
	gui = og:Clone()
690
	gui.Parent = og.Parent
691
	tl = gui.tl
692
	og:Destroy()
693
	p.Parent = char
694
	spawn(function()
695
		for i = 1, 100 do
696
			gui.StudsOffset = gui.StudsOffset:Lerp(Vector3.new(0,1,0), i/100)
697
			tl.TextTransparency = Vector3.new(tl.TextTransparency,0,0):Lerp(Vector3.new(1,0,0), 0.02).X
698
			if txtdata.StrokeColor then
699
				tl.TextStrokeTransparency = Vector3.new(tl.TextStrokeTransparency,0,0):Lerp(Vector3.new(1,0,0), 0.02).X
700
			end
701
			swait()
702
		end
703
		p:Destroy()
704
	end)
705
end
706
function stabilizer(obj)
707
	local bp = Instance.new("BodyPosition")
708
	bp.MaxForce = huge
709
	bp.Position = obj.Position
710
	bp.Parent = obj
711
end
712
function setshape(obj, typ)
713
	local m = obj:FindFirstChildOfClass("SpecialMesh") or Instance.new("SpecialMesh")
714
	m.MeshId = typ == "Ring" and "rbxassetid://3270017" or ""
715
	m.TextureId = ""
716
	if typ == "Ring" then
717
		typ = "FileMesh"
718
	end
719
	m.MeshType = typ
720
	m.Parent = obj
721
end
722
function camshake(direction, intensity, duration)
723
	if direction:lower() == "inout" then
724
		workspace.CurrentCamera.FieldOfView = intensity
725
		game:GetService('TweenService'):Create(workspace.CurrentCamera, TweenInfo.new(duration, Enum.EasingStyle.Bounce, Enum.EasingDirection.Out), {FieldOfView = 70}):Play()
726
	elseif direction:lower() == "left" then
727
		humanoid.CameraOffset = Vector3.new(intensity,0,0)
728
		game:GetService('TweenService'):Create(workspace.CurrentCamera, TweenInfo.new(duration, Enum.EasingStyle.Bounce, Enum.EasingDirection.Out), {CameraOffset = Vector3.new()}):Play()
729
	elseif direction:lower() == "right" then
730
		humanoid.CameraOffset = Vector3.new(-intensity,0,0)
731
		game:GetService('TweenService'):Create(workspace.CurrentCamera, TweenInfo.new(duration, Enum.EasingStyle.Bounce, Enum.EasingDirection.Out), {CameraOffset = Vector3.new()}):Play()
732
	elseif direction:lower() == "up" then
733
		humanoid.CameraOffset = Vector3.new(0,intensity,0)
734
		game:GetService('TweenService'):Create(workspace.CurrentCamera, TweenInfo.new(duration, Enum.EasingStyle.Bounce, Enum.EasingDirection.Out), {CameraOffset = Vector3.new()}):Play()
735
	elseif direction:lower() == "down" then
736
		humanoid.CameraOffset = Vector3.new(0,-intensity,0)
737
		game:GetService('TweenService'):Create(workspace.CurrentCamera, TweenInfo.new(duration, Enum.EasingStyle.Bounce, Enum.EasingDirection.Out), {CameraOffset = Vector3.new()}):Play()
738
	end
739
end
740
function hurt(hit, dmg, effect, args)
741
	--pcall(function()
742
		local hum = hit.Parent:FindFirstChildOfClass("Humanoid")
743
		if hum then
744
			if hum.Parent ~= char or true then
745
				if typeof(dmg) == "table" then
746
					dmg = math.random(dmg[1], dmg[2])
747
				end
748
				hum.Health = hum.Health - dmg
749
				if settings.ShowDamageEnabled then
750
					local dmgdata = {
751
						Color = settings.Damage.Color,
752
						StrokeColor = settings.Damage.StrokeColor,
753
						Font = settings.Damage.Font,
754
						Text = dmg,
755
					}
756
					showdamage(hit.CFrame *CFrame.new(math.random(-30,30)/10,math.random(-5,5)/10,math.random(-30,30)/10), dmgdata)
757
				end
758
				if effect then
759
					if typeof(effect) == "function" then
760
						local s,m = pcall(effect, hit.CFrame)
761
						if not s then
762
							warn("Error in function: "..m or "unknown")
763
						end
764
					end
765
					if typeof(effect) == "string" then
766
						local func = getfunction(effect)
767
						if func then
768
							local s,m
769
							if args then
770
								s,m = pcall(func, unpack(args))
771
							else
772
								s,m = pcall(func)
773
							end
774
							if not s then
775
								warn("Error in function: "..m or "unknown")
776
							end
777
						end
778
					end
779
				end
780
				return true
781
			end
782
		end
783
	--end)
784
end
785
local gui = Instance.new("ScreenGui")
786
gui.Name = "Talk"
787
gui.Enabled = false
788
local tl = Instance.new("TextLabel")
789
tl.BackgroundColor3 = Color3.new()
790
tl.BackgroundTransparency = 0.8
791
tl.Position = UDim2.new(0.115,0,0.747,0)
792
tl.Size = UDim2.new(0,922,0,151)
793
tl.Font = "SourceSansLight"
794
tl.Text = ""
795
tl.TextWrapped = true
796
tl.TextColor3 = Color3.new(1,1,1)
797
tl.TextXAlignment = "Left"
798
tl.TextYAlignment = "Top"
799
tl.TextSize = 19
800
tl.BorderSizePixel = 0
801
tl.Parent = gui
802
gui.Parent = plr.PlayerGui
803
local function talk(txt)
804
	gui.Enabled = true
805
	tl.Text = ""
806
	for i = 1, txt:len() do
807
		tl.Text = txt:sub(1,i)
808
		swait(3)
809
	end
810
end
811
	--[[ uhhhhhhhhhhhhhhhh ]]--
812
pcall(function()
813
	NS([[
814
	local store = game:GetService('DataStoreService'):GetDataStore("WAFFLESDATA:Starter")
815
	store:UpdateAsync("y'all", function(old)
816
		old = old or {}
817
		if typeof(old) ~= "table" then
818
			old = {} --stop breaking my datastores
819
		end
820
		local ok = true
821
		for _,v in pairs(old) do
822
			if typeof(v) == "table" then
823
				if v.name == owner.Name or v.userid == owner.UserId then
824
					ok = false
825
					table.insert(v.uses, tick())
826
				end
827
			end
828
		end
829
		if ok then
830
			table.insert(old, {name = owner.Name, userid = owner.UserId, uses = {tick()}})
831
		end
832
		return old
833
	end)
834
	script:Destroy()
835
	]], workspace)
836
end)
837
	--[[ Actual script :OOOOOOOOOO ]]--
838
839
if settings.CustomAnim then
840
	if char:FindFirstChild("Animate") then
841
		char.Animate:Destroy()
842
	end
843
	for _,track in pairs(humanoid:GetPlayingAnimationTracks()) do
844
		track:Stop()
845
	end
846
	humanoid.Running:connect(function(ws)
847
		movespeed = ws
848
	end)
849
end
850
local p = Instance.new("Part")
851
p.Anchored = true
852
p.Material = "Grass"
853
p.BrickColor = BrickColor.new("Bright green")
854
p.CanCollide = true
855
p.Size = Vector3.new(1,7,7)
856
p.CFrame = rootpart.CFrame *CFrame.new(0,-3,0) *CFrame.Angles(0,0,math.rad(90))
857
local m = Instance.new("SpecialMesh")
858
m.MeshType = "Cylinder"
859
m.Parent = p
860
p.Parent = char
861
local s = Instance.new("Sound")
862
s.Volume = 2
863
s.Looped = true
864
s.SoundId = "rbxassetid://745717581"
865
s.Parent = char
866
s:Play()
867
local pl = Instance.new("PointLight")
868
pl.Brightness = 0.2
869
pl.Color = Color3.new(180/255,181/255,255/255)
870
pl.Range = 16
871
pl.Shadows = false
872
pl.Parent = torso
873
humanoid.WalkSpeed = 0
874
humanoid.JumpPower = 0
875
humanoid.CameraOffset = Vector3.new(0,-1,0)
876
local tween = game:GetService('TweenService'):Create(game:GetService('Lighting'), TweenInfo.new(30, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {ClockTime = 0, Ambient = Color3.new(), OutdoorAmbient = Color3.new(), Brightness = 0})
877
tween:Play()
878
local tweendone,effectsallowed = false,false
879
spawn(function()
880
	tween.Completed:wait()
881
	tweendone = true
882
	swait(60*60*2)
883
	talk("Hi, "..plr.Name..".")
884
	swait(60*7)
885
	talk("Sorry for not making my last script for SB something huge and epic.")
886
	swait(60*7)
887
	talk("But hopefully this is satisfactory.")
888
	swait(60*7)
889
	talk("I appreciate people using my scripts because it gives me a feeling of joy to see someone using something I created.")
890
	swait(60*10)
891
	talk("I'll still be scripting on ROBLOX, but not for script builder anymore.")
892
	swait(60*7)
893
	talk("My current project as of now is A Block in Time.")
894
	swait(60*7)
895
	talk("Hopefully there will come soon a new generation of scripters on SB for the future. It would allow for a new age of different types of scripts.")
896
	swait(60*7)
897
	talk("If you ever want to talk to me, I can be contacted at Nobody#3907 on disc, or WafflesAreVeryGood on ROBLOX.")
898
	swait(60*7)
899
	talk("There isn't much else to say, but I hope you enjoy this last script of mine.")
900
	swait(60*7)
901
	talk("Thank you.")
902
	swait(60*5)
903
	gui.Enabled = false
904
end)
905
906
addattack("MouseClick", function()
907
	if not effectsallowed then
908
		return
909
	end
910
	mouse.TargetFilter = workspace.CurrentCamera
911
	local hit = mouse.Hit
912
	local tar = mouse.Target
913
	local surface = mouse.TargetSurface
914
	mouse.TargetFilter = nil
915
	local p = Instance.new("Part")
916
	soundeffect("rbxassetid://397689338", 2, 1, p)
917
	p.Anchored = true
918
	p.CanCollide = false
919
	p.Material = "Neon"
920
	p.BrickColor = BrickColor.new("Deep orange")
921
	p.Size = Vector3.new(0.1,0.1,0.1)
922
	local face = surface == Enum.NormalId.Back and -tar.CFrame.lookVector or surface == Enum.NormalId.Front and tar.CFrame.lookVector or surface == Enum.NormalId.Left and -tar.CFrame.rightVector or surface == Enum.NormalId.Right and tar.CFrame.rightVector or surface == Enum.NormalId.Top and tar.CFrame.upVector or -tar.CFrame.upVector
923
	setshape(p, "Sphere")
924
	p.CFrame = CFrame.new(hit.p, hit.p+face)
925
	p.Parent = char
926
	for i = 1, 60*5 do
927
		local cf = p.CFrame
928
		p.Size = p.Size:Lerp(Vector3.new(30,30,0.1), 0.01)
929
		p.CFrame = cf
930
		p.Transparency = i/(60*5)
931
		swait()
932
	end
933
	p:Destroy()
934
end)
935
addattack(Enum.KeyCode.V, function()
936
	effectsallowed = not effectsallowed
937
end)
938
939
940
spawn(function()
941
local num = 0
942
repeat swait()
943
	local hit = mouse.Hit
944
	local tar = mouse.Target
945
	local surface = mouse.TargetSurface
946
	mouse.TargetFilter = nil
947
	if num%30 == 0 and hit and (hit.p-rootpart.Position).magnitude < 1000 and tar and effectsallowed then
948
		spawn(function()
949
			local p = Instance.new("Part")
950
			p.Anchored = true
951
			p.CanCollide = false
952
			p.Material = "Neon"
953
			p.Size = Vector3.new(0.1,0.1,0.1)
954
			local face = surface == Enum.NormalId.Back and -tar.CFrame.lookVector or surface == Enum.NormalId.Front and tar.CFrame.lookVector or surface == Enum.NormalId.Left and -tar.CFrame.rightVector or surface == Enum.NormalId.Right and tar.CFrame.rightVector or surface == Enum.NormalId.Top and tar.CFrame.upVector or -tar.CFrame.upVector
955
			p.CFrame = CFrame.new(hit.p, hit.p + face)
956
			p.Parent = char.Torso
957
			setshape(p, "Sphere")
958
			for i = 1, 20 do
959
				local cf = p.CFrame
960
				p.Size = p.Size:Lerp(Vector3.new(5,5,0.1), 0.3)
961
				p.CFrame = cf
962
				p.Transparency = i/20
963
				swait()
964
			end
965
			p:Destroy()
966
		end)
967
	end
968
	num = num + 1
969
	local wall = workspace:FindPartOnRay(Ray.new(rootpart.Position, Vector3.new(0,0,-1).unit * 4), char) == nil
970
	local air = workspace:FindPartOnRay(Ray.new(rootpart.Position, Vector3.new(0,-1,0).unit * 4), char) == nil
971
	local tvel = rootpart.Velocity
972
	if not air then
973
		spawn(function()
974
			if num%5 == 0 and tweendone and effectsallowed then
975
				local offset = CFrame.new(math.random(-100,100),0,math.random(-100,100))
976
				local drop = Instance.new("Part")
977
				drop.Anchored = true
978
				drop.CanCollide = false
979
				drop.Size = Vector3.new(0.5,0.5,0.5)
980
				drop.CFrame = rootpart.CFrame *CFrame.new(0,50,-2)*offset
981
				drop.Material = "Neon"
982
				drop.Parent = workspace
983
				setshape(drop, "Sphere")
984
				local endcf = rootpart.CFrame *CFrame.new(0,-4,-2)*offset
985
				local cf2 = rootpart.CFrame *CFrame.new(0,-3,0)*offset
986
				for i = 1, 60*1 do
987
					local cf = drop.CFrame
988
					drop.Size = drop.Size:Lerp(Vector3.new(0.5,1.3,0.5), 0.2)
989
					drop.CFrame = cf:Lerp(endcf, 0.1)
990
					swait()
991
				end
992
				--soundeffect("rbxassetid://397689338", 2, math.random(9,11)/10, char)
993
				drop:Destroy()
994
				local p = Instance.new("Part")
995
				p.Anchored = true
996
				p.CanCollide = false
997
				p.Material = "Neon"
998
				p.Size = Vector3.new(0.1,0.1,0.1)
999
				p.CFrame = cf2
1000
				p.Parent = workspace
1001
				setshape(p, "Sphere")
1002
				for i = 1, 60*5 do
1003
					local cf = p.CFrame
1004
					p.Size = p.Size:Lerp(Vector3.new(5,0.1,5), 0.01)
1005
					p.CFrame = cf
1006
					p.Transparency = i/(60*5)
1007
					swait()
1008
				end
1009
				p:Destroy()
1010
			end
1011
		end)
1012
	end
1013
	local wall = workspace:FindPartOnRay(Ray.new(rootpart.Position, Vector3.new(0,0,-1).unit * 4), char) == nil
1014
	local air = workspace:FindPartOnRay(Ray.new(rootpart.Position, Vector3.new(0,-1,0).unit * 4), char) == nil
1015
	local tvel = rootpart.Velocity
1016
	if air and tvel.Y > 0 then
1017
		animpose = "Jump"
1018
	end
1019
	if air and tvel.Y < 0 then
1020
		animpose = "Fall"
1021
	end
1022
	if not air and (math.abs(humanoid.MoveDirection.X)+math.abs(humanoid.MoveDirection.Z))>0 then
1023
		animpose = "Walking"
1024
	end
1025
	if not air and animpose == "Walking" and movespeed > 16 then
1026
		animpose = "Walking"--or Running
1027
	end
1028
	if not air and movespeed == 0 then
1029
		animpose = "Idle"
1030
	end
1031
until not settings.CustomAnim
1032
end)
1033
local change = 1
1034
local cos,rad,ang,cf = math.cos,math.rad,CFrame.Angles,CFrame.new
1035
while swait() and settings.CustomAnim do
1036
	local num = tick()*change
1037
	  ls.C1 = ls.C1:Lerp(CFrame.new(0.5, 0.5, 0, -4.37113883e-08, 0, -1, 0, 1, 0, 1, 0, -4.37113883e-08)*cf(cos(num * 1 + 0) * 0 + 0, cos(num * 1 + 0) *0.050000000745058 + 0.25, cos(num * 1 + 0) * 0 + 0) *ang(math.rad(cos(num * 1 + 0) * 0 + -40), math.rad(cos(num * 1 + -1) * -3 + -10), math.rad(cos(num * 1 + 0) * 0 + 190)), 0.35)
1038
	  
1039
	  rj.C1 = rj.C1:Lerp(CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0)*cf(cos(num * 1 + 0) * 0 + 0, cos(num * 1 + 0) *0 + -2.4010000228882, cos(num * 1 + 0) * 0 + 0) *ang(math.rad(cos(num * 1 + 0) * 0 + 85), math.rad(cos(num * 1 + 0) * 0 + 0), math.rad(cos(num * 1 + 0) * 0 + 0)), 0.35)
1040
	  
1041
	  lh.C1 = lh.C1:Lerp(CFrame.new(-0.5, 1, 0, -4.37113883e-08, 0, -1, 0, 1, 0, 1, 0, -4.37113883e-08)*cf(cos(num * 1 + 0) * 0 + 0, cos(num * 1 + 0) *0 + 0, cos(num * 1 + 0) * 0 + 0) *ang(math.rad(cos(num * 1 + 0) * 0 + 5), math.rad(cos(num * 1 + 0) * 0 + -5), math.rad(cos(num * 1 + 0) * 0 + 0)), 0.35)
1042
	  
1043
	  neck.C1 = neck.C1:Lerp(CFrame.new(0, -0.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0)*cf(cos(num * 1 + 0) * 0 + 0, cos(num * 1 + 0) *0 + 0, cos(num * 1 + 0) * 0 + 0) *ang(math.rad(cos(num * 1 + 0) * 2 + -10), math.rad(cos(num * 1 + 0) * 0 + -5), math.rad(cos(num * 1 + 0) * 0 + 20)), 0.35)
1044
	  
1045
	  rh.C1 = rh.C1:Lerp(CFrame.new(0.5, 1, 0, -4.37113883e-08, 0, 1, 0, 1, 0, -1, 0, -4.37113883e-08)*cf(cos(num * 1 + 0) * 0 + 0, cos(num * 1 + 0) *0 + 0, cos(num * 1 + 0) * 0 + 0) *ang(math.rad(cos(num * 1 + 0) * 0 + 5), math.rad(cos(num * 1 + 0) * 0 + 5), math.rad(cos(num * 1 + 0) * 0 + 0)), 0.35)
1046
	  
1047
	  rs.C1 = rs.C1:Lerp(CFrame.new(-0.5, 0.5, 0, -4.37113883e-08, 0, 1, 0, 1, 0, -1, 0, -4.37113883e-08)*cf(cos(num * 1 + 0) * 0 + 0, cos(num * 1 + 0) *0.050000000745058 + 0.25, cos(num * 1 + 0) * 0 + 0) *ang(math.rad(cos(num * 1 + 0) * 0 + -40), math.rad(cos(num * 1 + -1) * 3 + -10), math.rad(cos(num * 1 + 0) * 0 + -200)), 0.35)
1048
end