explore
key systems
new
docs
discord
search scripts
⌘K
explore
key systems
new
docs
discord
sign in
⌘↵
--
publishes from anywhere on this page
new paste
untitled.luau
empty
/ 512kb
open file
⌘O
explore
key systems
new
docs
sign in
hutan-copy.lua
650 lines · 22.1kb
/ 512kb
open file
⌘O
local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local CoreGui = game:GetService("CoreGui") local TargetParent = (typeof(gethui) == "function" and gethui()) or CoreGui or Players.LocalPlayer:WaitForChild("PlayerGui") local LocalPlayer = Players.LocalPlayer local OldGui = TargetParent:FindFirstChild("NarutoWaterWalkNeon") if OldGui then OldGui:Destroy() end local isWaterWalkEnabled = false local platform = nil local waterWalkConnection = nil local CurrentSpeed = 30 local FontExtraBold = Font.new("rbxasset://fonts/families/GothamSSm.json", Enum.FontWeight.ExtraBold, Enum.FontStyle.Normal) local FontBold = Font.new("rbxasset://fonts/families/GothamSSm.json", Enum.FontWeight.Bold, Enum.FontStyle.Normal) local NeonHeaderGrad = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(22, 45, 24)), ColorSequenceKeypoint.new(0.45, Color3.fromRGB(45, 175, 50)), ColorSequenceKeypoint.new(0.65, Color3.fromRGB(58, 255, 55)), ColorSequenceKeypoint.new(1, Color3.fromRGB(16, 65, 18)) }) local NeonButtonGrad = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(160, 255, 160)), ColorSequenceKeypoint.new(0.08, Color3.fromRGB(58, 255, 55)), ColorSequenceKeypoint.new(1, Color3.fromRGB(18, 115, 12)) }) local DarkButtonGrad = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(75, 80, 88)), ColorSequenceKeypoint.new(0.08, Color3.fromRGB(45, 48, 55)), ColorSequenceKeypoint.new(1, Color3.fromRGB(22, 24, 28)) }) local TextShineGrad = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(0.48, Color3.fromRGB(255, 255, 255)), ColorSequenceKeypoint.new(0.52, Color3.fromRGB(215, 215, 215)), ColorSequenceKeypoint.new(1, Color3.fromRGB(235, 235, 235)) }) local function Tween(obj, props, duration, style, dir) local t = TweenService:Create(obj, TweenInfo.new(duration or 0.18, style or Enum.EasingStyle.Quint, dir or Enum.EasingDirection.Out), props) t:Play() return t end local function AddStroke(parent, thickness, color, trans, mode) local stroke = Instance.new("UIStroke") stroke.Thickness = thickness or 1.8 stroke.Color = color or Color3.fromRGB(0, 0, 0) stroke.Transparency = trans or 0 stroke.ApplyStrokeMode = mode or Enum.ApplyStrokeMode.Border stroke.LineJoinMode = Enum.LineJoinMode.Round stroke.Parent = parent return stroke end local function StyleText(label, useShine) AddStroke(label, 1.6, Color3.fromRGB(0, 0, 0), 0, Enum.ApplyStrokeMode.Contextual) if useShine then local grad = Instance.new("UIGradient") grad.Color = TextShineGrad grad.Rotation = 90 grad.Parent = label end end local function AddScaleFeedback(btn, hoverScale, pressScale) local scale = Instance.new("UIScale") scale.Parent = btn local hovering = false btn.MouseEnter:Connect(function() hovering = true Tween(scale, {Scale = hoverScale or 1.035}, 0.1, Enum.EasingStyle.Quad) end) btn.MouseLeave:Connect(function() hovering = false Tween(scale, {Scale = 1}, 0.1, Enum.EasingStyle.Quad) end) btn.MouseButton1Down:Connect(function() Tween(scale, {Scale = pressScale or 0.95}, 0.055, Enum.EasingStyle.Quad) end) btn.MouseButton1Up:Connect(function() Tween(scale, {Scale = hovering and (hoverScale or 1.035) or 1}, 0.08, Enum.EasingStyle.Quad) end) return scale end local function removePlatform() if platform then platform:Destroy() platform = nil end end local Screen = Instance.new("ScreenGui") Screen.Name = "NarutoWaterWalkNeon" Screen.ResetOnSpawn = false Screen.IgnoreGuiInset = true Screen.DisplayOrder = 999 Screen.ZIndexBehavior = Enum.ZIndexBehavior.Sibling Screen.Parent = TargetParent local FloatingToggleBtn = Instance.new("TextButton") FloatingToggleBtn.Name = "FloatingWaterBtn" FloatingToggleBtn.AnchorPoint = Vector2.new(0, 0.5) FloatingToggleBtn.Position = UDim2.new(0, 16, 0.45, 0) FloatingToggleBtn.Size = UDim2.fromOffset(110, 36) FloatingToggleBtn.BackgroundColor3 = Color3.fromRGB(8, 38, 10) FloatingToggleBtn.BorderSizePixel = 0 FloatingToggleBtn.AutoButtonColor = false FloatingToggleBtn.Text = "" FloatingToggleBtn.ZIndex = 50 FloatingToggleBtn.Active = true FloatingToggleBtn.Parent = Screen AddStroke(FloatingToggleBtn, 2, Color3.fromRGB(0, 0, 0), 0) AddScaleFeedback(FloatingToggleBtn, 1.05, 0.95) local FloatColor = Instance.new("Frame") FloatColor.AnchorPoint = Vector2.new(0.5, 0) FloatColor.Position = UDim2.fromScale(0.5, 0) FloatColor.Size = UDim2.fromScale(1, 0.88) FloatColor.BackgroundColor3 = Color3.fromRGB(255, 255, 255) FloatColor.BorderSizePixel = 0 FloatColor.ZIndex = 51 FloatColor.Parent = FloatingToggleBtn local FloatGrad = Instance.new("UIGradient") FloatGrad.Color = NeonHeaderGrad FloatGrad.Rotation = 25 FloatGrad.Parent = FloatColor local FloatTrans = Instance.new("Frame") FloatTrans.AnchorPoint = Vector2.new(0.5, 0.5) FloatTrans.Position = UDim2.fromScale(0.5, 0.5) FloatTrans.Size = UDim2.fromScale(0.985, 0.84) FloatTrans.BackgroundColor3 = Color3.fromRGB(0, 0, 0) FloatTrans.BackgroundTransparency = 0.88 FloatTrans.BorderSizePixel = 0 FloatTrans.ZIndex = 52 FloatTrans.Parent = FloatColor local FloatText = Instance.new("TextLabel") FloatText.AnchorPoint = Vector2.new(0.5, 0.5) FloatText.Position = UDim2.fromScale(0.5, 0.5) FloatText.Size = UDim2.new(1, -10, 0, 18) FloatText.BackgroundTransparency = 1 FloatText.FontFace = FontExtraBold FloatText.Text = "Water Walk" FloatText.TextColor3 = Color3.fromRGB(255, 255, 255) FloatText.TextSize = 12 FloatText.TextXAlignment = Enum.TextXAlignment.Center FloatText.ZIndex = 53 FloatText.Parent = FloatColor StyleText(FloatText, true) local MainWrapper = Instance.new("Frame") MainWrapper.Name = "Wrapper" MainWrapper.AnchorPoint = Vector2.new(1, 0) MainWrapper.Position = UDim2.new(0.98, 0, 0.15, 0) MainWrapper.Size = UDim2.fromOffset(250, 200) MainWrapper.BackgroundTransparency = 1 MainWrapper.Visible = false MainWrapper.Parent = Screen local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.fromScale(1, 1) MainFrame.BackgroundColor3 = Color3.fromRGB(8, 10, 10) MainFrame.BackgroundTransparency = 0.28 MainFrame.BorderSizePixel = 0 MainFrame.ClipsDescendants = true MainFrame.ZIndex = 2 MainFrame.Parent = MainWrapper AddStroke(MainFrame, 2.2, Color3.fromRGB(0, 0, 0), 0) local GridTexture = Instance.new("ImageLabel") GridTexture.Size = UDim2.fromScale(1, 1) GridTexture.BackgroundTransparency = 1 GridTexture.Image = "rbxassetid://6372755229" GridTexture.ImageColor3 = Color3.fromRGB(58, 255, 55) GridTexture.ImageTransparency = 0.93 GridTexture.ScaleType = Enum.ScaleType.Tile GridTexture.TileSize = UDim2.fromOffset(24, 24) GridTexture.ZIndex = 2 GridTexture.Parent = MainFrame local TopBar = Instance.new("Frame") TopBar.Size = UDim2.new(1, 0, 0, 36) TopBar.BackgroundColor3 = Color3.fromRGB(8, 38, 10) TopBar.BorderSizePixel = 0 TopBar.Active = true TopBar.ZIndex = 5 TopBar.Parent = MainFrame AddStroke(TopBar, 1.8, Color3.fromRGB(0, 0, 0), 0) local TopColor = Instance.new("Frame") TopColor.AnchorPoint = Vector2.new(0.5, 0) TopColor.Position = UDim2.fromScale(0.5, 0) TopColor.Size = UDim2.fromScale(1, 0.88) TopColor.BackgroundColor3 = Color3.fromRGB(255, 255, 255) TopColor.BorderSizePixel = 0 TopColor.ZIndex = 6 TopColor.Parent = TopBar local TopGrad = Instance.new("UIGradient") TopGrad.Color = NeonHeaderGrad TopGrad.Rotation = 25 TopGrad.Parent = TopColor local TopTrans = Instance.new("Frame") TopTrans.AnchorPoint = Vector2.new(0.5, 0.5) TopTrans.Position = UDim2.fromScale(0.5, 0.5) TopTrans.Size = UDim2.fromScale(0.985, 0.84) TopTrans.BackgroundColor3 = Color3.fromRGB(0, 0, 0) TopTrans.BackgroundTransparency = 0.88 TopTrans.BorderSizePixel = 0 TopTrans.ZIndex = 7 TopTrans.Parent = TopColor local HeaderTitle = Instance.new("TextLabel") HeaderTitle.AnchorPoint = Vector2.new(0, 0.5) HeaderTitle.Position = UDim2.new(0, 10, 0.5, 0) HeaderTitle.Size = UDim2.new(0.6, 0, 0, 20) HeaderTitle.BackgroundTransparency = 1 HeaderTitle.FontFace = FontExtraBold HeaderTitle.Text = "Water Walk" HeaderTitle.TextColor3 = Color3.fromRGB(255, 255, 255) HeaderTitle.TextSize = 15 HeaderTitle.TextXAlignment = Enum.TextXAlignment.Left HeaderTitle.ZIndex = 8 HeaderTitle.Parent = TopColor StyleText(HeaderTitle, true) local StatusBox = Instance.new("Frame") StatusBox.AnchorPoint = Vector2.new(1, 0.5) StatusBox.Position = UDim2.new(1, -8, 0.5, 0) StatusBox.Size = UDim2.fromOffset(60, 22) StatusBox.BackgroundColor3 = Color3.fromRGB(18, 22, 20) StatusBox.BorderSizePixel = 0 StatusBox.ZIndex = 8 StatusBox.Parent = TopColor AddStroke(StatusBox, 1.6, Color3.fromRGB(0, 0, 0), 0) local StatusFill = Instance.new("Frame") StatusFill.AnchorPoint = Vector2.new(0.5, 0) StatusFill.Position = UDim2.fromScale(0.5, 0) StatusFill.Size = UDim2.fromScale(1, 0.9) StatusFill.BackgroundColor3 = Color3.fromRGB(255, 255, 255) StatusFill.BorderSizePixel = 0 StatusFill.ZIndex = 9 StatusFill.Parent = StatusBox local StatusFillGrad = Instance.new("UIGradient") StatusFillGrad.Color = DarkButtonGrad StatusFillGrad.Rotation = 90 StatusFillGrad.Parent = StatusFill local StatusLabel = Instance.new("TextLabel") StatusLabel.Size = UDim2.fromScale(1, 1) StatusLabel.BackgroundTransparency = 1 StatusLabel.FontFace = FontExtraBold StatusLabel.Text = "OFF" StatusLabel.TextColor3 = Color3.fromRGB(255, 55, 55) StatusLabel.TextSize = 11 StatusLabel.ZIndex = 10 StatusLabel.Parent = StatusFill StyleText(StatusLabel, false) local SubBanner = Instance.new("TextLabel") SubBanner.Position = UDim2.new(0, 8, 0, 40) SubBanner.Size = UDim2.new(1, -16, 0, 14) SubBanner.BackgroundTransparency = 1 SubBanner.FontFace = FontBold SubBanner.Text = "Naruto Style | Client Side" SubBanner.TextColor3 = Color3.fromRGB(200, 215, 200) SubBanner.TextSize = 10 SubBanner.ZIndex = 4 SubBanner.Parent = MainFrame StyleText(SubBanner, false) local ToggleBtn = Instance.new("TextButton") ToggleBtn.AnchorPoint = Vector2.new(0.5, 0.5) ToggleBtn.Position = UDim2.new(0.5, 0, 0, 75) ToggleBtn.Size = UDim2.new(1, -16, 0, 35) ToggleBtn.BackgroundTransparency = 1 ToggleBtn.AutoButtonColor = false ToggleBtn.Text = "" ToggleBtn.ZIndex = 5 ToggleBtn.Parent = MainFrame AddScaleFeedback(ToggleBtn, 1.02, 0.96) local ToggleBase = Instance.new("Frame") ToggleBase.AnchorPoint = Vector2.new(0.5, 0.5) ToggleBase.Position = UDim2.fromScale(0.5, 0.5) ToggleBase.Size = UDim2.fromScale(1, 1) ToggleBase.BackgroundColor3 = Color3.fromRGB(18, 20, 24) ToggleBase.BorderSizePixel = 0 ToggleBase.ZIndex = 5 ToggleBase.Parent = ToggleBtn AddStroke(ToggleBase, 1.6, Color3.fromRGB(0, 0, 0), 0) local ToggleColor = Instance.new("Frame") ToggleColor.AnchorPoint = Vector2.new(0.5, 0) ToggleColor.Position = UDim2.fromScale(0.5, 0) ToggleColor.Size = UDim2.fromScale(1, 0.9) ToggleColor.BackgroundColor3 = Color3.fromRGB(255, 255, 255) ToggleColor.BorderSizePixel = 0 ToggleColor.ZIndex = 6 ToggleColor.Parent = ToggleBase local ToggleGrad = Instance.new("UIGradient") ToggleGrad.Color = DarkButtonGrad ToggleGrad.Rotation = 90 ToggleGrad.Parent = ToggleColor local ToggleInner = Instance.new("Frame") ToggleInner.AnchorPoint = Vector2.new(0.5, 0.5) ToggleInner.Position = UDim2.fromScale(0.5, 0.5) ToggleInner.Size = UDim2.fromScale(0.96, 0.84) ToggleInner.BackgroundColor3 = Color3.fromRGB(0, 0, 0) ToggleInner.BackgroundTransparency = 0.86 ToggleInner.BorderSizePixel = 0 ToggleInner.ZIndex = 7 ToggleInner.Parent = ToggleColor local ToggleLabel = Instance.new("TextLabel") ToggleLabel.AnchorPoint = Vector2.new(0.5, 0.5) ToggleLabel.Position = UDim2.fromScale(0.5, 0.5) ToggleLabel.Size = UDim2.fromScale(0.92, 0.78) ToggleLabel.BackgroundTransparency = 1 ToggleLabel.FontFace = FontExtraBold ToggleLabel.Text = "ENABLE" ToggleLabel.TextColor3 = Color3.fromRGB(185, 190, 200) ToggleLabel.TextSize = 12 ToggleLabel.ZIndex = 8 ToggleLabel.Parent = ToggleColor StyleText(ToggleLabel, true) local SpeedBox = Instance.new("Frame") SpeedBox.Position = UDim2.new(0, 8, 0, 105) SpeedBox.Size = UDim2.new(1, -16, 0, 50) SpeedBox.BackgroundTransparency = 1 SpeedBox.ZIndex = 5 SpeedBox.Parent = MainFrame local SpeedTitle = Instance.new("TextLabel") SpeedTitle.Size = UDim2.new(1, 0, 0, 15) SpeedTitle.BackgroundTransparency = 1 SpeedTitle.FontFace = FontBold SpeedTitle.Text = "Custom Speed" SpeedTitle.TextColor3 = Color3.fromRGB(200, 215, 200) SpeedTitle.TextSize = 10 SpeedTitle.TextXAlignment = Enum.TextXAlignment.Left SpeedTitle.ZIndex = 6 SpeedTitle.Parent = SpeedBox StyleText(SpeedTitle, false) local SpeedValueLabel = Instance.new("TextLabel") SpeedValueLabel.AnchorPoint = Vector2.new(1, 0) SpeedValueLabel.Position = UDim2.new(1, 0, 0, 0) SpeedValueLabel.Size = UDim2.new(0, 50, 0, 15) SpeedValueLabel.BackgroundTransparency = 1 SpeedValueLabel.FontFace = FontExtraBold SpeedValueLabel.Text = "30" SpeedValueLabel.TextColor3 = Color3.fromRGB(58, 255, 55) SpeedValueLabel.TextSize = 11 SpeedValueLabel.TextXAlignment = Enum.TextXAlignment.Right SpeedValueLabel.ZIndex = 6 SpeedValueLabel.Parent = SpeedBox StyleText(SpeedValueLabel, false) local SliderBase = Instance.new("Frame") SliderBase.AnchorPoint = Vector2.new(0.5, 1) SliderBase.Position = UDim2.new(0.5, 0, 1, -5) SliderBase.Size = UDim2.new(1, 0, 0, 8) SliderBase.BackgroundColor3 = Color3.fromRGB(18, 22, 20) SliderBase.BorderSizePixel = 0 SliderBase.ZIndex = 6 SliderBase.Parent = SpeedBox AddStroke(SliderBase, 1.2, Color3.fromRGB(0, 0, 0), 0) local SliderFill = Instance.new("Frame") SliderFill.AnchorPoint = Vector2.new(0, 0.5) SliderFill.Position = UDim2.new(0, 0, 0.5, 0) SliderFill.Size = UDim2.new(0.2, 0, 1, 0) SliderFill.BackgroundColor3 = Color3.fromRGB(255, 255, 255) SliderFill.BorderSizePixel = 0 SliderFill.ZIndex = 7 SliderFill.Parent = SliderBase local SliderFillGrad = Instance.new("UIGradient") SliderFillGrad.Color = NeonButtonGrad SliderFillGrad.Rotation = 0 SliderFillGrad.Parent = SliderFill local SliderKnob = Instance.new("Frame") SliderKnob.AnchorPoint = Vector2.new(0.5, 0.5) SliderKnob.Position = UDim2.new(0.2, 0, 0.5, 0) SliderKnob.Size = UDim2.fromOffset(12, 12) SliderKnob.BackgroundColor3 = Color3.fromRGB(255, 255, 255) SliderKnob.BorderSizePixel = 0 SliderKnob.ZIndex = 8 SliderKnob.Parent = SliderBase AddStroke(SliderKnob, 1.2, Color3.fromRGB(0, 0, 0), 0) local SliderBtn = Instance.new("TextButton") SliderBtn.Size = UDim2.new(1, 20, 1, 20) SliderBtn.Position = UDim2.new(0, -10, 0, -10) SliderBtn.BackgroundTransparency = 1 SliderBtn.Text = "" SliderBtn.ZIndex = 9 SliderBtn.Parent = SliderBase local FooterBar = Instance.new("Frame") FooterBar.AnchorPoint = Vector2.new(0.5, 1) FooterBar.Position = UDim2.new(0.5, 0, 1, -6) FooterBar.Size = UDim2.new(1, -16, 0, 18) FooterBar.BackgroundColor3 = Color3.fromRGB(14, 16, 15) FooterBar.BackgroundTransparency = 0.2 FooterBar.BorderSizePixel = 0 FooterBar.ZIndex = 4 FooterBar.Parent = MainFrame AddStroke(FooterBar, 1.4, Color3.fromRGB(0, 0, 0), 0) local FooterText = Instance.new("TextLabel") FooterText.Size = UDim2.fromScale(1, 1) FooterText.BackgroundTransparency = 1 FooterText.FontFace = FontBold FooterText.Text = "Tap to Toggle | Drag to Move" FooterText.TextColor3 = Color3.fromRGB(130, 240, 130) FooterText.TextSize = 9 FooterText.TextXAlignment = Enum.TextXAlignment.Center FooterText.ZIndex = 5 FooterText.Parent = FooterBar StyleText(FooterText, false) local function UpdateSlider(value) local percent = math.clamp((value - 16) / (100 - 16), 0, 1) Tween(SliderFill, {Size = UDim2.new(percent, 0, 1, 0)}, 0.05) Tween(SliderKnob, {Position = UDim2.new(percent, 0, 0.5, 0)}, 0.05) SpeedValueLabel.Text = tostring(math.floor(value)) CurrentSpeed = value end local isDraggingSlider = false local function UpdateSliderFromInput(input) local relativeX = math.clamp((input.Position.X - SliderBase.AbsolutePosition.X) / SliderBase.AbsoluteSize.X, 0, 1) local newValue = 16 + (relativeX * (100 - 16)) UpdateSlider(newValue) end SliderBtn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then isDraggingSlider = true UpdateSliderFromInput(input) end end) UserInputService.InputChanged:Connect(function(input) if isDraggingSlider and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then UpdateSliderFromInput(input) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then isDraggingSlider = false end end) local function stopWaterWalk() isWaterWalkEnabled = false if waterWalkConnection then waterWalkConnection:Disconnect() waterWalkConnection = nil end removePlatform() local char = LocalPlayer.Character if char then local hum = char:FindFirstChildOfClass("Humanoid") if hum then hum.WalkSpeed = 16 hum:SetStateEnabled(Enum.HumanoidStateType.Swimming, true) end end Tween(ToggleColor, {Size = UDim2.fromScale(1, 0.9)}, 0.2) Tween(ToggleLabel, {TextColor3 = Color3.fromRGB(185, 190, 200)}, 0.2) ToggleGrad.Color = DarkButtonGrad ToggleLabel.Text = "ENABLE" StatusLabel.Text = "OFF" StatusLabel.TextColor3 = Color3.fromRGB(255, 55, 55) StatusFillGrad.Color = DarkButtonGrad end local function startWaterWalk() isWaterWalkEnabled = true Tween(ToggleColor, {Size = UDim2.fromScale(1, 0.9)}, 0.2) Tween(ToggleLabel, {TextColor3 = Color3.fromRGB(255, 255, 255)}, 0.2) ToggleGrad.Color = NeonButtonGrad ToggleLabel.Text = "DISABLE" StatusLabel.Text = "ON" StatusLabel.TextColor3 = Color3.fromRGB(58, 255, 55) StatusFillGrad.Color = NeonButtonGrad local char = LocalPlayer.Character if char then local hum = char:FindFirstChildOfClass("Humanoid") if hum then hum:SetStateEnabled(Enum.HumanoidStateType.Swimming, false) end end waterWalkConnection = RunService.Heartbeat:Connect(function() local char = LocalPlayer.Character if not char then return end local hum = char:FindFirstChildOfClass("Humanoid") local hrp = char:FindFirstChild("HumanoidRootPart") if hum and hrp then if hum.WalkSpeed ~= CurrentSpeed then hum.WalkSpeed = CurrentSpeed end hum:SetStateEnabled(Enum.HumanoidStateType.Swimming, false) if not platform then platform = Instance.new("Part") platform.Name = "GaibPlatform" platform.Size = Vector3.new(6, 1, 6) platform.Transparency = 1 platform.Anchored = true platform.CanCollide = true platform.Parent = workspace end local rayOrigin = hrp.Position local rayDirection = Vector3.new(0, -15, 0) local raycastParams = RaycastParams.new() raycastParams.FilterDescendantsInstances = {char, platform} raycastParams.FilterType = Enum.RaycastFilterType.Exclude local result = workspace:Raycast(rayOrigin, rayDirection, raycastParams) if result then local isWater = false if result.Material == Enum.Material.Water then isWater = true elseif result.Instance.Name:lower():find("water") or result.Instance.Name:lower():find("river") then isWater = true end if isWater then local targetY = result.Position.Y - 0.2 platform.CFrame = CFrame.new(hrp.Position.X, targetY, hrp.Position.Z) if hrp.Position.Y <= targetY + 2.5 then hrp.Velocity = Vector3.new(hrp.Velocity.X, 5, hrp.Velocity.Z) end else removePlatform() end else removePlatform() end end end) end ToggleBtn.MouseButton1Click:Connect(function() if isWaterWalkEnabled then stopWaterWalk() else startWaterWalk() end end) local isDraggingToggle = false local toggleDragStart = nil local toggleStartPos = nil FloatingToggleBtn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then toggleDragStart = input.Position toggleStartPos = FloatingToggleBtn.Position local moved = false local moveConn local endConn moveConn = input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.Change then local delta = input.Position - toggleDragStart if delta.Magnitude > 5 then moved = true isDraggingToggle = true FloatingToggleBtn.Position = UDim2.new( toggleStartPos.X.Scale, toggleStartPos.X.Offset + delta.X, toggleStartPos.Y.Scale, toggleStartPos.Y.Offset + delta.Y ) end end end) endConn = input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then if not moved then MainWrapper.Visible = not MainWrapper.Visible if MainWrapper.Visible then MainWrapper.Size = UDim2.fromOffset(0, 0) Tween(MainWrapper, {Size = UDim2.fromOffset(250, 200)}, 0.22, Enum.EasingStyle.Back, Enum.EasingDirection.Out) end end isDraggingToggle = false if moveConn then moveConn:Disconnect() end if endConn then endConn:Disconnect() end end end) end end) UpdateSlider(30) LocalPlayer.CharacterAdded:Connect(function() if isWaterWalkEnabled then stopWaterWalk() end end)