Image not changing in a image object

Hello, I am making a script where when the event is fired the decal / any imageobject inside a part changes its image id, I thought this would be simple, but

Näyttökuva 2022-08-29 211353
here are some decals in a folder. They have a image id attribute inside of them (their texture) like any other imageobject.

When this runs it searches the decal values folder for a decal named the ‘fraction’ variable’s value. after that It should take the image id and put it into every decal inside of the target part. Problem being that when it runs the decals only changes to one of the possible textures and even when the fraction variable changes it doesn’t affect it.

	local children = target:GetChildren()
			for i = 1, #children do
				local inst:Instance = children[i]
				if not inst then print("Couldn't find instance") return end
				if inst:IsA("Decal") then
					local decal:Decal = children[i]
					if not decal then print("Couldn't find decal") return end
					local fraction = Health / maxhealth * 100
					print(fraction)
					for j = 1, 9 do
						if fraction > (j * 10) then
							local decalvalue = decalvalues:FindFirstChild(tostring(j * 10))
							if not decalvalue then print("Couldn't find decalvalue ") return end
							decal.Texture= decalvalues:FindFirstChild(j*10).Texture
							break
						end
					end
				end
			end

what could be the problem, I am also not sure about is it the loops or what?
Also yes I have checked that the decals folder’s decals textures are valid