( i made this post again so more people could see it)
I want to make it so when the stamina is low, mining is disabled
robloxapp-20231108-1655521.wmv (1.1 MB)
I already made the stamina and mining system, here’s the scripts :
local rs = game:GetService("ReplicatedStorage")
local canmine = rs.Tool.Pickaxe.CanMine or rs.Tool.UpgradedPickaxe.CanMine
local mining = rs.Mining
local disablemining = rs.DisableMining
local UIS = game:GetService("UserInputService")
local currentStamina = 250
local maxStamina = 250
local isRunning = false
local reqstamina = 50
local canmine = rs.Tool.Pickaxe.CanMine
local canminevalue = canmine.Value
currentStamina = math.clamp(currentStamina, 0, maxStamina)
local function updateStamina(player)
if currentStamina > 0 then
currentStamina = currentStamina - reqstamina
script.Parent:TweenSize(UDim2.new(0, 20, currentStamina / maxStamina, 0), "Out", "Linear", 0.5)
end
task.wait(0.5)
while true do
if currentStamina <= 250 then
currentStamina = currentStamina + 0.02
script.Parent:TweenSize(UDim2.new(0, 20, currentStamina / maxStamina, 0), "Out", "Linear", 0)
elseif currentStamina == 250 then
print("User's Stamina is Full")
elseif currentStamina - reqstamina >= 0 or currentStamina <= reqstamina then -- stop if stamina after mining is below 0
currentStamina = currentStamina - reqstamina
script.Parent:TweenSize(UDim2.new(0, 20, currentStamina / maxStamina, 0), "Out", "Linear", 0.5)
print("low stamina")
disablemining:FireClient(player)
elseif currentStamina > 50 then
return
end
task.wait()
end
end
mining.OnServerEvent:Connect(function(player)
updateStamina()
end)
local pickaxe = script.Parent
local canmine = pickaxe.CanMine
local anim = pickaxe.Animation
local players = game:GetService("Players")
local player = players:GetPlayerFromCharacter(pickaxe.Parent) -- get player if tool is equipped
local character
local animtrack
local humanoid
local ismining = false
local isactive = false
local animplaying = false
local pickaxehitbox = pickaxe.Pickaxepart.PickaxeHitbox
local mining = game:GetService("ReplicatedStorage").Mining
local sc = game:GetService("ReplicatedStorage").ServerConnector
local pickvalue = game:GetService("ReplicatedStorage").Tool.CurrentPickaxe
local playermod = require(game:GetService("Players").LocalPlayer.PlayerScripts:WaitForChild("PlayerModule"))
local controls = playermod:GetControls()
local dc2 = game:GetService("ReplicatedStorage").dc2
local cs = game:GetService("ReplicatedStorage").ChangeStrength
local sb = game:GetService("ReplicatedStorage").StaminaBar
local zerostamina = game:GetService("ReplicatedStorage").zerostamina
local stamina = true
local disablemining = game:GetService("ReplicatedStorage").DisableMining
local cd = false
disablemining.OnClientEvent:Connect(function()
canmine.Value = false
cd = true
print("wut de hell")
end)
if pickaxe.Parent:IsA("Backpack") then -- checks if tool is in backpack
player = pickaxe.Parent.Parent -- since backpack is always a child of a player, we get player from the backpack's parent
end
local function CharAdded(char)
character = char
humanoid = character:WaitForChild("Humanoid")
animtrack = humanoid:LoadAnimation(anim)
end
if player.Character then CharAdded(player.Character) end
player.CharacterAdded:Connect(CharAdded)
pickaxe.Activated:Connect(function()
if canmine.Value == true and animplaying == false then
dc2:FireServer()
print("activated")
isactive = true
animtrack:Play()
canmine.Value = false
animplaying = true
wait(3)
animplaying = false
pickaxehitbox.Touched:Connect(function(hit)
if ismining == false then
if hit.Name == "Hitbox" or hit.Parent == "Rock" then
print("mining")
sb:FireServer()
sc:FireServer()
mining:FireServer()
ismining = true
local particle = hit:WaitForChild("ParticleEmitter")
particle.Enabled = true
if ismining == true then
wait(1)
ismining = false
particle.Enabled = false
end
end
end
task.wait(1)
if cd == false then
print("no cd")
canmine.Value = true
end
end)
end
end)
if isactive == true then
wait(1)
isactive = false
end