When changing a variable .changed doesnt fire again

I have a variable that gets changed to a new part and when I switch to the next part it doesn’t run changed again.

I know the answer is obvious but I just can’t think straight i’ve tried adding repeats and whatnot but it never worked or if it did it counted to 63k in less than a second and then the script quit

part = script.Parent
part.connected.Changed:Connect(function()
print"connect"
local part = script.Parent
if part.connected.Value ~= nil then
print(count)
part.connected.Value.Name = "work"
part = part.connected.Value.Parent.Connector 
part.Mesh:Destroy()
end
end)

Is it a server script? If so then try changing the value in the server because servers can’t read client-assigned values

it is a regular server script not local and connected is determined by it touching another part of the same name

Is the .touched part script also a server script?

yes it is in the same script (i have to drag out this comment to get over 30 letters)

i just noticed an incredibly obvious issue im gonna try and fix it to see if it will work

so beside the obvious goof of having local part = script.Parent inside the function it still doesnt work