Changing an attribute does not fire Instance.Changed

Instance.Changed does not fire when an attribute is changed.

This only happens with Instance.Changed, not Instance.AttributeChanged or other attribute-related events.

This happens on both Roblox Studio and in the Roblox Player to my knowledge.

Reproduction steps

  1. Add an attribute to a part in Roblox Studio.
  2. Create a script to detect and print to the output when the part’s Changed property is fired
  3. Run the experience and change the attribute. Nothing will be printed to the output, meaning that the Instance.Changed property didn’t fire.

Here’s the script I’m using:

script.Parent.Changed:Connect(function(property)
	print("Changes detected in property " .. property .. " of part")
end)

Video

Repro File
AttributeBugReproFile.rbxl (59.1 KB)

Expected behavior

I expect that changing an attribute of an instance fires the Instance.Changed event, in accordance with the documentation for attributes (Properties and attributes | Documentation - Roblox Creator Hub) stating that the Instance.Changed event listens for changes to any property, including attributes.

1 Like

Yes because you need to use AttributeChangedSignal and not Changed. Changed is meant for property changes from the start.

1 Like

The documentation for attributes states otherwise, though. It states that “the Instance.Changed event listens for changes to any property (including attributes) and passes the name of the changed property as a parameter.”

This bug started occurring for me last week, around 1/27/2025 6pm CST. Before that, Instance.Changed would detect when attributes were changed. If this is a new, intended change, then I think the documentation should be updated to reflect this.

2 Likes

That’s interesting as it occurred to me from the start. I think this is just a documentation issue then. Orrr maybe I’m just wrong about it.

2 Likes

This isn’t a bug.

Instance.Changed and DataModel.ItemChanged signals will no longer be called when non-scriptable of inaccessible properties change.

Attributes causing Changed to fire was a side effect of attributes being saved as a binary string property. The documentation should change–it was documenting the behavior as it was, not as it was intended to be.

I’ve filed a PR to change the documentation: Remove reference to .Changed firing for attribute changes by Kampfkarren · Pull Request #1013 · Roblox/creator-docs · GitHub

5 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.