
Key Required
svimtysScripts2
Lua Script•478 lines (19036 chars)
local PlatoBoost = loadstring(game:HttpGet("https://dash.platoboost.app/api/sdk/29792"))()
local function startScript()
_G.MacroPlaying = false
_G.Recording = false
_G.AutoCleaning = false
local isRunning = false
local isCleaning = false
local player = game.Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local UserInputService = game:GetService("UserInputService")
local GuiService = game:GetService("GuiService")
local Vim = game:GetService("VirtualInputManager")
local recordedActions = {}
local recordStartTime = nil
local recordedEndDelay = 0
local trashNames = { "puddle", "random trash", "trash", "clean" }
local blacklist = { "bench", "press", "curl", "rack", "seat", "weight", "barbell", "dumbbell", "machine", "equipment", "use", "lift", "deadlift", "overhead", "squat" }
if playerGui:FindFirstChild("PowerLiftersGui") then
playerGui.PowerLiftersGui:Destroy()
end
local screenGui = Instance.new("ScreenGui", playerGui)
screenGui.Name = "PowerLiftersGui"
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
local frame = Instance.new("Frame", screenGui)
frame.Name = "MainFrame"
frame.Size = UDim2.new(0, 260, 0, 260)
frame.Position = UDim2.new(0.5, -130, 0.15, 0)
frame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
frame.BorderSizePixel = 0
frame.Active = true
frame.ClipsDescendants = true
frame.ZIndex = 1
Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10)
local frameStroke = Instance.new("UIStroke", frame)
frameStroke.Thickness = 2
local titleBar = Instance.new("Frame", frame)
titleBar.Name = "TitleBar"
titleBar.Size = UDim2.new(1, 0, 0, 40)
titleBar.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
titleBar.BorderSizePixel = 0
titleBar.Active = true
titleBar.ZIndex = 2
local toggleBtn = Instance.new("TextButton", titleBar)
toggleBtn.Size = UDim2.new(0, 40, 1, 0)
toggleBtn.BackgroundTransparency = 1
toggleBtn.Text = "[#]"
toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleBtn.Font = Enum.Font.SourceSansBold
toggleBtn.TextSize = 18
toggleBtn.ZIndex = 10
local titleLabel = Instance.new("TextLabel", titleBar)
titleLabel.Position = UDim2.new(0, 45, 0, 0)
titleLabel.Size = UDim2.new(1, -50, 1, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "svimtysScripts"
titleLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
titleLabel.Font = Enum.Font.SourceSansBold
titleLabel.TextSize = 16
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.ZIndex = 3
local btnContainer = Instance.new("Frame", frame)
btnContainer.Position = UDim2.new(0, 0, 0, 40)
btnContainer.Size = UDim2.new(1, 0, 0, 175)
btnContainer.BackgroundTransparency = 1
btnContainer.ZIndex = 3
local statusLabel = Instance.new("TextLabel", frame)
statusLabel.Position = UDim2.new(0, 10, 0, 215)
statusLabel.Size = UDim2.new(1, -20, 0, 35)
statusLabel.BackgroundTransparency = 1
statusLabel.Text = "Status: Idle"
statusLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
statusLabel.Font = Enum.Font.SourceSans
statusLabel.TextSize = 14
statusLabel.ZIndex = 3
toggleBtn.Activated:Connect(function()
btnContainer.Visible = not btnContainer.Visible
statusLabel.Visible = not statusLabel.Visible
if btnContainer.Visible then
frame.Size = UDim2.new(0, 260, 0, 260)
else
frame.Size = UDim2.new(0, 260, 0, 40)
end
end)
local function createBtn(text, pos, size)
local btn = Instance.new("TextButton", btnContainer)
btn.Size = size or UDim2.new(0, 115, 0, 45)
btn.Position = pos
btn.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
btn.Text = text
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.Font = Enum.Font.SourceSansBold
btn.TextSize = 15
btn.ZIndex = 10
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
local stroke = Instance.new("UIStroke", btn)
stroke.Thickness = 2
return btn, stroke
end
local startButton, startStroke = createBtn("START", UDim2.new(0, 10, 0, 10))
local stopButton, stopStroke = createBtn("STOP", UDim2.new(0, 135, 0, 10))
local recButton, recStroke = createBtn("REC", UDim2.new(0, 10, 0, 65))
local stopRecButton, stopRecStroke = createBtn("STOP REC", UDim2.new(0, 135, 0, 65))
local cleanButton, cleanStroke = createBtn("AUTO CLEAN", UDim2.new(0, 10, 0, 120))
local stopCleanButton, stopCleanStroke = createBtn("STOP CLEAN", UDim2.new(0, 135, 0, 120))
local dragging = false
local dragStart, startPos
titleBar.InputBegan:Connect(function(input)
if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then
dragging = true
dragStart = input.Position
startPos = frame.Position
local connChanged, connEnded
connChanged = UserInputService.InputChanged:Connect(function(moveInput)
if dragging and (moveInput.UserInputType == Enum.UserInputType.MouseMovement or moveInput.UserInputType == Enum.UserInputType.Touch) then
local delta = moveInput.Position - dragStart
frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
connEnded = UserInputService.InputEnded:Connect(function(endInput)
if endInput.UserInputType == Enum.UserInputType.MouseButton1 or endInput.UserInputType == Enum.UserInputType.Touch then
dragging = false
if connChanged then connChanged:Disconnect() end
if connEnded then connEnded:Disconnect() end
end
end)
end
end)
task.spawn(function()
local hue = 0
while screenGui and screenGui.Parent do
hue = (hue + 0.005) % 1
local rgbColor = Color3.fromHSV(hue, 0.8, 1)
frameStroke.Color = rgbColor
toggleBtn.TextColor3 = rgbColor
titleLabel.TextColor3 = rgbColor
startStroke.Color = rgbColor
stopStroke.Color = rgbColor
recStroke.Color = rgbColor
stopRecStroke.Color = rgbColor
cleanStroke.Color = rgbColor
stopCleanStroke.Color = rgbColor
startButton.TextColor3 = rgbColor
stopButton.TextColor3 = rgbColor
recButton.TextColor3 = rgbColor
stopRecButton.TextColor3 = rgbColor
cleanButton.TextColor3 = rgbColor
stopCleanButton.TextColor3 = rgbColor
task.wait(0.03)
end
end)
local function clickGameButton(btnName)
local guiOffset = GuiService:GetGuiInset()
for _, gui in pairs(playerGui:GetChildren()) do
if gui:IsA("ScreenGui") and gui.Name ~= "PowerLiftersGui" and gui.Enabled then
for _, obj in pairs(gui:GetDescendants()) do
if (obj:IsA("TextButton") or obj:IsA("ImageButton")) and obj.Visible then
local name = string.lower(obj.Name)
local text = obj:IsA("TextButton") and string.lower(obj.Text) or ""
if name:find(btnName) or text:find(btnName) then
local absPos = obj.AbsolutePosition
local absSize = obj.AbsoluteSize
local center = Vector2.new(absPos.X + absSize.X / 2, absPos.Y + absSize.Y / 2 + guiOffset.Y)
Vim:SendMouseButtonEvent(center.X, center.Y, 0, true, game, 0)
task.wait(0.05)
Vim:SendMouseButtonEvent(center.X, center.Y, 0, false, game, 0)
return true
end
end
end
end
end
return false
end
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if not _G.Recording then return end
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
local guiPos = frame.AbsolutePosition
local guiSize = frame.AbsoluteSize
if input.Position and input.Position.X >= guiPos.X and input.Position.X <= (guiPos.X + guiSize.X) and
input.Position.Y >= guiPos.Y and input.Position.Y <= (guiPos.Y + guiSize.Y) then
return
end
end
if not recordStartTime then return end
local delayTime = tick() - recordStartTime
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
if input.Position then
local exactPos = Vector2.new(input.Position.X, input.Position.Y)
table.insert(recordedActions, {type = "tap", time = delayTime, pos = exactPos})
end
elseif input.UserInputType == Enum.UserInputType.Keyboard then
table.insert(recordedActions, {type = "key", time = delayTime, keyCode = input.KeyCode})
end
end)
local function playMacro()
task.spawn(function()
local guiOffset = GuiService:GetGuiInset()
while _G.MacroPlaying do
if #recordedActions > 0 then
for index, act in ipairs(recordedActions) do
if not _G.MacroPlaying then break end
local waitTime = act.delay or 0
if waitTime > 0 then
statusLabel.Text = "Status: Waiting (" .. string.format("%.2f", waitTime) .. "s)"
task.wait(waitTime)
end
if not _G.MacroPlaying then break end
statusLabel.Text = "Status: Executing " .. index .. "/" .. #recordedActions
if act.type == "tap" and act.pos then
local clickX = act.pos.X
local clickY = act.pos.Y + guiOffset.Y
Vim:SendMouseButtonEvent(clickX, clickY, 0, true, game, 0)
task.wait(0.05)
Vim:SendMouseButtonEvent(clickX, clickY, 0, false, game, 0)
elseif act.type == "key" and act.keyCode then
Vim:SendKeyEvent(true, act.keyCode, false, game)
task.wait(0.05)
Vim:SendKeyEvent(false, act.keyCode, false, game)
end
end
if _G.MacroPlaying and recordedEndDelay and recordedEndDelay > 0 then
statusLabel.Text = "Status: Cycle Resting (" .. string.format("%.2f", recordedEndDelay) .. "s)"
task.wait(recordedEndDelay)
end
else
clickGameButton("use")
task.wait(0.3)
clickGameButton("rep")
task.wait(0.2)
end
task.wait(0.1)
end
isRunning = false
statusLabel.Text = "Status: Idle"
end)
end
local function isBlacklisted(str)
if not str then return false end
local lowerStr = string.lower(str)
for _, word in pairs(blacklist) do
if string.find(lowerStr, word) then return true end
end
return false
end
local function triggerTrashPrompt(prompt)
if not prompt then return end
if fireproximityprompt then
fireproximityprompt(prompt)
else
local key = prompt.KeyboardKeyCode or Enum.KeyCode.E
Vim:SendKeyEvent(true, key, false, game)
task.wait(0.05)
Vim:SendKeyEvent(false, key, false, game)
end
end
local function cleanObject(target)
local char = player.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
if not hum or not target or not target.Parent then return end
isCleaning = true
statusLabel.Text = "Status: Walking to target..."
local targetPos = target:IsA("BasePart") and target.Position or (target.PrimaryPart and target.PrimaryPart.Position)
if not targetPos then
local part = target:FindFirstChildWhichIsA("BasePart", true)
if part then targetPos = part.Position end
end
if targetPos then
hum:MoveTo(targetPos)
local reached = false
local conn = hum.MoveToFinished:Connect(function() reached = true end)
task.spawn(function() task.wait(3.5) reached = true end)
repeat task.wait(0.1) until reached or not target.Parent or not _G.AutoCleaning
if conn then conn:Disconnect() end
end
if not _G.AutoCleaning then isCleaning = false return end
statusLabel.Text = "Status: Cleaning..."
local prompt = target:FindFirstChildWhichIsA("ProximityPrompt", true)
local attempts = 0
while target and target.Parent and _G.AutoCleaning and attempts < 12 do
if prompt then triggerTrashPrompt(prompt) end
attempts = attempts + 1
task.wait(0.25)
end
isCleaning = false
end
local function findNearestTrash()
local char = player.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
if not root then return nil end
local nearest, minDist = nil, 250
for _, obj in pairs(workspace:GetDescendants()) do
if (obj:IsA("BasePart") or obj:IsA("Model")) and not isBlacklisted(obj.Name) then
local prompt = obj:FindFirstChildWhichIsA("ProximityPrompt", true)
if prompt then
local actionText = prompt.ActionText or ""
local objectText = prompt.ObjectText or ""
if not isBlacklisted(actionText) and not isBlacklisted(objectText) then
local objName = string.lower(obj.Name)
local isTrash = false
for _, tName in pairs(trashNames) do
if string.find(objName, tName) or string.find(string.lower(actionText), tName) or string.find(string.lower(objectText), tName) then
isTrash = true
break
end
end
if isTrash then
local pos = obj:IsA("BasePart") and obj.Position or (obj.PrimaryPart and obj.PrimaryPart.Position)
if not pos then
local p = obj:FindFirstChildWhichIsA("BasePart", true)
if p then pos = p.Position end
end
if pos then
local d = (root.Position - pos).Magnitude
if d < minDist then minDist = d; nearest = obj end
end
end
end
end
end
end
return nearest
end
local function startAutoCleaning()
task.spawn(function()
while _G.AutoCleaning do
if not isCleaning then
local target = findNearestTrash()
if target then cleanObject(target)
else
statusLabel.Text = "Status: Scanning..."
task.wait(0.8)
end
end
task.wait(0.2)
end
statusLabel.Text = "Status: Idle"
end)
end
local function bindButton(btn, callback)
btn.Activated:Connect(callback)
btn.MouseButton1Click:Connect(callback)
end
bindButton(startButton, function()
if not isRunning and not _G.Recording and not _G.AutoCleaning then
_G.MacroPlaying = true
isRunning = true
statusLabel.Text = "Status: Playing Macro"
playMacro()
end
end)
bindButton(stopButton, function()
_G.MacroPlaying = false
isRunning = false
_G.Recording = false
_G.AutoCleaning = false
isCleaning = false
recButton.Text = "REC"
statusLabel.Text = "Status: Idle"
end)
bindButton(recButton, function()
if not _G.Recording and not isRunning and not _G.AutoCleaning then
_G.MacroPlaying = false
recordedActions = {}
recordStartTime = tick()
recordedEndDelay = 0
_G.Recording = true
recButton.Text = "REC 🔴"
statusLabel.Text = "Status: Recording..."
end
end)
bindButton(stopRecButton, function()
if _G.Recording then
_G.Recording = false
recButton.Text = "REC"
if #recordedActions > 0 then
table.remove(recordedActions, #recordedActions)
end
local prevTime = 0
for i, act in ipairs(recordedActions) do
local t = act.time or 0
local delta = t - prevTime
if delta < 0 then delta = 0 end
act.delay = delta
prevTime = t
end
if recordStartTime then
local totalRecTime = tick() - recordStartTime
local lastActionTime = (recordedActions[#recordedActions] and recordedActions[#recordedActions].time) or 0
recordedEndDelay = math.max(0, totalRecTime - lastActionTime)
else
recordedEndDelay = 0
end
recordStartTime = nil
statusLabel.Text = "Status: Idle"
end
end)
bindButton(cleanButton, function()
if not _G.AutoCleaning and not _G.Recording and not isRunning then
_G.AutoCleaning = true
startAutoCleaning()
statusLabel.Text = "Status: AutoCleaning"
end
end)
bindButton(stopCleanButton, function()
_G.AutoCleaning = false
isCleaning = false
statusLabel.Text = "Status: Idle"
end)
end
if PlatoBoost.ValidateKey() then
startScript()
else
PlatoBoost.PromptKey()
endFeatures & Information
https:// platoboost.com /start/ 29792 this is key for script
Community Comments (0)
No comments yet for this script.
