Ragdoll penis

Run Settings
LanguageLua
Language Version
Run Command
--// Ragdoll Penis FE V2.0 local model = Instance.new("Model", workspace) local m = game.Players.LocalPlayer:GetMouse() local togglerot = false local down = false local up = false m.KeyDown:Connect( function(key) if key == "z" then up = true end if key == "x" then down = true end end ) m.KeyUp:Connect( function(key) if key == "z" then up = false end if key == "x" then down = false end end ) local a = Instance.new("Part", model) a.Size = Vector3.new(1.1, 2.1, 1.1) local a2 = Instance.new("Part", model) a2.Size = Vector3.new(1.1, 2.1, 1.1) local a3 = Instance.new("Part", model) a3.Size = Vector3.new(1.1, 2.1, 1.1) local a4 = Instance.new("Part", model) a4.Size = Vector3.new(1.1, 2.1, 1.1) a4.Position = Vector3.new(0, 5, 0) a.Anchored = true a.Rotation = Vector3.new(90, 0, 0) a.Position = Vector3.new(-0.5, 0.5, 0) a3.Position = Vector3.new(0, 3.15, 0) a2.Position = Vector3.new(0, 1.3, 0) a.CanQuery = false a2.CanQuery = false a3.CanQuery = false a4.CanQuery = false a.Transparency = 0.6 a2.Transparency = 0.6 a3.Transparency = 0.6 a4.Transparency = 0.6 a.Anchored = true a.CanCollide = false a2.CanCollide = false a3.CanCollide = false a4.CanCollide = false local function recreateModel() model:Destroy() model = Instance.new("Model", workspace) a = Instance.new("Part", model) a.Size = Vector3.new(1.1, 2.1, 1.1) a2 = Instance.new("Part", model) a2.Size = Vector3.new(1.1, 2.1, 1.1) a3 = Instance.new("Part", model) a3.Size = Vector3.new(1.1, 2.1, 1.1) a4 = Instance.new("Part", model) a4.Size = Vector3.new(1.1, 2.1, 1.1) a4.Position = Vector3.new(0, 5, 0) a.Anchored = true a.Rotation = Vector3.new(90, 0, 0) a.Position = Vector3.new(-0.5, 0.5, 0) a3.Position = Vector3.new(0, 3.15, 0) a2.Position = Vector3.new(0, 1.3, 0) a.CanQuery = false a2.CanQuery = false a3.CanQuery = false a4.CanQuery = false a.Transparency = 0.6 a2.Transparency = 0.6 a3.Transparency = 0.6 a4.Transparency = 0.6 a.Anchored = true a.CanCollide = false a2.CanCollide = false a3.CanCollide = false a4.CanCollide = false spawn( function() local last = nil for i, v in pairs(model:GetChildren()) do if last == nil then last = v else local a = Instance.new("WeldConstraint", model) a.Part0 = last a.Part1 = v last = v end end end ) model:MoveTo(game.Players.LocalPlayer.Character.HumanoidRootPart.Position) end game.Players.LocalPlayer.CharacterAdded:Connect(function(character) character:WaitForChild("Humanoid").Died:Connect(function() task.wait() recreateModel() end) end) spawn( function() local last = nil for i, v in pairs(model:GetChildren()) do if last == nil then last = v else local a = Instance.new("WeldConstraint", model) a.Part0 = last a.Part1 = v last = v end end end ) local cameraLoop spawn( function() cameraLoop = true while cameraLoop do task.wait() workspace.CurrentCamera.CameraSubject = model end end ) model:MoveTo(game.Players.LocalPlayer.Character.HumanoidRootPart.Position) local movementLoop spawn( function() movementLoop = true while movementLoop do task.wait() if not togglerot then model:PivotTo(model.WorldPivot + game.Players.LocalPlayer.Character.Humanoid.MoveDirection / 3) a.CFrame = CFrame.new( a.Position, a.Position + Vector3.new( workspace.CurrentCamera.CFrame.LookVector.X, a.Position, workspace.CurrentCamera.CFrame.LookVector.Z ) ) * CFrame.Angles(0, 0, math.rad(90)) end if up then model:PivotTo(model.WorldPivot + Vector3.new(0, 0.2, 0)) end if down then model:PivotTo(model.WorldPivot + Vector3.new(0, -0.2, 0)) end end end ) local screenGui = Instance.new("ScreenGui") screenGui.Name = "ControlGUI" screenGui.Parent = game:GetService("CoreGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 150, 0, 50) frame.Position = UDim2.new(0.8, -75, 0.1, 0) frame.BackgroundColor3 = Color3.fromRGB(40, 40, 40) frame.BackgroundTransparency = 0.3 frame.Parent = screenGui local UICorner = Instance.new("UICorner") UICorner.CornerRadius = UDim.new(0, 8) UICorner.Parent = frame local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0.9, 0, 0.8, 0) toggleBtn.Position = UDim2.new(0.05, 0, 0.1, 0) toggleBtn.BackgroundColor3 = Color3.fromRGB(20, 80, 20) toggleBtn.Text = "ON" toggleBtn.TextColor3 = Color3.new(1, 1, 1) toggleBtn.Parent = frame local btnCorner = Instance.new("UICorner") btnCorner.CornerRadius = UDim.new(0, 6) btnCorner.Parent = toggleBtn local originalPositions = {} local character = game.Players.LocalPlayer.Character local function saveOriginalPositions() for _, part in pairs(character:GetDescendants()) do if part:IsA("BasePart") then originalPositions[part] = { CFrame = part.CFrame, Velocity = part.Velocity, AssemblyLinearVelocity = part.AssemblyLinearVelocity, AssemblyAngularVelocity = part.AssemblyAngularVelocity } end end end saveOriginalPositions() local function restoreOriginalPositions() for part, data in pairs(originalPositions) do if part and part.Parent then part.CFrame = data.CFrame part.Velocity = data.Velocity part.AssemblyLinearVelocity = data.AssemblyLinearVelocity part.AssemblyAngularVelocity = data.AssemblyAngularVelocity end end end local function toggleScript() if toggleBtn.Text == "ON" then toggleBtn.Text = "OFF" toggleBtn.BackgroundColor3 = Color3.fromRGB(80, 20, 20) cameraLoop = false movementLoop = false restoreOriginalPositions() local speaker = game.Players.LocalPlayer workspace.CurrentCamera:remove() task.wait(.1) repeat task.wait() until speaker.Character ~= nil workspace.CurrentCamera.CameraSubject = speaker.Character:FindFirstChildWhichIsA('Humanoid') workspace.CurrentCamera.CameraType = "Custom" speaker.CameraMinZoomDistance = 0.5 speaker.CameraMaxZoomDistance = 400 speaker.CameraMode = "Classic" speaker.Character.Head.Anchored = false else toggleBtn.Text = "ON" toggleBtn.BackgroundColor3 = Color3.fromRGB(20, 80, 20) saveOriginalPositions() spawn(function() cameraLoop = true while cameraLoop do task.wait() workspace.CurrentCamera.CameraSubject = model end end) spawn(function() movementLoop = true while movementLoop do task.wait() if not togglerot then model:PivotTo(model.WorldPivot + game.Players.LocalPlayer.Character.Humanoid.MoveDirection / 3) a.CFrame = CFrame.new( a.Position, a.Position + Vector3.new( workspace.CurrentCamera.CFrame.LookVector.X, a.Position, workspace.CurrentCamera.CFrame.LookVector.Z ) ) * CFrame.Angles(0, 0, math.rad(90)) end if up then model:PivotTo(model.WorldPivot + Vector3.new(0, 0.2, 0)) end if down then model:PivotTo(model.WorldPivot + Vector3.new(0, -0.2, 0)) end end end) end end toggleBtn.MouseButton1Click:Connect(toggleScript) local function connectBodyParts() for i, v in pairs(game.Players.LocalPlayer.Character:GetDescendants()) do if v.Name == "Left Leg" then game:GetService("RunService").PostSimulation:Connect( function() if toggleBtn.Text == "OFF" then return end v.CFrame = a.CFrame -- Чётко к позиции части "a" v.Velocity = Vector3.new(0, 4, 0) v.AssemblyLinearVelocity = Vector3.new(0, 4, 0) v.AssemblyAngularVelocity = Vector3.new(5, 0, 0) end ) elseif v.Name == "Right Leg" then game:GetService("RunService").PostSimulation:Connect( function() if toggleBtn.Text == "OFF" then return end v.CFrame = a2.CFrame * CFrame.Angles(math.rad(180), 0, 0) -- Чётко к "a2" + поворот v.Velocity = Vector3.new(0, 4, 0) v.AssemblyLinearVelocity = Vector3.new(0, 4, 0) v.AssemblyAngularVelocity = Vector3.new(5, 0, 0) end ) elseif v.Name == "Right Arm" then game:GetService("RunService").PostSimulation:Connect( function() if toggleBtn.Text == "OFF" then return end v.CFrame = a4.CFrame * CFrame.Angles(math.rad(180), math.rad(-90), 0) -- Чётко к "a4" + поворот v.Velocity = Vector3.new(0, 4, 0) v.AssemblyLinearVelocity = Vector3.new(0, 4, 0) v.AssemblyAngularVelocity = Vector3.new(5, 0, 0) end ) elseif v.Name == "Left Arm" then game:GetService("RunService").PostSimulation:Connect( function() if toggleBtn.Text == "OFF" then return end v.CFrame = a3.CFrame -- Чётко к позиции части "a3" v.Velocity = Vector3.new(0, 4, 0) v.AssemblyLinearVelocity = Vector3.new(0, 4, 0) v.AssemblyAngularVelocity = Vector3.new(5, 0, 0) end ) elseif v:IsA("BasePart") and (v.Name ~= "Left Leg" or v.Name ~= "Right Leg") then game:GetService("RunService").PostSimulation:Connect( function() if toggleBtn.Text == "OFF" then return end v.CFrame = CFrame.new(model.WorldPivot.Position + Vector3.new(0, 600, 0)) v.Velocity = Vector3.new(0, 0, 0) v.AssemblyLinearVelocity = Vector3.new(0, 0, 0) v.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end ) end end end connectBodyParts() game.Players.LocalPlayer.CharacterAdded:Connect(function(character) connectBodyParts() end)
Editor Settings
Theme
Key bindings
Full width
Lines