Tool events not connecting i've tried to script this, but from nowhere, the tool events(equipped, unequipped, Inputbegan etc.) dont respond anymore, i've put a function on equip to see if it works, but it didnt, for some reason, beyondan line no prints, even the ones out an condition, dont respond.

--LEIA ISSO:

--ao inserir esse script em outras armas, lembre-se se trocar algumas coisas:

--1.Referencias ao rifle anterior (Cheque a local Tool)

--2.Status como Dano, range etc.

--3.acho que só isso :^

local Players = game:GetService("Players")

local player = game.Players.LocalPlayer

local backpack = player.Backpack

local tool = script.Parent

local animacoes = tool.Animacoes

local PlayerCharacter = player.Character or player.CharacterAdded:Wait()

local Playerhumanoid = PlayerCharacter:WaitForChild("Humanoid")

local UserInputService = game:GetService("UserInputService")

local mouse = player:GetMouse()

local TimeDoAtirador = (player.Team)

local AplicarDano = game.ReplicatedStorage:WaitForChild("AplicarDano")

--right, check.

print ("Time do player:"..tostring(TimeDoAtirador))

--relacionado á reload c/weld.

local head = PlayerCharacter:FindFirstChild("Head")

-- Status da arma

local equipado = false

local disparavel = true

local municao = 7--antes era 5, mas vamos por 7, vai deixar o rifle mais unico e é legal haha

local reserva = 30

local recarregando = false

local capacidadeMax = 7

local ciclando = false

local Dano = 70

local ReloadTime = 2

local TipoDeDano = "Chumbo"

local TarefaAtual = nil

local PossuiBaioneta = false

local BaionetaLigada = false

local LadoDaArma = "Fratis"

--não se julgue, você já fez muito por hoje, parabéns. -O

if not Playerhumanoid then

error("Humanoid do player indef")

end

-- Animações

local IdleAnim = Playerhumanoid:LoadAnimation(tool.Animacoes.Idle)

local AnimationTracks = {

Shoot = Playerhumanoid:LoadAnimation(tool.Animacoes.Shoot),

OpenBolt = Playerhumanoid:LoadAnimation(tool.Animacoes.OpenBolt),

CloseBolt = Playerhumanoid:LoadAnimation(tool.Animacoes.CloseBolt),

InsertAmmo = Playerhumanoid:LoadAnimation(tool.Animacoes.InsertAmmoSingle),

InsertClip = Playerhumanoid:LoadAnimation(tool.Animacoes.InsertClip),

Cycle = Playerhumanoid:LoadAnimation(tool.Animacoes.Cycle)

}

--os sons da Bixinho (darling, i, keep falling in love...)

local puxarAudio = tool.Som

local Tirosom = puxarAudio.Shoot

local CiclarSom = puxarAudio.Ciclar

local OpenBoltSom = puxarAudio.OpenBolt

local InsertClipSom = puxarAudio.InsertClip

local function InsertSingleTocarSom()

local InserSingleSom = puxarAudio.InsertSingle

local MaxPitch = 1.5

local MinPitch = 0.8

InserSingleSom.PlaybackSpeed = math.random()\*(MaxPitch - MinPitch) + MinPitch

InserSingleSom:Play()

end

--função para chamar funções ----------------------------------------------------------------------------------------------------

local function executarTarefa(acao)

local tarefa = {}

tarefa.Cancelada = false

tarefa.Coroutine = coroutine.create(function()

    acao()

    if not tarefa.Cancelada then

        TarefaAtual = nil

    end

end)

TarefaAtual = tarefa 

coroutine.resume(tarefa.Coroutine)

end

--função de Flash

local function LigarFlash()

local Flash = tool.Muzzle.ParticleEmitter

local LuzDoFlash = tool.Muzzle.PointLight

Flash.Lifetime = NumberRange.new(0.1)

LuzDoFlash.Brightness = 4.76

task.wait(0.2)

Flash.Lifetime = NumberRange.new(0)

