Player, Char, Mouse = game:service("Players").LocalPlayer, game:GetService("Players").LocalPlayer.Character, game:GetService("Players").LocalPlayer:GetMouse() Humanoid = Char:findFirstChild("Humanoid") Torso = Char:findFirstChild("Torso") Head = Char:findFirstChild("Head") ra = Char:findFirstChild("Right Arm") la = Char:findFirstChild("Left Arm") rl = Char:findFirstChild("Right Leg") ll = Char:findFirstChild("Left Leg") rs = Torso:findFirstChild("Right Shoulder") ls = Torso:findFirstChild("Left Shoulder") rh = Torso:findFirstChild("Right Hip") lh = Torso:findFirstChild("Left Hip") neck = Torso:findFirstChild("Neck") rp = Char:findFirstChild("HumanoidRootPart") rp.Archivable = true rj = rp:findFirstChild("RootJoint") rj.Archivable = true Humanoid:ClearAllChildren() rootpart = Char:findFirstChild("HumanoidRootPart") Camera = workspace.CurrentCamera CF = CFrame.new components = CF().components local Targetz local Targetz1 local hat grab = false --==/ V DO NOT TOUCH THIS V /==-- function Lerp(a, b, i) --< DO NOT TOUCH THIS >-- return a:lerp(b, i) --< DO NOT TOUCH THIS : GENERALIZED FUNCTIONS >-- end --< DO NOT TOUCH THIS >-- --==/ ^ DO NOT TOUCH THIS ^ /==-- --==/BASE/DEFAULT WELDS/==-- --=/ARM REWELDS/=-- --/Right Arm/-- rm = Instance.new("Motor6D", Torso) rm.C0 = CFrame.new(1.5, 0.5, 0) *CFrame.Angles(0, 0, 0) rm.C1 = CFrame.new(0, 0.5, 0) rm.Part0 = Torso rm.Part1 = ra --/Left Arm/-- lm = Instance.new("Motor6D", Torso) lm.C0 = CFrame.new(-1.5, 0.5, 0) *CFrame.Angles(0, 0, 0) lm.C1 = CFrame.new(0, 0.5, 0) lm.Part0 = Torso lm.Part1 = la --=/LEG REWELDS/=-- --/Right Leg/-- rlegm = Instance.new("Motor6D", Torso) rlegm.C0 = CFrame.new(0.5, -1, 0) *CFrame.Angles(0, 0, 0) rlegm.C1 = CFrame.new(0, 1, 0) rlegm.Part0 = Torso rlegm.Part1 = rl --/Left Leg/-- llegm = Instance.new("Motor6D", Torso) llegm.C0 = CFrame.new(-0.5, -1, 0) *CFrame.Angles(0, 0, 0) llegm.C1 = CFrame.new(0, 1, 0) llegm.Part0 = Torso llegm.Part1 = ll --=/Neck Motor6D/=-- neck.C0 = CFrame.new(0,1,0) neck.C1 = CFrame.new(0,-0.5,0) --==/BASE VARIABLES & DEBOUNCES/==-- --=/TRIGONOMETRY/=-- sine = 1 angle = 0 axis = 0 anglespeed = 1 axisspeed = anglespeed --=/DEBOUNCES/=-- anim = false walking = false --==/SNAP FUNCTION/==-- function snap() if(Mouse.Target and Mouse.Target.Parent and Mouse.Target.Parent:findFirstChild("Humanoid") and Mouse.Target.Parent:findFirstChild("Humanoid").Parent and (Mouse.Target.Position - Torso.Position).magnitude < 5) or hat~=nil then anim = true for i = 1, 10 do wait() rm.C0 = Lerp(rm.C0, CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(100), 0, 0), 0.35) end anim = false if hat ~= nil then Targetz = hat.Character end TargetzHum = Targetz:findFirstChild("Humanoid") TargetzHum.PlatformStand = true torso2 = Targetz:findFirstChild("Torso") head2 = Targetz:findFirstChild("Head") ra2 = Targetz:findFirstChild("Right Arm") la2 = Targetz:findFirstChild("Left Arm") rl2 = Targetz:findFirstChild("Right Leg") ll2 = Targetz:findFirstChild("Left Leg") local rootpart2 if Targetz:findFirstChild("HumanoidRootPart") then rootpart2 = Targetz:findFirstChild("HumanoidRootPart") rootpart2:Destroy() end for i,v in pairs(torso2:children()) do if v:IsA("Motor6D") and v.Name ~= "Neck" then v:destroy() end end local rm = Instance.new("Rotate", torso2) rm.C0 = CFrame.new(1.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) rm.C1 = CFrame.new(0, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) rm.Part0 = torso2 rm.Part1 = ra2 rm.Name = "Right Shoulder" local lm = Instance.new("Rotate", torso2) lm.C0 = CFrame.new(-1.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) lm.C1 = CFrame.new(0, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) lm.Part0 = torso2 lm.Part1 = la2 lm.Name = "Left Shoulder" local rlegm = Instance.new("Rotate", torso2) rlegm.C0 = CFrame.new(0.5, -1, 0) * CFrame.Angles(0, math.pi/2, 0) rlegm.C1 = CFrame.new(0, 1, 0) * CFrame.Angles(0, math.pi/2, 0) rlegm.Part0 = torso2 rlegm.Part1 = rl2 local llegm = Instance.new("Rotate", torso2) llegm.C0 = CFrame.new(-0.5, -1, 0) * CFrame.Angles(0, math.pi/2, 0) llegm.C1 = CFrame.new(0, 1, 0) * CFrame.Angles(0, math.pi/2, 0) llegm.Part0 = torso2 llegm.Part1 = ll2 name = Targetz.Name NAME = string.upper(name) print("HAH "..NAME..", GIT SNAPPED FU\5CKER") Grab = Instance.new("Motor6D", ra) Grab.Part0 = ra Grab.Part1 = torso2 Grab.C0 = CFrame.new(0, -0.8, 0.65) * CFrame.Angles(math.rad(250), math.rad(180), 0) hat=nil end end function letgoasragdoll() anim = true grab = false for i = 1, 10 do wait() rm.C0 = Lerp(rm.C0, CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(110), 0, 0), 0.35) end anim = false grab = false wait() Grab:Destroy() Targetz:findFirstChild("Humanoid"):ChangeState("Physics") end function letgounharmed() anim = true grab = false for i = 1, 10 do wait() rm.C0 = Lerp(rm.C0, CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(110), 0, 0), 0.35) end anim = false grab = false wait() Targetz:findFirstChild("Humanoid"):ChangeState("Physics") Grab:Destroy() end --==/MOUSE EVENTS/==-- --=/BUTTON1DOWN/=-- Mouse.Button1Down:connect(function(hit) if grab == false then if Mouse.Target.Parent:findFirstChild("Humanoid") then grab=true Targetz1 = game.Players:GetPlayerFromCharacter(Mouse.Target.Parent:findFirstChild("Humanoid").Parent) Targetz = Targetz1.Character elseif Mouse.Target.Parent.ClassName == ("Hat") then grab = true hat = game.Players:GetPlayerFromCharacter(Mouse.Target.Parent.Parent:findFirstChild("Head").Parent) end if Targetz ~= nil or hat ~= nil then snap() end end end) --=/KEYDOWN/=-- Mouse.KeyDown:connect(function(key) if key == "q" then if Targetz then Targetz:BreakJoints() print("killed target HEUHEUEHUEH") end elseif key == "e" then if Targetz and Grab then letgoasragdoll() print("let go poisoned") end elseif key == "r" then if Targetz and Grab then letgounharmed() print("let go unragdolled and unharmed") end end end) --==/BASIC MOVEMENT & ATTACKS/==-- game:GetService("RunService").Stepped:connect(function() angle = (angle % 100) + anglespeed/10 axis = (axis % 100) + axisspeed/10 speed = Vector3.new(rootpart.Velocity.X, 0, rootpart.Velocity.Z).magnitude --=/IDLE/=-- if speed < 2 then animpose = "Idle" --=/WALKING/=-- elseif speed > 2 then animpose = "Walking" walking = true end --==/ANIMATION FUNCTIONS/==-- if animpose == "Idle" and anim == false then --> idle anglespeed = 0.1 axisspeed = 0.1 rm.C0 = Lerp(rm.C0, CFrame.new(1.4, 0.6, 0) * CFrame.Angles(math.rad(10), 0, math.rad(10)), 0.35) lm.C0 = Lerp(lm.C0, CFrame.new(-1.4, 0.6, 0) * CFrame.Angles(-math.rad(10), 0, -math.rad(10)), 0.35) rlegm.C0 = Lerp(rlegm.C0, CFrame.new(0.5, -0.95, 0) * CFrame.Angles(-math.rad(10), 0, math.rad(5)), 0.35) llegm.C0 = Lerp(llegm.C0, CFrame.new(-0.5, -0.95, 0) * CFrame.Angles(math.rad(10), 0, -math.rad(5)), 0.35) neck.C0 = Lerp(neck.C0, CFrame.new(0, 1, 0) * CFrame.Angles(0, 0, 0), 0.35) rj.C0 = Lerp(rj.C0, CFrame.new(0, -0.25, 0) * CFrame.Angles(math.rad(-90), 0, math.rad(180)), 0.35) elseif animpose == "Walking" and anim == false and walking == true then --> walk anglespeed = 2.5 rm.C0 = Lerp(rm.C0, CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.sin(angle) * 1.5, 0, -math.sin(angle) * 0.7), 0.35) lm.C0 = Lerp(lm.C0, CFrame.new(-1.5, 0.5, 0) * CFrame.Angles(-math.sin(angle) * 1.5, 0, -math.sin(angle) * 0.7), 0.35) rlegm.C0 = Lerp(rlegm.C0, CFrame.new(0.5, -1, 0) * CFrame.Angles(math.asin(-math.sin(angle)) * 1.25, 0, math.rad(2.5)), 0.35) llegm.C0 = Lerp(llegm.C0, CFrame.new(-0.5, -1, 0) * CFrame.Angles(math.sin(angle) * 1.25, 0, -math.rad(2.5)), 0.35) neck.C0 = Lerp(neck.C0, CFrame.new(0, 1, 0) * CFrame.Angles(0, math.sin(angle) * -0.2, 0), 0.35) rj.C0 = Lerp(rj.C0, CFrame.new(0, -0.25 + math.abs(math.sin(angle) * 0.6), 0) * CFrame.Angles(math.rad(-80), Head.RotVelocity.Y/-50, math.rad(180) + math.sin(angle) * 0.1, 0), 0.35) Humanoid.WalkSpeed = 16 end end)