View difference between Paste ID: JUg6VxDJ and JAj1WYtu
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
2
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
3
local RealPlayer = Player
4
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()}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;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 t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u end end,__call=function(self,...)local t=rawget(self,"_RealService")if t then return t(...)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 self[t]end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;x.RunService=v({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")setmetatable(x,{__index=function(self,t)return r:GetService(t)or typeof(r[t])=="function"and function(m,...)return r[t](r,...)end or r[t]end,__newindex=s.__newindex,__call=s.__call})game,owner=x,x.Players.LocalPlayer end
5
--//====================================================\\--
6
--||			   CREATED BY SHACKLUSTER
7
--\\====================================================//--
8
9
wait(0.2)
10
11
Player = game:GetService("Players").LocalPlayer
12
PlayerGui = Player.PlayerGui
13
Cam = workspace.CurrentCamera
14
Backpack = Player.Backpack
15
Character = Player.Character
16
Humanoid = Character.Humanoid
17
Mouse = Player:GetMouse()
18
RootPart = Character["HumanoidRootPart"]
19
Torso = Character["Torso"]
20
Head = Character["Head"]
21
RightArm = Character["Right Arm"]
22
LeftArm = Character["Left Arm"]
23
RightLeg = Character["Right Leg"]
24
LeftLeg = Character["Left Leg"]
25
RootJoint = RootPart["RootJoint"]
26
Neck = Torso["Neck"]
27
RightShoulder = Torso["Right Shoulder"]
28
LeftShoulder = Torso["Left Shoulder"]
29
RightHip = Torso["Right Hip"]
30
LeftHip = Torso["Left Hip"]
31
local sick = Instance.new("Sound",Character)
32
sick.SoundId = "rbxassetid://1175187234"
33
sick.Looped = true
34
sick.Pitch = 1
35
sick.Volume = 1
36
sick:Play()
37
38
IT = Instance.new
39
CF = CFrame.new
40
VT = Vector3.new
41
RAD = math.rad
42
C3 = Color3.new
43
UD2 = UDim2.new
44
BRICKC = BrickColor.new
45
ANGLES = CFrame.Angles
46
EULER = CFrame.fromEulerAnglesXYZ
47
COS = math.cos
48
ACOS = math.acos
49
SIN = math.sin
50
ASIN = math.asin
51
ABS = math.abs
52
MRANDOM = math.random
53
FLOOR = math.floor
54
55
--//=================================\\
56
--|| 	      USEFUL VALUES
57
--\\=================================//
58
59
Animation_Speed = 3
60
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
61
local Speed = 25
62
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
63
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
64
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
65
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
66
local DAMAGEMULTIPLIER = 1
67
local ANIM = "Idle"
68
local ATTACK = false
69
local EQUIPPED = false
70
local HOLD = false
71
local COMBO = 1
72
local Rooted = false
73
local SINE = 0
74
local KEYHOLD = false
75
local CHANGE = 2 / Animation_Speed
76
local WALKINGANIM = false
77
local VALUE1 = false
78
local VALUE2 = false
79
local ROBLOXIDLEANIMATION = IT("Animation")
80
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
81
ROBLOXIDLEANIMATION.AnimationId = "http://leaaa.gevsfpsb.legsq.nl5.gsr.awhoer.net/asset/?id=180435571"
82
--ROBLOXIDLEANIMATION.Parent = Humanoid
83
local WEAPONGUI = IT("ScreenGui", PlayerGui)
84
WEAPONGUI.Name = "Weapon GUI"
85
local Effects = IT("Folder", Character)
86
Effects.Name = "Effects"
87
local ANIMATOR = Humanoid.Animator
88
local ANIMATE = Character.Animate
89
local UNANCHOR = true
90
local PLAYMAINANIM = true
91
local BOLTSOUNDS = {168586621,168586586,178452241}
92
93
--//=================================\\
94
--\\=================================//
95
96
97
--//=================================\\
98
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
99
--\\=================================//
100
101
ArtificialHB = Instance.new("BindableEvent", script)
102
ArtificialHB.Name = "ArtificialHB"
103
104
script:WaitForChild("ArtificialHB")
105
106
frame = Frame_Speed
107
tf = 0
108
allowframeloss = false
109
tossremainder = false
110
lastframe = tick()
111
script.ArtificialHB:Fire()
112
113
game:GetService("RunService").Heartbeat:connect(function(s, p)
114
	tf = tf + s
115
	if tf >= frame then
116
		if allowframeloss then
117
			script.ArtificialHB:Fire()
118
			lastframe = tick()
119
		else
120
			for i = 1, math.floor(tf / frame) do
121
				script.ArtificialHB:Fire()
122
			end
123
		lastframe = tick()
124
		end
125
		if tossremainder then
126
			tf = 0
127
		else
128
			tf = tf - frame * math.floor(tf / frame)
129
		end
130
	end
131
end)
132
133
--//=================================\\
134
--\\=================================//
135
136
--//=================================\\
137
--|| 	      SOME FUNCTIONS
138
--\\=================================//
139
140
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
141
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
142
end
143
144
function PositiveAngle(NUMBER)
145
	if NUMBER >= 0 then
146
		NUMBER = 0
147
	end
148
	return NUMBER
149
end
150
151
function NegativeAngle(NUMBER)
152
	if NUMBER <= 0 then
153
		NUMBER = 0
154
	end
155
	return NUMBER
156
end
157
158
function Swait(NUMBER)
159
	if NUMBER == 0 or NUMBER == nil then
160
		ArtificialHB.Event:wait()
161
	else
162
		for i = 1, NUMBER do
163
			ArtificialHB.Event:wait()
164
		end
165
	end
166
end
167
168
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
169
	local NEWMESH = IT(MESH)
170
	if MESH == "SpecialMesh" then
171
		NEWMESH.MeshType = MESHTYPE
172
		if MESHID ~= "nil" and MESHID ~= "" then
173
			NEWMESH.MeshId = "http://leaaa.gevsfpsb.legsq.nl5.gsr.awhoer.net/asset/?id="..MESHID
174
		end
175
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
176
			NEWMESH.TextureId = "http://leaaa.gevsfpsb.legsq.nl5.gsr.awhoer.net/asset/?id="..TEXTUREID
177
		end
178
	end
179
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
180
	NEWMESH.Scale = SCALE
181
	NEWMESH.Parent = PARENT
182
	return NEWMESH
183
end
184
185
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
186
	local NEWPART = IT("Part")
187
	NEWPART.formFactor = FORMFACTOR
188
	NEWPART.Reflectance = REFLECTANCE
189
	NEWPART.Transparency = TRANSPARENCY
190
	NEWPART.CanCollide = false
191
	NEWPART.Locked = true
192
	NEWPART.Anchored = true
193
	if ANCHOR == false then
194
		NEWPART.Anchored = false
195
	end
196
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
197
	NEWPART.Name = NAME
198
	NEWPART.Size = SIZE
199
	NEWPART.Position = Torso.Position
200
	NEWPART.Material = MATERIAL
201
	NEWPART:BreakJoints()
202
	NEWPART.Parent = PARENT
203
	return NEWPART
204
end
205
206
	local function weldBetween(a, b)
207
	    local weldd = Instance.new("ManualWeld")
208
	    weldd.Part0 = a
209
	    weldd.Part1 = b
210
	    weldd.C0 = CFrame.new()
211
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
212
	    weldd.Parent = a
213
	    return weldd
214
	end
215
216
217
function QuaternionFromCFrame(cf)
218
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
219
	local trace = m00 + m11 + m22
220
	if trace > 0 then 
221
		local s = math.sqrt(1 + trace)
222
		local recip = 0.5 / s
223
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
224
	else
225
		local i = 0
226
		if m11 > m00 then
227
			i = 1
228
		end
229
		if m22 > (i == 0 and m00 or m11) then
230
			i = 2
231
		end
232
		if i == 0 then
233
			local s = math.sqrt(m00 - m11 - m22 + 1)
234
			local recip = 0.5 / s
235
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
236
		elseif i == 1 then
237
			local s = math.sqrt(m11 - m22 - m00 + 1)
238
			local recip = 0.5 / s
239
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
240
		elseif i == 2 then
241
			local s = math.sqrt(m22 - m00 - m11 + 1)
242
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
243
		end
244
	end
245
end
246
 
247
function QuaternionToCFrame(px, py, pz, x, y, z, w)
248
	local xs, ys, zs = x + x, y + y, z + z
249
	local wx, wy, wz = w * xs, w * ys, w * zs
250
	local xx = x * xs
251
	local xy = x * ys
252
	local xz = x * zs
253
	local yy = y * ys
254
	local yz = y * zs
255
	local zz = z * zs
256
	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))
