-- [[ 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 ]] local ReplicatedStorage = game:GetService("ReplicatedStorage") local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer repeat task.wait(0.2) until LocalPlayer:GetAttribute("dataLoaded") local devv = ReplicatedStorage:WaitForChild("devv") local load = require(devv).load local v3item = load("v3item") local inventory = v3item.inventory local v3items = load("v3items") local makeToast = load("makeToast") -- ============================================================ -- КОНФИГ ПРЕДМЕТОВ -- ============================================================ local ITEMS = { -- Kunai { name = "Kunai", guid = "kunai-spoof-001", color = Color3.fromRGB(220, 220, 220), }, { name = "Spirit Kunai", guid = "spirit-kunai-spoof-001", color = Color3.fromRGB(180, 120, 255), }, -- Balloon { name = "Dollar Balloon", guid = "dollar-balloon-spoof-001", color = Color3.fromRGB(80, 220, 120), }, -- Roses { name = "Rose", guid = "rose-spoof-001", color = Color3.fromRGB(230, 90, 110), }, { name = "Black Rose", guid = "black-rose-spoof-001", color = Color3.fromRGB(120, 60, 150), }, { name = "Golden Rose", guid = "golden-rose-spoof-001", color = Color3.fromRGB(240, 200, 60), }, } -- ============================================================ -- ЯДРО ИНЖЕКТОРА -- ============================================================ local Injected = {} local ActiveLoops = {} local function buildServerItem(cfg) return { guid = cfg.guid, name = cfg.name, skin = nil, ammo = nil, ammoOut = nil, isPremium = false, isStashed = false, stashId = nil, itemState = nil, } end -- Проверка наличия в индексе игры local okCount, failCount = 0, 0 for _, cfg in ipairs(ITEMS) do local data = v3items.getItemData(cfg.name) if data then okCount = okCount + 1 print("[Injector] ✓ " .. cfg.name) else failCount = failCount + 1 warn("[Injector] ✗ НЕ найден в v3items: " .. cfg.name) end end print(string.format("[Injector] Найдено %d/%d предметов", okCount, okCount + failCount)) -- ПАТЧ 1: inventory.update local originalUpdate = inventory.update inventory.update = function(items) if items and typeof(items) == "table" then for _, cfg in ipairs(ITEMS) do if Injected[cfg.guid] then local has = false for _, it in ipairs(items) do if it.guid == cfg.guid or it.name == cfg.name then has = true break end end if not has then table.insert(items, buildServerItem(cfg)) end end end end return originalUpdate(items) end -- ПАТЧ 2: inventory.remove local originalRemove = inventory.remove inventory.remove = function(guid) for _, cfg in ipairs(ITEMS) do if guid == cfg.guid and Injected[cfg.guid] then return end end return originalRemove(guid) end -- ПАТЧ 3: setEquipped local originalSetEquipped = inventory.setEquipped inventory.setEquipped = function(guid) for _, cfg in ipairs(ITEMS) do if guid == cfg.guid and Injected[cfg.guid] then local item = inventory.items[cfg.guid] if item then for _, other in pairs(inventory.items) do if other ~= item and other.equipped then pcall(function() other:SetEquipped(false, true) end) end end pcall(function() item:SetEquipped(true) end) return end end end return originalSetEquipped(guid) end -- ============================================================ -- ИНЖЕКТ / УДАЛЕНИЕ / АВТО-ВОССТАНОВЛЕНИЕ -- ============================================================ local function inject(cfg) Injected[cfg.guid] = true if inventory.items[cfg.guid] then return inventory.items[cfg.guid] end local item = inventory.add(buildServerItem(cfg), false) if item then print("[Injector] ✓ Выдан: " .. cfg.name) pcall(function() makeToast(cfg.name .. " (spoof) выдан!", "green", 3) end) else warn("[Injector] ✗ add вернул nil для " .. cfg.name) end return item end local function removeInjected(cfg) Injected[cfg.guid] = false if ActiveLoops[cfg.guid] then pcall(task.cancel, ActiveLoops[cfg.guid]) ActiveLoops[cfg.guid] = nil end if inventory.items[cfg.guid] then pcall(function() local item = inventory.items[cfg.guid] if item.equipped then pcall(function() item:SetEquipped(false) end) end if item.button and item.button.clean then pcall(function() item.button:clean() end) end if item.backpackButton and item.backpackButton.clean then pcall(function() item.backpackButton:clean() end) end inventory.items[cfg.guid] = nil if item.clean then pcall(function() item:clean() end) end inventory.rerender() end) print("[Injector] ✗ Удалён: " .. cfg.name) end end local function startAutoRestore(cfg) if ActiveLoops[cfg.guid] then pcall(task.cancel, ActiveLoops[cfg.guid]) end ActiveLoops[cfg.guid] = task.spawn(function() while Injected[cfg.guid] do task.wait(3) if Injected[cfg.guid] and not inventory.items[cfg.guid] then print("[Injector] " .. cfg.name .. " пропал — переинжект...") inject(cfg) end end end) end -- ============================================================ -- GUI -- ============================================================ local screenGui = Instance.new("ScreenGui") screenGui.Name = "ItemInjectorGUI" screenGui.ResetOnSpawn = false screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") local mainFrame = Instance.new("Frame") mainFrame.Name = "Main" mainFrame.Size = UDim2.new(0, 360, 0, 560) mainFrame.Position = UDim2.new(0, 50, 0, 80) mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 10) mainCorner.Parent = mainFrame local mainStroke = Instance.new("UIStroke") mainStroke.Color = Color3.fromRGB(90, 90, 110) mainStroke.Thickness = 1.5 mainStroke.Parent = mainFrame -- Заголовок local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 40) title.BackgroundColor3 = Color3.fromRGB(35, 35, 45) title.BorderSizePixel = 0 title.Text = "⚔ Item Injector ⚔" title.TextColor3 = Color3.fromRGB(240, 240, 255) title.Font = Enum.Font.GothamBold title.TextSize = 16 title.Parent = mainFrame local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 10) titleCorner.Parent = title -- Кнопка закрытия local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 30, 0, 30) closeBtn.Position = UDim2.new(1, -35, 0, 5) closeBtn.BackgroundColor3 = Color3.fromRGB(220, 60, 60) closeBtn.BorderSizePixel = 0 closeBtn.Text = "✕" closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 14 closeBtn.Parent = mainFrame local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0, 8) closeCorner.Parent = closeBtn closeBtn.MouseButton1Click:Connect(function() screenGui.Enabled = false end) -- Верхняя панель действий (Выдать всё / Удалить всё) local topBar = Instance.new("Frame") topBar.Size = UDim2.new(1, -20, 0, 30) topBar.Position = UDim2.new(0, 10, 0, 48) topBar.BackgroundColor3 = Color3.fromRGB(30, 30, 38) topBar.BorderSizePixel = 0 topBar.Parent = mainFrame local topBarCorner = Instance.new("UICorner") topBarCorner.CornerRadius = UDim.new(0, 6) topBarCorner.Parent = topBar local giveAllBtn = Instance.new("TextButton") giveAllBtn.Size = UDim2.new(0.5, -5, 1, 0) giveAllBtn.Position = UDim2.new(0, 0, 0, 0) giveAllBtn.BackgroundColor3 = Color3.fromRGB(60, 160, 90) giveAllBtn.BorderSizePixel = 0 giveAllBtn.Text = "Выдать всё" giveAllBtn.TextColor3 = Color3.fromRGB(255, 255, 255) giveAllBtn.Font = Enum.Font.GothamBold giveAllBtn.TextSize = 12 giveAllBtn.Parent = topBar local giveAllCorner = Instance.new("UICorner") giveAllCorner.CornerRadius = UDim.new(0, 6) giveAllCorner.Parent = giveAllBtn local delAllBtn = Instance.new("TextButton") delAllBtn.Size = UDim2.new(0.5, -5, 1, 0) delAllBtn.Position = UDim2.new(0.5, 5, 0, 0) delAllBtn.BackgroundColor3 = Color3.fromRGB(200, 70, 70) delAllBtn.BorderSizePixel = 0 delAllBtn.Text = "Удалить всё" delAllBtn.TextColor3 = Color3.fromRGB(255, 255, 255) delAllBtn.Font = Enum.Font.GothamBold delAllBtn.TextSize = 12 delAllBtn.Parent = topBar local delAllCorner = Instance.new("UICorner") delAllCorner.CornerRadius = UDim.new(0, 6) delAllCorner.Parent = delAllBtn -- Скроллящийся список local scroll = Instance.new("ScrollingFrame") scroll.Size = UDim2.new(1, -20, 1, -150) scroll.Position = UDim2.new(0, 10, 0, 85) scroll.BackgroundColor3 = Color3.fromRGB(20, 20, 25) scroll.BorderSizePixel = 0 scroll.ScrollBarThickness = 4 scroll.ScrollBarImageColor3 = Color3.fromRGB(80, 80, 100) scroll.CanvasSize = UDim2.new(0, 0, 0, 0) scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y scroll.Parent = mainFrame local scrollCorner = Instance.new("UICorner") scrollCorner.CornerRadius = UDim.new(0, 8) scrollCorner.Parent = scroll local listLayout = Instance.new("UIListLayout") listLayout.Padding = UDim.new(0, 8) listLayout.SortOrder = Enum.SortOrder.LayoutOrder listLayout.Parent = scroll local listPadding = Instance.new("UIPadding") listPadding.PaddingTop = UDim.new(0, 8) listPadding.PaddingLeft = UDim.new(0, 8) listPadding.PaddingRight = UDim.new(0, 8) listPadding.PaddingBottom = UDim.new(0, 8) listPadding.Parent = scroll -- Хранилище для функций обновления статуса local statusUpdaters = {} -- Карточка предмета local function makeItemCard(cfg) local card = Instance.new("Frame") card.Size = UDim2.new(1, 0, 0, 105) card.BackgroundColor3 = Color3.fromRGB(35, 35, 45) card.BorderSizePixel = 0 card.Parent = scroll local cardCorner = Instance.new("UICorner") cardCorner.CornerRadius = UDim.new(0, 8) cardCorner.Parent = card local cardStroke = Instance.new("UIStroke") cardStroke.Color = cfg.color cardStroke.Thickness = 1 cardStroke.Transparency = 0.4 cardStroke.Parent = card local nameLbl = Instance.new("TextLabel") nameLbl.Size = UDim2.new(1, -20, 0, 25) nameLbl.Position = UDim2.new(0, 10, 0, 6) nameLbl.BackgroundTransparency = 1 nameLbl.Text = cfg.name nameLbl.TextColor3 = cfg.color nameLbl.Font = Enum.Font.GothamBold nameLbl.TextSize = 15 nameLbl.TextXAlignment = Enum.TextXAlignment.Left nameLbl.Parent = card local function makeButton(text, xPos, xSize, bgColor) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, xSize, 0, 30) btn.Position = UDim2.new(0, xPos, 0, 40) btn.BackgroundColor3 = bgColor btn.BorderSizePixel = 0 btn.Text = text btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.Font = Enum.Font.GothamBold btn.TextSize = 12 btn.Parent = card local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 6) c.Parent = btn return btn end local giveBtn = makeButton("Выдать", 10, 90, Color3.fromRGB(60, 160, 90)) local equipBtn = makeButton("Экип.", 105, 80, Color3.fromRGB(60, 120, 200)) local delBtn = makeButton("Удалить", 190, 90, Color3.fromRGB(200, 70, 70)) local statusLbl = Instance.new("TextLabel") statusLbl.Size = UDim2.new(1, -20, 0, 18) statusLbl.Position = UDim2.new(0, 10, 0, 76) statusLbl.BackgroundTransparency = 1 statusLbl.Text = "Статус: не выдан" statusLbl.TextColor3 = Color3.fromRGB(160, 160, 180) statusLbl.Font = Enum.Font.Gotham statusLbl.TextSize = 11 statusLbl.TextXAlignment = Enum.TextXAlignment.Left statusLbl.Parent = card local function updateStatus() if inventory.items[cfg.guid] then local tag = Injected[cfg.guid] and "✓ в инвентаре (авто)" or "✓ в инвентаре" statusLbl.Text = "Статус: " .. tag statusLbl.TextColor3 = Color3.fromRGB(100, 220, 130) else statusLbl.Text = "Статус: не выдан" statusLbl.TextColor3 = Color3.fromRGB(160, 160, 180) end end giveBtn.MouseButton1Click:Connect(function() inject(cfg) startAutoRestore(cfg) updateStatus() end) equipBtn.MouseButton1Click:Connect(function() if not inventory.items[cfg.guid] then pcall(function() makeToast("Сначала выдай предмет!", "yellow", 2) end) return end local item = inventory.items[cfg.guid] pcall(function() for _, other in pairs(inventory.items) do if other ~= item and other.equipped then other:SetEquipped(false, true) end end item:SetEquipped(true) end) updateStatus() end) delBtn.MouseButton1Click:Connect(function() removeInjected(cfg) pcall(function() makeToast(cfg.name .. " удалён", "yellow", 2) end) updateStatus() end) -- сохраняем апдейтер для кнопки "выдать всё" table.insert(statusUpdaters, updateStatus) task.spawn(function() while card.Parent do task.wait(1) updateStatus() end end) end for _, cfg in ipairs(ITEMS) do makeItemCard(cfg) end -- Кнопка "Выдать всё" giveAllBtn.MouseButton1Click:Connect(function() for _, cfg in ipairs(ITEMS) do inject(cfg) startAutoRestore(cfg) end pcall(function() makeToast("Все предметы выданы!", "green", 3) end) for _, upd in ipairs(statusUpdaters) do pcall(upd) end end) -- Кнопка "Удалить всё" delAllBtn.MouseButton1Click:Connect(function() for _, cfg in ipairs(ITEMS) do removeInjected(cfg) end pcall(function() makeToast("Все предметы удалены", "yellow", 3) end) for _, upd in ipairs(statusUpdaters) do pcall(upd) end end) -- Подвал local footer = Instance.new("TextLabel") footer.Size = UDim2.new(1, -20, 0, 25) footer.Position = UDim2.new(0, 10, 1, -35) footer.BackgroundTransparency = 1 footer.Text = "Перетаскивай за заголовок • F1 — вкл/выкл" footer.TextColor3 = Color3.fromRGB(130, 130, 150) footer.Font = Enum.Font.Gotham footer.TextSize = 10 footer.Parent = mainFrame -- F1 UserInputService.InputBegan:Connect(function(input, gp) if gp then return end if input.KeyCode == Enum.KeyCode.F1 then screenGui.Enabled = not screenGui.Enabled end end) print(" F1 — Show/hide")