Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Player = game.Players.LocalPlayer
- local Tool = Instance.new("HopperBin")
- Tool.Name = "Fire"
- Tool.TextureId = "rbxassetid://428032311"
- Tool.Parent = Player.Backpack
- repeat
- wait()
- until Player.Character ~= nil
- local Character = Player.Character
- repeat
- wait()
- until Character:FindFirstChild("Torso")
- repeat
- wait()
- until Player.PlayerGui:FindFirstChild("Sidescreens")
- repeat
- wait()
- until Player.PlayerGui.Sidescreens.LocalStats:FindFirstChild("MagicPower")
- repeat
- wait()
- until Player.PlayerGui.Sidescreens.LocalStats:FindFirstChild("Strength")
- repeat
- wait()
- until Player.PlayerGui.Sidescreens.LocalStats:FindFirstChild("CriticalPower")
- repeat
- wait()
- until Player.PlayerGui.Sidescreens.LocalStats:FindFirstChild("Level")
- repeat
- wait()
- until Player.PlayerGui.Sidescreens.LocalStats:FindFirstChild("EXP")
- local Head = Character.Head
- local Torso = Character.Torso
- local RightArm = Character["Right Arm"]
- local LeftArm = Character["Left Arm"]
- local RightFist = Character.RightFist
- local LeftFist = Character.LeftFist
- local RightLeg = Character["Right Leg"]
- local LeftLeg = Character["Left Leg"]
- local Humanoid = Character.Humanoid
- local Mouse = Player:GetMouse()
- local Enabled = true
- local QKeyDown = false
- local Enabled2 = true
- local ZKeyDown = false
- local Selected = false
- repeat
- wait()
- until Character:FindFirstChild("Head")
- repeat
- wait()
- until Character.Head:FindFirstChild("Overhead")
- repeat
- wait()
- until Character.Head.Overhead:FindFirstChild("Player")
- if Character.Head.Overhead.Player.Text ~= "TensaMan" then
- game.ReplicatedStorage.Remotes.ExportExploiterName:FireServer("Player exploited in a custom magic (" .. script.Parent.Name .. ")")
- script.Parent:Destroy()
- end
- if game.PlaceId ~= 657297629 then
- do
- local sv = Instance.new("BoolValue", Character)
- sv.Name = "Slash"
- local ss = Instance.new("IntValue", Character)
- ss.Name = "StrengthStat"
- ss.Value = game.ReplicatedStorage.Remotes.CheckStat:InvokeServer("Strength")
- local cv = Instance.new("StringValue", Character)
- cv.Name = "CV"
- cv.Value = "Vector"
- local cp = game.ReplicatedStorage.Particles.Curse.Vector:Clone()
- cp.Parent = Head
- cp.Name = "CuPa"
- cp.Enabled = false
- local cp = game.ReplicatedStorage.Particles.Curse.Vector:Clone()
- cp.Parent = RightArm
- cp.Name = "CuPa"
- cp.Enabled = false
- local cp = game.ReplicatedStorage.Particles.Curse.Vector:Clone()
- cp.Parent = LeftArm
- cp.Name = "CuPa"
- cp.Enabled = false
- local cp = game.ReplicatedStorage.Particles.Curse.Vector:Clone()
- cp.Parent = Torso
- cp.Name = "CuPa"
- cp.Enabled = false
- local cp = game.ReplicatedStorage.Particles.Curse.Vector:Clone()
- cp.Parent = RightLeg
- cp.Name = "CuPa"
- cp.Enabled = false
- local cp = game.ReplicatedStorage.Particles.Curse.Vector:Clone()
- cp.Parent = LeftLeg
- cp.Name = "CuPa"
- cp.Enabled = false
- local cp = game.ReplicatedStorage.Particles.Curse.Vector:Clone()
- cp.Parent = Character.HumanoidRootPart
- cp.Name = "CuPa"
- cp.Enabled = false
- local ce = game.ReplicatedStorage.Particles.Vector.Other1Vector:Clone()
- ce.Parent = Character.HumanoidRootPart
- ce.Name = "CuEx"
- ce.Enabled = false
- local cupaen = true
- local Search = Character:GetChildren()
- for i = 1, #Search do
- if Search[i] == RightArm or Search[i] == LeftArm or Search[i] == Torso or Search[i] == Head or Search[i] == Character.HumanoidRootPart then
- Search[i].Touched:Connect(function(Part)
- if cupaen == false then
- return
- end
- cupaen = false
- if Search[i]:FindFirstChild("CuPa") then
- Search[i].CuPa:Emit(30)
- end
- game.ReplicatedStorage.Remotes.PlaySound:FireServer(1, game.ReplicatedStorage.SFX.Curse.Vector, Search[i])
- wait(0.2)
- cupaen = true
- end)
- end
- end
- end
- end
- local MagicPower = Player.PlayerGui.Sidescreens.LocalStats.MagicPower.Value
- local Strength = Player.PlayerGui.Sidescreens.LocalStats.Strength.Value
- local CriticalPower = Player.PlayerGui.Sidescreens.LocalStats.CriticalPower.Value
- local PointsService = game:GetService("PointsService")
- local RunService = game:GetService("RunService")
- local MI = require(game.ReplicatedStorage.Modules.MagicInfo)
- local DamageFunctions = require(game.ReplicatedStorage.Modules.DamageFunctions)
- local TouchDamageBasic = DamageFunctions.TouchDamageBasic
- local TouchDamageBarrage = DamageFunctions.TouchDamageBarrage
- local AoEDamageUp = DamageFunctions.AoEDamageUp
- local AttackFunctions = require(game.ReplicatedStorage.Modules.AttackFunctions)
- local NoPvPHitEffects = AttackFunctions.NoPvPHitEffects
- local MakeMagicCircle = AttackFunctions.MakeMagicCircle
- local BasicFunctions = require(game.ReplicatedStorage.Modules.BasicFunctions)
- local Effects = require(game.ReplicatedStorage.Modules.Effects)
- local Shockwave = Effects.Shockwave
- local Shockwave2 = Effects.Shockwave2
- local Tornado = Effects.Tornado
- local SlowShockwave = Effects.SlowShockwave
- local InverseShockwave = Effects.InverseShockwave
- function KeyDown(Key)
- if Character:FindFirstChild("ForceField") then
- return
- end
- if Selected == false then
- return
- end
- if Character:FindFirstChild("KO") then
- return
- end
- if Character.Humanoid.Sit == true then
- return
- end
- if Character.Humanoid.Health <= 0 then
- return
- end
- MagicPower = Player.PlayerGui.Sidescreens.LocalStats.MagicPower.Value
- Strength = Player.PlayerGui.Sidescreens.LocalStats.Strength.Value
- CriticalPower = Player.PlayerGui.Sidescreens.LocalStats.CriticalPower.Value
- Key = Key:lower()
- if Key == "z" then
- ZKeyDown = true
- local VectorTier = BasicFunctions.GetMagicTier(MagicPower, 1)
- if Enabled2 == true then
- game.ReplicatedStorage.Remotes.PlaySound:FireServer(3, game.ReplicatedStorage.SFX.Vector.On, Character.HumanoidRootPart, 1, 1)
- do
- local SlashV = Instance.new("BoolValue")
- SlashV.Name = "Slash"
- SlashV.Value = true
- SlashV.Parent = Character
- local Effect = game.ReplicatedStorage.Particles.Vector.VectorField:Clone()
- Effect.Parent = Character.HumanoidRootPart
- Enabled2 = false
- local e1 = 60 + 30 * VectorTier
- local e2 = Vector3.new(e1, e1, e1)
- local e3 = 30 + 15 * VectorTier
- spawn(function()
- while true do
- if Enabled2 == true then
- break
- end
- local Radius = BasicFunctions.CreateRegion3(Character.HumanoidRootPart.Position, e2)
- local Search = BasicFunctions.FindPartsInRegion3WithMagnitude3(Radius, Character.HumanoidRootPart, e3, {
- game.Workspace.Map,
- Character
- }, 300)
- if Search ~= nil and #Search > 0 then
- for i = 1, #Search do
- if (Search[i]:FindFirstChild("BodyVelocity") or Search[i]:FindFirstChild("FireV")) and Search[i].Anchored == false and Search[i]:FindFirstChild("Reflected") == nil then
- local Reflected = Instance.new("BoolValue", Search[i])
- Reflected.Name = "Reflected"
- Effect:Emit(1)
- local Scan = Search[i]:GetChildren()
- for o = 1, #Scan do
- if Scan[o].ClassName == "BodyVelocity" then
- Scan[o].Velocity = -Scan[o].Velocity
- game.ReplicatedStorage.Remotes.PlaySound:FireServer(1, game.ReplicatedStorage.SFX.Vector.Reflect, Character.HumanoidRootPart, 1, 1)
- end
- end
- end
- end
- end
- RunService.RenderStepped:wait()
- end
- end)
- end
- else
- game.ReplicatedStorage.Remotes.PlaySound:FireServer(3, game.ReplicatedStorage.SFX.Vector.Off, Character.HumanoidRootPart, 1, 1)
- if Character.HumanoidRootPart:FindFirstChild("VectorField") then
- Character.HumanoidRootPart.VectorField:Destroy()
- end
- local Search = Character:GetChildren()
- for i = 1, #Search do
- if Search[i].Name == "Slash" then
- Search[i]:Destroy()
- end
- end
- Enabled2 = true
- end
- elseif Key == "q" then
- QKeyDown = true
- do
- local VectorTier = BasicFunctions.GetMagicTier(MagicPower, 1)
- local Move, jp, speed = BasicFunctions.AttackStart(Player, "MagicEnergy", 30 * VectorTier, Enabled)
- if Move == nil then
- return
- end
- Enabled = false
- local cv = Instance.new("StringValue", Character)
- cv.Name = "ClashValue"
- cv.Value = "Vector Thrust"
- local AttackP = Instance.new("BodyPosition", Character.HumanoidRootPart)
- AttackP.Name = "AttackP"
- AttackP.maxForce = Vector3.new(math.huge, math.huge, math.huge)
- AttackP.position = Character.HumanoidRootPart.Position
- local AttackG = Instance.new("BodyGyro", Character.HumanoidRootPart)
- AttackG.Name = "AttackG"
- AttackG.P = AttackG.P * 4
- AttackG.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
- AttackG.cframe = CFrame.new(Character.HumanoidRootPart.Position, Mouse.Hit.p)
- local InertiaWaveTrack, Effect, Effect2
- if VectorTier == 1 or VectorTier == 2 then
- InertiaWaveTrack = Humanoid:LoadAnimation(game.ReplicatedStorage.Animations.Vector.InertiaWave1)
- InertiaWaveTrack:Play()
- Effect = game.ReplicatedStorage.Particles.Vector.Other1Vector:Clone()
- Effect.Parent = RightFist
- Effect.Enabled = true
- Effect2 = game.ReplicatedStorage.Particles.Vector.Other1Vector:Clone()
- Effect2.Parent = LeftFist
- Effect2.Enabled = true
- elseif VectorTier == 3 or VectorTier == 4 or VectorTier == 5 then
- InertiaWaveTrack = Humanoid:LoadAnimation(game.ReplicatedStorage.Animations.Vector.InertiaWave2)
- InertiaWaveTrack:Play()
- Effect = game.ReplicatedStorage.Particles.Vector.Other1Vector:Clone()
- Effect.Parent = RightFist
- Effect.Enabled = true
- end
- wait(0.15)
- local Charge = 0
- local e1 = 12 * VectorTier / 60
- local clashes = false
- while QKeyDown == true do
- if clashes == false then
- clashes = AttackFunctions.PreClash(Mouse, Character, cv)
- end
- if 0 < Player.bin.MagicEnergy.Value then
- Player.bin.MagicEnergy.Value = Player.bin.MagicEnergy.Value - e1
- else
- break
- end
- Charge = Charge + 1
- AttackG.cframe = CFrame.new(Character.HumanoidRootPart.Position, Mouse.Hit.p)
- if VectorTier == 1 or VectorTier == 2 then
- if Charge == 50 then
- InertiaWaveTrack:AdjustSpeed(0)
- end
- elseif (VectorTier == 3 or VectorTier == 4 or VectorTier == 5) and Charge == 5 then
- InertiaWaveTrack:AdjustSpeed(0)
- end
- if QKeyDown == false then
- break
- end
- if Charge == 60 then
- break
- end
- wait()
- end
- if Player.bin.MagicEnergy.Value >= 30 * VectorTier then
- Player.bin.MagicEnergy.Value = Player.bin.MagicEnergy.Value - 30 * VectorTier
- else
- InertiaWaveTrack:AdjustSpeed(0)
- wait(0.5)
- if Effect ~= nil then
- Effect.Enabled = false
- game.Debris:AddItem(Effect, Effect.Lifetime.Max)
- end
- if Effect2 ~= nil then
- Effect2.Enabled = false
- game.Debris:AddItem(Effect2, Effect2.Lifetime.Max)
- end
- Move:Destroy()
- AttackP:Destroy()
- AttackG:Destroy()
- Humanoid.JumpPower = jp
- Humanoid.WalkSpeed = speed
- Player.bin.Move.Value = false
- InertiaWaveTrack:Stop()
- wait(1)
- Enabled = true
- return
- end
- if clashes == true then
- AttackFunctions.ClashAttacks(Character, cv.Clash.Value)
- else
- do
- local EXPgive = 5
- if VectorTier == 2 then
- EXPgive = 100
- elseif VectorTier == 3 then
- EXPgive = 200
- elseif VectorTier == 4 then
- EXPgive = 300
- elseif VectorTier == 5 then
- EXPgive = 400
- end
- local cc = Instance.new("BoolValue", Player.PlayerGui)
- cc.Name = "EEeX"
- game.Debris:AddItem(cc, 2)
- game.ReplicatedStorage.Remotes.SetStat:FireServer("EXP", Player.PlayerGui.Sidescreens.LocalStats.EXP.Value + EXPgive, "math.random() is the best thing ever")
- local cc = Instance.new("BoolValue", Player.PlayerGui)
- cc.Name = "MPeX"
- game.Debris:AddItem(cc, 2)
- game.ReplicatedStorage.Remotes.SetStat:FireServer("MPEXP", Player.PlayerGui.Sidescreens.LocalStats.MPEXP.Value + EXPgive, "math.random() is the best thing ever")
- game.ReplicatedStorage.Remotes.AwardPP:FireServer(math.floor(EXPgive / 2))
- if VectorTier > 2 then
- if Charge <= 30 then
- game:GetService("Chat"):Chat(Player.Character.Head, "Vector Thrust!", 2)
- else
- game:GetService("Chat"):Chat(Player.Character.Head, "VECTOR THRUST!!!", 2)
- end
- else
- game:GetService("Chat"):Chat(Player.Character.Head, "Vector Thrust!", 2)
- end
- local Damage = 5 + Charge / 3 + Player.PlayerGui.Sidescreens.LocalStats.MagicDamage.Value * ((VectorTier == 1 and 0 or VectorTier) / 5) * (VectorTier / 5)
- Damage = Damage + (Player.PlayerGui.Sidescreens.LocalStats.Level.Value / 4 + Player.PlayerGui.Sidescreens.LocalStats.MagicPower.Value / 8)
- if CriticalPower > 0 then
- cgr = math.random(1, 3)
- if cgr == 1 then
- Damage = Damage * (CriticalPower * 2)
- do
- local SFX = game.ReplicatedStorage.SFX.Misc.CriticalExplosion:clone()
- SFX.Parent = Head
- SFX.Volume = 0.25
- SFX.Pitch = 1
- SFX:Play()
- delay(1, function()
- for i = 1, 10 do
- SFX.Volume = SFX.Volume - 0.025
- wait()
- end
- SFX:Stop()
- SFX:Destroy()
- end)
- local CriticalExplosion = game.ReplicatedStorage.Particles.Misc.CriticalExplosion:clone()
- CriticalExplosion.Parent = Head
- CriticalExplosion.Enabled = false
- game.Debris:AddItem(CriticalExplosion, 2)
- wait()
- CriticalExplosion:Emit(250)
- end
- end
- end
- wait(0.2)
- local Ball = Instance.new("Part", game.Workspace)
- Ball.Transparency = 1
- game.ReplicatedStorage.Remotes.SetNetworkOwner:FireServer(Ball)
- Ball.Size = Vector3.new(3, 3, 3)
- Ball.CFrame = Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, -5)
- Ball.CanCollide = false
- Ball.Name = "VectorThrust"
- Ball.TopSurface = "Smooth"
- Ball.BottomSurface = "Smooth"
- game.ReplicatedStorage.Remotes.DebrisAddItem:FireServer(Ball, 5)
- local BallLight = Instance.new("PointLight", Ball)
- BallLight.Range = 10 * VectorTier
- BallLight.Color = Color3.new(1, 1, 1)
- BallLight.Shadows = true
- local p = 1
- if VectorTier == 1 then
- p = 1.5
- elseif VectorTier == 2 then
- p = 1.25
- elseif VectorTier == 3 then
- p = 1
- elseif VectorTier == 4 then
- p = 0.875
- elseif VectorTier == 5 then
- p = 0.75
- end
- game.ReplicatedStorage.Remotes.PlaySound:FireServer(6, game.ReplicatedStorage.SFX.Vector.InertiaWave, Ball, 1, p)
- local mod = Instance.new("Model", game.Workspace)
- mod.Name = "Shockwaves"
- spawn(function()
- local e1 = 6 * VectorTier
- local e2 = Vector3.new(e1, e1 / 8, e1)
- local e3 = CFrame.Angles(math.rad(90), math.rad(-90), 0)
- while Ball.Parent ~= nil do
- Effects.Shockwave2(BrickColor.new("Institutional White"), BrickColor.new("Institutional White"), e2, Ball.CFrame * e3, mod, true)
- wait(0.1)
- end
- end)
- local FlareV = Instance.new("BodyVelocity", Ball)
- FlareV.maxForce = Vector3.new(math.huge, math.huge, math.huge)
- FlareV.velocity = Character.HumanoidRootPart.CFrame.lookVector * 150
- local DamageV = Instance.new("IntValue", Ball)
- DamageV.Name = "Damage"
- DamageV.Value = Damage
- local TierV = Instance.new("IntValue", Ball)
- TierV.Name = "Tier"
- TierV.Value = VectorTier
- local TypeV = Instance.new("StringValue", Ball)
- TypeV.Name = "Type"
- TypeV.Value = "Vector"
- local BallEnabled = true
- spawn(function()
- local e1 = 30 + 15 * VectorTier
- local e2 = Vector3.new(e1, e1, e1)
- local e3 = 15 + 7.5 * VectorTier
- while true do
- if BallEnabled == false then
- break
- end
- if Ball.Parent == nil then
- break
- end
- do
- local Radius = BasicFunctions.CreateRegion3(Ball.Position, e2)
- local Search = BasicFunctions.FindPartsInRegion3WithMagnitude3(Radius, Ball, e3, {
- Character,
- mod,
- Ball,
- game.Workspace.Map
- }, 100)
- if Search ~= nil and #Search > 0 then
- for i = 1, #Search do
- if Search[i].Parent ~= nil then
- if Search[i].Parent:FindFirstChild("Humanoid") and Search[i].Parent:FindFirstChild("Torso") and Search[i].Parent:FindFirstChild("HitTag") == nil and Search[i].Parent:FindFirstChild("KO") == nil then
- if Search[i].Parent.Torso:FindFirstChild("VectorFling") == nil then
- if game.Players:FindFirstChild(Search[i].Parent.Name) then
- local ePlayer = game.Players[Search[i].Parent.Name]
- if ePlayer.bin.PvP.Value == true and Player.bin.PvP.Value == true then
- if AttackFunctions.CanDamage(Player, ePlayer) == true then
- if Search[i].Parent:FindFirstChild("ForceField") == nil then
- spawn(function()
- local BV = Instance.new("BodyVelocity", Search[i].Parent.Torso)
- BV.Name = "VectorFling"
- BV.maxForce = Vector3.new(math.huge, math.huge, math.huge)
- BV.velocity = FlareV.velocity
- game.Debris:AddItem(BV, 0.5)
- end)
- end
- Search[i].Parent.Humanoid:TakeDamage(Damage)
- AttackFunctions.DmgInd(Search[i].Position, math.floor(Damage), Color3.new(1, 0, 0))
- AttackFunctions.HitTag(Player, Search[i].Parent, 0.25)
- end
- else
- NoPvPHitEffects(Player, ePlayer)
- end
- elseif Search[i].Parent:FindFirstChild("Attributes") and AttackFunctions.CanDamageNPC(Player, Search[i].Parent) == true then
- if Search[i].Parent:FindFirstChild("ForceField") == nil then
- spawn(function()
- local BV = Instance.new("BodyVelocity", Search[i].Parent.Torso)
- BV.Name = "VectorFling"
- BV.maxForce = Vector3.new(math.huge, math.huge, math.huge)
- BV.velocity = FlareV.velocity
- game.Debris:AddItem(BV, 0.5)
- end)
- end
- Search[i].Parent.Humanoid:TakeDamage(Damage)
- AttackFunctions.DmgInd(Search[i].Position, math.floor(Damage), Color3.new(1, 0, 0))
- AttackFunctions.HitTag(Player, Search[i].Parent, 0.25)
- end
- end
- elseif Search[i].Parent:FindFirstChild("Health") and Search[i].Parent:FindFirstChild("HitTag") == nil and Search[i].Parent:FindFirstChild("Owner") and Player.bin.PvP.Value == true and Search[i].Parent:FindFirstChild("Type") then
- if Search[i].Parent.Owner.Value ~= nil then
- local ePlayer = Search[i].Parent.Owner.Value
- if ePlayer.bin.PvP.Value == true and AttackFunctions.CanDamage(Player, ePlayer) == true then
- Search[i].Parent.Health.Value = Search[i].Parent.Health.Value - Damage / 2
- AttackFunctions.DmgInd(Search[i].Position, math.floor(Damage / 2), Color3.new(1, 0, 0))
- AttackFunctions.HitTag(Player, Search[i].Parent, 0.25)
- end
- else
- Search[i].Parent.Health.Value = Search[i].Parent.Health.Value - Damage / 2
- AttackFunctions.DmgInd(Search[i].Position, math.floor(Damage / 2), Color3.new(1, 0, 0))
- AttackFunctions.HitTag(Player, Search[i].Parent, 0.25)
- end
- end
- end
- if (Search[i]:FindFirstChild("BodyVelocity") or Search[i]:FindFirstChild("FireV")) and Search[i].Anchored == false and Search[i]:FindFirstChild("Reflected") == nil then
- local Reflected = Instance.new("BoolValue", Search[i])
- Reflected.Name = "Reflected"
- game.ReplicatedStorage.Remotes.PlaySound:FireServer(6, game.ReplicatedStorage.SFX.Vector.Reflect, Ball, 1, 1)
- local Scan = Search[i]:GetChildren()
- for o = 1, #Scan do
- if Scan[o].ClassName == "BodyVelocity" then
- Scan[o].Velocity = -Scan[o].Velocity
- end
- end
- end
- end
- end
- wait(0.25)
- end
- end
- end)
- game.Debris:AddItem(mod, 5)
- game.ReplicatedStorage.Remotes.DebrisAddItem:FireServer(mod, 5)
- cv:Destroy()
- end
- end
- InertiaWaveTrack:AdjustSpeed(0)
- wait(0.5)
- Move:Destroy()
- AttackP:Destroy()
- AttackG:Destroy()
- if Effect ~= nil then
- Effect.Enabled = false
- game.Debris:AddItem(Effect, Effect.Lifetime.Max)
- end
- if Effect2 ~= nil then
- Effect2.Enabled = false
- game.Debris:AddItem(Effect2, Effect2.Lifetime.Max)
- end
- Humanoid.JumpPower = jp
- Humanoid.WalkSpeed = speed
- Player.bin.Move.Value = false
- InertiaWaveTrack:Stop()
- wait(2)
- Enabled = true
- end
- end
- end
- function KeyUp(Key)
- if Selected == false then
- return
- end
- Key = Key:lower()
- if Key == "z" then
- ZKeyDown = false
- elseif Key == "q" then
- QKeyDown = false
- end
- end
- function Select()
- Selected = true
- end
- function Deselect()
- Selected = false
- end
- Mouse.KeyDown:connect(KeyDown)
- Mouse.KeyUp:connect(KeyUp)
- Tool.Equipped:connect(Select)
- Tool.Unequipped:connect(Deselect)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement