Checking values not working as intended

Hi, I’m making it so when the player dies, the script detect what DATA value they have. (Ignore the skindata thing), the module is fired with the desired soundid. but the problem is, even when my datavalue is in the correct value (e.x = 3), it still fires the incorrect check as if my datavalue isn’t 3? (Line 2), I also did prints that print the datavalue, and it prints out 3.

chr.Humanoid.Died:Connect(function()
			if data.Value ~= 2 or data.Value ~= 3 or data.Value ~= 4 or data.Value ~= 21 then
			diedmodule.OnDeath(plr,chr,chr.Torso,skindata,"rbxassetid://1218390070")
			elseif data.Value == 2 then
				if skindata.Value ~= 1 then
					diedmodule.OnDeath(plr,chr,chr.Torso,skindata,'rbxassetid://5083223890')
				else
					diedmodule.OnDeath(plr,chr,chr.Torso,skindata,'rbxassetid://8366720886')
				end
			elseif data.Value == 3 then
				if skindata.Value ~= 1 then
					diedmodule.OnDeath(plr,chr,chr.Torso,skindata,'rbxassetid://3060494212')
				else
					diedmodule.OnDeath(plr,chr,chr.Torso,skindata,'rbxassetid://6480982647')
				end
			elseif data.Value == 4 then
				diedmodule.OnDeath(plr,chr,chr.Torso,skindata,'rbxassetid://8366720886')
			elseif data.Value == 5 then
				
			elseif data.Value == 21 then
				diedmodule.OnDeath(plr,chr,chr.Torso,skindata,'rbxassetid://8393073695')
			end
		end)
1 Like

make sure you’re setting and reading the value both on serverside or both on clientside