257
end
258
 
259
function QuaternionSlerp(a, b, t)
260
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
261
	local startInterp, finishInterp;
262
	if cosTheta >= 0.0001 then
263
		if (1 - cosTheta) > 0.0001 then
264
			local theta = ACOS(cosTheta)
265
			local invSinTheta = 1 / SIN(theta)
266
			startInterp = SIN((1 - t) * theta) * invSinTheta
267
			finishInterp = SIN(t * theta) * invSinTheta
268
		else
269
			startInterp = 1 - t
270
			finishInterp = t
271
		end
272
	else
273
		if (1 + cosTheta) > 0.0001 then
274
			local theta = ACOS(-cosTheta)
275
			local invSinTheta = 1 / SIN(theta)
276
			startInterp = SIN((t - 1) * theta) * invSinTheta
277
			finishInterp = SIN(t * theta) * invSinTheta
278
		else
279
			startInterp = t - 1
280
			finishInterp = t
281
		end
282
	end
283
	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
284
end
285
286
function Clerp(a, b, t)
287
	local qa = {QuaternionFromCFrame(a)}
288
	local qb = {QuaternionFromCFrame(b)}
289
	local ax, ay, az = a.x, a.y, a.z
290
	local bx, by, bz = b.x, b.y, b.z
291
	local _t = 1 - t
292
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
293
end
294
295
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
296
	local frame = IT("Frame")
297
	frame.BackgroundTransparency = TRANSPARENCY
298
	frame.BorderSizePixel = BORDERSIZEPIXEL
299
	frame.Position = POSITION
300
	frame.Size = SIZE
301
	frame.BackgroundColor3 = COLOR
302
	frame.BorderColor3 = BORDERCOLOR
303
	frame.Name = NAME
304
	frame.Parent = PARENT
305
	return frame
306
end
307
308
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
309
	local label = IT("TextLabel")
310
	label.BackgroundTransparency = 1
311
	label.Size = UD2(1, 0, 1, 0)
312
	label.Position = UD2(0, 0, 0, 0)
313
	label.TextColor3 = TEXTCOLOR
314
	label.TextStrokeTransparency = STROKETRANSPARENCY
315
	label.TextTransparency = TRANSPARENCY
316
	label.FontSize = TEXTFONTSIZE
317
	label.Font = TEXTFONT
318
	label.BorderSizePixel = BORDERSIZEPIXEL
319
	label.TextScaled = false
320
	label.Text = TEXT
321
	label.Name = NAME
322
	label.Parent = PARENT
323
	return label
324
end
325
326
function NoOutlines(PART)
327
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
328
end
329
330
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
331
	local NEWWELD = IT(TYPE)
332
	NEWWELD.Part0 = PART0
333
	NEWWELD.Part1 = PART1
334
	NEWWELD.C0 = C0
335
	NEWWELD.C1 = C1
336
	NEWWELD.Parent = PARENT
337
	return NEWWELD
338
end
339
340
local S = IT("Sound")
341
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
342
	local NEWSOUND = nil
343
	coroutine.resume(coroutine.create(function()
344
		NEWSOUND = S:Clone()
345
		NEWSOUND.Parent = PARENT
346
		NEWSOUND.Volume = VOLUME
347
		NEWSOUND.Pitch = PITCH
348
		NEWSOUND.SoundId = "http://leaaa.gevsfpsb.legsq.nl5.gsr.awhoer.net/asset/?id="..ID
349
		NEWSOUND:play()
350
		if DOESLOOP == true then
351
			NEWSOUND.Looped = true
352
		else
353
			repeat wait(1) until NEWSOUND.Playing == false
354
			NEWSOUND:remove()
355
		end
356
	end))
357
	return NEWSOUND
358
end
359
360
local EyeSizes={
361
	NumberSequenceKeypoint.new(0,2,0),
362
	NumberSequenceKeypoint.new(1,0,0)
363
}
364
local EyeTrans={
365
	NumberSequenceKeypoint.new(0,0.5,0),
366
	NumberSequenceKeypoint.new(1,1,0)
367
}
368
local PE=Instance.new("ParticleEmitter",nil)
369
PE.LightEmission=.8
370
PE.Color = ColorSequence.new(BRICKC("Really Red").Color,BRICKC("Really Red").Color)
371
PE.Size=NumberSequence.new(EyeSizes)
372
PE.Transparency=NumberSequence.new(EyeTrans)
373
PE.Lifetime=NumberRange.new(0.35,1)
374
PE.Rotation=NumberRange.new(0,360)
375
PE.Rate=100
376
PE.VelocitySpread = 10000
377
PE.Acceleration = Vector3.new(0,85,0)
378
PE.Drag = 5
379
PE.Speed = NumberRange.new(0.1,5)
380
PE.Texture="http://leaaa.gevsfpsb.legsq.nl5.gsr.awhoer.net/asset/?id=1460745664"
381
PE.ZOffset = 0.5
382
PE.Name = "PE"
383
PE.Enabled = false
384
385
function Fire(art)
386
	local PARTICLES = PE:Clone()
387
	PARTICLES.Parent = art
388
	PARTICLES.Enabled = true
389
	return PARTICLES
390
end
391
392
function CFrameFromTopBack(at, top, back)
393
	local right = top:Cross(back)
394
	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)
395
end
396
397
--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})
398
function WACKYEFFECT(Table)
399
	local TYPE = (Table.EffectType or "Sphere")
400
	local SIZE = (Table.Size or VT(1,1,1))
401
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
402
	local TRANSPARENCY = (Table.Transparency or 0)
403
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
404
	local CFRAME = (Table.CFrame or Torso.CFrame)
405
	local MOVEDIRECTION = (Table.MoveToPos or nil)
406
	local ROTATION1 = (Table.RotationX or 0)
407
	local ROTATION2 = (Table.RotationY or 0)
408
	local ROTATION3 = (Table.RotationZ or 0)
409
	local MATERIAL = (Table.Material or "Neon")
410
	local COLOR = (Table.Color or C3(1,1,1))
411
	local TIME = (Table.Time or 45)
412
	local SOUNDID = (Table.SoundID or nil)
413
	local SOUNDPITCH = (Table.SoundPitch or nil)
