View difference between Paste ID: BuJYvVYD and Yw39uzqE
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
wait(0.2)
172
173
Player = game:GetService("Players").LocalPlayer
174
PlayerGui = Player.PlayerGui
175
Cam = workspace.CurrentCamera
176
Backpack = Player.Backpack
177
Character = Player.Character
178
Humanoid = Character.Humanoid
179
Mouse = Player:GetMouse()
180
RootPart = Character["HumanoidRootPart"]
181
Torso = Character["Torso"]
182
Head = Character["Head"]
183
RightArm = Character["Right Arm"]
184
LeftArm = Character["Left Arm"]
185
RightLeg = Character["Right Leg"]
186
LeftLeg = Character["Left Leg"]
187
RootJoint = RootPart["RootJoint"]
188
Neck = Torso["Neck"]
189
RightShoulder = Torso["Right Shoulder"]
190
LeftShoulder = Torso["Left Shoulder"]
191
RightHip = Torso["Right Hip"]
192
LeftHip = Torso["Left Hip"]
193
local TIME = 0
194
local sick = Instance.new("Sound",Torso)
195-
kan.PlaybackSpeed = 1
195+
196
kan.SoundId = "rbxassetid://1326552262"
197
kan.Name = "wrecked"
198
kan.Looped = true
199
kan:Play()
200
function newTheme(ID, timepos, pitch, vol)
201
	local kanz = kan
202
	kanz.PlaybackSpeed = pitch
203
	kanz.Pitch = pitch
204
	kanz.SoundId = ID
205
	kanz.Name = "wrecked"
206
	kanz.Looped = true
207
end
208
IT = Instance.new
209
CF = CFrame.new
210
VT = Vector3.new
211
RAD = math.rad
212
C3 = Color3.new
213
UD2 = UDim2.new
214
BRICKC = BrickColor.new
215
ANGLES = CFrame.Angles
216
EULER = CFrame.fromEulerAnglesXYZ
217
COS = math.cos
218
ACOS = math.acos
219
SIN = math.sin
220
ASIN = math.asin
221
ABS = math.abs
222
MRANDOM = math.random
223
FLOOR = math.floor
224
--//=================================\\
225
--|| 	      USEFUL VALUES
226
--\\=================================//
227
228
Animation_Speed = 3
229
local FORCERESET = false
230
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
231
local Speed = 16
232
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
233
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
234
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
235
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
236
local DAMAGEMULTIPLIER = 1
237
local ANIM = "Idle"
238
local ATTACK = false
239
local EQUIPPED = false
240
local HOLD = false
241
local COMBO = 1
242
local Rooted = false
243
local SINE = 0
244
local KEYHOLD = false
245
local CHANGE = 2 / Animation_Speed
246
local WALKINGANIM = false
247
local VALUE1 = false
248
local VALUE2 = false
249
local ROBLOXIDLEANIMATION = IT("Animation")
250
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
251
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
252
--ROBLOXIDLEANIMATION.Parent = Humanoid
253
local WEAPONGUI = IT("ScreenGui", PlayerGui)
254
WEAPONGUI.Name = "BanishV3Gui"
255
local Weapon = IT("Model")
256
Weapon.Name = "Adds"
257
local Effects = IT("Folder", Weapon)
258
Effects.Name = "Effects"
259
local ANIMATOR = Humanoid.Animator
260
local ANIMATE = Character:FindFirstChild("Animate")
261
local UNANCHOR = true
262
local TOBANISH = {}
263
script.Parent = PlayerGui
264
265
--//=================================\\
266
--\\=================================//
267
268
269
--//=================================\\
270
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
271
--\\=================================//
272
273
ArtificialHB = Instance.new("BindableEvent", script)
274
ArtificialHB.Name = "ArtificialHB"
275
276
script:WaitForChild("ArtificialHB")
277
278
frame = Frame_Speed
279
tf = 0
280
allowframeloss = false
281
tossremainder = false
282
lastframe = tick()
283
script.ArtificialHB:Fire()
284
285
game:GetService("RunService").Heartbeat:connect(function(s, p)
286
	tf = tf + s
287
	if tf >= frame then
288
		if allowframeloss then
289
			script.ArtificialHB:Fire()
290
			lastframe = tick()
291
		else
292
			for i = 1, math.floor(tf / frame) do
293
				script.ArtificialHB:Fire()
294
			end
295
		lastframe = tick()
296
		end
297
		if tossremainder then
298
			tf = 0
299
		else
300
			tf = tf - frame * math.floor(tf / frame)
301
		end
302
	end
303
end)
304
305
--//=================================\\
306
--\\=================================//
307
308
--//=================================\\
309
--|| 	      SOME FUNCTIONS
310
--\\=================================//
311
312
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
313
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
314
end
315
316
function PositiveAngle(NUMBER)
317
	if NUMBER >= 0 then
