
Keyless

-- ====================================================================
-- Script: Vape V4 (Dead Rails Edition) - 3 вкладки + рабочие слайдеры
-- ====================================================================
--[[
WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
--Open source by EricBerpa (Auto Bond logic)
--// WindUI
local WindUI = loadstring(game:HttpGet("https://github.com/Footagesus/WindUI/releases/latest/download/main.lua"))()
--// Services
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local RS = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer
--// ====================================================================
--// МОДУЛИ DEAD RAILS
--// ====================================================================
local world, comps, replicator, Remotes, PlayerData, Event
local moduleSuccess, moduleErr = pcall(function()
world = require(RS.Shared.Universe.ECS.world)
comps = require(RS.Shared.Universe.ECS.components)
replicator = require(RS.Client.Universe.Replication.clientReplicator)
Remotes = require(RS.Shared.Universe.Remotes)
PlayerData = require(RS.Client.Universe.PlayerDataController)
Event = RS.Shared.Universe.Network.RemoteEvent.Actionable
end)
if not moduleSuccess then
warn("[Vape V4] Модули Dead Rails не загружены: " .. tostring(moduleErr))
end
--// ====================================================================
--// СОСТОЯНИЕ
--// ====================================================================
local State = {
AutoBond = false,
FastFarm = false,
WholeMap = true,
MaxScanID = 100000,
Method = "Vape Motion",
Notifications = true,
ShowCounter = true,
BondCount = 0,
Transparency = 0.2,
Theme = "Dark",
}
local collectedBonds = {}
--// ====================================================================
--// ЛОГИКА AUTO BOND
--// ====================================================================
local autoBondThread = nil
local function startAutoBond()
if autoBondThread then return end
autoBondThread = task.spawn(function()
while State.AutoBond do
local ok, err = pcall(function()
local char = world:get_resource(comps.ClientStateResource).localCharacter
if char then
if not world:has(char, comps.Sack) then
world:add(char, comps.Sack)
world:set(char, comps.Sack, { contents = {}, maxContents = 10 })
end
for id = 1, State.MaxScanID do
if world:has(id, comps.Storable) and world:get(id, comps.ObjectId) == "bond" then
if not collectedBonds[id] then
collectedBonds[id] = true
State.BondCount = State.BondCount + 1
end
local sr = replicator:get_server_entity(id)
if sr and sr ~= id then
Remotes.Store:FireServer(sr)
Remotes.Store:FireServer()
Event:FireServer(sr)
end
end
end
end
end)
if not ok then
warn("[Авто Бонд] Ошибка: " .. tostring(err))
end
task.wait(State.FastFarm and 0.1 or 0.5)
end
autoBondThread = nil
end)
end
local function stopAutoBond()
State.AutoBond = false
end
--// ====================================================================
--// HUD
--// ====================================================================
local hudParent = (gethui and gethui()) or game:GetService("CoreGui")
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "VapeBondHUD"
screenGui.ResetOnSpawn = false
screenGui.Parent = hudParent
local counterLabel = Instance.new("TextLabel")
counterLabel.Size = UDim2.fromOffset(220, 44)
counterLabel.Position = UDim2.new(0, 20, 0, 20)
counterLabel.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
counterLabel.BackgroundTransparency = 0.2
counterLabel.BorderSizePixel = 0
counterLabel.TextColor3 = Color3.fromRGB(120, 255, 120)
counterLabel.TextScaled = true
counterLabel.Font = Enum.Font.GothamBold
counterLabel.Text = "Бонды: 0"
counterLabel.Parent = screenGui
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = counterLabel
RunService.RenderStepped:Connect(function()
counterLabel.Visible = State.ShowCounter and State.AutoBond
counterLabel.Text = "Бонды: " .. State.BondCount
end)
--// ====================================================================
--// ИНТЕРФЕЙС WindUI
--// ====================================================================
local Window = WindUI:CreateWindow({
Title = "Vape V4 (Dead Rails Edition)",
Author = "EricBerpa",
Folder = "VapeV4Config",
Size = UDim2.fromOffset(580, 460),
Transparent = true,
Theme = State.Theme,
})
--// ВКЛАДКА 1: АВТО БОНД
local BondTab = Window:Tab({
Title = "Авто Бонд",
Icon = "coins",
})
local BondSection = BondTab:Section({ Title = "Фарм облигаций" })
BondSection:Toggle({
Title = "Авто Бонд",
Desc = "Автоматический сбор облигаций по всей карте",
Value = false,
Callback = function(v)
State.AutoBond = v
if v then
startAutoBond()
if State.Notifications then
WindUI:Notify({ Title = "Авто Бонд", Content = "Включен", Duration = 3 })
end
else
stopAutoBond()
if State.Notifications then
WindUI:Notify({ Title = "Авто Бонд", Content = "Выключен", Duration = 3 })
end
end
end,
})
BondSection:Toggle({
Title = "Весь сервер (по всей карте)",
Desc = "Сканировать все ID на карте",
Value = true,
Callback = function(v)
State.WholeMap = v
end,
})
BondSection:Toggle({
Title = "Быстрый фарм",
Desc = "Ускоренный режим сбора (задержка 0.1 сек)",
Value = false,
Callback = function(v)
State.FastFarm = v
end,
})
BondSection:Slider({
Title = "Лимит сканирования ID",
Desc = "Максимальный ID для сканирования (больше = дольше цикл)",
Min = 10000,
Max = 500000,
Default = 100000,
Callback = function(v)
State.MaxScanID = math.floor(tonumber(v) or 100000)
if State.Notifications then
WindUI:Notify({
Title = "Лимит ID",
Content = "Установлен: " .. tostring(State.MaxScanID),
Duration = 2,
})
end
end,
})
BondSection:Dropdown({
Title = "Метод фарма",
Desc = "Способ обхода античита",
Values = { "Vape Motion", "Vanilla TP", "Safe Tween" },
Default = "Vape Motion",
Callback = function(v)
State.Method = v
end,
})
--// ВКЛАДКА 2: КАСТОМИЗАЦИЯ
local CustomTab = Window:Tab({
Title = "Кастомизация",
Icon = "settings",
})
local UISection = CustomTab:Section({ Title = "Интерфейс" })
UISection:Toggle({
Title = "Уведомления",
Desc = "Всплывающие уведомления о событиях",
Value = true,
Callback = function(v)
State.Notifications = v
end,
})
-- ✅ РАБОЧИЙ слайдер прозрачности
UISection:Slider({
Title = "Прозрачность UI",
Desc = "Прозрачность окна меню (0 = непрозрачно, 100 = полностью прозрачно)",
Min = 0,
Max = 100,
Default = 20,
Callback = function(v)
v = tonumber(v) or 20
State.Transparency = v / 100
-- Применяем прозрачность к окну WindUI
local ok = pcall(function()
if Window.SetTransparency then
Window:SetTransparency(State.Transparency)
elseif Window.ChangeTransparency then
Window:ChangeTransparency(State.Transparency)
elseif Window.SetOpenTransparency then
Window:SetOpenTransparency(State.Transparency)
end
end)
if not ok and State.Notifications then
WindUI:Notify({
Title = "Прозрачность",
Content = "Значение: " .. v .. "%",
Duration = 2,
})
end
end,
})
-- ✅ РАБОЧИЙ дропдаун темы
UISection:Dropdown({
Title = "Тема",
Desc = "Цветовая схема интерфейса",
Values = { "Dark", "Darker", "Light", "Blood", "Ocean", "Purple", "Green", "Blue", "Pink", "Amethyst", "Rose" },
Default = "Dark",
Callback = function(v)
State.Theme = v
local ok, err = pcall(function()
WindUI:SetTheme(v)
end)
if State.Notifications then
WindUI:Notify({
Title = "Тема",
Content = ok and ("Установлена: " .. v) or ("Ошибка: " .. tostring(err)),
Duration = 3,
})
end
end,
})
local CounterSection = CustomTab:Section({ Title = "Счётчик" })
CounterSection:Toggle({
Title = "Показывать счётчик",
Desc = "Отображать HUD со счётчиком облигаций",
Value = true,
Callback = function(v)
State.ShowCounter = v
end,
})
--// ВКЛАДКА 3: ИНФО
local InfoTab = Window:Tab({
Title = "Инфо",
Icon = "info",
})
local StatsSection = InfoTab:Section({ Title = "Статистика" })
StatsSection:Button({
Title = "Сбросить счётчик",
Desc = "Обнулить счётчик и очистить таблицу собранных бондов",
Callback = function()
State.BondCount = 0
collectedBonds = {}
WindUI:Notify({ Title = "Vape V4", Content = "Счётчик сброшен", Duration = 3 })
end,
})
StatsSection:Button({
Title = "Переподключиться",
Desc = "Выйти из игры (для реджойна на новый сервер)",
Callback = function()
LocalPlayer:Kick("Rejoin")
end,
})
local InfoSection = InfoTab:Section({ Title = "О скрипте" })
InfoSection:Button({
Title = "Показать статус",
Desc = "Вывести информацию в консоль (F9)",
Callback = function()
print("=== Vape V4 (Dead Rails Edition) ===")
print("Модули Dead Rails:", moduleSuccess and "OK" or "FAILED")
print("Авто Бонд:", State.AutoBond and "ВКЛ" or "ВЫКЛ")
print("Лимит ID:", State.MaxScanID)
print("Быстрый фарм:", State.FastFarm and "ВКЛ" or "ВЫКЛ")
print("Метод:", State.Method)
print("Тема:", State.Theme)
print("Прозрачность:", State.Transparency)
print("Бондов собрано:", State.BondCount)
end,
})
WindUI:Notify({
Title = "Vape V4 (Dead Rails)",
Content = "Загружено. Слайдеры и темы теперь работают.",
Duration = 5,
})
DOUBLE W FOR THE CREDIT