My friend @joshcraft900 and I as well as some other people are working on a game and him and I have come across a confusing bug. The tool is supposed to set a joint’s Part1 to the character’s left arm (R6), so making the tool spin in it’s animations can be possible.
However, the weld and/or the equipped listener itself isn’t functioning. I tried putting a print statement in the listener but there were no prints. Another problem is with the tool simply disappearing after being equipped for a few seconds.
I suspect it could be an error yielding before the listener is declared, but there have been no errors or warnings from the output stemming from the script, nor are there any loops or functions that will yield infinitely, such as a while loop. This is very confusing.
I’m not looking for a total rescript but just a simple answer maybe pointing out something I did wrong or forgot to do.
Hierarchy:
The script named “Script” with the Equipped remote as a child to it is the script that is having problem


Script
local player = nil
local addedon = false
local blade = script.Parent['Bostaff'].Hitbox
local idleanim = nil
local walkanim = nil
local jumpanim = nil
local fallanim = nil
local attack1anim = nil
local attack2anim = nil
local attack3anim = nil
local airattack1anim = nil
local airattack2anim = nil
local waterattack1anim = nil
local waterattack2anim = nil
local waterattack3anim = nil
local waterairattack1anim = nil
local infuse = nil
local equipped = false
local state = "Grounded"
local trail = blade.Trail
trail.Enabled = false
local combo = 0
local thing = Instance.new("BodyVelocity")
local stunned = nil
local CANHIT = false
local trigger = false
local jumptrigger = false
local running = false
local canattack = true
local damage = 17
local cancombo = false
local aircombo = 0
local Debris = game:GetService("Debris")
local TweenService = game:GetService("TweenService")
blade.Touched:Connect(function(hit)
if CANHIT then
if hit.Parent:FindFirstChild("Humanoid") and hit.Parent ~= player.Character then
CANHIT = false
hit.Parent.Stunned.Value = 2
hit.Parent.Humanoid:TakeDamage(damage)
if hit.Parent.Humanoid.Health <= 0 then
game.ReplicatedStorage.EnemyKilt:Fire(player,hit.Parent)
end
if combo == 3 then
local vel = Instance.new("BodyVelocity")
vel.Velocity = player.Character.HumanoidRootPart.CFrame.LookVector * 10
vel.Parent = hit.Parent.HumanoidRootPart
Debris:AddItem(vel, 1)
end
end
end
end)
script.Parent.Equipped:Connect(function()
print("staff equipped")
wait()
player = game.Players:WaitForChild(script.Parent.Parent.Name)
walkanim = player.Character.Humanoid:LoadAnimation(script.Parent.Anims.Walk)
idleanim = player.Character.Humanoid:LoadAnimation(script.Parent.Anims.Idle)
fallanim = player.Character.Humanoid:LoadAnimation(script.Parent.Anims.Fall)
jumpanim = player.Character.Humanoid:LoadAnimation(script.Parent.Anims.Jump)
attack1anim = player.Character.Humanoid:LoadAnimation(script.Parent.Anims.Attack1)
attack2anim = player.Character.Humanoid:LoadAnimation(script.Parent.Anims.Attack2)
blade.Parent.Handel.Joint.Part1 = player.Character["Left Arm"]
blade.Parent.Parent = player.Character
print("thing worked and equipped")
print(script.Parent.Parent.Parent)
idleanim:Play()
stunned = player.Character.Stunned
if addedon == false then
wait()
addedon = true
player.Character.Humanoid.StateChanged:Connect(function(old,new)
if new == Enum.HumanoidStateType.Jumping or new == Enum.HumanoidStateType.FallingDown or new == Enum.HumanoidStateType.Freefall then
state = "Airborn"
thing.Parent = nil
else
state = "Grounded"
end
end)
end
equipped = true
end)
Note: The errors in the below output are from plugins I am using and assets not loading correctly.