318
		NUMBER = 0
319
	end
320
	return NUMBER
321
end
322
323
function NegativeAngle(NUMBER)
324
	if NUMBER <= 0 then
325
		NUMBER = 0
326
	end
327
	return NUMBER
328
end
329
330
function Swait(NUMBER)
331
	if NUMBER == 0 or NUMBER == nil then
332
		ArtificialHB.Event:wait()
333
	else
334
		for i = 1, NUMBER do
335
			ArtificialHB.Event:wait()
336
		end
337
	end
338
end
339
340
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
341
	local NEWMESH = IT(MESH)
342
	if MESH == "SpecialMesh" then
343
		NEWMESH.MeshType = MESHTYPE
344
		if MESHID ~= "nil" and MESHID ~= "" then
345
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
346
		end
347
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
348
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
349
		end
350
	end
351
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
352
	NEWMESH.Scale = SCALE
353
	NEWMESH.Parent = PARENT
354
	return NEWMESH
355
end
356
357
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
358
	local NEWPART = IT("Part")
359
	NEWPART.formFactor = FORMFACTOR
360
	NEWPART.Reflectance = REFLECTANCE
361
	NEWPART.Transparency = TRANSPARENCY
362
	NEWPART.CanCollide = false
363
	NEWPART.Locked = true
364
	NEWPART.Anchored = true
365
	if ANCHOR == false then
366
		NEWPART.Anchored = false
367
	end
368
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
369
	NEWPART.Name = NAME
370
	NEWPART.Size = SIZE
371
	NEWPART.Position = Torso.Position
372
	NEWPART.Material = MATERIAL
373
	NEWPART:BreakJoints()
374
	NEWPART.Parent = PARENT
375
	return NEWPART
376
end
377
378
	local function weldBetween(a, b)
379
	    local weldd = Instance.new("ManualWeld")
380
	    weldd.Part0 = a
381
	    weldd.Part1 = b
382
	    weldd.C0 = CFrame.new()
383
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
384
	    weldd.Parent = a
385
	    return weldd
386
	end
387
388
389
function QuaternionFromCFrame(cf)
390
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
391
	local trace = m00 + m11 + m22
392
	if trace > 0 then 
393
		local s = math.sqrt(1 + trace)
394
		local recip = 0.5 / s
395
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
396
	else
397
		local i = 0
398
		if m11 > m00 then
399
			i = 1
400
		end
401
		if m22 > (i == 0 and m00 or m11) then
402
			i = 2
403
		end
404
		if i == 0 then
405
			local s = math.sqrt(m00 - m11 - m22 + 1)
406
			local recip = 0.5 / s
407
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
408
		elseif i == 1 then
409
			local s = math.sqrt(m11 - m22 - m00 + 1)
410
			local recip = 0.5 / s
411
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
412
		elseif i == 2 then
413
			local s = math.sqrt(m22 - m00 - m11 + 1)
414
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
415
		end
416
	end
417
end
418
 
419
function QuaternionToCFrame(px, py, pz, x, y, z, w)
420
	local xs, ys, zs = x + x, y + y, z + z
421
	local wx, wy, wz = w * xs, w * ys, w * zs
422
	local xx = x * xs
423
	local xy = x * ys
424
	local xz = x * zs
425
	local yy = y * ys
426
	local yz = y * zs
427
	local zz = z * zs
428
	return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy))
429
end
430
 
431
function QuaternionSlerp(a, b, t)
432
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
433
	local startInterp, finishInterp;
434
	if cosTheta >= 0.0001 then
435
		if (1 - cosTheta) > 0.0001 then
436
			local theta = ACOS(cosTheta)
437
			local invSinTheta = 1 / SIN(theta)
438
			startInterp = SIN((1 - t) * theta) * invSinTheta
439
			finishInterp = SIN(t * theta) * invSinTheta
440
		else
441
			startInterp = 1 - t
442
			finishInterp = t
443
		end
444
	else
445
		if (1 + cosTheta) > 0.0001 then
446
			local theta = ACOS(-cosTheta)
447
			local invSinTheta = 1 / SIN(theta)
448
			startInterp = SIN((t - 1) * theta) * invSinTheta
449
			finishInterp = SIN(t * theta) * invSinTheta
450
		else
451
			startInterp = t - 1
452
			finishInterp = t
453
		end
454
	end
455
	return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp
456
end
457
458
function Clerp(a, b, t)
459
	local qa = {QuaternionFromCFrame(a)}
460
	local qb = {QuaternionFromCFrame(b)}
461
	local ax, ay, az = a.x, a.y, a.z
