Run it
Copy the script and paste it into your executor.
()
Players = :()
VirtualUser = :()
TextChatService = :()
ReplicatedStorage = :()
HttpService = :()
GuiService = :()
player = Players.LocalPlayer
INTERVAL =
HEARTBEAT =
WEBHOOK =
req = ( .request)
(sec)
m = .(sec / )
s = sec %
.(, m, s)
player.Idled:(()
VirtualUser:()
VirtualUser:(.(,))
)
()
char = player.Character player.CharacterAdded:()
hum = char:()
hum:(.(,,), )
()
TextChatService.ChatVersion == .ChatVersion.TextChatService
ch = TextChatService.TextChannels:()
ch ch:()
ReplicatedStorage
:()
:()
:(, )
startTime = .()
messageId
()
req
res = ({
Url = WEBHOOK .. ,
Method = ,
Headers = {[] = },
Body = HttpService:({
content =
})
})
body = HttpService:(res.Body)
messageId = body.id
()
(req messageId)
elapsed = .() - startTime
({
Url = WEBHOOK .. .. messageId,
Method = ,
Headers = {[] = },
Body = HttpService:({
content = .. (elapsed)
})
})
()
(req messageId)
({
Url = WEBHOOK .. .. messageId,
Method =
})
.()
()
()
()
.(()
.(INTERVAL)
()
()
)
.(()
.(HEARTBEAT)
()
()
)
()
()
()
GuiService.ErrorMessageChanged:(onShutdown)
:(onShutdown)
This script works as follows: it's a normal anti-AFK, but with some added features. It has a webhook system on Discord; it sends a message wherever you want, and it appears there when you run it in any game. When you disconnect, whether by network or kick, the message sent via webhook is instantly deleted. In the game, a heartbeat log appears on F9, indicating whether it's active or not, sent every minute. On Discord, the webhook is updated every minute, and it sends AFK messages in the chat every ten minutes. I want to make it very clear that I didn't create this script; I did everything on ChatGPT in half an hour, so if any errors appear, it's not my fault.

Universal