Is archivable not detected with .Changed?

I was messing around, and I noticed that if your script sets archivable to false, and it gets set to true, it doesn’t fire the changed event, why is that?

In an attempt to replicate this issue, I created a folder and a script in ServerScriptService.

In the script, I connected the change event to the folder, and then made a while loop that sets Archivable to the opposite of what it was prior, and the changed event seems to fire each time.

Could you please post your code?

Here’s my code:

local TestObject = script.Parent.Folder

TestObject.Changed:Connect(function(changedPropertyName)
	print("Property "..changedPropertyName.." has been changed.")
end)

while wait(.25) do
	TestObject.Archivable = not TestObject.Archivable
	print("Set archivable to "..tostring(TestObject.Archivable))
end
script.Changed:Connect(function()
	print("Archivable Changed!")
end)
script.Archivable = false;

It only fires when called in the script, not when u manually change it.

Is it a server script, if so, if you change it on client, it won’t change it for the server, try viewing it as a server after clicking play and changing it as the server.

It’s a client script so I’m changing it on the client.

I tried making the target anything but the script, and it worked.

Hmm. Weird. Might be something before that stopping it - it is a 600 line script.

I just tried the code snippet you provided, and it worked perfectly

I copied the exact code you replied to me with and ran it in a server script, and in a localscript and they both worked flawlessly. May I ask why you are trying to set archivable to false? Perhaps there is something else at play here, such as the .Changed event never being connected. If you put a print before the .Changed, does it print? If not, it could be something to do with the code prior.

If the code is ever disabled during run time it removes the bind on Changed

It was the code place, I do feel dumb now. Small problems make huge problems apparently