462
	local bx, by, bz = b.x, b.y, b.z
463
	local _t = 1 - t
464
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
465
end
466
467
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
468
	local frame = IT("Frame")
469
	frame.BackgroundTransparency = TRANSPARENCY
470
	frame.BorderSizePixel = BORDERSIZEPIXEL
471
	frame.Position = POSITION
472
	frame.Size = SIZE
473
	frame.BackgroundColor3 = COLOR
474
	frame.BorderColor3 = BORDERCOLOR
475
	frame.Name = NAME
476
	frame.Parent = PARENT
477
	return frame
478
end
479
480
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
481
	local label = IT("TextLabel")
482
	label.BackgroundTransparency = 1
483
	label.Size = UD2(1, 0, 1, 0)
484
	label.Position = UD2(0, 0, 0, 0)
485
	label.TextColor3 = TEXTCOLOR
486
	label.TextStrokeTransparency = STROKETRANSPARENCY
487
	label.TextTransparency = TRANSPARENCY
488
	label.FontSize = TEXTFONTSIZE
489
	label.Font = TEXTFONT
490
	label.BorderSizePixel = BORDERSIZEPIXEL
491
	label.TextScaled = false
492
	label.Text = TEXT
493
	label.Name = NAME
494
	label.Parent = PARENT
495
	return label
496
end
497
498
function NoOutlines(PART)
499
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
500
end
501
502
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
503
	local NEWWELD = IT(TYPE)
504
	NEWWELD.Part0 = PART0
505
	NEWWELD.Part1 = PART1
506
	NEWWELD.C0 = C0
507
	NEWWELD.C1 = C1
508
	NEWWELD.Parent = PARENT
509
	return NEWWELD
510
end
511
512
local S = IT("Sound")
513
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
514
	local NEWSOUND = nil
515
	coroutine.resume(coroutine.create(function()
516
		NEWSOUND = S:Clone()
517
		NEWSOUND.Parent = PARENT
518
		NEWSOUND.Volume = VOLUME
519
		NEWSOUND.Pitch = PITCH
520
		NEWSOUND.SoundId = "1753701701"..ID
521
		NEWSOUND:play()
522
		if DOESLOOP == true then
523
			NEWSOUND.Looped = true
524
		else
525
			repeat wait(1) until NEWSOUND.Playing == false or NEWSOUND.Parent ~= PARENT
526
			NEWSOUND:remove()
527
		end
528
	end))
529
	return NEWSOUND
530
end
531
532
function CFrameFromTopBack(at, top, back)
533
	local right = top:Cross(back)
534
	return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
535
end
536
537
--WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
538
function WACKYEFFECT(Table)
539
	local TYPE = (Table.EffectType or "Sphere")
540
	local SIZE = (Table.Size or VT(1,1,1))
541
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
542
	local TRANSPARENCY = (Table.Transparency or 0)
543
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
544
	local CFRAME = (Table.CFrame or Torso.CFrame)
545
	local MOVEDIRECTION = (Table.MoveToPos or nil)
546
	local ROTATION1 = (Table.RotationX or 0)
547
	local ROTATION2 = (Table.RotationY or 0)
548
	local ROTATION3 = (Table.RotationZ or 0)
549
	local MATERIAL = (Table.Material or "Neon")
550
	local COLOR = (Table.Color or C3(1,1,1))
551
	local TIME = (Table.Time or 45)
552
	local SOUNDID = (Table.SoundID or nil)
553
	local SOUNDPITCH = (Table.SoundPitch or nil)
554
	local SOUNDVOLUME = (Table.SoundVolume or nil)
555
	coroutine.resume(coroutine.create(function()
556
		local PLAYSSOUND = false
557
		local SOUND = nil
558
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
559
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
560
			PLAYSSOUND = true
561
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
562
		end
563
		EFFECT.Color = COLOR
564
		local MSH = nil
565
		if TYPE == "Sphere" then
566
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
567
		elseif TYPE == "Block" then
568
			MSH = IT("BlockMesh",EFFECT)
569
			MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
570
		elseif TYPE == "Wave" then
571
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
572
		elseif TYPE == "Ring" then
573
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
574
		elseif TYPE == "Slash" then
575
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
576
		elseif TYPE == "Round Slash" then
577
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
578
		elseif TYPE == "Swirl" then
579
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
580
		elseif TYPE == "Skull" then
581
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
582
		elseif TYPE == "Crystal" then
583
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
584
		end
585
		if MSH ~= nil then
586
			local MOVESPEED = nil
587
			if MOVEDIRECTION ~= nil then
588
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
589
			end
590
			local GROWTH = SIZE - ENDSIZE
591
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
592
			if TYPE == "Block" then
593
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
594
			else
595
				EFFECT.CFrame = CFRAME
596
			end
597
			for LOOP = 1, TIME+1 do
598
				Swait()
599
				MSH.Scale = MSH.Scale - GROWTH/TIME
600
				if TYPE == "Wave" then
601
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
602
				end
603
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
604
				if TYPE == "Block" then
605
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
606
				else
607
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
608
				end
609
				if MOVEDIRECTION ~= nil then
610
					local ORI = EFFECT.Orientation
611
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
612
					EFFECT.Orientation = ORI
613
				end
614
			end
615
			if PLAYSSOUND == false then
616
				EFFECT:remove()
617
			else
618
				SOUND.Stopped:Connect(function()
619
					EFFECT:remove()
620
				end)
621
			end
622
		else
623
			if PLAYSSOUND == false then
624
				EFFECT:remove()
625
			else
626
				repeat Swait() until SOUND.Playing == false
627
				EFFECT:remove()
628
			end
629
		end
630
	end))
