Advertisement
whyumean

Eerirn e

Jan 5th, 2020
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 106.91 KB | None | 0 0
  1. local module = {}
  2.  
  3. function module.eer(target)
  4. _G.target = target
  5. local target = game.Players:WaitForChild(_G.target)
  6. script.Eer:Clone().Parent = target.Character
  7. end
  8. return module
  9. require(script.EzConvert)()
  10. wait(0.2)
  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. local 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. IT = Instance.new
  32. CF = CFrame.new
  33. VT = Vector3.new
  34. RAD = math.rad
  35. C3 = Color3.new
  36. UD2 = UDim2.new
  37. BRICKC = BrickColor.new
  38. ANGLES = CFrame.Angles
  39. EULER = CFrame.fromEulerAnglesXYZ
  40. COS = math.cos
  41. ACOS = math.acos
  42. SIN = math.sin
  43. ASIN = math.asin
  44. ABS = math.abs
  45. MRANDOM = math.random
  46. FLOOR = math.floor
  47. Animation_Speed = 3
  48. Frame_Speed = 0.016666666666666666
  49. local Speed = 16
  50. local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  51. local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  52. local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
  53. local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
  54. local DAMAGEMULTIPLIER = 1
  55. local ANIM = "Idle"
  56. local ATTACK = false
  57. local EQUIPPED = false
  58. local HOLD = false
  59. local COMBO = 1
  60. local Rooted = false
  61. local SINE = 0
  62. local KEYHOLD = false
  63. local CHANGE = 2 / Animation_Speed
  64. local WALKINGANIM = false
  65. local VALUE1 = false
  66. local VALUE2 = false
  67. local ROBLOXIDLEANIMATION = IT("Animation")
  68. ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
  69. ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
  70. local WEAPONGUI = IT("ScreenGui", PlayerGui)
  71. WEAPONGUI.Name = "Weapon GUI"
  72. local Effects = IT("Folder", Character)
  73. Effects.Name = "Effects"
  74. local ANIMATOR = Humanoid.Animator
  75. ANIMATOR:Destroy()
  76. local ANIMATE = Character.Animate
  77. local UNANCHOR = true
  78. local HEADTURN = true
  79. ArtificialHB = Instance.new("BindableEvent", script)
  80. ArtificialHB.Name = "ArtificialHB"
  81. script:WaitForChild("ArtificialHB")
  82. frame = Frame_Speed
  83. tf = 0
  84. allowframeloss = false
  85. tossremainder = false
  86. lastframe = tick()
  87. script.ArtificialHB:Fire()
  88. game:GetService("RunService").Heartbeat:connect(function(s, p)
  89. tf = tf + s
  90. if tf >= frame then
  91. if allowframeloss then
  92. ArtificialHB:Fire()
  93. lastframe = tick()
  94. else
  95. for i = 1, math.floor(tf / frame) do
  96. ArtificialHB:Fire()
  97. end
  98. lastframe = tick()
  99. end
  100. if tossremainder then
  101. tf = 0
  102. else
  103. tf = tf - frame * math.floor(tf / frame)
  104. end
  105. end
  106. end)
  107. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  108. return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  109. end
  110. function PositiveAngle(NUMBER)
  111. if NUMBER >= 0 then
  112. NUMBER = 0
  113. end
  114. return NUMBER
  115. end
  116. function NegativeAngle(NUMBER)
  117. if NUMBER <= 0 then
  118. NUMBER = 0
  119. end
  120. return NUMBER
  121. end
  122. function Swait(NUMBER)
  123. if NUMBER == 0 or NUMBER == nil then
  124. ArtificialHB.Event:wait()
  125. else
  126. for i = 1, NUMBER do
  127. ArtificialHB.Event:wait()
  128. end
  129. end
  130. end
  131. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  132. local NEWMESH = IT(MESH)
  133. if MESH == "SpecialMesh" then
  134. NEWMESH.MeshType = MESHTYPE
  135. if MESHID ~= "nil" and MESHID ~= "" then
  136. NEWMESH.MeshId = "http://www.roblox.com/asset/?id=" .. MESHID
  137. end
  138. if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  139. NEWMESH.TextureId = "http://www.roblox.com/asset/?id=" .. TEXTUREID
  140. end
  141. end
  142. NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  143. NEWMESH.Scale = SCALE
  144. NEWMESH.Parent = PARENT
  145. return NEWMESH
  146. end
  147. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  148. local NEWPART = IT("Part")
  149. NEWPART.formFactor = FORMFACTOR
  150. NEWPART.Reflectance = REFLECTANCE
  151. NEWPART.Transparency = TRANSPARENCY
  152. NEWPART.CanCollide = false
  153. NEWPART.Locked = true
  154. NEWPART.Anchored = true
  155. if ANCHOR == false then
  156. NEWPART.Anchored = false
  157. end
  158. NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  159. NEWPART.Name = NAME
  160. NEWPART.Size = SIZE
  161. NEWPART.Position = Torso.Position
  162. NEWPART.Material = MATERIAL
  163. NEWPART:BreakJoints()
  164. NEWPART.Parent = PARENT
  165. return NEWPART
  166. end
  167. local weldBetween = function(a, b)
  168. local weldd = Instance.new("ManualWeld")
  169. weldd.Part0 = a
  170. weldd.Part1 = b
  171. weldd.C0 = CFrame.new()
  172. weldd.C1 = b.CFrame:inverse() * a.CFrame
  173. weldd.Parent = a
  174. return weldd
  175. end
  176. function QuaternionFromCFrame(cf)
  177. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  178. local trace = m00 + m11 + m22
  179. if trace > 0 then
  180. local s = math.sqrt(1 + trace)
  181. local recip = 0.5 / s
  182. return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  183. else
  184. local i = 0
  185. if m00 < m11 then
  186. i = 1
  187. end
  188. if m22 > (i == 0 and m00 or m11) then
  189. i = 2
  190. end
  191. if i == 0 then
  192. local s = math.sqrt(m00 - m11 - m22 + 1)
  193. local recip = 0.5 / s
  194. return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  195. elseif i == 1 then
  196. local s = math.sqrt(m11 - m22 - m00 + 1)
  197. local recip = 0.5 / s
  198. return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  199. elseif i == 2 then
  200. local s = math.sqrt(m22 - m00 - m11 + 1)
  201. local recip = 0.5 / s
  202. return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  203. end
  204. end
  205. end
  206. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  207. local xs, ys, zs = x + x, y + y, z + z
  208. local wx, wy, wz = w * xs, w * ys, w * zs
  209. local xx = x * xs
  210. local xy = x * ys
  211. local xz = x * zs
  212. local yy = y * ys
  213. local yz = y * zs
  214. local zz = z * zs
  215. 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))
  216. end
  217. function QuaternionSlerp(a, b, t)
  218. local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  219. local startInterp, finishInterp
  220. if cosTheta >= 1.0E-4 then
  221. if 1 - cosTheta > 1.0E-4 then
  222. local theta = ACOS(cosTheta)
  223. local invSinTheta = 1 / SIN(theta)
  224. startInterp = SIN((1 - t) * theta) * invSinTheta
  225. finishInterp = SIN(t * theta) * invSinTheta
  226. else
  227. startInterp = 1 - t
  228. finishInterp = t
  229. end
  230. elseif 1 + cosTheta > 1.0E-4 then
  231. local theta = ACOS(-cosTheta)
  232. local invSinTheta = 1 / SIN(theta)
  233. startInterp = SIN((t - 1) * theta) * invSinTheta
  234. finishInterp = SIN(t * theta) * invSinTheta
  235. else
  236. startInterp = t - 1
  237. finishInterp = t
  238. end
  239. 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
  240. end
  241. function Clerp(a, b, t)
  242. local qa = {
  243. QuaternionFromCFrame(a)
  244. }
  245. local qb = {
  246. QuaternionFromCFrame(b)
  247. }
  248. local ax, ay, az = a.x, a.y, a.z
  249. local bx, by, bz = b.x, b.y, b.z
  250. local _t = 1 - t
  251. return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  252. end
  253. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  254. local frame = IT("Frame")
  255. frame.BackgroundTransparency = TRANSPARENCY
  256. frame.BorderSizePixel = BORDERSIZEPIXEL
  257. frame.Position = POSITION
  258. frame.Size = SIZE
  259. frame.BackgroundColor3 = COLOR
  260. frame.BorderColor3 = BORDERCOLOR
  261. frame.Name = NAME
  262. frame.Parent = PARENT
  263. return frame
  264. end
  265. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  266. local label = IT("TextLabel")
  267. label.BackgroundTransparency = 1
  268. label.Size = UD2(1, 0, 1, 0)
  269. label.Position = UD2(0, 0, 0, 0)
  270. label.TextColor3 = TEXTCOLOR
  271. label.TextStrokeTransparency = STROKETRANSPARENCY
  272. label.TextTransparency = TRANSPARENCY
  273. label.FontSize = TEXTFONTSIZE
  274. label.Font = TEXTFONT
  275. label.BorderSizePixel = BORDERSIZEPIXEL
  276. label.TextScaled = false
  277. label.Text = TEXT
  278. label.Name = NAME
  279. label.Parent = PARENT
  280. return label
  281. end
  282. function NoOutlines(PART)
  283. PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  284. end
  285. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  286. local NEWWELD = IT(TYPE)
  287. NEWWELD.Part0 = PART0
  288. NEWWELD.Part1 = PART1
  289. NEWWELD.C0 = C0
  290. NEWWELD.C1 = C1
  291. NEWWELD.Parent = PARENT
  292. return NEWWELD
  293. end
  294. local S = IT("Sound")
  295. function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
  296. local NEWSOUND
  297. coroutine.resume(coroutine.create(function()
  298. NEWSOUND = S:Clone()
  299. NEWSOUND.Parent = PARENT
  300. NEWSOUND.Volume = VOLUME
  301. NEWSOUND.Pitch = PITCH
  302. NEWSOUND.SoundId = "rbxassetid://" .. ID
  303. NEWSOUND:play()
  304. NEWSOUND.EmitterSize = VOLUME * 3
  305. if DOESLOOP == true then
  306. NEWSOUND.Looped = true
  307. else
  308. repeat
  309. wait(1)
  310. until NEWSOUND.Playing == false
  311. NEWSOUND:remove()
  312. end
  313. end))
  314. return NEWSOUND
  315. end
  316. function CFrameFromTopBack(at, top, back)
  317. local right = top:Cross(back)
  318. 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)
  319. end
  320. function WACKYEFFECT(Table)
  321. local TYPE = Table.EffectType or "Sphere"
  322. local SIZE = Table.Size or VT(1, 1, 1)
  323. local ENDSIZE = Table.Size2 or VT(0, 0, 0)
  324. local TRANSPARENCY = Table.Transparency or 0
  325. local ENDTRANSPARENCY = Table.Transparency2 or 1
  326. local CFRAME = Table.CFrame or Torso.CFrame
  327. local MOVEDIRECTION = Table.MoveToPos or nil
  328. local ROTATION1 = Table.RotationX or 0
  329. local ROTATION2 = Table.RotationY or 0
  330. local ROTATION3 = Table.RotationZ or 0
  331. local MATERIAL = Table.Material or "Neon"
  332. local COLOR = Table.Color or C3(1, 1, 1)
  333. local TIME = Table.Time or 45
  334. local SOUNDID = Table.SoundID or nil
  335. local SOUNDPITCH = Table.SoundPitch or nil
  336. local SOUNDVOLUME = Table.SoundVolume or nil
  337. local USEBOOMERANGMATH = Table.UseBoomerangMath or false
  338. local BOOMERANG = Table.Boomerang or 0
  339. local SIZEBOOMERANG = Table.SizeBoomerang or 0
  340. coroutine.resume(coroutine.create(function()
  341. local PLAYSSOUND = false
  342. local SOUND
  343. local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1, 1, 1), true)
  344. if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
  345. PLAYSSOUND = true
  346. SOUND = CreateSound(SOUNDID, nil, SOUNDVOLUME, SOUNDPITCH, false)
  347. end
  348. EFFECT.Color = COLOR
  349. local MSH
  350. if TYPE == "Sphere" then
  351. MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0, 0, 0))
  352. elseif TYPE == "Block" or TYPE == "Box" then
  353. MSH = IT("BlockMesh", EFFECT)
  354. MSH.Scale = SIZE
  355. elseif TYPE == "Wave" then
  356. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0, 0, -SIZE.X / 8))
  357. elseif TYPE == "Ring" then
  358. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X, SIZE.X, 0.1), VT(0, 0, 0))
  359. elseif TYPE == "Slash" then
  360. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X / 10, 0, SIZE.X / 10), VT(0, 0, 0))
  361. elseif TYPE == "Round Slash" then
  362. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X / 10, 0, SIZE.X / 10), VT(0, 0, 0))
  363. elseif TYPE == "Swirl" then
  364. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "168892432", "", SIZE, VT(0, 0, 0))
  365. elseif TYPE == "Skull" then
  366. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0, 0, 0))
  367. elseif TYPE == "Crystal" then
  368. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0, 0, 0))
  369. end
  370. if MSH ~= nil then
  371. local BOOMR1 = 1 + BOOMERANG / 50
  372. local BOOMR2 = 1 + SIZEBOOMERANG / 50
  373. local MOVESPEED
  374. if MOVEDIRECTION ~= nil then
  375. if USEBOOMERANGMATH == true then
  376. MOVESPEED = CFRAME.p - MOVEDIRECTION.Magnitude / TIME * BOOMR1
  377. else
  378. MOVESPEED = CFRAME.p - MOVEDIRECTION.Magnitude / TIME
  379. end
  380. end
  381. local GROWTH
  382. if USEBOOMERANGMATH == true then
  383. GROWTH = (SIZE - ENDSIZE) * (BOOMR2 + 1)
  384. else
  385. GROWTH = SIZE - ENDSIZE
  386. end
  387. local TRANS = TRANSPARENCY - ENDTRANSPARENCY
  388. if TYPE == "Block" then
  389. EFFECT.CFrame = CFRAME * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)))
  390. else
  391. EFFECT.CFrame = CFRAME
  392. end
  393. if SOUND then
  394. SOUND.Parent = EFFECT
  395. end
  396. if USEBOOMERANGMATH == true then
  397. for LOOP = 1, TIME + 1 do
  398. Swait()
  399. MSH.Scale = MSH.Scale - VT(GROWTH.X * (1 - LOOP / TIME * BOOMR2), GROWTH.Y * (1 - LOOP / TIME * BOOMR2), GROWTH.Z * (1 - LOOP / TIME * BOOMR2)) * BOOMR2 / TIME
  400. if TYPE == "Wave" then
  401. MSH.Offset = VT(0, 0, -MSH.Scale.Z / 8)
  402. end
  403. EFFECT.Transparency = EFFECT.Transparency - TRANS / TIME
  404. if TYPE == "Block" then
  405. EFFECT.CFrame = CFRAME * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)))
  406. else
  407. EFFECT.CFrame = EFFECT.CFrame * ANGLES(RAD(ROTATION1), RAD(ROTATION2), RAD(ROTATION3))
  408. end
  409. if MOVEDIRECTION ~= nil then
  410. local ORI = EFFECT.Orientation
  411. EFFECT.CFrame = CF(EFFECT.Position, MOVEDIRECTION) * CF(0, 0, -MOVESPEED * (1 - LOOP / TIME * BOOMR1))
  412. EFFECT.CFrame = CF(EFFECT.Position) * ANGLES(RAD(ORI.X), RAD(ORI.Y), RAD(ORI.Z))
  413. end
  414. end
  415. else
  416. for LOOP = 1, TIME + 1 do
  417. Swait()
  418. MSH.Scale = MSH.Scale - GROWTH / TIME
  419. if TYPE == "Wave" then
  420. MSH.Offset = VT(0, 0, -MSH.Scale.Z / 8)
  421. end
  422. EFFECT.Transparency = EFFECT.Transparency - TRANS / TIME
  423. if TYPE == "Block" then
  424. EFFECT.CFrame = CFRAME * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)))
  425. else
  426. EFFECT.CFrame = EFFECT.CFrame * ANGLES(RAD(ROTATION1), RAD(ROTATION2), RAD(ROTATION3))
  427. end
  428. if MOVEDIRECTION ~= nil then
  429. local ORI = EFFECT.Orientation
  430. EFFECT.CFrame = CF(EFFECT.Position, MOVEDIRECTION) * CF(0, 0, -MOVESPEED)
  431. EFFECT.CFrame = CF(EFFECT.Position) * ANGLES(RAD(ORI.X), RAD(ORI.Y), RAD(ORI.Z))
  432. end
  433. end
  434. end
  435. EFFECT.Transparency = 1
  436. if PLAYSSOUND == false then
  437. EFFECT:remove()
  438. else
  439. repeat
  440. Swait()
  441. until EFFECT:FindFirstChildOfClass("Sound") == nil
  442. EFFECT:remove()
  443. end
  444. elseif PLAYSSOUND == false then
  445. EFFECT:remove()
  446. else
  447. repeat
  448. Swait()
  449. until EFFECT:FindFirstChildOfClass("Sound") == nil
  450. EFFECT:remove()
  451. end
  452. end))
  453. end
  454. function MakeForm(PART, TYPE)
  455. if TYPE == "Cyl" then
  456. local MSH = IT("CylinderMesh", PART)
  457. elseif TYPE == "Ball" then
  458. local MSH = IT("SpecialMesh", PART)
  459. MSH.MeshType = "Sphere"
  460. elseif TYPE == "Wedge" then
  461. local MSH = IT("SpecialMesh", PART)
  462. MSH.MeshType = "Wedge"
  463. end
  464. end
  465. Debris = game:GetService("Debris")
  466. function CastProperRay(StartPos, EndPos, Distance, Ignore)
  467. local DIRECTION = CF(StartPos, EndPos).lookVector
  468. local Ignore = type(Ignore) == "table" and Ignore or {Ignore}
  469. return game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, DIRECTION * Distance), Ignore)
  470. end
  471. local Particle = IT("ParticleEmitter", nil)
  472. Particle.Enabled = false
  473. Particle.LightEmission = 0.9
  474. Particle.Rate = 150
  475. Particle.ZOffset = 0.2
  476. Particle.Rotation = NumberRange.new(-180, 180)
  477. function ParticleEmitter(Table)
  478. local PRTCL = Particle:Clone()
  479. local Color1 = Table.Color1 or C3(1, 1, 1)
  480. local Color2 = Table.Color2 or C3(1, 1, 1)
  481. local Speed = Table.Speed or 5
  482. local Drag = Table.Drag or 0
  483. local Size1 = Table.Size1 or 1
  484. local Size2 = Table.Size2 or 5
  485. local Lifetime1 = Table.Lifetime1 or 1
  486. local Lifetime2 = Table.Lifetime2 or 1.5
  487. local Parent = Table.Parent or Torso
  488. local Emit = Table.Emit or 100
  489. local Offset = Table.Offset or 360
  490. local Acel = Table.Acel or VT(0, 0, 0)
  491. local Enabled = Table.Enabled or false
  492. local Texture = Table.Texture or "281983280"
  493. local RotS = Table.RotSpeed or NumberRange.new(-15, 15)
  494. local Trans1 = Table.Transparency1 or 1
  495. local Trans2 = Table.Transparency2 or 0
  496. PRTCL.Parent = Parent
  497. PRTCL.RotSpeed = RotS
  498. PRTCL.Transparency = NumberSequence.new({
  499. NumberSequenceKeypoint.new(0, Trans1),
  500. NumberSequenceKeypoint.new(1, Trans2)
  501. })
  502. PRTCL.Texture = "http://www.roblox.com/asset/?id=" .. Texture
  503. PRTCL.Color = ColorSequence.new(Color1, Color2)
  504. PRTCL.Size = NumberSequence.new(Size1, Size2)
  505. PRTCL.Lifetime = NumberRange.new(Lifetime1, Lifetime2)
  506. PRTCL.Speed = NumberRange.new(Speed)
  507. PRTCL.VelocitySpread = Offset
  508. PRTCL.Drag = Drag
  509. PRTCL.Acceleration = Acel
  510. if Enabled == false then
  511. PRTCL:Emit(Emit)
  512. Debris:AddItem(PRTCL, Lifetime2)
  513. else
  514. PRTCL.Enabled = true
  515. end
  516. return PRTCL
  517. end
  518. function CamShake(SHAKE, TIMER)
  519. coroutine.resume(coroutine.create(function()
  520. local FADER = SHAKE / TIMER
  521. for i = 1, TIMER do
  522. wait()
  523. Humanoid.CameraOffset = VT(MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10, MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10, MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10)
  524. end
  525. Humanoid.CameraOffset = VT(0, 0, 0)
  526. end))
  527. end
  528. function GetRoot(MODEL, ROOT)
  529. if ROOT == true then
  530. return MODEL:FindFirstChild("HumanoidRootPart") or MODEL:FindFirstChild("Torso") or MODEL:FindFirstChild("UpperTorso")
  531. else
  532. return MODEL:FindFirstChild("Torso") or MODEL:FindFirstChild("UpperTorso")
  533. end
  534. end
  535. local FAKEHEAD = CreatePart(3, Character, "Fabric", 0, 0, BRICKC("Pearl"), "NewHead", VT(1, 1, 1), true)
  536. CreateMesh("SpecialMesh", FAKEHEAD, "FileMesh", "16973748", "1090019344", VT(1, 1, 1), VT(0, 0, 0))
  537. local SCARF = CreatePart(3, Character, "Fabric", 0, 0, BRICKC("Pearl"), "Scarf", VT(1, 1, 1), false)
  538. CreateWeldOrSnapOrMotor("Weld", Torso, Torso, SCARF, CF(0, 0, 0), CF(0, 0, 0))
  539. local GLASSES = CreatePart(3, Character, "Fabric", 0, 0, BRICKC("Pearl"), "Scarf", VT(1, 1, 0.9), false)
  540. GLASSES.CFrame = FAKEHEAD.CFrame
  541. CreateMesh("SpecialMesh", SCARF, "FileMesh", "448710145", "", VT(0.6, 1, 1), VT(0, 0.15, 0))
  542. CreateMesh("SpecialMesh", GLASSES, "FileMesh", "134026193", "134026217", VT(1.5, 1, 2), VT(0, 0.3, -0.3))
  543. local FACE1 = CreatePart(3, Character, "Neon", 0, 0, BRICKC("Royal purple"), "Fire", VT(1.3, 1, 0.6), false)
  544. MakeForm(FACE1, "Ball")
  545. local FACE2 = CreatePart(3, Character, "Neon", 0, 0, BRICKC("Royal purple"), "Fire", VT(1.3, 0.65, 0.55), false)
  546. MakeForm(FACE2, "Ball")
  547. local FACE3 = CreatePart(3, Character, "Neon", 0, 0, BRICKC("Royal purple"), "Fire", VT(1.3, 0.5, 0.6), false)
  548. MakeForm(FACE3, "Ball")
  549. local FACE4 = CreatePart(3, Character, "Neon", 0, 0, BRICKC("Royal purple"), "Fire", VT(1, 0.1, 1), false)
  550. MakeForm(FACE4, "Ball")
  551. CreateWeldOrSnapOrMotor("Weld", FAKEHEAD, FAKEHEAD, GLASSES, CF(0, 0, 0), CF(0, 0, 0))
  552. local L1 = CreateWeldOrSnapOrMotor("Weld", FAKEHEAD, FAKEHEAD, FACE1, CF(0, 0, -0.5), CF(0, 0, 0))
  553. local L2 = CreateWeldOrSnapOrMotor("Weld", FAKEHEAD, FAKEHEAD, FACE2, CF(0, 0.2, -0.5), CF(0, 0, 0))
  554. local L3 = CreateWeldOrSnapOrMotor("Weld", FAKEHEAD, FAKEHEAD, FACE3, CF(0, 0.3, -0.35), CF(0, 0, 0))
  555. local L4 = CreateWeldOrSnapOrMotor("Weld", FAKEHEAD, FAKEHEAD, FACE4, CF(0, -0.5, 0), CF(0, 0, 0))
  556. local NECKK
  557. Head:ClearAllChildren()
  558. Head.Transparency = 1
  559. local NCK = IT("Attachment", Torso)
  560. NCK.Position = VT(0, 1, 0)
  561. local NECKFIRE = ParticleEmitter({
  562. Acel = VT(0, 3.5, 0),
  563. Speed = 1.5,
  564. RotSpeed = NumberRange.new(-15, 15),
  565. Drag = 0.1,
  566. Size1 = 0.6,
  567. Size2 = 0,
  568. Lifetime1 = 0,
  569. Lifetime2 = 0.45,
  570. Parent = NCK,
  571. Emit = 100,
  572. Offset = 360,
  573. Enabled = true,
  574. Color1 = BRICKC("Royal purple").Color,
  575. Color2 = BRICKC("Royal purple").Color,
  576. Texture = "296874871"
  577. })
  578. NECKFIRE.LockedToPart = true
  579. NECKFIRE.Rate = 999
  580. local BMUSIC = IT("Sound", RootPart)
  581. local VOLUME = 4
  582. local PITCH = 1
  583. local SONGID = 1571736139
  584. local top = Instance.new("Shirt")
  585. top.ShirtTemplate = "rbxassetid://1533635803"
  586. top.Parent = Character
  587. top.Name = "Cloth"
  588. local bottom = Instance.new("Pants")
  589. bottom.PantsTemplate = "rbxassetid://1460022985"
  590. bottom.Parent = Character
  591. bottom.Name = "Cloth"
  592. local SKILLTEXTCOLOR = BRICKC("Royal purple").Color
  593. local SKILLFONT = "Bodoni"
  594. local SKILLTEXTSIZE = 6.5
  595. local ATTACKS = {
  596. "Leaping Pumpkin - Z",
  597. "Rollout - X",
  598. "Trashing - C",
  599. "Incinithrower - V",
  600. "Zoom - E",
  601. "Hothead - Q"
  602. }
  603. for i = 1, #ATTACKS do
  604. local SKILLFRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.74, 0, 0.97 - 0.03 * i, 0), UD2(0.26, 0, 0.07, 0), C3(0, 0, 0), C3(0, 0, 0), "Skill Frame")
  605. local SKILLTEXT = CreateLabel(SKILLFRAME, "[" .. ATTACKS[i] .. "]", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.5, "Skill text")
  606. SKILLTEXT.TextXAlignment = "Right"
  607. end
  608. function ApplyDamage(Humanoid, Damage)
  609. Damage = Damage * DAMAGEMULTIPLIER
  610. if Humanoid.Health < 2000 then
  611. if Humanoid.Health - Damage > 0 then
  612. Humanoid.Health = Humanoid.Health - Damage
  613. else
  614. Humanoid.Parent:BreakJoints()
  615. end
  616. else
  617. Humanoid.Parent:BreakJoints()
  618. end
  619. end
  620. function ApplyAoE(POSITION, RANGE, MINDMG, MAXDMG, FLING, INSTAKILL)
  621. for index, CHILD in pairs(workspace:GetDescendants()) do
  622. if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Name ~= "PurpleEerinFireball" then
  623. local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  624. if HUM then
  625. local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  626. if TORSO and RANGE >= (TORSO.Position - POSITION).Magnitude then
  627. if INSTAKILL == true then
  628. CHILD:BreakJoints()
  629. else
  630. local DMG = MRANDOM(MINDMG, MAXDMG)
  631. ApplyDamage(HUM, DMG)
  632. end
  633. if FLING > 0 then
  634. for _, c in pairs(CHILD:GetChildren()) do
  635. if c:IsA("BasePart") then
  636. local bv = Instance.new("BodyVelocity")
  637. bv.maxForce = Vector3.new(1000000000, 1000000000, 1000000000)
  638. bv.velocity = CF(POSITION, TORSO.Position).lookVector * FLING
  639. bv.Parent = c
  640. Debris:AddItem(bv, 0.05)
  641. end
  642. end
  643. end
  644. end
  645. end
  646. end
  647. end
  648. end
  649. function LeapingPumpkin()
  650. ATTACK = true
  651. Rooted = true
  652. HEADTURN = false
  653. for i = 0, 0.15, 0.1 / Animation_Speed do
  654. Swait()
  655. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -0.05) * ANGLES(RAD(-25), RAD(0), RAD(0)), 1 / Animation_Speed)
  656. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  657. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(-12), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  658. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(12), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  659. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(-50), RAD(85), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
  660. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(-50), RAD(-85), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
  661. end
  662. CreateSound(166423113, Torso, 5, 1.1, false)
  663. CreateSound(166423113, Torso, 5, 1.1, false)
  664. for i = 0, 2, 0.1 / Animation_Speed do
  665. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 4) * ANGLES(RAD(45), RAD(0), RAD(0)), 1 / Animation_Speed)
  666. end
  667. CamShake(15, 17)
  668. local HITS = {}
  669. for i = 1, 65 do
  670. local VALUE = -((65 - i) / 65)
  671. RootPart.CFrame = RootPart.CFrame * CF(0, 0, VALUE)
  672. Swait()
  673. if VALUE < -0.65 and (ANIM == "Idle" or ANIM == "Walk") then
  674. WACKYEFFECT({
  675. Time = 26,
  676. EffectType = "Wave",
  677. Size = VT(5, 0, 5),
  678. Size2 = VT(8, 5, 8),
  679. Transparency = 0.8,
  680. Transparency2 = 1,
  681. CFrame = RootPart.CFrame * CF(0, -3.5, -5) * ANGLES(RAD(45), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
  682. MoveToPos = nil,
  683. RotationX = 0.1,
  684. RotationY = 1,
  685. RotationZ = -0.1,
  686. Material = "Neon",
  687. Color = C3(1, 1, 1),
  688. SoundID = nil,
  689. SoundPitch = nil,
  690. SoundVolume = nil,
  691. UseBoomerangMath = false,
  692. Boomerang = 0,
  693. SizeBoomerang = 0
  694. })
  695. WACKYEFFECT({
  696. Time = 12,
  697. EffectType = "Wave",
  698. Size = VT(0, 0, 0),
  699. Size2 = VT(12, 2, 12),
  700. Transparency = 0.8,
  701. Transparency2 = 1,
  702. CFrame = RootPart.CFrame * CF(0, -3.5, -4) * ANGLES(RAD(45), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
  703. MoveToPos = nil,
  704. RotationX = 0.1,
  705. RotationY = 1,
  706. RotationZ = -0.1,
  707. Material = "Neon",
  708. Color = C3(1, 1, 1),
  709. SoundID = nil,
  710. SoundPitch = nil,
  711. SoundVolume = nil,
  712. UseBoomerangMath = true,
  713. Boomerang = 0,
  714. SizeBoomerang = 12
  715. })
  716. for index, CHILD in pairs(workspace:GetDescendants()) do
  717. if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Name ~= "PurpleEerinFireball" then
  718. local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  719. if HUM then
  720. local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  721. if TORSO and (TORSO.Position - RootPart.Position).Magnitude <= 6 then
  722. local PASS = true
  723. for E = 1, #HITS do
  724. if HITS[E] == CHILD then
  725. PASS = false
  726. end
  727. end
  728. if PASS == true then
  729. local DMG = MRANDOM(25, 45)
  730. ApplyDamage(HUM, DMG)
  731. table.insert(HITS, CHILD)
  732. for _, c in pairs(CHILD:GetChildren()) do
  733. if c:IsA("BasePart") then
  734. local bv = Instance.new("BodyVelocity")
  735. bv.maxForce = Vector3.new(1000000000, 1000000000, 1000000000)
  736. bv.velocity = CF(Torso.Position, TORSO.Position).lookVector * 65
  737. bv.Parent = c
  738. Debris:AddItem(bv, 0.05)
  739. end
  740. end
  741. end
  742. end
  743. end
  744. end
  745. end
  746. end
  747. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -3) * ANGLES(RAD(90), RAD(0), RAD(0)), 0.6 / Animation_Speed)
  748. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  749. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.75, 0) * ANGLES(RAD(170), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  750. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.75, 0) * ANGLES(RAD(170), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  751. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.5) * ANGLES(RAD(-45), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  752. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  753. end
  754. for i = 0, 0.7, 0.1 / Animation_Speed do
  755. Swait()
  756. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -3) * ANGLES(RAD(90), RAD(0), RAD(0)), 1 / Animation_Speed)
  757. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  758. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.75, 0) * ANGLES(RAD(170), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  759. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.75, 0) * ANGLES(RAD(170), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  760. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.5) * ANGLES(RAD(-100), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  761. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  762. end
  763. HEADTURN = true
  764. ATTACK = false
  765. Rooted = false
  766. end
  767. function Rollout()
  768. if UNANCHOR == true then
  769. RootPart.Velocity = VT(0, 0, 0)
  770. end
  771. ATTACK = true
  772. Rooted = false
  773. UNANCHOR = false
  774. HEADTURN = false
  775. if ANIM == "Idle" or ANIM == "Walk" then
  776. for i = 1, 3 do
  777. WACKYEFFECT({
  778. Time = 15,
  779. EffectType = "Wave",
  780. Size = VT(2, 0, 2),
  781. Size2 = VT(12, 2.5, 12),
  782. Transparency = 0.6,
  783. Transparency2 = 1,
  784. CFrame = CF(RootPart.CFrame * CF(0, -4, 0).p) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)),
  785. MoveToPos = nil,
  786. RotationX = 1,
  787. RotationY = 0,
  788. RotationZ = 0,
  789. Material = "Neon",
  790. Color = C3(1, 1, 1),
  791. SoundID = nil,
  792. SoundPitch = MRANDOM(9, 11) / 10,
  793. SoundVolume = MRANDOM(9, 11) / 2,
  794. UseBoomerangMath = true,
  795. Boomerang = 0,
  796. SizeBoomerang = 22
  797. })
  798. end
  799. end
  800. coroutine.resume(coroutine.create(function()
  801. for i = 1, 25 do
  802. Swait()
  803. RootPart.CFrame = RootPart.CFrame * CF(0, (25 - i) / 7, 0)
  804. end
  805. end))
  806. CreateSound(1368583274, Torso, 5, 1.1, false)
  807. for i = 1, 65 do
  808. Swait()
  809. WACKYEFFECT({
  810. Time = 15,
  811. EffectType = "Round Slash",
  812. Size = VT(0.1, 0, 0.1),
  813. Size2 = VT(0, 0, 0),
  814. Transparency = 1,
  815. Transparency2 = 0.5,
  816. CFrame = CF(RootPart.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
  817. MoveToPos = nil,
  818. RotationX = 0,
  819. RotationY = 0,
  820. RotationZ = 0,
  821. Material = "Neon",
  822. Color = C3(1, 1, 1),
  823. SoundID = nil,
  824. SoundPitch = nil,
  825. SoundVolume = nil,
  826. UseBoomerangMath = true,
  827. Boomerang = 0,
  828. SizeBoomerang = 35
  829. })
  830. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(i * 45), RAD(0), RAD(0)), 2.5 / Animation_Speed)
  831. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  832. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5, -1) * ANGLES(RAD(0), RAD(0), RAD(-90)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
  833. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5, -1) * ANGLES(RAD(0), RAD(0), RAD(90)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
  834. RightHip.C0 = Clerp(RightHip.C0, CF(1, 0, -0.5) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
  835. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, 0, -0.5) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed)
  836. end
  837. RootPart.CFrame = CF(RootPart.Position, Mouse.Hit.p)
  838. for E = 1, 2 do
  839. for i = 1, 4 do
  840. WACKYEFFECT({
  841. Time = 80,
  842. EffectType = "Round Slash",
  843. Size = VT(0, 0, 0),
  844. Size2 = VT(E, 0, E) / 4,
  845. Transparency = 0,
  846. Transparency2 = 1,
  847. CFrame = CF(RootPart.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
  848. MoveToPos = nil,
  849. RotationX = 0,
  850. RotationY = 0,
  851. RotationZ = 0,
  852. Material = "Neon",
  853. Color = C3(1, 1, 1),
  854. SoundID = nil,
  855. SoundPitch = nil,
  856. SoundVolume = nil,
  857. UseBoomerangMath = true,
  858. Boomerang = 0,
  859. SizeBoomerang = 35
  860. })
  861. end
  862. end
  863. for i = 1, 12 do
  864. WACKYEFFECT({
  865. Time = 35 - i,
  866. EffectType = "Wave",
  867. Size = VT(12, 0, 12),
  868. Size2 = VT(13 + i * 5, 5 + i * 3, 13 + i * 5),
  869. Transparency = 0.3,
  870. Transparency2 = 1,
  871. CFrame = RootPart.CFrame * CF(0, 0, -4) * ANGLES(RAD(90), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
  872. MoveToPos = nil,
  873. RotationX = 0.1,
  874. RotationY = 1,
  875. RotationZ = -0.1,
  876. Material = "Neon",
  877. Color = C3(1, 1, 1),
  878. SoundID = nil,
  879. SoundPitch = nil,
  880. SoundVolume = nil,
  881. UseBoomerangMath = false,
  882. Boomerang = 0,
  883. SizeBoomerang = 15
  884. })
  885. end
  886. WACKYEFFECT({
  887. Time = 45,
  888. EffectType = "Sphere",
  889. Size = VT(15, 15, 15),
  890. Size2 = VT(35, 35, 35),
  891. Transparency = 0.7,
  892. Transparency2 = 1,
  893. CFrame = CF(RootPart.Position),
  894. MoveToPos = nil,
  895. RotationX = 0,
  896. RotationY = 0,
  897. RotationZ = 0,
  898. Material = "Neon",
  899. Color = SKILLTEXTCOLOR,
  900. SoundID = 1368637781,
  901. SoundPitch = 1,
  902. SoundVolume = 5,
  903. UseBoomerangMath = true,
  904. Boomerang = 0,
  905. SizeBoomerang = 50
  906. })
  907. coroutine.resume(coroutine.create(function()
  908. local LANDED = false
  909. local ROT = 0
  910. local RAWS = {257001341, 257001320}
  911. local ROLLER = CreatePart(3, Effects, "Fabric", 0, 0, BRICKC("Pearl"), "ROLLERDAH", VT(13.02, 9.3, 12.09) / 1.5, true)
  912. local S = CreateSound(RAWS[MRANDOM(1, 2)], ROLLER, 10, MRANDOM(8, 13) / 10, false)
  913. S.EmitterSize = 70
  914. CreateMesh("SpecialMesh", ROLLER, "FileMesh", "16973748", "1090019344", VT(9.3, 9.3, 9.3), VT(0, 0, 0))
  915. local FACE = CreatePart(3, Effects, "Neon", 0, 0, BRICKC("Royal purple"), "Fire", VT(1, 0.1, 1) * 13.02, true)
  916. MakeForm(FACE, "Ball")
  917. ROLLER.CFrame = RootPart.CFrame
  918. local SPEED = 0
  919. local NECKFIRE = ParticleEmitter({
  920. Acel = VT(0, 75, 0),
  921. Speed = 6,
  922. RotSpeed = NumberRange.new(-15, 15),
  923. Drag = 0.5,
  924. Size1 = 7,
  925. Size2 = 0,
  926. Lifetime1 = 0,
  927. Lifetime2 = 1.4,
  928. Parent = ROLLER,
  929. Emit = 100,
  930. Offset = 360,
  931. Enabled = true,
  932. Color1 = BRICKC("Royal purple").Color,
  933. Color2 = BRICKC("Royal purple").Color,
  934. Texture = "296874871"
  935. })
  936. NECKFIRE.Rate = 999
  937. local TOUCHED = false
  938. ROLLER.Touched:Connect(function(HIT)
  939. if HIT.Parent ~= Character then
  940. TOUCHED = true
  941. end
  942. end)
  943. for i = 1, 15 do
  944. Swait()
  945. ROLLER.CFrame = ROLLER.CFrame * CF(0, -(i / 15), -2)
  946. FACE.CFrame = ROLLER.CFrame * CF(0, -4.2780000000000005, 0)
  947. local HITFLOOR = Raycast(ROLLER.Position, ROLLER.CFrame.lookVector, 5.5, Character)
  948. if TOUCHED == true or HITFLOOR then
  949. break
  950. end
  951. end
  952. local CFRAME = CF(ROLLER.Position) * ANGLES(RAD(0), RAD(ROLLER.Orientation.Y), RAD(0))
  953. for i = 1, 200 do
  954. Swait()
  955. local HITFLOOR = Raycast(ROLLER.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 5.5, Character)
  956. if HITFLOOR then
  957. if LANDED == false then
  958. LANDED = true
  959. coroutine.resume(coroutine.create(function()
  960. for i = 1, 15 do
  961. Swait()
  962. SPEED = SPEED + 0.1
  963. end
  964. end))
  965. end
  966. ROLLER.CanCollide = true
  967. CFRAME = CFRAME * CF(0, 0, -SPEED)
  968. WACKYEFFECT({
  969. Time = 26,
  970. EffectType = "Wave",
  971. Size = VT(12, 0, 12),
  972. Size2 = VT(18, 5, 18),
  973. Transparency = 0.8,
  974. Transparency2 = 1,
  975. CFrame = CFRAME * CF(0, -5, -7) * ANGLES(RAD(15), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
  976. MoveToPos = nil,
  977. RotationX = 0.1,
  978. RotationY = 1,
  979. RotationZ = -0.1,
  980. Material = "Neon",
  981. Color = HITFLOOR.Color,
  982. SoundID = nil,
  983. SoundPitch = nil,
  984. SoundVolume = nil,
  985. UseBoomerangMath = false,
  986. Boomerang = 0,
  987. SizeBoomerang = 15
  988. })
  989. else
  990. ROLLER.CanCollide = false
  991. SPEED = 0.8
  992. LANDED = false
  993. CFRAME = CFRAME * CF(0, -1.5, -SPEED)
  994. end
  995. ROT = ROT + SPEED * 6
  996. ROLLER.CFrame = CFRAME * ANGLES(RAD(-ROT), RAD(0), RAD(0))
  997. FACE.CFrame = ROLLER.CFrame * CF(0, -4.2780000000000005, 0)
  998. local COLISSION1 = Raycast(ROLLER.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 6, Character)
  999. local COLISSION2 = Raycast(ROLLER.Position, CFRAME.lookVector, 6, Character)
  1000. if COLISSION1 and COLISSION1.Parent:FindFirstChildOfClass("Humanoid") then
  1001. break
  1002. end
  1003. if COLISSION2 then
  1004. break
  1005. end
  1006. if TOUCHED == true then
  1007. break
  1008. end
  1009. end
  1010. CamShake(6, 12)
  1011. ApplyAoE(ROLLER.Position, 50, 25, 65, 150, true)
  1012. ApplyAoE(ROLLER.Position, 125, 25, 65, 150, false)
  1013. WACKYEFFECT({
  1014. Time = 25,
  1015. EffectType = "Sphere",
  1016. Size = VT(15, 15, 15),
  1017. Size2 = VT(50, 50, 50),
  1018. Transparency = 0.7,
  1019. Transparency2 = 1,
  1020. CFrame = CF(ROLLER.Position),
  1021. MoveToPos = nil,
  1022. RotationX = 0,
  1023. RotationY = 0,
  1024. RotationZ = 0,
  1025. Material = "Neon",
  1026. Color = SKILLTEXTCOLOR,
  1027. SoundID = 1664711478,
  1028. SoundPitch = 1,
  1029. SoundVolume = 8,
  1030. UseBoomerangMath = true,
  1031. Boomerang = 0,
  1032. SizeBoomerang = 50
  1033. })
  1034. WACKYEFFECT({
  1035. Time = 25,
  1036. EffectType = "Sphere",
  1037. Size = VT(15, 15, 15),
  1038. Size2 = VT(70, 70, 70),
  1039. Transparency = 0.7,
  1040. Transparency2 = 1,
  1041. CFrame = CF(ROLLER.Position),
  1042. MoveToPos = nil,
  1043. RotationX = 0,
  1044. RotationY = 0,
  1045. RotationZ = 0,
  1046. Material = "Neon",
  1047. Color = SKILLTEXTCOLOR,
  1048. SoundID = 201858144,
  1049. SoundPitch = 1,
  1050. SoundVolume = 5,
  1051. UseBoomerangMath = true,
  1052. Boomerang = 0,
  1053. SizeBoomerang = 50
  1054. })
  1055. for i = 1, 5 do
  1056. WACKYEFFECT({
  1057. Time = 65 - i * 12,
  1058. EffectType = "Sphere",
  1059. Size = VT(0, 0, 0),
  1060. Size2 = VT(45, 45, 45) + VT(i, i, i) * 55,
  1061. Transparency = 0,
  1062. Transparency2 = 1,
  1063. CFrame = CF(ROLLER.Position),
  1064. MoveToPos = nil,
  1065. RotationX = 0,
  1066. RotationY = 0,
  1067. RotationZ = 0,
  1068. Material = "Neon",
  1069. Color = SKILLTEXTCOLOR,
  1070. SoundID = nil,
  1071. SoundPitch = nil,
  1072. SoundVolume = nil,
  1073. UseBoomerangMath = false,
  1074. Boomerang = 0,
  1075. SizeBoomerang = 0
  1076. })
  1077. end
  1078. for E = 1, 3 do
  1079. for i = 1, 4 do
  1080. WACKYEFFECT({
  1081. Time = 50,
  1082. EffectType = "Round Slash",
  1083. Size = VT(0, 0, 0),
  1084. Size2 = VT(E, 0, E) / 2,
  1085. Transparency = 0,
  1086. Transparency2 = 1,
  1087. CFrame = CF(ROLLER.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
  1088. MoveToPos = nil,
  1089. RotationX = 0,
  1090. RotationY = 0,
  1091. RotationZ = 0,
  1092. Material = "Neon",
  1093. Color = C3(1, 1, 1),
  1094. SoundID = nil,
  1095. SoundPitch = nil,
  1096. SoundVolume = nil,
  1097. UseBoomerangMath = true,
  1098. Boomerang = 0,
  1099. SizeBoomerang = 10
  1100. })
  1101. end
  1102. end
  1103. local COLISSION, POS = Raycast(ROLLER.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 12, Character)
  1104. if COLISSION then
  1105. for i = 1, 5 do
  1106. WACKYEFFECT({
  1107. Time = 20 + i * 15,
  1108. EffectType = "Wave",
  1109. Size = VT(15, 0, 15),
  1110. Size2 = VT(120, 15, 120),
  1111. Transparency = 0.6,
  1112. Transparency2 = 1,
  1113. CFrame = CF(POS) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(-15, 15)), RAD(MRANDOM(0, 360)), RAD(0)),
  1114. MoveToPos = nil,
  1115. RotationX = 0.2,
  1116. RotationY = 0,
  1117. RotationZ = 0,
  1118. Material = "Neon",
  1119. Color = C3(1, 1, 1),
  1120. SoundID = nil,
  1121. SoundPitch = MRANDOM(9, 11) / 10,
  1122. SoundVolume = MRANDOM(9, 11) / 2,
  1123. UseBoomerangMath = true,
  1124. Boomerang = 0,
  1125. SizeBoomerang = 22
  1126. })
  1127. end
  1128. end
  1129. ROLLER.Transparency = 1
  1130. Debris:AddItem(ROLLER, 5)
  1131. NECKFIRE.Enabled = false
  1132. FACE:Remove()
  1133. for i = 1, 25 do
  1134. local LEFTOVER = CreatePart(3, workspace, "Pebble", 0, 0, BRICKC("Pearl"), "ROLLERDAH", VT(13.02 * (MRANDOM(8, 12) / 10), 9.3 * (MRANDOM(8, 12) / 10), 12.09 * (MRANDOM(8, 12) / 10)) / 1.5 / 2, false)
  1135. LEFTOVER.CanCollide = true
  1136. LEFTOVER.CFrame = ROLLER.CFrame * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)))
  1137. LEFTOVER.Velocity = CF(LEFTOVER.Position - VT(0, 6, 0), LEFTOVER.CFrame * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))) * CF(0, 5, 0).p).lookVector * MRANDOM(50, 320)
  1138. Debris:AddItem(LEFTOVER, 8)
  1139. end
  1140. end))
  1141. for i = 0, 0.35, 0.1 / Animation_Speed do
  1142. Swait()
  1143. RootPart.CFrame = RootPart.CFrame * CF(0, 0, 1.2)
  1144. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -0.05) * ANGLES(RAD(-25), RAD(0), RAD(0)), 1 / Animation_Speed)
  1145. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  1146. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(-12), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  1147. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(90), RAD(12), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  1148. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(-50), RAD(85), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
  1149. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(-50), RAD(-85), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
  1150. end
  1151. HEADTURN = true
  1152. UNANCHOR = true
  1153. ATTACK = false
  1154. Rooted = false
  1155. end
  1156. function Trashing()
  1157. local SpawnVelocity = function(PART, LOCATION, FLING)
  1158. local bv = IT("BodyVelocity")
  1159. bv.maxForce = VT(1000000000, 1000000000, 1000000000)
  1160. bv.Parent = PART
  1161. bv.velocity = CF(PART.Position, LOCATION).lookVector * FLING
  1162. Debris:AddItem(bv, 0.35)
  1163. end
  1164. local TARGET = Mouse.Target
  1165. if TARGET ~= nil and TARGET.Parent:FindFirstChildOfClass("Humanoid") then
  1166. do
  1167. local HUM = TARGET.Parent:FindFirstChildOfClass("Humanoid")
  1168. local ROOT = GetRoot(HUM.Parent, false)
  1169. if ROOT and HUM.Health > 0 and (ROOT.Position - RootPart.Position).Magnitude <= 375 then
  1170. ATTACK = true
  1171. Rooted = true
  1172. CreateSound(1368573150, RightArm, 5, MRANDOM(8, 13) / 10, false)
  1173. CreateSound(1368573150, ROOT, 5, MRANDOM(8, 13) / 10, false)
  1174. SpawnVelocity(ROOT, ROOT.Position + VT(0, 35, 0), 80)
  1175. do
  1176. local SWOOSH = ParticleEmitter({
  1177. Transparency1 = 0,
  1178. Transparency2 = 1,
  1179. Acel = VT(0, 0, 0),
  1180. Speed = 0.8,
  1181. RotSpeed = NumberRange.new(-15, 15),
  1182. Drag = 0.1,
  1183. Size1 = 3,
  1184. Size2 = 2,
  1185. Lifetime1 = 0,
  1186. Lifetime2 = 1,
  1187. Parent = ROOT,
  1188. Emit = 100,
  1189. Offset = 360,
  1190. Enabled = true,
  1191. Color1 = BRICKC("Royal purple").Color,
  1192. Color2 = BRICKC("Royal purple").Color,
  1193. Texture = "242627777"
  1194. })
  1195. SWOOSH.Rate = 999
  1196. SWOOSH.LightEmission = 0.9
  1197. for i = 0, 1, 0.1 / Animation_Speed do
  1198. Swait()
  1199. WACKYEFFECT({
  1200. Time = 12,
  1201. EffectType = "Round Slash",
  1202. Size = VT(0, 0, 0),
  1203. Size2 = VT(0.03, 0, 0.03),
  1204. Transparency = 0,
  1205. Transparency2 = 1,
  1206. CFrame = RightArm.CFrame * CF(0, -1, 0) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
  1207. MoveToPos = nil,
  1208. RotationX = 0,
  1209. RotationY = 0,
  1210. RotationZ = 0,
  1211. Material = "Neon",
  1212. Color = C3(1, 1, 1),
  1213. SoundID = nil,
  1214. SoundPitch = nil,
  1215. SoundVolume = nil,
  1216. UseBoomerangMath = true,
  1217. Boomerang = 0,
  1218. SizeBoomerang = 10
  1219. })
  1220. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0.04, 0, 0) * ANGLES(RAD(0), RAD(2.5), RAD(0)), 1 / Animation_Speed)
  1221. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  1222. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(-12), RAD(150)) * ANGLES(RAD(0), RAD(180), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  1223. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(12), RAD(-55)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  1224. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1.035, 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(0.5), RAD(0), RAD(0)), 1 / Animation_Speed)
  1225. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.965, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-4.5), RAD(0), RAD(0)), 1 / Animation_Speed)
  1226. end
  1227. HEADTURN = false
  1228. SpawnVelocity(ROOT, Mouse.Hit.p + VT(0, 5, 0), 170)
  1229. HUM.PlatformStand = true
  1230. CreateSound(471882099, ROOT, 5, MRANDOM(8, 13) / 10, false)
  1231. ROOT.RotVelocity = VT(MRANDOM(-15, 15), MRANDOM(-15, 15), MRANDOM(-15, 15))
  1232. local TOUCHES = {}
  1233. local COLLIDED = false
  1234. for index, CHILD in pairs(ROOT.Parent:GetChildren()) do
  1235. if CHILD:IsA("BasePart") then
  1236. local TOC = CHILD.Touched:Connect(function(HIT)
  1237. if HIT.Parent ~= ROOT.Parent or HIT.Parent.Parent ~= ROOT.Parent and HIT.Parent ~= Effects then
  1238. CamShake(6, 25)
  1239. COLLIDED = true
  1240. for E = 1, #TOUCHES do
  1241. TOUCHES[E]:Disconnect()
  1242. end
  1243. local POS = ROOT.Position - VT(0, -0.1, 0)
  1244. ApplyAoE(POS, 65, 25, 75, 250, false)
  1245. for i = 1, 3 do
  1246. WACKYEFFECT({
  1247. Time = 45 - i * 12,
  1248. EffectType = "Sphere",
  1249. Size = VT(0, 0, 0),
  1250. Size2 = VT(25, 25, 25) + VT(i, i, i) * 55,
  1251. Transparency = 0,
  1252. Transparency2 = 1,
  1253. CFrame = CF(POS),
  1254. MoveToPos = nil,
  1255. RotationX = 0,
  1256. RotationY = 0,
  1257. RotationZ = 0,
  1258. Material = "Neon",
  1259. Color = SKILLTEXTCOLOR,
  1260. SoundID = 1368637781,
  1261. SoundPitch = MRANDOM(8, 14) / 10,
  1262. SoundVolume = 5,
  1263. UseBoomerangMath = false,
  1264. Boomerang = 0,
  1265. SizeBoomerang = 0
  1266. })
  1267. end
  1268. for E = 1, 2 do
  1269. for i = 1, 2 do
  1270. WACKYEFFECT({
  1271. Time = 50,
  1272. EffectType = "Round Slash",
  1273. Size = VT(0, 0, 0),
  1274. Size2 = VT(E, 0, E) / 2,
  1275. Transparency = 0,
  1276. Transparency2 = 1,
  1277. CFrame = CF(POS) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
  1278. MoveToPos = nil,
  1279. RotationX = 0,
  1280. RotationY = 0,
  1281. RotationZ = 0,
  1282. Material = "Neon",
  1283. Color = C3(1, 1, 1),
  1284. SoundID = nil,
  1285. SoundPitch = nil,
  1286. SoundVolume = nil,
  1287. UseBoomerangMath = true,
  1288. Boomerang = 0,
  1289. SizeBoomerang = 10
  1290. })
  1291. end
  1292. end
  1293. local COLISSION, POS = Raycast(CHILD.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 15 * CHILD.Size.Z, CHILD.Parent)
  1294. if COLISSION then
  1295. for i = 1, 5 do
  1296. WACKYEFFECT({
  1297. Time = 20 + i * 15,
  1298. EffectType = "Wave",
  1299. Size = VT(15, 0, 15),
  1300. Size2 = VT(80, 15, 80),
  1301. Transparency = 0.6,
  1302. Transparency2 = 1,
  1303. CFrame = CF(POS) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(-15, 15)), RAD(MRANDOM(0, 360)), RAD(0)),
  1304. MoveToPos = nil,
  1305. RotationX = 0.2,
  1306. RotationY = 0,
  1307. RotationZ = 0,
  1308. Material = "Neon",
  1309. Color = C3(1, 1, 1),
  1310. SoundID = nil,
  1311. SoundPitch = MRANDOM(9, 11) / 10,
  1312. SoundVolume = MRANDOM(9, 11) / 2,
  1313. UseBoomerangMath = true,
  1314. Boomerang = 0,
  1315. SizeBoomerang = 22
  1316. })
  1317. end
  1318. end
  1319. end
  1320. end)
  1321. table.insert(TOUCHES, TOC)
  1322. end
  1323. end
  1324. coroutine.resume(coroutine.create(function()
  1325. for E = 1, 200 do
  1326. Swait()
  1327. if COLLIDED == true then
  1328. break
  1329. end
  1330. end
  1331. SWOOSH.Enabled = false
  1332. SWOOSH.Speed = NumberRange.new(0, 25)
  1333. SWOOSH:Emit(160)
  1334. Debris:AddItem(SWOOSH, 5)
  1335. for E = 1, #TOUCHES do
  1336. TOUCHES[E]:Disconnect()
  1337. end
  1338. HUM.PlatformStand = false
  1339. end))
  1340. for i = 1, 3 do
  1341. WACKYEFFECT({
  1342. Time = 45 - i * 12,
  1343. EffectType = "Sphere",
  1344. Size = VT(0, 0, 0),
  1345. Size2 = VT(5, 5, 5) + VT(i, i, i) * 3,
  1346. Transparency = 0,
  1347. Transparency2 = 1,
  1348. CFrame = CF(RightArm.CFrame * CF(0, -1, 0).p),
  1349. MoveToPos = nil,
  1350. RotationX = 0,
  1351. RotationY = 0,
  1352. RotationZ = 0,
  1353. Material = "Neon",
  1354. Color = SKILLTEXTCOLOR,
  1355. SoundID = 1368637781,
  1356. SoundPitch = MRANDOM(8, 20) / 10,
  1357. SoundVolume = 2,
  1358. UseBoomerangMath = false,
  1359. Boomerang = 0,
  1360. SizeBoomerang = 0
  1361. })
  1362. end
  1363. for i = 0, 1, 0.1 / Animation_Speed do
  1364. Swait()
  1365. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0.2, 0) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed)
  1366. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(45), RAD(0), RAD(15)), 1 / Animation_Speed)
  1367. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.45, -0.5) * ANGLES(RAD(45), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  1368. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(12 - 2.5 * SIN(SINE / 12)), RAD(-55 - 2.5 * SIN(SINE / 12) - 2.5 * COS(SINE / 6))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  1369. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(0)), 1 / Animation_Speed)
  1370. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-100), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  1371. end
  1372. HEADTURN = true
  1373. ATTACK = false
  1374. Rooted = false
  1375. end
  1376. end
  1377. end
  1378. end
  1379. end
  1380. function Incinithrower()
  1381. ATTACK = true
  1382. Rooted = true
  1383. local SpawnVelocity = function(PART, LOCATION, FLING)
  1384. local bv = IT("BodyVelocity")
  1385. bv.maxForce = VT(1000000000, 1000000000, 1000000000)
  1386. bv.velocity = CF(PART.Position, LOCATION).lookVector * FLING
  1387. bv.Parent = PART
  1388. coroutine.resume(coroutine.create(function()
  1389. wait(0.5)
  1390. bv:Remove()
  1391. end))
  1392. end
  1393. function SPAWNFIREBALL(CFRAME, FLING, SIZE)
  1394. coroutine.resume(coroutine.create(function()
  1395. local S = SIZE.X
  1396. local FIRECHAR = IT("Model", workspace)
  1397. local E = IT("BoolValue", FIRECHAR)
  1398. E.Name = "AboutToEerin"
  1399. FIRECHAR.Name = "PurpleEerinFireball"
  1400. local FIREBALL = CreatePart(3, FIRECHAR, "Fabric", 0, 1, BRICKC("Pearl"), "Torso", SIZE, false)
  1401. FIREBALL.CFrame = CFRAME
  1402. local HED = CreatePart(3, FIRECHAR, "Fabric", 0, 1, BRICKC("Pearl"), "Head", VT(0, 0, 0), false)
  1403. local WELD = CreateWeldOrSnapOrMotor("Weld", FIREBALL, FIREBALL, HED, CF(0, 0, 0), CF(0, 0, 0))
  1404. local LEGDAY = CreatePart(3, FIRECHAR, "Fabric", 0, 1, BRICKC("Pearl"), "Right leg", SIZE, false)
  1405. local WELD2 = CreateWeldOrSnapOrMotor("Weld", FIREBALL, FIREBALL, LEGDAY, CF(0, 0, 0), CF(0, 0, 0))
  1406. CreateSound(471882099, FIREBALL, 5, MRANDOM(8, 13) / 7, false)
  1407. local HUM = IT("Humanoid", FIRECHAR)
  1408. HUM.MaxHealth = 25
  1409. HUM.Health = 25
  1410. FIREBALL.CanCollide = true
  1411. FIREBALL.Shape = "Ball"
  1412. WELD.Parent = FIREBALL
  1413. WELD2.Parent = FIREBALL
  1414. SpawnVelocity(FIREBALL, CFRAME * CF(0, 0, -1).p, MRANDOM(FLING - math.ceil(FLING / 1.5), FLING + math.ceil(FLING / 1.5)))
  1415. local BURN = ParticleEmitter({
  1416. Acel = VT(0, 85, 0),
  1417. Speed = 2,
  1418. RotSpeed = NumberRange.new(-15, 15),
  1419. Drag = 0.5,
  1420. Size1 = S * 2,
  1421. Size2 = 0,
  1422. Lifetime1 = 0,
  1423. Lifetime2 = 0.4,
  1424. Parent = FIREBALL,
  1425. Emit = 100,
  1426. Offset = 360,
  1427. Enabled = true,
  1428. Color1 = BRICKC("Royal purple").Color,
  1429. Color2 = BRICKC("Royal purple").Color,
  1430. Texture = "296874871"
  1431. })
  1432. BURN.Rate = 999
  1433. local FIXMEFFS = FIRECHAR.AncestryChanged:Connect(function(G, AY)
  1434. Swait()
  1435. if FIRECHAR.Parent ~= workspace then
  1436. FIRECHAR.Parent = workspace
  1437. end
  1438. end)
  1439. wait(1)
  1440. local DETONATE = false
  1441. for E = 1, math.ceil(200 * S) do
  1442. Swait(4)
  1443. if HUM.Health == 0 then
  1444. break
  1445. end
  1446. do
  1447. local RANGE = 150
  1448. local TARGET
  1449. for index, CHILD in pairs(workspace:GetDescendants()) do
  1450. if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD:FindFirstChild("AboutToEerin") == nil then
  1451. local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  1452. if HUM then
  1453. local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  1454. if TORSO and 0 < HUM.Health and RANGE >= (TORSO.Position - FIREBALL.Position).Magnitude then
  1455. RANGE = (TORSO.Position - FIREBALL.Position).Magnitude
  1456. TARGET = TORSO
  1457. end
  1458. end
  1459. end
  1460. end
  1461. if TARGET then
  1462. FIREBALL.CFrame = CF(FIREBALL.Position, VT(TARGET.Position.X, FIREBALL.Position.Y, TARGET.Position.Z))
  1463. HUM:MoveTo(TARGET.Position)
  1464. if 5 > (TARGET.Position - FIREBALL.Position).Magnitude then
  1465. DETONATE = true
  1466. coroutine.resume(coroutine.create(function()
  1467. local E = IT("BoolValue", TARGET.Parent)
  1468. E.Name = "AboutToEerin"
  1469. local FOE = TARGET.Parent
  1470. local HUM = FOE:FindFirstChildOfClass("Humanoid")
  1471. if HUM then
  1472. local FIRES = {}
  1473. for index, CHILD in pairs(FOE:GetChildren()) do
  1474. if CHILD:IsA("BasePart") then
  1475. local BURN = ParticleEmitter({
  1476. Acel = VT(0, 55, 0),
  1477. Speed = 2,
  1478. RotSpeed = NumberRange.new(-15, 15),
  1479. Drag = 0.5,
  1480. Size1 = 2,
  1481. Size2 = 0,
  1482. Lifetime1 = 0,
  1483. Lifetime2 = 0.7,
  1484. Parent = CHILD,
  1485. Emit = 100,
  1486. Offset = 360,
  1487. Enabled = true,
  1488. Color1 = BRICKC("Royal purple").Color,
  1489. Color2 = BRICKC("Royal purple").Color,
  1490. Texture = "296874871"
  1491. })
  1492. BURN.Rate = 999
  1493. table.insert(FIRES, BURN)
  1494. end
  1495. end
  1496. local DEAD = false
  1497. for i = 1, 200 do
  1498. Swait()
  1499. ApplyDamage(HUM, 0.3 * S)
  1500. if HUM.Health < 0.1 then
  1501. DEAD = true
  1502. break
  1503. end
  1504. end
  1505. E:Remove()
  1506. for E = 1, #FIRES do
  1507. FIRES[E].Enabled = false
  1508. Debris:AddItem(FIRES[E], 1.5)
  1509. end
  1510. if DEAD == true then
  1511. CamShake(15, 5)
  1512. FOE:BreakJoints()
  1513. local CFRAME = TARGET.CFrame
  1514. for E = 1, 2 do
  1515. for i = 1, 4 do
  1516. WACKYEFFECT({
  1517. Time = 50,
  1518. EffectType = "Round Slash",
  1519. Size = VT(0, 0, 0),
  1520. Size2 = VT(E, 0, E) / 6,
  1521. Transparency = 0,
  1522. Transparency2 = 1,
  1523. CFrame = CF(CFRAME.p) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
  1524. MoveToPos = nil,
  1525. RotationX = 0,
  1526. RotationY = 0,
  1527. RotationZ = 0,
  1528. Material = "Neon",
  1529. Color = C3(1, 1, 1),
  1530. SoundID = nil,
  1531. SoundPitch = nil,
  1532. SoundVolume = nil,
  1533. UseBoomerangMath = true,
  1534. Boomerang = 0,
  1535. SizeBoomerang = 10
  1536. })
  1537. end
  1538. end
  1539. WACKYEFFECT({
  1540. Time = 15,
  1541. EffectType = "Sphere",
  1542. Size = VT(4, 4, 4) * TARGET.Size.Z,
  1543. Size2 = VT(15, 15, 15) * TARGET.Size.Z,
  1544. Transparency = 0.4,
  1545. Transparency2 = 1,
  1546. CFrame = CF(CFRAME.p),
  1547. MoveToPos = nil,
  1548. RotationX = 0,
  1549. RotationY = 0,
  1550. RotationZ = 0,
  1551. Material = "Neon",
  1552. Color = SKILLTEXTCOLOR,
  1553. SoundID = 952306739,
  1554. SoundPitch = MRANDOM(8, 14) / 15,
  1555. SoundVolume = 5,
  1556. UseBoomerangMath = false,
  1557. Boomerang = 0,
  1558. SizeBoomerang = 0
  1559. })
  1560. if S > 0.4 then
  1561. for E = 1, 5 do
  1562. SPAWNFIREBALL(CFRAME * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))), 150, SIZE / 2)
  1563. end
  1564. end
  1565. end
  1566. end
  1567. end))
  1568. end
  1569. end
  1570. if DETONATE == true then
  1571. break
  1572. end
  1573. end
  1574. end
  1575. FIXMEFFS:Disconnect()
  1576. LEGDAY:Remove()
  1577. HED:Remove()
  1578. HUM:Remove()
  1579. BURN.Enabled = false
  1580. FIREBALL.CanCollide = false
  1581. FIREBALL.Anchored = true
  1582. Debris:AddItem(FIRECHAR, 1.5)
  1583. if DETONATE == false then
  1584. WACKYEFFECT({
  1585. Time = 15,
  1586. EffectType = "Sphere",
  1587. Size = VT(0, 0, 0),
  1588. Size2 = VT(6, 6, 6),
  1589. Transparency = 0.6,
  1590. Transparency2 = 1,
  1591. CFrame = CF(FIREBALL.Position),
  1592. MoveToPos = nil,
  1593. RotationX = 0,
  1594. RotationY = 0,
  1595. RotationZ = 0,
  1596. Material = "Neon",
  1597. Color = SKILLTEXTCOLOR,
  1598. SoundID = 952306739,
  1599. SoundPitch = MRANDOM(8, 14) / 10,
  1600. SoundVolume = 5,
  1601. UseBoomerangMath = false,
  1602. Boomerang = 0,
  1603. SizeBoomerang = 0
  1604. })
  1605. end
  1606. end))
  1607. end
  1608. HEADTURN = false
  1609. for i = 0, 1, 0.1 / Animation_Speed do
  1610. Swait()
  1611. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24), 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
  1612. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 - 5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  1613. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.65, 0) * ANGLES(RAD(180), RAD(-12 + 2.5 * SIN(SINE / 12)), RAD(-5 + 2.5 * SIN(SINE / 12) - 2.5 * COS(SINE / 6))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  1614. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.65, 0) * ANGLES(RAD(180), RAD(12 - 2.5 * SIN(SINE / 12)), RAD(5 - 2.5 * SIN(SINE / 12) - 2.5 * COS(SINE / 6))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  1615. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.035 * SIN(SINE / 24) - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  1616. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.035 * SIN(SINE / 24) - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  1617. end
  1618. for E = 1, 15 do
  1619. for i = 1, 5 do
  1620. Swait()
  1621. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0.04, 0, 0) * ANGLES(RAD(0), RAD(2.5), RAD(0)), 1 / Animation_Speed)
  1622. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-E * 155)), 1 / Animation_Speed)
  1623. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.65, 0) * ANGLES(RAD(220), RAD(-12), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  1624. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.65, 0) * ANGLES(RAD(140), RAD(12), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  1625. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1.035, 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(0.5), RAD(0), RAD(0)), 1 / Animation_Speed)
  1626. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.965, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-4.5), RAD(0), RAD(0)), 1 / Animation_Speed)
  1627. end
  1628. CamShake(15, 5)
  1629. for i = 1, 2 do
  1630. WACKYEFFECT({
  1631. Time = 25,
  1632. EffectType = "Round Slash",
  1633. Size = VT(0, 0, 0),
  1634. Size2 = VT(0.3, 0, 0.3) / 2,
  1635. Transparency = 0,
  1636. Transparency2 = 1,
  1637. CFrame = CF(Head.Position) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(-15, 15)), RAD(MRANDOM(0, 360)), RAD(0)),
  1638. MoveToPos = nil,
  1639. RotationX = 0,
  1640. RotationY = 0,
  1641. RotationZ = 0,
  1642. Material = "Neon",
  1643. Color = C3(1, 1, 1),
  1644. SoundID = nil,
  1645. SoundPitch = nil,
  1646. SoundVolume = nil,
  1647. UseBoomerangMath = true,
  1648. Boomerang = 0,
  1649. SizeBoomerang = 10
  1650. })
  1651. end
  1652. SPAWNFIREBALL(FAKEHEAD.CFrame * CF(0, 0.5, -0.7), 60, VT(1.3, 1.3, 1.3))
  1653. end
  1654. HEADTURN = true
  1655. ATTACK = false
  1656. Rooted = false
  1657. end
  1658. function Zoom()
  1659. CreateSound(92597340, Torso, 10, 1, false)
  1660. local SpawnVelocity = function(PART, LOCATION, FLING)
  1661. local bv = IT("BodyVelocity")
  1662. bv.maxForce = VT(1000000000, 1000000000, 1000000000)
  1663. bv.Parent = PART
  1664. bv.velocity = CF(PART.Position, LOCATION).lookVector * FLING
  1665. Debris:AddItem(bv, 0.5)
  1666. return bv
  1667. end
  1668. ATTACK = true
  1669. Rooted = false
  1670. UNANCHOR = false
  1671. HEADTURN = false
  1672. if ANIM == "Idle" or ANIM == "Walk" then
  1673. for i = 1, 3 do
  1674. WACKYEFFECT({
  1675. Time = 15,
  1676. EffectType = "Wave",
  1677. Size = VT(2, 0, 2),
  1678. Size2 = VT(12, 2.5, 12),
  1679. Transparency = 0.6,
  1680. Transparency2 = 1,
  1681. CFrame = CF(RootPart.CFrame * CF(0, -4, 0).p) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)),
  1682. MoveToPos = nil,
  1683. RotationX = 1,
  1684. RotationY = 0,
  1685. RotationZ = 0,
  1686. Material = "Neon",
  1687. Color = C3(1, 1, 1),
  1688. SoundID = nil,
  1689. SoundPitch = MRANDOM(9, 11) / 10,
  1690. SoundVolume = MRANDOM(9, 11) / 2,
  1691. UseBoomerangMath = true,
  1692. Boomerang = 0,
  1693. SizeBoomerang = 22
  1694. })
  1695. end
  1696. coroutine.resume(coroutine.create(function()
  1697. for i = 1, 25 do
  1698. Swait()
  1699. RootPart.CFrame = RootPart.CFrame * CF(0, (25 - i) / 7, 0)
  1700. end
  1701. end))
  1702. for i = 1, 35 do
  1703. Swait()
  1704. for i = 1, 3 do
  1705. WACKYEFFECT({
  1706. Time = 12 - i,
  1707. EffectType = "Wave",
  1708. Size = VT(12, 0, 12),
  1709. Size2 = VT(11 + i * 6, 5 + i * 2, 11 + i * 6),
  1710. Transparency = 0.8,
  1711. Transparency2 = 1,
  1712. CFrame = CF(RootPart.Position, Mouse.Hit.p) * CF(0, 0, 4) * ANGLES(RAD(-90), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
  1713. MoveToPos = nil,
  1714. RotationX = 0.1,
  1715. RotationY = 1,
  1716. RotationZ = -0.1,
  1717. Material = "Neon",
  1718. Color = C3(1, 1, 1),
  1719. SoundID = nil,
  1720. SoundPitch = nil,
  1721. SoundVolume = nil,
  1722. UseBoomerangMath = false,
  1723. Boomerang = 0,
  1724. SizeBoomerang = 15
  1725. })
  1726. end
  1727. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(i * 45), RAD(0), RAD(0)), 2.5 / Animation_Speed)
  1728. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  1729. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5, -1) * ANGLES(RAD(0), RAD(0), RAD(-90)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
  1730. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5, -1) * ANGLES(RAD(0), RAD(0), RAD(90)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
  1731. RightHip.C0 = Clerp(RightHip.C0, CF(1, 0, -0.5) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
  1732. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, 0, -0.5) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed)
  1733. end
  1734. end
  1735. UNANCHOR = true
  1736. Humanoid.PlatformStand = true
  1737. RootPart.CFrame = CF(RootPart.Position, Mouse.Hit.p)
  1738. local bv = SpawnVelocity(RootPart, RootPart.CFrame * CF(0, 0, -3).p, 350)
  1739. for E = 1, 3 do
  1740. for i = 1, 4 do
  1741. WACKYEFFECT({
  1742. Time = 50,
  1743. EffectType = "Round Slash",
  1744. Size = VT(0, 0, 0),
  1745. Size2 = VT(E, 0, E) / 4,
  1746. Transparency = 0,
  1747. Transparency2 = 1,
  1748. CFrame = CF(RootPart.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
  1749. MoveToPos = nil,
  1750. RotationX = 0,
  1751. RotationY = 0,
  1752. RotationZ = 0,
  1753. Material = "Neon",
  1754. Color = C3(1, 1, 1),
  1755. SoundID = nil,
  1756. SoundPitch = nil,
  1757. SoundVolume = nil,
  1758. UseBoomerangMath = true,
  1759. Boomerang = 0,
  1760. SizeBoomerang = 10
  1761. })
  1762. end
  1763. end
  1764. for i = 1, 7 do
  1765. WACKYEFFECT({
  1766. Time = 45 - i * 4,
  1767. EffectType = "Sphere",
  1768. Size = VT(0, 0, 0),
  1769. Size2 = VT(5, 5, 5) + VT(i, i, i) * 25,
  1770. Transparency = 0,
  1771. Transparency2 = 1,
  1772. CFrame = CF(RootPart.Position),
  1773. MoveToPos = nil,
  1774. RotationX = 0,
  1775. RotationY = 0,
  1776. RotationZ = 0,
  1777. Material = "Neon",
  1778. Color = SKILLTEXTCOLOR,
  1779. SoundID = 1368637781,
  1780. SoundPitch = MRANDOM(8, 20) / 10,
  1781. SoundVolume = 6,
  1782. UseBoomerangMath = false,
  1783. Boomerang = 0,
  1784. SizeBoomerang = 0
  1785. })
  1786. end
  1787. for i = 1, 12 do
  1788. WACKYEFFECT({
  1789. Time = 35 - i,
  1790. EffectType = "Wave",
  1791. Size = VT(12, 0, 12),
  1792. Size2 = VT(11 + i * 6, 5 + i * 2, 11 + i * 6),
  1793. Transparency = 0.3,
  1794. Transparency2 = 1,
  1795. CFrame = RootPart.CFrame * CF(0, 0, 12) * ANGLES(RAD(-90), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
  1796. MoveToPos = nil,
  1797. RotationX = 0.1,
  1798. RotationY = 1,
  1799. RotationZ = -0.1,
  1800. Material = "Neon",
  1801. Color = C3(1, 1, 1),
  1802. SoundID = nil,
  1803. SoundPitch = nil,
  1804. SoundVolume = nil,
  1805. UseBoomerangMath = false,
  1806. Boomerang = 0,
  1807. SizeBoomerang = 15
  1808. })
  1809. end
  1810. ApplyAoE(RootPart.Position, 85, 25, 65, 150, false)
  1811. CamShake(12, 12)
  1812. local WINGS = CreatePart(3, Effects, "Neon", 0, 1, BRICKC("Royal purple"), "Yes, fly!", VT(0, 0, 0), false)
  1813. CreateMesh("SpecialMesh", WINGS, "FileMesh", "1963497039", "", VT(2.5, 1.3, 1), VT(0, 1.4, 1.2))
  1814. CreateWeldOrSnapOrMotor("Weld", Torso, Torso, WINGS, CF(0, 0, 0), CF(0, 0, 0))
  1815. coroutine.resume(coroutine.create(function()
  1816. for i = 1, 5 do
  1817. Swait()
  1818. WINGS.Transparency = WINGS.Transparency - 0.1
  1819. end
  1820. end))
  1821. local HITS = {}
  1822. for i = 0, 1.35, 0.1 / Animation_Speed do
  1823. Swait()
  1824. RootPart.CFrame = Clerp(RootPart.CFrame, CF(RootPart.Position, Mouse.Hit.p), 0.3)
  1825. bv.velocity = CF(RootPart.Position, RootPart.CFrame * CF(0, 0, -3).p).lookVector * 350
  1826. for index, CHILD in pairs(workspace:GetDescendants()) do
  1827. if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Name ~= "PurpleEerinFireball" then
  1828. local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  1829. if HUM then
  1830. local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  1831. if TORSO and 25 >= (TORSO.Position - RootPart.Position).Magnitude then
  1832. local PASS = true
  1833. for E = 1, #HITS do
  1834. if HITS[E] == CHILD then
  1835. PASS = false
  1836. end
  1837. end
  1838. if PASS == true then
  1839. local DMG = MRANDOM(35, 75)
  1840. ApplyDamage(HUM, DMG)
  1841. table.insert(HITS, CHILD)
  1842. for _, c in pairs(CHILD:GetChildren()) do
  1843. if c:IsA("BasePart") then
  1844. local bv = Instance.new("BodyVelocity")
  1845. bv.maxForce = Vector3.new(1000000000, 1000000000, 1000000000)
  1846. bv.velocity = CF(Torso.Position, TORSO.Position).lookVector * 350
  1847. bv.Parent = c
  1848. Debris:AddItem(bv, 0.05)
  1849. end
  1850. end
  1851. end
  1852. end
  1853. end
  1854. end
  1855. end
  1856. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(80), RAD(0), RAD(0)), 1 / Animation_Speed)
  1857. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-45), RAD(0), RAD(0)), 1 / Animation_Speed)
  1858. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.45, 0.45, 0.05) * ANGLES(RAD(-10), RAD(-10), RAD(-2)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  1859. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.45, 0.45, 0.05) * ANGLES(RAD(-10), RAD(10), RAD(2)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  1860. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
  1861. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
  1862. for i = 1, 2 do
  1863. WACKYEFFECT({
  1864. Time = 15,
  1865. EffectType = "Round Slash",
  1866. Size = VT(0.25, 0, 0.25),
  1867. Size2 = VT(0.4, 0, 0.4),
  1868. Transparency = 0.6,
  1869. Transparency2 = 1,
  1870. CFrame = RootPart.CFrame * CF(0, 0, -5) * ANGLES(RAD(90), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(-15, 15)), RAD(MRANDOM(0, 360)), RAD(0)),
  1871. MoveToPos = nil,
  1872. RotationX = 0,
  1873. RotationY = 0,
  1874. RotationZ = 0,
  1875. Material = "Neon",
  1876. Color = C3(1, 1, 1),
  1877. SoundID = nil,
  1878. SoundPitch = nil,
  1879. SoundVolume = nil,
  1880. UseBoomerangMath = true,
  1881. Boomerang = 0,
  1882. SizeBoomerang = 10
  1883. })
  1884. end
  1885. end
  1886. Humanoid.PlatformStand = false
  1887. RootPart.CFrame = CF(RootPart.Position) * ANGLES(RAD(0), RAD(RootPart.Orientation.Y), RAD(0))
  1888. coroutine.resume(coroutine.create(function()
  1889. for i = 1, 25 do
  1890. Swait()
  1891. WINGS.Transparency = WINGS.Transparency + 0.02
  1892. end
  1893. WINGS:Remove()
  1894. end))
  1895. HEADTURN = true
  1896. ATTACK = false
  1897. Rooted = false
  1898. end
  1899. function Hothead()
  1900. ATTACK = true
  1901. Rooted = true
  1902. UNANCHOR = false
  1903. HEADTURN = false
  1904. coroutine.resume(coroutine.create(function()
  1905. for i = 1, 25 do
  1906. Swait()
  1907. RootPart.CFrame = RootPart.CFrame * CF(0, (25 - i) / 2, 0)
  1908. end
  1909. end))
  1910. CreateSound(1664710821, Effects, 7, 0.8, false)
  1911. for i = 1, 165 do
  1912. Swait()
  1913. WACKYEFFECT({
  1914. Time = 12,
  1915. EffectType = "Sphere",
  1916. Size = VT(3, 3, 3),
  1917. Size2 = VT(0, 0, 150),
  1918. Transparency = 0.3,
  1919. Transparency2 = 1,
  1920. CFrame = CF(RootPart.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
  1921. MoveToPos = nil,
  1922. RotationX = 0,
  1923. RotationY = 0,
  1924. RotationZ = 0,
  1925. Material = "Neon",
  1926. Color = SKILLTEXTCOLOR,
  1927. SoundID = nil,
  1928. SoundPitch = 1,
  1929. SoundVolume = 6,
  1930. UseBoomerangMath = true,
  1931. Boomerang = 0,
  1932. SizeBoomerang = 0
  1933. })
  1934. WACKYEFFECT({
  1935. Time = 15,
  1936. EffectType = "Round Slash",
  1937. Size = VT(0.3, 0, 0.3),
  1938. Size2 = VT(0, 0, 0),
  1939. Transparency = 1,
  1940. Transparency2 = 0.5,
  1941. CFrame = CF(RootPart.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
  1942. MoveToPos = nil,
  1943. RotationX = 0,
  1944. RotationY = 0,
  1945. RotationZ = 0,
  1946. Material = "Neon",
  1947. Color = C3(1, 1, 1),
  1948. SoundID = nil,
  1949. SoundPitch = nil,
  1950. SoundVolume = nil,
  1951. UseBoomerangMath = true,
  1952. Boomerang = 0,
  1953. SizeBoomerang = 35
  1954. })
  1955. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / Animation_Speed)
  1956. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-35), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), 1 / Animation_Speed)
  1957. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-25 + MRANDOM(-5, 5)), RAD(-15 + MRANDOM(-5, 5)), RAD(35)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  1958. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25 + MRANDOM(-5, 5)), RAD(15 + MRANDOM(-5, 5)), RAD(-35)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  1959. RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-25)), 1 / Animation_Speed)
  1960. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
  1961. end
  1962. RootPart.CFrame = CF(RootPart.Position, Mouse.Hit.p)
  1963. coroutine.resume(coroutine.create(function()
  1964. local ROLLER = CreatePart(3, Effects, "Fabric", 0, 0, BRICKC("Pearl"), "ROLLERDAH", VT(13.02, 9.3, 12.09), true)
  1965. local S = CreateSound(511715134, Effects, 10, MRANDOM(8, 13) / 10, false)
  1966. CreateMesh("SpecialMesh", ROLLER, "FileMesh", "16973748", "1090019344", VT(9.3, 9.3, 9.3), VT(0, 0, 0))
  1967. local FACE = CreatePart(3, Effects, "Neon", 0, 0, BRICKC("Royal purple"), "Fire", VT(1, 0.1, 1) * 13.02, true)
  1968. MakeForm(FACE, "Ball")
  1969. local BEHAVIOUR = "Idle"
  1970. local TARGET
  1971. local TARGETLOC = RootPart.CFrame * CF(0, 0, -25)
  1972. local KABLAMO = false
  1973. local LOOP = 0
  1974. local AGGRO_LOOP = 0
  1975. local NECKFIRE = ParticleEmitter({
  1976. Acel = VT(0, 85, 0),
  1977. Speed = 6,
  1978. RotSpeed = NumberRange.new(-15, 15),
  1979. Drag = 0.5,
  1980. Size1 = 8,
  1981. Size2 = 0,
  1982. Lifetime1 = 0,
  1983. Lifetime2 = 1.4,
  1984. Parent = ROLLER,
  1985. Emit = 100,
  1986. Offset = 360,
  1987. Enabled = true,
  1988. Color1 = BRICKC("Royal purple").Color,
  1989. Color2 = BRICKC("Royal purple").Color,
  1990. Texture = "296874871"
  1991. })
  1992. NECKFIRE.Rate = 999
  1993. ROLLER.CFrame = RootPart.CFrame
  1994. FACE.CFrame = ROLLER.CFrame * CF(0, -4.2780000000000005, 0)
  1995. local SUICIDED = false
  1996. for i = 1, 45 do
  1997. Swait()
  1998. ROLLER.CFrame = ROLLER.CFrame * CF(0, 0, -(45 - i) / 35)
  1999. FACE.CFrame = ROLLER.CFrame * CF(0, -4.2780000000000005, 0)
  2000. end
  2001. coroutine.resume(coroutine.create(function()
  2002. repeat
  2003. Swait()
  2004. LOOP = LOOP + 1
  2005. if BEHAVIOUR == "Idle" then
  2006. ROLLER.CFrame = Clerp(ROLLER.CFrame, TARGETLOC, 0.1)
  2007. elseif BEHAVIOUR == "Circle" then
  2008. if TARGET then
  2009. if TARGET.Parent then
  2010. local HUM = TARGET.Parent:FindFirstChildOfClass("Humanoid")
  2011. if HUM then
  2012. if HUM.Health > 0 then
  2013. local CFRAME = CF(TARGET.Position + VT(0, 65 * (TARGET.Size.Z / 2))) * ANGLES(RAD(0), RAD(LOOP), RAD(0)) * CF(0, 0, 45 * (TARGET.Size.Z / 2))
  2014. ROLLER.CFrame = Clerp(ROLLER.CFrame, CF(CFRAME.p, TARGET.Position), 0.1)
  2015. AGGRO_LOOP = AGGRO_LOOP + 1
  2016. if AGGRO_LOOP >= 250 then
  2017. BEHAVIOUR = "Attack"
  2018. end
  2019. else
  2020. BEHAVIOUR = "Idle"
  2021. end
  2022. else
  2023. BEHAVIOUR = "Idle"
  2024. end
  2025. else
  2026. BEHAVIOUR = "Idle"
  2027. end
  2028. end
  2029. elseif BEHAVIOUR == "Attack" then
  2030. AGGRO_LOOP = 0
  2031. local LOC = TARGET.Position
  2032. CreateSound(257002167, ROLLER, 10, MRANDOM(8, 13) / 10, false)
  2033. for i = 1, 25 do
  2034. Swait()
  2035. ROLLER.CFrame = CF(ROLLER.CFrame * CF(0, 0, 1).p, LOC)
  2036. FACE.CFrame = ROLLER.CFrame * CF(0, -4.2780000000000005, 0)
  2037. end
  2038. for i = 1, 70 do
  2039. local HITFLOOR, POS = Raycast(ROLLER.Position, ROLLER.CFrame.lookVector, 6, Character)
  2040. ROLLER.CFrame = ROLLER.CFrame * CF(0, 0, -5)
  2041. FACE.CFrame = ROLLER.CFrame * CF(0, -4.2780000000000005, 0)
  2042. if HITFLOOR then
  2043. ApplyAoE(ROLLER.Position, 135, 45, 50, 120, false)
  2044. ApplyAoE(ROLLER.Position, 25, 45, 50, 1200, true)
  2045. CamShake(12, 25)
  2046. for E = 1, 7 do
  2047. for i = 1, 4 do
  2048. WACKYEFFECT({
  2049. Time = 50,
  2050. EffectType = "Round Slash",
  2051. Size = VT(0, 0, 0),
  2052. Size2 = VT(E, 0, E) / 4,
  2053. Transparency = 0,
  2054. Transparency2 = 1,
  2055. CFrame = CF(ROLLER.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
  2056. MoveToPos = nil,
  2057. RotationX = 0,
  2058. RotationY = 0,
  2059. RotationZ = 0,
  2060. Material = "Neon",
  2061. Color = C3(1, 1, 1),
  2062. SoundID = nil,
  2063. SoundPitch = nil,
  2064. SoundVolume = nil,
  2065. UseBoomerangMath = true,
  2066. Boomerang = 0,
  2067. SizeBoomerang = 10
  2068. })
  2069. end
  2070. end
  2071. for i = 1, 12 do
  2072. WACKYEFFECT({
  2073. Time = 75 - i * 4,
  2074. EffectType = "Sphere",
  2075. Size = VT(0, 0, 0),
  2076. Size2 = VT(5, 5, 5) + VT(i, i, i) * 25,
  2077. Transparency = 0,
  2078. Transparency2 = 1,
  2079. CFrame = CF(ROLLER.Position),
  2080. MoveToPos = nil,
  2081. RotationX = 0,
  2082. RotationY = 0,
  2083. RotationZ = 0,
  2084. Material = "Neon",
  2085. Color = SKILLTEXTCOLOR,
  2086. SoundID = 1368637781,
  2087. SoundPitch = MRANDOM(8, 20) / 10,
  2088. SoundVolume = 10,
  2089. UseBoomerangMath = false,
  2090. Boomerang = 0,
  2091. SizeBoomerang = 0
  2092. })
  2093. end
  2094. local COLISSION, POS = Raycast(ROLLER.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 12, Character)
  2095. if COLISSION then
  2096. for i = 1, 12 do
  2097. WACKYEFFECT({
  2098. Time = 20 + i * 15,
  2099. EffectType = "Wave",
  2100. Size = VT(15, 0, 15),
  2101. Size2 = VT(160, 15, 160),
  2102. Transparency = 0.6,
  2103. Transparency2 = 1,
  2104. CFrame = CF(POS) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(-15, 15)), RAD(MRANDOM(0, 360)), RAD(0)),
  2105. MoveToPos = nil,
  2106. RotationX = 0.2,
  2107. RotationY = 0,
  2108. RotationZ = 0,
  2109. Material = "Neon",
  2110. Color = C3(1, 1, 1),
  2111. SoundID = nil,
  2112. SoundPitch = MRANDOM(9, 11) / 10,
  2113. SoundVolume = MRANDOM(9, 11) / 2,
  2114. UseBoomerangMath = true,
  2115. Boomerang = 0,
  2116. SizeBoomerang = 22
  2117. })
  2118. end
  2119. end
  2120. if KABLAMO == true then
  2121. SUICIDED = true
  2122. FACE:Remove()
  2123. ROLLER.Transparency = 1
  2124. NECKFIRE.Enabled = false
  2125. Debris:AddItem(ROLLER, 5)
  2126. for i = 1, 25 do
  2127. local LEFTOVER = CreatePart(3, workspace, "Pebble", 0, 0, BRICKC("Pearl"), "ROLLERDAH", VT(13.02 * (MRANDOM(8, 12) / 10), 9.3 * (MRANDOM(8, 12) / 10), 12.09 * (MRANDOM(8, 12) / 10)) / 1.5 / 2, false)
  2128. LEFTOVER.CanCollide = true
  2129. LEFTOVER.CFrame = ROLLER.CFrame * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)))
  2130. LEFTOVER.Velocity = CF(LEFTOVER.Position - VT(0, 6, 0), LEFTOVER.CFrame * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))) * CF(0, 5, 0).p).lookVector * MRANDOM(50, 320)
  2131. Debris:AddItem(LEFTOVER, 8)
  2132. end
  2133. end
  2134. break
  2135. else
  2136. WACKYEFFECT({
  2137. Time = 15 + i,
  2138. EffectType = "Wave",
  2139. Size = VT(15, 0, 15),
  2140. Size2 = VT(25, 5, 25),
  2141. Transparency = 0.8,
  2142. Transparency2 = 1,
  2143. CFrame = ROLLER.CFrame * CF(0, 0, -7) * ANGLES(RAD(90), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
  2144. MoveToPos = nil,
  2145. RotationX = 0.1,
  2146. RotationY = 1,
  2147. RotationZ = -0.1,
  2148. Material = "Neon",
  2149. Color = C3(1, 1, 1),
  2150. SoundID = nil,
  2151. SoundPitch = nil,
  2152. SoundVolume = nil,
  2153. UseBoomerangMath = false,
  2154. Boomerang = 0,
  2155. SizeBoomerang = 15
  2156. })
  2157. end
  2158. end
  2159. wait(1)
  2160. BEHAVIOUR = "Idle"
  2161. end
  2162. if BEHAVIOUR ~= "Idle" then
  2163. TARGETLOC = CF(ROLLER.Position) * ANGLES(RAD(0), RAD(ROLLER.Orientation.Y), RAD(0))
  2164. end
  2165. FACE.CFrame = ROLLER.CFrame * CF(0, -4.2780000000000005, 0)
  2166. until SUICIDED == true
  2167. end))
  2168. for i = 1, 12 do
  2169. local RANGE = 6000
  2170. if BEHAVIOUR == "Attack" then
  2171. repeat
  2172. wait()
  2173. until BEHAVIOUR ~= "Attack"
  2174. end
  2175. for index, CHILD in pairs(workspace:GetDescendants()) do
  2176. if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD:FindFirstChild("AboutToEerin") == nil then
  2177. local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  2178. if HUM then
  2179. local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  2180. if TORSO and 0 < HUM.Health and RANGE >= (TORSO.Position - ROLLER.Position).Magnitude then
  2181. RANGE = (TORSO.Position - ROLLER.Position).Magnitude
  2182. TARGET = TORSO
  2183. end
  2184. end
  2185. end
  2186. end
  2187. if TARGET then
  2188. BEHAVIOUR = "Circle"
  2189. else
  2190. BEHAVIOUR = "Idle"
  2191. end
  2192. wait(1)
  2193. end
  2194. KABLAMO = true
  2195. repeat
  2196. local RANGE = 6.0E73
  2197. if BEHAVIOUR == "Attack" then
  2198. repeat
  2199. wait()
  2200. until BEHAVIOUR ~= "Attack"
  2201. end
  2202. for index, CHILD in pairs(workspace:GetDescendants()) do
  2203. if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD:FindFirstChild("AboutToEerin") == nil then
  2204. local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  2205. if HUM then
  2206. local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  2207. if TORSO and 0 < HUM.Health and RANGE >= (TORSO.Position - ROLLER.Position).Magnitude then
  2208. RANGE = (TORSO.Position - ROLLER.Position).Magnitude
  2209. TARGET = TORSO
  2210. end
  2211. end
  2212. end
  2213. end
  2214. if TARGET then
  2215. BEHAVIOUR = "Circle"
  2216. else
  2217. BEHAVIOUR = "Idle"
  2218. end
  2219. wait(1)
  2220. until SUICIDED == true
  2221. end))
  2222. for E = 1, 3 do
  2223. for i = 1, 4 do
  2224. WACKYEFFECT({
  2225. Time = 50,
  2226. EffectType = "Round Slash",
  2227. Size = VT(0, 0, 0),
  2228. Size2 = VT(E, 0, E) / 4,
  2229. Transparency = 0,
  2230. Transparency2 = 1,
  2231. CFrame = CF(RootPart.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
  2232. MoveToPos = nil,
  2233. RotationX = 0,
  2234. RotationY = 0,
  2235. RotationZ = 0,
  2236. Material = "Neon",
  2237. Color = C3(1, 1, 1),
  2238. SoundID = nil,
  2239. SoundPitch = nil,
  2240. SoundVolume = nil,
  2241. UseBoomerangMath = true,
  2242. Boomerang = 0,
  2243. SizeBoomerang = 10
  2244. })
  2245. end
  2246. end
  2247. CreateSound(401056199, Effects, 7, 0.8, false)
  2248. CreateSound(1664711478, Effects, 7, 0.8, false)
  2249. for i = 1, 7 do
  2250. WACKYEFFECT({
  2251. Time = 45 - i * 4,
  2252. EffectType = "Sphere",
  2253. Size = VT(0, 0, 0),
  2254. Size2 = VT(5, 5, 5) + VT(i, i, i) * 25,
  2255. Transparency = 0,
  2256. Transparency2 = 1,
  2257. CFrame = CF(RootPart.Position),
  2258. MoveToPos = nil,
  2259. RotationX = 0,
  2260. RotationY = 0,
  2261. RotationZ = 0,
  2262. Material = "Neon",
  2263. Color = SKILLTEXTCOLOR,
  2264. SoundID = nil,
  2265. SoundPitch = MRANDOM(8, 20) / 10,
  2266. SoundVolume = 6,
  2267. UseBoomerangMath = false,
  2268. Boomerang = 0,
  2269. SizeBoomerang = 0
  2270. })
  2271. end
  2272. for i = 1, 15 do
  2273. WACKYEFFECT({
  2274. Time = 35 - i,
  2275. EffectType = "Wave",
  2276. Size = VT(12, 0, 12),
  2277. Size2 = VT(13 + i * 7, 5 + i * 3, 13 + i * 7),
  2278. Transparency = 0.3,
  2279. Transparency2 = 1,
  2280. CFrame = RootPart.CFrame * CF(0, 0, -4) * ANGLES(RAD(90), RAD(MRANDOM(0, 360)), RAD(MRANDOM(-5, 5))),
  2281. MoveToPos = nil,
  2282. RotationX = 0.1,
  2283. RotationY = 1,
  2284. RotationZ = -0.1,
  2285. Material = "Neon",
  2286. Color = C3(1, 1, 1),
  2287. SoundID = nil,
  2288. SoundPitch = nil,
  2289. SoundVolume = nil,
  2290. UseBoomerangMath = false,
  2291. Boomerang = 0,
  2292. SizeBoomerang = 15
  2293. })
  2294. end
  2295. for i = 0, 0.5, 0.1 / Animation_Speed do
  2296. Swait()
  2297. RootPart.CFrame = RootPart.CFrame * CF(0, 0, 1.2)
  2298. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -0.05) * ANGLES(RAD(-25), RAD(0), RAD(0)), 1 / Animation_Speed)
  2299. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  2300. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(-12), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  2301. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(90), RAD(12), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  2302. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(-50), RAD(85), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
  2303. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(-50), RAD(-85), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / Animation_Speed)
  2304. end
  2305. HEADTURN = true
  2306. UNANCHOR = true
  2307. ATTACK = false
  2308. Rooted = false
  2309. end
  2310. function Wave()
  2311. ATTACK = true
  2312. Rooted = true
  2313. HEADTURN = false
  2314. for i = 1, 100 do
  2315. Swait()
  2316. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24), -0.15, -0.1 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(15), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
  2317. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-10 - 5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  2318. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(-12 + 2.5 * SIN(SINE / 12)), RAD(55 + 2.5 * SIN(SINE / 12) - 2.5 * COS(SINE / 6))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  2319. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.8, 0.4) * ANGLES(RAD(170), RAD(0), RAD(-25 - 25 * SIN(i / 3))) * ANGLES(RAD(0), RAD(-45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  2320. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.035 * SIN(SINE / 24) - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(20), RAD(85), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  2321. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.035 * SIN(SINE / 24) - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(20), RAD(-85), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  2322. end
  2323. HEADTURN = true
  2324. ATTACK = false
  2325. Rooted = false
  2326. end
  2327. function Taunt()
  2328. ATTACK = true
  2329. Rooted = true
  2330. HEADTURN = false
  2331. local function E()
  2332. for i = 0, 0.45, 0.1 / Animation_Speed do
  2333. Swait()
  2334. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -0.035) * ANGLES(RAD(25), RAD(0), RAD(0)), 1 / Animation_Speed)
  2335. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
  2336. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(-12), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  2337. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(45), RAD(12), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  2338. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(35), RAD(85), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
  2339. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(35), RAD(-85), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
  2340. end
  2341. end
  2342. repeat
  2343. E()
  2344. for i = 0, 0.45, 0.1 / Animation_Speed do
  2345. Swait()
  2346. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0.08, 0, 0) * ANGLES(RAD(0), RAD(5), RAD(0)), 1 / Animation_Speed)
  2347. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
  2348. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65, 0) * ANGLES(RAD(160), RAD(-12), RAD(35)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  2349. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65, 0) * ANGLES(RAD(160), RAD(12), RAD(-35)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  2350. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1.07, 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(3), RAD(0), RAD(0)), 1 / Animation_Speed)
  2351. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.9299999999999999, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-7), RAD(0), RAD(0)), 1 / Animation_Speed)
  2352. end
  2353. E()
  2354. for i = 0, 0.45, 0.1 / Animation_Speed do
  2355. Swait()
  2356. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(-0.08, 0, 0) * ANGLES(RAD(0), RAD(-5), RAD(0)), 1 / Animation_Speed)
  2357. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
  2358. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65, 0) * ANGLES(RAD(160), RAD(-12), RAD(35)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  2359. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65, 0) * ANGLES(RAD(160), RAD(12), RAD(-35)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  2360. RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.9299999999999999, 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-7), RAD(0), RAD(0)), 1 / Animation_Speed)
  2361. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1.07, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(3), RAD(0), RAD(0)), 1 / Animation_Speed)
  2362. end
  2363. until KEYHOLD == false
  2364. HEADTURN = true
  2365. ATTACK = false
  2366. Rooted = false
  2367. end
  2368. function MouseDown(Mouse)
  2369. if ATTACK == false then
  2370. end
  2371. end
  2372. function MouseUp(Mouse)
  2373. HOLD = false
  2374. end
  2375. function KeyDown(Key)
  2376. KEYHOLD = true
  2377. if Key == "z" and ATTACK == false then
  2378. LeapingPumpkin()
  2379. end
  2380. if Key == "x" and ATTACK == false then
  2381. Rollout()
  2382. end
  2383. if Key == "c" and ATTACK == false then
  2384. Trashing()
  2385. end
  2386. if Key == "v" and ATTACK == false then
  2387. Incinithrower()
  2388. end
  2389. if Key == "e" and ATTACK == false then
  2390. Zoom()
  2391. end
  2392. if Key == "q" and ATTACK == false then
  2393. Hothead()
  2394. end
  2395. if Key == "t" and ATTACK == false then
  2396. Taunt()
  2397. end
  2398. if Key == "m" and ATTACK == false then
  2399. if Speed == 16 then
  2400. Speed = 50
  2401. elseif Speed == 50 then
  2402. Speed = 16
  2403. end
  2404. end
  2405. if Key == "p" and ATTACK == false then
  2406. Wave()
  2407. end
  2408. if Key == "n" and ATTACK == false then
  2409. if HEADTURN == true then
  2410. HEADTURN = false
  2411. elseif HEADTURN == false then
  2412. HEADTURN = true
  2413. end
  2414. end
  2415. end
  2416. function KeyUp(Key)
  2417. KEYHOLD = false
  2418. end
  2419. Mouse.Button1Down:connect(function(NEWKEY)
  2420. MouseDown(NEWKEY)
  2421. end)
  2422. Mouse.Button1Up:connect(function(NEWKEY)
  2423. MouseUp(NEWKEY)
  2424. end)
  2425. Mouse.KeyDown:connect(function(NEWKEY)
  2426. KeyDown(NEWKEY)
  2427. end)
  2428. Mouse.KeyUp:connect(function(NEWKEY)
  2429. KeyUp(NEWKEY)
  2430. end)
  2431. function unanchor()
  2432. for _, c in pairs(Character:GetChildren()) do
  2433. if c:IsA("BasePart") and c ~= RootPart and c ~= FAKEHEAD then
  2434. c.Anchored = false
  2435. end
  2436. end
  2437. if UNANCHOR == true then
  2438. RootPart.Anchored = false
  2439. else
  2440. RootPart.Anchored = true
  2441. end
  2442. end
  2443. Humanoid.Changed:connect(function(Jump)
  2444. if Jump == "Jump" and Disable_Jump == true then
  2445. Humanoid.Jump = false
  2446. end
  2447. end)
  2448. local TIMESTAMP = 0
  2449. local FIXING = false
  2450. while true do
  2451. Swait()
  2452. for _, c in pairs(Character:GetChildren()) do
  2453. if c.ClassName == "Part" then
  2454. if c:FindFirstChildOfClass("BodyPosition") then
  2455. c:FindFirstChildOfClass("BodyPosition"):remove()
  2456. end
  2457. end
  2458. end
  2459. script.Parent = WEAPONGUI
  2460. ANIMATE.Parent = nil
  2461. for _, v in next, Humanoid:GetPlayingAnimationTracks() do
  2462. v:Stop()
  2463. end
  2464. SINE = SINE + CHANGE
  2465. local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
  2466. local TORSOVERTICALVELOCITY = RootPart.Velocity.y
  2467. local HITFLOOR = Raycast(RootPart.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 4, Character)
  2468. local WALKSPEEDVALUE = 8 / (Humanoid.WalkSpeed / 16)
  2469. local SPEED = WALKSPEEDVALUE
  2470. if SPEED > 2 then
  2471. SPEED = 2
  2472. end
  2473. if ANIM == "Walk" and TORSOVELOCITY > 1 then
  2474. RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0.1 * COS(SINE / (WALKSPEEDVALUE / 2))) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
  2475. Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.6 / Animation_Speed)
  2476. RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 0.875 - 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE * 2), 0.25 * SIN(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10 + 50 * COS(SINE / WALKSPEEDVALUE))), 0.6 * SPEED / Animation_Speed)
  2477. LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 0.875 + 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE * 2), -0.25 * SIN(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-10 + 50 * COS(SINE / WALKSPEEDVALUE))), 0.6 * SPEED / Animation_Speed)
  2478. elseif ANIM ~= "Walk" or TORSOVELOCITY < 1 then
  2479. RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  2480. 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)
  2481. 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.7 / Animation_Speed)
  2482. 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.7 / Animation_Speed)
  2483. end
  2484. if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
  2485. ANIM = "Jump"
  2486. if ATTACK == false then
  2487. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / Animation_Speed)
  2488. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-25), RAD(0), RAD(0)), 1 / Animation_Speed)
  2489. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-35), RAD(0), RAD(25 + 10 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  2490. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-35), RAD(0), RAD(-25 - 10 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  2491. RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.4, -0.6) * ANGLES(RAD(1), RAD(90), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
  2492. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
  2493. end
  2494. elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
  2495. ANIM = "Fall"
  2496. if ATTACK == false then
  2497. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
  2498. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
  2499. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(35 - 4 * COS(SINE / 6)), RAD(0), RAD(45 + 10 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  2500. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(35 - 4 * COS(SINE / 6)), RAD(0), RAD(-45 - 10 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  2501. RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.3, -0.7) * ANGLES(RAD(-25 + 5 * SIN(SINE / 12)), RAD(90), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
  2502. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.8, -0.3) * ANGLES(RAD(-10), RAD(-80), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
  2503. end
  2504. elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
  2505. ANIM = "Idle"
  2506. if ATTACK == false then
  2507. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24), 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
  2508. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 - 5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  2509. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(-12 + 2.5 * SIN(SINE / 12)), RAD(55 + 2.5 * SIN(SINE / 12) - 2.5 * COS(SINE / 6))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  2510. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(12 - 2.5 * SIN(SINE / 12)), RAD(-55 - 2.5 * SIN(SINE / 12) - 2.5 * COS(SINE / 6))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  2511. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.035 * SIN(SINE / 24) - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  2512. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.035 * SIN(SINE / 24) - 0.05 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  2513. end
  2514. elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
  2515. ANIM = "Walk"
  2516. if ATTACK == false then
  2517. if Humanoid.WalkSpeed < 25 then
  2518. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -0.05) * ANGLES(RAD(5), RAD(0), RAD(-7 * COS(SINE / WALKSPEEDVALUE))), 1 / Animation_Speed)
  2519. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(5 - 1 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(7 * COS(SINE / WALKSPEEDVALUE))), 1 / Animation_Speed)
  2520. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.22 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(0), RAD(50 - 5 * SIN(SINE / (WALKSPEEDVALUE / 2)))) * ANGLES(RAD(60 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  2521. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0.22 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(0), RAD(-50 + 5 * SIN(SINE / (WALKSPEEDVALUE / 2)))) * ANGLES(RAD(-60 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  2522. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
  2523. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
  2524. else
  2525. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, -0.1) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
  2526. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
  2527. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.6, 0.4) * ANGLES(RAD(-125 + 5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(-12 + 5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  2528. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.6, 0.4) * ANGLES(RAD(-125 + 5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(12 - 5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  2529. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(-45), RAD(85), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  2530. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(-45), RAD(-85), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  2531. end
  2532. end
  2533. end
  2534. if HEADTURN == true and ANIM == "Idle" then
  2535. if NECKK then
  2536. NECKK:Remove()
  2537. NECKK = nil
  2538. end
  2539. if Mouse.Hit.p then
  2540. FAKEHEAD.CFrame = CF(Head.CFrame * CF(0, 0.5, 0).p) * ANGLES(RAD(0), RAD(FAKEHEAD.Orientation.Y), RAD(0))
  2541. FAKEHEAD.CFrame = Clerp(FAKEHEAD.CFrame, CF(FAKEHEAD.Position, Mouse.Hit.p), 0.1)
  2542. end
  2543. FAKEHEAD.Anchored = true
  2544. GLASSES.CFrame = FAKEHEAD.CFrame
  2545. FACE1.CFrame = FAKEHEAD.CFrame * L1.C0
  2546. FACE2.CFrame = FAKEHEAD.CFrame * L2.C0
  2547. FACE3.CFrame = FAKEHEAD.CFrame * L3.C0
  2548. FACE4.CFrame = FAKEHEAD.CFrame * L4.C0
  2549. FAKEHEAD.Velocity = VT(0, 0, 0)
  2550. GLASSES.Velocity = VT(0, 0, 0)
  2551. FACE1.Velocity = VT(0, 0, 0)
  2552. FACE2.Velocity = VT(0, 0, 0)
  2553. FACE3.Velocity = VT(0, 0, 0)
  2554. FACE4.Velocity = VT(0, 0, 0)
  2555. else
  2556. if NECKK == nil then
  2557. NECKK = weldBetween(FAKEHEAD, Head)
  2558. else
  2559. NECKK.C1 = Clerp(NECKK.C1, CF(0, 0.55, 0), 0.2)
  2560. end
  2561. FAKEHEAD.Anchored = false
  2562. end
  2563. unanchor()
  2564. Humanoid.MaxHealth = 1000
  2565. Humanoid.Health = 1000
  2566. if Rooted == false then
  2567. Disable_Jump = false
  2568. Humanoid.WalkSpeed = Speed
  2569. elseif Rooted == true then
  2570. Disable_Jump = true
  2571. Humanoid.WalkSpeed = 0
  2572. end
  2573. BMUSIC.SoundId = "rbxassetid://" .. SONGID
  2574. BMUSIC.Looped = true
  2575. BMUSIC.Pitch = PITCH
  2576. BMUSIC.Volume = VOLUME
  2577. BMUSIC.Playing = true
  2578. BMUSIC.EmitterSize = 50
  2579. if BMUSIC.Parent ~= RootPart then
  2580. print("Fixing music")
  2581. BMUSIC = IT("Sound", RootPart)
  2582. BMUSIC.SoundId = "rbxassetid://" .. SONGID
  2583. BMUSIC.Looped = true
  2584. BMUSIC.Pitch = PITCH
  2585. BMUSIC.Volume = VOLUME
  2586. BMUSIC.Playing = true
  2587. BMUSIC.EmitterSize = 50
  2588. BMUSIC.TimePosition = TIMESTAMP
  2589. FIXING = true
  2590. elseif FIXING == false then
  2591. TIMESTAMP = BMUSIC.TimePosition
  2592. else
  2593. FIXING = false
  2594. end
  2595. Humanoid.DisplayDistanceType = "None"
  2596. for _, c in pairs(Character:GetChildren()) do
  2597. if c.ClassName == "Part" and c.Name ~= "Eye" and c ~= FACE1 and c ~= FACE2 and c ~= FACE3 and c ~= FACE4 and c ~= FAKEHEAD then
  2598. c.Material = "Fabric"
  2599. if c:FindFirstChildOfClass("ParticleEmitter") then
  2600. c:FindFirstChildOfClass("ParticleEmitter"):remove()
  2601. end
  2602. c.Color = C3(0, 0, 0)
  2603. if c == Head then
  2604. c:ClearAllChildren()
  2605. c.Transparency = 1
  2606. end
  2607. elseif c.ClassName == "CharacterMesh" or c.ClassName == "Accessory" or c.Name == "Body Colors" then
  2608. c:remove()
  2609. elseif (c.ClassName == "Shirt" or c.ClassName == "Pants") and c.Name ~= "Cloth" then
  2610. c:remove()
  2611. end
  2612. end
  2613. Humanoid.Name = "Eerin"
  2614. end
  2615.  
  2616.  
  2617. -------------------------------------------------
  2618.  
  2619.  
  2620. return function()
  2621. local fakeEvent = require(script:WaitForChild'FakeEvent')
  2622. local fakemouse = script.Client
  2623. local sc = getfenv(2).script
  2624. local Player;
  2625. if(sc.Parent:IsA'PlayerGui')then
  2626. Player=sc.Parent.Parent
  2627. elseif(script.Parent.Parent:IsA'Model')then
  2628. Player = game:service'Players':GetPlayerFromCharacter(script.Parent.Parent)
  2629. end
  2630. local ScriptCreated = {}
  2631.  
  2632. assert(Player and Player:IsA'Player')
  2633. local event = Instance.new("RemoteEvent")
  2634. event.Name='INPUTEVENT_'..sc.Name..game:service'HttpService':GenerateGUID(0)
  2635. event.Parent=Player.Character;
  2636. local gcp = Instance.new("RemoteFunction")
  2637. gcp.Name='GetClientProperty'..event.Name
  2638. gcp.Parent=Player.Character;
  2639. local scp = Instance.new("RemoteEvent")
  2640. scp.Name='SetClientProperty'..event.Name
  2641. scp.Parent=Player.Character;
  2642. local loudnesses = {}
  2643. local function GetClientProperty(inst,prop)
  2644. if(prop == 'PlaybackLoudness' and loudnesses[inst])then
  2645. return loudnesses[inst]
  2646. elseif(prop == 'PlaybackLoudness')then
  2647. return gcp:InvokeClient(Player,'RegSound',inst)
  2648. end
  2649. return gcp:InvokeClient(Player,inst,prop)
  2650. end
  2651. local function SetClientProperty(inst,idx,val)
  2652. scp:FireClient(Player,inst,idx,val)
  2653. end
  2654.  
  2655. local FakeMouse = fakemouse:Clone();
  2656. FakeMouse.Parent = Player.Character;
  2657. FakeMouse:WaitForChild'Remote'.Value=event
  2658. FakeMouse.Disabled = false
  2659.  
  2660. local fakes={}
  2661.  
  2662. local object={}
  2663. object.__index=function(self,idx)
  2664. local val = rawget(self,idx) or rawget(self,'real')[idx];
  2665. if(typeof(val)=='function')then
  2666. return function(self2,...)
  2667. local realFunc = (rawget(self,'real') or {})[idx]==val
  2668. return val((realFunc and self2==self and rawget(self,'real') or self2),...)
  2669. end
  2670. end
  2671. return val
  2672. end
  2673.  
  2674. object.__type='Instance'
  2675. object.__tostring=function(self)
  2676. return rawget(self,'real').Name
  2677. end
  2678.  
  2679. gcp.OnServerInvoke = function(plr,inst,play)
  2680. if plr~=Player then return end
  2681. if(inst and typeof(inst) == 'Instance' and inst:IsA'Sound')then
  2682. loudnesses[inst]=play
  2683. end
  2684. end
  2685.  
  2686. local function wrapObject(realobj)
  2687. local fakeobj = {real=realobj}
  2688. if(realobj.ClassName=='Sound')then
  2689. local needsLoudness=false;
  2690. setmetatable(fakeobj,{__index=function(s,i)
  2691. if(i=='PlaybackLoudness')then
  2692. needsLoudness=true;
  2693. return loudnesses[realobj] or 0
  2694. else
  2695. return rawget(object,'__index')(s,i)
  2696. end
  2697. end,
  2698. __type='Instance',
  2699. __tostring=function(self)
  2700. return rawget(self,'real').Name
  2701. end,
  2702. __newindex=function(s,i,v)
  2703. realobj[i]=v
  2704. end})
  2705. coroutine.wrap(function()
  2706. repeat wait() until needsLoudness;
  2707. GetClientProperty(realobj,'PlaybackLoudness')
  2708. end)()
  2709. elseif(realobj.ClassName=='ObjectValue')then
  2710. setmetatable(fakeobj,object)
  2711. getmetatable(fakeobj).__newindex=function(s,i,v)
  2712. if(i=='Value' and fakes[v])then
  2713. realobj.Value = fakes[v]
  2714. else
  2715. realobj[i]=v
  2716. end
  2717. end
  2718. elseif(realobj.ClassName=='TextBox')then
  2719. ScriptCreated[realobj]=true;
  2720. end
  2721.  
  2722. fakes[fakeobj]=realobj
  2723.  
  2724. return fakeobj
  2725. end
  2726.  
  2727. local function getReal(i)
  2728. return fakes[i] or i
  2729. end
  2730. local fakeGame={real=game};
  2731. local fakeInstance={new=function(objName,par)
  2732. local realobj = Instance.new(objName)
  2733. local fakeobj = wrapObject(realobj)
  2734.  
  2735. realobj.Parent=getReal(par)
  2736. local wrapped = getmetatable(fakeobj) and getmetatable(fakeobj).__index and true or false
  2737. return wrapped and fakeobj or realobj
  2738. end};
  2739.  
  2740. local fakePlayer={};
  2741. fakePlayer.real=Player;
  2742. fakePlayer.mouse={
  2743. KeyDown=fakeEvent();
  2744. KeyUp=fakeEvent();
  2745. Button1Down=fakeEvent();
  2746. Button1Up=fakeEvent();
  2747. Button2Down=fakeEvent();
  2748. Button2Up=fakeEvent();
  2749. Target=nil;
  2750. Hit=CFrame.new();
  2751. }
  2752. fakePlayer.GetMouse=function(self)
  2753. return self.mouse;
  2754. end
  2755.  
  2756. local services = {
  2757. Players={real=game:service'Players',LocalPlayer=fakePlayer,localPlayer=fakePlayer};
  2758. UserInputService={real=game:service'UserInputService',InputBegan=fakeEvent(),InputEnded=fakeEvent(),InputChanged=fakeEvent()};
  2759. Debris={real=game:service'Debris',AddItem=function(self,item,timer)
  2760. if(fakes[item])then
  2761. item = fakes[item]
  2762. end
  2763. self.real:AddItem(item,timer)
  2764. end};
  2765. RunService={
  2766. _bound={},
  2767. _lastCall=tick();
  2768. real=game:service'RunService',
  2769. RenderStepped=game:service'RunService'.Stepped,
  2770. BindToRenderStep=function(self,n,_,func)
  2771. self._bound[n]=func;
  2772. end;
  2773. UnbindFromRenderStep=function(self,n,_,func)
  2774. self:BindToRenderStep(n)
  2775. end;
  2776. };
  2777.  
  2778. }
  2779. services.Debris.addItem=services.Debris.AddItem
  2780.  
  2781. services.RunService.RenderStepped:connect(function()
  2782. local ct = tick();
  2783. local lt = services.RunService._lastCall;
  2784. local dt = ct-lt
  2785. services.RunService._lastCall=ct;
  2786. for name,func in next, services.RunService._bound do
  2787. func(dt)
  2788. end
  2789. end)
  2790.  
  2791. local function getService(self,name)
  2792. if(self==fakeGame)then
  2793. return services[name] or game:service(name)
  2794. end
  2795. end
  2796.  
  2797. fakeGame.service=getService;
  2798. fakeGame.GetService=getService;
  2799. for i,v in next, services do
  2800. fakes[v]=v.real
  2801. fakeGame[v.real.Name]=v
  2802. setmetatable(v,object)
  2803. end
  2804.  
  2805. setmetatable(fakeGame,object)
  2806. setmetatable(fakePlayer,object)
  2807. fakes[fakeGame]=game
  2808. fakes[fakePlayer]=Player
  2809. local oLL = LoadLibrary;
  2810. local rbxutil = oLL"RbxUtility"
  2811.  
  2812. getfenv(2).game=fakeGame
  2813. getfenv(2).Instance=fakeInstance;
  2814. getfenv(2).LoadLibrary=function(lib)
  2815. local library = oLL(lib)
  2816. if(library==rbxutil)then
  2817. return setmetatable({
  2818. Create=function(inst)
  2819. local instance = fakeInstance.new(inst)
  2820. return function(tab)
  2821. for i,v in next, tab do
  2822. instance[getReal(i)]=getReal(v)
  2823. end
  2824. return instance
  2825. end
  2826. end
  2827. },{__index=function(_,v) return rbxutil[v] end})
  2828. else
  2829. return library
  2830. end
  2831. end
  2832.  
  2833. getfenv(2).Wrap=wrapObject; -- lets you wrap your instances manually so that you have access to .PlaybackLoudness on sounds, etc.
  2834.  
  2835. event.OnServerEvent:connect(function(self,data)
  2836. local type = data.Type;
  2837. if(data.Event)then
  2838. local event = (type=='Mouse' and fakePlayer.mouse or type=='UserInput' and services.UserInputService or {})[data.Event]
  2839. local eventIsFake = pcall(function()
  2840. return event._connections~=nil
  2841. end)
  2842. if(event and eventIsFake)then
  2843. event:fire(unpack(data.Args))
  2844. end
  2845. elseif(type=='Mouse')then
  2846. fakePlayer.mouse.Target=data.Target
  2847. fakePlayer.mouse.Hit=data.Hit
  2848. elseif(type=='TextboxReplication')then
  2849. if(ScriptCreated[data.TextBox])then
  2850. data.TextBox.Text = data.Text
  2851. end
  2852. end
  2853. end)
  2854.  
  2855. repeat wait() until gcp:InvokeClient(Player,'Ready')
  2856. coroutine.wrap(function() print("using EzConvert by "..game:service'Players':GetNameFromUserIdAsync(5719877)) end)
  2857. return GetClientProperty,SetClientProperty;
  2858. --else
  2859. --return error("Make sure you're using a server-script!")
  2860. end
  2861. local me = game:service'Players'.localPlayer;
  2862. local pg = me:FindFirstChildOfClass'PlayerGui'
  2863. local mouse = me:GetMouse();
  2864. local UIS = game:service'UserInputService'
  2865. local ch = me.Character;
  2866.  
  2867. local sentMouseData = {}
  2868.  
  2869. local UserEvent = (function()
  2870. local Ret;
  2871. repeat wait() Ret = script:WaitForChild'Remote'.Value until Ret
  2872. return Ret
  2873. end)()
  2874.  
  2875.  
  2876. UIS.InputChanged:connect(function(io,gpe)
  2877. if(gpe)then return end
  2878. local fakeIo = {KeyCode=io.KeyCode,UserInputType=io.UserInputType,Delta=io.Delta,Position=io.Position,UserInputState=io.UserInputState}
  2879. UserEvent:FireServer{Type='UserInput',Event='InputChanged',Args={fakeIo,gpe and true or false}}
  2880. end)
  2881.  
  2882.  
  2883. UIS.InputBegan:connect(function(io,gpe)
  2884. if(gpe)then return end
  2885. local fakeIo = {KeyCode=io.KeyCode,UserInputType=io.UserInputType,Delta=io.Delta,Position=io.Position,UserInputState=io.UserInputState}
  2886. UserEvent:FireServer{Type='UserInput',Event='InputBegan',Args={fakeIo,gpe and true or false}}
  2887. end)
  2888.  
  2889. UIS.InputEnded:connect(function(io,gpe)
  2890. if(gpe)then return end
  2891. local fakeIo = {KeyCode=io.KeyCode,UserInputType=io.UserInputType,Delta=io.Delta,Position=io.Position,UserInputState=io.UserInputState}
  2892. UserEvent:FireServer{Type='UserInput',Event='InputEnded',Args={fakeIo,gpe and true or false}}
  2893. end)
  2894.  
  2895. mouse.KeyDown:connect(function(k)
  2896. UserEvent:FireServer{Type='Mouse',Event='KeyDown',Args={k}}
  2897. end)
  2898.  
  2899. mouse.KeyUp:connect(function(k)
  2900. UserEvent:FireServer{Type='Mouse',Event='KeyUp',Args={k}}
  2901. end)
  2902.  
  2903. mouse.Button1Down:connect(function()
  2904. UserEvent:FireServer{Type='Mouse',Event='Button1Down',Args={}}
  2905. end)
  2906.  
  2907. mouse.Button1Up:connect(function()
  2908. UserEvent:FireServer{Type='Mouse',Event='Button1Up',Args={}}
  2909. end)
  2910.  
  2911. mouse.Button2Down:connect(function()
  2912. UserEvent:FireServer{Type='Mouse',Event='Button2Down',Args={}}
  2913. end)
  2914.  
  2915. mouse.Button2Up:connect(function()
  2916. UserEvent:FireServer{Type='Mouse',Event='Button2Up',Args={}}
  2917. end)
  2918.  
  2919. UIS.TextBoxFocusReleased:connect(function(inst)
  2920. UserEvent:FireServer{Type='TextboxReplication',TextBox=inst,Text=inst.Text}
  2921. end)
  2922.  
  2923.  
  2924. local ClientProp = ch:WaitForChild('GetClientProperty'..UserEvent.Name,30)
  2925. local SClientProp = ch:WaitForChild('SetClientProperty'..UserEvent.Name,30)
  2926.  
  2927. local sounds = {}
  2928.  
  2929.  
  2930. function regSound(o)
  2931. if(o:IsA'Sound')then
  2932. local lastLoudness = o.PlaybackLoudness
  2933. ClientProp:InvokeServer(o,lastLoudness)
  2934. table.insert(sounds,{o,lastLoudness})
  2935. --ClientProp:FireServer(o,o.PlaybackLoudness)
  2936. end
  2937. end
  2938.  
  2939. ClientProp.OnClientInvoke = function(inst,prop)
  2940. if(inst == 'RegSound')then
  2941. regSound(prop)
  2942. for i = 1, #sounds do
  2943. if(sounds[i][1] == prop)then
  2944. return sounds[i][2]
  2945. end
  2946. end
  2947. elseif(inst=='Ready')then
  2948. return true
  2949. else
  2950. return inst[prop]
  2951. end
  2952. end
  2953.  
  2954. SClientProp.OnClientEvent:connect(function(inst,prop,val)
  2955. inst[prop]=val
  2956. print(inst[prop])
  2957. end)
  2958.  
  2959. coroutine.wrap(function()
  2960. while true do
  2961. local data = {Target=mouse.Target,Hit=mouse.Hit}
  2962. if(sentMouseData.Target~=data.Target or sentMouseData.Hit~=data.Hit)then
  2963. sentMouseData=data
  2964. --warn'new data sent!'
  2965. UserEvent:FireServer({Type='Mouse',Target=data.Target,Hit=data.Hit})
  2966. end
  2967. wait()
  2968. end
  2969. end)()
  2970.  
  2971. game:service'RunService'.Stepped:connect(function()
  2972. for i = 1, #sounds do
  2973. local tab = sounds[i]
  2974. local object,last=unpack(tab)
  2975. if(object.PlaybackLoudness ~= last)then
  2976. sounds[i][2]=object.PlaybackLoudness
  2977. ClientProp:InvokeServer(object,sounds[i][2])
  2978. end
  2979. end
  2980. end)
  2981.  
  2982. for _,v in next, workspace:GetDescendants() do regSound(v) end
  2983. workspace.DescendantAdded:connect(regSound)
  2984. me.Character.DescendantAdded:connect(regSound)
  2985.  
  2986. local signal = require(script:WaitForChild'ScriptConnection').new
  2987.  
  2988. local fakeEvent = {}
  2989.  
  2990. function fakeEvent.new()
  2991. local conn = {
  2992. _connections={};
  2993. }
  2994.  
  2995. setmetatable(conn,{__index=fakeEvent})
  2996.  
  2997. return conn;
  2998. end
  2999.  
  3000. function fakeEvent:fire(...)
  3001. for i = 1,#self._connections do
  3002. local connection = self._connections[i]
  3003. connection.Function(#connection.Args>0 and unpack(connection.Args) or ...)
  3004. end
  3005. end
  3006.  
  3007.  
  3008. function fakeEvent:connect(func,...)
  3009. local obj = signal(self,func,...)
  3010. warn(obj)
  3011. table.insert(self._connections,obj)
  3012. end
  3013.  
  3014. fakeEvent.Fire=fakeEvent.fire;
  3015. fakeEvent.Connect=fakeEvent.connect;
  3016.  
  3017. setmetatable(fakeEvent,{__call=fakeEvent.new})
  3018. return fakeEvent;local ScriptConnection = {}
  3019.  
  3020. function ScriptConnection.new(event,func,...)
  3021. local connObj = newproxy(true)
  3022. local conn = {
  3023. Event=event;
  3024. Function=func;
  3025. Args={...};
  3026. Object=connObj;
  3027. }
  3028. getmetatable(connObj).__index=function(self,index)
  3029. if(index=='Locked')then
  3030. return nil;
  3031. else
  3032. return conn[index] or ScriptConnection[index]
  3033. end
  3034. end
  3035. getmetatable(connObj).__newindex=function(self,index,value)
  3036. if(index=='Locked' and getfenv(2).script==script)then
  3037. conn.Locked=value
  3038. elseif(index~='Locked')then
  3039. conn[index]=value
  3040. end
  3041. end
  3042.  
  3043. return connObj;
  3044. end
  3045.  
  3046. function ScriptConnection:disconnect()
  3047. self.Event._connections[self]=nil;
  3048. end
  3049.  
  3050. function ScriptConnection:Lock(key)
  3051. self.Locked=key;
  3052. end
  3053.  
  3054. function ScriptConnection:Unlock(key)
  3055. if(self.Locked==key)then
  3056. self.Locked=nil;
  3057. else
  3058. error("Invalid key!",2)
  3059. end
  3060. end
  3061.  
  3062.  
  3063. ScriptConnection.Disconnect=ScriptConnection.disconnect;
  3064.  
  3065. setmetatable(ScriptConnection,{__call=function(s,...)ScriptConnection.new(...) end})
  3066. return ScriptConnection;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement