local lplr = game.Players.LocalPlayer local chat = game:GetService("TextChatService").TextChannels.RBXGeneral local runService = game:GetService("RunService") local CAS = game:GetService("ContextActionService") -- Configuration local WATER_GUN_ID = "16972562122" local PISS_OFFSET = CFrame.new(0,-0.25,1.5) * CFrame.Angles(math.rad(-90),math.rad(90),0) * CFrame.Angles(0,0,math.rad(-45)) local VOICELINES = { "Ahhh, that's the stuff.", "Now the flowers will grow.", "I feel like a new man.", "There, that's better.", } -- Setup Rig chat:SendAsync("-r6") repeat task.wait() until lplr.Character and lplr.Character:FindFirstChild("Humanoid") and lplr.Character.Humanoid.RigType == Enum.HumanoidRigType.R6 task.wait(1) -- Request Hats local ghCmd = "-gh " .. string.rep(WATER_GUN_ID .. " ", 15) chat:SendAsync(ghCmd) task.wait(1.5) chat:SendAsync(ghCmd) task.wait(2) chat:SendAsync("-net") local chr = lplr.Character local hrp = chr:WaitForChild("HumanoidRootPart") local torso = chr:WaitForChild("Torso") -- Create the Target Part local pissPart = Instance.new("Part") pissPart.Transparency = 1 pissPart.CanCollide = false pissPart.Anchored = true pissPart.Size = Vector3.new(1, 1, 1) pissPart.Parent = workspace local accs = {} for _, a in ipairs(chr:GetChildren()) do if a:IsA("Accessory") and (a.Name:find("Hydro") or a.Name:find("Water")) then local handle = a:FindFirstChild("Handle") if handle then handle:BreakJoints() table.insert(accs, handle) end end end -- State Management local isPissing = false local useVoicelines = false -- SPIN SYSTEMS local spinHats = false -- Minigun local FountainHats = false -- Fountain / orbit local fastSpinHats = false -- internal helper local spinAngle = 0 local spinSpeed = 4 -- Physics Loop runService.PostSimulation:Connect(function(dt) if isPissing then spinAngle = spinAngle + spinSpeed * dt for i, h in ipairs(accs) do local angle = spinAngle + (i * (2 * math.pi / #accs)) if FountainHats then -- Fountain/orbit mode (C) local radius = 1.2 local center = hrp.Position local orbitPos = center + Vector3.new( math.cos(angle) * radius, 0.5, math.sin(angle) * radius ) h.CFrame = CFrame.new(orbitPos, center) elseif spinHats then -- Minigun spin (X) local radius = 1.5 local spinOffset = CFrame.new( math.cos(angle) * radius, 0, math.sin(angle) * radius ) h.CFrame = pissPart.CFrame * spinOffset else -- Default: just follow pissPart h.CFrame = pissPart.CFrame end h.Velocity = Vector3.new(0, 8.141 * math.pi, 0) end else for _, h in ipairs(accs) do h.CFrame = CFrame.new(0, -50, 0) end end end) runService.PreSimulation:Connect(function() if isPissing then pissPart.CFrame = torso.CFrame * PISS_OFFSET end end) -- Controls -- F: Toggle stream CAS:BindAction("PissAction", function(_, state) if state == Enum.UserInputState.Begin then isPissing = true if useVoicelines then chat:SendAsync(VOICELINES[math.random(1, #VOICELINES)]) end elseif state == Enum.UserInputState.End then isPissing = false end return Enum.ContextActionResult.Sink end, true, Enum.KeyCode.F) -- Z: Toggle voicelines CAS:BindAction("ToggleVC", function(_, state) if state == Enum.UserInputState.Begin then useVoicelines = not useVoicelines CAS:SetTitle("ToggleVC", useVoicelines and "VC: ON (Z)" or "VC: OFF (Z)") end return Enum.ContextActionResult.Sink end, true, Enum.KeyCode.Z) -- X: Minigun spin toggle CAS:BindAction("MinigunHats", function(_, state) if state == Enum.UserInputState.Begin then spinHats = not spinHats if spinHats then FountainHats = false fastSpinHats = false end CAS:SetTitle("MinigunHats", spinHats and "Minigun: ON (X)" or "Minigun: OFF (X)") end return Enum.ContextActionResult.Sink end, true, Enum.KeyCode.X) -- C: Fountain / orbit around player CAS:BindAction("FountainHats", function(_, state) if state == Enum.UserInputState.Begin then FountainHats = not FountainHats if FountainHats then spinHats = false fastSpinHats = true else fastSpinHats = false end CAS:SetTitle("FountainHats", FountainHats and "Fountain: ON (C)" or "Fountain: OFF (C)") end return Enum.ContextActionResult.Sink end, true, Enum.KeyCode.C) -- Initial button titles CAS:SetTitle("PissAction", "Piss (F)") CAS:SetTitle("ToggleVC", "VC: OFF (Z)") CAS:SetTitle("MinigunHats", "Minigun: OFF (X)") CAS:SetTitle("FountainHats", "Fountain: OFF (C)") -- Optional positions (mobile) CAS:SetPosition("ToggleVC", UDim2.fromScale(0, 0.1)) CAS:SetPosition("MinigunHats", UDim2.fromScale(0, 0.25)) CAS:SetPosition("FountainHats", UDim2.fromScale(0, 0.40)) print("Modded by: Quifdiver/theinfgod_224629") chat:SendAsync("edited a bit by: quifdiver/theinfgod_224629")