631
end
632
633
function MakeForm(PART,TYPE)
634
	if TYPE == "Cyl" then
635
		local MSH = IT("CylinderMesh",PART)
636
	elseif TYPE == "Ball" then
637
		local MSH = IT("SpecialMesh",PART)
638
		MSH.MeshType = "Sphere"
639
	elseif TYPE == "Wedge" then
640
		local MSH = IT("SpecialMesh",PART)
641
		MSH.MeshType = "Wedge"
642
	end
643
end
644
645
function SpawnTrail(FROM,TO,BIG)
646
	local TRAIL = CreatePart(3, Effects, "Neon", 0, 0.5, "Bright yellow", "Trail", VT(0,0,0))
647
	MakeForm(TRAIL,"Cyl")
648
	local DIST = (FROM - TO).Magnitude
649
	if BIG == true then
650
		TRAIL.Size = VT(0.5,DIST,0.5)
651
	else
652
		TRAIL.Size = VT(0.25,DIST,0.25)
653
	end
654
	TRAIL.CFrame = CF(FROM, TO) * CF(0, 0, -DIST/2) * ANGLES(RAD(90),RAD(0),RAD(0))
655
	coroutine.resume(coroutine.create(function()
656
		for i = 1, 5 do
657
			Swait()
658
			TRAIL.Transparency = TRAIL.Transparency + 0.1
659
		end
660
		TRAIL:remove()
661
	end))
662
end
663
664
Debris = game:GetService("Debris")
665
666
function CastProperRay(StartPos, EndPos, Distance, Ignore)
667
	local DIRECTION = CF(StartPos,EndPos).lookVector
668
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
669
end
670
671
function turnto(position)
672
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
673
end
674
675
--//=================================\\
676
--||	     WEAPON CREATION
677
--\\=================================//
678
679
local Particle = IT("ParticleEmitter",nil)
680
Particle.Enabled = false
681
Particle.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.3),NumberSequenceKeypoint.new(0.3,0),NumberSequenceKeypoint.new(1,1)})
682
Particle.LightEmission = 0.5
683
Particle.Rate = 150
684
Particle.ZOffset = 0.2
685
Particle.Rotation = NumberRange.new(-180, 180)
686
Particle.RotSpeed = NumberRange.new(-180, 180)
687
Particle.Texture = "http://www.roblox.com/asset/?id=304437537"
688
Particle.Color = ColorSequence.new(C3(1,0,0),C3(0.4,0,0))
689
690
--ParticleEmitter({Speed = 5, Drag = 0, Size1 = 1, Size2 = 5, Lifetime1 = 1, Lifetime2 = 1.5, Parent = Torso, Emit = 100, Offset = 360, Enabled = false})
691
function ParticleEmitter(Table)
692
	local PRTCL = Particle:Clone()
693
	local Speed = Table.Speed or 5
694
	local Drag = Table.Drag or 0
695
	local Size1 = Table.Size1 or 1
696
	local Size2 = Table.Size2 or 5
697
	local Lifetime1 = Table.Lifetime1 or 1
698
	local Lifetime2 = Table.Lifetime2 or 1.5
699
	local Parent = Table.Parent or Torso
700
	local Emit = Table.Emit or 100
701
	local Offset = Table.Offset or 360
702
	local Acel = Table.Acel or VT(0,0,0)
703
	local Enabled = Table.Enabled or false
704
	PRTCL.Parent = Parent
705
	PRTCL.Size = NumberSequence.new(Size1,Size2)
706
	PRTCL.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
707
	PRTCL.Speed = NumberRange.new(Speed)
708
	PRTCL.VelocitySpread = Offset
709
	PRTCL.Drag = Drag
710
	PRTCL.Acceleration = Acel
