Ok, so I have made a Stamina bar in Roblox Studio and it works completely fine. However, I want it to decrease vertically when the player runs, but it decreases horizontally when the player runs.
Anyway here is my script:
local bar = script.Parent
local stamina = 100
local staminaRate = 1
local plr = game.Players.LocalPlayer
local char = plr.Character or plr.CharacterAdded:Wait()
local humanoid = char:WaitForChild("Humanoid")
local isSprinting = false
local uis = game:GetService("UserInputService")
uis.InputBegan:Connect(function(key, gameProcessed)
if gameProcessed or stamina == 0 then return end
if key.KeyCode == Enum.KeyCode.LeftControl then
isSprinting = not isSprinting
if isSprinting then
humanoid.WalkSpeed = 25
else
humanoid.WalkSpeed = 16
end
end
end)
while wait() do
if stamina == 0 and isSprinting then
isSprinting = false
humanoid.WalkSpeed = 16
end
if isSprinting and humanoid.MoveDirection.Magnitude > 0 then
stamina = stamina - 1
wait(staminaRate)
else
stamina = stamina + 1
wait(staminaRate)
end
stamina = math.clamp(stamina, 0, 100)
bar:TweenSize(UDim2.new((1/100) * stamina, 0, 1 ,0), Enum.EasingDirection.InOut, Enum.EasingStyle.Quint, 0.5)
end

3 comments
tl;dr. but on line 21 you change x, I suppose you wanna change the y. UDim2.new(1, 0, (1/100) * stamina ,0). maybe?
You should really read up on Udim2 before using it
Or just double check the code