LuzDoFlash.Brightness = 0

end

-- GUI

local gui = tool:WaitForChild("WeaponGui")

local Pente = gui:WaitForChild("Pente")

local Reserva = gui:WaitForChild("Reserva")

local Status = gui:WaitForChild("Status")

-- Função para configurar o Motor6D (Weld)

local function WeldUpNiceNClean()

print ("Cola aqui.")

local Weld = tool.WEmpunhadura

Weld.Part0 = head

end

-- Atualiza UI da arma

local function atualizarUI()

Pente.Text = "Ammo: " .. tostring(municao)

Reserva.Text = "Reserve: " .. tostring(reserva)

if disparavel then

    Status.Image = "rbxassetid://125129346196868"

else

    Status.Image = "rbxassetid://140072019296693"

end

end

-- Função de Ciclar

local function Ciclar()

TarefaAtual = Ciclar

ciclando = true

recarregando = false

AnimationTracks.Cycle:Play()

CiclarSom:Play()

AnimationTracks.Cycle.Ended:Connect(function()

    print ("Thack Tchak!")

    disparavel = true

    ciclando = false

    TarefaAtual = nil

    atualizarUI()

end)

end

print (tool.Name)

-- Equipar e desequipar a arma

local function aoEquipar()

print("Tool equipada!")

WeldUpNiceNClean()

local playerGui = player:WaitForChild("PlayerGui")

equipado = true

IdleAnim:Play()

if not playerGui:FindFirstChild(gui.Name) then

    gui.Parent = playerGui

    gui.Enabled = true

    atualizarUI()

end

end

local function aoDesEquipar()

local playerGui = player:WaitForChild("PlayerGui")

equipado = false

recarregando = false

if gui.Parent == playerGui then

    IdleAnim:Stop()

    gui.Parent = tool

    gui.Enabled = false

end

if TarefaAtual then 

    task.cancel(TarefaAtual.Coroutine)

    for \_, track in pairs(AnimationTracks) do

        track:Stop()

    end

else if TarefaAtual == nil then return end

end



\-- Função de disparo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, ALGUÉM ME AJUDA! AQUI É A FUNÇÃO DO DISPARO!, ESSAS LETRAS LONGAS SÃO PARA MARCAR QUE AQUI É A FUNÇÃO DE ATIRAR! DEVE TER ALGUM JEITO MAIS FACIL DE MARCAR, EU IMPLORO POR ALGÚEM ME EXPLICAR!

local function Atirar()

    print("Tentando atirar...")

    if municao <= 0 then

        disparavel = false

        atualizarUI()

        return

    end

    if not disparavel then

        if ciclando then return end

        executarTarefa(Ciclar)

        return

    end

    if recarregando then

    end

    local head = PlayerCharacter:FindFirstChild("Head")

    if not head then

        print("eu sou burro ou você NÃO TEM UMA CABEÇA?!")

        return

    end

    local rayOrigin = head.Position

    local rayCastParams = RaycastParams.new()

    rayCastParams.FilterDescendantsInstances = {PlayerCharacter}

    rayCastParams.FilterType = Enum.RaycastFilterType.Exclude

    local rayDirection = (mouse.Hit.Position -rayOrigin).unit \* 600

    local raycastResult = workspace:Raycast(rayOrigin,rayDirection,rayCastParams)

    Tirosom:Play()

    task.spawn(LigarFlash)

    if raycastResult then

        local hit = raycastResult.Instance

        print("Acertou:",hit.Name)



        local hitHumanoid = hit.Parent:FindFirstChild("Humanoid")

        if hitHumanoid then

print("HUMANOID DETECTED, IT IS:".. tostring(hitHumanoid))

AplicarDano:FireServer(TimeDoAtirador,hitHumanoid,Dano,TipoDeDano)

        else

print("Nenhum humanoid achado no personagem.")

        end

    else 

        print("não é um personagem.")

    end

    AnimationTracks.Shoot:Play()

    municao = municao - 1

    disparavel = false

    print("atirou.")

    atualizarUI()