414
	local SOUNDVOLUME = (Table.SoundVolume or nil)
415
	coroutine.resume(coroutine.create(function()
416
		local PLAYSSOUND = false
417
		local SOUND = nil
418
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Really Red"), "Effect", VT(1,1,1), true)
419
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
420
			PLAYSSOUND = true
421
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
422
		end
423
		EFFECT.Color = COLOR
424
		local MSH = nil
425
		if TYPE == "Sphere" then
426
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
427
		elseif TYPE == "Block" or TYPE == "Box" then
428
			MSH = IT("BlockMesh",EFFECT)
429
			MSH.Scale = SIZE
430
		elseif TYPE == "Wave" then
431
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
432
		elseif TYPE == "Ring" then
433
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
434
		elseif TYPE == "Slash" then
435
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
436
		elseif TYPE == "Round Slash" then
437
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
438
		elseif TYPE == "Swirl" then
439
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
440
		elseif TYPE == "Skull" then
441
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
442
		elseif TYPE == "Crystal" then
443
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
444
		end
445
		if MSH ~= nil then
446
			local MOVESPEED = nil
447
			if MOVEDIRECTION ~= nil then
448
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
449
			end
450
			local GROWTH = SIZE - ENDSIZE
451
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
452
			if TYPE == "Block" then
453
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
454
			else
455
				EFFECT.CFrame = CFRAME
456
			end
457
			for LOOP = 1, TIME+1 do
458
				Swait()
459
				MSH.Scale = MSH.Scale - GROWTH/TIME
460
				if TYPE == "Wave" then
461
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
462
				end
463
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
464
				if TYPE == "Block" then
465
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
466
				else
467
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
468
				end
469
				if MOVEDIRECTION ~= nil then
470
					local ORI = EFFECT.Orientation
471
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
472
					EFFECT.Orientation = ORI
473
				end
474
			end
475
			if PLAYSSOUND == false then
476
				EFFECT:remove()
477
			else
478
				repeat wait(1) until SOUND.Playing == false
479
				EFFECT:remove()
480
			end
481
		else
482
			if PLAYSSOUND == false then
483
				EFFECT:remove()
484
			else
485
				repeat Swait() until SOUND.Playing == false
486
				EFFECT:remove()
487
			end
488
		end
489
	end))
490
end
491
492
function MakeForm(PART,TYPE)
493
	if TYPE == "Cyl" then
494
		local MSH = IT("CylinderMesh",PART)
495
	elseif TYPE == "Ball" then
496
		local MSH = IT("SpecialMesh",PART)
497
		MSH.MeshType = "Sphere"
498
	elseif TYPE == "Wedge" then
499
		local MSH = IT("SpecialMesh",PART)
500
		MSH.MeshType = "Wedge"
501
	end
502
end
503
504
Debris = game:GetService("Debris")
505
506
function CastProperRay(StartPos, EndPos, Distance, Ignore)
507
	local DIRECTION = CF(StartPos,EndPos).lookVector
508
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
509
end
510
511
local HATWELD = nil
512
function Pose(WhichPose,Speed,Time,Magic,Gyro,Tors)
513
	PLAYMAINANIM = false
514
	if WhichPose == "Cast1" then
515
		for i=0, Time, 0.1 / Animation_Speed do
516
			Swait()
517
			if Magic == true then
518
				WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Really Red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
519
			end
520
			if Gyro ~= nil and Gyro ~= false then
521
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
522
			end
523
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(35)), Speed / Animation_Speed)
524
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-35)), Speed / Animation_Speed)
525
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(125), RAD(0), RAD(45)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
526
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
527
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
528
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
529
		end
530
	elseif WhichPose == "Cast2" then
531
		for i=0, Time, 0.1 / Animation_Speed do
532
			Swait()
533
			if Magic == true then
534
				WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Really Red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
535
				WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = LeftArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Really Red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
536
			end
537
			if Gyro ~= nil and Gyro ~= false then
538
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
539
			end
540
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
541
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
542
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(120), RAD(0), RAD(15)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
543
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(120), RAD(0), RAD(-15)) * LEFTSHOULDERC0, Speed / Animation_Speed)
544
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
545
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
546
		end
547
	elseif WhichPose == "RightArmUp" then
548
		for i=0, Time, 0.1 / Animation_Speed do
549
			Swait()
550
			if Magic == true then
551
				WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Really Red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
552
			end
553
			if Gyro ~= nil and Gyro ~= false then
554
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
555
			end
556
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(15)), Speed / Animation_Speed)
557
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-15)), Speed / Animation_Speed)
558
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.2) * ANGLES(RAD(125), RAD(0), RAD(25)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
559
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
560
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
561
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
562
		end
563
	elseif WhichPose == "Taunt" then
564
		for i=0, Time, 0.1 / Animation_Speed do
565
			Swait()
566
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
567
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
568
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(175), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
569
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
570
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
571
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
572
		end
573
		HATWELD.Part0 = RightArm
574
		HATWELD.C0 = CF(0,-1.1,-0.4) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(-20), RAD(0), RAD(0))
575
		CreateSound(221057812,Torso,10,1,false)
576
		for i=0, Time*2, 0.1 / Animation_Speed do
577
			Swait()
578
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
579
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(35 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
580
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(145), RAD(0), RAD(45)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
581
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(5), RAD(25), RAD(-15)) * LEFTSHOULDERC0, Speed / Animation_Speed)
582
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
583
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
584
		end
585
		for i=0, Time, 0.1 / Animation_Speed do
586
			Swait()
587
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
588
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5), RAD(0), RAD(0)), Speed / Animation_Speed)
589
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.65, -0.5) * ANGLES(RAD(175), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
590
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
591
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
592
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
593
			HATWELD.C0 = Clerp(HATWELD.C0, CF(-0.5,-1.2,-0.3) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(35), RAD(0), RAD(35)), Speed / Animation_Speed)
594
		end
595
		HATWELD.Part0 = Head
596
		HATWELD.C0 = CF(0,0.35,0)
597
	elseif WhichPose == "Prepare key" then
598
		for i=0, Time, 0.1 / Animation_Speed do
599
			Swait()
600
			if Gyro ~= nil and Gyro ~= false then
601
				Gyro.cframe = CF(RootPart.Position,Tors.Position)
602
			end
