bodyparts = {} function protectlimb(part,props,index) pcall(function() if not part then return end local index,props = index or #bodyparts+1,props or {Parent = part.Parent} bodyparts[index] = part part.Parent = props.Parent part.AncestryChanged:Connect(function(part,newparent) pcall(function() if newparent~=nil and not part:IsDescendantOf(props.Parent) then part.Parent = props.Parent for i,v in pairs(owner.Character:GetDescendants()) do if v:IsA("Motor6D") then if v.Part0.Parent == nil then v.Part0 = part elseif v.Part1.Parent == nil then v.Part1 = part end elseif v:IsA("BallSocketConstraint") then if v.Part0.Parent == nil then v.Part0 = part elseif v.Part1.Parent == nil then v.Part1 = part end end end elseif newparent == nil then newp = part:Clone() for i,v in pairs(owner.Character:GetDescendants()) do if v:IsA("Motor6D") then if v.Part0.Parent == nil then v.Part0 = newp elseif v.Part1.Parent == nil then v.Part1 = newp end elseif v:IsA("BallSocketConstraint") then if v.Part0.Parent == nil then v.Part0 = newp elseif v.Part1.Parent == nil then v.Part1 = newp end end end protectlimb(newp,props,index) end end) end) return bodyparts[index] end) end local oldtext local tweenService = game:GetService("TweenService") Tool = Instance.new("Tool") Part = Instance.new("Part") Part.Name = "Handle" Part.Parent = Tool Tool.Parent = owner.Character Mesh = Instance.new("SpecialMesh") Mesh.Parent = Part Mesh.MeshId = "http://www.roblox.com/asset/?id=7806350307" Mesh.Scale = Vector3.new(0.125,0.125,0.125) Part.Size = Vector3.new(2.284,6.25,3.69225) Tool.Grip = CFrame.Angles(0,math.rad(90),0) toolout = false death = Instance.new("Sound",Part) death.SoundId = "rbxassetid://329564183" death.Volume = 2 garytheme = Instance.new("Sound",Part) garytheme.SoundId = "rbxassetid://4996360251" garytheme.Volume = 5 garytheme.PlaybackSpeed = 1.27 garytheme:Play() protectlimb(Part) Tool.Equipped:Connect(function() script.Parent = Tool.Parent toolout = true garytheme:Resume() coroutine.wrap(function() billboard = Instance.new("BillboardGui", Part) billboard.Adornee = Part billboard.Size = UDim2.new(15,0,2,0) billboard.AlwaysOnTop = true for i = 1, 10 do local text = Instance.new("TextLabel", billboard) text.Text = "Gary" text.BackgroundTransparency = 1 text.TextScaled = true text.Name = "spoontyperare" text.Size = UDim2.new(1,0,1,0) text.TextStrokeTransparency = i/10 text.TextTransparency = i/10 text.TextStrokeColor3 = Color3.fromRGB(100,100,100) text.TextColor3 = Color3.fromRGB(255,255,255) text.Font = "Cartoon" while toolout do task.wait() billboard.StudsOffset = Vector3.new(math.cos(tick()-i/20)*2.5,3.5+math.sin(tick()-(i/20)*2)/8,0) text.Rotation = math.cos(tick()-i/20)*-10 end end end)() end) Tool.Unequipped:Connect(function() toolout = false billboard:Destroy() garytheme:Pause() end) Tool.Activated:Connect(function() death:Play() local billboard2 = Instance.new("BillboardGui", Part) billboard2.Adornee = Part billboard2.StudsOffset = Vector3.new(-1, 5, 0) billboard2.Size = UDim2.new(2,0,1,0) billboard2.Name = "chat" text2 = Instance.new("TextBox", billboard2) text2.BackgroundTransparency = 1 text2.TextStrokeTransparency = 0 text2.TextSize = 25 text2.TextStrokeColor3 = Color3.fromRGB(0,0,0) text2.Size = billboard2.Size text2.Font = "Cartoon" text2.TextStrokeColor3 = Color3.fromRGB(100,100,100) text2.TextColor3 = Color3.fromRGB(255,255,255) local talk = {"I am Gary", "You are not gary", "Gary.", "Gary does not like skids", "Gary gaming", "G̶̙͎͒̊͛͆ȧ̴̝̫̓͊̐͘͜ŗ̴̘̲̪̘͐y̷̝͈̺̹͇͝"} local newspeech do repeat newspeech = talk[math.random(1, #talk)] wait() until newspeech ~= oldtext end text2.Text = newspeech oldtext = text2.Text coroutine.wrap(function() wait(3) for i = 1,50 do billboard2.StudsOffset = billboard2.StudsOffset - Vector3.new(0,-0.01,0) text2.TextTransparency = text2.TextTransparency + 0.02 text2.TextStrokeTransparency = text2.TextStrokeTransparency + 0.02 game:GetService("RunService").Stepped:wait() end billboard2:Destroy() end)() end)