Unknown Property "Color3uint8" from BasePart.Changed

If you run this code below in the command bar you will see that it prints 3 times with 3 properties one of them doesn’t exist?

because I get this error

Color3uint8 is not a valid member of Part "Part"

local Part = Instance.new("Part")

Part.Changed:Connect(function(property: string)
	print(property, Part[property])
end)

Part.Color = Color3.fromRGB(math.random(255),math.random(255),math.random(255))
--

--Output:
--     BrickColor
--     Color
--     **Color3uint8** 
No Search Results

1 Like

IIRC Changed can fire for hidden properties, but I’m not sure if you get that error for those properties (presumably you do). This is probably a duplicate of other topics about that.

2 Likes

You will sometimes see .Changed fire for internal properties that are not accessible through the scripting API, this is a known API wart.

This is one of the many reasons why using :GetPropertyChangedSignal is better when possible.

4 Likes

I’m using this to sync parts, say I make a change to one model it will replicate to all synced models.

The main problem is we can’t get a list of properties from :GetProperties() and there isn’t any documentation on hidden properties :upside_down_face:

Yeah, unfortunately there’s no great workaround for this other than just explicitly whitelisting what properties you want to copy or using pcall to blacklist bad properties (cache whether each property could be successfully set in a map by attempting to get/set it in a pcall first).

1 Like