711
	if Enabled == false then
712
		PRTCL:Emit(Emit)
713
		Debris:AddItem(PRTCL,Lifetime2)
714
	else
715
		PRTCL.Enabled = true
716
	end
717
	return PRTCL
718
end
719
720
local Handle = CreatePart(3, Weapon, "Metal", 0, 0, "Lime green", "Part", VT(0.2,0.6,0.2),false)
721
local RightArmGrasp = CreateWeldOrSnapOrMotor("Weld", Handle, RightArm, Handle, CF(0,-1, 0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0.21, 0))
722
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Lime green", "Part", VT(0.2,0.5,0.2),false)
723
MakeForm(Part,"Wedge")
724
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.3, 0.2) * ANGLES(RAD(0), RAD(180), RAD(0)), CF(0, 0, 0))
725
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Lime green", "Part", VT(0.2,0.3,0.2),false)
726
MakeForm(Part,"Wedge")
727
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(180)), CF(0, 0, 0))
728
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Deep orange", "Part", VT(0.3,0.3,0.3),false)
729
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.5, 0.2) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
730
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Deep orange", "Part", VT(0.3,0.5,0.5),false)
731
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
732
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "New Yeller", "Part", VT(0.4,0.4,0.4),false)
733
MakeForm(Part,"Cyl")
734
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
735
for i = 1, 8 do
736
	local Piece = CreatePart(3, Weapon, "Metal", 0, 0, "Really red", "Eye", VT(0,0.35,0.41),false)
737
	CreateWeldOrSnapOrMotor("Weld", Handle, Part, Piece, CF(0, 0, 0) * ANGLES(RAD(0), RAD((360/8)*i), RAD(0)), CF(0, 0, 0))
738
end
739
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "New Yeller", "Eye", VT(0.38,0.41,0.38),false)
740
MakeForm(Part,"Cyl")
741
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
742
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Really red", "Part", VT(0.37,0.5,0.37),false)
743
MakeForm(Part,"Ball")
744
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.3) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
745
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Deep orange", "Part", VT(0.2,0.7,0.4),false)
746
MakeForm(Part,"Wedge")
747
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.7, 0.5) * ANGLES(RAD(90), RAD(180), RAD(180)), CF(0, 0, 0))
748
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Deep orange", "Part", VT(0.3,0.4,0.2),false)
749
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
750
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Deep orange", "Part", VT(0.35,0.35,0.35),false)
751
MakeForm(Part,"Cyl")
752
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
753
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Really red", "Part", VT(0.5,0.1,0.5),false)
754
MakeForm(Part,"Cyl")
755
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
756
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "White", "Part", VT(0.5,0.1,0.45),false)
757
MakeForm(Part,"Cyl")
758
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1.1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
759
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "White", "Part", VT(0.2,0.5,0.2),false)
760
MakeForm(Part,"Wedge")
761
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.55, 0.2) * ANGLES(RAD(-135), RAD(0), RAD(0)), CF(0, -0.3, 0))
762
local LASTPART = Handle
763
for i = 1, 10 do
764
	if LASTPART == Handle then
765
		local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Deep orange", "Part", VT(0.1,0.2,0),false)
766
		LASTPART = Part
767
		CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.1, 0.2) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
768
	else
769
		local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Deep orange", "Part", VT(0.1,0.05,0),false)
770
		CreateWeldOrSnapOrMotor("Weld", Handle, LASTPART, Part, CF(0, 0.025, 0) * ANGLES(RAD(8), RAD(0), RAD(0)), CF(0, -0.025, 0))
771
		LASTPART = Part
772
	end
