Hello, I am making a run/walk script using only one button.
I am using a localscript inside of a textbutton in startergui. I have used print statements and non of them run which indicated the script is not even running.
Script:
local players = game:GetService("Players")
local player = players.LocalPlayer
local character = player.CharacterAdded:Wait()
local humanoid = character.Humanoid
local runButton = script.Parent
local isRunning = false
runButton.MouseButton1Click:Connect(function()
if not isRunning then
isRunning = true
humanoid.WalkSpeed = 64
runButton.Text.TextColor = Color3.new(0, 1, 0)
else
isRunning = false
humanoid.WalkSpeed = 16
runButton.Text.TextColor = Color3.new(1, 0, 0)
end
end)
So basically what you wanna do is press a button to make the player the run, then again for the player to walk etc. Like press to run, the press again to walk then repeat vice versa
Try this, should work I hope. Just adjust it to your specific needs and requirements like the pathway to the location of the GUI button and stuff:
local players = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait() -- get the player's character
local runningspeed = 25 --Change this to however much you want the running speed to be
local defaultRunningSpeed = 16 -- default roblox character speed
local isRunning = false -- boolean value to tell if the player is sprinting
script.Parent.MouseButton1Click:Connect(function() --Change the pathway and amount of parents to however much you need
local humanoid = character.Humanoid -- set the player's humanoid as a variable
if not isRunning then -- check if the player is running
isRunning = true -- set the boolean to true
humanoid.WalkSpeed = runningspeed
else
isRunning = false -- set the boolean to false
humanoid.WalkSpeed = defaultRunningSpeed -- set the player's walkspeed to the default or change to however much you want
end
end)
script.Parent.MouseButton1Click:Connect(function(player)
local char = player.Character
local humanoid = player:FindFirstChild("Humanoid")
if humanoid.WalkSpeed == 16 then
humanoid.WalkSpeed = 64
else
humanoid.WalkSpeed = 16
end
end)
Sorry, forgot to include colors. This should work, works perfectly fine on mine. Adjust whatever u need to ur specific needs. Here you go again lol my bad:
local players = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait() -- get the player's character
local runningspeed = 25
local defaultRunningSpeed = 16 -- default roblox character speed
local isRunning = false -- boolean value to tell if the player is sprinting
script.Parent.MouseButton1Click:Connect(function()
local humanoid = character.Humanoid -- set the player's humanoid as a variable
if not isRunning then -- check if the player is running
isRunning = true -- set the boolean to true
humanoid.WalkSpeed = runningspeed
runButton.Text.Textcolor = Color3.fromHSV(0, 1, 1)
else
isRunning = false -- set the boolean to false
humanoid.WalkSpeed = defaultRunningSpeed -- set the player's walkspeed to the default
runButton.Text.Textcolor = Color3.fromHSV(0.333333, 1, 1)
end
end)