local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local ThresholdWalkSpeed = 20 local TimerDuration = 24 local TimerActive = false local LastDetectedPlayer = nil local function isBeast(player) local tpsm = player:FindFirstChild("TempPlayerStatsModule", true) return tpsm and tpsm:FindFirstChild("IsBeast") and tpsm.IsBeast.Value == true end local function getPercentLabel(character) local attach = character:FindFirstChild("HumanoidRootPart") or character:FindFirstChild("Head") if not attach then return end if attach:FindFirstChild("BeastPercent") then return attach.BeastPercent.TextLabel end local bb = Instance.new("BillboardGui") bb.Name = "BeastPercent" bb.Adornee = attach bb.Size = UDim2.new(0, 80, 0, 32) bb.StudsOffset = Vector3.new(0, 3, 0) bb.AlwaysOnTop = true bb.LightInfluence = 0 bb.Parent = attach local txt = Instance.new("TextLabel") txt.Name = "TextLabel" txt.Size = UDim2.new(1,0,1,0) txt.BackgroundTransparency = 1 txt.Text = "100.0%" txt.TextColor3 = Color3.fromRGB(255,255,255) txt.TextScaled = true txt.Font = Enum.Font.Arcade txt.Parent = bb return txt end local function removePercent(character) local attach = character:FindFirstChild("HumanoidRootPart") or character:FindFirstChild("Head") if attach and attach:FindFirstChild("BeastPercent") then attach.BeastPercent:Destroy() end end local function runPercent(label) label.Text = "0.0%" local start = tick() while true do local elapsed = tick() - start local ratio = math.clamp(elapsed / TimerDuration, 0, 1) local value = math.floor(ratio * 1000) / 10 label.Text = string.format("%.1f%%", value) if ratio >= 1 then break end task.wait(0.03) end end local function checkWalkspeed(otherPlayer) local character = otherPlayer.Character if not character then return end local humanoid = character:FindFirstChildOfClass("Humanoid") if not humanoid then return end if humanoid.WalkSpeed > ThresholdWalkSpeed and not TimerActive and isBeast(otherPlayer) then TimerActive = true LastDetectedPlayer = otherPlayer local label = getPercentLabel(character) if label then runPercent(label) end elseif humanoid.WalkSpeed <= ThresholdWalkSpeed and TimerActive and otherPlayer == LastDetectedPlayer then TimerActive = false end end task.spawn(function() while true do for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LocalPlayer then checkWalkspeed(plr) end end task.wait(1) end end) task.spawn(function() while true do for _, plr in ipairs(Players:GetPlayers()) do if plr.Character and not isBeast(plr) then removePercent(plr.Character) end end task.wait(1) end end)