773
end
774
775
local Barrel = CreatePart(3, Weapon, "Metal", 0, 0, "Lime green", "Part", VT(0.15,2,0.15),false)
776
MakeForm(Barrel,"Cyl")
777
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Barrel, CF(0, -0.6, 1.8) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
778
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Lime green", "Part", VT(0.25,1,0.25),false)
779
MakeForm(Part,"Cyl")
780
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, -0.6, 0), CF(0, 0, 0))
781
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Deep orange", "Part", VT(0,0.1,0.2),false)
782
MakeForm(Part,"Wedge")
783
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, 0.945, 0.1) * ANGLES(RAD(180), RAD(0), RAD(0)), CF(0, 0, 0))
784
local Hole = CreatePart(3, Weapon, "Metal", 0, 0, "Deep orange", "Eye", VT(0.125,0,0.125),false)
785
MakeForm(Hole,"Cyl")
786
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Hole, CF(0, 0.98, 0), CF(0, 0, 0))
787
local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Deep orange", "Part", VT(0,0,0),false)
788
local GEARWELD = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0))
789
CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.8,0.8,1.5), VT(0,0,0.2))
790
local Part = CreatePart(3, Weapon, "Metal", 0, 0.5, "Deep orange", "Eye", VT(0,0,0),false)
791
local GEARWELD2 = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0))
792
CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.9,0.9,0.3), VT(0,0,0.2))
793
coroutine.resume(coroutine.create(function()
794
	while wait() do
795
		GEARWELD.C0 = GEARWELD.C0 * ANGLES(RAD(0), RAD(0), RAD(5))
796
		GEARWELD2.C0 = GEARWELD2.C0 * ANGLES(RAD(0), RAD(0), RAD(-5))
797
	end
798
end))
799
800
ParticleEmitter({Speed = 0.2, Drag = 0, Size1 = 0.1, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.5, Parent = Hole, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
801
--ParticleEmitter({Speed = 0.5, Drag = 0, Size1 = 0.2, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.7, Parent = Dangle, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
802
803
for _, c in pairs(Weapon:GetDescendants()) do
804
	if c.ClassName == "Part" and c.Name ~= "Eye" and c.Parent ~= Effects and c.Parent.Parent ~= Effects then
805
		c.Material = "Glass"
806
		c.Color = C3(0,0,0)
807
	elseif c.ClassName == "Part" and c.Name == "Eye" then
808
		c.Color = C3(1,0,0)
809
		c.Material = "Neon"
810
	end
811
end
812
813
Weapon.Parent = Character
814
for _, c in pairs(Weapon:GetChildren()) do
815
	if c.ClassName == "Part" then
816
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
817
	end
818
end
819
820
local SKILLTEXTCOLOR = C3(1,0,0)
821
local SKILLFONT = "Antique"
822
local SKILLTEXTSIZE = 7
823
824
Humanoid.Died:connect(function()
825
	ATTACK = true
826
end)
827
828
local SKILL1FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.1, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
829
--[[local SKILL2FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.63, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame")
830
local SKILL3FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.215, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame")
831
local SKILL4FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.525, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame")
832
local SKILL5FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame")
833
]]
834
local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Banisher Bullet", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 1")
835
--[[local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Ability 2", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 2")
836
local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Ability 3", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 3")
837
local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Ability 4", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 4")
838
local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[X] Mercy", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 5")
839
]]
840
function printbye(Name)
841
	local MESSAGES = {"You cannot struggle, ","Your existance is an insult, ","Fade, ","Your existance is not desired, ","You are not permitted here, ","You are not to decide your fate, ","Be gone, ","You are already dead, ","Your live is an anomaly, ","Don't dare to return, ","Why are you resisting, ","You cannot exist here, ","Why are you struggling, ","Your fate was already decided, ","Goodbye, ","You cannot ignore my command, ","You cannot resist my command, ","You already died, "}
