local ToolName1 = "Guitar" local ToolName2 = "Monstermash" local holdAnimationId1 = "rbxassetid://55789536" local useAnimationId1 = "rbxassetid://55791140" local useAnimationId2 = "rbxassetid://35654637" local soundIds1 = {"rbxassetid://1089406", "rbxassetid://8509804480"} local soundId2 = "rbxassetid://35930009" local customIdleAnimationId = "rbxassetid://48138189" local customWalkAnimationId = "rbxassetid://27759788" local UserInputService = game:GetService("UserInputService") local ScreenGui = Instance.new("ScreenGui") local Frame = Instance.new("Frame") local TextButton1 = Instance.new("TextButton") local TextButton2 = Instance.new("TextButton") local TextButton3 = Instance.new("TextButton") ScreenGui.Name = "ToolGui" ScreenGui.Parent = game.Players.LocalPlayer:WaitForChild("PlayerGui") Frame.Parent = ScreenGui Frame.Size = UDim2.new(0, 300, 0, 220) Frame.Position = UDim2.new(1, -320, 0, 20) Frame.BackgroundColor3 = Color3.fromRGB(50, 50, 50) Frame.Active = true Frame.Draggable = true TextButton1.Parent = Frame TextButton1.Size = UDim2.new(0, 280, 0, 50) TextButton1.Position = UDim2.new(0.5, -140, 0, 10) TextButton1.Text = "Get Guitar" TextButton1.BackgroundColor3 = Color3.fromRGB(85, 170, 255) TextButton1.TextColor3 = Color3.fromRGB(255, 255, 255) TextButton1.Font = Enum.Font.SourceSans TextButton1.TextSize = 24 TextButton1.BorderSizePixel = 0 TextButton2.Parent = Frame TextButton2.Size = UDim2.new(0, 280, 0, 50) TextButton2.Position = UDim2.new(0.5, -140, 0, 70) TextButton2.Text = "Get Monstermash" TextButton2.BackgroundColor3 = Color3.fromRGB(255, 85, 85) TextButton2.TextColor3 = Color3.fromRGB(255, 255, 255) TextButton2.Font = Enum.Font.SourceSans TextButton2.TextSize = 24 TextButton2.BorderSizePixel = 0 TextButton3.Parent = Frame TextButton3.Size = UDim2.new(0, 280, 0, 50) TextButton3.Position = UDim2.new(0.5, -140, 0, 130) TextButton3.Text = "Gentleman Idle and Walk Anim" TextButton3.BackgroundColor3 = Color3.fromRGB(85, 85, 255) TextButton3.TextColor3 = Color3.fromRGB(255, 255, 255) TextButton3.Font = Enum.Font.SourceSans TextButton3.TextSize = 24 TextButton3.BorderSizePixel = 0 local function giveTool(toolName, holdAnimationId, useAnimationId, soundIds) local player = game.Players.LocalPlayer local t = Instance.new("Tool") t.Name = toolName t.RequiresHandle = false t.CanBeDropped = false t.Parent = player.Backpack local holdAnimation local useAnimation local playSound local function playEffects(player, hold, use) local character = player.Character if character then local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid then local animator = humanoid:FindFirstChildOfClass("Animator") or humanoid:FindFirstChildOfClass("Humanoid") if hold then if holdAnimationId and (not holdAnimation or not holdAnimation.IsPlaying) then local animation = Instance.new("Animation") animation.AnimationId = holdAnimationId holdAnimation = animator:LoadAnimation(animation) holdAnimation.Looped = true holdAnimation:Play() end else if holdAnimation and holdAnimation.IsPlaying then holdAnimation:Stop() holdAnimation = nil end end if use then if not useAnimation or not useAnimation.IsPlaying then local animation = Instance.new("Animation") animation.AnimationId = useAnimationId useAnimation = animator:LoadAnimation(animation) useAnimation.Looped = false useAnimation:Play() end local selectedSoundId = soundIds[math.random(#soundIds)] if not playSound or not playSound.IsPlaying then playSound = Instance.new("Sound") playSound.SoundId = selectedSoundId playSound.Parent = character.Head playSound:Play() else playSound:Stop() playSound:Destroy() playSound = Instance.new("Sound") playSound.SoundId = selectedSoundId playSound.Parent = character.Head playSound:Play() end else if useAnimation and useAnimation.IsPlaying then useAnimation:Stop() useAnimation = nil end if playSound and playSound.IsPlaying then playSound:Stop() playSound:Destroy() playSound = nil end end end end end t.Equipped:Connect(function() playEffects(player, true, false) end) t.Unequipped:Connect(function() playEffects(player, false, false) end) t.Activated:Connect(function() playEffects(player, true, true) end) end local function changeIdleAndWalkAnim() local player = game.Players.LocalPlayer local character = player.Character if character then local animate = character:FindFirstChild("Animate") if animate then local walkAnim = animate:FindFirstChild("walk") local idleAnim = animate:FindFirstChild("idle") if walkAnim then for _, anim in pairs(walkAnim:GetChildren()) do if anim:IsA("Animation") then anim.AnimationId = customWalkAnimationId end end end if idleAnim then for _, anim in pairs(idleAnim:GetChildren()) do if anim:IsA("Animation") then anim.AnimationId = customIdleAnimationId end end end end end end TextButton1.MouseButton1Click:Connect(function() giveTool(ToolName1, holdAnimationId1, useAnimationId1, soundIds1) end) TextButton2.MouseButton1Click:Connect(function() giveTool(ToolName2, nil, useAnimationId2, {soundId2}) end) TextButton3.MouseButton1Click:Connect(function() changeIdleAndWalkAnim() end)