603
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(65)), Speed / Animation_Speed)
604
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-65)), Speed / Animation_Speed)
605
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.25) * ANGLES(RAD(90), RAD(0), RAD(65)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
606
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
607
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
608
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
609
		end
610
	elseif WhichPose == "Turn key" then
611
		for i=0, Time, 0.1 / Animation_Speed do
612
			Swait()
613
			if Gyro ~= nil and Gyro ~= false then
614
				Gyro.cframe = CF(RootPart.Position,Tors.Position)
615
			end
616
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(75)), Speed / Animation_Speed)
617
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-75)), Speed / Animation_Speed)
618
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.25) * ANGLES(RAD(90), RAD(0), RAD(75)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
619
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
620
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
621
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
622
		end
623
	end
624
	PLAYMAINANIM = true
625
end
626
627
--Lightning({Color = C3(1,1,1), Start = Torso.Position, End = Mouse.Hit.p, SegmentL = 2, Thickness = 0.1, DoesFade = false, Ignore = Character, MaxDist = 400, Branches = false})
628
function Lightning(Table)
629
	local Color = Table.Color or C3(1,1,1)
630
	local StartPos = Table.Start or Torso.Position
631
	local EndPos = Table.End or Mouse.Hit.p
632
	local SegmentLength = Table.SegmentL or 2
633
	local Thickness = Table.Thickness or 0.1
634
	local Dissapear = Table.DoesFade or false
635
	local Parent = Table.Ignore or Character
636
	local MaxDist = Table.MaxDist or 400
637
	local Branches = Table.Branches or false
638
	local HIT,HITPOS = CastProperRay(StartPos, EndPos, MaxDist, Parent)
639
	local DISTANCE = math.ceil((StartPos - HITPOS).Magnitude/SegmentLength)
640
	local LIGHTNINGMODEL = IT("Model",Effects)
641
	LIGHTNINGMODEL.Name = "Lightning"
642
	local LastBolt = nil
643
	for E = 1, DISTANCE do
644
		local ExtraSize = (DISTANCE-E)/15
645
		local PART = CreatePart(3, LIGHTNINGMODEL, "Neon", 0, 0, BRICKC("Really Red"), "LightningPart"..E, VT(Thickness+ExtraSize,SegmentLength,Thickness+ExtraSize))
646
		PART.Color = Color
647
		MakeForm(PART,"Cyl")
648
		if LastBolt == nil then
649
			PART.CFrame = CF(StartPos,HITPOS)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
650
		else
651
			PART.CFrame = CF(LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0).p,CF(HITPOS)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))*CF(0,0,SegmentLength/3+(DISTANCE-E)).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
652
		end
653
		LastBolt = PART
654
		if Branches == true then
655
			local CHOICE = MRANDOM(1,7+((DISTANCE-E)*2))
656
			if CHOICE == 1 then
657
				local LASTBRANCH = nil
658
				for i = 1, MRANDOM(2,5) do
659
					local ExtraSize2 = ((DISTANCE-E)/25)/i
660
					local PART = CreatePart(3, LIGHTNINGMODEL, "Neon", 0, 0, BRICKC("Really Red"), "Branch"..E.."-"..i, VT(Thickness+ExtraSize2,SegmentLength,Thickness+ExtraSize2))
661
					PART.Color = Color
662
					MakeForm(PART,"Cyl")
663
					if LASTBRANCH == nil then
664
						PART.CFrame = CF(LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0).p,LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0)*ANGLES(RAD(0),RAD(0),RAD(MRANDOM(0,360)))*CF(0,Thickness*7,0)*CF(0,0,-1).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
665
					else
666
						PART.CFrame = CF(LASTBRANCH.CFrame*CF(0,-LASTBRANCH.Size.Y/2,0).p,LASTBRANCH.CFrame*CF(0,-LASTBRANCH.Size.Y/2,0)*ANGLES(RAD(0),RAD(0),RAD(MRANDOM(0,360)))*CF(0,Thickness*3,0)*CF(0,0,-1).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
667
					end
668
					LASTBRANCH = PART
669
				end
670
			end
671
		end
672
	end
673
	if Dissapear == true then
674
		coroutine.resume(coroutine.create(function()
675
			for i = 1, 10 do
676
				Swait()
677
				for _, c in pairs(LIGHTNINGMODEL:GetChildren()) do
678
					if c.ClassName == "Part" then
679
						c.Transparency = i/10
680
					end
681
				end
682
			end
683
			LIGHTNINGMODEL:remove()
684
		end))
685
	elseif Dissapear == false then
686
		Debris:AddItem(LIGHTNINGMODEL,0.1)
687
	end
688
	return {End = LastBolt.CFrame*CF(0,0,-LastBolt.Size.Z/2).p,LastBolt = LastBolt,Model = LIGHTNINGMODEL}
689
end
690
691
--//=================================\\
692
--||	     WEAPON CREATION
693
--\\=================================//
694
695
for i = 1, 15 do
696
	local FACE = CreatePart(3, Character, "Fabric", 0, 0+(i-1)/15.2, "Dark stone grey", "FaceGradient", VT(1.01,0.58,1.01),false)
697
	FACE.Color = C3(0,0,0)
698
	Head:FindFirstChildOfClass("SpecialMesh"):Clone().Parent = FACE
699
	CreateWeldOrSnapOrMotor("Weld", Head, Head, FACE, CF(0,0.35-(i-1)/35,0), CF(0, 0, 0))
700
end
701
local HAT1 = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really Red", "Hat", VT(2,0.2,2),false)
702
MakeForm(HAT1,"Cyl")
703
HATWELD = CreateWeldOrSnapOrMotor("Weld", Head, Head, HAT1, CF(0,0.35,0), CF(0, 0, 0))
704
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really Red", "Hat", VT(2.01,0.15,2.01),false)
705
BELT.Color = C3(15/255,15/255,15/255)
706
MakeForm(BELT,"Cyl")
707
CreateWeldOrSnapOrMotor("Weld", HAT1, HAT1, BELT, CF(0,0,0), CF(0, 0, 0))
708
local HAT2 = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really Red", "Hat", VT(1.3,2.2,1.3),false)
709
MakeForm(HAT2,"Cyl")
710
CreateWeldOrSnapOrMotor("Weld", HAT1, HAT1, HAT2, CF(0,1.1,0), CF(0, 0, 0))
711
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really Red", "Hat", VT(1.31,0.2,1.31),false)
712
BELT.Color = C3(15/255,15/255,15/255)
713
MakeForm(BELT,"Cyl")
714
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, BELT, CF(0,0,0), CF(0, 0, 0))
715
local GEM = CreatePart(3, Character, "Neon", 0, 0, "Really Red", "Gem", VT(0.25,0.25,0.1),false)
716
MakeForm(GEM,"Ball")
717
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, GEM, CF(0,0,-BELT.Size.X/2), CF(0, 0, 0))
718
local GEM = CreatePart(3, Character, "Neon", 0, 0, "Really Red", "Gem", VT(0.25,0.25,0.1),false)
719
MakeForm(GEM,"Ball")
720
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, GEM, CF(0,0,BELT.Size.X/2), CF(0, 0, 0))
721
local GEM = CreatePart(3, Character, "Neon", 0, 0, "Really Red", "Gem", VT(0.1,0.25,0.25),false)
722
MakeForm(GEM,"Ball")
723
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, GEM, CF(-BELT.Size.X/2,0,0), CF(0, 0, 0))
724
local GEM = CreatePart(3, Character, "Neon", 0, 0, "Really Red", "Gem", VT(0.1,0.25,0.25),false)
725
MakeForm(GEM,"Ball")
726
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, GEM, CF(BELT.Size.X/2,0,0), CF(0, 0, 0))
727
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really Red", "Hat", VT(1.31,0.1,1.31),false)
728
BELT.Color = C3(15/255,15/255,15/255)
729
MakeForm(BELT,"Cyl")
730
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, BELT, CF(0,0.7,0), CF(0, 0, 0))
731
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really Red", "Hat", VT(1.31,0.1,1.31),false)
732
BELT.Color = C3(15/255,15/255,15/255)
733
MakeForm(BELT,"Cyl")
734
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, BELT, CF(0,-0.7,0), CF(0, 0, 0))
735
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really Red", "Hat", VT(1.31,0.1,1.31),false)
736
BELT.Color = C3(15/255,15/255,15/255)
737
MakeForm(BELT,"Cyl")
738
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, BELT, CF(0,0.35,0), CF(0, 0, 0))
739
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really Red", "Hat", VT(1.31,0.1,1.31),false)
740
BELT.Color = C3(15/255,15/255,15/255)
741
MakeForm(BELT,"Cyl")
742
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, BELT, CF(0,-0.35,0), CF(0, 0, 0))
743
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really Red", "Hat", VT(1.3,0.5,1.3),false)
744
MakeForm(BELT,"Ball")
745
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, BELT, CF(0,HAT2.Size.Y/2,0), CF(0, 0, 0))
746
Humanoid.DisplayDistanceType = "None"
747
local naeeym2 = IT("BillboardGui",Character)
748
naeeym2.AlwaysOnTop = true
749
naeeym2.Size = UDim2.new(5,35,2,15)
750-
naeeym2.PlayerToHideFrom = Player
750+
751
naeeym2.MaxDistance = 75
752
naeeym2.Adornee = Character.Head
753
naeeym2.Name = "Name"
754
naeeym2.PlayerToHideFrom = nutta1258
755
local tecks2 = IT("TextLabel",naeeym2)
756
tecks2.BackgroundTransparency = 1
757
tecks2.TextScaled = true
758
tecks2.BorderSizePixel = 0
759
tecks2.Text = "Roblox Warden >:)"
760
tecks2.Font = "Bodoni"
761
tecks2.TextSize = 30
762
tecks2.TextStrokeTransparency = 0.5
763
tecks2.TextColor3 = C3(0,0,0)
764
tecks2.TextStrokeColor3 = BRICKC"Really Red".Color
765
tecks2.Size = UDim2.new(1,0,0.5,0)
766
tecks2.Parent = naeeym2
767
local EYE = CreatePart(3, Character, "Neon", 0, 0, "Really Red", "FaceGradient", VT(0.15,0.15,0.15),false)
768
MakeForm(EYE,"Ball")
769
CreateWeldOrSnapOrMotor("Weld", Head, Head, EYE, CF(0.15,0.22,-0.55), CF(0, 0, 0))
770
local EYE = CreatePart(3, Character, "Neon", 0, 0, "Really Red", "FaceGradient", VT(0.05,0.14,0.05),false)
771
EYE.Color = C3(0,0,0)
772
MakeForm(EYE,"Ball")
773
CreateWeldOrSnapOrMotor("Weld", Head, Head, EYE, CF(0.15,0.22,-0.6), CF(0, 0, 0))
774
local top = Instance.new("Shirt")
775
top.ShirtTemplate = "rbxassetid://94690315"
776
top.Parent = Character
777
top.Name = "Cloth"
778
local bottom = Instance.new("Pants")
779
bottom.PantsTemplate = "rbxassetid://432150706"
780
bottom.Parent = Character
781
bottom.Name = "Cloth"
782
for _, c in pairs(Character:GetChildren()) do
783
	if c.ClassName == "Part" and c.Name ~= "FaceGradient" and c.Name ~= "Hat" and c.Name ~= "Gem" then