842
	warn(MESSAGES[MRANDOM(1,#MESSAGES)]..Name..".")	
843
end
844
845
workspace.ChildAdded:connect(function(instance)
846
    for BANISH = 1, #TOBANISH do
847
		if TOBANISH[BANISH] ~= nil then
848
			if instance.Name == TOBANISH[BANISH] then
849
				coroutine.resume(coroutine.create(function()
850
					printbye(instance.Name)
851
					instance:ClearAllChildren()
852
					Debris:AddItem(instance,0.0005)
853
				end))
854
			end
855
		end
856
	end
857
end)
858
859
--//=================================\\
860
--||			DAMAGING
861
--\\=================================//
862
863
function Banish(Foe)
864
	if Foe then
865
		coroutine.resume(coroutine.create(function()
866
			--if game.Players:FindFirstChild(Foe.Name) then
867
				table.insert(TOBANISH,Foe.Name)
868
				printbye(Foe.Name)
869
			--end
870
			Foe.Archivable = true
871
			local CLONE = Foe:Clone()
872
			Foe:Destroy()
873
			CLONE.Parent = Effects
874
			CLONE:BreakJoints()
875
			local MATERIALS = {"Glass","Neon"}
876
			for _, c in pairs(CLONE:GetDescendants()) do
877
				if c:IsA("BasePart") then
878
					if c.Name == "Torso" or c.Name == "UpperTorso" or c == CLONE.PrimaryPart then
879
 						CreateSound(340722848, c, 10, 1, false)
880
					end
881
					c.Anchored = true
882
					c.Transparency = c.Transparency + 0.2
883
					c.Material = MATERIALS[MRANDOM(1,2)]
884
					c.Color = C3(1,0,0)
885
					if c.ClassName == "MeshPart" then
886
						c.TextureID = ""
887
					end
888
					if c:FindFirstChildOfClass("SpecialMesh") then
889
						c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
890
					end
891
					if c:FindFirstChildOfClass("Decal") then
892
						c:FindFirstChildOfClass("Decal"):remove()
893
					end
894
					c.Name = "Banished"
895
					c.CanCollide = false
896
				else
897
					c:remove()
898
				end
899
			end
900
			local A = false
901
			for i = 1, 35 do
902
				if A == false then
903
					A = true
904
				elseif A == true then
905
					A = false
906
				end
907
				for _, c in pairs(CLONE:GetDescendants()) do
908
					if c:IsA("BasePart") then
909
						c.Anchored = true
910
						c.Material = MATERIALS[MRANDOM(1,2)]
911
						c.Transparency = c.Transparency + 0.8/35
912
						if A == false then
913
							c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45)
914
						elseif A == true then
915
							c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45)						
916
						end
917
					end
918
				end
919
				Swait()
920
			end
921
			CLONE:remove()
922
		end))
923
	end
924
end
925
926
function ApplyAoE(POSITION,RANGE,ISBANISH)
927
	local CHILDREN = workspace:GetDescendants()
928
	for index, CHILD in pairs(CHILDREN) do
929
		if CHILD.ClassName == "Model" and CHILD ~= Character then
930
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
931
			if HUM then
932
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
933
				if TORSO then
934
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
935
						if ISBANISH == true then
936
							Banish(CHILD)
937
						else
938
							if ISBANISH == "Gravity" then
939
								HUM.PlatformStand = true
940
								if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then
941
									local grav = Instance.new("BodyPosition",TORSO)
942
									grav.D = 15
943
									grav.P = 20000
944
									grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
945
									grav.position = TORSO.Position
946
									grav.Name = "V3BanishForce"..Player.Name
947
								else
948
									TORSO:FindFirstChild("V3BanishForce"..Player.Name).position = TORSO.Position+VT(0,0.3,0)
949
									TORSO.RotVelocity = VT(MRANDOM(-25,25),MRANDOM(-25,25),MRANDOM(-25,25))
950
								end
951
							else
952
								HUM.PlatformStand = false
953
							end
954
						end
955
					elseif ISBANISH == "Gravity" then
956
						if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then
957
							TORSO:FindFirstChild("V3BanishForce"..Player.Name):remove()
958
							HUM.PlatformStand = false
959
						end
960
					end
961
				end
962
			end
963
		end
964
	end
965
end
966
967
--//=================================\\
968
--||	ATTACK FUNCTIONS AND STUFF
969
--\\=================================//
970
971
function Banisher_Bullet()
972
	ATTACK = true
973
	Rooted = false
974
	for i=0, 0.4, 0.1 / Animation_Speed do
975
		Swait()
976
		turnto(Mouse.Hit.p)
977
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
978
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
979
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
980
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
981
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
982
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
983
	end
984
	repeat
985
		for i=0, 0.2, 0.1 / Animation_Speed do
986
			Swait()
987
			turnto(Mouse.Hit.p)
988
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
989
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
990
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
991
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
992
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
993
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
994
		end
995
		local HIT,POS = CastProperRay(Hole.Position, Mouse.Hit.p, 1000, Character)
996
		SpawnTrail(Hole.Position,POS)
997
		if HIT ~= nil then
998
			if HIT.Parent ~= workspace and HIT.Parent.ClassName ~= "Folder" then
999
				Banish(HIT.Parent)
1000
			end
1001
		end
1002
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1003
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 904440937, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
1004
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
1005
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
1006
		for i=0, 0.3, 0.1 / Animation_Speed do
1007
			Swait()
1008
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
1009
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.25 / Animation_Speed)
1010
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(15), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1011
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1012
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1013
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1014
		end
1015
	until KEYHOLD == false
1016
	ATTACK = false
1017
	Rooted = false
1018
end
1019
1020
function AttackTemplate()
1021
	ATTACK = true
1022
	Rooted = false
1023
	for i=0, 1, 0.1 / Animation_Speed do
1024
		Swait()
1025
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1026
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1027
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1028
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1029
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1030
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1031
	end
1032
	ATTACK = false
1033
	Rooted = false
1034
end
1035
1036
--//=================================\\
1037
--||	  ASSIGN THINGS TO KEYS
1038
--\\=================================//
1039
1040
function MouseDown(Mouse)
1041
	if ATTACK == false then
1042
	end
1043
end
1044
1045
function MouseUp(Mouse)
1046
HOLD = false
1047
end
1048
1049
function KeyDown(Key)
1050
	KEYHOLD = true
1051
	if Key == "z" and ATTACK == false then
1052
		Banisher_Bullet()
1053
	end
1054
1055
	if Key == "b" and ATTACK == false then
1056
	end
1057
1058
	if Key == "c" and ATTACK == false then
