Fe tools Script classic DISCONTINUED CAUSE OF BUGS
Key RequiredUniversal

Fe tools Script classic DISCONTINUED CAUSE OF BUGS

Universal ScriptUltikal_or_CoolkidUltikal_or_Coolkid 6.3K views 592 executesUpdated Dec 28, 2024
Unrated
00
Lua Script•181 lines (6602 chars)
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)

Features & Information

Features Get Guitar - gives you a guitar Get Monstermash - self explanatory Gentleman Idle and Walk ANim - Self explanatory THE GUI IS DRAGGABLE Friendly reminder - this is still wip so expect some things getting added soon

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts