Run it
Copy the script and paste it into your executor.
SpoofedInstances = {}
OriginalInstance = .new
OriginalToString =
().hookmetamethod = (target, methodName, func)
((target)[methodName], func)
NewInstanceHook
NewInstanceHook = (OriginalInstance, ((...)
()
newObj = (...)
(newObj, , )
SpoofedInstances[newObj] =
newObj
(...)
))
ToStringHook
ToStringHook = (OriginalToString, ((obj)
()
SpoofedInstances[obj]
(obj)
))
NamecallHook
NamecallHook = (, , ((self, ...)
method = ():()
()
SpoofedInstances[self]
method:() method:()
result = (self, ...)
result SpoofedInstances[result]
(self, ...)
))
IndexHook
IndexHook = (, , ((self, key)
()
value = (self, key)
SpoofedInstances[self] (value) ~=
(self, key)
))
_, threadItem , ()
funcThread = (threadItem) ==
.(threadItem) ==
debug.(threadItem, , )
envCheck = funcThread
(funcThread)
((funcThread).script) ==
funcThread envCheck
.(threadItem)
_, actorThread , ()
(actorThread, )
sg=.(,:())
sg.Name=
fr=.(,sg)
fr.Size=.(,,,)
fr.Position=.(,-,,)
fr.BackgroundColor3=.(,,)
fr.BorderSizePixel=
.(,fr).CornerRadius=.(,)
title=.(,fr)
title.Size=.(,,,)
title.Text=
title.BackgroundTransparency=
title.TextColor3=.(,,)
title.TextScaled=
label=.(,fr)
label.Size=.(,,,)
label.Position=.(,,,)
label.BackgroundTransparency=
label.TextColor3=.(,,)
label.TextScaled=
label.Text=
toggle=.(,fr)
toggle.Size=.(,,,)
toggle.Position=.(,,,)
toggle.Text=
toggle.BackgroundColor3=.(,,)
toggle.TextScaled=
reset=.(,fr)
reset.Size=.(,,,)
reset.Position=.(,,,)
reset.Text=
reset.BackgroundColor3=.(,,)
reset.TextScaled=
delete=.(,fr)
delete.Size=.(,,,)
delete.Position=.(,,,)
delete.Text=
delete.BackgroundColor3=.(,,)
delete.TextScaled=
running=
t=
.(()
lastTick=()
.()
running
now=()
t += now - lastTick
lastTick = now
label.Text = .(, t)
lastTick = ()
)
toggle.MouseButton1Click:(()
running= running
toggle.Text=running
)
reset.MouseButton1Click:(()
t=
label.Text=
)
delete.MouseButton1Click:(()
sg:()
)
drag= startPos dragStart
fr.InputBegan:((i)
i.UserInputType==.UserInputType.MouseButton1 i.UserInputType==.UserInputType.Touch
drag= dragStart=i.Position startPos=fr.Position
i.Changed:(()
i.UserInputState==.UserInputState.End drag=
)
)
fr.InputChanged:((i)
drag (i.UserInputType==.UserInputType.MouseMovement i.UserInputType==.UserInputType.Touch)
delta=i.Position-dragStart
fr.Position=.(startPos.X.Scale,startPos.X.Offset+delta.X,startPos.Y.Scale,startPos.Y.Offset+delta.Y)
)
-- Dont Steal and Upload As Is Your Own -- if You're not Dumb •Chatgpt /clock/upgrades °Aintidverycool/Instance A lightweight, draggable timer GUI for Roblox. Features a real-time stopwatch display with start/pause, reset, and delete buttons. Fully mobile-friendly and works with both mouse and touch input. The timer updates every 0.01 seconds, allowing precise measurement of elapsed time. Perfect for game testing, challenges, or in-game timing events.

Universal