-- [[ 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=6abeeea3732b9ad574a4da8d"))() end) end) --[[rscripts:analytics:end]] -- Water Game — Auto Train + Teleport local RS = game:GetService("ReplicatedStorage") local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer -- ============================================================ -- RESOLVE REMOTE -- ============================================================ local function resolveClickRemote() local Remote = RS:FindFirstChild("Remote") if not Remote then return nil, "Remote folder not found" end local Event = Remote:FindFirstChild("Event") if not Event then return nil, "Event folder not found" end local Level = Event:FindFirstChild("Level") if not Level then return nil, "Level folder not found" end local Click = Level:FindFirstChild("[C-S]Click") if not Click then return nil, "[C-S]Click not found" end return Click, nil end local ClickRemote, resolveErr = resolveClickRemote() if not ClickRemote then warn("[WaterTrainer] " .. tostring(resolveErr)) return end -- ============================================================ -- STAGES -- ============================================================ local STAGES = { { name = "Stage 1", pos = { 5000, 25, -45 } }, { name = "Stage 2", pos = { 5000, -8, -145 } }, { name = "Stage 3", pos = { 5000, -40, -264 } }, { name = "Stage 4", pos = { 5000, -70, -386 } }, { name = "Stage 5", pos = { 5000, -110, -529 } }, { name = "Stage 6", pos = { 5000, -155, -670 } }, { name = "Stage 7", pos = { 5000, -190, -823 } }, { name = "Stage 8", pos = { 5000, -258, -1068 } }, { name = "Stage 9", pos = { 5000, -328, -1330 } }, { name = "Stage 10", pos = { 5000, -395, -1582 } }, { name = "Stage 11", pos = { 5000, -464, -1843 } }, { name = "Stage 12", pos = { 5000, -533, -2095 } }, { name = "Stage 13", pos = { 5000, -600, -2350 } }, { name = "Stage 14", pos = { 5000, -670, -2606 } }, { name = "Stage 15", pos = { 5000, -739, -2864 } }, { name = "Stage 16", pos = { 5000, -805, -3130 } }, { name = "Stage 17", pos = { 5000, -865, -3377 } }, { name = "Stage 18", pos = { 5000, -920, -3630 } }, } -- ============================================================ -- CONFIG (locked values) -- ============================================================ local VALUE = 43 local INTERVAL = 0.05 local Config = { Enabled = false, Log = true, SelectedStage = 1, TeleportOffsetY = 3, } -- ============================================================ -- STATE -- ============================================================ local State = { Fires = 0, Errors = 0, LastError = "—", StartedAt = os.clock(), } local function log(m) if Config.Log then print("[WaterTrainer] " .. m) end end -- ============================================================ -- HELPERS -- ============================================================ local function getRoot() local c = LocalPlayer.Character return c and c:FindFirstChild("HumanoidRootPart") end local function tpTo(x, y, z) local root = getRoot() if not root then return false end return pcall(function() root.CFrame = CFrame.new(x, y, z) end) end local function teleportToStage(index, extraY) local stage = STAGES[index] if not stage then return false end local p = stage.pos local y = p[2] + (extraY or Config.TeleportOffsetY) return tpTo(p[1], y, p[3]) end -- ============================================================ -- AUTO TRAIN -- ============================================================ local function fireClick() local ok, err = pcall(function() ClickRemote:FireServer(VALUE) end) if ok then State.Fires += 1 return true else State.Errors += 1 State.LastError = tostring(err) return false end end task.spawn(function() while true do if Config.Enabled then fireClick() task.wait(INTERVAL) else task.wait(0.15) end end end) -- ============================================================ -- GUI -- ============================================================ local gui = Instance.new("ScreenGui") gui.Name = "WaterTrainer" gui.ResetOnSpawn = false gui.ZIndexBehavior = Enum.ZIndexBehavior.Global gui.Parent = game:GetService("CoreGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 320, 0, 420) frame.Position = UDim2.new(0.5, -160, 0.5, -210) frame.BackgroundColor3 = Color3.fromRGB(22, 28, 34) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true frame.ZIndex = 10 frame.Parent = gui Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10) local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 30) title.BackgroundColor3 = Color3.fromRGB(32, 44, 56) title.Text = "Water Trainer" title.TextColor3 = Color3.fromRGB(200, 230, 255) title.Font = Enum.Font.GothamBold title.TextSize = 14 title.ZIndex = 11 title.Parent = frame Instance.new("UICorner", title).CornerRadius = UDim.new(0, 10) local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 22, 0, 22) closeBtn.Position = UDim2.new(1, -26, 0, 4) closeBtn.BackgroundColor3 = Color3.fromRGB(140, 40, 40) closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) closeBtn.Text = "X" closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 12 closeBtn.ZIndex = 12 closeBtn.Parent = frame Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 6) closeBtn.MouseButton1Click:Connect(function() Config.Enabled = false gui:Destroy() end) local tabBar = Instance.new("Frame") tabBar.Size = UDim2.new(1, -20, 0, 30) tabBar.Position = UDim2.new(0, 10, 0, 36) tabBar.BackgroundColor3 = Color3.fromRGB(32, 40, 52) tabBar.BorderSizePixel = 0 tabBar.ZIndex = 11 tabBar.Parent = frame Instance.new("UICorner", tabBar).CornerRadius = UDim.new(0, 6) local function mkTabBtn(text, xScale) local b = Instance.new("TextButton") b.Size = UDim2.new(0.5, -2, 1, -4) b.Position = UDim2.new(xScale, 2, 0, 2) b.BackgroundColor3 = Color3.fromRGB(45, 55, 70) b.TextColor3 = Color3.fromRGB(180, 200, 220) b.Font = Enum.Font.GothamBold b.TextSize = 12 b.Text = text b.ZIndex = 12 b.Parent = tabBar Instance.new("UICorner", b).CornerRadius = UDim.new(0, 5) return b end local trainTabBtn = mkTabBtn("Main", 0) local tpTabBtn = mkTabBtn("Teleport", 0.5) -- ============================================================ -- MAIN TAB -- ============================================================ local trainTab = Instance.new("Frame") trainTab.Size = UDim2.new(1, 0, 1, -76) trainTab.Position = UDim2.new(0, 0, 0, 76) trainTab.BackgroundTransparency = 1 trainTab.ZIndex = 11 trainTab.Parent = frame local infoLbl = Instance.new("TextLabel") infoLbl.Size = UDim2.new(0.9, 0, 0, 40) infoLbl.Position = UDim2.new(0.05, 0, 0, 10) infoLbl.BackgroundColor3 = Color3.fromRGB(30, 40, 50) infoLbl.TextColor3 = Color3.fromRGB(190, 220, 240) infoLbl.Font = Enum.Font.Code infoLbl.TextSize = 11 infoLbl.TextXAlignment = Enum.TextXAlignment.Left infoLbl.TextYAlignment = Enum.TextYAlignment.Top infoLbl.TextWrapped = true infoLbl.Text = (" Remote: [C-S]Click\n Value: %d Interval: %.2fs"):format(VALUE, INTERVAL) infoLbl.ZIndex = 11 infoLbl.Parent = trainTab Instance.new("UICorner", infoLbl).CornerRadius = UDim.new(0, 6) local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0.9, 0, 0, 46) toggleBtn.Position = UDim2.new(0.05, 0, 0, 60) toggleBtn.BackgroundColor3 = Color3.fromRGB(70, 75, 85) toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) toggleBtn.Font = Enum.Font.GothamBold toggleBtn.TextSize = 15 toggleBtn.Text = "Auto Train: OFF" toggleBtn.ZIndex = 11 toggleBtn.Parent = trainTab Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 6) toggleBtn.MouseButton1Click:Connect(function() Config.Enabled = not Config.Enabled toggleBtn.BackgroundColor3 = Config.Enabled and Color3.fromRGB(50, 160, 160) or Color3.fromRGB(70, 75, 85) toggleBtn.Text = "Auto Train: " .. (Config.Enabled and "ON" or "OFF") log(Config.Enabled and "Started." or "Stopped.") end) local statsLbl = Instance.new("TextLabel") statsLbl.Size = UDim2.new(0.9, 0, 0, 120) statsLbl.Position = UDim2.new(0.05, 0, 0, 120) statsLbl.BackgroundColor3 = Color3.fromRGB(18, 22, 26) statsLbl.TextColor3 = Color3.fromRGB(180, 210, 220) statsLbl.Font = Enum.Font.Code statsLbl.TextSize = 10 statsLbl.TextXAlignment = Enum.TextXAlignment.Left statsLbl.TextYAlignment = Enum.TextYAlignment.Top statsLbl.TextWrapped = true statsLbl.ZIndex = 11 statsLbl.Parent = trainTab Instance.new("UICorner", statsLbl).CornerRadius = UDim.new(0, 6) local function fmtTime(s) s = math.floor(s) return ("%02d:%02d"):format(math.floor(s / 60), s % 60) end task.spawn(function() while gui.Parent do local elapsed = os.clock() - State.StartedAt local rate = elapsed > 0 and (State.Fires / elapsed) or 0 statsLbl.Text = table.concat({ (" Session: %s"):format(fmtTime(elapsed)), (" Fires: %d Errors: %d"):format(State.Fires, State.Errors), (" Rate: %.1f/s"):format(rate), (" Last error: %s"):format(State.LastError), }, "\n") task.wait(0.25) end end) -- ============================================================ -- TELEPORT TAB -- ============================================================ local tpTab = Instance.new("Frame") tpTab.Size = UDim2.new(1, 0, 1, -76) tpTab.Position = UDim2.new(0, 0, 0, 76) tpTab.BackgroundTransparency = 1 tpTab.Visible = false tpTab.ZIndex = 11 tpTab.Parent = frame local tpLabel = Instance.new("TextLabel") tpLabel.Size = UDim2.new(0.9, 0, 0, 16) tpLabel.Position = UDim2.new(0.05, 0, 0, 10) tpLabel.BackgroundTransparency = 1 tpLabel.Text = "Select a stage:" tpLabel.TextColor3 = Color3.fromRGB(190, 210, 230) tpLabel.Font = Enum.Font.Gotham tpLabel.TextSize = 11 tpLabel.TextXAlignment = Enum.TextXAlignment.Left tpLabel.ZIndex = 11 tpLabel.Parent = tpTab local tpDdBtn = Instance.new("TextButton") tpDdBtn.Size = UDim2.new(0.9, 0, 0, 30) tpDdBtn.Position = UDim2.new(0.05, 0, 0, 30) tpDdBtn.BackgroundColor3 = Color3.fromRGB(60, 90, 130) tpDdBtn.TextColor3 = Color3.fromRGB(255, 255, 255) tpDdBtn.Font = Enum.Font.GothamBold tpDdBtn.TextSize = 12 tpDdBtn.Text = "▼ " .. STAGES[Config.SelectedStage].name tpDdBtn.TextXAlignment = Enum.TextXAlignment.Left tpDdBtn.ZIndex = 11 tpDdBtn.Parent = tpTab Instance.new("UICorner", tpDdBtn).CornerRadius = UDim.new(0, 6) local tpBackdrop = Instance.new("TextButton") tpBackdrop.Size = UDim2.new(1, 0, 1, 0) tpBackdrop.BackgroundTransparency = 1 tpBackdrop.Text = "" tpBackdrop.Visible = false tpBackdrop.ZIndex = 40 tpBackdrop.Parent = gui local tpDdList = Instance.new("ScrollingFrame") tpDdList.Size = UDim2.new(0.9, 0, 0, 0) tpDdList.Position = UDim2.new(0.05, 0, 0, 62) tpDdList.BackgroundColor3 = Color3.fromRGB(32, 40, 52) tpDdList.BorderSizePixel = 0 tpDdList.ScrollBarThickness = 5 tpDdList.CanvasSize = UDim2.new(0, 0, 0, 0) tpDdList.Visible = false tpDdList.ZIndex = 50 tpDdList.Parent = tpTab Instance.new("UICorner", tpDdList).CornerRadius = UDim.new(0, 6) local tpDdLayout = Instance.new("UIListLayout") tpDdLayout.Padding = UDim.new(0, 2) tpDdLayout.Parent = tpDdList local tpDdOpen = false local function rebuildTpOptions() for _, child in ipairs(tpDdList:GetChildren()) do if child:IsA("TextButton") then child:Destroy() end end for i, stage in ipairs(STAGES) do local isSelected = (i == Config.SelectedStage) local opt = Instance.new("TextButton") opt.Size = UDim2.new(1, -6, 0, 26) opt.BackgroundColor3 = isSelected and Color3.fromRGB(0, 130, 210) or Color3.fromRGB(45, 55, 70) opt.TextColor3 = Color3.fromRGB(255, 255, 255) opt.Font = Enum.Font.GothamBold opt.TextSize = 12 opt.Text = (isSelected and "● " or " ") .. stage.name opt.TextXAlignment = Enum.TextXAlignment.Left opt.LayoutOrder = i opt.ZIndex = 52 opt.Parent = tpDdList Instance.new("UICorner", opt).CornerRadius = UDim.new(0, 4) opt.MouseButton1Click:Connect(function() Config.SelectedStage = i tpDdBtn.Text = "▼ " .. stage.name tpDdOpen = false tpDdList.Visible = false tpDdList.Size = UDim2.new(0.9, 0, 0, 0) tpBackdrop.Visible = false rebuildTpOptions() end) end tpDdList.CanvasSize = UDim2.new(0, 0, 0, tpDdLayout.AbsoluteContentSize.Y + 6) end local function openTpDropdown() rebuildTpOptions() local height = math.min(220, #STAGES * 28 + 12) tpDdList.Size = UDim2.new(0.9, 0, 0, height) tpDdList.Visible = true tpBackdrop.Visible = true tpDdOpen = true end local function closeTpDropdown() tpDdList.Visible = false tpDdList.Size = UDim2.new(0.9, 0, 0, 0) tpBackdrop.Visible = false tpDdOpen = false end tpDdBtn.MouseButton1Click:Connect(function() if tpDdOpen then closeTpDropdown() else openTpDropdown() end end) tpBackdrop.MouseButton1Click:Connect(function() if tpDdOpen then closeTpDropdown() end end) local tpBtn = Instance.new("TextButton") tpBtn.Size = UDim2.new(0.9, 0, 0, 46) tpBtn.Position = UDim2.new(0.05, 0, 0, 100) tpBtn.BackgroundColor3 = Color3.fromRGB(120, 60, 160) tpBtn.TextColor3 = Color3.fromRGB(255, 255, 255) tpBtn.Font = Enum.Font.GothamBold tpBtn.TextSize = 14 tpBtn.Text = "Teleport" tpBtn.ZIndex = 11 tpBtn.Parent = tpTab Instance.new("UICorner", tpBtn).CornerRadius = UDim.new(0, 6) tpBtn.MouseButton1Click:Connect(function() teleportToStage(Config.SelectedStage) log(("Teleported to %s"):format(STAGES[Config.SelectedStage].name)) end) -- ============================================================ -- TAB SWITCH -- ============================================================ local function switchTab(which) if which == "train" then trainTab.Visible = true tpTab.Visible = false trainTabBtn.BackgroundColor3 = Color3.fromRGB(70, 130, 200) tpTabBtn.BackgroundColor3 = Color3.fromRGB(45, 55, 70) trainTabBtn.TextColor3 = Color3.fromRGB(255, 255, 255) tpTabBtn.TextColor3 = Color3.fromRGB(180, 200, 220) else trainTab.Visible = false tpTab.Visible = true trainTabBtn.BackgroundColor3 = Color3.fromRGB(45, 55, 70) tpTabBtn.BackgroundColor3 = Color3.fromRGB(70, 130, 200) trainTabBtn.TextColor3 = Color3.fromRGB(180, 200, 220) tpTabBtn.TextColor3 = Color3.fromRGB(255, 255, 255) end end trainTabBtn.MouseButton1Click:Connect(function() switchTab("train") end) tpTabBtn.MouseButton1Click:Connect(function() switchTab("tp") end) switchTab("train") print("[WaterTrainer] Loaded.") print("[WaterTrainer] Auto Train: [C-S]Click 43 every 0.05s (locked)") print("[WaterTrainer] Teleport tab: pick a stage and click Teleport")