GetAttributeChangedSignal does not detect when changed fast

I am changing an attribute on the player reasonably quickly on the server, but the client does not pick up these changes.

function InventoryManager.Equip(player)
--// stuff

    InventoryManager.Unequip(player)

	player:SetAttribute("CurrentSlot", 2)
end
function InventoryManager.Unequip(player)
	player:SetAttribute("CurrentSlot", 0)
end

Client

local ItemChangeConnection = Player:GetAttributeChangedSignal("CurrentSlot"):Connect(function()
		print("CHANGE")
		self:Equip()
	end)

This print does not fire. However, if I manually change the attribute on the client, it does fire, so it’s connected correctly. But when I change it to 0 then to 2 it’s obviously going too fast?

In the module, I assume you might want to put the InventoryManager.Unequip above the InventoryManager.Equip. As it doesn’t really matter but it defines InventoryManager.Unequip before function InventoryManager.Equip uses it, I’m not sure if Roblox functions get defined as you use them but they might be so, this may be a fix to your issue since the function wouldn’t be defined before you used it ending it being undefined or non existent.

Running into this problem as well. Did you ever find a solution/answer to this?