if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end local Player,game,owner = owner,game local RealPlayer = Player do print("FE Compatibility code by Mokiros") local rp = RealPlayer script.Parent = rp.Character --RemoteEvent for communicating local Event = Instance.new("RemoteEvent") Event.Name = "UserInput_Event" --Fake event to make stuff like Mouse.KeyDown work local function fakeEvent() local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end} t.connect = t.Connect return t end --Creating fake input objects with fake variables local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()} local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()} local CAS = {Actions={},BindAction=function(self,name,fun,touch,...) CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil end} --Merged 2 functions into one by checking amount of arguments CAS.UnbindAction = CAS.BindAction --This function will trigger the events that have been :Connect()'ed local function te(self,ev,...) local t = m[ev] if t and t._fakeEvent then for _,f in pairs(t.Functions) do f(...) end end end m.TrigEvent = te UIS.TrigEvent = te Event.OnServerEvent:Connect(function(plr,io) if plr~=rp then return end m.Target = io.Target m.Hit = io.Hit if not io.isMouse then local b = io.UserInputState == Enum.UserInputState.Begin if io.UserInputType == Enum.UserInputType.MouseButton1 then return m:TrigEvent(b and "Button1Down" or "Button1Up") end for _,t in pairs(CAS.Actions) do for _,k in pairs(t.Keys) do if k==io.KeyCode then t.Function(t.Name,io.UserInputState,io) end end end m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower()) UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false) end end) Event.Parent = NLS([==[ local Player = game:GetService("Players").LocalPlayer local Event = script:WaitForChild("UserInput_Event") local Mouse = Player:GetMouse() local UIS = game:GetService("UserInputService") local input = function(io,a) if a then return end --Since InputObject is a client-side instance, we create and pass table instead Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target}) end UIS.InputBegan:Connect(input) UIS.InputEnded:Connect(input) local h,t --Give the server mouse data 30 times every second, but only if the values changed --If player is not moving their mouse, client won't fire events while wait(1/30) do if h~=Mouse.Hit or t~=Mouse.Target then h,t=Mouse.Hit,Mouse.Target Event:FireServer({isMouse=true,Target=t,Hit=h}) end end]==],Player.Character) ----Sandboxed game object that allows the usage of client-side methods and services --Real game object local _rg = game --Metatable for fake service local fsmt = { __index = function(self,k) local s = rawget(self,"_RealService") if s then return s[k] end end, __newindex = function(self,k,v) local s = rawget(self,"_RealService") if s then s[k]=v end end, __call = function(self,...) local s = rawget(self,"_RealService") if s then return s(...) end end } local function FakeService(t,RealService) t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService return setmetatable(t,fsmt) end --Fake game object local g = { GetService = function(self,s) return self[s] end, Players = FakeService({ LocalPlayer = FakeService({GetMouse=function(self)return m end},Player) },"Players"), UserInputService = FakeService(UIS,"UserInputService"), ContextActionService = FakeService(CAS,"ContextActionService"), } rawset(g.Players,"localPlayer",g.Players.LocalPlayer) g.service = g.GetService g.RunService = FakeService({ RenderStepped = _rg:GetService("RunService").Heartbeat, BindToRenderStep = function(self,name,_,fun) end, UnbindFromRenderStep = function(self,name) self._btrs[name]:Disconnect() end, },"RunService") setmetatable(g,{ __index=function(self,s) return _rg:GetService(s) or typeof(_rg[s])=="function" and function(_,...)return _rg[s](_rg,...)end or _rg[s] end, __newindex = fsmt.__newindex, __call = fsmt.__call }) --Changing owner to fake player object to support owner:GetMouse() game,owner = g,g.Players.LocalPlayer end wait(0.2) Player = game:GetService("Players").LocalPlayer PlayerGui = Player.PlayerGui Cam = workspace.CurrentCamera Backpack = Player.Backpack Character = Player.Character Humanoid = Character.Humanoid Mouse = Player:GetMouse() RootPart = Character["HumanoidRootPart"] Torso = Character["Torso"] Head = Character["Head"] RightArm = Character["Right Arm"] LeftArm = Character["Left Arm"] RightLeg = Character["Right Leg"] LeftLeg = Character["Left Leg"] RootJoint = RootPart["RootJoint"] Neck = Torso["Neck"] RightShoulder = Torso["Right Shoulder"] LeftShoulder = Torso["Left Shoulder"] RightHip = Torso["Right Hip"] LeftHip = Torso["Left Hip"] IT = Instance.new CF = CFrame.new VT = Vector3.new RAD = math.rad C3 = Color3.new UD2 = UDim2.new BRICKC = BrickColor.new ANGLES = CFrame.Angles EULER = CFrame.fromEulerAnglesXYZ COS = math.cos ACOS = math.acos SIN = math.sin ASIN = math.asin ABS = math.abs MRANDOM = math.random FLOOR = math.floor function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET) local NEWMESH = IT(MESH) if MESH == "SpecialMesh" then NEWMESH.MeshType = MESHTYPE if MESHID ~= "nil" and MESHID ~= "" then NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID end if TEXTUREID ~= "nil" and TEXTUREID ~= "" then NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID end end NEWMESH.Offset = OFFSET or VT(0, 0, 0) NEWMESH.Scale = SCALE NEWMESH.Parent = PARENT return NEWMESH end function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR) local NEWPART = IT("Part") NEWPART.formFactor = FORMFACTOR NEWPART.Reflectance = REFLECTANCE NEWPART.Transparency = TRANSPARENCY NEWPART.CanCollide = false NEWPART.Locked = true if ANCHOR == true then NEWPART.Anchored = true end NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR)) NEWPART.Name = NAME NEWPART.Size = SIZE NEWPART.Position = Torso.Position NEWPART.Material = MATERIAL NEWPART:BreakJoints() NEWPART.Parent = PARENT return NEWPART end --//=================================\\ --|| CUSTOMIZATION --\\=================================// Class_Name = "FireFist.exe" Weapon_Name = "Add-ons" Custom_Colors = { Custom_Color_1 = BRICKC("Institutional white"); --1st color for the weapon. Custom_Color_2 = BRICKC("Institutional white"); --2nd color for the weapon. Custom_Color_3 = BRICKC("Institutional white"); --Color for the abilities. Custom_Color_4 = BRICKC("Institutional white"); --Color for the secondary bar. Custom_Color_5 = BRICKC("Institutional white"); --Color for the mana bar. Custom_Color_6 = BRICKC("Institutional white"); --Color for the health bar. Custom_Color_7 = BRICKC("Institutional white"); --Color for the stun bar. Custom_Color_8 = BRICKC("Institutional white"); --Background for the mana bar. Custom_Color_9 = BRICKC("Institutional white"); --Background for the secondary mana bar. Custom_Color_10 = BRICKC("Institutional white"); --Background for the stun bar. Custom_Color_11 = BRICKC("Institutional white"); --Background for the health bar. Custom_Color_12 = BRICKC("Institutional white"); --Background for the abilities. } Player_Size = 1 --Size of the player. Animation_Speed = 3 Animation_Speed2 = 0.7 Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60) local Speed = 25 local Effects2 = {} --//=================================\\ --|| END OF CUSTOMIZATION --\\=================================// local function weldBetween(a, b) local weldd = Instance.new("ManualWeld") weldd.Part0 = a weldd.Part1 = b weldd.C0 = CFrame.new() weldd.C1 = b.CFrame:inverse() * a.CFrame weldd.Parent = a return weldd end function createaccessory(attachmentpart,mesh,texture,scale,offset,color) local acs = Instance.new("Part") acs.CanCollide = false acs.Anchored = false acs.Size = Vector3.new(0,0,0) acs.CFrame = attachmentpart.CFrame acs.Parent = Character acs.BrickColor = color local meshs = Instance.new("SpecialMesh") meshs.MeshId = mesh meshs.TextureId = texture meshs.Parent = acs meshs.Scale = scale meshs.Offset = offset weldBetween(attachmentpart,acs) end function createbodypart(TYPE,COLOR,PART,OFFSET,SIZE) if TYPE == "Gem" then local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0)) acs.Anchored = false acs.CanCollide = false acs.CFrame = PART.CFrame local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "9756362", "", SIZE, OFFSET) weldBetween(PART,acs) elseif TYPE == "Skull" then local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0)) acs.Anchored = false acs.CanCollide = false acs.CFrame = PART.CFrame local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "4770583", "", SIZE, OFFSET) weldBetween(PART,acs) elseif TYPE == "Eye" then local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0)) acs.Anchored = false acs.CanCollide = false acs.CFrame = PART.CFrame local acs2 = CreateMesh("SpecialMesh", acs, "Sphere", "", "", SIZE, OFFSET) weldBetween(PART,acs) end end --//=================================\\ --|| USEFUL VALUES --\\=================================// local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) local CO1 = 0 local CO2 = 0 local CO3 = 0 local CO4 = 0 local CHANGEDEFENSE = 0 local CHANGEDAMAGE = 0 local CHANGEMOVEMENT = 0 local ANIM = "Idle" local ATTACK = false local EQUIPPED = false local HOLD = false local COMBO = 1 local LASTPOINT = nil local BLCF = nil local SCFR = nil local STAGGERHITANIM = false local STAGGERANIM = false local STUNANIM = false local CRITCHANCENUMBER = 0 local IDLENUMBER = 0 local DONUMBER = 0 local HANDIDLE = false local Rooted = false local MANA = 1000 local MAXMANA = MANA local SINE = 0 local CHANGE = 2 / Animation_Speed local WALKINGANIM = false local WALK = 0 local DISABLEJUMPING = false local ROBLOXIDLEANIMATION = IT("Animation") ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation" ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571" --ROBLOXIDLEANIMATION.Parent = Humanoid local WEAPONGUI = IT("ScreenGui", PlayerGui) WEAPONGUI.Name = "Weapon GUI" local Weapon = IT("Model") Weapon.Name = Weapon_Name local Effects = IT("Folder", Weapon) Effects.Name = "Effects" local ANIMATOR = Humanoid.Animator local ANIMATE = Character.Animate local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"} local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"} local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"} local HITBLOCKSOUNDS = {"199148933", "199148947"} local UNANCHOR = true local MAGICPARTICLE = "655109389" local SKILLTEXTCOLOR = C3(1,0.3,0) --//=================================\\ --\\=================================// --//=================================\\ --|| SAZERENOS' ARTIFICIAL HEARTBEAT --\\=================================// ArtificialHB = Instance.new("BindableEvent", script) ArtificialHB.Name = "ArtificialHB" script:WaitForChild("ArtificialHB") frame = Frame_Speed tf = 0 allowframeloss = false tossremainder = false lastframe = tick() script.ArtificialHB:Fire() game:GetService("RunService").Heartbeat:connect(function(s, p) tf = tf + s if tf >= frame then if allowframeloss then script.ArtificialHB:Fire() lastframe = tick() else for i = 1, math.floor(tf / frame) do script.ArtificialHB:Fire() end lastframe = tick() end if tossremainder then tf = 0 else tf = tf - frame * math.floor(tf / frame) end end end) --//=================================\\ --\\=================================// --//=================================\\ --|| SOME FUNCTIONS --\\=================================// function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS) return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS) end function PositiveAngle(NUMBER) if NUMBER >= 0 then NUMBER = 0 end return NUMBER end function NegativeAngle(NUMBER) if NUMBER <= 0 then NUMBER = 0 end return NUMBER end function Swait(NUMBER) if NUMBER == 0 or NUMBER == nil then ArtificialHB.Event:wait() else for i = 1, NUMBER do ArtificialHB.Event:wait() end end end function QuaternionFromCFrame(cf) local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() local trace = m00 + m11 + m22 if trace > 0 then local s = math.sqrt(1 + trace) local recip = 0.5 / s return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5 else local i = 0 if m11 > m00 then i = 1 end if m22 > (i == 0 and m00 or m11) then i = 2 end if i == 0 then local s = math.sqrt(m00 - m11 - m22 + 1) local recip = 0.5 / s return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip elseif i == 1 then local s = math.sqrt(m11 - m22 - m00 + 1) local recip = 0.5 / s return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip elseif i == 2 then local s = math.sqrt(m22 - m00 - m11 + 1) local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip end end end function QuaternionToCFrame(px, py, pz, x, y, z, w) local xs, ys, zs = x + x, y + y, z + z local wx, wy, wz = w * xs, w * ys, w * zs local xx = x * xs local xy = x * ys local xz = x * zs local yy = y * ys local yz = y * zs local zz = z * zs 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)) end function part(formfactor,parent,material,reflectance,transparency,brickcolor,name,size) local fp=IT("Part") fp.formFactor=formfactor fp.Parent=parent fp.Reflectance=reflectance fp.Transparency=transparency fp.CanCollide=false fp.Locked=true fp.BrickColor=BrickColor.new(tostring(brickcolor)) fp.Name=name fp.Size=size fp.Position=Character.Torso.Position NoOutlines(fp) fp.Material=material fp:BreakJoints() return fp end function mesh(Mesh,part,meshtype,meshid,offset,scale) local mesh=IT(Mesh) mesh.Parent=part if Mesh=="SpecialMesh" then mesh.MeshType=meshtype mesh.MeshId=meshid end mesh.Offset=offset mesh.Scale=scale return mesh end function QuaternionSlerp(a, b, t) local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4] local startInterp, finishInterp; if cosTheta >= 0.0001 then if (1 - cosTheta) > 0.0001 then local theta = ACOS(cosTheta) local invSinTheta = 1 / SIN(theta) startInterp = SIN((1 - t) * theta) * invSinTheta finishInterp = SIN(t * theta) * invSinTheta else startInterp = 1 - t finishInterp = t end else if (1 + cosTheta) > 0.0001 then local theta = ACOS(-cosTheta) local invSinTheta = 1 / SIN(theta) startInterp = SIN((t - 1) * theta) * invSinTheta finishInterp = SIN(t * theta) * invSinTheta else startInterp = t - 1 finishInterp = t end end 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 end function Clerp(a, b, t) local qa = {QuaternionFromCFrame(a)} local qb = {QuaternionFromCFrame(b)} local ax, ay, az = a.x, a.y, a.z local bx, by, bz = b.x, b.y, b.z local _t = 1 - t return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t)) end function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME) local frame = IT("Frame") frame.BackgroundTransparency = TRANSPARENCY frame.BorderSizePixel = BORDERSIZEPIXEL frame.Position = POSITION frame.Size = SIZE frame.BackgroundColor3 = COLOR frame.BorderColor3 = BORDERCOLOR frame.Name = NAME frame.Parent = PARENT return frame end function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME) local label = IT("TextLabel") label.BackgroundTransparency = 1 label.Size = UD2(1, 0, 1, 0) label.Position = UD2(0, 0, 0, 0) label.TextColor3 = TEXTCOLOR label.TextStrokeTransparency = STROKETRANSPARENCY label.TextTransparency = TRANSPARENCY label.FontSize = TEXTFONTSIZE label.Font = TEXTFONT label.BorderSizePixel = BORDERSIZEPIXEL label.TextScaled = false label.Text = TEXT label.Name = NAME label.Parent = PARENT return label end function NoOutlines(PART) PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10 end function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1) local NEWWELD = IT(TYPE) NEWWELD.Part0 = PART0 NEWWELD.Part1 = PART1 NEWWELD.C0 = C0 NEWWELD.C1 = C1 NEWWELD.Parent = PARENT return NEWWELD end function CreateSound(ID, PARENT, VOLUME, PITCH) local NEWSOUND = nil coroutine.resume(coroutine.create(function() NEWSOUND = IT("Sound", PARENT) NEWSOUND.Volume = VOLUME NEWSOUND.Pitch = PITCH NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID Swait() NEWSOUND:play() game:GetService("Debris"):AddItem(NEWSOUND, 10) end)) return NEWSOUND end function CFrameFromTopBack(at, top, back) local right = top:Cross(back) 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) end function CreateWave(inair,size,doesrotate,rotatedirection,waitt,cframe,color) local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0), true) local mesh = IT("SpecialMesh",wave) mesh.MeshType = "FileMesh" mesh.MeshId = "http://www.roblox.com/asset/?id=20329976" mesh.Scale = VT(size,size,size) mesh.Offset = VT(0,0,-size/8) wave.CFrame = cframe coroutine.resume(coroutine.create(function(PART) for i = 1, waitt do Swait() mesh.Scale = mesh.Scale + VT(size/5,0,size/5) mesh.Offset = VT(0,0,-(mesh.Scale.X/8)) if doesrotate == true then wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0) end wave.Transparency = wave.Transparency + (0.5/waitt) if wave.Transparency > 0.99 then wave:remove() end end end)) end function CreateSwirl(inair,size,doesrotate,rotatedirection,waitt,cframe,color) local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0), true) local mesh = IT("SpecialMesh",wave) mesh.MeshType = "FileMesh" mesh.MeshId = "http://www.roblox.com/asset/?id=1051557" mesh.Scale = VT(size,size,size) wave.CFrame = cframe coroutine.resume(coroutine.create(function(PART) for i = 1, waitt do Swait() mesh.Scale = mesh.Scale + VT(size/5,size/10,size/5) if doesrotate == true then wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0) end wave.Transparency = wave.Transparency + (0.5/waitt) if wave.Transparency > 0.99 then wave:remove() end end end)) end function CreateTornado(inair,size,doesrotate,rotatedirection,waitt,cframe,color) local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0), true) local mesh = IT("SpecialMesh",wave) mesh.MeshType = "FileMesh" mesh.MeshId = "http://www.roblox.com/asset/?id=102638417" mesh.Scale = VT(size,size,size) wave.CFrame = cframe coroutine.resume(coroutine.create(function(PART) for i = 1, waitt do Swait() mesh.Scale = mesh.Scale + VT(size/5,0,size/5) if doesrotate == true then wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0) end wave.Transparency = wave.Transparency + (0.5/waitt) if wave.Transparency > 0.99 then wave:remove() end end end)) end function CreateRing(inair,size,doesrotate,rotatedirection,waitt,cframe,spin1,spin2,color) local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0), true) local mesh = IT("SpecialMesh",wave) mesh.MeshType = "FileMesh" mesh.MeshId = "http://www.roblox.com/asset/?id=3270017" mesh.Scale = VT(size,size,size) mesh.Offset = VT(0,0,0) wave.CFrame = cframe coroutine.resume(coroutine.create(function(PART) for i = 1, waitt do Swait() mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5) if doesrotate == true then wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(spin2, rotatedirection, spin1) end wave.Transparency = wave.Transparency + (0.5/waitt) if wave.Transparency > 0.99 then wave:remove() end end end)) end function MagicSphere(size,waitt,cframe,color) local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(1,1,1), true) local mesh = IT("SpecialMesh",wave) mesh.MeshType = "Sphere" mesh.Scale = VT(size,size,size) mesh.Offset = VT(0,0,0) wave.CFrame = cframe coroutine.resume(coroutine.create(function(PART) for i = 1, waitt do Swait() mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5) wave.Transparency = wave.Transparency + (1/waitt) if wave.Transparency > 0.99 then wave:remove() end end end)) end function MagicSphere2(size,waitt,cframe,color) local wave = CreatePart(3, Effects, "Neon", 0, 1, BRICKC(color), "Effect", VT(1,1,1), true) local mesh = IT("SpecialMesh",wave) mesh.MeshType = "Sphere" mesh.Scale = VT(size,size,size) mesh.Offset = VT(0,0,0) wave.CFrame = cframe coroutine.resume(coroutine.create(function(PART) for i = 1, waitt do Swait() mesh.Scale = mesh.Scale - VT(size/waitt,size/waitt,size/waitt) wave.Transparency = wave.Transparency - (1/waitt) end wave:remove() end)) end function BreakEffect(brickcolor,cframe,x1,y1,z1,material) local prt=part("Custom",workspace,material,0,0,brickcolor,"Effect",VT(0.5,0.5,0.5)) prt.Anchored=true prt.CFrame=cframe*EULER(math.random(-50,50),math.random(-50,50),math.random(-50,50)) local msh=mesh("SpecialMesh",prt,"Sphere","",VT(0,0,0),VT(x1,y1,z1)) coroutine.resume(coroutine.create(function(Part,CF,Numbb,randnumb) CF=Part.CFrame Numbb=0 randnumb=math.random()-math.random() for i=0,1,0.05 do wait() CF=CF*CF(0,1,0) --Part.CFrame=Part.CFrame*euler(0.5,0,0)*cf(0,1,0) Part.CFrame=CF*EULER(Numbb,0,0) Part.Transparency=i Numbb=Numbb+randnumb end Part.Parent=nil end),prt) end function MagicBlock(size,waitt,cframe,color) local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(size,size,size), true) local mesh = IT("BlockMesh",wave) wave.CFrame = cframe coroutine.resume(coroutine.create(function(PART) for i = 1, waitt do Swait() mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5) wave.CFrame = cframe * ANGLES(RAD(math.random(-360,360)),RAD(math.random(-360,360)),RAD(math.random(-360,360))) wave.Transparency = wave.Transparency + (1/waitt) if wave.Transparency > 0.99 then wave:remove() end end end)) end function MagicBlock2(size,waitt,cframe,color) local wave = CreatePart(3, Effects, "Neon", 0, 1, BRICKC(color), "Effect", VT(size,size,size), true) local mesh = IT("BlockMesh",wave) wave.CFrame = cframe coroutine.resume(coroutine.create(function(PART) for i = 1, waitt do Swait() mesh.Scale = mesh.Scale - VT(1/waitt,1/waitt,1/waitt) wave.CFrame = cframe * ANGLES(RAD(math.random(-360,360)),RAD(math.random(-360,360)),RAD(math.random(-360,360))) wave.Transparency = wave.Transparency - (1/waitt) end wave:Destroy() end)) end local EyeSizes={ NumberSequenceKeypoint.new(0,1,0), NumberSequenceKeypoint.new(1,0.2,0) } local EyeTrans={ NumberSequenceKeypoint.new(0,0.8,0), NumberSequenceKeypoint.new(1,1,0) } local PE=Instance.new("ParticleEmitter") PE.LightEmission=0.7 PE.Size=NumberSequence.new(EyeSizes) PE.Transparency=NumberSequence.new(EyeTrans) PE.Lifetime=NumberRange.new(0.35,0.35,0.35) PE.Rotation=NumberRange.new(0,360) PE.Rate=15 PE.Acceleration = Vector3.new(0,75,0) PE.Drag = 5 PE.Enabled = false PE.VelocitySpread = 999 PE.Speed = NumberRange.new(0,0,0) PE.Texture="http://www.roblox.com/asset/?id=1179557490" PE.ZOffset = 0 PE.Name = "Particles" function CreateParticles(art,accel,drag,lifetime,type,isenabledbydefault,locked,size,speed) local particle = nil coroutine.resume(coroutine.create(function(PART) particle = PE:Clone() Swait() particle.Rate = 999 particle.Parent = art particle.Acceleration = accel if type == "Fire" then local EyeSizes={ NumberSequenceKeypoint.new(0,size,size/2), NumberSequenceKeypoint.new(1,size/4,size/8) } particle.Size = NumberSequence.new(EyeSizes) elseif type == "Smoke" then local EyeSizes={ NumberSequenceKeypoint.new(0,0.5,0), NumberSequenceKeypoint.new(1,5,0.5) } particle.Size = NumberSequence.new(EyeSizes) elseif type == "Solid" then local EyeSizes={ NumberSequenceKeypoint.new(0,0.5,0), NumberSequenceKeypoint.new(1,0.5,0) } particle.Size = NumberSequence.new(EyeSizes) end particle.Lifetime=NumberRange.new(lifetime) particle.Drag = drag if locked == true then particle.LockedToPart = true end particle.Speed = NumberRange.new(speed,speed,speed) particle.Texture = "http://www.roblox.com/asset/?id=296874871" particle.Enabled = isenabledbydefault particle.Color = ColorSequence.new(Color3.new(255/255, 75/255, 0)) end)) return particle end --//=================================\\ --\\=================================// --//=================================\\ --|| WEAPON CREATION --\\=================================// if Player_Size ~= 1 then for _, v in pairs (Weapon:GetChildren()) do if v.ClassName == "Motor" or v.ClassName == "Weld" or v.ClassName == "Snap" then local p1 = v.Part1 v.Part1 = nil local cf1, cf2, cf3, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12 = v.C1:components() v.C1 = CF(cf1 * Player_Size, cf2 * Player_Size, cf3 * Player_Size, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12) v.Part1 = p1 elseif v.ClassName == "Part" then for _, b in pairs (v:GetChildren()) do if b.ClassName == "SpecialMesh" or b.ClassName == "BlockMesh" then b.Scale = VT(b.Scale.x * Player_Size, b.Scale.y * Player_Size, b.Scale.z * Player_Size) end end end end end function MakeForm(PART,TYPE) if TYPE == "Cyl" then local MSH = IT("CylinderMesh",PART) elseif TYPE == "Ball" then local MSH = IT("SpecialMesh",PART) MSH.MeshType = "Sphere" elseif TYPE == "Wedge" then local MSH = IT("SpecialMesh",PART) MSH.MeshType = "Wedge" end end function createaddon(position,size) local part = CreatePart(3, Weapon, "Granite", 0, 0, "Maroon", "Gauntlet Part", VT(0.25*Player_Size, size*0.8*Player_Size,size*0.8*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0.45 * Player_Size, position * Player_Size, 0 * Player_Size) * ANGLES(RAD(45), RAD(0), RAD(0)), CF(0, 0, 0)) local part = CreatePart(3, Weapon, "Neon", 0, 0, "CGA brown", "Neon Gauntlet Part", VT(0.25*Player_Size,size*Player_Size,size*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0.425 * Player_Size, position * Player_Size, 0 * Player_Size) * ANGLES(RAD(45), RAD(0), RAD(0)), CF(0, 0, 0)) end local FIST = CreatePart(3, Weapon, "Neon", 0, 0, "CGA brown", "Neon Gauntlet Part", VT(1.025*Player_Size,2.025*Player_Size,1.025*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", FIST, RightArm, FIST, CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) FIST.CanCollide = true local part = CreatePart(3, Weapon, "Granite", 0, 0, "Maroon", "Gauntlet Part", VT(1.05*Player_Size,1.05*Player_Size,1.05*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) local part = CreatePart(3, Weapon, "Granite", 0, 0, "Deep orange", "Gauntlet Part", VT(1.06*Player_Size,0.2*Player_Size,1.06*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) local part = CreatePart(3, Weapon, "Granite", 0, 0, "Maroon", "Gauntlet Part", VT(1.05*Player_Size,0.55*Player_Size,1.05*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, -0.75 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) local part = CreatePart(3, Weapon, "Granite", 0, 0, "Maroon", "Gauntlet Part", VT(1.05*Player_Size,0.25*Player_Size,1.05*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, -0.15 * Player_Size, 0 * Player_Size) * ANGLES(RAD(180), RAD(-90), RAD(0)), CF(0, 0, 0)) MakeForm(part,"Wedge") local part = CreatePart(3, Weapon, "Granite", 0, 0, "Maroon", "Gauntlet Part", VT(1.05*Player_Size,0.25*Player_Size,1.05*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, -0.35 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)), CF(0, 0, 0)) MakeForm(part,"Wedge") local part = CreatePart(3, Weapon, "Granite", 0, 0, "Deep orange", "Gauntlet Part", VT(1.035*Player_Size,0.3*Player_Size,1.035*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) local part = CreatePart(3, Weapon, "Granite", 0, 0, "Deep orange", "Gauntlet Part", VT(1.035*Player_Size,0.3*Player_Size,1.035*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) local part = CreatePart(3, Weapon, "Granite", 0, 0, "Deep orange", "Gauntlet Part", VT(1.1*Player_Size,1.1*Player_Size,1.1*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)), CF(0, 0, 0)) MakeForm(part,"Wedge") local part = CreatePart(3, Weapon, "Granite", 0, 0, "Maroon", "Gauntlet Part", VT(1.15*Player_Size,1.15*Player_Size,1.15*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0.05 * Player_Size, -0.505 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)), CF(0, 0, 0)) MakeForm(part,"Wedge") local part = CreatePart(3, Weapon, "Granite", 0, 0, "Deep orange", "Gauntlet Part", VT(0.2*Player_Size,0.7*Player_Size,0.7*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0.28 * Player_Size, -0.77 * Player_Size, -0.3 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)), CF(0, 0, 0)) local part = CreatePart(3, Weapon, "Granite", 0, 0, "Deep orange", "Gauntlet Part", VT(0.2*Player_Size,0.7*Player_Size,0.7*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0.28 * Player_Size, -0.77 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)), CF(0, 0, 0)) local part = CreatePart(3, Weapon, "Granite", 0, 0, "Deep orange", "Gauntlet Part", VT(0.2*Player_Size,0.7*Player_Size,0.7*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0.28 * Player_Size, -0.77 * Player_Size, 0.3 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)), CF(0, 0, 0)) createaddon(0.4,0.4) createaddon(0.5,0.3) createaddon(0.6,0.2) local part = CreatePart(3, Weapon, "Neon", 0, 0, "CGA brown", "Neon Gauntlet Part", VT(0.3*Player_Size,1.1*Player_Size,0.3*Player_Size),false) local weld = CreateWeldOrSnapOrMotor("Weld", part, RightArm, part, CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) for _, c in pairs(Weapon:GetChildren()) do if c.ClassName == "Part" then c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0) end end Weapon.Parent = Character Humanoid.Died:connect(function() ATTACK = true end) print(Class_Name.." loaded.") local SKILL1FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.23, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame") local SKILL2FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.50, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame") local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Fireball", SKILLTEXTCOLOR, 8, "SciFi", 0, 2, 1, "Text 1") local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Infernal drive", SKILLTEXTCOLOR, 8, "SciFi", 0, 2, 1, "Text 2") local MANABAR = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.365, 0, 0.82, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0),"Mana Bar") local MANACOVER = CreateFrame(MANABAR, 0, 2, UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(0,0,0), C3(0, 0, 0),"Mana Cover") local MANATEXT = CreateLabel(MANABAR, "ENERGY ["..FLOOR(MANA).."]", C3(1, 1, 1), "Size32", "SciFi", 1, 2, 1, "Mana Text") --//=================================\\ --|| DAMAGE FUNCTIONS --\\=================================// function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR) local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT()) STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0)) local BODYGYRO = IT("BodyGyro", STATPART) local BODYPOSITION = IT("BodyPosition", STATPART) BODYPOSITION.P = 2000 BODYPOSITION.D = 100 BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge) if LABELTYPE == "Normal" then BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2)) elseif LABELTYPE == "Debuff" then BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 8, MRANDOM(-2, 2)) elseif LABELTYPE == "Interruption" then BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2,2), 8, MRANDOM(-2, 2)) end game:GetService("Debris"):AddItem(STATPART ,5) local BILLBOARDGUI = Instance.new("BillboardGui", STATPART) BILLBOARDGUI.Adornee = STATPART BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0) BILLBOARDGUI.StudsOffset = VT(-2, 2, 0) BILLBOARDGUI.AlwaysOnTop = false local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI) TEXTLABEL.BackgroundTransparency = 1 TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0) TEXTLABEL.Text = TEXT TEXTLABEL.Font = "SciFi" TEXTLABEL.FontSize="Size42" TEXTLABEL.TextColor3 = COLOR TEXTLABEL.TextStrokeTransparency = 1 TEXTLABEL.TextScaled = true TEXTLABEL.TextWrapped = true coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL) wait(0.2) for i=1, 5 do wait() THEBODYPOSITION.Position = THEPART.Position - VT(0, 0.5 ,0) end wait(1.2) for i=1, 5 do wait() THETEXTLABEL.TextTransparency = THETEXTLABEL.TextTransparency + 0.2 THETEXTLABEL.TextStrokeTransparency = THETEXTLABEL.TextStrokeTransparency + 0.2 THEBODYPOSITION.position = THEPART.Position + VT(0, 0.5, 0) end THEPART.Parent = nil end),STATPART, BODYPOSITION, TEXTLABEL) end --//=================================\\ --|| DAMAGING --\\=================================// function dealdamage(hit,min,max,maxstrength,beserk,critrate,critmultiplier) if hit.Parent:FindFirstChildOfClass("Humanoid") and hit.Parent:FindFirstChild("HitBy"..Player.Name) == nil then local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid") local dmg = math.huge if humanoid.Health > 0 then if beserk == true then humanoid.Health = 0 else CreateSound("260430060", hit, 1.2, MRANDOM(7, 12) / 10) hit.Velocity = CFrame.new(Torso.Position,hit.Position).lookVector*5*maxstrength if math.random(1,100) < critrate+1 then humanoid.Health = humanoid.Health - dmg*critmultiplier StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0)) else humanoid.Health = humanoid.Health - dmg StatLabel("Normal", hit.CFrame * CF(0, 0 + (hit.Size.z - 1), 0), dmg, C3(0, 0, 0)) end local defence = Instance.new("BoolValue",hit.Parent) defence.Name = ("HitBy"..Player.Name) game:GetService("Debris"):AddItem(defence, 0.25) end end end end function AoEDamage(position,radius,min,max,maxstrength,beserk,critrate,critmultiplier,CanBeDodgedByJumping) local dmg = math.huge for i,v in ipairs(workspace:GetChildren()) do if v:FindFirstChild("HitBy"..Player.Name) == nil then local body = v:GetChildren() for part = 1, #body do if(v:FindFirstChild("HitBy"..Player.Name) == nil and (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then if(body[part].Position - position).Magnitude < radius then if v.ClassName == "Model" then if v:FindFirstChild("Humanoid") then if v.Humanoid.Health ~= 0 then if CanBeDodgedByJumping == true then if body[part].Position.Y < position.Y+5 then if math.random(1,100) < critrate+1 then v.Humanoid.Health = v.Humanoid.Health - dmg*critmultiplier StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0)) else v.Humanoid.Health = v.Humanoid.Health - dmg StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), dmg, C3(0, 0, 0)) end local defence = Instance.new("BoolValue",v) defence.Name = ("HitBy"..Player.Name) game:GetService("Debris"):AddItem(defence, 0.25) end else if beserk == true then v.Humanoid.Health = 0 end if math.random(1,100) < critrate+1 then v.Humanoid.Health = v.Humanoid.Health - dmg*critmultiplier StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0)) else v.Humanoid.Health = v.Humanoid.Health - dmg StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), dmg, C3(0, 0, 0)) end local defence = Instance.new("BoolValue",v) defence.Name = ("HitBy"..Player.Name) game:GetService("Debris"):AddItem(defence, 0.25) end end end end body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength end end end if v.ClassName == "Part" then if v.Anchored == false and (v.Position - position).Magnitude < radius then v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength end end end end end function killnearest(position,range,maxstrength) for i,v in ipairs(workspace:GetChildren()) do local body = v:GetChildren() for part = 1, #body do if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then if(body[part].Position - position).Magnitude < range then if v.ClassName == "Model" then v:BreakJoints() end --table.insert(Effects2,{body[part],"Disappear",0.02,2,2,2,2}) body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength end end end if v.ClassName == "Part" then if v.Anchored == false and (v.Position - position).Magnitude < range then --table.insert(Effects2,{v,"Disappear",0.02,2,2,2,2}) v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength end end end end --//=================================\\ --|| ATTACK FUNCTIONS AND STUFF --\\=================================// function createfireball(size,explosionsize,pos,velocity) local FIREBALLCOLORS = {"Bright red", "Bright orange", "Bright yellow"} local FIREBALLHITSOUNDS = {"522282998", "527535379", "304448425"} local FIREBALL = IT("Part",Effects) FIREBALL.Shape = "Ball" FIREBALL.Size = VT(size,size,size) FIREBALL.Material = "Neon" FIREBALL.CFrame = CF(pos) FIREBALL.Transparency = 1 local bv = Instance.new("BodyVelocity") bv.maxForce = Vector3.new(1e9, 1e9, 1e9) bv.velocity = velocity bv.Parent = FIREBALL bv.Name = "MOVE" local HIT = false local harm = FIREBALL.Touched:Connect(function(hit) if HIT == false and hit.Parent.ClassName ~= "Accessory" and hit.Parent ~= Character and hit.Parent ~= Weapon and hit.Parent ~= FIREBALL.Parent then HIT = true coroutine.resume(coroutine.create(function() FIREBALL.Anchored = true FIREBALL.CanCollide = false CreateSound(FIREBALLHITSOUNDS[MRANDOM(1, #FIREBALLHITSOUNDS)], FIREBALL, 3, 1) AoEDamage(FIREBALL.Position,explosionsize*2,35,45,25,false,3,2,false,true) for i = 1, 2 do MagicBlock(explosionsize/3/i,25,FIREBALL.CFrame,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) MagicSphere(explosionsize/2/i,25,FIREBALL.CFrame,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) end Swait(250) FIREBALL:remove() end)) end end) coroutine.resume(coroutine.create(function() repeat Swait() MagicBlock2(size,25,FIREBALL.CFrame,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) until HIT == true end)) return FIREBALL end function Erupt(cframe,size) coroutine.resume(coroutine.create(function() local FIREBALLCOLORS = {"Bright red", "Bright orange", "Bright yellow"} local FIREPILLARHITSOUNDS = {"171378971", "646619365", "472579737", "144140670"} for i = 1, 5 do CreateSwirl(0,i,true,-0.5,45,cframe,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) Swait(15) end AoEDamage(cframe.p,size,35,45,25,false,3,2,false,true) local brick = IT("Part",Effects) brick.CanCollide = false brick.Anchored = true brick.Size = VT(0,0,0) brick.Transparency = 1 brick.Name = "POS" brick.CFrame = cframe game:GetService("Debris"):AddItem(brick, 5) AoEDamage(brick.Position,size*2,35,45,25,false,3,2,false,true) CreateSound(FIREPILLARHITSOUNDS[MRANDOM(1, #FIREPILLARHITSOUNDS)], brick, 3, 1) MagicSphere(size,25,cframe,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) MagicSphere(size/2,35,cframe,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) MagicSphere(size/3,45,cframe,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) MagicSphere2(size*5,25,cframe,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) CreateSwirl(0,size,true,0.5,45,cframe,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) CreateSwirl(0,size,true,0.35,45,cframe,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) CreateSwirl(0,size,true,0.1,45,cframe,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) CreateSwirl(0,size,true,-0.5,45,cframe,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) CreateSwirl(0,size,true,-0.35,45,cframe,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) CreateSwirl(0,size,true,-0.1,45,cframe,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) MagicBlock(size/6,45,cframe,FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)]) end)) end function Attack1() ATTACK = true for i=0, 1, 0.1 / Animation_Speed2 do Swait() RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.4 / Animation_Speed2) Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(75)), 0.15 / Animation_Speed2) RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(100)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed2) LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(25), RAD(-25)) * LEFTSHOULDERC0, 0.15 / Animation_Speed2) RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) end local harm = FIST.Touched:Connect(function(hit) dealdamage(hit,15,18,0,false,0,0) end) CreateSound("596439421", RightArm, 1, MRANDOM(7, 12) / 10) for i=0, 1.5, 0.1 / Animation_Speed2 do Swait() RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(65)), 0.4 / Animation_Speed2) Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(-75)), 0.2 / Animation_Speed2) RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(100)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed2) LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(25), RAD(-25)) * LEFTSHOULDERC0, 0.15 / Animation_Speed2) RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) end harm:disconnect() ATTACK = false end function Attack2() ATTACK = true for i=0, 1.5, 0.1 / Animation_Speed2 do Swait() RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.4 / Animation_Speed2) Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(-75)), 0.2 / Animation_Speed2) RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(140)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed2) LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(25), RAD(-25)) * LEFTSHOULDERC0, 0.15 / Animation_Speed2) RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) end local harm = FIST.Touched:Connect(function(hit) dealdamage(hit,15,18,0,false,0,0) end) CreateSound("596439421", RightArm, 1, MRANDOM(7, 12) / 10) for i=0, 1.5, 0.1 / Animation_Speed2 do Swait() RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-15)), 0.4 / Animation_Speed2) Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(10)), 0.2 / Animation_Speed2) RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed2) LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(25), RAD(-25)) * LEFTSHOULDERC0, 0.15 / Animation_Speed2) RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) end harm:disconnect() ATTACK = false end function Attack3() ATTACK = true for i=0, 1, 0.1 / Animation_Speed2 do Swait() RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.4 / Animation_Speed2) Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(75)), 0.15 / Animation_Speed2) RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(100)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed2) LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(25), RAD(-25)) * LEFTSHOULDERC0, 0.15 / Animation_Speed2) RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) end local harm = FIST.Touched:Connect(function(hit) dealdamage(hit,25,28,0,false,0,0) end) CreateSound("596439421", RightArm, 1, MRANDOM(7, 12) / 10) for i=0, 1.5, 0.1 / Animation_Speed2 do Swait() MagicSphere2(2,15,RightArm.CFrame * CF(0,1.2,0),"CGA brown") RootPart.CFrame = RootPart.CFrame * CF(0,0,-0.3) RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.4 / Animation_Speed2) Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(-75)), 0.2 / Animation_Speed2) RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(140)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed2) LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(25), RAD(-25)) * LEFTSHOULDERC0, 0.15 / Animation_Speed2) RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) end harm:disconnect() ATTACK = false end function turnto(pos) RootPart.CFrame = CF(RootPart.Position,VT(pos.X,RootPart.Position.Y,pos.Z)) end function Fireball() ATTACK = true Rooted = true CreateSound("169445572", RightArm, 2, 1.6) for i=0, 5, 0.1 / Animation_Speed2 do Swait() turnto(Mouse.Hit.p) MagicSphere(0.8,15,RightArm.CFrame * CF(0,-1.5,0),"CGA brown") RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.4 / Animation_Speed2) Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(-75)), 0.2 / Animation_Speed2) RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(140)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed2) LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(25), RAD(-25)) * LEFTSHOULDERC0, 0.15 / Animation_Speed2) RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) end local aimpos = Mouse.Hit.p createfireball(4,8,RightArm.CFrame * CF(0,-5,0).p,CF(RightArm.CFrame * CF(0,-5,0).p,aimpos).lookVector*100) for i=0, 1.5, 0.1 / Animation_Speed2 do Swait() RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-15)), 0.4 / Animation_Speed2) Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(10)), 0.2 / Animation_Speed2) RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed2) LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(25), RAD(-25)) * LEFTSHOULDERC0, 0.15 / Animation_Speed2) RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed2) end ATTACK = false Rooted = false end function InfernalDrive() ATTACK = true Rooted = true for i=0, 1.5, 0.1 / Animation_Speed*3 do Swait() RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-40)), 0.4 / Animation_Speed) Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(15)) * ANGLES(RAD(2.5), RAD(0), RAD(0)), 0.4 / Animation_Speed) RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed) LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.75 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(50)) * ANGLES(RAD(80), RAD(-20), RAD(-30)) * LEFTSHOULDERC0, 0.4 / Animation_Speed) RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed) LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed) end CreateSound("217767125", LeftArm, 10, 1) Erupt(CF(Mouse.Hit.p),15) for i=0, 1.5, 0.1 / Animation_Speed do Swait() RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-40)), 0.4 / Animation_Speed) Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(35)) * ANGLES(RAD(2.5), RAD(0), RAD(0)), 0.4 / Animation_Speed) RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.35 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed) LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.75 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(30)) * ANGLES(RAD(80), RAD(-10), RAD(-20)) * LEFTSHOULDERC0, 0.4 / Animation_Speed) RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed) LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed) end ATTACK = false Rooted = false end --//=================================\\ --|| ASSIGN THINGS TO KEYS --\\=================================// Humanoid.Changed:connect(function(Jump) if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then Humanoid.Jump = false end end) function MouseDown(Mouse) if ATTACK == false then if COMBO == 1 then COMBO = "HALT" Attack1() COMBO = 2 elseif COMBO == 2 then COMBO = "HALT" Attack2() COMBO = 3 elseif COMBO == 3 then COMBO = "HALT" Attack3() COMBO = 1 end end end function MouseUp(Mouse) HOLD = false end function KeyDown(Key) if Key == "z" and MANA >= 250 and ATTACK == false then MANA = MANA - 250 Fireball() end if Key == "b" and MANA >= 800 and ATTACK == false then MANA = MANA - 800 InfernalDrive() end end function KeyUp(Key) end Mouse.Button1Down:connect(function(NEWKEY) MouseDown(NEWKEY) end) Mouse.Button1Up:connect(function(NEWKEY) MouseUp(NEWKEY) end) Mouse.KeyDown:connect(function(NEWKEY) KeyDown(NEWKEY) end) Mouse.KeyUp:connect(function(NEWKEY) KeyUp(NEWKEY) end) --//=================================\\ --\\=================================// function unanchor() if UNANCHOR == true then g = Character:GetChildren() for i = 1, #g do if g[i].ClassName == "Part" then g[i].Anchored = false end end end end --//=================================\\ --|| WRAP THE WHOLE SCRIPT UP --\\=================================// Humanoid.Changed:connect(function(Jump) if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then Humanoid.Jump = false end end) ANIMATE.Parent = nil local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION) IDLEANIMATION:Play() while true do Swait() SINE = SINE + CHANGE local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude local TORSOVERTICALVELOCITY = RootPart.Velocity.y local LV = Torso.CFrame:pointToObjectSpace(Torso.Velocity - Torso.Position) local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4 * Player_Size, Character) local WALKSPEEDVALUE = 10 / (Humanoid.WalkSpeed / 16) if ANIM == "Walk" and TORSOVELOCITY > 1 then RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.1 * COS(SINE / (WALKSPEEDVALUE / 2)) * Player_Size) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed) Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * 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) RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 0.875 * Player_Size - 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, -0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed) LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 0.875 * Player_Size + 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, 0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed) elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed) Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed) RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed) LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed) end if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then ANIM = "Jump" if ATTACK == false then RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed) Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed) RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-40), RAD(0), RAD(20)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed) LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed) RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0.3 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed) LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0.3 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed) end elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then ANIM = "Fall" if ATTACK == false then RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed) Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed) RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(60)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed) LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed) RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 0.2 / Animation_Speed) LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed) end elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then ANIM = "Idle" if ATTACK == false then RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(25)), 0.15 / Animation_Speed) Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-25)), 0.15 / Animation_Speed) RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed) LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.15 / Animation_Speed) RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size - 0.05 * COS(SINE / 12) * Player_Size, -0.01 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed) LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size - 0.05 * COS(SINE / 12) * Player_Size, -0.01 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed) end elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then ANIM = "Walk" WALK = WALK + 1 / Animation_Speed if WALK >= 15 - (5 * (Humanoid.WalkSpeed / 16 / Player_Size)) then WALK = 0 if WALKINGANIM == true then WALKINGANIM = false elseif WALKINGANIM == false then WALKINGANIM = true end end --RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 0.875 * Player_Size - 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, -0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed) --LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 0.875 * Player_Size + 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, 0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed) if ATTACK == false then RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.15 / Animation_Speed) Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed) RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(60 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed) LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-60 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(0)) * LEFTSHOULDERC0, 0.15 / Animation_Speed) RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed) LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed) end end if #Effects2>0 then for e=1,#Effects2 do if Effects2[e]~=nil then local Thing=Effects2[e] if Thing~=nil then local Part=Thing[1] local Mode=Thing[2] local Delay=Thing[3] local IncX=Thing[4] local IncY=Thing[5] local IncZ=Thing[6] local Part2=Thing[8] if Thing[1].Transparency<=1 then if Thing[2]=="Block1" then Thing[1].CFrame=Thing[1].CFrame Mesh=Thing[1].Mesh Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6]) Thing[1].Transparency=Thing[1].Transparency+Thing[3] elseif Thing[2]=="Cylinder" then Mesh=Thing[1].Mesh Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6]) Thing[1].Transparency=Thing[1].Transparency+Thing[3] elseif Thing[2]=="Blood" then Mesh=Thing[7] Thing[1].CFrame=Thing[1].CFrame*CF(0,.5,0) Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6]) Thing[1].Transparency=Thing[1].Transparency+Thing[3] elseif Thing[2]=="Elec" then Mesh=Thing[1].Mesh Mesh.Scale=Mesh.Scale+VT(Thing[7],Thing[8],Thing[9]) Thing[1].Transparency=Thing[1].Transparency+Thing[3] elseif Thing[2]=="Disappear" then Thing[1].Transparency=Thing[1].Transparency+Thing[3] end else Part.Parent=nil table.remove(Effects2,e) end end end end end unanchor() Humanoid.MaxHealth = "inf" Humanoid.Health = "inf" if Rooted == false then Disable_Jump = false Humanoid.WalkSpeed = Speed elseif Rooted == true then Disable_Jump = true Humanoid.WalkSpeed = 0 end if MANA ~= MAXMANA then MANA = MANA + 1 end MANACOVER:TweenSize(UD2(1 * (MANA / MAXMANA), 0, 1, 0), "Out", "Quad", 0.1, 0.1) MANATEXT.Text = "ENERGY ["..FLOOR(MANA).."]" end --//=================================\\ --\\=================================// --//====================================================\\-- --|| END OF SCRIPT --\\====================================================//--