SHARE
TWEET

Untitled

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