784
		c.Material = "Neon"
785
		if c:FindFirstChildOfClass("ParticleEmitter") then
786
			c:FindFirstChildOfClass("ParticleEmitter"):remove()
787
		end
788
		c.Color = C3(1,1,1)
789
		if c == Head then
790
			if c:FindFirstChild("face") then
791
				c.face:remove()
792
			end
793
		end
794
	elseif c.ClassName == "CharacterMesh" or c.ClassName == "Accessory" or c.ClassName == "Hat" or c.Name == "Body Colors" then
795
		c:remove()
796
	elseif (c.ClassName == "Shirt" or c.ClassName == "Pants") and c.Name ~= "Cloth" then
797
		c:remove()
798
	end
799
end
800
local BODY = {}
801
for _, c in pairs(Character:GetDescendants()) do
802
	if c:IsA("BasePart") and c.Name ~= "Handle" then
803
		if c ~= RootPart and c ~= Torso and c ~= Head and c ~= RightArm and c ~= LeftArm and c ~= RightLeg and c ~= LeftLeg then
804
			c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
805
		end
806
		table.insert(BODY,{c,c.Parent,c.Material,c.Color,c.Transparency})
807
	elseif c:IsA("JointInstance") then
808
		table.insert(BODY,{c,c.Parent,nil,nil,nil})
809
	end
810
end
811
for e = 1, #BODY do
812
	if BODY[e] ~= nil then
813
		local STUFF = BODY[e]
814
		local PART = STUFF[1]
815
		local PARENT = STUFF[2]
816
		local MATERIAL = STUFF[3]
817
		local COLOR = STUFF[4]
818
		local TRANSPARENCY = STUFF[5]
819
		if PART.ClassName == "Part" and PART ~= RootPart then
820
			PART.Material = MATERIAL
821
			PART.Color = COLOR
822
			PART.Transparency = TRANSPARENCY
823
		end
824
		PART.AncestryChanged:Connect(function()
825
			PART.Parent = PARENT
826
		end)
827
	end
828
end
829
function refit()
830
	Character.Parent = workspace
831
	for e = 1, #BODY do
832
		if BODY[e] ~= nil then
833
			local STUFF = BODY[e]
834
			local PART = STUFF[1]
835
			local PARENT = STUFF[2]
836
			local MATERIAL = STUFF[3]
837
			local COLOR = STUFF[4]
838
			local TRANSPARENCY = STUFF[5]
839
			if PART.ClassName == "Part" and PART ~= RootPart then
840
				PART.Material = MATERIAL
841
				PART.Color = COLOR
842
				PART.Transparency = TRANSPARENCY
843
			end
844
			if PART.Parent ~= PARENT then
845
				Humanoid:remove()
846
				PART.Parent = PARENT
847
				Humanoid = IT("Humanoid",Character)
848
			end
849
		end
850
	end