1059
	end
1060
1061
	if Key == "v" and ATTACK == false then
1062
	end
1063
1064
	if Key == "x" and ATTACK == false then
1065
	end
1066
end
1067
1068
function KeyUp(Key)
1069
	KEYHOLD = false
1070
end
1071
1072
	Mouse.Button1Down:connect(function(NEWKEY)
1073
		MouseDown(NEWKEY)
1074
	end)
1075
	Mouse.Button1Up:connect(function(NEWKEY)
1076
		MouseUp(NEWKEY)
1077
	end)
1078
	Mouse.KeyDown:connect(function(NEWKEY)
1079
		KeyDown(NEWKEY)
1080
	end)
1081
	Mouse.KeyUp:connect(function(NEWKEY)
1082
		KeyUp(NEWKEY)
1083
	end)
1084
1085
--//=================================\\
1086
--\\=================================//
1087
1088
1089
function unanchor()
1090
	if UNANCHOR == true then
1091
		g = Character:GetChildren()
1092
		for i = 1, #g do
1093
			if g[i].ClassName == "Part" then
1094
				g[i].Anchored = false
1095
			end
1096
		end
1097
	end
1098
end
1099
1100
1101
--//=================================\\
1102
--||	WRAP THE WHOLE SCRIPT UP
1103
--\\=================================//
1104
1105
Humanoid.Changed:connect(function(Jump)
1106
	if Jump == "Jump" and (Disable_Jump == true) then
1107
		Humanoid.Jump = false
1108
	end
1109
end)
1110
1111
local CONNECT = nil
1112
1113
while true do
1114
	Swait()
1115
	ANIMATE.Parent = nil
1116
	if Character:FindFirstChildOfClass("Humanoid") == nil then
1117
		Humanoid = IT("Humanoid",Character)
1118
	end
1119
	for _,v in next, Humanoid:GetPlayingAnimationTracks() do
1120
	    v:Stop();
1121
	end
1122
	SINE = SINE + CHANGE
1123
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1124
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1125
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
1126
	local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
1127
	if ANIM == "Walk" and TORSOVELOCITY > 1 then
1128
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.15 * COS(SINE / (WALKSPEEDVALUE / 2))) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1129
		Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(2.5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1130
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 0.875 - 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.125 * COS(SINE / WALKSPEEDVALUE) +0.2+ 0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1131
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 0.875 + 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), 0.125 * COS(SINE / WALKSPEEDVALUE) +0.2+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
1132
	elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
1133
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1134
		Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1135
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1136
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1137
	end
1138
	if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
1139
		ANIM = "Jump"
1140
		if ATTACK == false then
1141
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1142
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1143
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(25))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1144
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
1145
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.3) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
1146
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed)
1147
	    end
1148
	elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
1149
		ANIM = "Fall"
1150
		if ATTACK == false then
1151
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1152
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1153
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(25))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1154
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
1155
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 0.2 / Animation_Speed)
1156
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
1157
		end
1158
	elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
1159
		ANIM = "Idle"
1160
		if ATTACK == false then
1161
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-45)), 0.15 / Animation_Speed)
1162
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(45)), 0.15 / Animation_Speed)
1163
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5, -0.5) * ANGLES(RAD(75), RAD(45), RAD(-25))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1164
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5, 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1165
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1166
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1167
		end
1168
	elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
1169
		ANIM = "Walk"
1170
		if ATTACK == false then
1171
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1172
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 8 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1173
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.1, -0.4) * ANGLES(RAD(150), RAD(0), RAD(0))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1174
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-60 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(-5)) * LEFTSHOULDERC0, 0.35 / Animation_Speed)
1175
			RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 2 / Animation_Speed)
1176
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(15)), 2 / Animation_Speed)
1177
		end
1178
	end
1179
	unanchor()
1180
	Humanoid.MaxHealth = "inf"
1181
	Humanoid.Health = "inf"
1182
	if Rooted == false then
1183
		Disable_Jump = false
1184
		Humanoid.WalkSpeed = Speed
1185
	elseif Rooted == true then
1186
		Disable_Jump = true
1187
		Humanoid.WalkSpeed = 0
1188
	end
1189
	sick.Parent = Torso
1190
	sick:resume()
1191
	sick.Volume = 5
1192
	sick.Pitch = 1
1193
	sick.SoundId = "https://www.roblox.com/library/1753701701/The-Muffin-Song-FULL-VERSION"
1194
	sick.Name = "BanishV3Music"
1195
end
1196
1197
--//=================================\\
1198
--\\=================================//
1199
1200
1201
1202
1203
1204
--//====================================================\\--
1205
--||			  		 END OF SCRIPT
1206
--\\====================================================//--