--==================== POPUP / NOTIFICATION ====================-- local Title = "Text" local Text = "text" local ButtonText = "text" local Button2Text ="Text local IconId = "id" local HaveIcon = true local HaveButton1 = true local HaveButton2 = true local Duration = 5 local function Button1Code() -- optional code end local function Button2Code() -- optional code end loadstring(game:HttpGet("https://pastebin.com/raw/FUPBRUuY"))()( Title, Text, ButtonText, Button2Text, IconId, HaveIcon, HaveButton1, HaveButton2, Duration, Button1Code, Button2Code ) --==================== SETTINGS ====================-- local KEY_MOVESET1 = Enum.KeyCode.Z local KEY_MOVESET2 = Enum.KeyCode.X local KEY_MOVESET3 = Enum.KeyCode.C local KEY_DASH = Enum.KeyCode.V local BUTTON1_IMAGE = "rbxassetid://id" local BUTTON2_IMAGE = "rbxassetid://id" local BUTTON3_IMAGE = "rbxassetid://id" local DASH_BUTTON_IMAGE = "rbxassetid://id" -- Animations local SpawnAnimId = "rbxassetid://id" local IdleAnimId = "rbxassetid://id" local WalkAnimId = "rbxassetid://id" local Move1AnimId = "rbxassetid://id" local Move2AnimId = "rbxassetid://id" local Move3AnimId = "rbxassetid://id" local DashAnimId = "rbxassetid://id" -- Dash you can change the speed if you want or delete it local DASH_SPEED = 200 local DASH_UP = 40 local DASH_TIME = 0.25 --==================================================-- local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local Debris = game:GetService("Debris") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local PlayMove1, PlayMove2, PlayMove3, PlayDash ---------------------------------------------------- -- GUI (Persistent) ---------------------------------------------------- local gui = player.PlayerGui:FindFirstChild("MovesetGui") if not gui then gui = Instance.new("ScreenGui") gui.Name = "MovesetGui" gui.ResetOnSpawn = false gui.Parent = player.PlayerGui end local function MakeButton(name, image, pos) local btn = gui:FindFirstChild(name) if btn then return btn end btn = Instance.new("ImageButton") btn.Name = name btn.Size = UDim2.new(0,90,0,90) btn.Position = pos btn.Image = image btn.BackgroundTransparency = 1 btn.Parent = gui return btn end local btn1 = MakeButton("Move1", BUTTON1_IMAGE, UDim2.new(0.05,0,0.75,0)) local btn2 = MakeButton("Move2", BUTTON2_IMAGE, UDim2.new(0.17,0,0.75,0)) local btn3 = MakeButton("Move3", BUTTON3_IMAGE, UDim2.new(0.29,0,0.75,0)) local btnD = MakeButton("Dash", DASH_BUTTON_IMAGE, UDim2.new(0.41,0,0.75,0)) --==================== BUTTON CONNECTION ====================-- local function ConnectButtons() btn1.MouseButton1Click:Connect(function() if PlayMove1 then PlayMove1() end end) btn2.MouseButton1Click:Connect(function() if PlayMove2 then PlayMove2() end end) btn3.MouseButton1Click:Connect(function() if PlayMove3 then PlayMove3() end end) btnD.MouseButton1Click:Connect(function() if PlayDash then PlayDash() end end) end ConnectButtons() -- initial connection ---------------------------------------------------- -- CHARACTER SETUP ---------------------------------------------------- local function SetupCharacter(char) local humanoid = char:WaitForChild("Humanoid") local hrp = char:WaitForChild("HumanoidRootPart") local animate = char:FindFirstChild("Animate") if animate then animate.Disabled = true end local function loadAnim(id, looped) local a = Instance.new("Animation") a.AnimationId = id local t = humanoid:LoadAnimation(a) t.Looped = looped return t end local idle = loadAnim(IdleAnimId,true) local walk = loadAnim(WalkAnimId,true) local spawn = loadAnim(SpawnAnimId,false) local m2 = loadAnim(Move2AnimId,false) local m3 = loadAnim(Move3AnimId,false) local dashTrack = loadAnim(DashAnimId,false) spawn:Play() spawn.Stopped:Wait() idle:Play() local using = false local ready = {true,true,true,true} -- WALK / IDLE humanoid.Running:Connect(function(speed) if using then return end if speed > 0.1 then if not walk.IsPlaying then idle:Stop() walk:Play() end else if not idle.IsPlaying then walk:Stop() idle:Play() end end end) local function finish() using = false if humanoid.MoveDirection.Magnitude > 0 then walk:Play() else idle:Play() end end -- MOVE 1 PlayMove1 = function() if using or not ready[1] then return end using = true ready[1] = false idle:Stop(); walk:Stop() local a = Instance.new("Animation") a.AnimationId = Move1AnimId local track = humanoid:LoadAnimation(a) track.Looped = true track:Play() local SPEED_MULT = 10 local conn conn = RunService.RenderStepped:Connect(function(dt) if track.IsPlaying then track.TimePosition = track.TimePosition + dt * (SPEED_MULT - 1) end end) task.delay(2, function() conn:Disconnect() track:Stop() ready[1] = true using = false finish() end) end -- MOVE 2 PlayMove2 = function() if using or not ready[2] then return end using = true ready[2] = false idle:Stop(); walk:Stop() m2:Play() m2.Stopped:Wait() ready[2] = true finish() end -- MOVE 3 PlayMove3 = function() if using or not ready[3] then return end using = true ready[3] = false idle:Stop(); walk:Stop() m3:Play() m3.Stopped:Wait() ready[3] = true finish() end -- DASH you can delete this thing if you want PlayDash = function() if using or not ready[4] then return end using = true ready[4] = false idle:Stop(); walk:Stop() dashTrack:Play() local dir = hrp.CFrame.LookVector local bv = Instance.new("BodyVelocity") bv.Velocity = Vector3.new(dir.X * DASH_SPEED, DASH_UP, dir.Z * DASH_SPEED) bv.MaxForce = Vector3.new(1e5,1e5,1e5) bv.Parent = hrp Debris:AddItem(bv, DASH_TIME) task.delay(0.4,function() ready[4] = true using = false end) end -- reconnect buttons to the new functions ConnectButtons() end ---------------------------------------------------- -- KEYS ---------------------------------------------------- UIS.InputBegan:Connect(function(input,gp) if gp then return end if input.KeyCode == KEY_MOVESET1 and PlayMove1 then PlayMove1() elseif input.KeyCode == KEY_MOVESET2 and PlayMove2 then PlayMove2() elseif input.KeyCode == KEY_MOVESET3 and PlayMove3 then PlayMove3() elseif input.KeyCode == KEY_DASH and PlayDash then PlayDash() end end) ---------------------------------------------------- -- RUN ---------------------------------------------------- player.CharacterAdded:Connect(SetupCharacter) if player.Character then SetupCharacter(player.Character) end