-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] --[[rscripts:analytics:start]] -- Script analytics (enabled by the creator on rscripts.net). -- Runs in its own thread and cannot affect the script below. task.spawn(function() pcall(function() loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6ad33dbb283889418e22c74e"))() end) end) --[[rscripts:analytics:end]] --[[ ========================================================= SmuggleHUD v3 "XENO-SAFE" El Paso, Texas: Border Roleplay - semi-autofarm Original logic: poisonpablo. Performance pass: Xeno-safe. Mita muutettiin: - Promptihaku valimuistiin (2 s TTL, pakotettu uudelleenhaku jos tulosta ei tule) -> ei enaa GetDescendants joka painallus - RenderStepped -> Heartbeat: vartija 20 Hz, HUD 10 Hz - Tekstikentat kirjoitetaan vain kun arvo muuttui - Yksi pcall per zeroVel - LITE-kytkin pysayttaa lukemapaivitykset Napit : BUY / SELL / INITIAL BUYS / POINT / LITE / Auto-loop Napit : Z buy X sell O buys K point L lite P loop Aja auto ostopaikan alle ja paina Auto-loop. Hahmo lahtee autosta ostamaan ja myymaan. La hin prompti. ========================================================= ]] local AUTHOR = "poisonpablo" local AUTHOR_LINK = "discord.gg/sun-invite" local AUTHOR_TAG = "script by " .. AUTHOR local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer -- ================= COORDINATES ================= local BUY_QUICK = Vector3.new(-1854.64, 3.37, 34.37) local BUY_POINTS = { Vector3.new(-1849, 5, 30), Vector3.new(-1854, 5, 29), Vector3.new(-1863, 5, 31), Vector3.new(-1858, 5, 29), } local BUY_CAR = Vector3.new(-1854, 5, 34) local SELL_CAR = Vector3.new(3197, 3, -200) local SELL_CHAR = Vector3.new(3182, 3, -208) -- ================= SETTINGS ================= local BUYS_PER_POINT = 3 local BUY_HOLD = 2.0 local BUY_INTERVAL = 2.5 local SELL_HOLD = 2.5 local SELL_WAIT = 35 local SELL_REPRESS = 30 local SELL_COOLDOWN = 30 local TELEPORT_TRIES = 4 local TELEPORT_GUARD = 3.0 local TELEPORT_DRIFT = 8 local PROMPT_TTL = 2.0 local HUD_HZ = 10 local GUARD_HZ = 20 -- ================= PALETTE ================= local C_BG = Color3.fromRGB(11, 14, 20) local C_CARD = Color3.fromRGB(22, 27, 38) local C_CARD_HI = Color3.fromRGB(30, 37, 52) local C_ACCENT = Color3.fromRGB(34, 211, 238) local C_ACCENT2 = Color3.fromRGB(139, 92, 246) local C_GREEN = Color3.fromRGB(34, 197, 94) local C_RED = Color3.fromRGB(239, 68, 68) local C_AMBER = Color3.fromRGB(245, 158, 11) local C_TEXT = Color3.fromRGB(226, 232, 240) local C_MUTED = Color3.fromRGB(148, 163, 184) local C_BUY = Color3.fromRGB(30, 90, 220) local C_SELL = Color3.fromRGB(20, 144, 63) local C_SEC = Color3.fromRGB(38, 47, 66) local C_POINT = Color3.fromRGB(74, 42, 122) -- ================= STATE ================= local status = "Ready" local cooldownEnd = 0 local loops = 0 local looping = false local busy = false local lite = false local lastPos, lastDist, lastStatus, lastCd local function cooldownLeft() return math.max(0, cooldownEnd - os.clock()) end -- ================= HELPERS ================= local function getChar() return player.Character end local function getHRP() local c = getChar() return c and c:FindFirstChild("HumanoidRootPart") end local function getHumanoid() local c = getChar() return c and c:FindFirstChildWhichIsA("Humanoid") end local function getVehicleAndSeat() local c = getChar() if not c then return nil, nil end local hum = c:FindFirstChildWhichIsA("Humanoid") local seat = hum and hum.SeatPart if not seat then return nil, nil end local model = seat:FindFirstAncestorOfClass("Model") if not model or model == c then return nil, nil end return model, seat end local function zeroVel(part) if not part then return end pcall(function() part.AssemblyLinearVelocity = Vector3.zero part.AssemblyAngularVelocity = Vector3.zero end) end -- ================= GUI HELPERS ================= local function corner(inst, r) local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, r) c.Parent = inst end local function stroke(inst, color, thickness, transparency) local s = Instance.new("UIStroke") s.Color = color s.Thickness = thickness or 1 s.Transparency = transparency or 0.8 s.ApplyStrokeMode = Enum.ApplyStrokeMode.Border s.Parent = inst return s end local function gradient(inst, c1, c2, rot) local g = Instance.new("UIGradient") g.Color = ColorSequence.new(c1, c2) g.Rotation = rot or 0 g.Parent = inst end local function pad(inst, t, r, b, l) local p = Instance.new("UIPadding") p.PaddingTop = UDim.new(0, t) p.PaddingRight = UDim.new(0, r) p.PaddingBottom = UDim.new(0, b) p.PaddingLeft = UDim.new(0, l) p.Parent = inst end local function listLayout(inst, padding) local l = Instance.new("UIListLayout") l.FillDirection = Enum.FillDirection.Vertical l.SortOrder = Enum.SortOrder.LayoutOrder l.Padding = UDim.new(0, padding or 8) l.Parent = inst end local function makeCard(parent, height, order) local f = Instance.new("Frame") f.Size = UDim2.new(1, 0, 0, height) f.BackgroundColor3 = C_CARD f.BorderSizePixel = 0 f.LayoutOrder = order f.Parent = parent corner(f, 10) stroke(f, C_MUTED, 1, 0.86) return f end -- ================= GUI ================= local PANEL_W, PANEL_H = 332, 486 local gui = Instance.new("ScreenGui") gui.Name = "SmuggleHUD" gui.ResetOnSpawn = false gui.DisplayOrder = 999 gui.IgnoreGuiInset = true gui.Parent = player:WaitForChild("PlayerGui") local panel = Instance.new("Frame") panel.Position = UDim2.new(0, 12, 0, 60) panel.Size = UDim2.new(0, PANEL_W, 0, PANEL_H) panel.BackgroundColor3 = C_BG panel.BorderSizePixel = 0 panel.Active = true panel.ClipsDescendants = true panel.Parent = gui corner(panel, 14) stroke(panel, C_ACCENT, 1.2, 0.82) local header = Instance.new("Frame") header.Size = UDim2.new(1, 0, 0, 48) header.BackgroundColor3 = C_ACCENT2 header.BorderSizePixel = 0 header.Parent = panel corner(header, 14) gradient(header, C_ACCENT2, C_ACCENT, 100) local title = Instance.new("TextLabel") title.Position = UDim2.new(0, 14, 0, 7) title.Size = UDim2.new(1, -50, 0, 18) title.BackgroundTransparency = 1 title.Text = "SMUGGLE HUD" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.Font = Enum.Font.GothamBold title.TextSize = 14 title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = header local subtitle = Instance.new("TextLabel") subtitle.Position = UDim2.new(0, 14, 0, 25) subtitle.Size = UDim2.new(1, -50, 0, 14) subtitle.BackgroundTransparency = 1 subtitle.Text = "xeno-safe • v3 • " .. AUTHOR subtitle.TextColor3 = Color3.fromRGB(235, 245, 255) subtitle.TextTransparency = 0.18 subtitle.Font = Enum.Font.Gotham subtitle.TextSize = 11 subtitle.TextXAlignment = Enum.TextXAlignment.Left subtitle.Parent = header local hideBtn = Instance.new("TextButton") hideBtn.Size = UDim2.new(0, 26, 0, 26) hideBtn.Position = UDim2.new(1, -36, 0, 11) hideBtn.BackgroundColor3 = Color3.fromRGB(0, 0, 0) hideBtn.BackgroundTransparency = 0.62 hideBtn.Text = "–" hideBtn.TextColor3 = Color3.fromRGB(255, 255, 255) hideBtn.TextSize = 16 hideBtn.Font = Enum.Font.GothamBold hideBtn.BorderSizePixel = 0 hideBtn.AutoButtonColor = false hideBtn.Parent = header corner(hideBtn, 8) local body = Instance.new("Frame") body.Position = UDim2.new(0, 0, 0, 48) body.Size = UDim2.new(1, 0, 1, -48) body.BackgroundTransparency = 1 body.Parent = panel pad(body, 10, 10, 10, 10) listLayout(body, 8) -- stat chips local statsRow = Instance.new("Frame") statsRow.Size = UDim2.new(1, 0, 0, 52) statsRow.BackgroundTransparency = 1 statsRow.LayoutOrder = 1 statsRow.Parent = body local function statChip(labelText, order, accent) local f = Instance.new("Frame") f.Size = UDim2.new(0.5, -4, 1, 0) f.Position = UDim2.new(order == 1 and 0 or 0.5, order == 1 and 0 or 4, 0, 0) f.BackgroundColor3 = C_CARD f.BorderSizePixel = 0 f.Parent = statsRow corner(f, 10) stroke(f, C_MUTED, 1, 0.88) local l = Instance.new("TextLabel") l.Position = UDim2.new(0, 10, 0, 6) l.Size = UDim2.new(1, -20, 0, 12) l.BackgroundTransparency = 1 l.Text = labelText l.TextColor3 = C_MUTED l.Font = Enum.Font.Gotham l.TextSize = 10 l.TextXAlignment = Enum.TextXAlignment.Left l.Parent = f local v = Instance.new("TextLabel") v.Position = UDim2.new(0, 10, 0, 20) v.Size = UDim2.new(1, -20, 0, 24) v.BackgroundTransparency = 1 v.Text = "—" v.TextColor3 = accent v.Font = Enum.Font.GothamBold v.TextSize = 20 v.TextXAlignment = Enum.TextXAlignment.Left v.Parent = f return v end local salesValue = statChip("SALES", 1, C_TEXT) local vehValue = statChip("VEHICLE", 2, C_MUTED) -- position card local posCard = makeCard(body, 46, 2) pad(posCard, 8, 10, 8, 10) local posLabel = Instance.new("TextLabel") posLabel.Size = UDim2.new(1, 0, 0, 14) posLabel.BackgroundTransparency = 1 posLabel.Text = "X — Y — Z —" posLabel.TextColor3 = C_MUTED posLabel.Font = Enum.Font.Code posLabel.TextSize = 11 posLabel.TextXAlignment = Enum.TextXAlignment.Left posLabel.Parent = posCard local distLabel = Instance.new("TextLabel") distLabel.Position = UDim2.new(0, 0, 0, 16) distLabel.Size = UDim2.new(1, 0, 0, 14) distLabel.BackgroundTransparency = 1 distLabel.Text = "BUY — • SELL —" distLabel.TextColor3 = C_ACCENT distLabel.Font = Enum.Font.Code distLabel.TextSize = 11 distLabel.TextXAlignment = Enum.TextXAlignment.Left distLabel.Parent = posCard -- status card local statusCard = makeCard(body, 56, 3) pad(statusCard, 9, 10, 9, 10) local statusDot = Instance.new("Frame") statusDot.Size = UDim2.new(0, 8, 0, 8) statusDot.Position = UDim2.new(0, 0, 0, 3) statusDot.BackgroundColor3 = C_ACCENT statusDot.BorderSizePixel = 0 statusDot.Parent = statusCard corner(statusDot, 99) local statusText = Instance.new("TextLabel") statusText.Position = UDim2.new(0, 16, 0, 0) statusText.Size = UDim2.new(1, -76, 0, 16) statusText.BackgroundTransparency = 1 statusText.Text = "Ready" statusText.TextColor3 = C_TEXT statusText.Font = Enum.Font.GothamMedium statusText.TextSize = 12 statusText.TextXAlignment = Enum.TextXAlignment.Left statusText.TextTruncate = Enum.TextTruncate.AtEnd statusText.Parent = statusCard local cdLabel = Instance.new("TextLabel") cdLabel.Position = UDim2.new(1, -60, 0, 1) cdLabel.Size = UDim2.new(0, 60, 0, 14) cdLabel.BackgroundTransparency = 1 cdLabel.Text = "" cdLabel.TextColor3 = C_AMBER cdLabel.Font = Enum.Font.Code cdLabel.TextSize = 11 cdLabel.TextXAlignment = Enum.TextXAlignment.Right cdLabel.Parent = statusCard local barTrack = Instance.new("Frame") barTrack.Position = UDim2.new(0, 0, 0, 25) barTrack.Size = UDim2.new(1, 0, 0, 5) barTrack.BackgroundColor3 = Color3.fromRGB(14, 19, 28) barTrack.BorderSizePixel = 0 barTrack.Parent = statusCard corner(barTrack, 99) local barFill = Instance.new("Frame") barFill.Size = UDim2.new(1, 0, 1, 0) barFill.BackgroundColor3 = C_GREEN barFill.BorderSizePixel = 0 barFill.Parent = barTrack corner(barFill, 99) gradient(barFill, C_AMBER, C_GREEN, 0) -- buttons local function makeButton(text, color, glowColor) local b = Instance.new("TextButton") b.BackgroundColor3 = color b.BorderSizePixel = 0 b.Text = text b.TextColor3 = Color3.fromRGB(255, 255, 255) b.Font = Enum.Font.GothamBold b.TextSize = 12 b.AutoButtonColor = false b.Parent = body corner(b, 11) local st = stroke(b, glowColor, 1.4, 0.86) local hover = TweenService:Create(b, TweenInfo.new(0.14), { BackgroundColor3 = color:Lerp(Color3.new(1, 1, 1), 0.16) }) local leave = TweenService:Create(b, TweenInfo.new(0.14), { BackgroundColor3 = color }) local glowIn = TweenService:Create(st, TweenInfo.new(0.14), { Transparency = 0.3 }) local glowOut = TweenService:Create(st, TweenInfo.new(0.14), { Transparency = 0.86 }) b.MouseEnter:Connect(function() hover:Play() glowIn:Play() end) b.MouseLeave:Connect(function() leave:Play() glowOut:Play() end) return b end local primaryRow = Instance.new("Frame") primaryRow.Size = UDim2.new(1, 0, 0, 50) primaryRow.BackgroundTransparency = 1 primaryRow.LayoutOrder = 4 primaryRow.Parent = body local buyBtn = makeButton("BUY", C_BUY, C_ACCENT) buyBtn.Parent = primaryRow buyBtn.Size = UDim2.new(0.5, -4, 1, 0) buyBtn.Position = UDim2.new(0, 0, 0, 0) local sellBtn = makeButton("SELL", C_SELL, C_GREEN) sellBtn.Parent = primaryRow sellBtn.Size = UDim2.new(0.5, -4, 1, 0) sellBtn.Position = UDim2.new(0.5, 4, 0, 0) local secondRow = Instance.new("Frame") secondRow.Size = UDim2.new(1, 0, 0, 40) secondRow.BackgroundTransparency = 1 secondRow.LayoutOrder = 5 secondRow.Parent = body local startBtn = makeButton("INITIAL BUYS", C_SEC, C_MUTED) startBtn.Parent = secondRow startBtn.Size = UDim2.new(0.34, -3, 1, 0) startBtn.TextSize = 10 startBtn.Position = UDim2.new(0, 0, 0, 0) local ptBtn = makeButton("POINT", C_POINT, C_ACCENT2) ptBtn.Parent = secondRow ptBtn.Size = UDim2.new(0.33, -3, 1, 0) ptBtn.TextSize = 11 ptBtn.Position = UDim2.new(0.34, 3, 0, 0) local liteBtn = makeButton("LITE", C_SEC, C_MUTED) liteBtn.Parent = secondRow liteBtn.Size = UDim2.new(0.33, -3, 1, 0) liteBtn.TextSize = 11 liteBtn.Position = UDim2.new(0.67, 6, 0, 0) -- auto-loop toggle local toggleRow = makeCard(body, 46, 6) pad(toggleRow, 8, 10, 8, 10) local toggleLabel = Instance.new("TextLabel") toggleLabel.Size = UDim2.new(1, -70, 0, 15) toggleLabel.BackgroundTransparency = 1 toggleLabel.Text = "Auto-loop" toggleLabel.TextColor3 = C_TEXT toggleLabel.Font = Enum.Font.GothamMedium toggleLabel.TextSize = 12 toggleLabel.TextXAlignment = Enum.TextXAlignment.Left toggleLabel.Parent = toggleRow local toggleHint = Instance.new("TextLabel") toggleHint.Position = UDim2.new(0, 0, 0, 16) toggleHint.Size = UDim2.new(1, -70, 0, 13) toggleHint.BackgroundTransparency = 1 toggleHint.Text = "buy → sell → repeat" toggleHint.TextColor3 = C_MUTED toggleHint.Font = Enum.Font.Gotham toggleHint.TextSize = 10 toggleHint.TextXAlignment = Enum.TextXAlignment.Left toggleHint.Parent = toggleRow local switch = Instance.new("TextButton") switch.Size = UDim2.new(0, 46, 0, 24) switch.Position = UDim2.new(1, -46, 0.5, -12) switch.BackgroundColor3 = Color3.fromRGB(58, 68, 89) switch.Text = "" switch.BorderSizePixel = 0 switch.AutoButtonColor = false switch.Parent = toggleRow corner(switch, 99) local knob = Instance.new("Frame") knob.Size = UDim2.new(0, 18, 0, 18) knob.Position = UDim2.new(0, 3, 0.5, -9) knob.BackgroundColor3 = Color3.fromRGB(255, 255, 255) knob.BorderSizePixel = 0 knob.Parent = switch corner(knob, 99) -- credit card local creditCard = Instance.new("TextButton") creditCard.Size = UDim2.new(1, 0, 0, 44) creditCard.BackgroundColor3 = C_CARD creditCard.BorderSizePixel = 0 creditCard.Text = "" creditCard.AutoButtonColor = false creditCard.LayoutOrder = 7 creditCard.Parent = body corner(creditCard, 10) stroke(creditCard, C_ACCENT2, 1.2, 0.55) pad(creditCard, 6, 10, 6, 10) local creditTitle = Instance.new("TextLabel") creditTitle.Size = UDim2.new(1, 0, 0, 12) creditTitle.BackgroundTransparency = 1 creditTitle.Text = AUTHOR_TAG creditTitle.TextColor3 = C_ACCENT creditTitle.Font = Enum.Font.GothamBold creditTitle.TextSize = 11 creditTitle.TextXAlignment = Enum.TextXAlignment.Left creditTitle.Parent = creditCard local creditSub = Instance.new("TextLabel") creditSub.Position = UDim2.new(0, 0, 0, 12) creditSub.Size = UDim2.new(1, 0, 0, 12) creditSub.BackgroundTransparency = 1 creditSub.Text = AUTHOR_LINK .. " • tap to copy" creditSub.TextColor3 = C_MUTED creditSub.Font = Enum.Font.Code creditSub.TextSize = 10 creditSub.TextXAlignment = Enum.TextXAlignment.Left creditSub.Parent = creditCard creditCard.Activated:Connect(function() local payload = AUTHOR .. " — " .. AUTHOR_LINK local ok = false if setclipboard then ok = pcall(function() setclipboard(payload) end) end if ok then creditSub.Text = "copied to clipboard" task.delay(1.4, function() creditSub.Text = AUTHOR_LINK .. " • tap to copy" end) end end) -- footer local footer = Instance.new("TextLabel") footer.Size = UDim2.new(1, 0, 0, 12) footer.BackgroundTransparency = 1 footer.Text = "Z buy X sell O buys K point L lite P loop" footer.TextColor3 = Color3.fromRGB(102, 118, 141) footer.Font = Enum.Font.Code footer.TextSize = 10 footer.LayoutOrder = 8 footer.Parent = body -- toast local toast = Instance.new("TextLabel") toast.Position = UDim2.new(0, 10, 1, -34) toast.Size = UDim2.new(1, -20, 0, 24) toast.BackgroundColor3 = C_CARD_HI toast.BorderSizePixel = 0 toast.Text = "" toast.TextColor3 = C_TEXT toast.Font = Enum.Font.GothamMedium toast.TextSize = 11 toast.BackgroundTransparency = 1 toast.TextTransparency = 1 toast.ZIndex = 5 toast.Parent = panel corner(toast, 8) local toastToken = 0 local function showToast(msg) toastToken += 1 local myToken = toastToken toast.Text = msg toast.BackgroundTransparency = 0.1 toast.TextTransparency = 0 task.delay(1.6, function() if toastToken ~= myToken then return end toast.BackgroundTransparency = 1 toast.TextTransparency = 1 end) end -- restore button local showBtn = Instance.new("TextButton") showBtn.Size = UDim2.new(0, 48, 0, 48) showBtn.Position = panel.Position showBtn.BackgroundColor3 = C_ACCENT2 showBtn.Text = "≡" showBtn.TextColor3 = Color3.fromRGB(255, 255, 255) showBtn.TextSize = 24 showBtn.Font = Enum.Font.GothamBold showBtn.BorderSizePixel = 0 showBtn.AutoButtonColor = false showBtn.Visible = false showBtn.Parent = gui corner(showBtn, 12) -- dragging local function makeDraggable(grab, target) local dragging, dragStart, startPos grab.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = target.Position end end) grab.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local d = input.Position - dragStart target.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y) end end) grab.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) end makeDraggable(header, panel) makeDraggable(showBtn, showBtn) local function setPanelVisible(v) if v then showBtn.Visible = false panel.Visible = true panel.Size = UDim2.new(0, PANEL_W, 0, 0) TweenService:Create(panel, TweenInfo.new(0.26, Enum.EasingStyle.Back, Enum.EasingDirection.Out), { Size = UDim2.new(0, PANEL_W, 0, PANEL_H) }):Play() else panel.Visible = false showBtn.Position = panel.Position showBtn.Visible = true end end hideBtn.Activated:Connect(function() setPanelVisible(false) end) showBtn.Activated:Connect(function() setPanelVisible(true) end) -- ================= ANTI-TELEPORT GUARD ================= local footGuardPos, footGuardRot, footGuardUntil local function releaseFootGuard() footGuardPos, footGuardRot, footGuardUntil = nil, nil, 0 end local function placeOnFoot(hrp, pos, rot) zeroVel(hrp) hrp.CFrame = CFrame.new(pos) * (rot or hrp.CFrame.Rotation) end local function footGuardTick() if not footGuardPos then return end if os.clock() >= footGuardUntil then releaseFootGuard() return end local hrp = getHRP() if not hrp then return end local hum = getHumanoid() if hum and hum.Sit then return end if (hrp.Position - footGuardPos).Magnitude > TELEPORT_DRIFT then placeOnFoot(hrp, footGuardPos, footGuardRot) end end -- ================= SEAT ================= local function unseat() local char = getChar() if not char then return false end local hum = char:FindFirstChildWhichIsA("Humanoid") local hrp = char:FindFirstChild("HumanoidRootPart") if not hum or not hum.Sit then return false end pcall(function() hum.Sit = false end) if hrp then for _, c in ipairs(hrp:GetChildren()) do if c:IsA("Weld") and c.Name == "SeatWeld" then pcall(function() c:Destroy() end) end end end task.wait(0.2) return true end local function reseat(seat) local char = getChar() if not char or not seat or not seat.Parent then return false end local hum = char:FindFirstChildWhichIsA("Humanoid") local hrp = char:FindFirstChild("HumanoidRootPart") if not hum or not hrp then return false end releaseFootGuard() pcall(function() seat:Sit(hum) end) task.wait(0.15) if not hum.Sit then zeroVel(hrp) hrp.CFrame = seat.CFrame * CFrame.new(0, 1, 0) task.wait(0.1) pcall(function() seat:Sit(hum) end) task.wait(0.1) if not hum.Sit then pcall(function() hum.Sit = true end) end end task.wait(0.25) return hum.Sit end -- ================= TELEPORTS ================= local function teleportOnFoot(pos) local hrp = getHRP() if not hrp then return false end pcall(function() hrp:SetNetworkOwner(player) end) local rot = hrp.CFrame.Rotation for _ = 1, TELEPORT_TRIES do placeOnFoot(hrp, pos, rot) task.wait() end footGuardPos, footGuardRot = pos, rot footGuardUntil = os.clock() + TELEPORT_GUARD return true end local function moveVehicle(vehicle, pos) if not vehicle or not vehicle.Parent then return false end pcall(function() local pivot = vehicle:GetPivot() vehicle:PivotTo(CFrame.new(pos) * pivot.Rotation) end) return true end -- ================= PROMPT (CACHED) ================= local promptCache, promptCacheAt = {}, 0 local function promptWorldPos(d) local parent = d.Parent if not parent then return nil end if parent:IsA("Attachment") then return parent.WorldPosition end if parent:IsA("BasePart") then return parent.Position end local a = parent while a and a ~= workspace do if a:IsA("BasePart") then return a.Position end a = a.Parent end return nil end local function refreshPrompts() promptCacheAt = os.clock() table.clear(promptCache) local n = 0 for _, d in ipairs(workspace:GetDescendants()) do if d:IsA("ProximityPrompt") and d.Enabled then n += 1 promptCache[n] = d end end end local function nearestPrompt(force) if force or os.clock() - promptCacheAt > PROMPT_TTL then refreshPrompts() end local hrp = getHRP() if not hrp then return nil end local origin = hrp.Position local best, bestDist for i = 1, #promptCache do local d = promptCache[i] if d.Parent and d.Enabled then local wp = promptWorldPos(d) if wp then local dist = (wp - origin).Magnitude if not bestDist or dist < bestDist then best, bestDist = d, dist end end end end if not best and not force then return nearestPrompt(true) end return best, bestDist end local function pressNearestPrompt(duration) local p = nearestPrompt() if not p then return false end pcall(function() p.RequiresLineOfSight = false end) local ok = pcall(function() p:InputHoldBegin() end) if not ok then if fireproximityprompt then fireproximityprompt(p) end return true end task.wait(duration) pcall(function() p:InputHoldEnd() end) return true end -- ================= BUYS ================= local function stepBuy() if not getHRP() then status = "No character" return end if getVehicleAndSeat() then unseat() task.wait(0.1) end teleportOnFoot(BUY_QUICK) task.wait(0.5) pressNearestPrompt(BUY_HOLD) status = "Buy done" end local function buyRun() if not getHRP() then status = "No character" return end local vehicle, seat = getVehicleAndSeat() if vehicle then moveVehicle(vehicle, BUY_CAR) task.wait(0.6) unseat() task.wait(0.3) moveVehicle(vehicle, BUY_CAR) end for i, pos in ipairs(BUY_POINTS) do teleportOnFoot(pos) task.wait(0.6) for n = 1, BUYS_PER_POINT do local t0 = os.clock() pressNearestPrompt(BUY_HOLD) status = ("Buy %d/%d (%d/%d)"):format(i, #BUY_POINTS, n, BUYS_PER_POINT) while os.clock() - t0 < BUY_INTERVAL do task.wait(0.05) end teleportOnFoot(pos) task.wait(0.15) end end if seat and seat.Parent then moveVehicle(vehicle, BUY_CAR) task.wait(0.2) reseat(seat) task.wait(0.5) end status = "Buys complete" end -- ================= SELL ================= local function doSell() if not getHRP() then status = "No character" return end local vehicle, seat = getVehicleAndSeat() if vehicle then moveVehicle(vehicle, SELL_CAR) task.wait(0.6) unseat() task.wait(0.3) moveVehicle(vehicle, SELL_CAR) task.wait(0.2) end teleportOnFoot(SELL_CHAR) task.wait(0.8) while cooldownLeft() > 0 do status = ("Sell: waiting %.0f s"):format(cooldownLeft()) task.wait(0.2) end pressNearestPrompt(SELL_HOLD) cooldownEnd = os.clock() + SELL_COOLDOWN status = "Sold" local start = os.clock() local repressed = false local lastPark = os.clock() while os.clock() - start < SELL_WAIT do local elapsed = os.clock() - start status = ("Sale ready - %.0f s"):format(math.max(0, SELL_WAIT - elapsed)) if not repressed and elapsed >= SELL_REPRESS then pressNearestPrompt(SELL_HOLD) cooldownEnd = os.clock() + SELL_COOLDOWN repressed = true end if os.clock() - lastPark > 1 then moveVehicle(vehicle, SELL_CAR) lastPark = os.clock() end task.wait(0.2) end if not repressed then pressNearestPrompt(SELL_HOLD) cooldownEnd = os.clock() + SELL_COOLDOWN end if seat and seat.Parent then moveVehicle(vehicle, SELL_CAR) task.wait(0.3) reseat(seat) task.wait(0.5) end status = "Sale ready" end -- ================= LOOP ================= local function initialBuys() status = "Initial buys..." buyRun() status = "Initial buys complete" end local function updateToggle() local on = looping switch.BackgroundColor3 = on and C_GREEN or Color3.fromRGB(58, 68, 89) knob.Position = on and UDim2.new(1, -21, 0.5, -9) or UDim2.new(0, 3, 0.5, -9) toggleLabel.Text = on and "Auto-loop • ON" or "Auto-loop" toggleLabel.TextColor3 = on and C_GREEN or C_TEXT end local function toggleLoop() if looping then looping = false updateToggle() showToast("Auto-loop stopped") return end looping = true updateToggle() showToast("Auto-loop started") task.spawn(function() busy = true initialBuys() busy = false if not looping then status = "Loop stopped" return end while looping do busy = true doSell() loops += 1 busy = false if not looping then break end task.wait(1.0) busy = true buyRun() busy = false end status = "Loop stopped" end) end -- ================= ACTIONS ================= local function onBuy() if busy then showToast("Busy…") return end busy = true showToast("BUY") stepBuy() busy = false end local function onStartBuys() if busy then showToast("Busy…") return end busy = true showToast("Initial buys") initialBuys() busy = false end local function onSell() if busy then showToast("Busy…") return end busy = true showToast("SELL") doSell() loops += 1 busy = false end local function onPoint() local hrp = getHRP() if not hrp then return end local p = hrp.Position local s = ("Vector3.new(%.2f, %.2f, %.2f)"):format(p.X, p.Y, p.Z) status = ("Point: %.1f, %.1f, %.1f"):format(p.X, p.Y, p.Z) print(s) local ok = false if setclipboard then ok = pcall(function() setclipboard(s) end) end showToast(ok and ("Copied: " .. s) or s) end local function setLite(on) lite = on liteBtn.Text = on and "LITE ON" or "LITE" liteBtn.BackgroundColor3 = on and C_AMBER or C_SEC if on then posLabel.Text = "HUD paused" distLabel.Text = "" lastPos, lastDist = "HUD paused", "" end showToast(on and "LITE: HUD paused" or "LITE off") end buyBtn.Activated:Connect(onBuy) sellBtn.Activated:Connect(onSell) startBtn.Activated:Connect(onStartBuys) ptBtn.Activated:Connect(onPoint) liteBtn.Activated:Connect(function() setLite(not lite) end) switch.Activated:Connect(toggleLoop) -- ================= MAIN LOOP (HEARTBEAT) ================= local hudAcc, guardAcc = 0, 0 RunService.Heartbeat:Connect(function(dt) guardAcc += dt if guardAcc >= 1 / GUARD_HZ then guardAcc = 0 footGuardTick() end if lite then return end hudAcc += dt if hudAcc < 1 / HUD_HZ then return end hudAcc = 0 local hrp = getHRP() if not hrp then if lastPos ~= "—" then statusDot.BackgroundColor3 = C_RED statusText.Text = "No character" posLabel.Text = "X — Y — Z —" distLabel.Text = "BUY — • SELL —" lastPos, lastDist, lastStatus = "—", "", "" end return end local p = hrp.Position local posStr = ("X %.0f Y %.0f Z %.0f"):format(p.X, p.Y, p.Z) if posStr ~= lastPos then posLabel.Text = posStr lastPos = posStr end local distStr = ("BUY %.0f • SELL %.0f"):format( (BUY_QUICK - p).Magnitude, (SELL_CHAR - p).Magnitude) if distStr ~= lastDist then distLabel.Text = distStr lastDist = distStr end local _, seat = getVehicleAndSeat() local vehStr = seat and "YES" or "NO" if vehValue.Text ~= vehStr then vehValue.Text = vehStr vehValue.TextColor3 = seat and C_GREEN or C_MUTED end local saleStr = tostring(loops) if salesValue.Text ~= saleStr then salesValue.Text = saleStr end local cd = cooldownLeft() if cd > 0 then barFill.Size = UDim2.new(cd / SELL_COOLDOWN, 0, 1, 0) cdLabel.Text = ("cd %.1fs"):format(cd) cdLabel.TextColor3 = C_AMBER statusDot.BackgroundColor3 = C_AMBER else barFill.Size = UDim2.new(1, 0, 1, 0) cdLabel.Text = looping and "running" or "ready" cdLabel.TextColor3 = looping and C_GREEN or C_ACCENT statusDot.BackgroundColor3 = looping and C_GREEN or C_ACCENT end if status ~= lastStatus then statusText.Text = status lastStatus = status end end) -- ================= KEYS ================= UIS.InputBegan:Connect(function(input, handled) if handled then return end local k = input.KeyCode if k == Enum.KeyCode.Z then onBuy() elseif k == Enum.KeyCode.X then onSell() elseif k == Enum.KeyCode.O then onStartBuys() elseif k == Enum.KeyCode.P then toggleLoop() elseif k == Enum.KeyCode.K then onPoint() elseif k == Enum.KeyCode.L then setLite(not lite) end end) updateToggle() showToast("SmuggleHUD v3 xeno-safe by " .. AUTHOR .. " — loaded")