-- [[ 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 ]] -- Project Iron | Real Executor -- ТП к мусору (ручной + авто) + локации local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local RunService = game:GetService("RunService") local lp = Players.LocalPlayer local char = lp.Character or lp.CharacterAdded:Wait() local function getRoot() char = lp.Character if not char then return nil end return char:FindFirstChild("HumanoidRootPart") end local function teleportTo(cf) char = lp.Character if not char then return end local root = char:FindFirstChild("HumanoidRootPart") if not root then return end for i = 1, 3 do root.CFrame = cf root.Velocity = Vector3.new(0, 0, 0) task.wait(0.05) end end -- ===================== -- МУСОР -- ===================== local trashList = {} local TRASH_NAMES = {"Trash", "Мусор", "Garbage", "Litter", "Bag", "Bottle", "Can"} local function isTrash(name) for _, t in ipairs(TRASH_NAMES) do if name:lower():find(t:lower()) then return true end end return false end local function getPartCFrame(obj) if obj:IsA("Model") then local p = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart") if p then return p.CFrame + Vector3.new(0, 3, 0) end elseif obj:IsA("BasePart") then return obj.CFrame + Vector3.new(0, 3, 0) end return nil end Workspace.DescendantAdded:Connect(function(v) if isTrash(v.Name) then table.insert(trashList, v) end end) Workspace.DescendantRemoving:Connect(function(v) for i, obj in ipairs(trashList) do if obj == v then table.remove(trashList, i) break end end end) for _, v in ipairs(Workspace:GetDescendants()) do if isTrash(v.Name) then table.insert(trashList, v) end end local function tpToNearestTrash() local r = getRoot() if not r then return end if #trashList == 0 then print("[TP] Мусор не найден") return end local closest, minDist = nil, math.huge for _, obj in ipairs(trashList) do local cf = getPartCFrame(obj) if cf then local dist = (r.Position - cf.Position).Magnitude if dist < minDist then minDist = dist closest = obj end end end if closest then local cf = getPartCFrame(closest) if cf then teleportTo(cf) end end end -- ===================== -- АВТО ТП -- ===================== local autoTP = false local lastTP = 0 local TP_COOLDOWN = 4 local autoConn = nil local function startAutoTP() if autoTP then return end autoTP = true autoConn = RunService.Heartbeat:Connect(function() if not autoTP then autoConn:Disconnect() autoConn = nil return end local now = tick() if now - lastTP >= TP_COOLDOWN then lastTP = now tpToNearestTrash() end end) end local function stopAutoTP() autoTP = false if autoConn then autoConn:Disconnect() autoConn = nil end end -- ===================== -- ЛОКАЦИИ -- ===================== local LOCATIONS = { ["Спортзал"] = CFrame.new(27, 4.27666569, -43.9999962), ["Снаряжение"] = CFrame.new(-192.100006, 4.08466578, 286.700012), ["Продуктовый"] = CFrame.new(118.600006, 4.36666584, 8), ["Дополнения"] = CFrame.new(361.568146, 4.34712219, 553.791687), } local function tpToLocation(name) local cf = LOCATIONS[name] if not cf then return end teleportTo(cf) print("[TP] -> " .. name) end -- ===================== -- GUI -- ===================== local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "PIronMenu" ScreenGui.ResetOnSpawn = false ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.Parent = game:GetService("CoreGui") local Frame = Instance.new("Frame") Frame.Size = UDim2.new(0, 220, 0, 402) Frame.Position = UDim2.new(0, 20, 0.3, 0) Frame.BackgroundColor3 = Color3.fromRGB(18, 18, 18) Frame.BorderSizePixel = 0 Frame.Active = true Frame.Draggable = true Frame.Parent = ScreenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 8) UICorner.Parent = Frame local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 36) Title.BackgroundColor3 = Color3.fromRGB(30, 30, 30) Title.TextColor3 = Color3.fromRGB(220, 220, 220) Title.Font = Enum.Font.GothamBold Title.TextSize = 14 Title.Text = "Project Iron | Real" Title.Parent = Frame local UICornerTitle = Instance.new("UICorner") UICornerTitle.CornerRadius = UDim.new(0, 8) UICornerTitle.Parent = Title local function makeButton(text, yPos, color, callback) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.88, 0, 0, 36) btn.Position = UDim2.new(0.06, 0, 0, yPos) btn.BackgroundColor3 = color or Color3.fromRGB(50, 50, 50) btn.TextColor3 = Color3.fromRGB(230, 230, 230) btn.Font = Enum.Font.Gotham btn.TextSize = 13 btn.Text = text btn.BorderSizePixel = 0 btn.Parent = Frame local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 6) c.Parent = btn btn.MouseButton1Click:Connect(callback) return btn end makeButton("🗑 ТП к мусору", 44, Color3.fromRGB(50, 70, 40), function() tpToNearestTrash() end) local autoBtn = makeButton("▶ Авто ТП: OFF", 90, Color3.fromRGB(40, 40, 40), function() end) autoBtn.MouseButton1Click:Connect(function() if autoTP then stopAutoTP() autoBtn.Text = "▶ Авто ТП: OFF" autoBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) else startAutoTP() autoBtn.Text = "⏹ Авто ТП: ON" autoBtn.BackgroundColor3 = Color3.fromRGB(30, 90, 30) end end) makeButton("🏋 Спортзал", 136, Color3.fromRGB(40, 55, 80), function() tpToLocation("Спортзал") end) makeButton("🎒 Снаряжение", 182, Color3.fromRGB(40, 55, 80), function() tpToLocation("Снаряжение") end) makeButton("🛒 Продуктовый", 228, Color3.fromRGB(40, 55, 80), function() tpToLocation("Продуктовый") end) makeButton("🔧 Дополнения", 274, Color3.fromRGB(40, 55, 80), function() tpToLocation("Дополнения") end) makeButton("✕ Закрыть", 328, Color3.fromRGB(80, 30, 30), function() stopAutoTP() ScreenGui:Destroy() end) print("[PIron] Loaded.")