end 

local function BotarBalas()

    if not recarregando or reserva <=0 or not equipado then

        print("PARO!")

        return

    end



    local BalasPRecarregar = math.min(capacidadeMax - municao,reserva )

    for i = 1, BalasPRecarregar do

        if not recarregando or reserva <= 0 or not equipado then

print "você está equipando essa arma, você tem munição nessa budega? seu animal."

return

        end

        wait(ReloadTime/(capacidadeMax - municao))

        AnimationTracks.InsertAmmo:Play()--bota 

        InsertSingleTocarSom()

        task.wait(AnimationTracks.InsertAmmo.Length)--------------------------------------------------------------ESTAVAS TRABALHANO AQUI--------------------------------

        reserva = reserva - 1

        municao = municao + 1

        atualizarUI()

    end

end

\--Função para se recarregar  parcial 

local function  RelParcial()    

    recarregando = true

    disparavel = false

    AnimationTracks.OpenBolt:Play()

    OpenBoltSom:Play()

    task.wait(AnimationTracks.OpenBolt.Length)

    BotarBalas()

    TarefaAtual = RelParcial

    AnimationTracks.CloseBolt:Play()

    task.wait(AnimationTracks.CloseBolt.Length)

    recarregando = false

    disparavel = true

    TarefaAtual = nil

    atualizarUI()

end



\-- Função para se Recarregar vazio VOCÊ ESTÁ MECHENDO COM O SOM AQUI! ESSE É O MARCADOR AAAAAAAAAAAAAAAAAAA ALGUÉM ME AJUDA! EU IMPLORO! POR FAVOR! 

local function RelVazio()



    recarregando = true

    disparavel = false

    TarefaAtual = RelVazio

    AnimationTracks.OpenBolt:Play()

    OpenBoltSom:Play()

    task.wait(AnimationTracks.OpenBolt.Length)

    local QuantidadeArecarregar = math.min(capacidadeMax, reserva)

    AnimationTracks.InsertClip:Play()

    InsertClipSom:Play()

    municao = QuantidadeArecarregar

    reserva = reserva - QuantidadeArecarregar

    task.wait(AnimationTracks.InsertClip.Length)

    AnimationTracks.CloseBolt:Play()

    task.wait(AnimationTracks.CloseBolt.Length)

    TarefaAtual = nil

    disparavel = true

    recarregando = false

    atualizarUI()

end



\-- Evento para recarregar

local function onKeyRPress(input, gameProcessed)

    if input.KeyCode == Enum.KeyCode.R then

        if not equipado then

print("Arma não está equipada.")

return

        end

        if recarregando then 

print("PARA! SUSSEGA!")

return

        end





        if reserva == 0 then return end

        if municao == capacidadeMax then    

return

        end

        if municao == 0 then

RelVazio()

        end



        if municao < capacidadeMax then

RelParcial()

AnimationTracks.CloseBolt:Play()

        end





    end

end



\-- Eventos para correr

local function Correr(input, gameProcessed)

    if input.KeyCode == Enum.KeyCode.LeftShift then

        player.Character.Humanoid.WalkSpeed = 25

    end

end



local function PararCorrer(input, gameProcessed)

    if not gameProcessed and input.KeyCode == Enum.KeyCode.LeftShift then

        player.Character.Humanoid.WalkSpeed = 16 

    end

end



\-- Conexões de eventos

UserInputService.InputBegan:Connect(function(input: InputObject, gameProcessedEvent: boolean) 

    executarTarefa(function()

        onKeyRPress(input, gameProcessedEvent)

    end)

end)

tool.Activated:Connect(Atirar)

tool.Equipped:Connect(function()

    print("essa budega funciona :D")

end)

tool.Unequipped:Connect(aoDesEquipar)

UserInputService.InputBegan:Connect(Correr)

UserInputService.InputEnded:Connect(PararCorrer)

end