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