✓ Accepted answer
What you've done will only run once, not every time the value is changed. Also, you're checking if the value of the ColorValue is equal to an empty string, which will never be true as a BrickColor value is never equal to a string, that would be the reason it's not doing anything, even on the only time it runs. To fix it, have a .Changed event listener and run the for loop each time that is fired, and also don't compare the value of ColorValue to a string. Another problem that would occur is that it would error when it gets to changing the brick color, as you've set it to practically BrickColor.new(BrickColor.new("White")) which would error because it would be expecting a string, not a brick color. Finally, printing v will give you an error simply because v will be an object and you can't print objects, only strings, integers and other similar values.
Here's the code you should use:
local value = script.Parent.Parent.ColorValue
local mchild = script.Parent:GetChildren("ColorMeSkin")
value.Changed:connect(function()
for i,v in pairs(mchild) do
v.BrickColor = value.Value
print(v.Name)
end
end)
2 comments
Could we have the error?
@UltChowsk 'it does not work nor do i get errors' - I've answered it anyway, it was a logic error and a few other errors that didn't show because the part of the code they were in never ran.