851
end
852
local SKILLTEXTCOLOR = BRICKC"Really Red".Color
853
local SKILLFONT = "Bodoni"
854
local SKILLTEXTSIZE = 7
855
856
Humanoid.Died:connect(function()
857
	refit()
858
end)
859
860
local SKILL1FRAME = CreateFrame(WEAPONGUI, 0.75, 2, UD2(0.23, 0, 0.80, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
861
local SKILL2FRAME = CreateFrame(WEAPONGUI, 0.75, 2, UD2(0.50, 0, 0.80, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame")
862
local SKILL3FRAME = CreateFrame(WEAPONGUI, 0.75, 2, UD2(0.23, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame")
863
local SKILL4FRAME = CreateFrame(WEAPONGUI, 0.75, 2, UD2(0.50, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame")
864
local SKILL5FRAME = CreateFrame(WEAPONGUI, 0.75, 2, UD2(0.365, 0, 0.70, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame")
865
866
local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Warden Zap", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 1")
867
local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Warden Thunder", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 2")
868
local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Inferno Ring", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 3")
869
local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Telekinate The Ground", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 4")
870
local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[X] Prison Key", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 5")
871
872
--//=================================\\
873
--||			DAMAGING
874
--\\=================================//
875
876
function ApplyAoE(POSITION,RANGE,FLING,BURN)
877
	local CHILDREN = workspace:GetDescendants()
878
	for index, CHILD in pairs(CHILDREN) do
879
		if CHILD.ClassName == "Model" and CHILD ~= Character then
880
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
881
			if HUM then
882
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
883
				if TORSO then
884
					if HUM.Health > 0 and (TORSO.Position - POSITION).Magnitude <= RANGE then
885
						CHILD:BreakJoints()
886
						if FLING ~= 0 then
887
							for _, c in pairs(CHILD:GetChildren()) do
888
								if c:IsA("BasePart") and c.Transparency == 0 then
889
									if BURN == true then
890
										Fire(c)
891
									end
892
									local bv = Instance.new("BodyVelocity") 
893
									bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
894
									bv.velocity = CF(POSITION,TORSO.Position).lookVector*FLING
895
									bv.Parent = c
896
									Debris:AddItem(bv,0.05)
897
								end
898
							end
899
						end
900
					end
901
				end
902
			end
903
		end
904
	end
905
end
906
907
--//=================================\\
908
--||	ATTACK FUNCTIONS AND STUFF
909
--\\=================================//
910
911
function Warden_Zap()
912
	ATTACK = true
913
	Rooted = false
914
	local GYRO = IT("BodyGyro",RootPart)
915
	GYRO.D = 750
916
	GYRO.P = 20000
917
	GYRO.MaxTorque = VT(0,40000000,0)
918
	CreateSound(348663022,RightArm,1.5,2,false)
919
	Pose("Cast1",0.8,1,true,GYRO)
920
	local LightningTable = Lightning({Color = SKILLTEXTCOLOR, Start = RightArm.CFrame*CF(0,-1,0).p, End = Mouse.Hit.p, SegmentL = 2, Thickness = 0.2, DoesFade = true, Ignore = Character, MaxDist = 100, Branches = false})
921
	local Hitpos = LightningTable.End
922
	ApplyAoE(Hitpos,10,35)
923
	WACKYEFFECT({Time = 15, EffectType = "Sphere", Size = VT(1,1,1), Size2 = VT(1,1,1)*15, Transparency = 0, Transparency2 = 1, CFrame = CF(Hitpos)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"Really Red".Color, SoundID = BOLTSOUNDS[MRANDOM(1,#BOLTSOUNDS)], SoundPitch = MRANDOM(8,12)/10, SoundVolume = 5})
924
	for i = 1, 4 do
925
		WACKYEFFECT({Time = 15, EffectType = "Sphere", Size = VT(1,1,1), Size2 = VT(0,45,0), Transparency = 0, Transparency2 = 1, CFrame = CF(Hitpos)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"Really Red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
926
	end
927
	Pose("Cast1",0.8,1,true)
928
	GYRO:remove()
929
	ATTACK = false
930
	Rooted = false
931
end
932
933
function Warden_Thunder()
934
	ATTACK = true
935
	Rooted = false
936
	local GYRO = IT("BodyGyro",RootPart)
937
	GYRO.D = 750
938
	GYRO.P = 20000
939
	GYRO.MaxTorque = VT(0,40000000,0)
940
	CreateSound(469345336,Torso,3,2,false)
941
	Pose("Cast2",1.5,2,true,GYRO)
942
	coroutine.resume(coroutine.create(function()
943
		local FRAME = RootPart.CFrame
944
		for i = 1, 25 do
945
			local POS = FRAME*CF(MRANDOM(-17,17),0,-i*15)
946
			local LightningTable = Lightning({Color = SKILLTEXTCOLOR, Start = POS*CF(0,85,0).p, End = POS*CF(0,-15,0).p, SegmentL = 3, Thickness = 0.4, DoesFade = true, Ignore = Character, MaxDist = 400, Branches = true})
947
			local Hitpos = LightningTable.End
948
			ApplyAoE(Hitpos,20,15)
949
			WACKYEFFECT({Time = 15, EffectType = "Sphere", Size = VT(1,1,1), Size2 = VT(1,1,1)*15, Transparency = 0, Transparency2 = 1, CFrame = CF(Hitpos)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"Really Red".Color, SoundID = BOLTSOUNDS[MRANDOM(1,#BOLTSOUNDS)], SoundPitch = MRANDOM(8,12)/10, SoundVolume = 5})
950
			for i = 1, 4 do
951
				WACKYEFFECT({Time = 15, EffectType = "Sphere", Size = VT(1,1,1), Size2 = VT(0,75,0), Transparency = 0, Transparency2 = 1, CFrame = CF(Hitpos)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"Really Red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
952
			end
953
			wait(0.05)
954
		end
955
	end))
956
	Pose("Cast2",1.5,0.7,true)
957
	GYRO:remove()
958
	ATTACK = false
959
	Rooted = false
960
end
961
962
function Inferno_Ring()
963
	ATTACK = true
964
	Rooted = false
965
	local GYRO = IT("BodyGyro",RootPart)
966
	GYRO.D = 750
967
	GYRO.P = 20000
968
	GYRO.MaxTorque = VT(0,40000000,0)
969
	local FIRE = IT("Model",Effects)
970
	FIRE.Name = "Fire"
971
	local MAIN = CreatePart(3, FIRE, "Neon", 0, 1, "Really Red", "Center", VT(0,0,0))
972
	FIRE.PrimaryPart = MAIN
973
	local FIRES = {}
974
	for i = 1, 45 do
975
		local PRT = CreatePart(3, FIRE, "Neon", 0, 1, "Really Red", "RingPart", VT(3,3,3))
976
		PRT.CFrame = MAIN.CFrame*ANGLES(RAD(0),RAD((360/45)*i),RAD(0))*CF(0,0,20)
977
		local F = Fire(PRT)
978
		table.insert(FIRES,F)
979
	end
980
	repeat
981
		FIRE:SetPrimaryPartCFrame(CF(Mouse.Hit.p))
982
		Pose("Cast1",1.5,0.01,false,GYRO)
983
	until HOLD == true
984
	coroutine.resume(coroutine.create(function()
985
		for i = 1, 4 do
986
			ApplyAoE(MAIN.Position,21,-15,true)
987
			CreateSound(463598785,MAIN,3,1,false)
988
			for E = 1, #FIRES do
989
				if FIRES[E] ~= nil then
990
					FIRES[E].Acceleration = VT(0,300,0)
991
					FIRES[E].Lifetime=NumberRange.new(0.35,1.5)
992
				end
993
			end
994
			wait(0.3)
995
		end
996
		for E = 1, #FIRES do
997
			if FIRES[E] ~= nil then
998
				FIRES[E].Enabled = false
999
			end
1000
		end
1001
		Debris:AddItem(FIRE,5)
1002
	end))
1003
	CreateSound(215395388,RightArm,3,2,false)
1004
	Pose("RightArmUp",1.5,0.5,true)
1005
	GYRO:remove()
1006
	ATTACK = false
1007
	Rooted = false
1008
end
1009
1010
function Warden_Wall()
1011
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 8, Character)
1012
	if HITFLOOR ~= nil then
1013
		if HITFLOOR.Anchored == true then
1014
			local WALL = HITFLOOR:Clone()
1015
			WALL.Size = VT(45,45,5)
1016
			WALL.Parent = Effects
1017
			WALL.Name = "Wall"
1018
			WALL.CFrame = RootPart.CFrame*CF(0,-65/2.1,-5)*ANGLES(RAD(-15),RAD(0),RAD(0))
1019
			CreateSound(130972023,WALL,5,0.8,false)
1020
			ATTACK = true
1021
			Rooted = true
1022
			local HIT = WALL.Touched:Connect(function(hit)
1023
				if hit.Parent ~= Character then
1024
					hit:BreakJoints()
1025
				end
1026
			end)
1027
			coroutine.resume(coroutine.create(function()
1028
				WACKYEFFECT({Time = 35, EffectType = "Box", Size = WALL.Size, Size2 = WALL.Size*2, Transparency = 0, Transparency2 = 1, CFrame = WALL.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"Really Red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1029
				for i = 1, 90 do
1030
					Swait()
1031
					WALL.CFrame = WALL.CFrame*CF(0,0.5,0)
1032
				end
1033
				HIT:disconnect()
1034
				wait(5)
1035
				for i = 1, 46 do
1036
					Swait()
1037
					WALL.CFrame = WALL.CFrame*CF(0,-1,0)
1038
				end
1039
				WALL:remove()
1040
			end))
1041
			Pose("RightArmUp",1.5,1.2,true)
1042
			ATTACK = false
1043
			Rooted = false
1044
		end
1045
	end
1046
end
1047
1048
function Prison_Key()
1049
	if Mouse.Target ~= nil then
1050
		if Mouse.Target.Parent ~= Character and Mouse.Target.Parent.Parent ~= Character and Mouse.Target.Parent:FindFirstChildOfClass("Humanoid") ~= nil then
1051
			local HUM = Mouse.Target.Parent:FindFirstChildOfClass("Humanoid")
1052
			local TORSO = HUM.Parent:FindFirstChild("Torso") or HUM.Parent:FindFirstChild("UpperTorso")
1053
			local GYRO = IT("BodyGyro",RootPart)
1054
			GYRO.D = 750
1055
			GYRO.P = 20000
1056
			GYRO.MaxTorque = VT(0,40000000,0)
1057
			local grav = Instance.new("BodyPosition",TORSO)
1058
			grav.D = 15
1059
			grav.P = 20000
1060
			grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
1061
			grav.position = TORSO.Position
1062
			local GYRO2 = IT("BodyGyro",TORSO)
1063
			GYRO2.D = 750
1064
			GYRO2.P = 20000
1065
			GYRO2.MaxTorque = VT(0,40000000,0)
1066
			GYRO2.cframe = CF(TORSO.Position,RootPart.Position)
1067
			grav.Name = "Jail"
1068
			local LOCKPARTS = {}
1069
			ATTACK = true
1070
			Rooted = false
1071
			local LOCK = IT("Model",Effects)
1072
			LOCK.Name = "Lock"
1073
			local LOCK2 = IT("Model",LOCK)
1074
			LOCK2.Name = "Metal"
1075
			--CREATE LOCK--
1076
				local BASE = CreatePart(3, LOCK, "Glass", 0, 0, "Really Red", "Keylock", VT(3, 2.5, 1))
1077
				LOCK.PrimaryPart = BASE
1078
				BASE.CFrame = CF(TORSO.Position,RootPart.Position)*CF(0,0,-4)
1079
				local PRT = CreatePart(3, LOCK, "Glass", 0, 0, "Really Red", "Keylock", VT(3, 1, 3))
1080
				PRT.CFrame = BASE.CFrame*CF(0,-1.25,0)*ANGLES(RAD(90),RAD(0),RAD(0))
1081
				MakeForm(PRT,"Cyl")
1082
				local PRT = CreatePart(3, LOCK, "Glass", 0, 0, "Really Red", "Hole", VT(1, 1, 1))
1083
				PRT.Color = C3(0,0,0)
1084
				PRT.CFrame = BASE.CFrame*CF(0,0.3,-0.01)*ANGLES(RAD(90),RAD(0),RAD(0))
1085
				MakeForm(PRT,"Cyl")
1086
				local PRT = CreatePart(3, LOCK, "Glass", 0, 0, "Really Red", "Hole", VT(0.5, 1, 1))
1087
				PRT.Color = C3(0,0,0)
1088
				PRT.CFrame = BASE.CFrame*CF(0,-0.2,-0.01)
1089
				for i = 1, 45 do
1090
					local PRT = CreatePart(3, LOCK2, "Glass", 0, 0, "Really Red", "Keylock", VT(0.5, 0.5, 0.5))
1091
					PRT.CFrame = BASE.CFrame*CF(0,2,0)*ANGLES(RAD(0),RAD(0),RAD(-90+(360/90*i)))*CF(0,1,0)
1092
				end
1093
				local PRT = CreatePart(3, LOCK2, "Glass", 0, 0, "Really Red", "Keylock", VT(0.5, 0.5, 0.5))
1094
				PRT.CFrame = BASE.CFrame*CF(0,1.5,0)*ANGLES(RAD(0),RAD(0),RAD(90))*CF(0,1,0)
1095
				LOCK2.PrimaryPart = PRT
1096
			---------------
1097
			local CHILDREN = LOCK:GetDescendants()
1098
			for index, CHILD in pairs(CHILDREN) do
1099
				if CHILD:IsA("BasePart") then
1100
					CHILD.Transparency = 1
1101
				end
1102
			end
1103
			for i = 1, 75 do
1104
				LOCK:SetPrimaryPartCFrame(CF(TORSO.Position,RootPart.Position)*CF(0,0,-4))
1105
				Swait()
1106
				GYRO2.cframe = CF(TORSO.Position,RootPart.Position)
1107
				GYRO.cframe = CF(RootPart.Position,TORSO.Position)
1108
				local CHILDREN = LOCK:GetDescendants()
1109
				for index, CHILD in pairs(CHILDREN) do
1110
					if CHILD:IsA("BasePart") then
1111
						CHILD.Transparency = CHILD.Transparency - 1/75
1112
					end
1113
				end
1114
			end
1115
			HUM.DisplayDistanceType = "None"
1116
			local KEY = IT("Model",Effects)
1117
			KEY.Name = "Key"
1118
			--CREATE KEY--
1119
				local KBASE = CreatePart(3, KEY, "Neon", 0, 0, "Really Red", "KeyBase", VT(0.1, 1, 0.1),false)
1120
				KEY.PrimaryPart = KBASE
1121
				KBASE.CFrame = RightArm.CFrame*CF(0,-2.1,0)*ANGLES(RAD(0),RAD(90),RAD(0))
1122
				local WLD = weldBetween(RightArm,KBASE)
1123
				for i = 1, 45 do
1124
					local PRT = CreatePart(3, KEY, "Neon", 0, 0, "Really Red", "Key", VT(0.1, 0.1, 0.1),false)
1125
					PRT.CFrame = KBASE.CFrame*CF(0,0.8,0)*ANGLES(RAD(0),RAD(0),RAD((360/45*i)))*CF(0,0.25,0)
1126
					weldBetween(KBASE,PRT)
1127
				end
1128
				local PRT = CreatePart(3, KEY, "Neon", 0, 0, "Really Red", "Key", VT(0.3, 0.1, 0.1),false)
1129
				PRT.CFrame = KBASE.CFrame*CF(-0.15,-0.45,0)
1130
				weldBetween(KBASE,PRT)
1131
				local PRT = CreatePart(3, KEY, "Neon", 0, 0, "Really Red", "Key", VT(0.3, 0.1, 0.1),false)
1132
				PRT.CFrame = KBASE.CFrame*CF(-0.15,-0.25,0)
1133
				weldBetween(KBASE,PRT)
1134
			--------------
1135
			Rooted = true
1136
			Pose("Prepare key",1.5,1.2,false,GYRO,TORSO)
1137
			coroutine.resume(coroutine.create(function()
1138
				for i = 1, 10 do
1139
					Swait()
1140
					GYRO2.cframe = CF(TORSO.Position,RootPart.Position)
1141
					GYRO.cframe = CF(RootPart.Position,TORSO.Position)
1142
				end
1143
				CreateSound(1149318312,BASE,5,1,false)
1144
				CreateSound(160772554,BASE,3,1,false)
1145
				LOCK2:SetPrimaryPartCFrame(BASE.CFrame*CF(0,0.8,0)*ANGLES(RAD(0),RAD(0),RAD(90))*CF(0,1,0))
1146
				for i = 1, 4 do
1147
					WACKYEFFECT({Time = 35, EffectType = "Crystal", Size = VT(1,1,1), Size2 = VT(0,15,0), Transparency = 0, Transparency2 = 1, CFrame = BASE.CFrame*CF(1,1.45,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"Really Red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1148
				end
1149
				WACKYEFFECT({Time = 35, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(1,1,1)*25, Transparency = 0, Transparency2 = 1, CFrame = TORSO.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"Really Red".Color, SoundID = nil, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 5})
1150
				wait(1)
1151
				TORSO.Parent.Parent = LOCK
1152
				for i = 1, 75 do
1153
					Swait()
1154
					local CHILDREN = KEY:GetDescendants()
1155
					for index, CHILD in pairs(CHILDREN) do
1156
						if CHILD:IsA("BasePart") then
1157
							CHILD.Transparency = i/25
1158
						end
1159
					end
1160
					local CHILDREN = LOCK:GetDescendants()
1161
					for index, CHILD in pairs(CHILDREN) do
1162
						if CHILD:IsA("BasePart") and CHILD.Name ~= "HumanoidRootPart" then
1163
							CHILD.Transparency = CHILD.Transparency + 1/75
1164
						elseif CHILD.ClassName == "Decal" then
1165
							CHILD.Transparency = CHILD.Transparency + 1/75
1166
						end
1167
					end
1168
				end
1169
				TORSO.Parent:ClearAllChildren()
1170
				KEY:remove()
1171
				LOCK:remove()
1172
			end))
1173
			Pose("Turn key",0.8,1.2,false,GYRO,TORSO)
1174
			GYRO:remove()
1175
			ATTACK = false
1176
			Rooted = false
1177
		end
1178
	end
1179
end
1180
1181
function Hat()
1182
	ATTACK = true
1183
	Rooted = false
1184
	Pose("Taunt",0.4,1.2,false)
1185
	ATTACK = false
1186
	Rooted = false
1187
end
1188
1189
--//=================================\\
1190
--||	  ASSIGN THINGS TO KEYS
1191
--\\=================================//
1192
1193
function MouseDown(Mouse)
1194
	HOLD = true
1195
	if ATTACK == false then
1196
	end
1197
end
1198
1199
function MouseUp(Mouse)
1200
HOLD = false
1201
end
1202
1203
function KeyDown(Key)
1204
	KEYHOLD = true
1205
	if Key == "z" and ATTACK == false then
1206
		Warden_Zap()
1207
	end
1208
1209
	if Key == "b" and ATTACK == false then
1210
		Warden_Thunder()
1211
	end
1212
1213
	if Key == "c" and ATTACK == false then
1214
		Inferno_Ring()
1215
	end
1216
1217
	if Key == "v" and ATTACK == false then
1218
		Warden_Wall()
1219
	end
1220
1221
	if Key == "x" and ATTACK == false then
1222
		Prison_Key()
1223
	end
1224
1225
	if Key == "t" and ATTACK == false then
1226
		Hat()
1227
	end
1228
end
1229
1230
function KeyUp(Key)
1231
	KEYHOLD = false
1232
end
1233
1234
	Mouse.Button1Down:connect(function(NEWKEY)
1235
		MouseDown(NEWKEY)
1236
	end)
1237
	Mouse.Button1Up:connect(function(NEWKEY)
1238
		MouseUp(NEWKEY)
1239
	end)
1240
	Mouse.KeyDown:connect(function(NEWKEY)
1241
		KeyDown(NEWKEY)
1242
	end)
1243
	Mouse.KeyUp:connect(function(NEWKEY)
1244
		KeyUp(NEWKEY)
1245
	end)
1246
1247
--//=================================\\
1248
--\\=================================//
1249
1250
1251
function unanchor()
1252
	if UNANCHOR == true then
1253
		g = Character:GetChildren()
1254
		for i = 1, #g do
1255
			if g[i].ClassName == "Part" then
1256
				g[i].Anchored = false
1257
			end
1258
		end
1259
	end
1260
end
1261
1262
1263
--//=================================\\
1264
--||	WRAP THE WHOLE SCRIPT UP
1265
--\\=================================//
1266
1267
Humanoid.Changed:connect(function(Jump)
1268
	if Jump == "Jump" and (Disable_Jump == true) then
1269
		Humanoid.Jump = false
1270
	end
1271
end)
1272
1273
while true do
1274
	Swait()
1275
	script.Parent = WEAPONGUI
1276
	Humanoid.Parent = Character
1277
	if Humanoid then
1278
		local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
1279
		IDLEANIMATION:Play()
1280
	end
1281
	if ANIMATE.Parent == Character then
1282
		ANIMATE:Destroy()
1283
	end
1284
	SINE = SINE + CHANGE
1285
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1286
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1287
	Humanoid.HipHeight = 1
1288
	Humanoid.Name = "Liv The Warden :3"
1289
	Humanoid.PlatformStand = false
1290
	if PLAYMAINANIM == true then
1291
		if TORSOVELOCITY < 1 then
1292
			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)
1293
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1294
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1295
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1296
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), 0.15 / Animation_Speed)
1297
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1298
		elseif TORSOVELOCITY > 1 then
1299
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1300
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(10 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
1301
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-35), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1302
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-35), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
1303
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-20)), 0.15 / Animation_Speed)
1304
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(10)), 0.15 / Animation_Speed)
1305
		end
1306
	end
1307
	unanchor()
1308
	Humanoid.MaxHealth = "inf"
1309
	Humanoid.Health = "inf"
1310
	if Rooted == false then
1311
		Disable_Jump = false
1312
		Humanoid.WalkSpeed = Speed
1313
	elseif Rooted == true then
1314
		Disable_Jump = true
1315
		Humanoid.WalkSpeed = 0
1316
	end
1317
	for _, c in pairs(Character:GetChildren()) do
1318
		if c.ClassName == "Part" and c.Name ~= "Eye" then
1319
			c.Material = "Neon"
1320
			if c:FindFirstChildOfClass("ParticleEmitter") then
1321
				c:FindFirstChildOfClass("ParticleEmitter"):remove()
1322
			end
1323
			c.Color = C3(1,1,1)
1324
			if c == Head then
1325
				if c:FindFirstChild("face") then
1326
					c.face:remove()
1327
				end
1328
			end
1329
		elseif c.ClassName == "CharacterMesh" or c.ClassName == "Accessory" or c.ClassName == "Hat" or c.Name == "Body Colors" then
1330
			c:remove()
1331
		elseif (c.ClassName == "Shirt" or c.ClassName == "Pants") and c.Name ~= "Cloth" then
1332
			c:remove()
1333
		end
1334
	end
1335
	sick.SoundId = "rbxassetid://1175187234"
1336
	sick.Looped = true
1337
	sick.Pitch = 1
1338
	sick.Volume = 3
1339
	sick:Resume()
1340
	sick.Parent = Torso
1341
	refit()
1342
	if Head:FindFirstChildOfClass("Sound") then
1343
		Head:FindFirstChildOfClass("Sound"):remove()
1344
	end
1345
end
1346
1347
--//=================================\\
1348
--\\=================================//
1349
1350
1351
1352
1353
1354
--//====================================================\\--
1355
--||			  		 END OF SCRIPT
1356
--\\====================================================//--