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