![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)
Keyless VerifiedUniversal

--Custom Evade Timer--
--Made By cxsir(Claude And Grok AI)--
if not game:IsLoaded() then game.Loaded:Wait() end
--Allowed game IDs
local allowedGames = {
[9872472334] = true, --Evade
[10324346056] = true, --Big Teams
[10324347967] = true, --Social Space
[10662542523] = true, --Casual
[10808838353] = true, --VC Only
[11353528705] = true, --Pro
[96537472072550] = true, --Legacy
[99214917572799] = true, --Custom Servers
[121271605799901] = true --Player Nextbots
}
local currentGameId = game.PlaceId
if allowedGames[currentGameId] then
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local PlayerGui
--Wait for LocalPlayer if not loaded
if not LocalPlayer then
Players:GetPropertyChangedSignal("LocalPlayer"):Wait()
LocalPlayer = Players.LocalPlayer
end
PlayerGui = LocalPlayer:WaitForChild("PlayerGui", 10)
if not PlayerGui then return end
--Remove existing custom timer if present
local existingTimer = PlayerGui:FindFirstChild("CustomEvadeTimer")
if existingTimer then
existingTimer:Destroy()
task.wait(0.1)
end
--==================== CUSTOMIZATION SECTION ====================
--Position/Size
local TIMER_POSITION = UDim2.new(0.5, 0, 0.025, 0)
local TIMER_SIZE = UDim2.new(0.09, 0, 0.1, -10)
--Main Box/Background
local BG_COLOR = Color3.fromRGB(20, 20, 20)
local BG_TRANSPARENCY = 0.5
local CORNER_RADIUS = UDim.new(0, 10)
--Border
local BORDER_GLOW = true --Enable/disable animated border glow
local BORDER_COLOR = Color3.fromRGB(0, 0, 0) --Static border color (only used when BORDER_GLOW = false)
local BORDER_THICKNESS = 2.5
local BORDER_TRANSPARENCY = 0.5
local GLOW_ROUND_BRIGHT = Color3.fromRGB(255, 80, 80) --Bright red
local GLOW_ROUND_DARK = Color3.fromRGB(130, 40, 40) --Darker red
local GLOW_SAFE_BRIGHT = Color3.fromRGB(100, 255, 100) --Bright green
local GLOW_SAFE_DARK = Color3.fromRGB(50, 130, 50) --Darker green
local GLOW_SPEED = 1 --How fast it pulses (seconds for one cycle)
--Status (In-Round/Intermission)
local STATUS_ROUND_TEXT = "Survive"
local STATUS_INTERMISSION_TEXT = "Safe"
local STATUS_ROUND_COLOR = Color3.fromRGB(250, 100, 100)
local STATUS_INTERMISSION_COLOR = Color3.fromRGB(100, 250, 100)
--Timer Color
local NORMAL_TIMER_COLOR = Color3.fromRGB(255, 255, 255)
local LOW_TIME_COLOR = Color3.fromRGB(250, 100, 100)
local LOW_TIME_THRESHOLD = 15
local SAFE_TIMER_COLOR = Color3.fromRGB(100, 250, 100)
local LOW_TIME_PULSE = true --Enable/disable pulsing when time is low
local LOW_TIME_PULSE_SPEED = 0.4
local LOW_TIME_PULSE_SCALE = 1.15 --How much bigger it gets (1.15 = 15% larger)
--Font (https://create.roblox.com/docs/reference/engine/enums/Font)
local TEXT_FONT = Enum.Font.GothamBold
--Text Stroke
local TEXT_STROKE_ENABLED = true
local TEXT_STROKE_COLOR = Color3.fromRGB(50, 50, 50)
local TEXT_STROKE_THICKNESS = 2.5
local TEXT_STROKE_TRANSPARENCY = 0.6
--==============================================================
--Create the custom timer GUI
local function CreateTimerGUI()
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "CustomEvadeTimer"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.Parent = PlayerGui
local Container = Instance.new("Frame")
Container.Name = "Container"
Container.Parent = ScreenGui
Container.AnchorPoint = Vector2.new(0.5, 0)
Container.Position = TIMER_POSITION
Container.Size = TIMER_SIZE
Container.BackgroundColor3 = BG_COLOR
Container.BackgroundTransparency = BG_TRANSPARENCY
Container.BorderSizePixel = 0
local Corner = Instance.new("UICorner")
Corner.CornerRadius = CORNER_RADIUS
Corner.Parent = Container
local Border = Instance.new("UIStroke")
Border.Thickness = BORDER_THICKNESS
Border.Color = BORDER_COLOR
Border.Transparency = BORDER_TRANSPARENCY
Border.Parent = Container
local Status = Instance.new("TextLabel")
Status.Name = "Status"
Status.Parent = Container
Status.Position = UDim2.new(0.5, 0, 0.2, 0)
Status.AnchorPoint = Vector2.new(0.5, 0.3)
Status.Size = UDim2.new(0.95, 0, 0.45, 0)
Status.BackgroundTransparency = 1
Status.Font = TEXT_FONT
Status.Text = "LOADING..."
Status.TextColor3 = Color3.fromRGB(255, 255, 255)
Status.TextScaled = true
Status.TextStrokeTransparency = 1
local Timer = Instance.new("TextLabel")
Timer.Name = "Timer"
Timer.Parent = Container
Timer.Position = UDim2.new(0.5, 0, 0.75, 0)
Timer.AnchorPoint = Vector2.new(0.5, 0.7)
Timer.Size = UDim2.new(0.95, 0, 0.45, 0)
Timer.BackgroundTransparency = 1
Timer.Font = TEXT_FONT
Timer.Text = "0:00"
Timer.TextColor3 = NORMAL_TIMER_COLOR
Timer.TextScaled = true
Timer.TextStrokeTransparency = 1
--Add text stroke if enabled
if TEXT_STROKE_ENABLED then
local StatusStroke = Instance.new("UIStroke")
StatusStroke.Parent = Status
StatusStroke.Color = TEXT_STROKE_COLOR
StatusStroke.Thickness = TEXT_STROKE_THICKNESS
StatusStroke.Transparency = TEXT_STROKE_TRANSPARENCY
local TimerStroke = Instance.new("UIStroke")
TimerStroke.Parent = Timer
TimerStroke.Color = TEXT_STROKE_COLOR
TimerStroke.Thickness = TEXT_STROKE_THICKNESS
TimerStroke.Transparency = TEXT_STROKE_TRANSPARENCY
end
return ScreenGui, Timer, Status
end
local Gui, TimerLabel, StatusLabel = CreateTimerGUI()
--Format seconds into M:SS format
local function formatTime(sec)
sec = math.floor(tonumber(sec) or 0)
if sec <= 0 then return "0:00" end
return string.format("%d:%02d", math.floor(sec/60), sec%60)
end
--Update timer display based on game stats
local Connection
local function UpdateTimer()
local StatsFolder = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Stats")
if not StatsFolder then
TimerLabel.Text = "0:00"
StatusLabel.Text = "WAITING..."
return
end
if Connection then Connection:Disconnect() end
Connection = StatsFolder:GetAttributeChangedSignal("Timer"):Connect(function()
local timeLeft = StatsFolder:GetAttribute("Timer")
local roundActive = StatsFolder:GetAttribute("RoundStarted")
TimerLabel.Text = formatTime(timeLeft)
--Set timer color based on round state and time remaining
if roundActive then
TimerLabel.TextColor3 = (timeLeft and timeLeft <= LOW_TIME_THRESHOLD) and LOW_TIME_COLOR or NORMAL_TIMER_COLOR
else
TimerLabel.TextColor3 = SAFE_TIMER_COLOR
end
StatusLabel.Text = roundActive and STATUS_ROUND_TEXT or STATUS_INTERMISSION_TEXT
StatusLabel.TextColor3 = roundActive and STATUS_ROUND_COLOR or STATUS_INTERMISSION_COLOR
end)
--Trigger initial update
StatsFolder:SetAttribute("Timer", StatsFolder:GetAttribute("Timer"))
end
--Watch for new game rounds
workspace.ChildAdded:Connect(function(child)
if child.Name == "Game" then
task.wait(0.6)
UpdateTimer()
end
end)
UpdateTimer()
--Border glow animation
if BORDER_GLOW then
task.spawn(function()
local tweenService = game:GetService("TweenService")
local border = Gui.Container:FindFirstChild("UIStroke")
if not border then return end
while Gui and Gui.Parent do
local StatsFolder = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Stats")
local roundActive = StatsFolder and StatsFolder:GetAttribute("RoundStarted")
--Choose colors based on round state
local brightColor = roundActive and GLOW_ROUND_BRIGHT or GLOW_SAFE_BRIGHT
local darkColor = roundActive and GLOW_ROUND_DARK or GLOW_SAFE_DARK
--Pulse to bright
local tweenToBright = tweenService:Create(border, TweenInfo.new(GLOW_SPEED, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {Color = brightColor})
tweenToBright:Play()
tweenToBright.Completed:Wait()
--Pulse to dark
local tweenToDark = tweenService:Create(border, TweenInfo.new(GLOW_SPEED, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut), {Color = darkColor})
tweenToDark:Play()
tweenToDark.Completed:Wait()
end
end)
end
--Low time pulsing animation
if LOW_TIME_PULSE then
task.spawn(function()
local tweenService = game:GetService("TweenService")
local originalTimerSize = TimerLabel.Size
local originalStatusSize = StatusLabel.Size
while Gui and Gui.Parent do
local StatsFolder = workspace:FindFirstChild("Game") and workspace.Game:FindFirstChild("Stats")
local timeLeft = StatsFolder and StatsFolder:GetAttribute("Timer")
local roundActive = StatsFolder and StatsFolder:GetAttribute("RoundStarted")
--Pulse when time is low or during intermission
if (roundActive and timeLeft and timeLeft <= LOW_TIME_THRESHOLD) or (not roundActive) then
--Pulse up
local timerPulseUp = tweenService:Create(TimerLabel, TweenInfo.new(LOW_TIME_PULSE_SPEED, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Size = UDim2.new(originalTimerSize.X.Scale * LOW_TIME_PULSE_SCALE, 0, originalTimerSize.Y.Scale * LOW_TIME_PULSE_SCALE, 0)
})
timerPulseUp:Play()
local statusPulseUp = tweenService:Create(StatusLabel, TweenInfo.new(LOW_TIME_PULSE_SPEED, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Size = UDim2.new(originalStatusSize.X.Scale * LOW_TIME_PULSE_SCALE, 0, originalStatusSize.Y.Scale * LOW_TIME_PULSE_SCALE, 0)
})
statusPulseUp:Play()
local border = Gui.Container:FindFirstChild("UIStroke")
if border then
local borderPulseUp = tweenService:Create(border, TweenInfo.new(LOW_TIME_PULSE_SPEED, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Thickness = BORDER_THICKNESS * LOW_TIME_PULSE_SCALE})
borderPulseUp:Play()
end
timerPulseUp.Completed:Wait()
--Pulse down
local timerPulseDown = tweenService:Create(TimerLabel, TweenInfo.new(LOW_TIME_PULSE_SPEED, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {Size = originalTimerSize})
timerPulseDown:Play()
local statusPulseDown = tweenService:Create(StatusLabel, TweenInfo.new(LOW_TIME_PULSE_SPEED, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {Size = originalStatusSize})
statusPulseDown:Play()
if border then
local borderPulseDown = tweenService:Create(border, TweenInfo.new(LOW_TIME_PULSE_SPEED, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {Thickness = BORDER_THICKNESS})
borderPulseDown:Play()
end
timerPulseDown.Completed:Wait()
else
task.wait(0.1)
end
end
end)
end
--Hide original timers and create dummy elements to prevent game errors
local cleanupLoop
cleanupLoop = task.spawn(function()
while Gui and Gui.Parent do
--Handle round overlay timer
pcall(function()
local round = PlayerGui:FindFirstChild("Shared")
and PlayerGui.Shared:FindFirstChild("HUD")
and PlayerGui.Shared.HUD:FindFirstChild("Overlay")
and PlayerGui.Shared.HUD.Overlay:FindFirstChild("Default")
and PlayerGui.Shared.HUD.Overlay.Default:FindFirstChild("RoundOverlay")
and PlayerGui.Shared.HUD.Overlay.Default.RoundOverlay:FindFirstChild("Round")
if round then
--Create dummy RoundTimer if it doesn't exist (prevents game errors)
if not round:FindFirstChild("RoundTimer") then
local dummyTimer = Instance.new("TextLabel")
dummyTimer.Name = "RoundTimer"
dummyTimer.Parent = round
dummyTimer.Visible = false
dummyTimer.Text = ""
end
round.Visible = false
end
end)
--Handle menu intermission timer
pcall(function()
local intermissionTimer = PlayerGui:FindFirstChild("Menu")
and PlayerGui.Menu:FindFirstChild("IntermissionTimer")
if intermissionTimer then
--Create dummy RoundTimer if it doesn't exist (prevents game errors)
if not intermissionTimer:FindFirstChild("RoundTimer") then
local dummyTimer = Instance.new("TextLabel")
dummyTimer.Name = "RoundTimer"
dummyTimer.Parent = intermissionTimer
dummyTimer.Visible = false
dummyTimer.Text = ""
end
intermissionTimer.Visible = false
end
end)
task.wait(0.5)
end
end)
print("Custom Evade Timer Loaded")
else
print("This Script Only Works In Evade! If You Have It In Your AutoExec Folder Ignore This!")
end![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)



let me know about issues, i dont know lua so i will TRY to fix them, no promises though (maybe Grok will help)
use cluade for less limitations on scripting and exploits
@Irishduck234 i think grok did pretty good but ill for sure check it out, thanks for the suggestion!
idk when but it broke lol