Advertisement
wanTH092

The Boss

Jul 18th, 2018
319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 242.04 KB | None | 0 0
  1. ---//The Boss
  2. ---||Roblox Edit
  3. ---\\Edited By Leo
  4.  
  5. wait(0.2)
  6.  
  7. Player = game:GetService("Players").LocalPlayer
  8. PlayerGui = Player.PlayerGui
  9. Cam = workspace.CurrentCamera
  10. Backpack = Player.Backpack
  11. Character = Player.Character
  12. Humanoid = Character.Humanoid
  13. Mouse = Player:GetMouse()
  14. RootPart = Character["HumanoidRootPart"]
  15. Torso = Character["Torso"]
  16. Head = Character["Head"]
  17. RightArm = Character["Right Arm"]
  18. LeftArm = Character["Left Arm"]
  19. RightLeg = Character["Right Leg"]
  20. LeftLeg = Character["Left Leg"]
  21. RootJoint = RootPart["RootJoint"]
  22. Neck = Torso["Neck"]
  23. RightShoulder = Torso["Right Shoulder"]
  24. LeftShoulder = Torso["Left Shoulder"]
  25. RightHip = Torso["Right Hip"]
  26. LeftHip = Torso["Left Hip"]
  27. Character.Archivable = true
  28. Player:ClearCharacterAppearance()
  29.  
  30. IT = Instance.new
  31. CF = CFrame.new
  32. VT = Vector3.new
  33. RAD = math.rad
  34. C3 = Color3.new
  35. UD2 = UDim2.new
  36. BRICKC = BrickColor.new
  37. ANGLES = CFrame.Angles
  38. EULER = CFrame.fromEulerAnglesXYZ
  39. COS = math.cos
  40. ACOS = math.acos
  41. SIN = math.sin
  42. ASIN = math.asin
  43. ABS = math.abs
  44. MRANDOM = math.random
  45. FLOOR = math.floor
  46.  
  47. --//=================================\\
  48. --||          USEFUL VALUES
  49. --\\=================================//
  50.  
  51. Animation_Speed = 2
  52. Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
  53. local Speed = 25
  54. local SIZE = 1
  55. local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  56. local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  57. local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
  58. local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
  59. local DAMAGEMULTIPLIER = 5
  60. local ANIM = "Idle"
  61. local ATTACK = false
  62. local EQUIPPED = false
  63. local HOLD = false
  64. local COMBO = 1
  65. local Rooted = false
  66. local SINE = 0
  67. local KEYHOLD = false
  68. local CHANGE = 2 / Animation_Speed
  69. local WALKINGANIM = false
  70. local VALUE1 = false
  71. local VALUE2 = false
  72. local ROBLOXIDLEANIMATION = IT("Animation")
  73. ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
  74. ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
  75. local ATANIM = IT("Animation")
  76. ATANIM.Name = "Attack Animation"
  77. ATANIM.AnimationId = "http://www.roblox.com/asset/?id=74894663"
  78. --ROBLOXIDLEANIMATION.Parent = Humanoid
  79. local WEAPONGUI = IT("ScreenGui", PlayerGui)
  80. WEAPONGUI.Name = "Weapon GUI"
  81. local Weapon = IT("Model")
  82. Weapon.Name = "Adds"
  83. local Effects = IT("Folder", Weapon)
  84. Effects.Name = "Effects"
  85. local ANIMATOR = Humanoid.Animator
  86. local ANIMATE = Character.Animate
  87. local UNANCHOR = true
  88. local CLOCKLOOP = 0
  89. local SONG = 1382488262
  90. local CLOCKTARGET = nil
  91. local CLOCKSPEED = 25
  92. script.Parent = WEAPONGUI
  93. local CLONE = Character:Clone()
  94. CLONE.Parent = nil
  95. Character.Archivable = false
  96. local sick = Instance.new("Sound",Torso)
  97. sick.Volume = 50
  98. local OTHERWORLD = false
  99. local Player_Size = 1
  100.  
  101. --//=================================\\
  102. --\\=================================//
  103.  
  104.  
  105. --//=================================\\
  106. --|| SAZERENOS' ARTIFICIAL HEARTBEAT
  107. --\\=================================//
  108.  
  109. ArtificialHB = Instance.new("BindableEvent", script)
  110. ArtificialHB.Name = "ArtificialHB"
  111.  
  112. script:WaitForChild("ArtificialHB")
  113.  
  114. frame = Frame_Speed
  115. tf = 0
  116. allowframeloss = false
  117. tossremainder = false
  118. lastframe = tick()
  119. script.ArtificialHB:Fire()
  120.  
  121. game:GetService("RunService").Heartbeat:connect(function(s, p)
  122.     tf = tf + s
  123.     if tf >= frame then
  124.         if allowframeloss then
  125.             script.ArtificialHB:Fire()
  126.             lastframe = tick()
  127.         else
  128.             for i = 1, math.floor(tf / frame) do
  129.                 script.ArtificialHB:Fire()
  130.             end
  131.         lastframe = tick()
  132.         end
  133.         if tossremainder then
  134.             tf = 0
  135.         else
  136.             tf = tf - frame * math.floor(tf / frame)
  137.         end
  138.     end
  139. end)
  140.  
  141. --//=================================\\
  142. --\\=================================//
  143.  
  144. --//=================================\\
  145. --||          SOME FUNCTIONS
  146. --\\=================================//
  147.  
  148. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  149.     return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  150. end
  151.  
  152. function PositiveAngle(NUMBER)
  153.     if NUMBER >= 0 then
  154.         NUMBER = 0
  155.     end
  156.     return NUMBER
  157. end
  158.  
  159. function NegativeAngle(NUMBER)
  160.     if NUMBER <= 0 then
  161.         NUMBER = 0
  162.     end
  163.     return NUMBER
  164. end
  165.  
  166. function Swait(NUMBER)
  167.     if NUMBER == 0 or NUMBER == nil then
  168.         ArtificialHB.Event:wait()
  169.     else
  170.         for i = 1, NUMBER do
  171.             ArtificialHB.Event:wait()
  172.         end
  173.     end
  174. end
  175.  
  176. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  177.     local NEWMESH = IT(MESH)
  178.     if MESH == "SpecialMesh" then
  179.         NEWMESH.MeshType = MESHTYPE
  180.         if MESHID ~= "nil" and MESHID ~= "" then
  181.             NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  182.         end
  183.         if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  184.             NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  185.         end
  186.     end
  187.     NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  188.     NEWMESH.Scale = SCALE
  189.     NEWMESH.Parent = PARENT
  190.     return NEWMESH
  191. end
  192.  
  193. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  194.     local NEWPART = IT("Part")
  195.     NEWPART.formFactor = FORMFACTOR
  196.     NEWPART.Reflectance = REFLECTANCE
  197.     NEWPART.Transparency = TRANSPARENCY
  198.     NEWPART.CanCollide = false
  199.     NEWPART.Locked = true
  200.     NEWPART.Anchored = true
  201.     if ANCHOR == false then
  202.         NEWPART.Anchored = false
  203.     end
  204.     NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  205.     NEWPART.Name = NAME
  206.     NEWPART.Size = SIZE
  207.     NEWPART.Position = Torso.Position
  208.     NEWPART.Material = MATERIAL
  209.     NEWPART:BreakJoints()
  210.     NEWPART.Parent = PARENT
  211.     return NEWPART
  212. end
  213.  
  214.     local function weldBetween(a, b)
  215.         local weldd = Instance.new("ManualWeld")
  216.         weldd.Part0 = a
  217.         weldd.Part1 = b
  218.         weldd.C0 = CFrame.new()
  219.         weldd.C1 = b.CFrame:inverse() * a.CFrame
  220.         weldd.Parent = a
  221.         return weldd
  222.     end
  223.  
  224.  
  225. function QuaternionFromCFrame(cf)
  226.     local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  227.     local trace = m00 + m11 + m22
  228.     if trace > 0 then
  229.         local s = math.sqrt(1 + trace)
  230.         local recip = 0.5 / s
  231.         return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  232.     else
  233.         local i = 0
  234.         if m11 > m00 then
  235.             i = 1
  236.         end
  237.         if m22 > (i == 0 and m00 or m11) then
  238.             i = 2
  239.         end
  240.         if i == 0 then
  241.             local s = math.sqrt(m00 - m11 - m22 + 1)
  242.             local recip = 0.5 / s
  243.             return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  244.         elseif i == 1 then
  245.             local s = math.sqrt(m11 - m22 - m00 + 1)
  246.             local recip = 0.5 / s
  247.             return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  248.         elseif i == 2 then
  249.             local s = math.sqrt(m22 - m00 - m11 + 1)
  250.             local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  251.         end
  252.     end
  253. end
  254.  
  255. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  256.     local xs, ys, zs = x + x, y + y, z + z
  257.     local wx, wy, wz = w * xs, w * ys, w * zs
  258.     local xx = x * xs
  259.     local xy = x * ys
  260.     local xz = x * zs
  261.     local yy = y * ys
  262.     local yz = y * zs
  263.     local zz = z * zs
  264.     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))
  265. end
  266.  
  267. function QuaternionSlerp(a, b, t)
  268.     local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  269.     local startInterp, finishInterp;
  270.     if cosTheta >= 0.0001 then
  271.         if (1 - cosTheta) > 0.0001 then
  272.             local theta = ACOS(cosTheta)
  273.             local invSinTheta = 1 / SIN(theta)
  274.             startInterp = SIN((1 - t) * theta) * invSinTheta
  275.             finishInterp = SIN(t * theta) * invSinTheta
  276.         else
  277.             startInterp = 1 - t
  278.             finishInterp = t
  279.         end
  280.     else
  281.         if (1 + cosTheta) > 0.0001 then
  282.             local theta = ACOS(-cosTheta)
  283.             local invSinTheta = 1 / SIN(theta)
  284.             startInterp = SIN((t - 1) * theta) * invSinTheta
  285.             finishInterp = SIN(t * theta) * invSinTheta
  286.         else
  287.             startInterp = t - 1
  288.             finishInterp = t
  289.         end
  290.     end
  291.     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
  292. end
  293.  
  294. function Clerp(a, b, t)
  295.     local qa = {QuaternionFromCFrame(a)}
  296.     local qb = {QuaternionFromCFrame(b)}
  297.     local ax, ay, az = a.x, a.y, a.z
  298.     local bx, by, bz = b.x, b.y, b.z
  299.     local _t = 1 - t
  300.     return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  301. end
  302.  
  303. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  304.     local frame = IT("Frame")
  305.     frame.BackgroundTransparency = TRANSPARENCY
  306.     frame.BorderSizePixel = BORDERSIZEPIXEL
  307.     frame.Position = POSITION
  308.     frame.Size = SIZE
  309.     frame.BackgroundColor3 = COLOR
  310.     frame.BorderColor3 = BORDERCOLOR
  311.     frame.Name = NAME
  312.     frame.Parent = PARENT
  313.     return frame
  314. end
  315.  
  316. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  317.     local label = IT("TextLabel")
  318.     label.BackgroundTransparency = 1
  319.     label.Size = UD2(1, 0, 1, 0)
  320.     label.Position = UD2(0, 0, 0, 0)
  321.     label.TextColor3 = TEXTCOLOR
  322.     label.TextStrokeTransparency = STROKETRANSPARENCY
  323.     label.TextTransparency = TRANSPARENCY
  324.     label.FontSize = TEXTFONTSIZE
  325.     label.Font = TEXTFONT
  326.     label.BorderSizePixel = BORDERSIZEPIXEL
  327.     label.TextScaled = false
  328.     label.Text = TEXT
  329.     label.Name = NAME
  330.     label.Parent = PARENT
  331.     return label
  332. end
  333.  
  334. function NoOutlines(PART)
  335.     PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  336. end
  337.  
  338. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  339.     local NEWWELD = IT(TYPE)
  340.     NEWWELD.Part0 = PART0
  341.     NEWWELD.Part1 = PART1
  342.     NEWWELD.C0 = C0
  343.     NEWWELD.C1 = C1
  344.     NEWWELD.Parent = PARENT
  345.     return NEWWELD
  346. end
  347.  
  348. local S = IT("Sound")
  349. function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
  350.     local NEWSOUND = nil
  351.     coroutine.resume(coroutine.create(function()
  352.         NEWSOUND = S:Clone()
  353.         NEWSOUND.Parent = PARENT
  354.         NEWSOUND.Volume = VOLUME
  355.         NEWSOUND.Pitch = PITCH
  356.         NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  357.         NEWSOUND:play()
  358.         if DOESLOOP == true then
  359.             NEWSOUND.Looped = true
  360.         else
  361.             repeat wait(1) until NEWSOUND.Playing == false
  362.             NEWSOUND:remove()
  363.         end
  364.     end))
  365.     return NEWSOUND
  366. end
  367.  
  368. local EyeSizes={
  369.     NumberSequenceKeypoint.new(0,2,0),
  370.     NumberSequenceKeypoint.new(1,0,0)
  371. }
  372. local EyeTrans={
  373.     NumberSequenceKeypoint.new(0,0.5,0),
  374.     NumberSequenceKeypoint.new(1,1,0)
  375. }
  376. local PE=Instance.new("ParticleEmitter",nil)
  377. PE.LightEmission=.8
  378. PE.Color = ColorSequence.new(BRICKC("Crimson").Color,BRICKC("Really red").Color)
  379. PE.Size=NumberSequence.new(EyeSizes)
  380. PE.Transparency=NumberSequence.new(EyeTrans)
  381. PE.Lifetime=NumberRange.new(0.35,1)
  382. PE.Rotation=NumberRange.new(0,360)
  383. PE.Rate=100
  384. PE.VelocitySpread = 10000
  385. PE.Acceleration = Vector3.new(0,85,0)
  386. PE.Drag = 5
  387. PE.Speed = NumberRange.new(0.1,5)
  388. PE.Texture="http://www.roblox.com/asset/?id=1460745664"
  389. PE.ZOffset = 0.5
  390. PE.Name = "PE"
  391. PE.Enabled = false
  392.  
  393. function Fire(art)
  394.     local PARTICLES = PE:Clone()
  395.     PARTICLES.Parent = art
  396.     PARTICLES.Enabled = true
  397.     return PARTICLES
  398. end
  399.  
  400. function CFrameFromTopBack(at, top, back)
  401.     local right = top:Cross(back)
  402.     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)
  403. end
  404.  
  405. --WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  406. function WACKYEFFECT(Table)
  407.     local TYPE = (Table.EffectType or "Sphere")
  408.     local SIZE = (Table.Size or VT(1,1,1))
  409.     local ENDSIZE = (Table.Size2 or VT(0,0,0))
  410.     local TRANSPARENCY = (Table.Transparency or 0)
  411.     local ENDTRANSPARENCY = (Table.Transparency2 or 1)
  412.     local CFRAME = (Table.CFrame or Torso.CFrame)
  413.     local MOVEDIRECTION = (Table.MoveToPos or nil)
  414.     local ROTATION1 = (Table.RotationX or 0)
  415.     local ROTATION2 = (Table.RotationY or 0)
  416.     local ROTATION3 = (Table.RotationZ or 0)
  417.     local MATERIAL = (Table.Material or "Neon")
  418.     local COLOR = (Table.Color or C3(1,1,1))
  419.     local TIME = (Table.Time or 45)
  420.     local SOUNDID = (Table.SoundID or nil)
  421.     local SOUNDPITCH = (Table.SoundPitch or nil)
  422.     local SOUNDVOLUME = (Table.SoundVolume or nil)
  423.     coroutine.resume(coroutine.create(function()
  424.         local PLAYSSOUND = false
  425.         local SOUND = nil
  426.         local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Crimson"), "Effect", VT(1,1,1), true)
  427.         if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
  428.             PLAYSSOUND = true
  429.             SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
  430.         end
  431.         EFFECT.Color = COLOR
  432.         local MSH = nil
  433.         if TYPE == "Sphere" then
  434.             MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
  435.         elseif TYPE == "Block" or TYPE == "Box" then
  436.             MSH = IT("BlockMesh",EFFECT)
  437.             MSH.Scale = SIZE
  438.         elseif TYPE == "Wave" then
  439.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
  440.         elseif TYPE == "Ring" then
  441.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
  442.         elseif TYPE == "Slash" then
  443.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  444.         elseif TYPE == "Round Slash" then
  445.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  446.         elseif TYPE == "Swirl" then
  447.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
  448.         elseif TYPE == "Skull" then
  449.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
  450.         elseif TYPE == "Crystal" then
  451.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
  452.         end
  453.         if MSH ~= nil then
  454.             local MOVESPEED = nil
  455.             if MOVEDIRECTION ~= nil then
  456.                 MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
  457.             end
  458.             local GROWTH = SIZE - ENDSIZE
  459.             local TRANS = TRANSPARENCY - ENDTRANSPARENCY
  460.             if TYPE == "Block" then
  461.                 EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  462.             else
  463.                 EFFECT.CFrame = CFRAME
  464.             end
  465.             for LOOP = 1, TIME+1 do
  466.                 Swait()
  467.                 MSH.Scale = MSH.Scale - GROWTH/TIME
  468.                 if TYPE == "Wave" then
  469.                     MSH.Offset = VT(0,0,-MSH.Scale.X/8)
  470.                 end
  471.                 EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
  472.                 if TYPE == "Block" then
  473.                     EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  474.                 else
  475.                     EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
  476.                 end
  477.                 if MOVEDIRECTION ~= nil then
  478.                     local ORI = EFFECT.Orientation
  479.                     EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
  480.                     EFFECT.Orientation = ORI
  481.                 end
  482.             end
  483.             if PLAYSSOUND == false then
  484.                 EFFECT:remove()
  485.             else
  486.                 repeat wait(1) until SOUND.Playing == false
  487.                 EFFECT:remove()
  488.             end
  489.         else
  490.             if PLAYSSOUND == false then
  491.                 EFFECT:remove()
  492.             else
  493.                 repeat Swait() until SOUND.Playing == false
  494.                 EFFECT:remove()
  495.             end
  496.         end
  497.     end))
  498. end
  499.  
  500. function MakeForm(PART,TYPE)
  501.     if TYPE == "Cyl" then
  502.         local MSH = IT("CylinderMesh",PART)
  503.     elseif TYPE == "Ball" then
  504.         local MSH = IT("SpecialMesh",PART)
  505.         MSH.MeshType = "Sphere"
  506.     elseif TYPE == "Wedge" then
  507.         local MSH = IT("SpecialMesh",PART)
  508.         MSH.MeshType = "Wedge"
  509.     end
  510. end
  511.  
  512. Debris = game:GetService("Debris")
  513.  
  514. function CastProperRay(StartPos, EndPos, Distance, Ignore)
  515.     local DIRECTION = CF(StartPos,EndPos).lookVector
  516.     return Raycast(StartPos, DIRECTION, Distance, Ignore)
  517. end
  518.  
  519. local HATWELD = nil
  520. function Pose(WhichPose,Speed,Time,Magic,Gyro,Tors)
  521.     PLAYMAINANIM = false
  522.     if WhichPose == "Cast1" then
  523.         for i=0, Time, 0.1 / Animation_Speed do
  524.             Swait()
  525.             if Magic == true then
  526.                 WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Really red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  527.             end
  528.             if Gyro ~= nil and Gyro ~= false then
  529.                 Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
  530.             end
  531.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(35)), Speed / Animation_Speed)
  532.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-35)), Speed / Animation_Speed)
  533.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(125), RAD(0), RAD(45)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  534.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  535.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  536.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  537.         end
  538.     elseif WhichPose == "Cast2" then
  539.         for i=0, Time, 0.1 / Animation_Speed do
  540.             Swait()
  541.             if Magic == true then
  542.                 WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Really red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  543.                 WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = LeftArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Really red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  544.             end
  545.             if Gyro ~= nil and Gyro ~= false then
  546.                 Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
  547.             end
  548.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
  549.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
  550.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(120), RAD(0), RAD(15)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  551.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(120), RAD(0), RAD(-15)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  552.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  553.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  554.         end
  555.     elseif WhichPose == "RightArmUp" then
  556.         for i=0, Time, 0.1 / Animation_Speed do
  557.             Swait()
  558.             if Magic == true then
  559.                 WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Really red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  560.             end
  561.             if Gyro ~= nil and Gyro ~= false then
  562.                 Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
  563.             end
  564.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(15)), Speed / Animation_Speed)
  565.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-15)), Speed / Animation_Speed)
  566.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.2) * ANGLES(RAD(125), RAD(0), RAD(25)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  567.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  568.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  569.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  570.         end
  571.     elseif WhichPose == "Taunt" then
  572.         for i=0, Time, 0.1 / Animation_Speed do
  573.             Swait()
  574.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
  575.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
  576.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(175), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  577.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  578.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  579.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  580.         end
  581.         HATWELD.Part0 = RightArm
  582.         HATWELD.C0 = CF(0,-1.1,-0.4) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(-20), RAD(0), RAD(0))
  583.         CreateSound(221057812,Torso,10,1,false)
  584.         for i=0, Time*2, 0.1 / Animation_Speed do
  585.             Swait()
  586.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
  587.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(35 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
  588.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(145), RAD(0), RAD(45)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  589.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(5), RAD(25), RAD(-15)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  590.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  591.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  592.         end
  593.         for i=0, Time, 0.1 / Animation_Speed do
  594.             Swait()
  595.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
  596.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5), RAD(0), RAD(0)), Speed / Animation_Speed)
  597.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.65, -0.5) * ANGLES(RAD(175), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  598.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  599.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  600.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  601.             HATWELD.C0 = Clerp(HATWELD.C0, CF(-0.5,-1.2,-0.3) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(35), RAD(0), RAD(35)), Speed / Animation_Speed)
  602.         end
  603.         HATWELD.Part0 = Head
  604.         HATWELD.C0 = CF(0,0.35,0)
  605.     elseif WhichPose == "Prepare key" then
  606.         for i=0, Time, 0.1 / Animation_Speed do
  607.             Swait()
  608.             if Gyro ~= nil and Gyro ~= false then
  609.                 Gyro.cframe = CF(RootPart.Position,Tors.Position)
  610.             end
  611.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(65)), Speed / Animation_Speed)
  612.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-65)), Speed / Animation_Speed)
  613.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.25) * ANGLES(RAD(90), RAD(0), RAD(65)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  614.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  615.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  616.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  617.         end
  618.     elseif WhichPose == "Turn key" then
  619.         for i=0, Time, 0.1 / Animation_Speed do
  620.             Swait()
  621.             if Gyro ~= nil and Gyro ~= false then
  622.                 Gyro.cframe = CF(RootPart.Position,Tors.Position)
  623.             end
  624.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(75)), Speed / Animation_Speed)
  625.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-75)), Speed / Animation_Speed)
  626.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.25) * ANGLES(RAD(90), RAD(0), RAD(75)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  627.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  628.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  629.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  630.         end
  631.     end
  632.     PLAYMAINANIM = true
  633. end
  634.  
  635. --Lightning({Color = C3(1,1,1), Start = Torso.Position, End = Mouse.Hit.p, SegmentL = 2, Thickness = 0.1, DoesFade = false, Ignore = Character, MaxDist = 400, Branches = false})
  636. function Lightning(Table)
  637.     local Color = Table.Color or C3(1,1,1)
  638.     local StartPos = Table.Start or Torso.Position
  639.     local EndPos = Table.End or Mouse.Hit.p
  640.     local SegmentLength = Table.SegmentL or 2
  641.     local Thickness = Table.Thickness or 0.1
  642.     local Dissapear = Table.DoesFade or false
  643.     local Parent = Table.Ignore or Character
  644.     local MaxDist = Table.MaxDist or 400
  645.     local Branches = Table.Branches or false
  646.     local HIT,HITPOS = CastProperRay(StartPos, EndPos, MaxDist, Parent)
  647.     local DISTANCE = math.ceil((StartPos - HITPOS).Magnitude/SegmentLength)
  648.     local LIGHTNINGMODEL = IT("Model",Effects)
  649.     LIGHTNINGMODEL.Name = "Lightning"
  650.     local LastBolt = nil
  651.     for E = 1, DISTANCE do
  652.         local ExtraSize = (DISTANCE-E)/15
  653.         local PART = CreatePart(3, LIGHTNINGMODEL, "Neon", 0, 0, BRICKC("Crimson"), "LightningPart"..E, VT(Thickness+ExtraSize,SegmentLength,Thickness+ExtraSize))
  654.         PART.Color = Color
  655.         MakeForm(PART,"Cyl")
  656.         if LastBolt == nil then
  657.             PART.CFrame = CF(StartPos,HITPOS)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
  658.         else
  659.             PART.CFrame = CF(LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0).p,CF(HITPOS)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))*CF(0,0,SegmentLength/3+(DISTANCE-E)).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
  660.         end
  661.         LastBolt = PART
  662.         if Branches == true then
  663.             local CHOICE = MRANDOM(1,7+((DISTANCE-E)*2))
  664.             if CHOICE == 1 then
  665.                 local LASTBRANCH = nil
  666.                 for i = 1, MRANDOM(2,5) do
  667.                     local ExtraSize2 = ((DISTANCE-E)/25)/i
  668.                     local PART = CreatePart(3, LIGHTNINGMODEL, "Neon", 0, 0, BRICKC("Crimson"), "Branch"..E.."-"..i, VT(Thickness+ExtraSize2,SegmentLength,Thickness+ExtraSize2))
  669.                     PART.Color = Color
  670.                     MakeForm(PART,"Cyl")
  671.                     if LASTBRANCH == nil then
  672.                         PART.CFrame = CF(LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0).p,LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0)*ANGLES(RAD(0),RAD(0),RAD(MRANDOM(0,360)))*CF(0,Thickness*7,0)*CF(0,0,-1).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
  673.                     else
  674.                         PART.CFrame = CF(LASTBRANCH.CFrame*CF(0,-LASTBRANCH.Size.Y/2,0).p,LASTBRANCH.CFrame*CF(0,-LASTBRANCH.Size.Y/2,0)*ANGLES(RAD(0),RAD(0),RAD(MRANDOM(0,360)))*CF(0,Thickness*3,0)*CF(0,0,-1).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
  675.                     end
  676.                     LASTBRANCH = PART
  677.                 end
  678.             end
  679.         end
  680.     end
  681.     if Dissapear == true then
  682.         coroutine.resume(coroutine.create(function()
  683.             for i = 1, 10 do
  684.                 Swait()
  685.                 for _, c in pairs(LIGHTNINGMODEL:GetChildren()) do
  686.                     if c.ClassName == "Part" then
  687.                         c.Transparency = i/10
  688.                     end
  689.                 end
  690.             end
  691.             LIGHTNINGMODEL:remove()
  692.         end))
  693.     elseif Dissapear == false then
  694.         Debris:AddItem(LIGHTNINGMODEL,0.1)
  695.     end
  696.     return {End = LastBolt.CFrame*CF(0,0,-LastBolt.Size.Z/2).p,LastBolt = LastBolt,Model = LIGHTNINGMODEL}
  697. end
  698.  
  699. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  700.     return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  701. end
  702.  
  703. function PositiveAngle(NUMBER)
  704.     if NUMBER >= 0 then
  705.         NUMBER = 0
  706.     end
  707.     return NUMBER
  708. end
  709.  
  710. function NegativeAngle(NUMBER)
  711.     if NUMBER <= 0 then
  712.         NUMBER = 0
  713.     end
  714.     return NUMBER
  715. end
  716.  
  717. function Swait(NUMBER)
  718.     if NUMBER == 0 or NUMBER == nil then
  719.         ArtificialHB.Event:wait()
  720.     else
  721.         for i = 1, NUMBER do
  722.             ArtificialHB.Event:wait()
  723.         end
  724.     end
  725. end
  726.  
  727. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  728.     local NEWMESH = IT(MESH)
  729.     if MESH == "SpecialMesh" then
  730.         NEWMESH.MeshType = MESHTYPE
  731.         if MESHID ~= "nil" and MESHID ~= "" then
  732.             NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  733.         end
  734.         if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  735.             NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  736.         end
  737.     end
  738.     NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  739.     NEWMESH.Scale = SCALE
  740.     NEWMESH.Parent = PARENT
  741.     return NEWMESH
  742. end
  743.  
  744. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  745.     local NEWPART = IT("Part")
  746.     NEWPART.formFactor = FORMFACTOR
  747.     NEWPART.Reflectance = REFLECTANCE
  748.     NEWPART.Transparency = TRANSPARENCY
  749.     NEWPART.CanCollide = false
  750.     NEWPART.Locked = true
  751.     NEWPART.Anchored = true
  752.     if ANCHOR == false then
  753.         NEWPART.Anchored = false
  754.     end
  755.     NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  756.     NEWPART.Name = NAME
  757.     NEWPART.Size = SIZE
  758.     NEWPART.Position = Torso.Position
  759.     NEWPART.Material = MATERIAL
  760.     NEWPART:BreakJoints()
  761.     NEWPART.Parent = PARENT
  762.     return NEWPART
  763. end
  764.  
  765.     local function weldBetween(a, b)
  766.         local weldd = Instance.new("ManualWeld")
  767.         weldd.Part0 = a
  768.         weldd.Part1 = b
  769.         weldd.C0 = CFrame.new()
  770.         weldd.C1 = b.CFrame:inverse() * a.CFrame
  771.         weldd.Parent = a
  772.         return weldd
  773.     end
  774.  
  775.  
  776. function QuaternionFromCFrame(cf)
  777.     local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  778.     local trace = m00 + m11 + m22
  779.     if trace > 0 then
  780.         local s = math.sqrt(1 + trace)
  781.         local recip = 0.5 / s
  782.         return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  783.     else
  784.         local i = 0
  785.         if m11 > m00 then
  786.             i = 1
  787.         end
  788.         if m22 > (i == 0 and m00 or m11) then
  789.             i = 2
  790.         end
  791.         if i == 0 then
  792.             local s = math.sqrt(m00 - m11 - m22 + 1)
  793.             local recip = 0.5 / s
  794.             return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  795.         elseif i == 1 then
  796.             local s = math.sqrt(m11 - m22 - m00 + 1)
  797.             local recip = 0.5 / s
  798.             return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  799.         elseif i == 2 then
  800.             local s = math.sqrt(m22 - m00 - m11 + 1)
  801.             local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  802.         end
  803.     end
  804. end
  805.  
  806. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  807.     local xs, ys, zs = x + x, y + y, z + z
  808.     local wx, wy, wz = w * xs, w * ys, w * zs
  809.     local xx = x * xs
  810.     local xy = x * ys
  811.     local xz = x * zs
  812.     local yy = y * ys
  813.     local yz = y * zs
  814.     local zz = z * zs
  815.     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))
  816. end
  817.  
  818. function QuaternionSlerp(a, b, t)
  819.     local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  820.     local startInterp, finishInterp;
  821.     if cosTheta >= 0.0001 then
  822.         if (1 - cosTheta) > 0.0001 then
  823.             local theta = ACOS(cosTheta)
  824.             local invSinTheta = 1 / SIN(theta)
  825.             startInterp = SIN((1 - t) * theta) * invSinTheta
  826.             finishInterp = SIN(t * theta) * invSinTheta
  827.         else
  828.             startInterp = 1 - t
  829.             finishInterp = t
  830.         end
  831.     else
  832.         if (1 + cosTheta) > 0.0001 then
  833.             local theta = ACOS(-cosTheta)
  834.             local invSinTheta = 1 / SIN(theta)
  835.             startInterp = SIN((t - 1) * theta) * invSinTheta
  836.             finishInterp = SIN(t * theta) * invSinTheta
  837.         else
  838.             startInterp = t - 1
  839.             finishInterp = t
  840.         end
  841.     end
  842.     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
  843. end
  844.  
  845. function Clerp(a, b, t)
  846.     local qa = {QuaternionFromCFrame(a)}
  847.     local qb = {QuaternionFromCFrame(b)}
  848.     local ax, ay, az = a.x, a.y, a.z
  849.     local bx, by, bz = b.x, b.y, b.z
  850.     local _t = 1 - t
  851.     return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  852. end
  853.  
  854. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  855.     local frame = IT("Frame")
  856.     frame.BackgroundTransparency = TRANSPARENCY
  857.     frame.BorderSizePixel = BORDERSIZEPIXEL
  858.     frame.Position = POSITION
  859.     frame.Size = SIZE
  860.     frame.BackgroundColor3 = COLOR
  861.     frame.BorderColor3 = BORDERCOLOR
  862.     frame.Name = NAME
  863.     frame.Parent = PARENT
  864.     return frame
  865. end
  866.  
  867. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  868.     local label = IT("TextLabel")
  869.     label.BackgroundTransparency = 1
  870.     label.Size = UD2(1, 0, 1, 0)
  871.     label.Position = UD2(0, 0, 0, 0)
  872.     label.TextColor3 = TEXTCOLOR
  873.     label.TextStrokeTransparency = STROKETRANSPARENCY
  874.     label.TextTransparency = TRANSPARENCY
  875.     label.FontSize = TEXTFONTSIZE
  876.     label.Font = TEXTFONT
  877.     label.BorderSizePixel = BORDERSIZEPIXEL
  878.     label.TextScaled = false
  879.     label.Text = TEXT
  880.     label.Name = NAME
  881.     label.Parent = PARENT
  882.     return label
  883. end
  884.  
  885. function NoOutlines(PART)
  886.     PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  887. end
  888.  
  889. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  890.     local NEWWELD = IT(TYPE)
  891.     NEWWELD.Part0 = PART0
  892.     NEWWELD.Part1 = PART1
  893.     NEWWELD.C0 = C0
  894.     NEWWELD.C1 = C1
  895.     NEWWELD.Parent = PARENT
  896.     return NEWWELD
  897. end
  898.  
  899. local S = IT("Sound")
  900. function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
  901.     local NEWSOUND = nil
  902.     coroutine.resume(coroutine.create(function()
  903.         NEWSOUND = S:Clone()
  904.         NEWSOUND.Parent = PARENT
  905.         NEWSOUND.Volume = VOLUME
  906.         NEWSOUND.Pitch = PITCH
  907.         NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  908.         NEWSOUND:play()
  909.         if DOESLOOP == true then
  910.             NEWSOUND.Looped = true
  911.         else
  912.             repeat wait(1) until NEWSOUND.Playing == false or NEWSOUND.Parent ~= PARENT
  913.             NEWSOUND:remove()
  914.         end
  915.     end))
  916.     return NEWSOUND
  917. end
  918.  
  919. function CFrameFromTopBack(at, top, back)
  920.     local right = top:Cross(back)
  921.     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)
  922. end
  923.  
  924. --WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  925. function WACKYEFFECT(Table)
  926.     local TYPE = (Table.EffectType or "Sphere")
  927.     local SIZE = (Table.Size or VT(1,1,1))
  928.     local ENDSIZE = (Table.Size2 or VT(0,0,0))
  929.     local TRANSPARENCY = (Table.Transparency or 0)
  930.     local ENDTRANSPARENCY = (Table.Transparency2 or 1)
  931.     local CFRAME = (Table.CFrame or Torso.CFrame)
  932.     local MOVEDIRECTION = (Table.MoveToPos or nil)
  933.     local ROTATION1 = (Table.RotationX or 0)
  934.     local ROTATION2 = (Table.RotationY or 0)
  935.     local ROTATION3 = (Table.RotationZ or 0)
  936.     local MATERIAL = (Table.Material or "Neon")
  937.     local COLOR = (Table.Color or C3(1,1,1))
  938.     local TIME = (Table.Time or 45)
  939.     local SOUNDID = (Table.SoundID or nil)
  940.     local SOUNDPITCH = (Table.SoundPitch or nil)
  941.     local SOUNDVOLUME = (Table.SoundVolume or nil)
  942.     coroutine.resume(coroutine.create(function()
  943.         local PLAYSSOUND = false
  944.         local SOUND = nil
  945.         local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
  946.         if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
  947.             PLAYSSOUND = true
  948.             SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
  949.         end
  950.         EFFECT.Color = COLOR
  951.         local MSH = nil
  952.         if TYPE == "Sphere" then
  953.             MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
  954.         elseif TYPE == "Block" then
  955.             MSH = IT("BlockMesh",EFFECT)
  956.             MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
  957.         elseif TYPE == "Wave" then
  958.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
  959.         elseif TYPE == "Ring" then
  960.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
  961.         elseif TYPE == "Slash" then
  962.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  963.         elseif TYPE == "Round Slash" then
  964.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  965.         elseif TYPE == "Swirl" then
  966.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
  967.         elseif TYPE == "Skull" then
  968.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
  969.         elseif TYPE == "Crystal" then
  970.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
  971.         end
  972.         if MSH ~= nil then
  973.             local MOVESPEED = nil
  974.             if MOVEDIRECTION ~= nil then
  975.                 MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
  976.             end
  977.             local GROWTH = SIZE - ENDSIZE
  978.             local TRANS = TRANSPARENCY - ENDTRANSPARENCY
  979.             if TYPE == "Block" then
  980.                 EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  981.             else
  982.                 EFFECT.CFrame = CFRAME
  983.             end
  984.             for LOOP = 1, TIME+1 do
  985.                 Swait()
  986.                 MSH.Scale = MSH.Scale - GROWTH/TIME
  987.                 if TYPE == "Wave" then
  988.                     MSH.Offset = VT(0,0,-MSH.Scale.X/8)
  989.                 end
  990.                 EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
  991.                 if TYPE == "Block" then
  992.                     EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  993.                 else
  994.                     EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
  995.                 end
  996.                 if MOVEDIRECTION ~= nil then
  997.                     local ORI = EFFECT.Orientation
  998.                     EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
  999.                     EFFECT.Orientation = ORI
  1000.                 end
  1001.             end
  1002.             if PLAYSSOUND == false then
  1003.                 EFFECT:remove()
  1004.             else
  1005.                 SOUND.Stopped:Connect(function()
  1006.                     EFFECT:remove()
  1007.                 end)
  1008.             end
  1009.         else
  1010.             if PLAYSSOUND == false then
  1011.                 EFFECT:remove()
  1012.             else
  1013.                 repeat Swait() until SOUND.Playing == false
  1014.                 EFFECT:remove()
  1015.             end
  1016.         end
  1017.     end))
  1018. end
  1019.  
  1020. function MakeForm(PART,TYPE)
  1021.     if TYPE == "Cyl" then
  1022.         local MSH = IT("CylinderMesh",PART)
  1023.     elseif TYPE == "Ball" then
  1024.         local MSH = IT("SpecialMesh",PART)
  1025.         MSH.MeshType = "Sphere"
  1026.     elseif TYPE == "Wedge" then
  1027.         local MSH = IT("SpecialMesh",PART)
  1028.         MSH.MeshType = "Wedge"
  1029.     end
  1030. end
  1031.  
  1032. function SpawnTrail(FROM,TO,BIG)
  1033.     local TRAIL = CreatePart(3, Effects, "Neon", 0, 0.5, "Really red", "Trail", VT(0,0,0))
  1034.     MakeForm(TRAIL,"Cyl")
  1035.     local DIST = (FROM - TO).Magnitude
  1036.     if BIG == true then
  1037.         TRAIL.Size = VT(0.5,DIST,0.5)
  1038.     else
  1039.         TRAIL.Size = VT(0.25,DIST,0.25)
  1040.     end
  1041.     TRAIL.CFrame = CF(FROM, TO) * CF(0, 0, -DIST/2) * ANGLES(RAD(90),RAD(0),RAD(0))
  1042.     coroutine.resume(coroutine.create(function()
  1043.         for i = 1, 5 do
  1044.             Swait()
  1045.             TRAIL.Transparency = TRAIL.Transparency + 0.1
  1046.         end
  1047.         TRAIL:remove()
  1048.     end))
  1049. end
  1050.  
  1051. Debris = game:GetService("Debris")
  1052.  
  1053. function CastProperRay(StartPos, EndPos, Distance, Ignore)
  1054.     local DIRECTION = CF(StartPos,EndPos).lookVector
  1055.     return Raycast(StartPos, DIRECTION, Distance, Ignore)
  1056. end
  1057.  
  1058. function turnto(position)
  1059.     RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
  1060. end
  1061.  
  1062. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  1063.     return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  1064. end
  1065.  
  1066. function PositiveAngle(NUMBER)
  1067.     if NUMBER >= 0 then
  1068.         NUMBER = 0
  1069.     end
  1070.     return NUMBER
  1071. end
  1072.  
  1073. function NegativeAngle(NUMBER)
  1074.     if NUMBER <= 0 then
  1075.         NUMBER = 0
  1076.     end
  1077.     return NUMBER
  1078. end
  1079.  
  1080. function Swait(NUMBER)
  1081.     if NUMBER == 0 or NUMBER == nil then
  1082.         ArtificialHB.Event:wait()
  1083.     else
  1084.         for i = 1, NUMBER do
  1085.             ArtificialHB.Event:wait()
  1086.         end
  1087.     end
  1088. end
  1089.  
  1090. function QuaternionFromCFrame(cf)
  1091.     local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  1092.     local trace = m00 + m11 + m22
  1093.     if trace > 0 then
  1094.         local s = math.sqrt(1 + trace)
  1095.         local recip = 0.5 / s
  1096.         return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  1097.     else
  1098.         local i = 0
  1099.         if m11 > m00 then
  1100.             i = 1
  1101.         end
  1102.         if m22 > (i == 0 and m00 or m11) then
  1103.             i = 2
  1104.         end
  1105.         if i == 0 then
  1106.             local s = math.sqrt(m00 - m11 - m22 + 1)
  1107.             local recip = 0.5 / s
  1108.             return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  1109.         elseif i == 1 then
  1110.             local s = math.sqrt(m11 - m22 - m00 + 1)
  1111.             local recip = 0.5 / s
  1112.             return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  1113.         elseif i == 2 then
  1114.             local s = math.sqrt(m22 - m00 - m11 + 1)
  1115.             local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  1116.         end
  1117.     end
  1118. end
  1119.  
  1120. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  1121.     local xs, ys, zs = x + x, y + y, z + z
  1122.     local wx, wy, wz = w * xs, w * ys, w * zs
  1123.     local xx = x * xs
  1124.     local xy = x * ys
  1125.     local xz = x * zs
  1126.     local yy = y * ys
  1127.     local yz = y * zs
  1128.     local zz = z * zs
  1129.     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))
  1130. end
  1131.  
  1132. function QuaternionSlerp(a, b, t)
  1133.     local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  1134.     local startInterp, finishInterp;
  1135.     if cosTheta >= 0.0001 then
  1136.         if (1 - cosTheta) > 0.0001 then
  1137.             local theta = ACOS(cosTheta)
  1138.             local invSinTheta = 1 / SIN(theta)
  1139.             startInterp = SIN((1 - t) * theta) * invSinTheta
  1140.             finishInterp = SIN(t * theta) * invSinTheta
  1141.         else
  1142.             startInterp = 1 - t
  1143.             finishInterp = t
  1144.         end
  1145.     else
  1146.         if (1 + cosTheta) > 0.0001 then
  1147.             local theta = ACOS(-cosTheta)
  1148.             local invSinTheta = 1 / SIN(theta)
  1149.             startInterp = SIN((t - 1) * theta) * invSinTheta
  1150.             finishInterp = SIN(t * theta) * invSinTheta
  1151.         else
  1152.             startInterp = t - 1
  1153.             finishInterp = t
  1154.         end
  1155.     end
  1156.     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
  1157. end
  1158.  
  1159. function Clerp(a, b, t)
  1160.     local qa = {QuaternionFromCFrame(a)}
  1161.     local qb = {QuaternionFromCFrame(b)}
  1162.     local ax, ay, az = a.x, a.y, a.z
  1163.     local bx, by, bz = b.x, b.y, b.z
  1164.     local _t = 1 - t
  1165.     return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  1166. end
  1167.  
  1168. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  1169.     local frame = IT("Frame")
  1170.     frame.BackgroundTransparency = TRANSPARENCY
  1171.     frame.BorderSizePixel = BORDERSIZEPIXEL
  1172.     frame.Position = POSITION
  1173.     frame.Size = SIZE
  1174.     frame.BackgroundColor3 = COLOR
  1175.     frame.BorderColor3 = BORDERCOLOR
  1176.     frame.Name = NAME
  1177.     frame.Parent = PARENT
  1178.     return frame
  1179. end
  1180.  
  1181. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  1182.     local label = IT("TextLabel")
  1183.     label.BackgroundTransparency = 1
  1184.     label.Size = UD2(1, 0, 1, 0)
  1185.     label.Position = UD2(0, 0, 0, 0)
  1186.     label.TextColor3 = TEXTCOLOR
  1187.     label.TextStrokeTransparency = STROKETRANSPARENCY
  1188.     label.TextTransparency = TRANSPARENCY
  1189.     label.FontSize = TEXTFONTSIZE
  1190.     label.Font = TEXTFONT
  1191.     label.BorderSizePixel = BORDERSIZEPIXEL
  1192.     label.TextScaled = false
  1193.     label.Text = TEXT
  1194.     label.Name = NAME
  1195.     label.Parent = PARENT
  1196.     return label
  1197. end
  1198.  
  1199. function NoOutlines(PART)
  1200.     PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  1201. end
  1202.  
  1203.  
  1204. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  1205.     local NEWWELD = IT(TYPE)
  1206.     NEWWELD.Part0 = PART0
  1207.     NEWWELD.Part1 = PART1
  1208.     NEWWELD.C0 = C0
  1209.     NEWWELD.C1 = C1
  1210.     NEWWELD.Parent = PARENT
  1211.     return NEWWELD
  1212. end
  1213.  
  1214. function CreateSound(ID, PARENT, VOLUME, PITCH)
  1215.     local NEWSOUND = nil
  1216.     coroutine.resume(coroutine.create(function()
  1217.         NEWSOUND = IT("Sound", PARENT)
  1218.         NEWSOUND.Volume = VOLUME
  1219.         NEWSOUND.Pitch = PITCH
  1220.         NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  1221.         Swait()
  1222.         NEWSOUND:play()
  1223.         game:GetService("Debris"):AddItem(NEWSOUND, 10)
  1224.     end))
  1225.     return NEWSOUND
  1226. end
  1227.  
  1228. function CFrameFromTopBack(at, top, back)
  1229.     local right = top:Cross(back)
  1230.     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)
  1231. end
  1232.  
  1233. function CreateWave(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
  1234.     local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
  1235.     local mesh = IT("SpecialMesh",wave)
  1236.     mesh.MeshType = "FileMesh"
  1237.     mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
  1238.     mesh.Scale = SIZE
  1239.     mesh.Offset = VT(0,0,-SIZE.X/8)
  1240.     wave.CFrame = CFRAME
  1241.     coroutine.resume(coroutine.create(function(PART)
  1242.         for i = 1, WAIT do
  1243.             Swait()
  1244.             mesh.Scale = mesh.Scale + GROW
  1245.             mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
  1246.             if DOESROT == true then
  1247.                 wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
  1248.             end
  1249.             wave.Transparency = wave.Transparency + (0.5/WAIT)
  1250.             if wave.Transparency > 0.99 then
  1251.                 wave:remove()
  1252.             end
  1253.         end
  1254.     end))
  1255. end
  1256.  
  1257. function CreateWave2(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
  1258.     local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
  1259.     local mesh = IT("SpecialMesh",wave)
  1260.     mesh.MeshType = "FileMesh"
  1261.     mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
  1262.     mesh.Scale = SIZE
  1263.     --mesh.Offset = VT(0,0,-SIZE.X/8)
  1264.     wave.CFrame = CFRAME
  1265.     coroutine.resume(coroutine.create(function(PART)
  1266.         for i = 1, WAIT do
  1267.             Swait()
  1268.             mesh.Scale = mesh.Scale + GROW
  1269.             --mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
  1270.             if DOESROT == true then
  1271.                 wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
  1272.             end
  1273.             wave.Transparency = wave.Transparency + (0.5/WAIT)
  1274.             if wave.Transparency > 0.99 then
  1275.                 wave:remove()
  1276.             end
  1277.         end
  1278.     end))
  1279. end
  1280.  
  1281. function CreateSwirl(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
  1282.     local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0))
  1283.     local mesh = IT("SpecialMesh",wave)
  1284.     mesh.MeshType = "FileMesh"
  1285.     mesh.MeshId = "http://www.roblox.com/asset/?id=1051557"
  1286.     mesh.Scale = SIZE
  1287.     wave.CFrame = CFRAME
  1288.     coroutine.resume(coroutine.create(function(PART)
  1289.         for i = 1, WAIT do
  1290.             Swait()
  1291.             mesh.Scale = mesh.Scale + GROW
  1292.             mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
  1293.             if DOESROT == true then
  1294.                 wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
  1295.             end
  1296.             wave.Transparency = wave.Transparency + (0.5/WAIT)
  1297.             if wave.Transparency > 0.99 then
  1298.                 wave:remove()
  1299.             end
  1300.         end
  1301.     end))
  1302. end
  1303.  
  1304.  
  1305. function Slice(SIZE,WAIT,CFRAME,COLOR,GROW)
  1306.     local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(1,1,1), true)
  1307.     local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "448386996", "", VT(0,SIZE/10,SIZE/10), VT(0,0,0))
  1308.     wave.CFrame = CFRAME
  1309.     coroutine.resume(coroutine.create(function(PART)
  1310.         for i = 1, WAIT do
  1311.             Swait()
  1312.             mesh.Scale = mesh.Scale * GROW
  1313.             wave.Transparency = wave.Transparency + (0.5/WAIT)
  1314.             if wave.Transparency > 0.99 then
  1315.                 wave:remove()
  1316.             end
  1317.         end
  1318.     end))
  1319. end
  1320.  
  1321. function MagicSphere(SIZE,WAIT,CFRAME,COLOR,GROW)
  1322.     local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(COLOR), "Effect", VT(1,1,1), true)
  1323.     local mesh = IT("SpecialMesh",wave)
  1324.     mesh.MeshType = "Sphere"
  1325.     mesh.Scale = SIZE
  1326.     mesh.Offset = VT(0,0,0)
  1327.     wave.CFrame = CFRAME
  1328.     coroutine.resume(coroutine.create(function(PART)
  1329.         for i = 1, WAIT do
  1330.             Swait()
  1331.             mesh.Scale = mesh.Scale + GROW
  1332.             wave.Transparency = wave.Transparency + (1/WAIT)
  1333.             if wave.Transparency > 0.99 then
  1334.                 wave:remove()
  1335.             end
  1336.         end
  1337.     end))
  1338. end
  1339.  
  1340. function MakeForm(PART,TYPE)
  1341.     if TYPE == "Cyl" then
  1342.         local MSH = IT("CylinderMesh",PART)
  1343.     elseif TYPE == "Ball" then
  1344.         local MSH = IT("SpecialMesh",PART)
  1345.         MSH.MeshType = "Sphere"
  1346.     elseif TYPE == "Wedge" then
  1347.         local MSH = IT("SpecialMesh",PART)
  1348.         MSH.MeshType = "Wedge"
  1349.     end
  1350. end
  1351.  
  1352. function CreateDebreeRing(FLOOR,POSITION,SIZE,BLOCKSIZE,SWAIT)
  1353.     if FLOOR ~= nil then
  1354.         coroutine.resume(coroutine.create(function()
  1355.             local PART = CreatePart(3, Effects, "Plastic", 0, 1, "Pearl", "DebreeCenter", VT(0,0,0))
  1356.             PART.CFrame = CF(POSITION)
  1357.             for i = 1, 45 do
  1358.                 local RingPiece = CreatePart(3, Effects, "Plastic", 0, 0, "Pearl", "DebreePart", BLOCKSIZE)
  1359.                 RingPiece.Material = FLOOR.Material
  1360.                 RingPiece.Color = FLOOR.Color
  1361.                 RingPiece.CFrame = PART.CFrame * ANGLES(RAD(0), RAD(i*8), RAD(0)) * CF(SIZE*4, 0, 0) * ANGLES(RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)))
  1362.                 Debris:AddItem(RingPiece,SWAIT/100)
  1363.             end
  1364.             PART:remove()
  1365.         end))
  1366.     end
  1367. end
  1368.  
  1369. function CheckTableForString(Table, String)
  1370.     for i, v in pairs(Table) do
  1371.         if string.find(string.lower(String), string.lower(v)) then
  1372.             return true
  1373.         end
  1374.     end
  1375.     return false
  1376. end
  1377.  
  1378. function CheckIntangible(Hit)
  1379.     local ProjectileNames = {"Water", "Arrow", "Projectile", "Effect", "Rail", "Lightning", "Bullet"}
  1380.     if Hit and Hit.Parent then
  1381.         if ((not Hit.CanCollide or CheckTableForString(ProjectileNames, Hit.Name)) and not Hit.Parent:FindFirstChild("Humanoid")) then
  1382.             return true
  1383.         end
  1384.     end
  1385.     return false
  1386. end
  1387.  
  1388. Debris = game:GetService("Debris")
  1389.  
  1390. function CastZapRay(StartPos, Vec, Length, Ignore, DelayIfHit)
  1391.     local Direction = CFrame.new(StartPos, Vec).lookVector
  1392.     local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
  1393.     local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Direction * Length), Ignore)
  1394.     if RayHit and CheckIntangible(RayHit) then
  1395.         if DelayIfHit then
  1396.             wait()
  1397.         end
  1398.         RayHit, RayPos, RayNormal = CastZapRay((RayPos + (Vec * 0.01)), Vec, (Length - ((StartPos - RayPos).magnitude)), Ignore, DelayIfHit)
  1399.     end
  1400.     return RayHit, RayPos, RayNormal
  1401. end
  1402.  
  1403. function turnto(position)
  1404.     RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
  1405. end
  1406.  
  1407. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  1408.     return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  1409. end
  1410.  
  1411. function PositiveAngle(NUMBER)
  1412.     if NUMBER >= 0 then
  1413.         NUMBER = 0
  1414.     end
  1415.     return NUMBER
  1416. end
  1417.  
  1418. function NegativeAngle(NUMBER)
  1419.     if NUMBER <= 0 then
  1420.         NUMBER = 0
  1421.     end
  1422.     return NUMBER
  1423. end
  1424.  
  1425. function Swait(NUMBER)
  1426.     if NUMBER == 0 or NUMBER == nil then
  1427.         ArtificialHB.Event:wait()
  1428.     else
  1429.         for i = 1, NUMBER do
  1430.             ArtificialHB.Event:wait()
  1431.         end
  1432.     end
  1433. end
  1434.  
  1435. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  1436.     local NEWMESH = IT(MESH)
  1437.     if MESH == "SpecialMesh" then
  1438.         NEWMESH.MeshType = MESHTYPE
  1439.         if MESHID ~= "nil" and MESHID ~= "" then
  1440.             NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  1441.         end
  1442.         if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  1443.             NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  1444.         end
  1445.     end
  1446.     NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  1447.     NEWMESH.Scale = SCALE
  1448.     NEWMESH.Parent = PARENT
  1449.     return NEWMESH
  1450. end
  1451.  
  1452. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  1453.     local NEWPART = IT("Part")
  1454.     NEWPART.formFactor = FORMFACTOR
  1455.     NEWPART.Reflectance = REFLECTANCE
  1456.     NEWPART.Transparency = TRANSPARENCY
  1457.     NEWPART.CanCollide = false
  1458.     NEWPART.Locked = true
  1459.     NEWPART.Anchored = true
  1460.     if ANCHOR == false then
  1461.         NEWPART.Anchored = false
  1462.     end
  1463.     NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  1464.     NEWPART.Name = NAME
  1465.     NEWPART.Size = SIZE
  1466.     NEWPART.Position = Torso.Position
  1467.     NEWPART.Material = MATERIAL
  1468.     NEWPART:BreakJoints()
  1469.     NEWPART.Parent = PARENT
  1470.     return NEWPART
  1471. end
  1472.  
  1473.     local function weldBetween(a, b)
  1474.         local weldd = Instance.new("ManualWeld")
  1475.         weldd.Part0 = a
  1476.         weldd.Part1 = b
  1477.         weldd.C0 = CFrame.new()
  1478.         weldd.C1 = b.CFrame:inverse() * a.CFrame
  1479.         weldd.Parent = a
  1480.         return weldd
  1481.     end
  1482.  
  1483.  
  1484. function QuaternionFromCFrame(cf)
  1485.     local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  1486.     local trace = m00 + m11 + m22
  1487.     if trace > 0 then
  1488.         local s = math.sqrt(1 + trace)
  1489.         local recip = 0.5 / s
  1490.         return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  1491.     else
  1492.         local i = 0
  1493.         if m11 > m00 then
  1494.             i = 1
  1495.         end
  1496.         if m22 > (i == 0 and m00 or m11) then
  1497.             i = 2
  1498.         end
  1499.         if i == 0 then
  1500.             local s = math.sqrt(m00 - m11 - m22 + 1)
  1501.             local recip = 0.5 / s
  1502.             return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  1503.         elseif i == 1 then
  1504.             local s = math.sqrt(m11 - m22 - m00 + 1)
  1505.             local recip = 0.5 / s
  1506.             return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  1507.         elseif i == 2 then
  1508.             local s = math.sqrt(m22 - m00 - m11 + 1)
  1509.             local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  1510.         end
  1511.     end
  1512. end
  1513.  
  1514. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  1515.     local xs, ys, zs = x + x, y + y, z + z
  1516.     local wx, wy, wz = w * xs, w * ys, w * zs
  1517.     local xx = x * xs
  1518.     local xy = x * ys
  1519.     local xz = x * zs
  1520.     local yy = y * ys
  1521.     local yz = y * zs
  1522.     local zz = z * zs
  1523.     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))
  1524. end
  1525.  
  1526. function QuaternionSlerp(a, b, t)
  1527.     local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  1528.     local startInterp, finishInterp;
  1529.     if cosTheta >= 0.0001 then
  1530.         if (1 - cosTheta) > 0.0001 then
  1531.             local theta = ACOS(cosTheta)
  1532.             local invSinTheta = 1 / SIN(theta)
  1533.             startInterp = SIN((1 - t) * theta) * invSinTheta
  1534.             finishInterp = SIN(t * theta) * invSinTheta
  1535.         else
  1536.             startInterp = 1 - t
  1537.             finishInterp = t
  1538.         end
  1539.     else
  1540.         if (1 + cosTheta) > 0.0001 then
  1541.             local theta = ACOS(-cosTheta)
  1542.             local invSinTheta = 1 / SIN(theta)
  1543.             startInterp = SIN((t - 1) * theta) * invSinTheta
  1544.             finishInterp = SIN(t * theta) * invSinTheta
  1545.         else
  1546.             startInterp = t - 1
  1547.             finishInterp = t
  1548.         end
  1549.     end
  1550.     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
  1551. end
  1552.  
  1553. function Clerp(a, b, t)
  1554.     local qa = {QuaternionFromCFrame(a)}
  1555.     local qb = {QuaternionFromCFrame(b)}
  1556.     local ax, ay, az = a.x, a.y, a.z
  1557.     local bx, by, bz = b.x, b.y, b.z
  1558.     local _t = 1 - t
  1559.     return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  1560. end
  1561.  
  1562. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  1563.     local frame = IT("Frame")
  1564.     frame.BackgroundTransparency = TRANSPARENCY
  1565.     frame.BorderSizePixel = BORDERSIZEPIXEL
  1566.     frame.Position = POSITION
  1567.     frame.Size = SIZE
  1568.     frame.BackgroundColor3 = COLOR
  1569.     frame.BorderColor3 = BORDERCOLOR
  1570.     frame.Name = NAME
  1571.     frame.Parent = PARENT
  1572.     return frame
  1573. end
  1574.  
  1575. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  1576.     local label = IT("TextLabel")
  1577.     label.BackgroundTransparency = 1
  1578.     label.Size = UD2(1, 0, 1, 0)
  1579.     label.Position = UD2(0, 0, 0, 0)
  1580.     label.TextColor3 = TEXTCOLOR
  1581.     label.TextStrokeTransparency = STROKETRANSPARENCY
  1582.     label.TextTransparency = TRANSPARENCY
  1583.     label.FontSize = TEXTFONTSIZE
  1584.     label.Font = TEXTFONT
  1585.     label.BorderSizePixel = BORDERSIZEPIXEL
  1586.     label.TextScaled = false
  1587.     label.Text = TEXT
  1588.     label.Name = NAME
  1589.     label.Parent = PARENT
  1590.     return label
  1591. end
  1592.  
  1593. function NoOutlines(PART)
  1594.     PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  1595. end
  1596.  
  1597. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  1598.     local NEWWELD = IT(TYPE)
  1599.     NEWWELD.Part0 = PART0
  1600.     NEWWELD.Part1 = PART1
  1601.     NEWWELD.C0 = C0
  1602.     NEWWELD.C1 = C1
  1603.     NEWWELD.Parent = PARENT
  1604.     return NEWWELD
  1605. end
  1606.  
  1607. local S = IT("Sound")
  1608. function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
  1609.     local NEWSOUND = nil
  1610.     coroutine.resume(coroutine.create(function()
  1611.         NEWSOUND = S:Clone()
  1612.         NEWSOUND.Parent = PARENT
  1613.         NEWSOUND.Volume = VOLUME
  1614.         NEWSOUND.Pitch = PITCH
  1615.         NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  1616.         NEWSOUND:play()
  1617.         if DOESLOOP == true then
  1618.             NEWSOUND.Looped = true
  1619.         else
  1620.             repeat wait(1) until NEWSOUND.Playing == false
  1621.             NEWSOUND:remove()
  1622.         end
  1623.     end))
  1624.     return NEWSOUND
  1625. end
  1626.  
  1627. function CFrameFromTopBack(at, top, back)
  1628.     local right = top:Cross(back)
  1629.     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)
  1630. end
  1631.  
  1632. --WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  1633. function WACKYEFFECT(Table)
  1634.     local TYPE = (Table.EffectType or "Sphere")
  1635.     local SIZE = (Table.Size or VT(1,1,1))
  1636.     local ENDSIZE = (Table.Size2 or VT(0,0,0))
  1637.     local TRANSPARENCY = (Table.Transparency or 0)
  1638.     local ENDTRANSPARENCY = (Table.Transparency2 or 1)
  1639.     local CFRAME = (Table.CFrame or Torso.CFrame)
  1640.     local MOVEDIRECTION = (Table.MoveToPos or nil)
  1641.     local ROTATION1 = (Table.RotationX or 0)
  1642.     local ROTATION2 = (Table.RotationY or 0)
  1643.     local ROTATION3 = (Table.RotationZ or 0)
  1644.     local MATERIAL = (Table.Material or "Neon")
  1645.     local COLOR = (Table.Color or C3(1,1,1))
  1646.     local TIME = (Table.Time or 45)
  1647.     local SOUNDID = (Table.SoundID or nil)
  1648.     local SOUNDPITCH = (Table.SoundPitch or nil)
  1649.     local SOUNDVOLUME = (Table.SoundVolume or nil)
  1650.     coroutine.resume(coroutine.create(function()
  1651.         local PLAYSSOUND = false
  1652.         local SOUND = nil
  1653.         local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
  1654.         if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
  1655.             PLAYSSOUND = true
  1656.             SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
  1657.         end
  1658.         EFFECT.Color = COLOR
  1659.         local MSH = nil
  1660.         if TYPE == "Sphere" then
  1661.             MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
  1662.         elseif TYPE == "Block" then
  1663.             MSH = IT("BlockMesh",EFFECT)
  1664.             MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
  1665.         elseif TYPE == "Wave" then
  1666.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
  1667.         elseif TYPE == "Ring" then
  1668.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
  1669.         elseif TYPE == "Slash" then
  1670.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  1671.         elseif TYPE == "Round Slash" then
  1672.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  1673.         elseif TYPE == "Swirl" then
  1674.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
  1675.         elseif TYPE == "Skull" then
  1676.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
  1677.         elseif TYPE == "Crystal" then
  1678.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
  1679.         end
  1680.         if MSH ~= nil then
  1681.             local MOVESPEED = nil
  1682.             if MOVEDIRECTION ~= nil then
  1683.                 MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
  1684.             end
  1685.             local GROWTH = SIZE - ENDSIZE
  1686.             local TRANS = TRANSPARENCY - ENDTRANSPARENCY
  1687.             if TYPE == "Block" then
  1688.                 EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  1689.             else
  1690.                 EFFECT.CFrame = CFRAME
  1691.             end
  1692.             for LOOP = 1, TIME+1 do
  1693.                 Swait()
  1694.                 MSH.Scale = MSH.Scale - GROWTH/TIME
  1695.                 if TYPE == "Wave" then
  1696.                     MSH.Offset = VT(0,0,-MSH.Scale.X/8)
  1697.                 end
  1698.                 EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
  1699.                 if TYPE == "Block" then
  1700.                     EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  1701.                 else
  1702.                     EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
  1703.                 end
  1704.                 if MOVEDIRECTION ~= nil then
  1705.                     local ORI = EFFECT.Orientation
  1706.                     EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
  1707.                     EFFECT.Orientation = ORI
  1708.                 end
  1709.             end
  1710.             if PLAYSSOUND == false then
  1711.                 EFFECT:remove()
  1712.             else
  1713.                 repeat Swait() until SOUND.Playing == false
  1714.                 EFFECT:remove()
  1715.             end
  1716.         else
  1717.             if PLAYSSOUND == false then
  1718.                 EFFECT:remove()
  1719.             else
  1720.                 repeat Swait() until SOUND.Playing == false
  1721.                 EFFECT:remove()
  1722.             end
  1723.         end
  1724.     end))
  1725. end
  1726.  
  1727. function MakeForm(PART,TYPE)
  1728.     if TYPE == "Cyl" then
  1729.         local MSH = IT("CylinderMesh",PART)
  1730.     elseif TYPE == "Ball" then
  1731.         local MSH = IT("SpecialMesh",PART)
  1732.         MSH.MeshType = "Sphere"
  1733.     elseif TYPE == "Wedge" then
  1734.         local MSH = IT("SpecialMesh",PART)
  1735.         MSH.MeshType = "Wedge"
  1736.     end
  1737. end
  1738.  
  1739. Debris = game:GetService("Debris")
  1740.  
  1741. function CastProperRay(StartPos, EndPos, Distance, Ignore)
  1742.     local DIRECTION = CF(StartPos,EndPos).lookVector
  1743.     return Raycast(StartPos, DIRECTION, Distance, Ignore)
  1744. end
  1745.  
  1746. function CharacterFade(COLOR,TIMER)
  1747.     coroutine.resume(coroutine.create(function()
  1748.         local FADE = IT("Model",Effects)
  1749.         for _, c in pairs(Character:GetChildren()) do
  1750.             if c.ClassName == "Part" and c ~= RootPart then
  1751.                 local FADER = c:Clone()
  1752.                 FADER.Color = COLOR
  1753.                 FADER.CFrame = c.CFrame
  1754.                 FADER.Parent = FADE
  1755.                 FADER.Anchored = true
  1756.                 FADER.Transparency = 0.25
  1757.                 FADER:BreakJoints()
  1758.                 FADER.Material = "Glass"
  1759.                 FADER:ClearAllChildren()
  1760.                 if FADER.Name == "Head" then
  1761.                     FADER.Size = VT(1,1,1)
  1762.                 end
  1763.             end
  1764.         end
  1765.         local TRANS = 0.75/TIMER
  1766.         for i = 1, TIMER do
  1767.             Swait()
  1768.             for _, c in pairs(FADE:GetChildren()) do
  1769.                 if c.ClassName == "Part" then
  1770.                     c.Transparency = c.Transparency + TRANS
  1771.                 end
  1772.             end
  1773.         end
  1774.         FADE:remove()
  1775.     end))
  1776. end
  1777.  
  1778. local PE=Instance.new("ParticleEmitter")
  1779. PE.LightEmission=0.3
  1780. PE.Size=NumberSequence.new(0)
  1781. PE.Transparency=NumberSequence.new(0,1)
  1782. PE.Rotation=NumberRange.new(0,360)
  1783. PE.LockedToPart = false
  1784. PE.Speed = NumberRange.new(0,0,0)
  1785. PE.ZOffset = 0.3
  1786. PE.Rate = 999
  1787. PE.VelocitySpread = 25
  1788. PE.Name = "Particles"
  1789.  
  1790. function CreateParticles(art,accel,drag,lifetime,type,isenabledbydefault,locked,size,speed)
  1791.     local particle = nil
  1792.     coroutine.resume(coroutine.create(function(PART)
  1793.         particle = PE:Clone()
  1794.         Swait()
  1795.         particle.Rate = 999
  1796.         particle.Parent = art
  1797.         particle.Acceleration = accel
  1798.         if type == "Fire" then
  1799.             local EyeSizes={
  1800.                 NumberSequenceKeypoint.new(0,size,size/2),
  1801.                 NumberSequenceKeypoint.new(1,size/4,size/8)
  1802.             }
  1803.             particle.Size = NumberSequence.new(EyeSizes)
  1804.         elseif type == "Smoke" then
  1805.             local EyeSizes={
  1806.                 NumberSequenceKeypoint.new(0,size/5,0),
  1807.                 NumberSequenceKeypoint.new(1,size*2,0.5)
  1808.             }
  1809.             particle.Size = NumberSequence.new(EyeSizes)
  1810.         elseif type == "Solid" then
  1811.             local EyeSizes={
  1812.                 NumberSequenceKeypoint.new(0,size,0),
  1813.                 NumberSequenceKeypoint.new(1,size,0)
  1814.             }
  1815.             particle.Size = NumberSequence.new(EyeSizes)
  1816.         end
  1817.         particle.Lifetime=NumberRange.new(lifetime)
  1818.         particle.Drag = drag
  1819.         if locked == true then
  1820.             particle.LockedToPart = true
  1821.         end
  1822.         particle.Speed = NumberRange.new(speed*0.8,speed)
  1823.         particle.Texture = "http://www.roblox.com/asset/?id=1179557490"
  1824.         particle.Enabled = isenabledbydefault
  1825.         particle.Color = ColorSequence.new(Color3.new(255/255, 176/255, 0))
  1826.     end))
  1827. return particle
  1828. end
  1829.  
  1830. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  1831.     return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  1832. end
  1833.  
  1834. function PositiveAngle(NUMBER)
  1835.     if NUMBER >= 0 then
  1836.         NUMBER = 0
  1837.     end
  1838.     return NUMBER
  1839. end
  1840.  
  1841. function NegativeAngle(NUMBER)
  1842.     if NUMBER <= 0 then
  1843.         NUMBER = 0
  1844.     end
  1845.     return NUMBER
  1846. end
  1847.  
  1848. function Swait(NUMBER)
  1849.     if NUMBER == 0 or NUMBER == nil then
  1850.         ArtificialHB.Event:wait()
  1851.     else
  1852.         for i = 1, NUMBER do
  1853.             ArtificialHB.Event:wait()
  1854.         end
  1855.     end
  1856. end
  1857.  
  1858. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  1859.     local NEWMESH = IT(MESH)
  1860.     if MESH == "SpecialMesh" then
  1861.         NEWMESH.MeshType = MESHTYPE
  1862.         if MESHID ~= "nil" and MESHID ~= "" then
  1863.             NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  1864.         end
  1865.         if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  1866.             NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  1867.         end
  1868.     end
  1869.     NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  1870.     NEWMESH.Scale = SCALE
  1871.     NEWMESH.Parent = PARENT
  1872.     return NEWMESH
  1873. end
  1874.  
  1875. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  1876.     local NEWPART = IT("Part")
  1877.     NEWPART.formFactor = FORMFACTOR
  1878.     NEWPART.Reflectance = REFLECTANCE
  1879.     NEWPART.Transparency = TRANSPARENCY
  1880.     NEWPART.CanCollide = false
  1881.     NEWPART.Locked = true
  1882.     NEWPART.Anchored = true
  1883.     if ANCHOR == false then
  1884.         NEWPART.Anchored = false
  1885.     end
  1886.     NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  1887.     NEWPART.Name = NAME
  1888.     NEWPART.Size = SIZE
  1889.     NEWPART.Position = Torso.Position
  1890.     NEWPART.Material = MATERIAL
  1891.     NEWPART:BreakJoints()
  1892.     NEWPART.Parent = PARENT
  1893.     return NEWPART
  1894. end
  1895.  
  1896.     local function weldBetween(a, b)
  1897.         local weldd = Instance.new("ManualWeld")
  1898.         weldd.Part0 = a
  1899.         weldd.Part1 = b
  1900.         weldd.C0 = CFrame.new()
  1901.         weldd.C1 = b.CFrame:inverse() * a.CFrame
  1902.         weldd.Parent = a
  1903.         return weldd
  1904.     end
  1905.  
  1906.  
  1907. function QuaternionFromCFrame(cf)
  1908.     local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  1909.     local trace = m00 + m11 + m22
  1910.     if trace > 0 then
  1911.         local s = math.sqrt(1 + trace)
  1912.         local recip = 0.5 / s
  1913.         return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  1914.     else
  1915.         local i = 0
  1916.         if m11 > m00 then
  1917.             i = 1
  1918.         end
  1919.         if m22 > (i == 0 and m00 or m11) then
  1920.             i = 2
  1921.         end
  1922.         if i == 0 then
  1923.             local s = math.sqrt(m00 - m11 - m22 + 1)
  1924.             local recip = 0.5 / s
  1925.             return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  1926.         elseif i == 1 then
  1927.             local s = math.sqrt(m11 - m22 - m00 + 1)
  1928.             local recip = 0.5 / s
  1929.             return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  1930.         elseif i == 2 then
  1931.             local s = math.sqrt(m22 - m00 - m11 + 1)
  1932.             local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  1933.         end
  1934.     end
  1935. end
  1936.  
  1937. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  1938.     local xs, ys, zs = x + x, y + y, z + z
  1939.     local wx, wy, wz = w * xs, w * ys, w * zs
  1940.     local xx = x * xs
  1941.     local xy = x * ys
  1942.     local xz = x * zs
  1943.     local yy = y * ys
  1944.     local yz = y * zs
  1945.     local zz = z * zs
  1946.     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))
  1947. end
  1948.  
  1949. function QuaternionSlerp(a, b, t)
  1950.     local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  1951.     local startInterp, finishInterp;
  1952.     if cosTheta >= 0.0001 then
  1953.         if (1 - cosTheta) > 0.0001 then
  1954.             local theta = ACOS(cosTheta)
  1955.             local invSinTheta = 1 / SIN(theta)
  1956.             startInterp = SIN((1 - t) * theta) * invSinTheta
  1957.             finishInterp = SIN(t * theta) * invSinTheta
  1958.         else
  1959.             startInterp = 1 - t
  1960.             finishInterp = t
  1961.         end
  1962.     else
  1963.         if (1 + cosTheta) > 0.0001 then
  1964.             local theta = ACOS(-cosTheta)
  1965.             local invSinTheta = 1 / SIN(theta)
  1966.             startInterp = SIN((t - 1) * theta) * invSinTheta
  1967.             finishInterp = SIN(t * theta) * invSinTheta
  1968.         else
  1969.             startInterp = t - 1
  1970.             finishInterp = t
  1971.         end
  1972.     end
  1973.     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
  1974. end
  1975.  
  1976. function Clerp(a, b, t)
  1977.     local qa = {QuaternionFromCFrame(a)}
  1978.     local qb = {QuaternionFromCFrame(b)}
  1979.     local ax, ay, az = a.x, a.y, a.z
  1980.     local bx, by, bz = b.x, b.y, b.z
  1981.     local _t = 1 - t
  1982.     return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  1983. end
  1984.  
  1985. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  1986.     local frame = IT("Frame")
  1987.     frame.BackgroundTransparency = TRANSPARENCY
  1988.     frame.BorderSizePixel = BORDERSIZEPIXEL
  1989.     frame.Position = POSITION
  1990.     frame.Size = SIZE
  1991.     frame.BackgroundColor3 = COLOR
  1992.     frame.BorderColor3 = BORDERCOLOR
  1993.     frame.Name = NAME
  1994.     frame.Parent = PARENT
  1995.     return frame
  1996. end
  1997.  
  1998. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  1999.     local label = IT("TextLabel")
  2000.     label.BackgroundTransparency = 1
  2001.     label.Size = UD2(1, 0, 1, 0)
  2002.     label.Position = UD2(0, 0, 0, 0)
  2003.     label.TextColor3 = TEXTCOLOR
  2004.     label.TextStrokeTransparency = STROKETRANSPARENCY
  2005.     label.TextTransparency = TRANSPARENCY
  2006.     label.FontSize = TEXTFONTSIZE
  2007.     label.Font = TEXTFONT
  2008.     label.BorderSizePixel = BORDERSIZEPIXEL
  2009.     label.TextScaled = false
  2010.     label.Text = TEXT
  2011.     label.Name = NAME
  2012.     label.Parent = PARENT
  2013.     return label
  2014. end
  2015.  
  2016. function NoOutlines(PART)
  2017.     PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  2018. end
  2019.  
  2020. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  2021.     local NEWWELD = IT(TYPE)
  2022.     NEWWELD.Part0 = PART0
  2023.     NEWWELD.Part1 = PART1
  2024.     NEWWELD.C0 = C0
  2025.     NEWWELD.C1 = C1
  2026.     NEWWELD.Parent = PARENT
  2027.     return NEWWELD
  2028. end
  2029.  
  2030. local S = IT("Sound")
  2031. function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
  2032.     local NEWSOUND = nil
  2033.     coroutine.resume(coroutine.create(function()
  2034.         NEWSOUND = S:Clone()
  2035.         NEWSOUND.Parent = PARENT
  2036.         NEWSOUND.Volume = VOLUME
  2037.         NEWSOUND.Pitch = PITCH
  2038.         NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  2039.         NEWSOUND:play()
  2040.         if DOESLOOP == true then
  2041.             NEWSOUND.Looped = true
  2042.         else
  2043.             repeat wait(1) until NEWSOUND.Playing == false
  2044.             NEWSOUND:remove()
  2045.         end
  2046.     end))
  2047.     return NEWSOUND
  2048. end
  2049.  
  2050. function CFrameFromTopBack(at, top, back)
  2051.     local right = top:Cross(back)
  2052.     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)
  2053. end
  2054.  
  2055. --WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  2056. function WACKYEFFECT(Table)
  2057.     local TYPE = (Table.EffectType or "Sphere")
  2058.     local SIZE = (Table.Size or VT(1,1,1))
  2059.     local ENDSIZE = (Table.Size2 or VT(0,0,0))
  2060.     local TRANSPARENCY = (Table.Transparency or 0)
  2061.     local ENDTRANSPARENCY = (Table.Transparency2 or 1)
  2062.     local CFRAME = (Table.CFrame or Torso.CFrame)
  2063.     local MOVEDIRECTION = (Table.MoveToPos or nil)
  2064.     local ROTATION1 = (Table.RotationX or 0)
  2065.     local ROTATION2 = (Table.RotationY or 0)
  2066.     local ROTATION3 = (Table.RotationZ or 0)
  2067.     local MATERIAL = (Table.Material or "Neon")
  2068.     local COLOR = (Table.Color or C3(1,1,1))
  2069.     local TIME = (Table.Time or 45)
  2070.     local SOUNDID = (Table.SoundID or nil)
  2071.     local SOUNDPITCH = (Table.SoundPitch or nil)
  2072.     local SOUNDVOLUME = (Table.SoundVolume or nil)
  2073.     coroutine.resume(coroutine.create(function()
  2074.         local PLAYSSOUND = false
  2075.         local SOUND = nil
  2076.         local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
  2077.         if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
  2078.             PLAYSSOUND = true
  2079.             SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
  2080.         end
  2081.         EFFECT.Color = COLOR
  2082.         local MSH = nil
  2083.         if TYPE == "Sphere" then
  2084.             MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
  2085.         elseif TYPE == "Block" then
  2086.             MSH = IT("BlockMesh",EFFECT)
  2087.             MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
  2088.         elseif TYPE == "Wave" then
  2089.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
  2090.         elseif TYPE == "Ring" then
  2091.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
  2092.         elseif TYPE == "Slash" then
  2093.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  2094.         elseif TYPE == "Round Slash" then
  2095.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  2096.         elseif TYPE == "Swirl" then
  2097.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
  2098.         elseif TYPE == "Skull" then
  2099.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
  2100.         elseif TYPE == "Crystal" then
  2101.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
  2102.         end
  2103.         if MSH ~= nil then
  2104.             local MOVESPEED = nil
  2105.             if MOVEDIRECTION ~= nil then
  2106.                 MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
  2107.             end
  2108.             local GROWTH = SIZE - ENDSIZE
  2109.             local TRANS = TRANSPARENCY - ENDTRANSPARENCY
  2110.             if TYPE == "Block" then
  2111.                 EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  2112.             else
  2113.                 EFFECT.CFrame = CFRAME
  2114.             end
  2115.             for LOOP = 1, TIME+1 do
  2116.                 Swait()
  2117.                 MSH.Scale = MSH.Scale - GROWTH/TIME
  2118.                 if TYPE == "Wave" then
  2119.                     MSH.Offset = VT(0,0,-MSH.Scale.X/8)
  2120.                 end
  2121.                 EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
  2122.                 if TYPE == "Block" then
  2123.                     EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  2124.                 else
  2125.                     EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
  2126.                 end
  2127.                 if MOVEDIRECTION ~= nil then
  2128.                     local ORI = EFFECT.Orientation
  2129.                     EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
  2130.                     EFFECT.Orientation = ORI
  2131.                 end
  2132.             end
  2133.             if PLAYSSOUND == false then
  2134.                 EFFECT:remove()
  2135.             else
  2136.                 repeat Swait() until SOUND.Playing == false
  2137.                 EFFECT:remove()
  2138.             end
  2139.         else
  2140.             if PLAYSSOUND == false then
  2141.                 EFFECT:remove()
  2142.             else
  2143.                 repeat Swait() until SOUND.Playing == false
  2144.                 EFFECT:remove()
  2145.             end
  2146.         end
  2147.     end))
  2148. end
  2149.  
  2150. function MakeForm(PART,TYPE)
  2151.     if TYPE == "Cyl" then
  2152.         local MSH = IT("CylinderMesh",PART)
  2153.     elseif TYPE == "Ball" then
  2154.         local MSH = IT("SpecialMesh",PART)
  2155.         MSH.MeshType = "Sphere"
  2156.     elseif TYPE == "Wedge" then
  2157.         local MSH = IT("SpecialMesh",PART)
  2158.         MSH.MeshType = "Wedge"
  2159.     end
  2160. end
  2161.  
  2162. Debris = game:GetService("Debris")
  2163.  
  2164. function CastProperRay(StartPos, EndPos, Distance, Ignore)
  2165.     local DIRECTION = CF(StartPos,EndPos).lookVector
  2166.     return Raycast(StartPos, DIRECTION, Distance, Ignore)
  2167. end
  2168.  
  2169. function turnto(position)
  2170.     RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
  2171. end
  2172.  
  2173. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  2174.     return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  2175. end
  2176.  
  2177. function PositiveAngle(NUMBER)
  2178.     if NUMBER >= 0 then
  2179.         NUMBER = 0
  2180.     end
  2181.     return NUMBER
  2182. end
  2183.  
  2184. function NegativeAngle(NUMBER)
  2185.     if NUMBER <= 0 then
  2186.         NUMBER = 0
  2187.     end
  2188.     return NUMBER
  2189. end
  2190.  
  2191. function Swait(NUMBER)
  2192.     if NUMBER == 0 or NUMBER == nil then
  2193.         ArtificialHB.Event:wait()
  2194.     else
  2195.         for i = 1, NUMBER do
  2196.             ArtificialHB.Event:wait()
  2197.         end
  2198.     end
  2199. end
  2200.  
  2201. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  2202.     local NEWMESH = IT(MESH)
  2203.     if MESH == "SpecialMesh" then
  2204.         NEWMESH.MeshType = MESHTYPE
  2205.         if MESHID ~= "nil" and MESHID ~= "" then
  2206.             NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  2207.         end
  2208.         if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  2209.             NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  2210.         end
  2211.     end
  2212.     NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  2213.     NEWMESH.Scale = SCALE
  2214.     NEWMESH.Parent = PARENT
  2215.     return NEWMESH
  2216. end
  2217.  
  2218. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  2219.     local NEWPART = IT("Part")
  2220.     NEWPART.formFactor = FORMFACTOR
  2221.     NEWPART.Reflectance = REFLECTANCE
  2222.     NEWPART.Transparency = TRANSPARENCY
  2223.     NEWPART.CanCollide = false
  2224.     NEWPART.Locked = true
  2225.     NEWPART.Anchored = true
  2226.     if ANCHOR == false then
  2227.         NEWPART.Anchored = false
  2228.     end
  2229.     NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  2230.     NEWPART.Name = NAME
  2231.     NEWPART.Size = SIZE
  2232.     NEWPART.Position = Torso.Position
  2233.     NEWPART.Material = MATERIAL
  2234.     NEWPART:BreakJoints()
  2235.     NEWPART.Parent = PARENT
  2236.     return NEWPART
  2237. end
  2238.  
  2239.     local function weldBetween(a, b)
  2240.         local weldd = Instance.new("ManualWeld")
  2241.         weldd.Part0 = a
  2242.         weldd.Part1 = b
  2243.         weldd.C0 = CFrame.new()
  2244.         weldd.C1 = b.CFrame:inverse() * a.CFrame
  2245.         weldd.Parent = a
  2246.         return weldd
  2247.     end
  2248.  
  2249.  
  2250. function QuaternionFromCFrame(cf)
  2251.     local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  2252.     local trace = m00 + m11 + m22
  2253.     if trace > 0 then
  2254.         local s = math.sqrt(1 + trace)
  2255.         local recip = 0.5 / s
  2256.         return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  2257.     else
  2258.         local i = 0
  2259.         if m11 > m00 then
  2260.             i = 1
  2261.         end
  2262.         if m22 > (i == 0 and m00 or m11) then
  2263.             i = 2
  2264.         end
  2265.         if i == 0 then
  2266.             local s = math.sqrt(m00 - m11 - m22 + 1)
  2267.             local recip = 0.5 / s
  2268.             return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  2269.         elseif i == 1 then
  2270.             local s = math.sqrt(m11 - m22 - m00 + 1)
  2271.             local recip = 0.5 / s
  2272.             return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  2273.         elseif i == 2 then
  2274.             local s = math.sqrt(m22 - m00 - m11 + 1)
  2275.             local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  2276.         end
  2277.     end
  2278. end
  2279.  
  2280. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  2281.     local xs, ys, zs = x + x, y + y, z + z
  2282.     local wx, wy, wz = w * xs, w * ys, w * zs
  2283.     local xx = x * xs
  2284.     local xy = x * ys
  2285.     local xz = x * zs
  2286.     local yy = y * ys
  2287.     local yz = y * zs
  2288.     local zz = z * zs
  2289.     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))
  2290. end
  2291.  
  2292. function QuaternionSlerp(a, b, t)
  2293.     local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  2294.     local startInterp, finishInterp;
  2295.     if cosTheta >= 0.0001 then
  2296.         if (1 - cosTheta) > 0.0001 then
  2297.             local theta = ACOS(cosTheta)
  2298.             local invSinTheta = 1 / SIN(theta)
  2299.             startInterp = SIN((1 - t) * theta) * invSinTheta
  2300.             finishInterp = SIN(t * theta) * invSinTheta
  2301.         else
  2302.             startInterp = 1 - t
  2303.             finishInterp = t
  2304.         end
  2305.     else
  2306.         if (1 + cosTheta) > 0.0001 then
  2307.             local theta = ACOS(-cosTheta)
  2308.             local invSinTheta = 1 / SIN(theta)
  2309.             startInterp = SIN((t - 1) * theta) * invSinTheta
  2310.             finishInterp = SIN(t * theta) * invSinTheta
  2311.         else
  2312.             startInterp = t - 1
  2313.             finishInterp = t
  2314.         end
  2315.     end
  2316.     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
  2317. end
  2318.  
  2319. function Clerp(a, b, t)
  2320.     local qa = {QuaternionFromCFrame(a)}
  2321.     local qb = {QuaternionFromCFrame(b)}
  2322.     local ax, ay, az = a.x, a.y, a.z
  2323.     local bx, by, bz = b.x, b.y, b.z
  2324.     local _t = 1 - t
  2325.     return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  2326. end
  2327.  
  2328. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  2329.     local frame = IT("Frame")
  2330.     frame.BackgroundTransparency = TRANSPARENCY
  2331.     frame.BorderSizePixel = BORDERSIZEPIXEL
  2332.     frame.Position = POSITION
  2333.     frame.Size = SIZE
  2334.     frame.BackgroundColor3 = COLOR
  2335.     frame.BorderColor3 = BORDERCOLOR
  2336.     frame.Name = NAME
  2337.     frame.Parent = PARENT
  2338.     return frame
  2339. end
  2340.  
  2341. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  2342.     local label = IT("TextLabel")
  2343.     label.BackgroundTransparency = 1
  2344.     label.Size = UD2(1, 0, 1, 0)
  2345.     label.Position = UD2(0, 0, 0, 0)
  2346.     label.TextColor3 = TEXTCOLOR
  2347.     label.TextStrokeTransparency = STROKETRANSPARENCY
  2348.     label.TextTransparency = TRANSPARENCY
  2349.     label.FontSize = TEXTFONTSIZE
  2350.     label.Font = TEXTFONT
  2351.     label.BorderSizePixel = BORDERSIZEPIXEL
  2352.     label.TextScaled = false
  2353.     label.Text = TEXT
  2354.     label.Name = NAME
  2355.     label.Parent = PARENT
  2356.     return label
  2357. end
  2358.  
  2359. function NoOutlines(PART)
  2360.     PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  2361. end
  2362.  
  2363. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  2364.     local NEWWELD = IT(TYPE)
  2365.     NEWWELD.Part0 = PART0
  2366.     NEWWELD.Part1 = PART1
  2367.     NEWWELD.C0 = C0
  2368.     NEWWELD.C1 = C1
  2369.     NEWWELD.Parent = PARENT
  2370.     return NEWWELD
  2371. end
  2372.  
  2373. local S = IT("Sound")
  2374. function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
  2375.     local NEWSOUND = nil
  2376.     coroutine.resume(coroutine.create(function()
  2377.         NEWSOUND = S:Clone()
  2378.         NEWSOUND.Parent = PARENT
  2379.         NEWSOUND.Volume = VOLUME
  2380.         NEWSOUND.Pitch = PITCH
  2381.         NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  2382.         NEWSOUND:play()
  2383.         if DOESLOOP == true then
  2384.             NEWSOUND.Looped = true
  2385.         else
  2386.             repeat wait(1) until NEWSOUND.Playing == false
  2387.             NEWSOUND:remove()
  2388.         end
  2389.     end))
  2390.     return NEWSOUND
  2391. end
  2392.  
  2393. function CFrameFromTopBack(at, top, back)
  2394.     local right = top:Cross(back)
  2395.     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)
  2396. end
  2397.  
  2398. --WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  2399. function WACKYEFFECT(Table)
  2400.     local TYPE = (Table.EffectType or "Sphere")
  2401.     local SIZE = (Table.Size or VT(1,1,1))
  2402.     local ENDSIZE = (Table.Size2 or VT(0,0,0))
  2403.     local TRANSPARENCY = (Table.Transparency or 0)
  2404.     local ENDTRANSPARENCY = (Table.Transparency2 or 1)
  2405.     local CFRAME = (Table.CFrame or Torso.CFrame)
  2406.     local MOVEDIRECTION = (Table.MoveToPos or nil)
  2407.     local ROTATION1 = (Table.RotationX or 0)
  2408.     local ROTATION2 = (Table.RotationY or 0)
  2409.     local ROTATION3 = (Table.RotationZ or 0)
  2410.     local MATERIAL = (Table.Material or "Neon")
  2411.     local COLOR = (Table.Color or C3(1,1,1))
  2412.     local TIME = (Table.Time or 45)
  2413.     local SOUNDID = (Table.SoundID or nil)
  2414.     local SOUNDPITCH = (Table.SoundPitch or nil)
  2415.     local SOUNDVOLUME = (Table.SoundVolume or nil)
  2416.     coroutine.resume(coroutine.create(function()
  2417.         local PLAYSSOUND = false
  2418.         local SOUND = nil
  2419.         local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
  2420.         if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
  2421.             PLAYSSOUND = true
  2422.             SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
  2423.         end
  2424.         EFFECT.Color = COLOR
  2425.         local MSH = nil
  2426.         if TYPE == "Sphere" then
  2427.             MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
  2428.         elseif TYPE == "Block" then
  2429.             MSH = IT("BlockMesh",EFFECT)
  2430.             MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
  2431.         elseif TYPE == "Wave" then
  2432.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
  2433.         elseif TYPE == "Ring" then
  2434.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
  2435.         elseif TYPE == "Slash" then
  2436.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  2437.         elseif TYPE == "Round Slash" then
  2438.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  2439.         elseif TYPE == "Swirl" then
  2440.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
  2441.         elseif TYPE == "Skull" then
  2442.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
  2443.         elseif TYPE == "Crystal" then
  2444.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
  2445.         end
  2446.         if MSH ~= nil then
  2447.             local MOVESPEED = nil
  2448.             if MOVEDIRECTION ~= nil then
  2449.                 MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
  2450.             end
  2451.             local GROWTH = SIZE - ENDSIZE
  2452.             local TRANS = TRANSPARENCY - ENDTRANSPARENCY
  2453.             if TYPE == "Block" then
  2454.                 EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  2455.             else
  2456.                 EFFECT.CFrame = CFRAME
  2457.             end
  2458.             for LOOP = 1, TIME+1 do
  2459.                 Swait()
  2460.                 MSH.Scale = MSH.Scale - GROWTH/TIME
  2461.                 if TYPE == "Wave" then
  2462.                     MSH.Offset = VT(0,0,-MSH.Scale.X/8)
  2463.                 end
  2464.                 EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
  2465.                 if TYPE == "Block" then
  2466.                     EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  2467.                 else
  2468.                     EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
  2469.                 end
  2470.                 if MOVEDIRECTION ~= nil then
  2471.                     local ORI = EFFECT.Orientation
  2472.                     EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
  2473.                     EFFECT.Orientation = ORI
  2474.                 end
  2475.             end
  2476.             if PLAYSSOUND == false then
  2477.                 EFFECT:remove()
  2478.             else
  2479.                 repeat Swait() until SOUND.Playing == false
  2480.                 EFFECT:remove()
  2481.             end
  2482.         else
  2483.             if PLAYSSOUND == false then
  2484.                 EFFECT:remove()
  2485.             else
  2486.                 repeat Swait() until SOUND.Playing == false
  2487.                 EFFECT:remove()
  2488.             end
  2489.         end
  2490.     end))
  2491. end
  2492.  
  2493. function MakeForm(PART,TYPE)
  2494.     if TYPE == "Cyl" then
  2495.         local MSH = IT("CylinderMesh",PART)
  2496.     elseif TYPE == "Ball" then
  2497.         local MSH = IT("SpecialMesh",PART)
  2498.         MSH.MeshType = "Sphere"
  2499.     elseif TYPE == "Wedge" then
  2500.         local MSH = IT("SpecialMesh",PART)
  2501.         MSH.MeshType = "Wedge"
  2502.     end
  2503. end
  2504.  
  2505. Debris = game:GetService("Debris")
  2506.  
  2507. function CastProperRay(StartPos, EndPos, Distance, Ignore)
  2508.     local DIRECTION = CF(StartPos,EndPos).lookVector
  2509.     return Raycast(StartPos, DIRECTION, Distance, Ignore)
  2510. end
  2511.  
  2512. function turnto(position)
  2513.     RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
  2514. end
  2515.  
  2516.  
  2517. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  2518.     return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  2519. end
  2520.  
  2521. function PositiveAngle(NUMBER)
  2522.     if NUMBER >= 0 then
  2523.         NUMBER = 0
  2524.     end
  2525.     return NUMBER
  2526. end
  2527.  
  2528. function NegativeAngle(NUMBER)
  2529.     if NUMBER <= 0 then
  2530.         NUMBER = 0
  2531.     end
  2532.     return NUMBER
  2533. end
  2534.  
  2535. function Swait(NUMBER)
  2536.     if NUMBER == 0 or NUMBER == nil then
  2537.         ArtificialHB.Event:wait()
  2538.     else
  2539.         for i = 1, NUMBER do
  2540.             ArtificialHB.Event:wait()
  2541.         end
  2542.     end
  2543. end
  2544.  
  2545. function QuaternionFromCFrame(cf)
  2546.     local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  2547.     local trace = m00 + m11 + m22
  2548.     if trace > 0 then
  2549.         local s = math.sqrt(1 + trace)
  2550.         local recip = 0.5 / s
  2551.         return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  2552.     else
  2553.         local i = 0
  2554.         if m11 > m00 then
  2555.             i = 1
  2556.         end
  2557.         if m22 > (i == 0 and m00 or m11) then
  2558.             i = 2
  2559.         end
  2560.         if i == 0 then
  2561.             local s = math.sqrt(m00 - m11 - m22 + 1)
  2562.             local recip = 0.5 / s
  2563.             return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  2564.         elseif i == 1 then
  2565.             local s = math.sqrt(m11 - m22 - m00 + 1)
  2566.             local recip = 0.5 / s
  2567.             return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  2568.         elseif i == 2 then
  2569.             local s = math.sqrt(m22 - m00 - m11 + 1)
  2570.             local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  2571.         end
  2572.     end
  2573. end
  2574.  
  2575. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  2576.     local xs, ys, zs = x + x, y + y, z + z
  2577.     local wx, wy, wz = w * xs, w * ys, w * zs
  2578.     local xx = x * xs
  2579.     local xy = x * ys
  2580.     local xz = x * zs
  2581.     local yy = y * ys
  2582.     local yz = y * zs
  2583.     local zz = z * zs
  2584.     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))
  2585. end
  2586.  
  2587. function QuaternionSlerp(a, b, t)
  2588.     local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  2589.     local startInterp, finishInterp;
  2590.     if cosTheta >= 0.0001 then
  2591.         if (1 - cosTheta) > 0.0001 then
  2592.             local theta = ACOS(cosTheta)
  2593.             local invSinTheta = 1 / SIN(theta)
  2594.             startInterp = SIN((1 - t) * theta) * invSinTheta
  2595.             finishInterp = SIN(t * theta) * invSinTheta
  2596.         else
  2597.             startInterp = 1 - t
  2598.             finishInterp = t
  2599.         end
  2600.     else
  2601.         if (1 + cosTheta) > 0.0001 then
  2602.             local theta = ACOS(-cosTheta)
  2603.             local invSinTheta = 1 / SIN(theta)
  2604.             startInterp = SIN((t - 1) * theta) * invSinTheta
  2605.             finishInterp = SIN(t * theta) * invSinTheta
  2606.         else
  2607.             startInterp = t - 1
  2608.             finishInterp = t
  2609.         end
  2610.     end
  2611.     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
  2612. end
  2613.  
  2614. function Clerp(a, b, t)
  2615.     local qa = {QuaternionFromCFrame(a)}
  2616.     local qb = {QuaternionFromCFrame(b)}
  2617.     local ax, ay, az = a.x, a.y, a.z
  2618.     local bx, by, bz = b.x, b.y, b.z
  2619.     local _t = 1 - t
  2620.     return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  2621. end
  2622.  
  2623. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  2624.     local frame = IT("Frame")
  2625.     frame.BackgroundTransparency = TRANSPARENCY
  2626.     frame.BorderSizePixel = BORDERSIZEPIXEL
  2627.     frame.Position = POSITION
  2628.     frame.Size = SIZE
  2629.     frame.BackgroundColor3 = COLOR
  2630.     frame.BorderColor3 = BORDERCOLOR
  2631.     frame.Name = NAME
  2632.     frame.Parent = PARENT
  2633.     return frame
  2634. end
  2635.  
  2636. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  2637.     local label = IT("TextLabel")
  2638.     label.BackgroundTransparency = 1
  2639.     label.Size = UD2(1, 0, 1, 0)
  2640.     label.Position = UD2(0, 0, 0, 0)
  2641.     label.TextColor3 = TEXTCOLOR
  2642.     label.TextStrokeTransparency = STROKETRANSPARENCY
  2643.     label.TextTransparency = TRANSPARENCY
  2644.     label.FontSize = TEXTFONTSIZE
  2645.     label.Font = TEXTFONT
  2646.     label.BorderSizePixel = BORDERSIZEPIXEL
  2647.     label.TextScaled = false
  2648.     label.Text = TEXT
  2649.     label.Name = NAME
  2650.     label.Parent = PARENT
  2651.     return label
  2652. end
  2653.  
  2654. function NoOutlines(PART)
  2655.     PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  2656. end
  2657.  
  2658.  
  2659. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  2660.     local NEWWELD = IT(TYPE)
  2661.     NEWWELD.Part0 = PART0
  2662.     NEWWELD.Part1 = PART1
  2663.     NEWWELD.C0 = C0
  2664.     NEWWELD.C1 = C1
  2665.     NEWWELD.Parent = PARENT
  2666.     return NEWWELD
  2667. end
  2668.  
  2669. function CreateSound(ID, PARENT, VOLUME, PITCH)
  2670.     local NEWSOUND = nil
  2671.     coroutine.resume(coroutine.create(function()
  2672.         NEWSOUND = IT("Sound", PARENT)
  2673.         NEWSOUND.Volume = VOLUME
  2674.         NEWSOUND.Pitch = PITCH
  2675.         NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  2676.         Swait()
  2677.         NEWSOUND:play()
  2678.         game:GetService("Debris"):AddItem(NEWSOUND, 10)
  2679.     end))
  2680.     return NEWSOUND
  2681. end
  2682.  
  2683. function CFrameFromTopBack(at, top, back)
  2684.     local right = top:Cross(back)
  2685.     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)
  2686. end
  2687.  
  2688. function CreateWave(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
  2689.     local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC("Really red"), "Effect", VT(0,0,0))
  2690.     local mesh = IT("SpecialMesh",wave)
  2691.     mesh.MeshType = "FileMesh"
  2692.     mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
  2693.     mesh.Scale = SIZE
  2694.     mesh.Offset = VT(0,0,-SIZE.X/8)
  2695.     wave.CFrame = CFRAME
  2696.     coroutine.resume(coroutine.create(function(PART)
  2697.         for i = 1, WAIT do
  2698.             Swait()
  2699.             mesh.Scale = mesh.Scale + GROW
  2700.             mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
  2701.             if DOESROT == true then
  2702.                 wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
  2703.             end
  2704.             wave.Transparency = wave.Transparency + (0.5/WAIT)
  2705.             if wave.Transparency > 0.99 then
  2706.                 wave:remove()
  2707.             end
  2708.         end
  2709.     end))
  2710. end
  2711.  
  2712. function CreateWave2(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
  2713.     local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC("Really red"), "Effect", VT(0,0,0))
  2714.     local mesh = IT("SpecialMesh",wave)
  2715.     mesh.MeshType = "FileMesh"
  2716.     mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
  2717.     mesh.Scale = SIZE
  2718.     --mesh.Offset = VT(0,0,-SIZE.X/8)
  2719.     wave.CFrame = CFRAME
  2720.     coroutine.resume(coroutine.create(function(PART)
  2721.         for i = 1, WAIT do
  2722.             Swait()
  2723.             mesh.Scale = mesh.Scale + GROW
  2724.             --mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
  2725.             if DOESROT == true then
  2726.                 wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
  2727.             end
  2728.             wave.Transparency = wave.Transparency + (0.5/WAIT)
  2729.             if wave.Transparency > 0.99 then
  2730.                 wave:remove()
  2731.             end
  2732.         end
  2733.     end))
  2734. end
  2735.  
  2736. function CreateSwirl(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW)
  2737.     local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC("Really red"), "Effect", VT(0,0,0))
  2738.     local mesh = IT("SpecialMesh",wave)
  2739.     mesh.MeshType = "FileMesh"
  2740.     mesh.MeshId = "http://www.roblox.com/asset/?id=1051557"
  2741.     mesh.Scale = SIZE
  2742.     wave.CFrame = CFRAME
  2743.     coroutine.resume(coroutine.create(function(PART)
  2744.         for i = 1, WAIT do
  2745.             Swait()
  2746.             mesh.Scale = mesh.Scale + GROW
  2747.             mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
  2748.             if DOESROT == true then
  2749.                 wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0)
  2750.             end
  2751.             wave.Transparency = wave.Transparency + (0.5/WAIT)
  2752.             if wave.Transparency > 0.99 then
  2753.                 wave:remove()
  2754.             end
  2755.         end
  2756.     end))
  2757. end
  2758.  
  2759.  
  2760. function Slice(SIZE,WAIT,CFRAME,COLOR,GROW)
  2761.     local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC("Really red"), "Effect", VT(1,1,1), true)
  2762.     local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "448386996", "", VT(0,SIZE/10,SIZE/10), VT(0,0,0))
  2763.     wave.CFrame = CFRAME
  2764.     coroutine.resume(coroutine.create(function(PART)
  2765.         for i = 1, WAIT do
  2766.             Swait()
  2767.             mesh.Scale = mesh.Scale * GROW
  2768.             wave.Transparency = wave.Transparency + (0.5/WAIT)
  2769.             if wave.Transparency > 0.99 then
  2770.                 wave:remove()
  2771.             end
  2772.         end
  2773.     end))
  2774. end
  2775.  
  2776. function MagicSphere(SIZE,WAIT,CFRAME,COLOR,GROW)
  2777.     local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC("Really red"), "Effect", VT(1,1,1), true)
  2778.     local mesh = IT("SpecialMesh",wave)
  2779.     mesh.MeshType = "Sphere"
  2780.     mesh.Scale = SIZE
  2781.     mesh.Offset = VT(0,0,0)
  2782.     wave.CFrame = CFRAME
  2783.     coroutine.resume(coroutine.create(function(PART)
  2784.         for i = 1, WAIT do
  2785.             Swait()
  2786.             mesh.Scale = mesh.Scale + GROW
  2787.             wave.Transparency = wave.Transparency + (1/WAIT)
  2788.             if wave.Transparency > 0.99 then
  2789.                 wave:remove()
  2790.             end
  2791.         end
  2792.     end))
  2793. end
  2794.  
  2795. function MakeForm(PART,TYPE)
  2796.     if TYPE == "Cyl" then
  2797.         local MSH = IT("CylinderMesh",PART)
  2798.     elseif TYPE == "Ball" then
  2799.         local MSH = IT("SpecialMesh",PART)
  2800.         MSH.MeshType = "Sphere"
  2801.     elseif TYPE == "Wedge" then
  2802.         local MSH = IT("SpecialMesh",PART)
  2803.         MSH.MeshType = "Wedge"
  2804.     end
  2805. end
  2806.  
  2807. function CreateDebreeRing(FLOOR,POSITION,SIZE,BLOCKSIZE,SWAIT)
  2808.     if FLOOR ~= nil then
  2809.         coroutine.resume(coroutine.create(function()
  2810.             local PART = CreatePart(3, Effects, "Plastic", 0, 1, "Pearl", "DebreeCenter", VT(0,0,0))
  2811.             PART.CFrame = CF(POSITION)
  2812.             for i = 1, 45 do
  2813.                 local RingPiece = CreatePart(3, Effects, "Plastic", 0, 0, "Pearl", "DebreePart", BLOCKSIZE)
  2814.                 RingPiece.Material = FLOOR.Material
  2815.                 RingPiece.Color = FLOOR.Color
  2816.                 RingPiece.CFrame = PART.CFrame * ANGLES(RAD(0), RAD(i*8), RAD(0)) * CF(SIZE*4, 0, 0) * ANGLES(RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)))
  2817.                 Debris:AddItem(RingPiece,SWAIT/100)
  2818.             end
  2819.             PART:remove()
  2820.         end))
  2821.     end
  2822. end
  2823.  
  2824. function CheckTableForString(Table, String)
  2825.     for i, v in pairs(Table) do
  2826.         if string.find(string.lower(String), string.lower(v)) then
  2827.             return true
  2828.         end
  2829.     end
  2830.     return false
  2831. end
  2832.  
  2833. function CheckIntangible(Hit)
  2834.     local ProjectileNames = {"Water", "Arrow", "Projectile", "Effect", "Rail", "Lightning", "Bullet"}
  2835.     if Hit and Hit.Parent then
  2836.         if ((not Hit.CanCollide or CheckTableForString(ProjectileNames, Hit.Name)) and not Hit.Parent:FindFirstChild("Humanoid")) then
  2837.             return true
  2838.         end
  2839.     end
  2840.     return false
  2841. end
  2842.  
  2843. Debris = game:GetService("Debris")
  2844.  
  2845. function CastZapRay(StartPos, Vec, Length, Ignore, DelayIfHit)
  2846.     local Direction = CFrame.new(StartPos, Vec).lookVector
  2847.     local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
  2848.     local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Direction * Length), Ignore)
  2849.     if RayHit and CheckIntangible(RayHit) then
  2850.         if DelayIfHit then
  2851.             wait()
  2852.         end
  2853.         RayHit, RayPos, RayNormal = CastZapRay((RayPos + (Vec * 0.01)), Vec, (Length - ((StartPos - RayPos).magnitude)), Ignore, DelayIfHit)
  2854.     end
  2855.     return RayHit, RayPos, RayNormal
  2856. end
  2857.  
  2858. function turnto(position)
  2859.     RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
  2860. end
  2861.  
  2862.  
  2863. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  2864.     return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  2865. end
  2866.  
  2867. function PositiveAngle(NUMBER)
  2868.     if NUMBER >= 0 then
  2869.         NUMBER = 0
  2870.     end
  2871.     return NUMBER
  2872. end
  2873.  
  2874. function NegativeAngle(NUMBER)
  2875.     if NUMBER <= 0 then
  2876.         NUMBER = 0
  2877.     end
  2878.     return NUMBER
  2879. end
  2880.  
  2881. function Swait(NUMBER)
  2882.     if NUMBER == 0 or NUMBER == nil then
  2883.         ArtificialHB.Event:wait()
  2884.     else
  2885.         for i = 1, NUMBER do
  2886.             ArtificialHB.Event:wait()
  2887.         end
  2888.     end
  2889. end
  2890.  
  2891. function QuaternionFromCFrame(cf)
  2892.     local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  2893.     local trace = m00 + m11 + m22
  2894.     if trace > 0 then
  2895.         local s = math.sqrt(1 + trace)
  2896.         local recip = 0.5 / s
  2897.         return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  2898.     else
  2899.         local i = 0
  2900.         if m11 > m00 then
  2901.             i = 1
  2902.         end
  2903.         if m22 > (i == 0 and m00 or m11) then
  2904.             i = 2
  2905.         end
  2906.         if i == 0 then
  2907.             local s = math.sqrt(m00 - m11 - m22 + 1)
  2908.             local recip = 0.5 / s
  2909.             return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  2910.         elseif i == 1 then
  2911.             local s = math.sqrt(m11 - m22 - m00 + 1)
  2912.             local recip = 0.5 / s
  2913.             return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  2914.         elseif i == 2 then
  2915.             local s = math.sqrt(m22 - m00 - m11 + 1)
  2916.             local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  2917.         end
  2918.     end
  2919. end
  2920.  
  2921. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  2922.     local xs, ys, zs = x + x, y + y, z + z
  2923.     local wx, wy, wz = w * xs, w * ys, w * zs
  2924.     local xx = x * xs
  2925.     local xy = x * ys
  2926.     local xz = x * zs
  2927.     local yy = y * ys
  2928.     local yz = y * zs
  2929.     local zz = z * zs
  2930.     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))
  2931. end
  2932.  
  2933. function QuaternionSlerp(a, b, t)
  2934.     local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  2935.     local startInterp, finishInterp;
  2936.     if cosTheta >= 0.0001 then
  2937.         if (1 - cosTheta) > 0.0001 then
  2938.             local theta = ACOS(cosTheta)
  2939.             local invSinTheta = 1 / SIN(theta)
  2940.             startInterp = SIN((1 - t) * theta) * invSinTheta
  2941.             finishInterp = SIN(t * theta) * invSinTheta
  2942.         else
  2943.             startInterp = 1 - t
  2944.             finishInterp = t
  2945.         end
  2946.     else
  2947.         if (1 + cosTheta) > 0.0001 then
  2948.             local theta = ACOS(-cosTheta)
  2949.             local invSinTheta = 1 / SIN(theta)
  2950.             startInterp = SIN((t - 1) * theta) * invSinTheta
  2951.             finishInterp = SIN(t * theta) * invSinTheta
  2952.         else
  2953.             startInterp = t - 1
  2954.             finishInterp = t
  2955.         end
  2956.     end
  2957.     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
  2958. end
  2959.  
  2960. function Clerp(a, b, t)
  2961.     local qa = {QuaternionFromCFrame(a)}
  2962.     local qb = {QuaternionFromCFrame(b)}
  2963.     local ax, ay, az = a.x, a.y, a.z
  2964.     local bx, by, bz = b.x, b.y, b.z
  2965.     local _t = 1 - t
  2966.     return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  2967. end
  2968.  
  2969.  
  2970. function CreateSound(ID, PARENT, VOLUME, PITCH)
  2971.     coroutine.resume(coroutine.create(function()
  2972.         local NEWSOUND = IT("Sound", PARENT)
  2973.         NEWSOUND.Volume = VOLUME
  2974.         NEWSOUND.Pitch = PITCH
  2975.         NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  2976.         Swait()
  2977.         NEWSOUND:play()
  2978.         game:GetService("Debris"):AddItem(NEWSOUND, 10)
  2979.     end))
  2980. end
  2981.  
  2982. local decal = IT("Decal")
  2983.  
  2984. function CreatePentagram(size,doesrotate,rotatedirection,waitt,cframe,offset,doeskill)
  2985.     local sinkhole = IT("Part",workspace)
  2986.     if doeskill == true then
  2987.         local hit = sinkhole.Touched:Connect(function(hit)
  2988.             if hit.Parent ~= Character and hit.Parent:FindFirstChild("Humanoid") then
  2989.                 kill(hit.Parent,true)
  2990.                 hit.Parent:remove()
  2991.             end
  2992.         end)
  2993.     end
  2994.     sinkhole.Size = VT(size,0,size)
  2995.     sinkhole.CFrame = cframe * CF(0,offset,0)
  2996.     sinkhole.Material = "Neon"
  2997.     sinkhole.Color = C3(1,0,0)
  2998.     sinkhole.Anchored = true
  2999.     sinkhole.CanCollide = false
  3000.     sinkhole.Transparency = 1
  3001.     local decal = decal:Clone()
  3002.     decal.Parent = sinkhole
  3003.     decal.Face = "Top"
  3004.     decal.Texture = "http://www.roblox.com/asset/?id=818983932"
  3005.     coroutine.resume(coroutine.create(function(PART)
  3006.         for i = 1, waitt do
  3007.             Swait()
  3008.             if doesrotate == true then
  3009.                 sinkhole.CFrame = sinkhole.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
  3010.             end
  3011.             if i > waitt-11 then
  3012.                 decal.Transparency = decal.Transparency + 0.1
  3013.             end
  3014.         end
  3015.         sinkhole:remove()
  3016.     end))
  3017.     return sinkhole
  3018. end
  3019.  
  3020. Weapon.Parent = Character
  3021.  
  3022. Humanoid.Died:connect(function()
  3023.     workspace:ClearAllChildren()
  3024. end)
  3025.  
  3026.  
  3027. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  3028.     return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  3029. end
  3030.  
  3031. function PositiveAngle(NUMBER)
  3032.     if NUMBER >= 0 then
  3033.         NUMBER = 0
  3034.     end
  3035.     return NUMBER
  3036. end
  3037.  
  3038. function NegativeAngle(NUMBER)
  3039.     if NUMBER <= 0 then
  3040.         NUMBER = 0
  3041.     end
  3042.     return NUMBER
  3043. end
  3044.  
  3045. function Swait(NUMBER)
  3046.     if NUMBER == 0 or NUMBER == nil then
  3047.         ArtificialHB.Event:wait()
  3048.     else
  3049.         for i = 1, NUMBER do
  3050.             ArtificialHB.Event:wait()
  3051.         end
  3052.     end
  3053. end
  3054.  
  3055. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  3056.     local NEWMESH = IT(MESH)
  3057.     if MESH == "SpecialMesh" then
  3058.         NEWMESH.MeshType = MESHTYPE
  3059.         if MESHID ~= "nil" and MESHID ~= "" then
  3060.             NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  3061.         end
  3062.         if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  3063.             NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  3064.         end
  3065.     end
  3066.     NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  3067.     NEWMESH.Scale = SCALE
  3068.     NEWMESH.Parent = PARENT
  3069.     return NEWMESH
  3070. end
  3071.  
  3072. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  3073.     local NEWPART = IT("Part")
  3074.     NEWPART.formFactor = FORMFACTOR
  3075.     NEWPART.Reflectance = REFLECTANCE
  3076.     NEWPART.Transparency = TRANSPARENCY
  3077.     NEWPART.CanCollide = false
  3078.     NEWPART.Locked = true
  3079.     NEWPART.Anchored = true
  3080.     if ANCHOR == false then
  3081.         NEWPART.Anchored = false
  3082.     end
  3083.     NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  3084.     NEWPART.Name = NAME
  3085.     NEWPART.Size = SIZE
  3086.     NEWPART.Position = Torso.Position
  3087.     NEWPART.Material = MATERIAL
  3088.     NEWPART:BreakJoints()
  3089.     NEWPART.Parent = PARENT
  3090.     return NEWPART
  3091. end
  3092.  
  3093.     local function weldBetween(a, b)
  3094.         local weldd = Instance.new("ManualWeld")
  3095.         weldd.Part0 = a
  3096.         weldd.Part1 = b
  3097.         weldd.C0 = CFrame.new()
  3098.         weldd.C1 = b.CFrame:inverse() * a.CFrame
  3099.         weldd.Parent = a
  3100.         return weldd
  3101.     end
  3102.  
  3103.  
  3104. function QuaternionFromCFrame(cf)
  3105.     local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  3106.     local trace = m00 + m11 + m22
  3107.     if trace > 0 then
  3108.         local s = math.sqrt(1 + trace)
  3109.         local recip = 0.5 / s
  3110.         return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  3111.     else
  3112.         local i = 0
  3113.         if m11 > m00 then
  3114.             i = 1
  3115.         end
  3116.         if m22 > (i == 0 and m00 or m11) then
  3117.             i = 2
  3118.         end
  3119.         if i == 0 then
  3120.             local s = math.sqrt(m00 - m11 - m22 + 1)
  3121.             local recip = 0.5 / s
  3122.             return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  3123.         elseif i == 1 then
  3124.             local s = math.sqrt(m11 - m22 - m00 + 1)
  3125.             local recip = 0.5 / s
  3126.             return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  3127.         elseif i == 2 then
  3128.             local s = math.sqrt(m22 - m00 - m11 + 1)
  3129.             local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  3130.         end
  3131.     end
  3132. end
  3133.  
  3134. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  3135.     local xs, ys, zs = x + x, y + y, z + z
  3136.     local wx, wy, wz = w * xs, w * ys, w * zs
  3137.     local xx = x * xs
  3138.     local xy = x * ys
  3139.     local xz = x * zs
  3140.     local yy = y * ys
  3141.     local yz = y * zs
  3142.     local zz = z * zs
  3143.     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))
  3144. end
  3145.  
  3146. function QuaternionSlerp(a, b, t)
  3147.     local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  3148.     local startInterp, finishInterp;
  3149.     if cosTheta >= 0.0001 then
  3150.         if (1 - cosTheta) > 0.0001 then
  3151.             local theta = ACOS(cosTheta)
  3152.             local invSinTheta = 1 / SIN(theta)
  3153.             startInterp = SIN((1 - t) * theta) * invSinTheta
  3154.             finishInterp = SIN(t * theta) * invSinTheta
  3155.         else
  3156.             startInterp = 1 - t
  3157.             finishInterp = t
  3158.         end
  3159.     else
  3160.         if (1 + cosTheta) > 0.0001 then
  3161.             local theta = ACOS(-cosTheta)
  3162.             local invSinTheta = 1 / SIN(theta)
  3163.             startInterp = SIN((t - 1) * theta) * invSinTheta
  3164.             finishInterp = SIN(t * theta) * invSinTheta
  3165.         else
  3166.             startInterp = t - 1
  3167.             finishInterp = t
  3168.         end
  3169.     end
  3170.     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
  3171. end
  3172.  
  3173. function Clerp(a, b, t)
  3174.     local qa = {QuaternionFromCFrame(a)}
  3175.     local qb = {QuaternionFromCFrame(b)}
  3176.     local ax, ay, az = a.x, a.y, a.z
  3177.     local bx, by, bz = b.x, b.y, b.z
  3178.     local _t = 1 - t
  3179.     return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  3180. end
  3181.  
  3182. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  3183.     local frame = IT("Frame")
  3184.     frame.BackgroundTransparency = TRANSPARENCY
  3185.     frame.BorderSizePixel = BORDERSIZEPIXEL
  3186.     frame.Position = POSITION
  3187.     frame.Size = SIZE
  3188.     frame.BackgroundColor3 = COLOR
  3189.     frame.BorderColor3 = BORDERCOLOR
  3190.     frame.Name = NAME
  3191.     frame.Parent = PARENT
  3192.     return frame
  3193. end
  3194.  
  3195. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  3196.     local label = IT("TextLabel")
  3197.     label.BackgroundTransparency = 1
  3198.     label.Size = UD2(1, 0, 1, 0)
  3199.     label.Position = UD2(0, 0, 0, 0)
  3200.     label.TextColor3 = TEXTCOLOR
  3201.     label.TextStrokeTransparency = STROKETRANSPARENCY
  3202.     label.TextTransparency = TRANSPARENCY
  3203.     label.FontSize = TEXTFONTSIZE
  3204.     label.Font = TEXTFONT
  3205.     label.BorderSizePixel = BORDERSIZEPIXEL
  3206.     label.TextScaled = false
  3207.     label.Text = TEXT
  3208.     label.Name = NAME
  3209.     label.Parent = PARENT
  3210.     return label
  3211. end
  3212.  
  3213. function NoOutlines(PART)
  3214.     PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  3215. end
  3216.  
  3217. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  3218.     local NEWWELD = IT(TYPE)
  3219.     NEWWELD.Part0 = PART0
  3220.     NEWWELD.Part1 = PART1
  3221.     NEWWELD.C0 = C0
  3222.     NEWWELD.C1 = C1
  3223.     NEWWELD.Parent = PARENT
  3224.     return NEWWELD
  3225. end
  3226.  
  3227. local S = IT("Sound")
  3228. function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
  3229.     local NEWSOUND = nil
  3230.     coroutine.resume(coroutine.create(function()
  3231.         NEWSOUND = S:Clone()
  3232.         NEWSOUND.Parent = PARENT
  3233.         NEWSOUND.Volume = VOLUME
  3234.         NEWSOUND.Pitch = PITCH
  3235.         NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  3236.         NEWSOUND:play()
  3237.         if DOESLOOP == true then
  3238.             NEWSOUND.Looped = true
  3239.         else
  3240.             repeat wait(1) until NEWSOUND.Playing == false
  3241.             NEWSOUND:remove()
  3242.         end
  3243.     end))
  3244.     return NEWSOUND
  3245. end
  3246.  
  3247. local EyeSizes={
  3248.     NumberSequenceKeypoint.new(0,2,0),
  3249.     NumberSequenceKeypoint.new(1,0,0)
  3250. }
  3251. local EyeTrans={
  3252.     NumberSequenceKeypoint.new(0,0.5,0),
  3253.     NumberSequenceKeypoint.new(1,1,0)
  3254. }
  3255. local PE=Instance.new("ParticleEmitter",nil)
  3256. PE.LightEmission=.8
  3257. PE.Color = ColorSequence.new(BRICKC("Crimson").Color,BRICKC("Really red").Color)
  3258. PE.Size=NumberSequence.new(EyeSizes)
  3259. PE.Transparency=NumberSequence.new(EyeTrans)
  3260. PE.Lifetime=NumberRange.new(0.35,1)
  3261. PE.Rotation=NumberRange.new(0,360)
  3262. PE.Rate=100
  3263. PE.VelocitySpread = 10000
  3264. PE.Acceleration = Vector3.new(0,85,0)
  3265. PE.Drag = 5
  3266. PE.Speed = NumberRange.new(0.1,5)
  3267. PE.Texture="http://www.roblox.com/asset/?id=1460745664"
  3268. PE.ZOffset = 0.5
  3269. PE.Name = "PE"
  3270. PE.Enabled = false
  3271.  
  3272. function Fire(art)
  3273.     local PARTICLES = PE:Clone()
  3274.     PARTICLES.Parent = art
  3275.     PARTICLES.Enabled = true
  3276.     return PARTICLES
  3277. end
  3278.  
  3279. function CFrameFromTopBack(at, top, back)
  3280.     local right = top:Cross(back)
  3281.     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)
  3282. end
  3283.  
  3284. --WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  3285. function WACKYEFFECT(Table)
  3286.     local TYPE = (Table.EffectType or "Sphere")
  3287.     local SIZE = (Table.Size or VT(1,1,1))
  3288.     local ENDSIZE = (Table.Size2 or VT(0,0,0))
  3289.     local TRANSPARENCY = (Table.Transparency or 0)
  3290.     local ENDTRANSPARENCY = (Table.Transparency2 or 1)
  3291.     local CFRAME = (Table.CFrame or Torso.CFrame)
  3292.     local MOVEDIRECTION = (Table.MoveToPos or nil)
  3293.     local ROTATION1 = (Table.RotationX or 0)
  3294.     local ROTATION2 = (Table.RotationY or 0)
  3295.     local ROTATION3 = (Table.RotationZ or 0)
  3296.     local MATERIAL = (Table.Material or "Neon")
  3297.     local COLOR = (Table.Color or C3(1,1,1))
  3298.     local TIME = (Table.Time or 45)
  3299.     local SOUNDID = (Table.SoundID or nil)
  3300.     local SOUNDPITCH = (Table.SoundPitch or nil)
  3301.     local SOUNDVOLUME = (Table.SoundVolume or nil)
  3302.     coroutine.resume(coroutine.create(function()
  3303.         local PLAYSSOUND = false
  3304.         local SOUND = nil
  3305.         local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Crimson"), "Effect", VT(1,1,1), true)
  3306.         if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
  3307.             PLAYSSOUND = true
  3308.             SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
  3309.         end
  3310.         EFFECT.Color = COLOR
  3311.         local MSH = nil
  3312.         if TYPE == "Sphere" then
  3313.             MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
  3314.         elseif TYPE == "Block" or TYPE == "Box" then
  3315.             MSH = IT("BlockMesh",EFFECT)
  3316.             MSH.Scale = SIZE
  3317.         elseif TYPE == "Wave" then
  3318.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
  3319.         elseif TYPE == "Ring" then
  3320.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
  3321.         elseif TYPE == "Slash" then
  3322.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  3323.         elseif TYPE == "Round Slash" then
  3324.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  3325.         elseif TYPE == "Swirl" then
  3326.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
  3327.         elseif TYPE == "Skull" then
  3328.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
  3329.         elseif TYPE == "Crystal" then
  3330.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
  3331.         end
  3332.         if MSH ~= nil then
  3333.             local MOVESPEED = nil
  3334.             if MOVEDIRECTION ~= nil then
  3335.                 MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
  3336.             end
  3337.             local GROWTH = SIZE - ENDSIZE
  3338.             local TRANS = TRANSPARENCY - ENDTRANSPARENCY
  3339.             if TYPE == "Block" then
  3340.                 EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  3341.             else
  3342.                 EFFECT.CFrame = CFRAME
  3343.             end
  3344.             for LOOP = 1, TIME+1 do
  3345.                 Swait()
  3346.                 MSH.Scale = MSH.Scale - GROWTH/TIME
  3347.                 if TYPE == "Wave" then
  3348.                     MSH.Offset = VT(0,0,-MSH.Scale.X/8)
  3349.                 end
  3350.                 EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
  3351.                 if TYPE == "Block" then
  3352.                     EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  3353.                 else
  3354.                     EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
  3355.                 end
  3356.                 if MOVEDIRECTION ~= nil then
  3357.                     local ORI = EFFECT.Orientation
  3358.                     EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
  3359.                     EFFECT.Orientation = ORI
  3360.                 end
  3361.             end
  3362.             if PLAYSSOUND == false then
  3363.                 EFFECT:remove()
  3364.             else
  3365.                 repeat wait(1) until SOUND.Playing == false
  3366.                 EFFECT:remove()
  3367.             end
  3368.         else
  3369.             if PLAYSSOUND == false then
  3370.                 EFFECT:remove()
  3371.             else
  3372.                 repeat Swait() until SOUND.Playing == false
  3373.                 EFFECT:remove()
  3374.             end
  3375.         end
  3376.     end))
  3377. end
  3378.  
  3379. function MakeForm(PART,TYPE)
  3380.     if TYPE == "Cyl" then
  3381.         local MSH = IT("CylinderMesh",PART)
  3382.     elseif TYPE == "Ball" then
  3383.         local MSH = IT("SpecialMesh",PART)
  3384.         MSH.MeshType = "Sphere"
  3385.     elseif TYPE == "Wedge" then
  3386.         local MSH = IT("SpecialMesh",PART)
  3387.         MSH.MeshType = "Wedge"
  3388.     end
  3389. end
  3390.  
  3391. Debris = game:GetService("Debris")
  3392.  
  3393. function CastProperRay(StartPos, EndPos, Distance, Ignore)
  3394.     local DIRECTION = CF(StartPos,EndPos).lookVector
  3395.     return Raycast(StartPos, DIRECTION, Distance, Ignore)
  3396. end
  3397.  
  3398. local HATWELD = nil
  3399. function Pose(WhichPose,Speed,Time,Magic,Gyro,Tors)
  3400.     PLAYMAINANIM = false
  3401.     if WhichPose == "Cast1" then
  3402.         for i=0, Time, 0.1 / Animation_Speed do
  3403.             Swait()
  3404.             if Magic == true then
  3405.                 WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Really red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  3406.             end
  3407.             if Gyro ~= nil and Gyro ~= false then
  3408.                 Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
  3409.             end
  3410.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(35)), Speed / Animation_Speed)
  3411.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-35)), Speed / Animation_Speed)
  3412.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(125), RAD(0), RAD(45)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  3413.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  3414.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  3415.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  3416.         end
  3417.     elseif WhichPose == "Cast2" then
  3418.         for i=0, Time, 0.1 / Animation_Speed do
  3419.             Swait()
  3420.             if Magic == true then
  3421.                 WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Really red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  3422.                 WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = LeftArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Really red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  3423.             end
  3424.             if Gyro ~= nil and Gyro ~= false then
  3425.                 Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
  3426.             end
  3427.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
  3428.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
  3429.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(120), RAD(0), RAD(15)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  3430.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(120), RAD(0), RAD(-15)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  3431.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  3432.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  3433.         end
  3434.     elseif WhichPose == "RightArmUp" then
  3435.         for i=0, Time, 0.1 / Animation_Speed do
  3436.             Swait()
  3437.             if Magic == true then
  3438.                 WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Really red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  3439.             end
  3440.             if Gyro ~= nil and Gyro ~= false then
  3441.                 Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
  3442.             end
  3443.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(15)), Speed / Animation_Speed)
  3444.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-15)), Speed / Animation_Speed)
  3445.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.2) * ANGLES(RAD(125), RAD(0), RAD(25)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  3446.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  3447.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  3448.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  3449.         end
  3450.     elseif WhichPose == "Taunt" then
  3451.         for i=0, Time, 0.1 / Animation_Speed do
  3452.             Swait()
  3453.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
  3454.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
  3455.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(175), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  3456.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  3457.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  3458.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  3459.         end
  3460.         HATWELD.Part0 = RightArm
  3461.         HATWELD.C0 = CF(0,-1.1,-0.4) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(-20), RAD(0), RAD(0))
  3462.         CreateSound(221057812,Torso,10,1,false)
  3463.         for i=0, Time*2, 0.1 / Animation_Speed do
  3464.             Swait()
  3465.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
  3466.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(35 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
  3467.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(145), RAD(0), RAD(45)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  3468.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(5), RAD(25), RAD(-15)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  3469.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  3470.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  3471.         end
  3472.         for i=0, Time, 0.1 / Animation_Speed do
  3473.             Swait()
  3474.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
  3475.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5), RAD(0), RAD(0)), Speed / Animation_Speed)
  3476.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.65, -0.5) * ANGLES(RAD(175), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  3477.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  3478.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  3479.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  3480.             HATWELD.C0 = Clerp(HATWELD.C0, CF(-0.5,-1.2,-0.3) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(35), RAD(0), RAD(35)), Speed / Animation_Speed)
  3481.         end
  3482.         HATWELD.Part0 = Head
  3483.         HATWELD.C0 = CF(0,0.35,0)
  3484.     elseif WhichPose == "Prepare key" then
  3485.         for i=0, Time, 0.1 / Animation_Speed do
  3486.             Swait()
  3487.             if Gyro ~= nil and Gyro ~= false then
  3488.                 Gyro.cframe = CF(RootPart.Position,Tors.Position)
  3489.             end
  3490.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(65)), Speed / Animation_Speed)
  3491.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-65)), Speed / Animation_Speed)
  3492.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.25) * ANGLES(RAD(90), RAD(0), RAD(65)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  3493.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  3494.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  3495.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  3496.         end
  3497.     elseif WhichPose == "Turn key" then
  3498.         for i=0, Time, 0.1 / Animation_Speed do
  3499.             Swait()
  3500.             if Gyro ~= nil and Gyro ~= false then
  3501.                 Gyro.cframe = CF(RootPart.Position,Tors.Position)
  3502.             end
  3503.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(75)), Speed / Animation_Speed)
  3504.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-75)), Speed / Animation_Speed)
  3505.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.25) * ANGLES(RAD(90), RAD(0), RAD(75)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
  3506.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
  3507.             RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
  3508.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
  3509.         end
  3510.     end
  3511.     PLAYMAINANIM = true
  3512. end
  3513.  
  3514. --Lightning({Color = C3(1,1,1), Start = Torso.Position, End = Mouse.Hit.p, SegmentL = 2, Thickness = 0.1, DoesFade = false, Ignore = Character, MaxDist = 400, Branches = false})
  3515. function Lightning(Table)
  3516.     local Color = Table.Color or C3(1,1,1)
  3517.     local StartPos = Table.Start or Torso.Position
  3518.     local EndPos = Table.End or Mouse.Hit.p
  3519.     local SegmentLength = Table.SegmentL or 2
  3520.     local Thickness = Table.Thickness or 0.1
  3521.     local Dissapear = Table.DoesFade or false
  3522.     local Parent = Table.Ignore or Character
  3523.     local MaxDist = Table.MaxDist or 400
  3524.     local Branches = Table.Branches or false
  3525.     local HIT,HITPOS = CastProperRay(StartPos, EndPos, MaxDist, Parent)
  3526.     local DISTANCE = math.ceil((StartPos - HITPOS).Magnitude/SegmentLength)
  3527.     local LIGHTNINGMODEL = IT("Model",Effects)
  3528.     LIGHTNINGMODEL.Name = "Lightning"
  3529.     local LastBolt = nil
  3530.     for E = 1, DISTANCE do
  3531.         local ExtraSize = (DISTANCE-E)/15
  3532.         local PART = CreatePart(3, LIGHTNINGMODEL, "Neon", 0, 0, BRICKC("Crimson"), "LightningPart"..E, VT(Thickness+ExtraSize,SegmentLength,Thickness+ExtraSize))
  3533.         PART.Color = Color
  3534.         MakeForm(PART,"Cyl")
  3535.         if LastBolt == nil then
  3536.             PART.CFrame = CF(StartPos,HITPOS)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
  3537.         else
  3538.             PART.CFrame = CF(LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0).p,CF(HITPOS)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))*CF(0,0,SegmentLength/3+(DISTANCE-E)).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
  3539.         end
  3540.         LastBolt = PART
  3541.         if Branches == true then
  3542.             local CHOICE = MRANDOM(1,7+((DISTANCE-E)*2))
  3543.             if CHOICE == 1 then
  3544.                 local LASTBRANCH = nil
  3545.                 for i = 1, MRANDOM(2,5) do
  3546.                     local ExtraSize2 = ((DISTANCE-E)/25)/i
  3547.                     local PART = CreatePart(3, LIGHTNINGMODEL, "Neon", 0, 0, BRICKC("Crimson"), "Branch"..E.."-"..i, VT(Thickness+ExtraSize2,SegmentLength,Thickness+ExtraSize2))
  3548.                     PART.Color = Color
  3549.                     MakeForm(PART,"Cyl")
  3550.                     if LASTBRANCH == nil then
  3551.                         PART.CFrame = CF(LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0).p,LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0)*ANGLES(RAD(0),RAD(0),RAD(MRANDOM(0,360)))*CF(0,Thickness*7,0)*CF(0,0,-1).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
  3552.                     else
  3553.                         PART.CFrame = CF(LASTBRANCH.CFrame*CF(0,-LASTBRANCH.Size.Y/2,0).p,LASTBRANCH.CFrame*CF(0,-LASTBRANCH.Size.Y/2,0)*ANGLES(RAD(0),RAD(0),RAD(MRANDOM(0,360)))*CF(0,Thickness*3,0)*CF(0,0,-1).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
  3554.                     end
  3555.                     LASTBRANCH = PART
  3556.                 end
  3557.             end
  3558.         end
  3559.     end
  3560.     if Dissapear == true then
  3561.         coroutine.resume(coroutine.create(function()
  3562.             for i = 1, 10 do
  3563.                 Swait()
  3564.                 for _, c in pairs(LIGHTNINGMODEL:GetChildren()) do
  3565.                     if c.ClassName == "Part" then
  3566.                         c.Transparency = i/10
  3567.                     end
  3568.                 end
  3569.             end
  3570.             LIGHTNINGMODEL:remove()
  3571.         end))
  3572.     elseif Dissapear == false then
  3573.         Debris:AddItem(LIGHTNINGMODEL,0.1)
  3574.     end
  3575.     return {End = LastBolt.CFrame*CF(0,0,-LastBolt.Size.Z/2).p,LastBolt = LastBolt,Model = LIGHTNINGMODEL}
  3576. end
  3577.  
  3578. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  3579.     return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  3580. end
  3581.  
  3582. function PositiveAngle(NUMBER)
  3583.     if NUMBER >= 0 then
  3584.         NUMBER = 0
  3585.     end
  3586.     return NUMBER
  3587. end
  3588.  
  3589. function NegativeAngle(NUMBER)
  3590.     if NUMBER <= 0 then
  3591.         NUMBER = 0
  3592.     end
  3593.     return NUMBER
  3594. end
  3595.  
  3596. function Swait(NUMBER)
  3597.     if NUMBER == 0 or NUMBER == nil then
  3598.         ArtificialHB.Event:wait()
  3599.     else
  3600.         for i = 1, NUMBER do
  3601.             ArtificialHB.Event:wait()
  3602.         end
  3603.     end
  3604. end
  3605.  
  3606. function QuaternionFromCFrame(cf)
  3607.     local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  3608.     local trace = m00 + m11 + m22
  3609.     if trace > 0 then
  3610.         local s = math.sqrt(1 + trace)
  3611.         local recip = 0.5 / s
  3612.         return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  3613.     else
  3614.         local i = 0
  3615.         if m11 > m00 then
  3616.             i = 1
  3617.         end
  3618.         if m22 > (i == 0 and m00 or m11) then
  3619.             i = 2
  3620.         end
  3621.         if i == 0 then
  3622.             local s = math.sqrt(m00 - m11 - m22 + 1)
  3623.             local recip = 0.5 / s
  3624.             return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  3625.         elseif i == 1 then
  3626.             local s = math.sqrt(m11 - m22 - m00 + 1)
  3627.             local recip = 0.5 / s
  3628.             return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  3629.         elseif i == 2 then
  3630.             local s = math.sqrt(m22 - m00 - m11 + 1)
  3631.             local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  3632.         end
  3633.     end
  3634. end
  3635.  
  3636. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  3637.     local xs, ys, zs = x + x, y + y, z + z
  3638.     local wx, wy, wz = w * xs, w * ys, w * zs
  3639.     local xx = x * xs
  3640.     local xy = x * ys
  3641.     local xz = x * zs
  3642.     local yy = y * ys
  3643.     local yz = y * zs
  3644.     local zz = z * zs
  3645.     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))
  3646. end
  3647.  
  3648. function QuaternionSlerp(a, b, t)
  3649.     local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  3650.     local startInterp, finishInterp;
  3651.     if cosTheta >= 0.0001 then
  3652.         if (1 - cosTheta) > 0.0001 then
  3653.             local theta = ACOS(cosTheta)
  3654.             local invSinTheta = 1 / SIN(theta)
  3655.             startInterp = SIN((1 - t) * theta) * invSinTheta
  3656.             finishInterp = SIN(t * theta) * invSinTheta
  3657.         else
  3658.             startInterp = 1 - t
  3659.             finishInterp = t
  3660.         end
  3661.     else
  3662.         if (1 + cosTheta) > 0.0001 then
  3663.             local theta = ACOS(-cosTheta)
  3664.             local invSinTheta = 1 / SIN(theta)
  3665.             startInterp = SIN((t - 1) * theta) * invSinTheta
  3666.             finishInterp = SIN(t * theta) * invSinTheta
  3667.         else
  3668.             startInterp = t - 1
  3669.             finishInterp = t
  3670.         end
  3671.     end
  3672.     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
  3673. end
  3674.  
  3675. function Clerp(a, b, t)
  3676.     local qa = {QuaternionFromCFrame(a)}
  3677.     local qb = {QuaternionFromCFrame(b)}
  3678.     local ax, ay, az = a.x, a.y, a.z
  3679.     local bx, by, bz = b.x, b.y, b.z
  3680.     local _t = 1 - t
  3681.     return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  3682. end
  3683.  
  3684.  
  3685. function CreateSound(ID, PARENT, VOLUME, PITCH)
  3686.     coroutine.resume(coroutine.create(function()
  3687.         local NEWSOUND = IT("Sound", PARENT)
  3688.         NEWSOUND.Volume = VOLUME
  3689.         NEWSOUND.Pitch = PITCH
  3690.         NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  3691.         Swait()
  3692.         NEWSOUND:play()
  3693.         game:GetService("Debris"):AddItem(NEWSOUND, 10)
  3694.     end))
  3695. end
  3696.  
  3697. local decal = IT("Decal")
  3698.  
  3699. function CreatePentagram(size,doesrotate,rotatedirection,waitt,cframe,offset,doeskill)
  3700.     local sinkhole = IT("Part",workspace)
  3701.     if doeskill == true then
  3702.         local hit = sinkhole.Touched:Connect(function(hit)
  3703.             if hit.Parent ~= Character and hit.Parent:FindFirstChild("Humanoid") then
  3704.                 kill(hit.Parent,true)
  3705.                 hit.Parent:remove()
  3706.             end
  3707.         end)
  3708.     end
  3709.     sinkhole.Size = VT(size,0,size)
  3710.     sinkhole.CFrame = cframe * CF(0,offset,0)
  3711.     sinkhole.Material = "Neon"
  3712.     sinkhole.Color = C3(1,0,0)
  3713.     sinkhole.Anchored = true
  3714.     sinkhole.CanCollide = false
  3715.     sinkhole.Transparency = 1
  3716.     local decal = decal:Clone()
  3717.     decal.Parent = sinkhole
  3718.     decal.Face = "Top"
  3719.     decal.Texture = "http://www.roblox.com/asset/?id=818983932"
  3720.     coroutine.resume(coroutine.create(function(PART)
  3721.         for i = 1, waitt do
  3722.             Swait()
  3723.             if doesrotate == true then
  3724.                 sinkhole.CFrame = sinkhole.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
  3725.             end
  3726.             if i > waitt-11 then
  3727.                 decal.Transparency = decal.Transparency + 0.1
  3728.             end
  3729.         end
  3730.         sinkhole:remove()
  3731.     end))
  3732.     return sinkhole
  3733. end
  3734.  
  3735. Weapon.Parent = Character
  3736.  
  3737. Humanoid.Died:connect(function()
  3738.     workspace:ClearAllChildren()
  3739. end)
  3740.  
  3741. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  3742.     return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  3743. end
  3744.  
  3745. function PositiveAngle(NUMBER)
  3746.     if NUMBER >= 0 then
  3747.         NUMBER = 0
  3748.     end
  3749.     return NUMBER
  3750. end
  3751.  
  3752. function NegativeAngle(NUMBER)
  3753.     if NUMBER <= 0 then
  3754.         NUMBER = 0
  3755.     end
  3756.     return NUMBER
  3757. end
  3758.  
  3759. function Swait(NUMBER)
  3760.     if NUMBER == 0 or NUMBER == nil then
  3761.         ArtificialHB.Event:wait()
  3762.     else
  3763.         for i = 1, NUMBER do
  3764.             ArtificialHB.Event:wait()
  3765.         end
  3766.     end
  3767. end
  3768.  
  3769. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  3770.     local NEWMESH = IT(MESH)
  3771.     if MESH == "SpecialMesh" then
  3772.         NEWMESH.MeshType = MESHTYPE
  3773.         if MESHID ~= "nil" and MESHID ~= "" then
  3774.             NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  3775.         end
  3776.         if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  3777.             NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  3778.         end
  3779.     end
  3780.     NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  3781.     NEWMESH.Scale = SCALE
  3782.     NEWMESH.Parent = PARENT
  3783.     return NEWMESH
  3784. end
  3785.  
  3786. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  3787.     local NEWPART = IT("Part")
  3788.     NEWPART.formFactor = FORMFACTOR
  3789.     NEWPART.Reflectance = REFLECTANCE
  3790.     NEWPART.Transparency = TRANSPARENCY
  3791.     NEWPART.CanCollide = false
  3792.     NEWPART.Locked = true
  3793.     NEWPART.Anchored = true
  3794.     if ANCHOR == false then
  3795.         NEWPART.Anchored = false
  3796.     end
  3797.     NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  3798.     NEWPART.Name = NAME
  3799.     NEWPART.Size = SIZE
  3800.     NEWPART.Position = Torso.Position
  3801.     NEWPART.Material = MATERIAL
  3802.     NEWPART:BreakJoints()
  3803.     NEWPART.Parent = PARENT
  3804.     return NEWPART
  3805. end
  3806.  
  3807.     local function weldBetween(a, b)
  3808.         local weldd = Instance.new("ManualWeld")
  3809.         weldd.Part0 = a
  3810.         weldd.Part1 = b
  3811.         weldd.C0 = CFrame.new()
  3812.         weldd.C1 = b.CFrame:inverse() * a.CFrame
  3813.         weldd.Parent = a
  3814.         return weldd
  3815.     end
  3816.  
  3817.  
  3818. function QuaternionFromCFrame(cf)
  3819.     local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  3820.     local trace = m00 + m11 + m22
  3821.     if trace > 0 then
  3822.         local s = math.sqrt(1 + trace)
  3823.         local recip = 0.5 / s
  3824.         return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  3825.     else
  3826.         local i = 0
  3827.         if m11 > m00 then
  3828.             i = 1
  3829.         end
  3830.         if m22 > (i == 0 and m00 or m11) then
  3831.             i = 2
  3832.         end
  3833.         if i == 0 then
  3834.             local s = math.sqrt(m00 - m11 - m22 + 1)
  3835.             local recip = 0.5 / s
  3836.             return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  3837.         elseif i == 1 then
  3838.             local s = math.sqrt(m11 - m22 - m00 + 1)
  3839.             local recip = 0.5 / s
  3840.             return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  3841.         elseif i == 2 then
  3842.             local s = math.sqrt(m22 - m00 - m11 + 1)
  3843.             local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  3844.         end
  3845.     end
  3846. end
  3847.  
  3848. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  3849.     local xs, ys, zs = x + x, y + y, z + z
  3850.     local wx, wy, wz = w * xs, w * ys, w * zs
  3851.     local xx = x * xs
  3852.     local xy = x * ys
  3853.     local xz = x * zs
  3854.     local yy = y * ys
  3855.     local yz = y * zs
  3856.     local zz = z * zs
  3857.     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))
  3858. end
  3859.  
  3860. function QuaternionSlerp(a, b, t)
  3861.     local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  3862.     local startInterp, finishInterp;
  3863.     if cosTheta >= 0.0001 then
  3864.         if (1 - cosTheta) > 0.0001 then
  3865.             local theta = ACOS(cosTheta)
  3866.             local invSinTheta = 1 / SIN(theta)
  3867.             startInterp = SIN((1 - t) * theta) * invSinTheta
  3868.             finishInterp = SIN(t * theta) * invSinTheta
  3869.         else
  3870.             startInterp = 1 - t
  3871.             finishInterp = t
  3872.         end
  3873.     else
  3874.         if (1 + cosTheta) > 0.0001 then
  3875.             local theta = ACOS(-cosTheta)
  3876.             local invSinTheta = 1 / SIN(theta)
  3877.             startInterp = SIN((t - 1) * theta) * invSinTheta
  3878.             finishInterp = SIN(t * theta) * invSinTheta
  3879.         else
  3880.             startInterp = t - 1
  3881.             finishInterp = t
  3882.         end
  3883.     end
  3884.     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
  3885. end
  3886.  
  3887. function Clerp(a, b, t)
  3888.     local qa = {QuaternionFromCFrame(a)}
  3889.     local qb = {QuaternionFromCFrame(b)}
  3890.     local ax, ay, az = a.x, a.y, a.z
  3891.     local bx, by, bz = b.x, b.y, b.z
  3892.     local _t = 1 - t
  3893.     return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  3894. end
  3895.  
  3896. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  3897.     local frame = IT("Frame")
  3898.     frame.BackgroundTransparency = TRANSPARENCY
  3899.     frame.BorderSizePixel = BORDERSIZEPIXEL
  3900.     frame.Position = POSITION
  3901.     frame.Size = SIZE
  3902.     frame.BackgroundColor3 = COLOR
  3903.     frame.BorderColor3 = BORDERCOLOR
  3904.     frame.Name = NAME
  3905.     frame.Parent = PARENT
  3906.     return frame
  3907. end
  3908.  
  3909. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  3910.     local label = IT("TextLabel")
  3911.     label.BackgroundTransparency = 1
  3912.     label.Size = UD2(1, 0, 1, 0)
  3913.     label.Position = UD2(0, 0, 0, 0)
  3914.     label.TextColor3 = TEXTCOLOR
  3915.     label.TextStrokeTransparency = STROKETRANSPARENCY
  3916.     label.TextTransparency = TRANSPARENCY
  3917.     label.FontSize = TEXTFONTSIZE
  3918.     label.Font = TEXTFONT
  3919.     label.BorderSizePixel = BORDERSIZEPIXEL
  3920.     label.TextStrokeColor3 = C3(1,1,1)
  3921.     label.TextScaled = false
  3922.     label.Text = TEXT
  3923.     label.Name = NAME
  3924.     label.Parent = PARENT
  3925.     return label
  3926. end
  3927.  
  3928. function NoOutlines(PART)
  3929.     PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  3930. end
  3931.  
  3932. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  3933.     local NEWWELD = IT(TYPE)
  3934.     NEWWELD.Part0 = PART0
  3935.     NEWWELD.Part1 = PART1
  3936.     NEWWELD.C0 = C0
  3937.     NEWWELD.C1 = C1
  3938.     NEWWELD.Parent = PARENT
  3939.     return NEWWELD
  3940. end
  3941.  
  3942. local S = IT("Sound")
  3943. function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
  3944.     local NEWSOUND = nil
  3945.     coroutine.resume(coroutine.create(function()
  3946.         NEWSOUND = S:Clone()
  3947.         NEWSOUND.Parent = PARENT
  3948.         NEWSOUND.Volume = VOLUME
  3949.         NEWSOUND.Pitch = PITCH
  3950.         NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  3951.         NEWSOUND:play()
  3952.         if DOESLOOP == true then
  3953.             NEWSOUND.Looped = true
  3954.         else
  3955.             repeat wait(1) until NEWSOUND.Playing == false
  3956.             NEWSOUND:remove()
  3957.         end
  3958.     end))
  3959.     return NEWSOUND
  3960. end
  3961.  
  3962. function CFrameFromTopBack(at, top, back)
  3963.     local right = top:Cross(back)
  3964.     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)
  3965. end
  3966.  
  3967. --WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  3968. function WACKYEFFECT(Table)
  3969.     local TYPE = (Table.EffectType or "Sphere")
  3970.     local SIZE = (Table.Size or VT(1,1,1))
  3971.     local ENDSIZE = (Table.Size2 or VT(0,0,0))
  3972.     local TRANSPARENCY = (Table.Transparency or 0)
  3973.     local ENDTRANSPARENCY = (Table.Transparency2 or 1)
  3974.     local CFRAME = (Table.CFrame or Torso.CFrame)
  3975.     local MOVEDIRECTION = (Table.MoveToPos or nil)
  3976.     local ROTATION1 = (Table.RotationX or 0)
  3977.     local ROTATION2 = (Table.RotationY or 0)
  3978.     local ROTATION3 = (Table.RotationZ or 0)
  3979.     local MATERIAL = (Table.Material or "Neon")
  3980.     local COLOR = (Table.Color or C3(1,1,1))
  3981.     local TIME = (Table.Time or 45)
  3982.     local SOUNDID = (Table.SoundID or nil)
  3983.     local SOUNDPITCH = (Table.SoundPitch or nil)
  3984.     local SOUNDVOLUME = (Table.SoundVolume or nil)
  3985.     coroutine.resume(coroutine.create(function()
  3986.         local PLAYSSOUND = false
  3987.         local SOUND = nil
  3988.         local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
  3989.         if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
  3990.             PLAYSSOUND = true
  3991.             SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
  3992.         end
  3993.         EFFECT.Color = COLOR
  3994.         local MSH = nil
  3995.         if TYPE == "Sphere" then
  3996.             MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
  3997.         elseif TYPE == "Block" then
  3998.             MSH = IT("BlockMesh",EFFECT)
  3999.             MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
  4000.         elseif TYPE == "Wave" then
  4001.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
  4002.         elseif TYPE == "Ring" then
  4003.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
  4004.         elseif TYPE == "Slash" then
  4005.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  4006.         elseif TYPE == "Round Slash" then
  4007.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  4008.         elseif TYPE == "Swirl" then
  4009.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
  4010.         elseif TYPE == "Skull" then
  4011.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
  4012.         elseif TYPE == "Crystal" then
  4013.             MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
  4014.         end
  4015.         if MSH ~= nil then
  4016.             local MOVESPEED = nil
  4017.             if MOVEDIRECTION ~= nil then
  4018.                 MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
  4019.             end
  4020.             local GROWTH = SIZE - ENDSIZE
  4021.             local TRANS = TRANSPARENCY - ENDTRANSPARENCY
  4022.             if TYPE == "Block" then
  4023.                 EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  4024.             else
  4025.                 EFFECT.CFrame = CFRAME
  4026.             end
  4027.             for LOOP = 1, TIME+1 do
  4028.                 Swait()
  4029.                 MSH.Scale = MSH.Scale - GROWTH/TIME
  4030.                 if TYPE == "Wave" then
  4031.                     MSH.Offset = VT(0,0,-MSH.Scale.X/8)
  4032.                 end
  4033.                 EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
  4034.                 if TYPE == "Block" then
  4035.                     EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  4036.                 else
  4037.                     EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
  4038.                 end
  4039.                 if MOVEDIRECTION ~= nil then
  4040.                     local ORI = EFFECT.Orientation
  4041.                     EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
  4042.                     EFFECT.Orientation = ORI
  4043.                 end
  4044.             end
  4045.             if PLAYSSOUND == false then
  4046.                 EFFECT:remove()
  4047.             else
  4048.                 repeat Swait() until SOUND.Playing == false
  4049.                 EFFECT:remove()
  4050.             end
  4051.         else
  4052.             if PLAYSSOUND == false then
  4053.                 EFFECT:remove()
  4054.             else
  4055.                 repeat Swait() until SOUND.Playing == false
  4056.                 EFFECT:remove()
  4057.             end
  4058.         end
  4059.     end))
  4060. end
  4061.  
  4062. function MakeForm(PART,TYPE)
  4063.     if TYPE == "Cyl" then
  4064.         local MSH = IT("CylinderMesh",PART)
  4065.     elseif TYPE == "Ball" then
  4066.         local MSH = IT("SpecialMesh",PART)
  4067.         MSH.MeshType = "Sphere"
  4068.     elseif TYPE == "Wedge" then
  4069.         local MSH = IT("SpecialMesh",PART)
  4070.         MSH.MeshType = "Wedge"
  4071.     end
  4072. end
  4073.  
  4074. Debris = game:GetService("Debris")
  4075.  
  4076. function CastProperRay(StartPos, EndPos, Distance, Ignore)
  4077.     local DIRECTION = CF(StartPos,EndPos).lookVector
  4078.     return Raycast(StartPos, DIRECTION, Distance, Ignore)
  4079. end
  4080.  
  4081. function turnto(position)
  4082.     RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
  4083. end
  4084.  
  4085. --//=================================\\
  4086. --||         WEAPON CREATION
  4087. --\\=================================//
  4088.  
  4089. Humanoid.Parent = nil
  4090. RootPart.Size = RootPart.Size*SIZE
  4091. Torso.Size = Torso.Size*SIZE
  4092. RightArm.Size = RightArm.Size*SIZE
  4093. RightLeg.Size = RightLeg.Size*SIZE
  4094. LeftArm.Size = LeftArm.Size*SIZE
  4095. LeftLeg.Size = LeftLeg.Size*SIZE
  4096. RootJoint.C0 = ROOTC0 * CF(0 * SIZE, 0 * SIZE, 0 * SIZE) * ANGLES(RAD(0), RAD(0), RAD(0))
  4097. RootJoint.C1 = ROOTC0 * CF(0 * SIZE, 0 * SIZE, 0 * SIZE) * ANGLES(RAD(0), RAD(0), RAD(0))
  4098. Neck.C0 = NECKC0 * CF(0 * SIZE, 0 * SIZE, 0 + ((1 * SIZE) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0))
  4099. Neck.C1 = CF(0 * SIZE, -0.5 * SIZE, 0 * SIZE) * ANGLES(RAD(-90), RAD(0), RAD(180))
  4100. RightShoulder.C1 = CF(0 * SIZE, 0.5 * SIZE, -0.35 * SIZE)
  4101. LeftShoulder.C1 = CF(0 * SIZE, 0.5 * SIZE, -0.35 * SIZE)
  4102. RightHip.C0 = CF(1 * SIZE, -1 * SIZE, 0 * SIZE) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
  4103. LeftHip.C0 = CF(-1 * SIZE, -1 * SIZE, 0 * SIZE) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
  4104. RightHip.C1 = CF(0.5 * SIZE, 1 * SIZE, 0 * SIZE) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
  4105. LeftHip.C1 = CF(-0.5 * SIZE, 1 * SIZE, 0 * SIZE) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
  4106. Head.Size = Head.Size*SIZE
  4107. RootJoint.Parent = RootPart
  4108. Neck.Parent = Torso
  4109. RightShoulder.Parent = Torso
  4110. LeftShoulder.Parent = Torso
  4111. RightHip.Parent = Torso
  4112. LeftHip.Parent = Torso
  4113.  
  4114. Humanoid.DisplayDistanceType = "None"
  4115. local naeeym2 = IT("BillboardGui",Character)
  4116. naeeym2.AlwaysOnTop = true
  4117. naeeym2.Size = UDim2.new(5,35,2,15)
  4118. naeeym2.StudsOffset = Vector3.new(0,2,0)
  4119. naeeym2.MaxDistance = 75
  4120. naeeym2.Adornee = Character.Head
  4121. naeeym2.Name = "Name"
  4122. local tecks2 = IT("TextLabel",naeeym2)
  4123. tecks2.BackgroundTransparency = 1
  4124. tecks2.TextScaled = true
  4125. tecks2.BorderSizePixel = 0
  4126. tecks2.Text = "The Boss"
  4127. tecks2.Font = "Fantasy"
  4128. tecks2.TextSize = 30
  4129. tecks2.TextStrokeTransparency = 0
  4130. tecks2.TextColor3 = C3(0,0,0)
  4131. tecks2.TextStrokeColor3 = C3(255,0,0)
  4132. tecks2.Size = UDim2.new(1,0,0.5,0)
  4133. tecks2.Parent = naeeym2
  4134. local top = Instance.new("Shirt")
  4135. top.ShirtTemplate = "rbxassetid://132007812"
  4136. top.Parent = Character
  4137. top.Name = "Cloth"
  4138. local bottom = Instance.new("Pants")
  4139. bottom.PantsTemplate = "rbxassetid://43727034"
  4140. bottom.Parent = Character
  4141. bottom.Name = "Cloth"
  4142.  
  4143. local PRT = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Watch", VT(1.05,0.06,1.05)*SIZE,false)
  4144. CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, PRT, CF(0,-0.5*SIZE,0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  4145. local PRT = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Watch", VT(0.5,0.1,0.5)*SIZE,false)
  4146. CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, PRT, CF(0,-0.5*SIZE,0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, -0.5*SIZE, 0))
  4147. MakeForm(PRT,"Cyl")
  4148. local PRT = CreatePart(3, Weapon, "Neon", 0, 0, "Mid gray", "Watch", VT(0.45,0.11,0.45)*SIZE,false)
  4149. CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, PRT, CF(0,-0.5*SIZE,0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, -0.5*SIZE, 0))
  4150. MakeForm(PRT,"Cyl")
  4151. PRT.Color = C3(66/255, 0/255, 127/255)
  4152. local RING = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Watch", VT(0.055,0.15,0.055)*SIZE,false)
  4153. CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, RING, CF(0,-0.5*SIZE,0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, -0.5*SIZE, 0))
  4154. MakeForm(RING,"Cyl")
  4155. RING.Color = C3(0,0,0)
  4156. for i = 1, 12 do
  4157.     local PRT = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Watch", VT(0,0.15,0)*SIZE,false)
  4158.     PRT.Color = C3(0,0,0)
  4159.     local MSH = IT("BlockMesh",PRT)
  4160.     MSH.Scale = VT(0.6,1,1)
  4161.     CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, PRT, CF(0,-0.5*SIZE,0) * ANGLES(RAD(90), RAD((360/12)*i), RAD(0)), CF(0, -0.49*SIZE, 0) * CF(0, 0, -0.2*SIZE))
  4162. end
  4163. local PRT = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Watch", VT(0,0.15,0.15)*SIZE,false)
  4164. PRT.Color = C3(0,0,0)
  4165. local MSH = IT("BlockMesh",PRT)
  4166. MSH.Scale = VT(0.4,1,1)
  4167. local WATCH1 = CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, PRT, CF(0,-0.5*SIZE,0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, -0.49*SIZE, 0) * CF(0, 0, -0.075*SIZE))
  4168. local PRT = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Watch", VT(0,0.15,0.15/1.5)*SIZE,false)
  4169. PRT.Color = C3(0,0,0)
  4170. local MSH = IT("BlockMesh",PRT)
  4171. MSH.Scale = VT(0.4,1,1)
  4172. local WATCH2 = CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, PRT, CF(0,-0.5*SIZE,0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, -0.49*SIZE, 0) * CF(0, 0, -(0.075/1.5)*SIZE))
  4173. coroutine.resume(coroutine.create(function()
  4174.     while true do
  4175.         Swait()
  4176.         CLOCKLOOP = CLOCKLOOP - 1*CLOCKSPEED
  4177.         WATCH1.C0 = Clerp(WATCH1.C0, CF(0,-0.5*SIZE,0) * ANGLES(RAD(90), RAD(CLOCKLOOP*5), RAD(0)), 1 / Animation_Speed)
  4178.         WATCH2.C0 = Clerp(WATCH2.C0, CF(0,-0.5*SIZE,0) * ANGLES(RAD(90), RAD(CLOCKLOOP*5/2), RAD(0)), 1 / Animation_Speed)
  4179.         if CLOCKLOOP <= -150 then
  4180.             if VALUE1 == false then
  4181.                 CLOCKLOOP = 0
  4182.                 WACKYEFFECT({Time = 15, EffectType = "Sphere", Size = VT(0.45,0.11,0.45)*SIZE, Size2 = VT(3,3,3), Transparency = 0, Transparency2 = 1, CFrame = RING.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(192,192,192), SoundID = 743521450, SoundPitch = 1.2, SoundVolume = 4})
  4183.                 local HITFLOOR,HITPOS = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 25*SIZE, Character)
  4184.                 ApplyAoE(HITPOS,10,15,45,75,false)
  4185.                 WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(0.45,0.11,0.45)*SIZE, Size2 = VT(15,2,15), Transparency = 0, Transparency2 = 1, CFrame = CF(HITPOS), MoveToPos = nil, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(192,192,192), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  4186.                 WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(0.45,0.11,0.45)*SIZE, Size2 = VT(12,3,12), Transparency = 0, Transparency2 = 1, CFrame = CF(HITPOS), MoveToPos = nil, RotationX = 0, RotationY = 15, RotationZ = 0, Material = "Neon", Color = C3(192,192,192), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  4187.                 if CLOCKTARGET ~= nil then
  4188.                     CLOCKTARGET.Health = CLOCKTARGET.Health - 20
  4189.                     if CLOCKTARGET.Torso ~= nil then
  4190.                         CLOCKTARGET.Torso.CFrame = CLOCKTARGET.Torso.CFrame * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)))
  4191.                     end
  4192.                     if CLOCKTARGET.Health == 0 then
  4193.                         CLOCKTARGET = nil
  4194.                     end
  4195.                 end
  4196.             end
  4197.         end
  4198.     end
  4199. end))
  4200.  
  4201. for _, c in pairs(Weapon:GetChildren()) do
  4202.     if c.ClassName == "Part" then
  4203.         c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  4204.     end
  4205. end
  4206.  
  4207. Neck.Name = "Weld"
  4208. RootJoint.Name = "Weld"
  4209. RightShoulder.Name = "Weld"
  4210. LeftShoulder.Name = "Weld"
  4211. RightHip.Name = "Weld"
  4212. LeftHip.Name = "Weld"
  4213.  
  4214. local BODY = {}
  4215. for _, c in pairs(Character:GetDescendants()) do
  4216.     if c:IsA("BasePart") and c.Name ~= "Handle" then
  4217.         if c ~= RootPart and c ~= Torso and c ~= Head and c ~= RightArm and c ~= LeftArm and c ~= RightLeg and c ~= LeftLeg then
  4218.             c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  4219.         end
  4220.         table.insert(BODY,{c,c.Parent,c.Material,c.Color,c.Transparency})
  4221.     elseif c:IsA("JointInstance") then
  4222.         table.insert(BODY,{c,c.Parent,nil,nil,nil})
  4223.     end
  4224. end
  4225. for e = 1, #BODY do
  4226.     if BODY[e] ~= nil then
  4227.         local STUFF = BODY[e]
  4228.         local PART = STUFF[1]
  4229.         local PARENT = STUFF[2]
  4230.         local MATERIAL = STUFF[3]
  4231.         local COLOR = STUFF[4]
  4232.         local TRANSPARENCY = STUFF[5]
  4233.         if PART.ClassName == "Part" and PART ~= RootPart then
  4234.             PART.Material = MATERIAL
  4235.             PART.Color = COLOR
  4236.             PART.Transparency = TRANSPARENCY
  4237.         end
  4238.         PART.AncestryChanged:Connect(function()
  4239.             PART.Parent = PARENT
  4240.         end)
  4241.     end
  4242. end
  4243.  
  4244. function refit()
  4245.     Character.Parent = workspace
  4246.     for e = 1, #BODY do
  4247.         if BODY[e] ~= nil then
  4248.             local STUFF = BODY[e]
  4249.             local PART = STUFF[1]
  4250.             local PARENT = STUFF[2]
  4251.             local MATERIAL = STUFF[3]
  4252.             local COLOR = STUFF[4]
  4253.             local TRANSPARENCY = STUFF[5]
  4254.             if PART.ClassName == "Part" and PART ~= RootPart then
  4255.                 PART.Material = MATERIAL
  4256.                 PART.Color = COLOR
  4257.                 PART.Transparency = TRANSPARENCY
  4258.             end
  4259.             if PART.Parent ~= PARENT then
  4260.                 Humanoid:remove()
  4261.                 PART.Parent = PARENT
  4262.                 Humanoid = IT("Humanoid",Character)
  4263.             end
  4264.         end
  4265.     end
  4266. end
  4267. local SKILLTEXTCOLOR = C3(66/255, 0/255, 127/255)
  4268. local SKILLFONT = "Fantasy"
  4269. local SKILLTEXTSIZE = 7
  4270.  
  4271. Weapon.Parent = Character
  4272. Humanoid.Parent = Character
  4273.  
  4274. Humanoid.Died:connect(function()
  4275.     refit()
  4276. end)
  4277.  
  4278. local SKILL1FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.23-.20, 0, 0.84, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
  4279. local SKILL2FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.50+.20, 0, 0.84, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame")
  4280. local SKILL3FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.23, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame")
  4281. local SKILL4FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.50, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame")
  4282. local SKILL5FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.86, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame")
  4283. local SKILL6FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.76, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 6 Frame")
  4284.  
  4285. local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Ultimate Punch", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 1")
  4286. local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Time Stop", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 2")
  4287. local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Ultimate Explosion", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 3")
  4288. local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Warp", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 4")
  4289. local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[X] Mark Kill", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 5")
  4290. local SKILL6TEXT = CreateLabel(SKILL6FRAME, "[G] Prison Key", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Text 6")
  4291.  
  4292. --//=================================\\
  4293. --||            DAMAGING
  4294. --\\=================================//
  4295.  
  4296. function ApplyDamage(Humanoid,Damage,TorsoPart)
  4297.     local defence = Instance.new("BoolValue",Humanoid.Parent)
  4298.     defence.Name = ("HitBy"..Player.Name)
  4299.     game:GetService("Debris"):AddItem(defence, 0.001)
  4300.     Damage = Damage * DAMAGEMULTIPLIER
  4301.     if Humanoid.Health ~= 0 then
  4302.         local CritChance = MRANDOM(1,100)
  4303.         if Damage > Humanoid.Health then
  4304.             Damage = math.ceil(Humanoid.Health)
  4305.             if Damage == 0 then
  4306.                 Damage = 0.1
  4307.             end
  4308.         end
  4309.         Humanoid.Health = Humanoid.Health - Damage
  4310.     end
  4311. end
  4312.  
  4313. function ApplyAoE(POSITION,RANGE,MINDMG,MAXDMG,FLING,INSTAKILL)
  4314.     local CHILDREN = workspace:GetDescendants()
  4315.     for index, CHILD in pairs(CHILDREN) do
  4316.         if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Parent ~= Effects then
  4317.             local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  4318.             if HUM then
  4319.                 local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  4320.                 if TORSO then
  4321.                     if (TORSO.Position - POSITION).Magnitude <= RANGE then
  4322.                         if INSTAKILL == false then
  4323.                             CHILD:BreakJoints()
  4324.                         else
  4325.                             local DMG = MRANDOM(MINDMG,MAXDMG)
  4326.                             ApplyDamage(HUM,DMG,TORSO)
  4327.                         end
  4328.                         if FLING > 0 then
  4329.                             for _, c in pairs(CHILD:GetChildren()) do
  4330.                                 if c:IsA("BasePart") then
  4331.                                     local bv = Instance.new("BodyVelocity")
  4332.                                     bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  4333.                                     bv.velocity = CF(POSITION,TORSO.Position).lookVector*FLING
  4334.                                     bv.Parent = c
  4335.                                     Debris:AddItem(bv,0.05)
  4336.                                 end
  4337.                             end
  4338.                         end
  4339.                     end
  4340.                 end
  4341.             end
  4342.         end
  4343.     end
  4344. end
  4345.  
  4346. function kill(target,extratrue)
  4347.     if OTHERWORLD == false or extratrue == true then
  4348.         f = target:GetChildren()
  4349.         for i = 1, #f do
  4350.             if f[i].ClassName == "Part" or f[i].ClassName == "MeshPart" then
  4351.                 local effect = f[i]:Clone()
  4352.                 effect.Color = C3(1,1,1)
  4353.                 effect.Material = "Neon"
  4354.                 effect.Parent = workspace
  4355.                 effect.Anchored = true
  4356.                 effect.CanCollide = false
  4357.                 local hit = effect.Touched:Connect(function(hit)
  4358.                     if hit.Parent ~= Character and hit.Parent:FindFirstChild("Humanoid") then
  4359.                         kill(hit.Parent)
  4360.                         hit.Parent:remove()
  4361.                     end
  4362.                 end)
  4363.                 m = effect:GetChildren()
  4364.                 for j = 1, #m do
  4365.                 if m[j].ClassName ~= "SpecialMesh" and m[j].ClassName ~= "BlockMesh" then
  4366.                 m[j]:remove()
  4367.                 end
  4368.                 end
  4369.                 table.insert(Effects2,{effect,"Disappear",0.01,1,1,1,15})
  4370.             end
  4371.         end
  4372.     target:remove()
  4373.     end
  4374. end
  4375.  
  4376. function killnearest(position,range,maxstrength,direction)
  4377.     for i,v in ipairs(workspace:GetChildren()) do
  4378.     local body = v:GetChildren()
  4379.         for part = 1, #body do
  4380.             if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
  4381.                 if(body[part].Position - position).Magnitude < range then
  4382.                     if v.ClassName == "Model" then
  4383.                         --v:BreakJoints()
  4384.                     end
  4385.                     local POS = position
  4386.                     coroutine.resume(coroutine.create(function()
  4387.                         body[part].Anchored = true
  4388.                         body[part].Parent = Effects
  4389.                         body[part].CanCollide = true
  4390.                         local SIZE = body[part].Size
  4391.                         body[part].Material = "Neon"
  4392.                         CreateSound("952306739", body[part], 2, MRANDOM(7, 12) / 10)
  4393.                         for i = 1, 75 do
  4394.                             Swait()
  4395.                             body[part].Color = C3(MRANDOM(0,100)/100,MRANDOM(0,100)/100,MRANDOM(0,100)/100)
  4396.                             body[part].Size = VT(SIZE.X+MRANDOM(-2,2),SIZE.Y+MRANDOM(-2,2),SIZE.Z+MRANDOM(-2,2))
  4397.                         end
  4398.                         coroutine.resume(coroutine.create(function()
  4399.                             while true do
  4400.                                 Swait()
  4401.                                 body[part].Color = C3(MRANDOM(0,100)/100,MRANDOM(0,100)/100,MRANDOM(0,100)/100)
  4402.                                 body[part].Size = VT(SIZE.X+MRANDOM(-2,2),SIZE.Y+MRANDOM(-2,2),SIZE.Z+MRANDOM(-2,2))
  4403.                             end
  4404.                         end))
  4405.                         body[part].Anchored = false
  4406.                         body[part].Velocity = direction.lookVector*maxstrength
  4407.                     end))
  4408.                 end
  4409.             end
  4410.         end
  4411.         if v.ClassName == "Part" then
  4412.             if v.Anchored == false and (v.Position - position).Magnitude < range then
  4413.                 local POS = position
  4414.                 coroutine.resume(coroutine.create(function()
  4415.                     v.Anchored = true
  4416.                     v.Parent = Effects
  4417.                     local SIZE = v.Size
  4418.                     v.Material = "Neon"
  4419.                     CreateSound("952306739", v, 2, MRANDOM(7, 12) / 10)
  4420.                     for i = 1, 75 do
  4421.                         Swait()
  4422.                         v.Color = C3(MRANDOM(0,100)/100,MRANDOM(0,100)/100,MRANDOM(0,100)/100)
  4423.                         v.Size = VT(SIZE.X+MRANDOM(-2,2),SIZE.Y+MRANDOM(-2,2),SIZE.Z+MRANDOM(-2,2))
  4424.                     end
  4425.                     coroutine.resume(coroutine.create(function()
  4426.                         while true do
  4427.                             Swait()
  4428.                             v.Color = C3(MRANDOM(0,100)/100,MRANDOM(0,100)/100,MRANDOM(0,100)/100)
  4429.                             v.Size = VT(SIZE.X+MRANDOM(-2,2),SIZE.Y+MRANDOM(-2,2),SIZE.Z+MRANDOM(-2,2))
  4430.                         end
  4431.                     end))
  4432.                     v.Anchored = false
  4433.                     v.Velocity = direction.lookVector*maxstrength
  4434.                 end))
  4435.             end
  4436.         end
  4437.     end
  4438. end
  4439.  
  4440. --//=================================\\
  4441. --||    ATTACK FUNCTIONS AND STUFF
  4442. --\\=================================//
  4443.  
  4444. function Punch()
  4445.     ATTACK = true
  4446.     Rooted = false
  4447.     local SPEED = Speed
  4448.     Speed = 10
  4449.     CreateSound("357202141", RightArm, 10, 1.1)
  4450.     for i=0, 0, 0.1 / Animation_Speed do
  4451.         Swait()
  4452.         turnto(Mouse.Hit.p)
  4453.         MagicSphere(VT(1,1,1),15,RightArm.CFrame * CF(MRANDOM(-3,3),MRANDOM(-3,3),MRANDOM(-3,3)),"Lime green",VT(-1/15,-1/15,-1/15))
  4454.         MagicSphere(VT(2,2,2),15,RightArm.CFrame * CF(MRANDOM(-3,3),MRANDOM(-3,3),MRANDOM(-3,3)),"Lime green",VT(-2/15,-2/15,-2/15))
  4455.         RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-85)), 0.15 / Animation_Speed)
  4456.         Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(85)), 0.2 / Animation_Speed)
  4457.         RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90+(MRANDOM(-45,45)/10)), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 3 / Animation_Speed)
  4458.         LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-85)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
  4459.         RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  4460.         LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  4461.     end
  4462.     for i=0, 0.15, 0.1 / Animation_Speed do
  4463.         Swait()
  4464.         turnto(Mouse.Hit.p)
  4465.         RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(65)), 1 / Animation_Speed)
  4466.         Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(25), RAD(0), RAD(35)), 1 / Animation_Speed)
  4467.         RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(65)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  4468.         LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-20), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  4469.         RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  4470.         LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  4471.     end
  4472.     local PART = CreatePart(3, Effects, "Neon", 0, 0.8, "Really red", "Punch", VT(50,50,50),false)
  4473.     PART.CFrame = RootPart.CFrame * CF(0,0,-25)
  4474.     PART.Shape = "Ball"
  4475.     local bv = Instance.new("BodyVelocity")
  4476.     bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  4477.     bv.velocity = RootPart.CFrame.lookVector*600
  4478.     bv.Parent = PART
  4479.     bv.Name = "PROJECTILEVELOCITY"
  4480.     CreateWave(VT(1,5,1),55,RootPart.CFrame * CF(0,0,-6)*ANGLES(RAD(-90),RAD(0),RAD(0)),true,-1,"Really red",VT(2.5,0.2,2.5))
  4481.     CreateWave(VT(1,5,1),55,RootPart.CFrame * CF(0,0,-6)*ANGLES(RAD(-90),RAD(0),RAD(0)),true,1,"Really red",VT(3,0.2,3))
  4482.     CreateSwirl(VT(3,5,3),75,RootPart.CFrame * CF(0,0,-15)*ANGLES(RAD(-90),RAD(0),RAD(0)),true,-1,"Really red",VT(2,0.6,2))
  4483.     CreateSwirl(VT(3,5,3),75,RootPart.CFrame * CF(0,0,-15)*ANGLES(RAD(-90),RAD(0),RAD(0)),true,1,"Really red",VT(2.2,0.6,2.2))
  4484.     CreateSound("414517163", Effects, 10, MRANDOM(7, 12) / 10)
  4485.     coroutine.resume(coroutine.create(function()
  4486.         for i = 1, 10 do
  4487.             Swait()
  4488.             PART.Transparency = PART.Transparency + 0.2/10
  4489.             PART.Size = PART.Size + VT(5,5,5)
  4490.             killnearest(PART.Position,PART.Size.Y/2+15,100,RootPart.CFrame)
  4491.         end
  4492.         PART:Destroy()
  4493.     end))
  4494.     for i=0, 1, 0.1 / Animation_Speed do
  4495.         Swait()
  4496.         RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(15), RAD(0), RAD(95)), 2 / Animation_Speed)
  4497.         Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(25), RAD(0), RAD(35)), 3 / Animation_Speed)
  4498.         RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 3 / Animation_Speed)
  4499.         LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-70), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 3 / Animation_Speed)
  4500.         RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 3 / Animation_Speed)
  4501.         LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 3 / Animation_Speed)
  4502.     end
  4503.     Speed = SPEED
  4504.     ATTACK = false
  4505.     Rooted = false
  4506. end
  4507.  
  4508. function MagicMissiles()
  4509.     ATTACK = true
  4510.     Rooted = false
  4511.     local SELECTING = true
  4512.     local SPOTS = {}
  4513.     coroutine.resume(coroutine.create(function()
  4514.         local LOOP = 0
  4515.         repeat
  4516.             LOOP = LOOP + 1
  4517.             Swait()
  4518.             if LOOP >= 15 then
  4519.                 LOOP = 0
  4520.                 for i = 1, #SPOTS do
  4521.                     if SPOTS[i] ~= nil then
  4522.                         WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(0,0,0)*SIZE, Size2 = VT(8,2,8), Transparency = 0, Transparency2 = 1, CFrame = SPOTS[i], MoveToPos = nil, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(192,192,192), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  4523.                         WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(0,0,0)*SIZE, Size2 = VT(6,3,6), Transparency = 0, Transparency2 = 1, CFrame = SPOTS[i], MoveToPos = nil, RotationX = 0, RotationY = 15, RotationZ = 0, Material = "Neon", Color = C3(192,192,192), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  4524.                     end
  4525.                 end
  4526.             end
  4527.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24)*SIZE, 0 + 0.04 * SIN(SINE / 12)*SIZE, 0 + 0.05*SIZE * COS(SINE / 12)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
  4528.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(-25 - 4 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4529.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35*SIZE, 0.65*SIZE, 0*SIZE) * ANGLES(RAD(115), RAD(45), RAD(35)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  4530.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(25 - 2.5 * SIN(SINE / 12)), RAD(55 - 2.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  4531.             RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE + 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4532.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(-75), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4533.         until SELECTING == false
  4534.         Rooted = false
  4535.         repeat
  4536.             LOOP = LOOP + 1
  4537.             Swait()
  4538.             if LOOP >= 15 then
  4539.                 LOOP = 0
  4540.                 for i = 1, #SPOTS do
  4541.                     if SPOTS[i] ~= nil then
  4542.                         WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(0,0,0)*SIZE, Size2 = VT(8,2,8), Transparency = 0, Transparency2 = 1, CFrame = SPOTS[i], MoveToPos = nil, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(159/255, 111/255, 183/255), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  4543.                         WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(0,0,0)*SIZE, Size2 = VT(6,3,6), Transparency = 0, Transparency2 = 1, CFrame = SPOTS[i], MoveToPos = nil, RotationX = 0, RotationY = 15, RotationZ = 0, Material = "Neon", Color = C3(159/255, 111/255, 183/255), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  4544.                     end
  4545.                 end
  4546.             end
  4547.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24)*SIZE, 0 + 0.04 * SIN(SINE / 12)*SIZE, 0 + 0.05*SIZE * COS(SINE / 12)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
  4548.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(0 - 4 * SIN(SINE / 12)), RAD(25), RAD(0)), 1 / Animation_Speed)
  4549.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35*SIZE, 0.65*SIZE, 0*SIZE) * ANGLES(RAD(90), RAD(0), RAD(35)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  4550.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(25 - 2.5 * SIN(SINE / 12)), RAD(55 - 2.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  4551.             RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE + 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4552.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(-75), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4553.         until ATTACK == false
  4554.     end))
  4555.     repeat
  4556.         repeat Swait() until HOLD == true
  4557.             local DIST = (RootPart.Position - Mouse.Hit.p).Magnitude
  4558.             if DIST > 9999 then
  4559.                 DIST = 9999
  4560.             end
  4561.             local RAY,RAYPOS = Raycast(RootPart.Position, (CF(RootPart.Position, Mouse.Hit.p)).lookVector, DIST, workspace)
  4562.             local HITFLOOR,HITPOS,NORMAL = Raycast(RAYPOS+VT(0,1,0), (CF(RAYPOS, RAYPOS + VT(0, -1, 0))).lookVector, 25*SIZE, Character)   
  4563.             if HITFLOOR ~= nil then
  4564.                 table.insert(SPOTS,CF(HITPOS,HITPOS+NORMAL) * ANGLES(RAD(90), RAD(0), RAD(0)))
  4565.                 WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(0,0,0)*SIZE, Size2 = VT(6,2,6), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1.2,0) * ANGLES(RAD(180), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(159/255, 111/255, 183/255), SoundID = 90655239, SoundPitch = 1, SoundVolume = 6})
  4566.                 WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(0,0,0)*SIZE, Size2 = VT(4,3,4), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1.2,0) * ANGLES(RAD(180), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 15, RotationZ = 0, Material = "Neon", Color = C3(159/255, 111/255, 183/255), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  4567.             end
  4568.         repeat Swait() until HOLD == false
  4569.     until #SPOTS == 5
  4570.     SELECTING = false
  4571.     for i = 1, #SPOTS do
  4572.         if SPOTS[i] ~= nil then
  4573.             local POS = SPOTS[i]
  4574.             coroutine.resume(coroutine.create(function()
  4575.                 local MISSILE = IT("Model",Effects)
  4576.                 MISSILE.Name = "Missile"
  4577.                 local BASEPART = CreatePart(3, MISSILE, "Neon", 0, 1, "Mid grey", "Part", VT(2,2,2))
  4578.                 MakeForm(BASEPART,"Cyl")
  4579.                 MISSILE.PrimaryPart = BASEPART
  4580.                 BASEPART.CFrame = POS*CF(0,-30*3,0)
  4581.                 local HEAD = CreatePart(3, MISSILE, "Neon", 0, 1, "Mid grey", "Part", VT(2,4,2))
  4582.                 MakeForm(HEAD,"Ball")
  4583.                 HEAD.CFrame = BASEPART.CFrame*CF(0,1,0)
  4584.                 local TAIL = CreatePart(3, MISSILE, "Neon", 0, 1, "Mid grey", "Part", VT(2.5,0.1,2.5))
  4585.                 MakeForm(TAIL,"Cyl")
  4586.                 TAIL.CFrame = BASEPART.CFrame*CF(0,-1,0)
  4587.                 for i = 1, 15 do
  4588.                     Swait()
  4589.                     for _, c in pairs(MISSILE:GetChildren()) do
  4590.                         if c.ClassName == "Part" then
  4591.                             c.Transparency = c.Transparency - 1/10
  4592.                         end
  4593.                     end
  4594.                 end
  4595.                 for i = 1, 15*1.5 do
  4596.                     Swait()
  4597.                     MISSILE:SetPrimaryPartCFrame(BASEPART.CFrame*CF(0,1.35*3,0))
  4598.                 end
  4599.                 ApplyAoE(BASEPART.CFrame.p,20,35,45,75,false)
  4600.                 WACKYEFFECT({Time = 25, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(75,1,75), Transparency = 0.5, Transparency2 = 1, CFrame = BASEPART.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(159/255, 111/255, 183/255), SoundID = nil, SoundPitch = 1.2, SoundVolume = 4})
  4601.                 WACKYEFFECT({Time = 45, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(35,35,35), Transparency = 0, Transparency2 = 1, CFrame = BASEPART.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(159/255, 111/255, 183/255), SoundID = 165970126, SoundPitch = MRANDOM(13,15)/10, SoundVolume = 4})
  4602.                 WACKYEFFECT({Time = 45, EffectType = "Wave", Size = VT(0,0,0)*SIZE, Size2 = VT(22,2,22), Transparency = 0, Transparency2 = 1, CFrame = POS * ANGLES(RAD(180), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(159/255, 111/255, 183/255), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  4603.                 WACKYEFFECT({Time = 45, EffectType = "Wave", Size = VT(0,0,0)*SIZE, Size2 = VT(20,3,20), Transparency = 0, Transparency2 = 1, CFrame = POS * ANGLES(RAD(180), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 15, RotationZ = 0, Material = "Neon", Color = C3(159/255, 111/255, 183/255), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  4604.                 MISSILE:remove()
  4605.             end))
  4606.         end
  4607.     end
  4608.     wait(0.6)
  4609.     ATTACK = false
  4610.     Rooted = false
  4611. end
  4612.  
  4613. function TimesUp()
  4614.     CLOCKTARGET = nil
  4615.     if Mouse.Target.Parent ~= Character and Mouse.Target.Parent.Parent ~= Character and Mouse.Target.Parent:FindFirstChildOfClass("Humanoid") ~= nil then
  4616.         local HUM = Mouse.Target.Parent:FindFirstChildOfClass("Humanoid")
  4617.         local TORSO = HUM.Parent:FindFirstChild("Torso") or HUM.Parent:FindFirstChild("UpperTorso")
  4618.         if TORSO then
  4619.             ATTACK = true
  4620.             Rooted = false
  4621.             coroutine.resume(coroutine.create(function()
  4622.                 repeat
  4623.                     Swait()
  4624.                     RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24)*SIZE, 0 + 0.04 * SIN(SINE / 12)*SIZE, 0 + 0.05*SIZE * COS(SINE / 12)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
  4625.                     Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(25 - 4 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4626.                     RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35*SIZE, 0.5*SIZE, -0.2*SIZE) * ANGLES(RAD(75), RAD(45), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  4627.                     LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(25 - 2.5 * SIN(SINE / 12)), RAD(55 - 2.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  4628.                     RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE + 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4629.                     LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(-75), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4630.                 until ATTACK == false
  4631.             end))
  4632.             if Effects:FindFirstChild("NeonDoll") then
  4633.                 repeat Swait() until Effects:FindFirstChild("NeonDoll") == nil
  4634.             end
  4635.             wait(0.5)
  4636.             local FAKECHARACTER = IT("Model",Effects)
  4637.             FAKECHARACTER.Name = "NeonDoll"
  4638.             local TORS = CreatePart(3, FAKECHARACTER, "Neon", 0, 1, "Mid grey", "Part", VT(0.3,0.3,0.15),false)
  4639.             CreateWeldOrSnapOrMotor("Weld", RING, RING, TORS, CF(0,0.6,0), CF(0,0,0))
  4640.             local LEG = CreatePart(3, FAKECHARACTER, "Neon", 0, 1, "Mid grey", "Part", VT(0.15,0.3,0.15),false)
  4641.             CreateWeldOrSnapOrMotor("Weld", TORS, TORS, LEG, CF(0.15/2,-0.15,0) * ANGLES(RAD(0), RAD(0), RAD(15)), CF(0,0.15,0))
  4642.             local LEG = CreatePart(3, FAKECHARACTER, "Neon", 0, 1, "Mid grey", "Part", VT(0.15,0.3,0.15),false)
  4643.             CreateWeldOrSnapOrMotor("Weld", TORS, TORS, LEG, CF(-0.15/2,-0.15,0) * ANGLES(RAD(0), RAD(0), RAD(-15)), CF(0,0.15,0))
  4644.             local ARM = CreatePart(3, FAKECHARACTER, "Neon", 0, 1, "Mid grey", "Part", VT(0.15,0.3,0.15),false)
  4645.             CreateWeldOrSnapOrMotor("Weld", TORS, TORS, ARM, CF(0.15,0.15/2,0) * ANGLES(RAD(0), RAD(0), RAD(90)), CF(0,0.15,0))
  4646.             local ARM = CreatePart(3, FAKECHARACTER, "Neon", 0, 1, "Mid grey", "Part", VT(0.15,0.3,0.15),false)
  4647.             CreateWeldOrSnapOrMotor("Weld", TORS, TORS, ARM, CF(-0.15,0.15/2,0) * ANGLES(RAD(0), RAD(0), RAD(-90)), CF(0,0.15,0))
  4648.             local HEAD = CreatePart(3, FAKECHARACTER, "Neon", 0, 1, "Mid grey", "Part", VT(0.15,0.15,0.15),false)
  4649.             CreateWeldOrSnapOrMotor("Weld", TORS, TORS, HEAD, CF(0,0.225,0), CF(0,0,0))
  4650.             CreateSound(201858045, TORS, 5, 0.4, false)
  4651.             for i = 1, 50 do
  4652.                 Swait()
  4653.                 CLOCKSPEED = 2.5
  4654.                 for _, c in pairs(FAKECHARACTER:GetChildren()) do
  4655.                     if c.ClassName == "Part" then
  4656.                         c.Transparency = c.Transparency - 0.5/150
  4657.                     end
  4658.                 end
  4659.             end
  4660.             CLOCKTARGET = HUM
  4661.             coroutine.resume(coroutine.create(function()
  4662.                 repeat Swait() CLOCKSPEED = 2 until CLOCKTARGET == nil
  4663.                 for i = 1, 25 do
  4664.                     Swait()
  4665.                     for _, c in pairs(FAKECHARACTER:GetChildren()) do
  4666.                         if c.ClassName == "Part" then
  4667.                             c.Transparency = c.Transparency + 0.5/25
  4668.                         end
  4669.                     end
  4670.                 end
  4671.                 CLOCKSPEED = 2.5
  4672.                 FAKECHARACTER:remove()
  4673.             end))
  4674.             wait(0.5)
  4675.             ATTACK = false
  4676.             Rooted = false
  4677.         end
  4678.     end
  4679. end
  4680.  
  4681. function ChainPunch()
  4682.     ATTACK = true
  4683.     Rooted = false
  4684.     local GYRO = IT("BodyGyro",RootPart)
  4685.     GYRO.D = 25
  4686.     GYRO.P = 2000
  4687.     GYRO.MaxTorque = VT(0,40000,0)
  4688.     GYRO.cframe = CF(RootPart.Position,Mouse.Hit.p)
  4689.     repeat
  4690.         Swait()
  4691.         GYRO.cframe = CF(RootPart.Position,Mouse.Hit.p)
  4692.         RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24)*SIZE, 0 + 0.04 * SIN(SINE / 12)*SIZE, 0 + 0.05*SIZE * COS(SINE / 12)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
  4693.         Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(0 - 4 * SIN(SINE / 12)), RAD(25), RAD(0)), 1 / Animation_Speed)
  4694.         RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35*SIZE, 0.65*SIZE, 0*SIZE) * ANGLES(RAD(90), RAD(0), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  4695.         LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(25 - 2.5 * SIN(SINE / 12)), RAD(55 - 2.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  4696.         RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE + 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4697.         LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(-75), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4698.     until HOLD == true
  4699.     local POS = Mouse.Hit.p
  4700.     local CHAINS = false
  4701.     local CHAINLINKS = {}
  4702.     local A = IT("Attachment",RightArm)
  4703.     A.Position = VT(1,-1,0)*SIZE
  4704.     A.Orientation = VT(-90, -89.982, 0)
  4705.     local B = IT("Attachment",RightArm)
  4706.     B.Position = VT(-1,-1,0)*SIZE
  4707.     B.Orientation = VT(-90, 89.988, 0)
  4708.     local C = IT("Attachment",RightArm)
  4709.     C.Position = VT(0.5,-1.3,0)*SIZE
  4710.     C.Orientation = VT(-90, -89.982, 0)
  4711.     local D = IT("Attachment",RightArm)
  4712.     D.Position = VT(-0.5,-1.3,0)*SIZE
  4713.     D.Orientation = VT(-90, 89.988, 0)
  4714.     local LIGHT = IT("Attachment",RightArm)
  4715.     LIGHT.Position = VT(0,-1,0)*SIZE
  4716.     local LIGHT2 = IT("PointLight",LIGHT)
  4717.     LIGHT2.Range = 7
  4718.     LIGHT2.Brightness = 5
  4719.     LIGHT2.Color = SKILLTEXTCOLOR
  4720.     for i = 1, 2 do
  4721.         local TWIST = -2
  4722.         local START = A
  4723.         local END = B
  4724.         if i == 1 then
  4725.             START = B
  4726.             END = A
  4727.         end
  4728.         local ChainLink = IT("Beam",Torso)
  4729.         ChainLink.Texture = "rbxassetid://73042633"
  4730.         ChainLink.Color = ColorSequence.new(SKILLTEXTCOLOR)
  4731.         ChainLink.TextureSpeed = 1
  4732.         ChainLink.Width0 = 1
  4733.         ChainLink.Width1 = 1
  4734.         ChainLink.TextureLength = 2.5
  4735.         ChainLink.Attachment0 = START
  4736.         ChainLink.Attachment1 = END
  4737.         ChainLink.CurveSize0 = TWIST
  4738.         ChainLink.CurveSize1 = TWIST
  4739.         --ChainLink.FaceCamera = true
  4740.         ChainLink.Segments = 45
  4741.         ChainLink.Transparency = NumberSequence.new(1)
  4742.         table.insert(CHAINLINKS,ChainLink)
  4743.     end
  4744.     for i = 1, 2 do
  4745.         local TWIST = -1
  4746.         local START = C
  4747.         local END = D
  4748.         if i == 1 then
  4749.             START = D
  4750.             END = C
  4751.         end
  4752.         local ChainLink = IT("Beam",Torso)
  4753.         ChainLink.Texture = "rbxassetid://73042633"
  4754.         ChainLink.Color = ColorSequence.new(SKILLTEXTCOLOR)
  4755.         ChainLink.TextureSpeed = 1
  4756.         ChainLink.Width0 = 1
  4757.         ChainLink.Width1 = 1
  4758.         ChainLink.TextureLength = 5
  4759.         ChainLink.Attachment0 = START
  4760.         ChainLink.Attachment1 = END
  4761.         ChainLink.CurveSize0 = TWIST
  4762.         ChainLink.CurveSize1 = TWIST
  4763.         --ChainLink.FaceCamera = true
  4764.         ChainLink.Segments = 25
  4765.         ChainLink.LightEmission = 0.5
  4766.         ChainLink.Transparency = NumberSequence.new(1)
  4767.         table.insert(CHAINLINKS,ChainLink)
  4768.     end
  4769.     coroutine.resume(coroutine.create(function()
  4770.         repeat
  4771.             Swait()
  4772.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0*SIZE, 0*SIZE, 0*SIZE + 0.05*SIZE * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed)
  4773.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(45)), 0.15 / Animation_Speed)
  4774.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35*SIZE, 0.65*SIZE, 0.2*SIZE) * ANGLES(RAD(60), RAD(0), RAD(-25)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  4775.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(25 - 2.5 * SIN(SINE / 12)), RAD(55 - 2.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  4776.             RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
  4777.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0), RAD(-75), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
  4778.         until CHAINS == true
  4779.         repeat
  4780.             Swait()
  4781.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0*SIZE, 0*SIZE, 0*SIZE + 0.05*SIZE * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed)
  4782.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-45)), 1 / Animation_Speed)
  4783.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35*SIZE, 0.65*SIZE, -0.2*SIZE) * ANGLES(RAD(90), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  4784.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(25 - 2.5 * SIN(SINE / 12)), RAD(55 - 2.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  4785.             RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
  4786.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 1 / Animation_Speed)
  4787.         until ATTACK == false
  4788.         for e = 1, 15 do
  4789.             Swait()
  4790.             for i = 1, #CHAINLINKS do
  4791.                 CHAINLINKS[i].Transparency = NumberSequence.new((e/15))
  4792.             end
  4793.         end
  4794.         A:remove()
  4795.         B:remove()
  4796.         C:remove()
  4797.         D:remove()
  4798.     end))
  4799.     CreateSound(233856115, RightArm, 5, 1.2, false)
  4800.     for e = 1, 15 do
  4801.         Swait()
  4802.         for i = 1, #CHAINLINKS do
  4803.             CHAINLINKS[i].Transparency = NumberSequence.new(1-(e/15))
  4804.         end
  4805.     end
  4806.     CHAINS = true
  4807.     Rooted = false
  4808.     wait(0.25)
  4809.     local FIST = CreatePart(3, Effects, "Neon", 0, 0.5, "Mid grey", "Part", VT(2,2,2))
  4810.     FIST.Color = C3(1, 215/255, 1)
  4811.     FIST.CFrame = CF(RightArm.CFrame*CF(0,-1.3*SIZE,0).p,POS) * ANGLES(RAD(90), RAD(0), RAD(0))
  4812.     local LIGHT3 = IT("PointLight",FIST)
  4813.     LIGHT3.Range = 7
  4814.     LIGHT3.Brightness = 5
  4815.     LIGHT3.Color = SKILLTEXTCOLOR
  4816.     CreateMesh("SpecialMesh", FIST, "FileMesh", "90718752", "", VT(10,10,10), VT(0,0,0))
  4817.     local FISTA = IT("Attachment",FIST)
  4818.     FISTA.Position = VT(0.062, 0.977, 0)
  4819.     local ChainLink = IT("Beam",Torso)
  4820.     ChainLink.Texture = "rbxassetid://73042633"
  4821.     ChainLink.Color = ColorSequence.new(SKILLTEXTCOLOR)
  4822.     ChainLink.TextureSpeed = 0
  4823.     ChainLink.Width0 = 3
  4824.     ChainLink.Width1 = 3
  4825.     ChainLink.TextureLength = 12
  4826.     ChainLink.Attachment0 = LIGHT
  4827.     ChainLink.Attachment1 = FISTA
  4828.     ChainLink.FaceCamera = true
  4829.     ChainLink.Segments = 45
  4830.     ChainLink.LightEmission = 0.5
  4831.     ChainLink.Transparency = NumberSequence.new(0.25)
  4832.     local FISTSOUND = CreateSound(288641686, FIST, 5, 1.2, false)
  4833.     for i = 1, 85 do
  4834.         Swait()
  4835.         FIST.CFrame = FIST.CFrame*CF(0,-2,0)
  4836.         ChainLink.TextureLength = 12+(i*2)
  4837.         ApplyAoE(FIST.Position,10,15,25,100,false)
  4838.         WACKYEFFECT({Time = 5, EffectType = "Wave", Size = VT(5,0,5)*SIZE, Size2 = VT(15,1,15), Transparency = 0.5, Transparency2 = 1, CFrame = FIST.CFrame*CF(0,-1,0) * ANGLES(RAD(0), RAD(i*15), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(159/255, 111/255, 183/255), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  4839.         local HITFLOOR = Raycast(FIST.Position, (CF(FIST.Position, FIST.CFrame*CF(0,-1,0).p)).lookVector, 2.1, Character)
  4840.         if HITFLOOR ~= nil then
  4841.             HITFLOOR:BreakJoints()
  4842.             coroutine.resume(coroutine.create(function()
  4843.                 for i = 1, 15 do
  4844.                     Swait()
  4845.                     FISTSOUND.Volume = FISTSOUND.Volume - 0.15
  4846.                     ApplyAoE(FIST.Position,10+(i*2),5,15,5,false)
  4847.                     WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(5,0,5)*SIZE, Size2 = VT(35,3,35), Transparency = 0.5, Transparency2 = 1, CFrame = FIST.CFrame * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(159/255, 111/255, 183/255), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  4848.                 end
  4849.             end))
  4850.             break
  4851.         end
  4852.     end
  4853.     coroutine.resume(coroutine.create(function()
  4854.         for i = 1, 50 do
  4855.             Swait()
  4856.             FIST.Transparency = FIST.Transparency + 0.5/50
  4857.             LIGHT3.Range = LIGHT3.Range - 7/50
  4858.         end
  4859.         FIST:remove()
  4860.     end))
  4861.     LIGHT:remove()
  4862.     GYRO:remove()
  4863.     ATTACK = false
  4864.     Rooted = false
  4865. end
  4866.  
  4867. function WarpMeteor()
  4868.     local DIST = (RootPart.Position - Mouse.Hit.p).Magnitude
  4869.     if DIST > 9999 then
  4870.         DIST = 9999
  4871.     end
  4872.     local RAY,RAYPOS = Raycast(RootPart.Position, (CF(RootPart.Position, Mouse.Hit.p)).lookVector, DIST, workspace)
  4873.     local HITFLOOR,HITPOS,NORMAL = Raycast(RAYPOS+VT(0,45,0), (CF(RAYPOS, RAYPOS + VT(0, -1, 0))).lookVector, 75*SIZE, Character)
  4874.     if HITFLOOR then
  4875.         local POS = HITPOS 
  4876.         ATTACK = true
  4877.         Rooted = false
  4878.         local WARPED = false
  4879.         local SMASHED = false
  4880.         local HITFLOOR,HITPOS,NORMAL = Raycast(RootPart.Position+VT(0,1,0), (CF(RAYPOS, RAYPOS + VT(0, -1, 0))).lookVector, 25*SIZE, Character)
  4881.         coroutine.resume(coroutine.create(function()
  4882.             repeat
  4883.                 Swait()
  4884.                 RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24)*SIZE, 0 + 0.04 * SIN(SINE / 12)*SIZE, 0 + 0.05*SIZE * COS(SINE / 12)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
  4885.                 Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(25 - 4 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4886.                 RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(-25 + 2.5 * SIN(SINE / 12)), RAD(-55 + 2.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  4887.                 LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(25 - 2.5 * SIN(SINE / 12)), RAD(55 - 2.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  4888.                 RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE + 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4889.                 LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(-75), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4890.             until WARPED == true
  4891.             repeat
  4892.                 Swait()
  4893.                 RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24)*SIZE, 0 + 0.04 * SIN(SINE / 12)*SIZE, 0 + 0.05*SIZE * COS(SINE / 12)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
  4894.                 Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(25 - 4 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4895.                 RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(-25 + 2.5 * SIN(SINE / 12)), RAD(-55 + 2.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  4896.                 LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(25 - 2.5 * SIN(SINE / 12)), RAD(55 - 2.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  4897.                 RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -0.5*SIZE + 0.06 * SIN(SINE / 24) - 0.1*SIZE * COS(SINE / 12), -0.5*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4898.                 LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.06 * SIN(SINE / 24) - 0.1*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(-75), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4899.             until SMASHED == true
  4900.             repeat
  4901.                 Swait()
  4902.             RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0*SIZE, 0*SIZE, 0*SIZE) * ANGLES(RAD(90), RAD(0), RAD(0)), 1 / Animation_Speed)
  4903.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0*SIZE, 0*SIZE, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(-40), RAD(0), RAD(0)), 1 / Animation_Speed)
  4904.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5*SIZE, 0.5*SIZE, 0*SIZE) * ANGLES(RAD(170), RAD(-15), RAD(20)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  4905.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5*SIZE, 0.5*SIZE, 0*SIZE) * ANGLES(RAD(170), RAD(15), RAD(-20)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  4906.             RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE, -0.3*SIZE) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 1 / Animation_Speed)
  4907.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE, -0.3*SIZE) * ANGLES(RAD(0), RAD(-75), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / Animation_Speed)
  4908.             until ATTACK == false
  4909.         end))
  4910.         VALUE1 = true
  4911.         CreateSound(233856115, Torso, 5, 1.6, false)
  4912.         for i = 1, 25 do
  4913.             Swait()
  4914.             for _, c in pairs(Character:GetChildren()) do
  4915.                 if c.ClassName == "Part" then
  4916.                     c.Transparency = c.Transparency + 1/25
  4917.                 end
  4918.             end
  4919.             for _, c in pairs(Weapon:GetChildren()) do
  4920.                 if c.ClassName == "Part" then
  4921.                     c.Transparency = c.Transparency + 1/25
  4922.                 end
  4923.             end
  4924.         end
  4925.         UNANCHOR = false
  4926.         RootPart.Anchored = true
  4927.         RootPart.Velocity = VT(0,0,0)
  4928.         local ROOTPOS = RootPart.Position
  4929.         RootPart.CFrame = CF(POS+VT(0,300,0),VT(ROOTPOS.X,POS.Y+300,ROOTPOS.Z))
  4930.         WARPED = true
  4931.         for i = 1, 25 do
  4932.             Swait()
  4933.             for _, c in pairs(Character:GetChildren()) do
  4934.                 if c.ClassName == "Part" then
  4935.                     c.Transparency = c.Transparency - 1/25
  4936.                 end
  4937.             end
  4938.             for _, c in pairs(Weapon:GetChildren()) do
  4939.                 if c.ClassName == "Part" then
  4940.                     c.Transparency = c.Transparency - 1/25
  4941.                 end
  4942.             end
  4943.         end
  4944.         local SHELL = CreatePart(3, Effects, "Neon", 0, 1, "Mid grey", "Part", VT(0,0,0))
  4945.         SHELL.CFrame = RootPart.CFrame
  4946.         MakeForm(SHELL,"Ball")
  4947.         CreateSound(402981977, SHELL, 5, 1.6, false)
  4948.         for i = 1, 10 do
  4949.             Swait()
  4950.             SHELL.Transparency = SHELL.Transparency - 1/10
  4951.             SHELL.Size = SHELL.Size + VT(0.6,0.6,0.6)*1.8
  4952.         end
  4953.         for i = 1, math.ceil(75/2) do
  4954.             Swait()
  4955.             RootPart.CFrame = RootPart.CFrame*CF(0,-3.5*2,0)
  4956.             SHELL.CFrame = CF(RootPart.Position)
  4957.             WACKYEFFECT({Time = 5, EffectType = "Sphere", Size = SHELL.Size, Size2 = VT(5,3,5), Transparency = 0.5, Transparency2 = 1, CFrame = SHELL.CFrame, MoveToPos = SHELL.Position+VT(0,15,0), RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = SHELL.Color, SoundID = nil, SoundPitch = 0.75, SoundVolume = 6})
  4958.         end
  4959.         RootPart.CFrame = CF(POS+VT(0,1,0),VT(ROOTPOS.X,HITPOS.Y+1,ROOTPOS.Z))
  4960.         SHELL.CFrame = CF(RootPart.Position)
  4961.         WACKYEFFECT({Time = 45, EffectType = "Sphere", Size = SHELL.Size, Size2 = VT(35,35,35)*4, Transparency = 0, Transparency2 = 1, CFrame = SHELL.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SHELL.Color, SoundID = 165970126, SoundPitch = 0.75, SoundVolume = 6})
  4962.         WACKYEFFECT({Time = 55, EffectType = "Wave", Size = VT(SHELL.Size.X,5,SHELL.Size.Z), Size2 = VT(45,3,45)*3.8, Transparency = 0, Transparency2 = 1, CFrame = SHELL.CFrame, MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = SHELL.Color, SoundID = nil, SoundPitch = 0.75, SoundVolume = 6})
  4963.         WACKYEFFECT({Time = 55, EffectType = "Wave", Size = VT(SHELL.Size.X,5,SHELL.Size.Z), Size2 = VT(45,3,45)*4, Transparency = 0, Transparency2 = 1, CFrame = SHELL.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = SHELL.Color, SoundID = nil, SoundPitch = 0.75, SoundVolume = 6})
  4964.         for i = 1, 5 do
  4965.             WACKYEFFECT({Time = 35, EffectType = "Wave", Size = VT(5,0,5)*SIZE, Size2 = VT(35,3,35)*4, Transparency = 0.5, Transparency2 = 1, CFrame = RootPart.CFrame * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(159/255, 111/255, 183/255), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  4966.         end
  4967.         SHELL:remove()
  4968.         ApplyAoE(RootPart.Position,75,35,75,175,false)
  4969.         SMASHED = true
  4970.         wait(1)
  4971.         VALUE1 = false
  4972.         UNANCHOR = true
  4973.         ATTACK = false
  4974.         Rooted = false
  4975.     end
  4976. end
  4977.  
  4978. function PandorasBox()
  4979.     local HITFLOOR,HITPOS = Raycast(RootPart.CFrame*CF(0,0,-6.5).p, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4*SIZE, Character)
  4980.     if HITFLOOR ~= nil then
  4981.         ATTACK = false
  4982.         Rooted = false
  4983.         local RINGSPIN = true
  4984.         local CONSTRUCTING = true
  4985.         local RING = CreatePart(3, Effects, "Neon", 0, 1, "Alder", "Ring", VT(0,0,0))
  4986.         RING.Color = C3(0,0,0)
  4987.         MakeForm(RING,"Cyl")
  4988.         RING.CFrame = CF(HITPOS)
  4989.         CreateSound(402981977, RING, 5, 1.2, false)
  4990.         coroutine.resume(coroutine.create(function()
  4991.             repeat
  4992.                 Swait()
  4993.                 RING.CFrame = RING.CFrame * ANGLES(RAD(0), RAD(5), RAD(0))
  4994.                 RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24)*SIZE, 0 + 0.04 * SIN(SINE / 12)*SIZE, 0 + 0.05*SIZE * COS(SINE / 12)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
  4995.                 Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(-25 - 4 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4996.                 RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35*SIZE, 0.65*SIZE, 0*SIZE) * ANGLES(RAD(115), RAD(45), RAD(35)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  4997.                 LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(25 - 2.5 * SIN(SINE / 12)), RAD(55 - 2.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  4998.                 RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE + 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  4999.                 LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(-75), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  5000.             until CONSTRUCTING == false
  5001.             repeat
  5002.                 Swait()
  5003.                 RING.CFrame = RING.CFrame * ANGLES(RAD(0), RAD(5), RAD(0))
  5004.             until RINGSPIN == false
  5005.             for i = 1, 25 do
  5006.                 Swait()
  5007.                 RING.CFrame = RING.CFrame * ANGLES(RAD(0), RAD(5), RAD(0))
  5008.                 RING.Size = RING.Size - VT(0.15,0,0.15)
  5009.                 --DECAL.Transparency = DECAL.Transparency + 1/25
  5010.                 RING.Transparency = RING.Transparency + 1/25
  5011.             end
  5012.             RING:remove()
  5013.         end))
  5014.         for i = 1, 15 do
  5015.             Swait()
  5016.             RING.Size = RING.Size + VT(0.75,0,0.75)
  5017.             RING.Transparency = RING.Transparency - 1/15
  5018.         end
  5019.         local BOXSPIN = true
  5020.         local PANDORASBOX = IT("Model",Effects)
  5021.         PANDORASBOX.Name = "Pandora's Box"
  5022.         local BOX = IT("Model",PANDORASBOX)
  5023.         BOX.Name = "Body"
  5024.         local LID = IT("Model",PANDORASBOX)
  5025.         LID.Name = "Lid"
  5026.         --BUILDING THE BOX--
  5027.             local BASE = CreatePart(3, BOX, "Neon", 0, 0, "Alder", "Black", VT(2,1.8,2))
  5028.             BASE.Color = C3(0,0,0)
  5029.             PANDORASBOX.PrimaryPart = BASE
  5030.             BASE.CFrame = CF(HITPOS+VT(0,-8,0),VT(RootPart.Position.X,HITPOS.Y-8,RootPart.Position.Z))
  5031.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Bright yellow", "Marble", VT(0.2,1.9,0.2))
  5032.             WOOD.CFrame = BASE.CFrame*CF(1,0,1)
  5033.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Bright yellow", "Marble", VT(0.2,1.9,0.2))
  5034.             WOOD.CFrame = BASE.CFrame*CF(1,0,-1)
  5035.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Bright yellow", "Marble", VT(0.2,1.9,0.2))
  5036.             WOOD.CFrame = BASE.CFrame*CF(-1,0,1)
  5037.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Bright yellow", "Marble", VT(0.2,1.9,0.2))
  5038.             WOOD.CFrame = BASE.CFrame*CF(-1,0,-1)
  5039.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Bright yellow", "Marble", VT(2.1,0.2,0.2))
  5040.             WOOD.CFrame = BASE.CFrame*CF(0,0.9,1)
  5041.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Bright yellow", "Marble", VT(2.1,0.2,0.2))
  5042.             WOOD.CFrame = BASE.CFrame*CF(0,0.9,-1)
  5043.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Bright yellow", "Marble", VT(0.2,0.2,2.1))
  5044.             WOOD.CFrame = BASE.CFrame*CF(1,0.9,0)
  5045.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Bright yellow", "Marble", VT(0.2,0.2,2.1))
  5046.             WOOD.CFrame = BASE.CFrame*CF(-1,0.9,0)
  5047.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Bright yellow", "Marble", VT(2.1,0.2,0.2))
  5048.             WOOD.CFrame = BASE.CFrame*CF(0,-0.9,1)
  5049.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Bright yellow", "Marble", VT(2.1,0.2,0.2))
  5050.             WOOD.CFrame = BASE.CFrame*CF(0,-0.9,-1)
  5051.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Bright yellow", "Marble", VT(0.2,0.2,2.1))
  5052.             WOOD.CFrame = BASE.CFrame*CF(1,-0.9,0)
  5053.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Bright yellow", "Marble", VT(0.2,0.2,2.1))
  5054.             WOOD.CFrame = BASE.CFrame*CF(-1,-0.9,0)
  5055.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Daisy orange", "Marble", VT(2.1,1.9,0.1))
  5056.             WOOD.CFrame = BASE.CFrame*CF(0,0,1)
  5057.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Daisy orange", "Marble", VT(2.1,1.9,0.1))
  5058.             WOOD.CFrame = BASE.CFrame*CF(0,0,-1)
  5059.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Daisy orange", "Marble", VT(0.1,1.9,2.1))
  5060.             WOOD.CFrame = BASE.CFrame*CF(1,0,0)
  5061.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Daisy orange", "Marble", VT(0.1,1.9,2.1))
  5062.             WOOD.CFrame = BASE.CFrame*CF(-1,0,0)
  5063.             local WOOD = CreatePart(3, BOX, "Marble", 0, 0, "Daisy orange", "Marble", VT(2.1,0.1,2.1))
  5064.             WOOD.CFrame = BASE.CFrame*CF(0,-0.9,0)
  5065.             -------------
  5066.             local LIDPART = CreatePart(3, LID, "Marble", 0, 0, "Daisy orange", "Marble", VT(2.1,0.1,2.1))
  5067.             LIDPART.CFrame = BASE.CFrame*CF(0,1,0)
  5068.             LID.PrimaryPart = LIDPART
  5069.             local WOOD = CreatePart(3, LID, "Marble", 0, 0, "Bright yellow", "Marble", VT(2.1,0.2,0.2))
  5070.             WOOD.CFrame = LIDPART.CFrame*CF(0,0,-1)
  5071.             local WOOD = CreatePart(3, LID, "Marble", 0, 0, "Bright yellow", "Marble", VT(2.1,0.2,0.2))
  5072.             WOOD.CFrame = LIDPART.CFrame*CF(0,0,1)
  5073.             local WOOD = CreatePart(3, LID, "Marble", 0, 0, "Bright yellow", "Marble", VT(0.2,0.2,2.1))
  5074.             WOOD.CFrame = LIDPART.CFrame*CF(1,0,0)
  5075.             local WOOD = CreatePart(3, LID, "Marble", 0, 0, "Bright yellow", "Marble", VT(0.2,0.2,2.1))
  5076.             WOOD.CFrame = LIDPART.CFrame*CF(-1,0,0)
  5077.             local DECAL = IT("Decal",LIDPART)
  5078.             DECAL.Face = "Top"
  5079.             DECAL.Texture = "http://www.roblox.com/asset/?id=1501226061"
  5080.             DECAL.Color3 = C3(0,0,0)
  5081.         --BUILDING THE BOX--
  5082.         coroutine.resume(coroutine.create(function()
  5083.             repeat
  5084.                 Swait()
  5085.                 PANDORASBOX:SetPrimaryPartCFrame(BASE.CFrame * ANGLES(RAD(0), RAD(2.45), RAD(0)))
  5086.             until BOXSPIN == false
  5087.         end))
  5088.         for i = 1, 25 do
  5089.             Swait()
  5090.             PANDORASBOX:SetPrimaryPartCFrame(BASE.CFrame * CF(0,1.5-(i/12.5),0))
  5091.         end
  5092.         wait(0.5)
  5093.         BOXSPIN = false
  5094.         CONSTRUCTING = false   
  5095.         coroutine.resume(coroutine.create(function()
  5096.             WACKYEFFECT({Time = 45, EffectType = "Sphere", Size = LIDPART.Size, Size2 = VT(3,0,3)*4, Transparency = 0, Transparency2 = 1, CFrame = LIDPART.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SKILLTEXTCOLOR, SoundID = 168586586, SoundPitch = 1.3, SoundVolume = 6})
  5097.             --[[for i = 1, 45 do
  5098.                 Swait()
  5099.                 LID:SetPrimaryPartCFrame(LIDPART.CFrame * CF(0,1.5-(i/12.5),0.5) * ANGLES(RAD(0.7), RAD(0), RAD(0)))
  5100.             end-
  5101.             LID:remove()]]--
  5102.             for _, c in pairs(LID:GetChildren()) do
  5103.                 if c.ClassName == "Part" then
  5104.                     c.Anchored = false
  5105.                     c.CanCollide = true
  5106.                     if c ~= LIDPART then
  5107.                         weldBetween(LIDPART,c)
  5108.                     end
  5109.                 end
  5110.             end
  5111.             LIDPART.Velocity = CF(LIDPART.Position,LIDPART.CFrame*CF(15,25,0).p).lookVector*65
  5112.             Debris:AddItem(LID,15)
  5113.             wait(0.5)
  5114.             local RANDOMEFFECT = MRANDOM(1,4)
  5115.             if RANDOMEFFECT == 1 then
  5116.                 for i = 1, 45 do
  5117.                     wait((2-(i/15))/15)
  5118.                     WACKYEFFECT({Time = 45, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(1,1,1), Transparency = 0, Transparency2 = 1, CFrame = BASE.CFrame*CF(0,MRANDOM(12,15),0) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0))*CF(0,0,MRANDOM(1,5)), MoveToPos = BASE.Position, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SKILLTEXTCOLOR, SoundID = nil, SoundPitch = 0.8, SoundVolume = 6})
  5119.                 end
  5120.                 wait(1)
  5121.                 WACKYEFFECT({Time = 45, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(35,35,35)*12, Transparency = 0, Transparency2 = 1, CFrame = BASE.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BASE.Color, SoundID = 165970126, SoundPitch = 0.75, SoundVolume = 6})
  5122.                 WACKYEFFECT({Time = 55, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(45,3,45)*10, Transparency = 0, Transparency2 = 1, CFrame = CF(HITPOS), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = BASE.Color, SoundID = 469345336, SoundPitch = 0.75, SoundVolume = 6})
  5123.                 WACKYEFFECT({Time = 55, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(45,3,45)*9, Transparency = 0, Transparency2 = 1, CFrame = CF(HITPOS), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = BASE.Color, SoundID = nil, SoundPitch = 0.75, SoundVolume = 6})
  5124.                 for i = 1, 5 do
  5125.                     WACKYEFFECT({Time = 35, EffectType = "Wave", Size = VT(5,0,5)*SIZE, Size2 = VT(35,3,35)*12, Transparency = 0.5, Transparency2 = 1, CFrame = BASE.CFrame * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  5126.                 end
  5127.                 ApplyAoE(BASE.Position,50,1,200,375,false)
  5128.                 ApplyAoE(BASE.Position,250,35,75,175,false)
  5129.             elseif RANDOMEFFECT == 2 then
  5130.                 local FIELD = CreatePart(3, Effects, "Neon", 0, 0, "Alder", "Field", VT(0.3,0.3,0.3))
  5131.                 FIELD.CFrame = BASE.CFrame
  5132.                 MakeForm(FIELD,"Ball")
  5133.                 for i = 1, 50 do
  5134.                     Swait()
  5135.                     FIELD.Size = FIELD.Size + VT(0.01,0.01,0.01)
  5136.                     FIELD.CFrame = FIELD.CFrame * CF(0,0.75-(i/45),0)
  5137.                 end
  5138.                 wait(0.2)
  5139.                 local LOOP = CreateSound(1393698948, FIELD, 0, 1.2, true)
  5140.                 coroutine.resume(coroutine.create(function()
  5141.                     for i = 1, 75 do
  5142.                         Swait()
  5143.                         LOOP.Volume = LOOP.Volume + 10/75
  5144.                         LOOP.Parent = FIELD
  5145.                         local CHILDREN = workspace:GetDescendants()
  5146.                         for index, CHILD in pairs(CHILDREN) do
  5147.                             if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Parent ~= Effects then
  5148.                                 local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  5149.                                 if HUM then
  5150.                                     local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  5151.                                     if TORSO then
  5152.                                         if (TORSO.Position - FIELD.Position).Magnitude <= FIELD.Size.X/2 then
  5153.                                             HUM.Health = HUM.Health - 0.1
  5154.                                             TORSO.Velocity = VT(0,5,0)
  5155.                                             HUM.PlatformStand = true
  5156.                                             if TORSO.RotVelocity.Magnitude < 15 then
  5157.                                                 TORSO.RotVelocity = VT(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45))
  5158.                                             end
  5159.                                         end
  5160.                                     end
  5161.                                 end
  5162.                             end
  5163.                         end
  5164.                         FIELD.Size = FIELD.Size + VT(3,3,3)
  5165.                         FIELD.Transparency = FIELD.Transparency + 0.8/75
  5166.                     end
  5167.                     for i = 1, 500 do
  5168.                         Swait()
  5169.                         LOOP.Parent = FIELD
  5170.                         local CHILDREN = workspace:GetDescendants()
  5171.                         for index, CHILD in pairs(CHILDREN) do
  5172.                             if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Parent ~= Effects then
  5173.                                 local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  5174.                                 if HUM then
  5175.                                     local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  5176.                                     if TORSO then
  5177.                                         if (TORSO.Position - FIELD.Position).Magnitude <= FIELD.Size.X/2 then
  5178.                                             TORSO.Velocity = VT(0,5,0)
  5179.                                             HUM.Health = HUM.Health - 0.1
  5180.                                             HUM.PlatformStand = true
  5181.                                             if TORSO.RotVelocity.Magnitude < 15 then
  5182.                                                 TORSO.RotVelocity = VT(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45))
  5183.                                             end
  5184.                                         end
  5185.                                     end
  5186.                                 end
  5187.                             end
  5188.                         end
  5189.                     end
  5190.                     for i = 1, 25 do
  5191.                         Swait()
  5192.                         LOOP.Volume = LOOP.Volume + 10/25
  5193.                         LOOP.Parent = FIELD
  5194.                         local CHILDREN = workspace:GetDescendants()
  5195.                         for index, CHILD in pairs(CHILDREN) do
  5196.                             if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Parent ~= Effects then
  5197.                                 local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  5198.                                 if HUM then
  5199.                                     local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  5200.                                     if TORSO then
  5201.                                         if (TORSO.Position - FIELD.Position).Magnitude <= FIELD.Size.X/1.8 then
  5202.                                             TORSO.Velocity = VT(0,5,0)
  5203.                                             HUM.Health = HUM.Health - 0.1
  5204.                                             HUM.PlatformStand = false
  5205.                                             if TORSO.RotVelocity.Magnitude < 15 then
  5206.                                                 TORSO.RotVelocity = VT(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45))
  5207.                                             end
  5208.                                         end
  5209.                                     end
  5210.                                 end
  5211.                             end
  5212.                         end
  5213.                         FIELD.Size = FIELD.Size - VT(3,3,3)
  5214.                         FIELD.Transparency = FIELD.Transparency + 0.2/25
  5215.                     end
  5216.                     FIELD:remove()
  5217.                 end))
  5218.             elseif RANDOMEFFECT == 3 then
  5219.                 for i = 1, 10 do
  5220.                     wait(0.15)
  5221.                     WACKYEFFECT({Time = 15, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(3,8,3), Transparency = 0, Transparency2 = 1, CFrame = BASE.CFrame*CF(0,0.3,0), MoveToPos = BASE.Position+VT(0,6,0), RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = 90655239, SoundPitch = 0.8, SoundVolume = 6})
  5222.                     coroutine.resume(coroutine.create(function()
  5223.                         local MINION = CLONE:Clone()
  5224.                         MINION.Parent = Effects
  5225.                         MINION.Name = "Shadow"
  5226.                         MINION.HumanoidRootPart.CFrame = BASE.CFrame*CF(0,5,0) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0))
  5227.                         MINION.HumanoidRootPart.Velocity = CF(MINION.HumanoidRootPart.Position,MINION.HumanoidRootPart.CFrame*CF(0,8,-15).p).lookVector*MRANDOM(55,100)
  5228.                         for _, c in pairs(MINION:GetChildren()) do
  5229.                             if c.ClassName == "Part" then
  5230.                                 c.Material = "Neon"
  5231.                                 c.Color = C3(0,0,0)
  5232.                                 c.Transparency = 0.25
  5233.                                 if c.Name == "Head" then
  5234.                                     c:ClearAllChildren()
  5235.                                     local MSH = IT("BlockMesh",c)
  5236.                                     MSH.Scale = VT(0.5,1,1)
  5237.                                 end
  5238.                             end
  5239.                         end
  5240.                         local TORSO = MINION.Torso
  5241.                         local HUMAN = MINION.Humanoid
  5242.                         HUMAN.WalkSpeed = 100
  5243.                         HUMAN.MaxHealth = math.huge
  5244.                         HUMAN.Health = math.huge
  5245.                         HUMAN.DisplayDistanceType = "None"
  5246.                                                 HUMAN.Died:connect(function()
  5247.                             MINION:remove()
  5248.                             --CreateSound(SHOUTS[MRANDOM(1,3)], TORSO, 3, 0.5, false)
  5249.                         end)
  5250.                         wait(1)
  5251.                         local findNearestTorso = function(POS)
  5252.                             local list = game.Workspace:GetDescendants()
  5253.                             local torso = nil
  5254.                             local dist = 9999
  5255.                             local temp = nil
  5256.                             local human = nil
  5257.                             local temp2 = nil
  5258.                             for x = 1, #list do
  5259.                                 temp2 = list[x]
  5260.                                 if (temp2.className == "Model") and (temp2 ~= Character) and (temp2.Parent ~= Effects) then
  5261.                                     temp = temp2:findFirstChild("Torso") or temp2:findFirstChild("UpperTorso")
  5262.                                     human = temp2:findFirstChildOfClass("Humanoid")
  5263.                                     if (temp ~= nil) and (human ~= nil) and (human.Health > 0) then
  5264.                                         if (temp.Position - POS).magnitude < dist then
  5265.                                             torso = temp
  5266.                                             dist = (temp.Position - POS).magnitude
  5267.                                         end
  5268.                                     end
  5269.                                 end
  5270.                             end
  5271.                             return torso, dist
  5272.                         end
  5273.                         for i = 1, 40 do
  5274.                             if HUMAN.Health == 0 then
  5275.                                 break
  5276.                             end
  5277.                             wait(0.3)
  5278.                             local target,dist= findNearestTorso(TORSO.Position)
  5279.                             if target then
  5280.                                 HUMAN:MoveTo(target.Position)
  5281.                                 if dist < 999 then
  5282.                                     CreateSound(348663022, TORSO, 10, 1, true)
  5283.                                     wait(0.5)
  5284.                                     --local ANIM = HUMAN:LoadAnimation(ATANIM)
  5285.                                     --ANIM:Play()
  5286.                                     --CreateSound(SHOUTS[MRANDOM(1,3)], TORSO, 1, 1, false)
  5287.                                     ApplyAoE(TORSO.Position,10,0,0,85,false)
  5288.                                     WACKYEFFECT({Time = 15, EffectType = "Sphere", Size = VT(5,5,5), Size2 = VT(25,25,25), Transparency = 0, Transparency2 = 1, CFrame = TORSO.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SKILLTEXTCOLOR, SoundID = 201858087, SoundPitch = 0.8, SoundVolume = 10})
  5289.                                     for i = 1, 5 do
  5290.                                         WACKYEFFECT({Time = 75, EffectType = "Wave", Size = VT(5,0,5)*SIZE, Size2 = VT(15,1,15), Transparency = 0.5, Transparency2 = 1, CFrame = TORSO.CFrame * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = MRANDOM(-15,15)/7.5, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  5291.                                     end
  5292.                                     break
  5293.                                 end
  5294.                             end
  5295.                         end
  5296.                         MINION:remove()
  5297.                     end))
  5298.                 end
  5299.             elseif RANDOMEFFECT == 4 then
  5300.                 local FIELD = CreatePart(3, Effects, "Neon", 0, 0, "Alder", "Field", VT(0.3,0.3,0.3))
  5301.                 FIELD.Color = C3(0,0,0)
  5302.                 FIELD.CFrame = BASE.CFrame
  5303.                 MakeForm(FIELD,"Ball")
  5304.                 FIELD.CanCollide = true
  5305.                 for i = 1, 50 do
  5306.                     Swait()
  5307.                     FIELD.Size = FIELD.Size + VT(0.01,0.01,0.01)
  5308.                     FIELD.CFrame = FIELD.CFrame * CF(0,0.75-(i/45),0)
  5309.                 end
  5310.                 wait(0.2)
  5311.                 local LOOP = CreateSound(487214658, FIELD, 0, 1, true)
  5312.                 coroutine.resume(coroutine.create(function()
  5313.                     local E = 0
  5314.                     for i = 1, 75 do
  5315.                         E = E + 1
  5316.                         Swait()
  5317.                         if E >= 35 then
  5318.                             E = 0
  5319.                             WACKYEFFECT({Time = 25, EffectType = "Sphere", Size = FIELD.Size*30, Size2 = FIELD.Size, Transparency = 0.8, Transparency2 = 1, CFrame = FIELD.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BASE.Color, SoundID = nil, SoundPitch = 1, SoundVolume = 6})
  5320.                         end
  5321.                         LOOP.Volume = LOOP.Volume + 10/75
  5322.                         LOOP.Parent = FIELD
  5323.                         local CHILDREN = workspace:GetDescendants()
  5324.                         for index, CHILD in pairs(CHILDREN) do
  5325.                             if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Parent ~= Effects then
  5326.                                 local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  5327.                                 if HUM then
  5328.                                     local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  5329.                                     if TORSO then
  5330.                                         if (TORSO.Position - FIELD.Position).Magnitude <= FIELD.Size.X*30 then
  5331.                                             for _, c in pairs(CHILD:GetChildren()) do
  5332.                                                 if c:IsA("BasePart") then
  5333.                                                     local bv = Instance.new("BodyVelocity")
  5334.                                                     bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  5335.                                                     bv.velocity = CF(FIELD.Position,c.Position).lookVector*-50
  5336.                                                     bv.Parent = c
  5337.                                                     Debris:AddItem(bv,0.05)
  5338.                                                 end
  5339.                                             end
  5340.                                             HUM.Health = HUM.Health - 0.3
  5341.                                         end
  5342.                                     end
  5343.                                 end
  5344.                             end
  5345.                         end
  5346.                         FIELD.Size = FIELD.Size + VT(0.3,0.3,0.3)/5
  5347.                     end
  5348.                     for i = 1, 180 do
  5349.                         E = E + 1
  5350.                         Swait()
  5351.                         if E >= 35 then
  5352.                             E = 0
  5353.                             WACKYEFFECT({Time = 25, EffectType = "Sphere", Size = FIELD.Size*30, Size2 = FIELD.Size, Transparency = 0.8, Transparency2 = 1, CFrame = FIELD.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BASE.Color, SoundID = nil, SoundPitch = 1, SoundVolume = 6})
  5354.                         end
  5355.                         LOOP.Parent = FIELD
  5356.                         local CHILDREN = workspace:GetDescendants()
  5357.                         for index, CHILD in pairs(CHILDREN) do
  5358.                             if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Parent ~= Effects then
  5359.                                 local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  5360.                                 if HUM then
  5361.                                     local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  5362.                                     if TORSO then
  5363.                                         if (TORSO.Position - FIELD.Position).Magnitude <= FIELD.Size.X*30 then
  5364.                                             for _, c in pairs(CHILD:GetChildren()) do
  5365.                                                 if c:IsA("BasePart") then
  5366.                                                     local bv = Instance.new("BodyVelocity")
  5367.                                                     bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
  5368.                                                     bv.velocity = CF(FIELD.Position,c.Position).lookVector*-50
  5369.                                                     bv.Parent = c
  5370.                                                     Debris:AddItem(bv,0.05)
  5371.                                                 end
  5372.                                             end
  5373.                                             HUM.Health = HUM.Health - 0.3
  5374.                                         end
  5375.                                     end
  5376.                                 end
  5377.                             end
  5378.                         end
  5379.                     end
  5380.                     ApplyAoE(FIELD.Position,40,15,20,375,false)
  5381.                     WACKYEFFECT({Time = 45, EffectType = "Sphere", Size = FIELD.Size, Size2 = VT(35,35,35), Transparency = 0, Transparency2 = 1, CFrame = FIELD.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BASE.Color, SoundID = 231917744, SoundPitch = 1, SoundVolume = 6})
  5382.                     for i = 1, 5 do
  5383.                         WACKYEFFECT({Time = 35, EffectType = "Wave", Size = VT(5,0,5)*SIZE, Size2 = VT(35,3,35), Transparency = 0.5, Transparency2 = 1, CFrame = FIELD.CFrame * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 0.5, SoundVolume = 6})
  5384.                     end
  5385.                     FIELD:remove()
  5386.                 end))
  5387.             elseif RANDOMEFFECT == 5 then
  5388.             end
  5389.             wait(0.5)
  5390.             for i = 1, 25 do
  5391.                 Swait()
  5392.                 PANDORASBOX:SetPrimaryPartCFrame(BASE.CFrame * CF(0,-0.3,0))
  5393.             end
  5394.             PANDORASBOX:remove()
  5395.             RINGSPIN = false
  5396.         end))
  5397.         ATTACK = false
  5398.         Rooted = false
  5399.     end
  5400. end
  5401.  
  5402. function Taunt()
  5403.     ATTACK = true
  5404.     local LAUGH = nil
  5405.     coroutine.resume(coroutine.create(function()
  5406.         repeat
  5407.             Swait()
  5408.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24)*SIZE, 0 + 0.04 * SIN(SINE / 12)*SIZE, 0 + 0.05*SIZE * COS(SINE / 12)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
  5409.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(5), RAD(0), RAD(-45)), 1 / Animation_Speed)
  5410.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25*SIZE, 0.15*SIZE, -0.5*SIZE) * ANGLES(RAD(170), RAD(-25), RAD(-15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  5411.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(25 - 2.5 * SIN(SINE / 12)), RAD(55 - 2.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  5412.             RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE + 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  5413.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(-75), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  5414.         until LAUGH ~= nil
  5415.         repeat
  5416.             Swait()
  5417.             LAUGH.Parent = Head
  5418.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24)*SIZE, 0 + 0.04 * SIN(SINE / 12)*SIZE, 0+(0.1*LAUGH.PlaybackLoudness/75) + 0.05*SIZE * COS(SINE / 12)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
  5419.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.1*SIZE+(0.1*LAUGH.PlaybackLoudness/75)) - 1)) * ANGLES(RAD(5), RAD(0), RAD(-45)), 1 / Animation_Speed)
  5420.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25*SIZE, 0.15*SIZE+(0.1*LAUGH.PlaybackLoudness/75), -0.5*SIZE) * ANGLES(RAD(170), RAD(-25), RAD(-15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  5421.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25*SIZE, 0.5*SIZE+(0.1*LAUGH.PlaybackLoudness/75), 0.5*SIZE) * ANGLES(RAD(-35), RAD(25 - 2.5 * SIN(SINE / 12)), RAD(55 - 2.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  5422.             RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE-(0.1*LAUGH.PlaybackLoudness/75) + 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  5423.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE-(0.1*LAUGH.PlaybackLoudness/75) - 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(-75), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  5424.         until LAUGH.Playing == false
  5425.     ATTACK = false
  5426.     end))
  5427.     wait(0.1)
  5428.     sick:Pause()
  5429.     LAUGH = CreateSound(333446256, Head, 10, 1, false)
  5430.     wait(1.5)
  5431.     sick:Resume()
  5432. end
  5433.  
  5434. function Drag()
  5435.     local penta = CreatePentagram(25,true,0.3,100,CF(Mouse.Hit.p),0)
  5436.     CreateSound("971126018", penta, 2, 1, false)
  5437.     dragnearest(penta.Position,15)
  5438. end
  5439.  
  5440. function Prison_Key()
  5441.     if Mouse.Target ~= nil then
  5442.         if Mouse.Target.Parent ~= Character and Mouse.Target.Parent.Parent ~= Character and Mouse.Target.Parent:FindFirstChildOfClass("Humanoid") ~= nil then
  5443.             local HUM = Mouse.Target.Parent:FindFirstChildOfClass("Humanoid")
  5444.             local TORSO = HUM.Parent:FindFirstChild("Torso") or HUM.Parent:FindFirstChild("UpperTorso")
  5445.             local GYRO = IT("BodyGyro",RootPart)
  5446.             GYRO.D = 750
  5447.             GYRO.P = 20000
  5448.             GYRO.MaxTorque = VT(0,40000000,0)
  5449.             local grav = Instance.new("BodyPosition",TORSO)
  5450.             grav.D = 15
  5451.             grav.P = 20000
  5452.             grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
  5453.             grav.position = TORSO.Position
  5454.             local GYRO2 = IT("BodyGyro",TORSO)
  5455.             GYRO2.D = 750
  5456.             GYRO2.P = 20000
  5457.             GYRO2.MaxTorque = VT(0,40000000,0)
  5458.             GYRO2.cframe = CF(TORSO.Position,RootPart.Position)
  5459.             grav.Name = "Jail"
  5460.             local LOCKPARTS = {}
  5461.             ATTACK = true
  5462.             Rooted = false
  5463.             local LOCK = IT("Model",Effects)
  5464.             LOCK.Name = "Lock"
  5465.             local LOCK2 = IT("Model",LOCK)
  5466.             LOCK2.Name = "Metal"
  5467.             --CREATE LOCK--
  5468.                 local BASE = CreatePart(3, LOCK, "Glass", 0, 0, "Gold", "Keylock", VT(3, 2.5, 1))
  5469.                 LOCK.PrimaryPart = BASE
  5470.                 BASE.CFrame = CF(TORSO.Position,RootPart.Position)*CF(0,0,-4)
  5471.                 local PRT = CreatePart(3, LOCK, "Glass", 0, 0, "Gold", "Keylock", VT(3, 1, 3))
  5472.                 PRT.CFrame = BASE.CFrame*CF(0,-1.25,0)*ANGLES(RAD(90),RAD(0),RAD(0))
  5473.                 MakeForm(PRT,"Cyl")
  5474.                 local PRT = CreatePart(3, LOCK, "Glass", 0, 0, "White", "Hole", VT(1, 1, 1))
  5475.                 PRT.Color = C3(0,0,0)
  5476.                 PRT.CFrame = BASE.CFrame*CF(0,0.3,-0.01)*ANGLES(RAD(90),RAD(0),RAD(0))
  5477.                 MakeForm(PRT,"Cyl")
  5478.                 local PRT = CreatePart(3, LOCK, "Glass", 0, 0, "White", "Hole", VT(0.5, 1, 1))
  5479.                 PRT.Color = C3(0,0,0)
  5480.                 PRT.CFrame = BASE.CFrame*CF(0,-0.2,-0.01)
  5481.                 for i = 1, 45 do
  5482.                     local PRT = CreatePart(3, LOCK2, "Glass", 0, 0, "Grey", "Keylock", VT(0.5, 0.5, 0.5))
  5483.                     PRT.CFrame = BASE.CFrame*CF(0,2,0)*ANGLES(RAD(0),RAD(0),RAD(-90+(360/90*i)))*CF(0,1,0)
  5484.                 end
  5485.                 local PRT = CreatePart(3, LOCK2, "Glass", 0, 0, "Grey", "Keylock", VT(0.5, 0.5, 0.5))
  5486.                 PRT.CFrame = BASE.CFrame*CF(0,1.5,0)*ANGLES(RAD(0),RAD(0),RAD(90))*CF(0,1,0)
  5487.                 LOCK2.PrimaryPart = PRT
  5488.             ---------------
  5489.             local CHILDREN = LOCK:GetDescendants()
  5490.             for index, CHILD in pairs(CHILDREN) do
  5491.                 if CHILD:IsA("BasePart") then
  5492.                     CHILD.Transparency = 1
  5493.                 end
  5494.             end
  5495.             for i = 1, 75 do
  5496.                 LOCK:SetPrimaryPartCFrame(CF(TORSO.Position,RootPart.Position)*CF(0,0,-4))
  5497.                 Swait()
  5498.                 GYRO2.cframe = CF(TORSO.Position,RootPart.Position)
  5499.                 GYRO.cframe = CF(RootPart.Position,TORSO.Position)
  5500.                 local CHILDREN = LOCK:GetDescendants()
  5501.                 for index, CHILD in pairs(CHILDREN) do
  5502.                     if CHILD:IsA("BasePart") then
  5503.                         CHILD.Transparency = CHILD.Transparency - 1/75
  5504.                     end
  5505.                 end
  5506.             end
  5507.             HUM.DisplayDistanceType = "None"
  5508.             local KEY = IT("Model",Effects)
  5509.             KEY.Name = "Key"
  5510.             --CREATE KEY--
  5511.                 local KBASE = CreatePart(3, KEY, "Neon", 0, 0, "Really red", "KeyBase", VT(0.1, 1, 0.1),false)
  5512.                 KEY.PrimaryPart = KBASE
  5513.                 KBASE.CFrame = RightArm.CFrame*CF(0,-2.1,0)*ANGLES(RAD(0),RAD(90),RAD(0))
  5514.                 local WLD = weldBetween(RightArm,KBASE)
  5515.                 for i = 1, 45 do
  5516.                     local PRT = CreatePart(3, KEY, "Neon", 0, 0, "Really red", "Key", VT(0.1, 0.1, 0.1),false)
  5517.                     PRT.CFrame = KBASE.CFrame*CF(0,0.8,0)*ANGLES(RAD(0),RAD(0),RAD((360/45*i)))*CF(0,0.25,0)
  5518.                     weldBetween(KBASE,PRT)
  5519.                 end
  5520.                 local PRT = CreatePart(3, KEY, "Neon", 0, 0, "Really red", "Key", VT(0.3, 0.1, 0.1),false)
  5521.                 PRT.CFrame = KBASE.CFrame*CF(-0.15,-0.45,0)
  5522.                 weldBetween(KBASE,PRT)
  5523.                 local PRT = CreatePart(3, KEY, "Neon", 0, 0, "Really red", "Key", VT(0.3, 0.1, 0.1),false)
  5524.                 PRT.CFrame = KBASE.CFrame*CF(-0.15,-0.25,0)
  5525.                 weldBetween(KBASE,PRT)
  5526.             --------------
  5527.             Rooted = true
  5528.             Pose("Prepare key",1.5,1.2,false,GYRO,TORSO)
  5529.             coroutine.resume(coroutine.create(function()
  5530.                 for i = 1, 10 do
  5531.                     Swait()
  5532.                     GYRO2.cframe = CF(TORSO.Position,RootPart.Position)
  5533.                     GYRO.cframe = CF(RootPart.Position,TORSO.Position)
  5534.                 end
  5535.                 CreateSound(1149318312,BASE,5,1,false)
  5536.                 CreateSound(160772554,BASE,3,1,false)
  5537.                 LOCK2:SetPrimaryPartCFrame(BASE.CFrame*CF(0,0.8,0)*ANGLES(RAD(0),RAD(0),RAD(90))*CF(0,1,0))
  5538.                 for i = 1, 4 do
  5539.                     WACKYEFFECT({Time = 35, EffectType = "Crystal", Size = VT(1,1,1), Size2 = VT(0,15,0), Transparency = 0, Transparency2 = 1, CFrame = BASE.CFrame*CF(1,1.45,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"Really red".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  5540.                 end
  5541.                 WACKYEFFECT({Time = 35, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(1,1,1)*25, Transparency = 0, Transparency2 = 1, CFrame = TORSO.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = BRICKC"Really red".Color, SoundID = nil, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 5})
  5542.                 wait(1)
  5543.                 TORSO.Parent.Parent = LOCK
  5544.                 for i = 1, 75 do
  5545.                     Swait()
  5546.                     local CHILDREN = KEY:GetDescendants()
  5547.                     for index, CHILD in pairs(CHILDREN) do
  5548.                         if CHILD:IsA("BasePart") then
  5549.                             CHILD.Transparency = i/25
  5550.                         end
  5551.                     end
  5552.                     local CHILDREN = LOCK:GetDescendants()
  5553.                     for index, CHILD in pairs(CHILDREN) do
  5554.                         if CHILD:IsA("BasePart") and CHILD.Name ~= "HumanoidRootPart" then
  5555.                             CHILD.Transparency = CHILD.Transparency + 1/75
  5556.                         elseif CHILD.ClassName == "Decal" then
  5557.                             CHILD.Transparency = CHILD.Transparency + 1/75
  5558.                         end
  5559.                     end
  5560.                 end
  5561.                 TORSO.Parent:ClearAllChildren()
  5562.                 KEY:remove()
  5563.                 LOCK:remove()
  5564.             end))
  5565.             Pose("Turn key",0.8,1.2,false,GYRO,TORSO)
  5566.             GYRO:remove()
  5567.             ATTACK = false
  5568.             Rooted = false
  5569.         end
  5570.     end
  5571. end
  5572.  
  5573. function Warp()
  5574.     ATTACK = true
  5575.     local originalcframe = RootPart.CFrame
  5576.     RootPart.CFrame = CF(VT(Mouse.Hit.p.X,Mouse.Hit.p.Y+(RootPart.Size.Y+1.5),Mouse.Hit.Z),originalcframe.p)
  5577.     if OTHERWORLD == false then
  5578.         local penta = CreatePentagram(15,false,0,100,CF(RootPart.Position),-3.2)
  5579.         CreateSound("971126018", penta, 2, 1)
  5580.     end
  5581.     ATTACK = false
  5582. end
  5583.  
  5584. function TimeStop ()
  5585.     local HITFLOOR,HITPOS = Raycast(RootPart.CFrame*CF(0,0,-6.5).p, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4*SIZE, Character)
  5586.     CHOICE = 6
  5587.     CreateSound(1193182658, Character, 5, 1, false)
  5588.      back = CreateSound(1841228386, Character, 9999, 1, false)
  5589.     local killsky = Instance.new('Sky', game:GetService'Lighting')
  5590. killsky.SkyboxBk = "rbxassetid://1013852"
  5591. killsky.SkyboxDn = "rbxassetid://1013853"
  5592. killsky.SkyboxFt = "rbxassetid://1013850"
  5593. killsky.SkyboxLf = "rbxassetid://1013851"
  5594. killsky.SkyboxRt = "rbxassetid://1013849"
  5595. killsky.SkyboxUp = "rbxassetid://1013854"
  5596. killsky.StarCount = 0
  5597. killsky.SunAngularSize = 0
  5598. killsky.MoonAngularSize = 0
  5599. killsky.MoonTextureId = ""
  5600. killsky.CelestialBodiesShown = false
  5601. game.Lighting.FogColor = Color3.new(1,1,0)
  5602. game.Lighting.FogEnd = 1400
  5603.     if HITFLOOR ~= nil then
  5604.         ATTACK = false
  5605.         Rooted = false
  5606.         local RINGSPIN = true
  5607.         local CONSTRUCTING = true
  5608.         local RING = CreatePart(3, Effects, "Neon", 0, 1, "New Yeller", "Ring", VT(0,0,0))
  5609.         RING.Color = C3(0,0,0)
  5610.         MakeForm(RING,"Cyl")
  5611.         RING.CFrame = CF(HITPOS)
  5612.         coroutine.resume(coroutine.create(function()
  5613.             repeat
  5614.                 Swait()
  5615.                 RING.CFrame = RING.CFrame * ANGLES(RAD(0), RAD(5), RAD(0))
  5616.             until CONSTRUCTING == false
  5617.             repeat
  5618.                 Swait()
  5619.                 RING.CFrame = RING.CFrame * ANGLES(RAD(0), RAD(5), RAD(0))
  5620.             until RINGSPIN == false
  5621.             for i = 1, 25 do
  5622.                 Swait()
  5623.                 RING.CFrame = RING.CFrame * ANGLES(RAD(0), RAD(5), RAD(0))
  5624.                 RING.Size = RING.Size - VT(0.15,0,0.15)
  5625.                 --DECAL.Transparency = DECAL.Transparency + 1/25
  5626.                 RING.Transparency = RING.Transparency + 1/25
  5627.             end
  5628.             RING:remove()
  5629.         end))
  5630.         for i = 1, 15 do
  5631.             Swait()
  5632.             RING.Size = RING.Size + VT(0,0,0)
  5633.             RING.Transparency = RING.Transparency - 1/15
  5634.         end
  5635.         end
  5636.     local RANDOMEFFECT = MRANDOM(1)
  5637.     local BASE = CreatePart(3, Character, "Neon", 0, 0, "New Yeller", "Black", VT(2,1.8,2))
  5638.             BASE.Color = C3(0,0,0)
  5639.             BASE.Transparency = 1
  5640.             BASE.CFrame = CF(HITPOS+VT(0,-8,0),VT(RootPart.Position.X,HITPOS.Y-8,RootPart.Position.Z))
  5641.     if RANDOMEFFECT == 1 then
  5642.                 local FIELD = CreatePart(3, Effects, "Neon", 0, 0, "New Yeller", "Field", VT(0.3,0.3,0.3))
  5643.                 FIELD.CFrame = BASE.CFrame
  5644.                 MakeForm(FIELD,"Ball")
  5645.                 for i = 1, 50 do
  5646.                     Swait()
  5647.                     FIELD.Size = VT(0,0,0)
  5648.                     FIELD.CFrame = FIELD.CFrame * CF(0,0.75-(i/45),0)
  5649.                 end
  5650.                 end
  5651.                 wait(0.2)
  5652.                 local FIELD = CreatePart(3, Effects, "Neon", 0, 0, "New Yeller", "Field", VT(0.3,0.3,0.3))
  5653.                 FIELD.CFrame = BASE.CFrame
  5654.                 local LOOP = CreateSound(1393698948, Character, 0, 1, true)
  5655.                 coroutine.resume(coroutine.create(function()
  5656.                     for i = 1, 75 do
  5657.                         Swait()
  5658.                         LOOP.Volume = LOOP.Volume + 10/75
  5659.                         LOOP.Parent = FIELD
  5660.                         local CHILDREN = workspace:GetDescendants()
  5661.                         for index, CHILD in pairs(CHILDREN) do
  5662.                             if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Parent ~= Effects then
  5663.                                 local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  5664.                                 if HUM then
  5665.                                     local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  5666.                                     if TORSO then
  5667.                                         if (TORSO.Position - FIELD.Position).Magnitude <= FIELD.Size.X/2 then
  5668.                                             HUM.Health = HUM.Health - 0
  5669.                                             TORSO.Velocity = VT(0,5,0)
  5670.                                             HUM.PlatformStand = true
  5671.                                             if TORSO.RotVelocity.Magnitude < 15 then
  5672.                                                 TORSO.Anchored = true
  5673.                                             end
  5674.                                         end
  5675.                                     end
  5676.                                 end
  5677.                             end
  5678.                         end
  5679.                         FIELD.Size = FIELD.Size + VT(90,90,90)
  5680.                         FIELD.Transparency = FIELD.Transparency + 0.8/75
  5681.                     end
  5682.                 for i = 1, 500 do
  5683.                         Swait()
  5684.                         LOOP.Parent = FIELD
  5685.                         local CHILDREN = workspace:GetDescendants()
  5686.                         for index, CHILD in pairs(CHILDREN) do
  5687.                             if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Parent ~= Effects then
  5688.                                 local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  5689.                                 if HUM then
  5690.                                     local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  5691.                                     if TORSO then
  5692.                                         if (TORSO.Position - FIELD.Position).Magnitude <= FIELD.Size.X/2 then
  5693.                                             TORSO.Velocity = VT(0,5,0)
  5694.                                             HUM.Health = HUM.Health - 0
  5695.                                             HUM.PlatformStand = true
  5696.                                             if TORSO.RotVelocity.Magnitude < 15 then
  5697.                                                 TORSO.Anchored = true
  5698.                                             end
  5699.                                         end
  5700.                                     end
  5701.                                 end
  5702.                             end
  5703.                         end
  5704.                     end
  5705.  wait (20)
  5706. back:Remove()
  5707.         CreateSound(1538466750, Character, 99999, 1, false)
  5708.         killsky:Remove()
  5709.         game.Lighting.FogEnd = 90000000
  5710.         wait (5)
  5711.         CHOICE = MRANDOM (1,5)
  5712.                     for i = 1, 25 do
  5713.                         Swait()
  5714.                         LOOP.Volume = LOOP.Volume + 10/25
  5715.                         LOOP.Parent = FIELD
  5716.                         local CHILDREN = workspace:GetDescendants()
  5717.                         for index, CHILD in pairs(CHILDREN) do
  5718.                             if CHILD.ClassName == "Model" and CHILD ~= Character and CHILD.Parent ~= Effects then
  5719.                                 local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  5720.                                 if HUM then
  5721.                                     local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  5722.                                     if TORSO then
  5723.                                         if (TORSO.Position - FIELD.Position).Magnitude <= FIELD.Size.X/1.8 then
  5724.                                             TORSO.Velocity = VT(0,5,0)
  5725.                                             HUM.Health = HUM.Health - 0
  5726.                                             HUM.PlatformStand = false
  5727.                                             if TORSO.RotVelocity.Magnitude < 15 then
  5728.                                                 TORSO.Anchored = false
  5729.                                         end
  5730.                                     end
  5731.                                 end
  5732.                             end
  5733.                         end
  5734.                         FIELD.Size = FIELD.Size - VT(3,3,3)
  5735.                         FIELD.Transparency = FIELD.Transparency + 0.2/25
  5736.                              end
  5737.                         end
  5738.                 end))  
  5739.                 FIELD:Remove()
  5740.            ATTACK = false
  5741.         Rooted = false
  5742. end
  5743.  
  5744. function Corrupted_Explosion()
  5745.     ATTACK = true
  5746.     Rooted = true
  5747.     for i=0, 1, 0.1 / Animation_Speed do
  5748.         Swait()
  5749.         RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, -0.3, 0) * ANGLES(RAD(0), RAD(0), RAD(-75)), 0.6 / Animation_Speed)
  5750.         Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(75)), 0.6 / Animation_Speed)
  5751.         RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(15)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
  5752.         LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 0.1 / Animation_Speed)
  5753.         RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 0.5 / Animation_Speed)
  5754.         LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 0.5 / Animation_Speed)
  5755.     end
  5756.     for i=0, 0.4, 0.1 / Animation_Speed do
  5757.         Swait()
  5758.         RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, -1, -0.3) * ANGLES(RAD(75), RAD(0), RAD(75)), 1 / Animation_Speed)
  5759.         Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-75)), 1/ Animation_Speed)
  5760.         RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  5761.         LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  5762.         RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.01) * ANGLES(RAD(75), RAD(25), RAD(0)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
  5763.         LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
  5764.     end
  5765.     local BEAM = CreatePart(3, Effects, "Neon", 0, 0, "White", "Beam", VT(0,0,0))
  5766.     local BEAM2 = CreatePart(3, Effects, "Neon", 0, 0, "White", "Beam", VT(0,0,0))
  5767.     MakeForm(BEAM,"Ball")
  5768.     MakeForm(BEAM2,"Ball")
  5769.     BEAM.CFrame = CF(RootPart.Position)
  5770.     BEAM2.CFrame = CF(RootPart.Position)
  5771.     CreateSound(EXPLOSIONSOUND,RootPart,10,1,false)
  5772.     for i=1, 100 do
  5773.         Swait()
  5774.         BEAM.Size = BEAM.Size + VT(0.7,8,0.7)
  5775.         BEAM2.Size = BEAM2.Size + VT(2,2,2)
  5776.         ApplyAoE(BEAM2.Position,BEAM2.Size.Z/2,5,5,15,true)
  5777.         BEAM.CFrame = CF(RootPart.Position)
  5778.         BEAM2.CFrame = CF(RootPart.Position)
  5779.         WACKYEFFECT({TIME = 5+i, EffectType = "Swirl", Size = BEAM2.Size*1.15, Size2 = VT(0,BEAM.Size.Y,0), Transparency = 0.8, Transparency2 = 1, CFrame = BEAM.CFrame * ANGLES(RAD(0), RAD(i*5), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = i/8, RotationZ = 0, Material = "Neon", Color = SKILLTEXTCOLOR, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  5780.         RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, -1, -0.3) * ANGLES(RAD(75), RAD(0), RAD(75)), 1 / Animation_Speed)
  5781.         Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-75)), 1/ Animation_Speed)
  5782.         RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  5783.         LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  5784.         RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.01) * ANGLES(RAD(75), RAD(25), RAD(0)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
  5785.         LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
  5786.     end
  5787.     WACKYEFFECT({TIME = 75, EffectType = "Sphere", Size = BEAM.Size, Size2 = VT(0,BEAM.Size.Y,0), Transparency = 0, Transparency2 = 0, CFrame = BEAM.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SKILLTEXTCOLOR, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  5788.     WACKYEFFECT({TIME = 75, EffectType = "Sphere", Size = BEAM2.Size, Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 0.6, CFrame = BEAM2.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = SKILLTEXTCOLOR, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  5789.     BEAM2:remove()
  5790.     BEAM:remove()
  5791.     ATTACK = false
  5792.     Rooted = false
  5793. end
  5794.  
  5795. --//=================================\\
  5796. --||      ASSIGN THINGS TO KEYS
  5797. --\\=================================//
  5798.  
  5799. function MouseDown(Mouse)
  5800.     HOLD = true
  5801.     if ATTACK == false then
  5802.     end
  5803. end
  5804.  
  5805. function MouseUp(Mouse)
  5806. HOLD = false
  5807. end
  5808.  
  5809. function KeyDown(Key)
  5810.     KEYHOLD = true
  5811.     if Key == "z" and ATTACK == false then
  5812.         Punch()
  5813.     end
  5814.  
  5815.     if Key == "b" and ATTACK == false then
  5816.         TimeStop()
  5817.     end
  5818.  
  5819.     if Key == "c" and ATTACK == false then
  5820.         Corrupted_Explosion()
  5821.     end
  5822.    
  5823.     if Key == "g" and ATTACK == false then
  5824.         Prison_Key()
  5825.     end
  5826.  
  5827.     if Key == "v" and ATTACK == false then
  5828.         Warp()
  5829.     end
  5830.  
  5831.     if Key == "x" and ATTACK == false then
  5832.         Drag()
  5833.     end
  5834.  
  5835.     if Key == "t" and ATTACK == false then
  5836.         Taunt()
  5837.     end
  5838. end
  5839.  
  5840. function KeyUp(Key)
  5841.     KEYHOLD = false
  5842. end
  5843.  
  5844.     Mouse.Button1Down:connect(function(NEWKEY)
  5845.         MouseDown(NEWKEY)
  5846.     end)
  5847.     Mouse.Button1Up:connect(function(NEWKEY)
  5848.         MouseUp(NEWKEY)
  5849.     end)
  5850.     Mouse.KeyDown:connect(function(NEWKEY)
  5851.         KeyDown(NEWKEY)
  5852.     end)
  5853.     Mouse.KeyUp:connect(function(NEWKEY)
  5854.         KeyUp(NEWKEY)
  5855.     end)
  5856.  
  5857. --//=================================\\
  5858. --\\=================================//
  5859.  
  5860.  
  5861. function unanchor()
  5862.     if UNANCHOR == true then
  5863.         RootPart.Anchored = false
  5864.     end
  5865.     g = Character:GetChildren()
  5866.     for i = 1, #g do
  5867.         if g[i].ClassName == "Part" and g[i] ~= RootPart then
  5868.             g[i].Anchored = false
  5869.         end
  5870.     end
  5871.     g = Weapon:GetChildren()
  5872.     for i = 1, #g do
  5873.         if g[i].ClassName == "Part" then
  5874.             g[i].Anchored = false
  5875.         end
  5876.     end
  5877. end
  5878.  
  5879.  
  5880. --//=================================\\
  5881. --||    WRAP THE WHOLE SCRIPT UP
  5882. --\\=================================//
  5883.  
  5884. Humanoid.Changed:connect(function(Jump)
  5885.     if Jump == "Jump" and (Disable_Jump == true) then
  5886.         Humanoid.Jump = false
  5887.     end
  5888. end)
  5889.  
  5890. while true do
  5891.     Swait()
  5892.            refit()
  5893.     script.Parent = WEAPONGUI
  5894.     for _,v in next, Humanoid:GetPlayingAnimationTracks() do
  5895.         v:Stop();
  5896.     end
  5897.     ANIMATE.Parent = nil
  5898.     SINE = SINE + CHANGE*1.5
  5899.     local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
  5900.     local TORSOVERTICALVELOCITY = RootPart.Velocity.y
  5901.     local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4*SIZE, Character)
  5902.     local WALKSPEEDVALUE = 10 / (Humanoid.WalkSpeed / 16)
  5903.     if ANIM == "Walk" and TORSOVELOCITY > 1 then
  5904.         RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.15 * COS(SINE / (WALKSPEEDVALUE / 2))) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  5905.         Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(2.5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  5906.         RightHip.C1 = Clerp(RightHip.C1, CF(0.5*SIZE, 0.875*SIZE - 0.125 * SIN(SINE / WALKSPEEDVALUE)*SIZE - 0.15 * COS(SINE / WALKSPEEDVALUE*2), 0 +0.5+ 0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(25+80 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  5907.         LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5*SIZE, 0.875*SIZE + 0.125 * SIN(SINE / WALKSPEEDVALUE)*SIZE - 0.15 * COS(SINE / WALKSPEEDVALUE*2), 0 +0.5+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(-25+80 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  5908.     elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
  5909.         RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  5910.         Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  5911.         RightHip.C1 = Clerp(RightHip.C1, CF(0.5*SIZE, 1*SIZE, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  5912.         LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5*SIZE, 1*SIZE, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  5913.     end
  5914.     if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
  5915.         ANIM = "Jump"
  5916.         if ATTACK == false then
  5917.             RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0*SIZE, 0*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  5918.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0*SIZE, 0*SIZE, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 1 / Animation_Speed)
  5919.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5*SIZE, 0.5*SIZE, 0*SIZE) * ANGLES(RAD(-40), RAD(0), RAD(20)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  5920.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5*SIZE, 0.5*SIZE, 0*SIZE) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  5921.             RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE, -0.3*SIZE) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 1 / Animation_Speed)
  5922.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE, -0.3*SIZE) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 1 / Animation_Speed)
  5923.         end
  5924.     elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
  5925.         ANIM = "Fall"
  5926.         if ATTACK == false then
  5927.             RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0*SIZE, 0*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
  5928.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0*SIZE, 0*SIZE, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 1 / Animation_Speed)
  5929.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5*SIZE, 0.5*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(0), RAD(60)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  5930.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5*SIZE, 0.5*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 1 / Animation_Speed)
  5931.             RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 1 / Animation_Speed)
  5932.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 1 / Animation_Speed)
  5933.         end
  5934.     elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
  5935.         ANIM = "Idle"
  5936.         if ATTACK == false then
  5937.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 - 0.04 * SIN(SINE / 24)*SIZE, 0 + 0.04 * SIN(SINE / 12)*SIZE, 0 + 0.05*SIZE * COS(SINE / 12)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0 - 2.5 * SIN(SINE / 24)), RAD(0)), 1 / Animation_Speed)
  5938.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(25 - 4 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
  5939.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(-25 + 2.5 * SIN(SINE / 12)), RAD(-55 + 2.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  5940.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(25 - 2.5 * SIN(SINE / 12)), RAD(55 - 2.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  5941.             RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE + 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-2 - 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  5942.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.06 * SIN(SINE / 24) - 0.05*SIZE * COS(SINE / 12), -0.01*SIZE) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(-75), RAD(0)) * ANGLES(RAD(-2 + 2.5 * SIN(SINE / 24)), RAD(0), RAD(0)), 1 / Animation_Speed)
  5943.         end
  5944.     elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
  5945.         ANIM = "Walk"
  5946.         if ATTACK == false then
  5947.             RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0*SIZE, 0*SIZE, -0.1*SIZE) * ANGLES(RAD(5), RAD(0), RAD(0)), 1 / Animation_Speed)
  5948.             Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1.1*SIZE) - 1)) * ANGLES(RAD(15 - 1 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0)), 1/ Animation_Speed)
  5949.             RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(-25 + 2.5 * SIN(SINE / WALKSPEEDVALUE)), RAD(-55 + 2.5 * SIN(SINE / WALKSPEEDVALUE))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
  5950.             LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(-35), RAD(25 - 2.5 * SIN(SINE / WALKSPEEDVALUE)), RAD(55 - 2.5 * SIN(SINE / WALKSPEEDVALUE))) * LEFTSHOULDERC0, 1 / Animation_Speed)
  5951.             RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE , -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
  5952.             LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed)
  5953.         end
  5954.     end
  5955.     unanchor()
  5956.     Humanoid.MaxHealth = "inf"
  5957.     Humanoid.Health = "inf"
  5958.     if Rooted == false then
  5959.         Disable_Jump = false
  5960.         Humanoid.WalkSpeed = Speed
  5961.     elseif Rooted == true then
  5962.         Disable_Jump = true
  5963.         Humanoid.WalkSpeed = 0
  5964.     end
  5965.     for _, c in pairs(Character:GetChildren()) do
  5966.         if c.ClassName == "Part" and c.Name ~= "Detail" then
  5967.             c.Material = "Fabric"
  5968.             if c:FindFirstChildOfClass("ParticleEmitter") then
  5969.                 c:FindFirstChildOfClass("ParticleEmitter"):remove()
  5970.             end
  5971.             if c ~= Head then
  5972.                 c.Color = C3(0,0,0)
  5973.             else
  5974.                 c.Color = C3(0,0,0)
  5975.             end
  5976.             if c == Head then
  5977.                 if c:FindFirstChild("face") then
  5978.                     c.face:remove()
  5979.                 end
  5980.             end
  5981.         elseif c.ClassName == "CharacterMesh" or c.ClassName == "Accessory" or c.Name == "Body Colors" then
  5982.             c:remove()
  5983.         elseif (c.ClassName == "Shirt" or c.ClassName == "Pants") and c.Name ~= "Cloth" then
  5984.             c:remove()
  5985.         end
  5986.     end
  5987.     sick.SoundId = "rbxassetid://823426534"
  5988.     sick.Looped = true
  5989.     sick.Pitch = 0.2
  5990.     sick.Volume = 5
  5991.     sick.Parent = Torso
  5992.     sick:Resume()
  5993.     --sick.Playing = false
  5994.     Humanoid.Name = "Corrupted Pandora = "..Player.Name
  5995. end
  5996.  
  5997. --//=================================\\
  5998. --\\=================================//
  5999.  
  6000.  
  6001.  
  6002.  
  6003.  
  6004. --//====================================================\\--
  6005. --||                     END OF SCRIPT
  6006. --\\====================================================//--
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement