--Water bending local player=game.Players.LocalPlayer local character=player.Character local head=character["Head"] local torso=character["Torso"] local humanoid=character["Humanoid"] local arm={left=character["Left Arm"], right=character["Right Arm"]} local add={ part=function(parent,anchored,cancollide,color,shape,t,size,cframe) local p=Instance.new("Part") p.Parent=parent p.TopSurface="Smooth" p.BottomSurface="Smooth" p.FormFactor="Custom" p.Anchored=anchored p.CanCollide=cancollide p.BrickColor=BrickColor.new(color) p.Shape=shape p.Transparency=t p.Size=size p.CFrame=cframe return p end, weld=function(parent,part1,cframe) local w=Instance.new("Weld") w.Parent=parent w.Part0=parent w.Part1=part1 w.C1=cframe return w end, mesh=function(ins,parent,scale) local m=Instance.new(ins) m.Parent=parent m.Scale=scale return m end, sound=function(parent,volume,id) local s=Instance.new("Sound") s.Parent=parent s.Volume=volume s.SoundId=id return s end, model=function(parent,name) local m=Instance.new("Model") m.Parent=parent m.Name=name return m end, bg=function(parent,cframe) local g=Instance.new("BodyGyro") g.Parent=parent g.maxTorque=Vector3.new(math.huge,math.huge,math.huge) g.cframe=cframe return g end, bav=function(parent,angular) local av=Instance.new("BodyAngularVelocity") av.maxTorque=Vector3.new(math.huge,math.huge,math.huge) av.Parent=parent av.angularvelocity=angular return av end, bp=function(parent,pos) local p=Instance.new("BodyPosition") p.Parent=parent p.maxForce=Vector3.new(0,math.huge,0) p.position=pos return p end, bf=function(parent,force) local f=Instance.new("BodyForce") f.Parent=parent f.force=force return f end, humanoid=function(parent,maxhealth) local h=Instance.new("Humanoid") h.Parent=parent h.MaxHealth=maxhealth return h end } local c=function(f)coroutine.resume(coroutine.create(f))end local trailDeb=false local things=add.model(character,"Water Bending") function computePos(pos1,pos2) local pos3=Vector3.new(pos2.x,pos1.y,pos2.z) return CFrame.new(pos1,pos3) end local touchDeb=false function touch(hit) local human=hit.Parent:findFirstChild("Humanoid") local torso=hit.Parent:findFirstChild("Torso") if human and torso and human~=humanoid then local damage=math.random(5,10) c(function() human:TakeDamage(damage) human.PlatformStand=true torso.Velocity=torso.CFrame.lookVector*-150 torso.RotVelocity=Vector3.new(math.random(-25,25),math.random(-25,25),math.random(-25,25)) wait(1) human.PlatformStand=false torso.Velocity=Vector3.new(0,0,0) torso.RotVelocity=Vector3.new(0,0,0) end) end end function trail(pos) trailDeb=true old=pos.Position c(function() while trailDeb==true do wait() new=pos.Position local magnitude=(old-new).magnitude local line=add.part(things,true,false,"Bright blue","Block",0,Vector3.new(8,8,8) ,CFrame.new(old,new)*CFrame.Angles(0,0,-magnitude/2)) old=new c(function() for i=.2,1,.2 do wait() line.Transparency=i end line:remove() end) line.Touched:connect(touch) end end) end local pathDeb=false local pathPart=nil local bPosition=10 function path() pathDeb=true pathPart=add.part(things,true,true,"Bright blue","Block",0,Vector3.new(6,1,6),CFrame.new()) local bp=add.bp(torso,torso.Position+Vector3.new(0,bPosition,0)) while pathDeb==true do wait() pathPart.CFrame=torso.CFrame*CFrame.new(0,-4,0) end end --Armz local fakeArm={left=add.part(things,false,false,"White","Block",1,Vector3.new(1,1,1),CFrame.new()), right=add.part(things,false,false,"White","Block",1,Vector3.new(1,1,1),CFrame.new())} local water={left=add.part(things,false,false,"Bright blue","Ball",1,Vector3.new(1,1,1),CFrame.new()), right=add.part(things,false,false,"Bright blue","Ball",1,Vector3.new(1,1,1),CFrame.new())} --Weldz local connectArmWeld={left=add.weld(torso,fakeArm.left,CFrame.new(1.5,-.5,0)), right=add.weld(torso,fakeArm.right,CFrame.new(-1.5,-.5,0))} local armWeld={left=add.weld(fakeArm.left,arm.left,CFrame.new(0,0.5,0)), right=add.weld(fakeArm.right,arm.right,CFrame.new(0,0.5,0))} local waterWeld={left=add.weld(water.left,arm.left,CFrame.new(0,-2,0)), right=add.weld(water.right,arm.right,CFrame.new(0,-2,0))} local anim={ equip=function() for i=.2,1,.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(45)*i) armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,0) end end, watershoot=function(mouse) torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p) trail(water.left) trail(water.right) local waterbull=add.part(things,false,false,"Bright blue","Ball",0,Vector3.new(6,6,6),CFrame.new((torso.CFrame+torso.CFrame.lookVector*5).p,mouse.hit.p)) waterbull.Touched:connect(touch) waterbull.Velocity=waterbull.CFrame.lookVector*150 trail(waterbull) local bf=add.bf(waterbull,Vector3.new(0,waterbull:GetMass()*196.2,0)) for i=.2,1,.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(45)*i) armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(45)*i) waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0) waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0) end wait(.2) for i=1,0,-.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(45)*i) armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(45)*i) waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0) waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0) end game.Debris:AddItem(waterbull,5) trailDeb=false end, waterRaise=function(mouse) torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p) trail(water.left) trail(water.right) for i=.2,1,.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(135)*i,0,-math.rad(5)*i) armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,math.rad(5)*i) waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0) waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0) end wait(.2) for i=1,0,-.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(135)*i,0,-math.rad(5)*i) armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,math.rad(5)*i) waterWeld.left.C1=CFrame.new(0,-2+(-math.random(10,12)*i),0) waterWeld.right.C1=CFrame.new(0,-2+(-math.random(10,12)*i),0) end trailDeb=false end, waterSpin=function() trail(water.left) trail(water.right) local bg=add.bg(torso,torso.CFrame) for i=.2,1,.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i) armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i) waterWeld.left.C1=CFrame.new(0,-2+(-math.random(5,8)*i),0) waterWeld.right.C1=CFrame.new(0,-2+(-math.random(5,8)*i),0) end local bav=add.bav(torso,Vector3.new(0,75,0)) wait(3) for i=1,0,-.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i) armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i) waterWeld.left.C1=CFrame.new(0,-2+(-5*i),0) waterWeld.right.C1=CFrame.new(0,-2+(-5*i),0) end bg:remove() bav:remove() trailDeb=false end, bend=function(mouse) torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p) trail(water.left) trail(water.right) for i=.2,1,.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i) armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i) waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0) waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0) end wait(.2) for i=1,0,-.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(45)*i) armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(45)*i) waterWeld.left.C1=CFrame.new(0,-2+(-15*i),0) waterWeld.right.C1=CFrame.new(0,-2+(-15*i),0) end trailDeb=false end, watershoot2=function(mouse) torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p) trail(water.left) trail(water.right) for i=1,40 do local waterbull=add.part(things,false,false,"Bright blue","Ball",0,Vector3.new(8,8,8),torso.CFrame*CFrame.Angles(0,math.rad(9)*i,0)) waterbull.Velocity=waterbull.CFrame.lookVector*100 trail(waterbull) local bf=add.bf(waterbull,Vector3.new(0,waterbull:GetMass()*196.2,0)) game.Debris:AddItem(waterbull,5) waterbull.Touched:connect(touch) end for i=.2,1,.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i) armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i) waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0) waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0) end wait(.2) for i=1,0,-.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,math.rad(90)*i) armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,-math.rad(90)*i) waterWeld.left.C1=CFrame.new(0,-2+(-10*i),0) waterWeld.right.C1=CFrame.new(0,-2+(-10*i),0) end trailDeb=false end, waterBack=function(mouse) torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p) trail(water.left) trail(water.right) for i=.2,1,.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,0) armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,0) waterWeld.left.C1=CFrame.new(0,-2+(-20*i),0) waterWeld.right.C1=CFrame.new(0,-2+(-20*i),0) end wait(.2) for i=1,0,-.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(90)*i,0,0) armWeld.right.C0=CFrame.Angles(math.rad(90)*i,0,0) waterWeld.left.C1=CFrame.new(0,-2+(-20*i),0) waterWeld.right.C1=CFrame.new(0,-2+(-20*i),0) end trailDeb=false end, waterForward=function(mouse) torso.CFrame=computePos(torso.CFrame.p,mouse.Hit.p) torso.Anchored=true for i=.2,1,.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(135)*i,0,-math.rad(5)*i) armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,math.rad(5)*i) end for i=1,20 do wait() local waterblock=add.part(things,false,false,"Bright blue","Block",0,Vector3.new(4,4,4),torso.CFrame*CFrame.new(0,0,0)*CFrame.Angles(math.rad(45),0,0)+torso.CFrame.lookVector*2*i) trail(waterblock) game.Debris:AddItem(waterblock,1) waterblock.Touched:connect(touch) end wait(.2) torso.Anchored=false for i=1,0,-.2 do wait() armWeld.left.C0=CFrame.Angles(math.rad(135)*i,0,-math.rad(5)*i) armWeld.right.C0=CFrame.Angles(math.rad(135)*i,0,math.rad(5)*i) end trailDeb=false end } function getTouched() for i,v in pairs(things:GetChildren()) do v.Touched:connect(touch) end end local deb=false local buttonDeb=false local bin=Instance.new("HopperBin") bin.Parent=player.Backpack bin.Name="Water Bending" bin.Selected:connect(function(mouse) bin:remove() anim.equip() mouse.Button1Down:connect(function() if deb==false then deb=true getTouched() anim.watershoot(mouse) anim.equip() deb=false end end) mouse.KeyDown:connect(function(key) if key=="q" and deb==false then deb=true getTouched() anim.waterRaise(mouse) anim.equip() deb=false end if key=="e" and deb==false then deb=true getTouched() anim.waterSpin() anim.equip() deb=false end if key=="r" and deb==false then deb=true getTouched() anim.bend(mouse) anim.equip() deb=false end if key=="f" and deb==false then deb=true getTouched() anim.watershoot2(mouse) anim.equip() deb=false end if key=="g" and deb==false then deb=true getTouched() anim.waterBack(mouse) anim.equip() deb=false end if key=="h" and deb==false then deb=true getTouched() anim.waterForward(mouse) anim.equip() deb=false end if key=="z" and buttonDeb==false then buttonDeb=true getTouched() path() end if key=="z" and buttonDeb==true then buttonDeb=false pathPart:remove() torso["BodyPosition"]:remove() end end) end) --mediafire