Can't recolor/rematerial Unions like I can other parts in Studio

Reproduction Steps

  1. Open new place in Studio
  2. Open attached model
  3. Select model and try to make it Red. The Union in the model doesn’t change color.
  4. Ditto for Material
  5. Ditto if explicitly select the Union in Explorer pane and try to make it Red.

Won’t recolor.rbxm (26.6 KB)

Expected Behavior
I expect Unions to be recolorable like all other parts.

Actual Behavior
Nothing happens when I try to change the material/color properties of a Union

Workaround
If you separate the Union into constituent parts, you can color those and then rebake the Union.

Maybe this is what Studio should do to map my intent “Change the color of this” to actuality. I am trying to recolor a tower with hundreds of Unions in it, so I don’t want to do this manually.

Issue Area: Engine
Issue Type: Other
Impact: Moderate
Frequency: Constantly

So you can understand, I’m trying to make this tower Red without a lot of work:

EDIT: It’s become clear that this is not a bug, but working as designed. I think it should be moved to the Studio Bug section though so someone who knows about Studio UX can think about whether this is the desired user experience or not, and if there is a way to make it more clear to the end user why it fails/what is going on

4 Likes

There’s already a property that covers this use case. It won’t let you multicolor a union, but after you toggle it on, it’ll do what you’re mentioning.

https://developer.roblox.com/en-us/api-reference/property/PartOperation/UsePartColor

If you’re looking to suggest multicolor, that’d likely be more of a feature request.

1 Like

That is very helpful. I wonder why that’s not the default or how I would find out about that.

Maybe this is a Studio bug then. Seems like a UX crime to have this secret hidden setting I need to toggle to get the default behavior.

It’s not great that I need to write a script now to toggle it for every Union in my tower, so I think there is still an opportunity to make this better. Thanks for the tip though, it unblocks me.

5 Likes

Glad to have helped.

I believe it being false is likely intentional. This property sadly overrides multiple colors, hence the default state. If it was true by default, all unions made of multiple colors would be morphed into a unicolor blob.

Hello Shedletsky, did you find any way to avoid the bug?
If you did not find a way instead of scripting using PartOperation | Roblox Creator Documentation
You can maybe use a popular studio plugin(I personally like F3X) for recoloring all of the tower.
never really tried to color a part that has material and that is unioned but I think it should work like other parts.

Yeah it’s probably the case that the “UsePartColor” property belongs on the recolor ACTION and not on the UnionOperation Part.

4 Likes

Sounds like a great idea to make a feature request for that; automatically setting UserPartColor to true when changing Union color in Studio.

The reason that UsePartColor = false is the default is that being able to have multi-colored Unions is actually a highly desirable and highly utilized feature of CSG.

I have a better UX suggestion to solve this: Would it work for you if UsePartColor were automatically set to true when unioning parts of the same color, but set to false when unioning parts of different colors?

14 Likes

I think this in addition to changing this property when setting the union color in Studio would solve the problem completely.

5 Likes

There’s quite a few cases like that we could apply, but we really try to avoid doing stuff like that because it causes confusion for people expecting that setting something via the properties pane will have the same result as setting it via the scripting API.

5 Likes

Here are the two problems, I think:

  1. I use the paint bucket to color a model and some parts don’t change color because of this property, but as a user, I get no feedback as to why that is happening. No other parts have a property that makes them ignore the paint bucket, so UnionOperations are weird in this way and I feel that is counterintuitive that I should have to know about this or think to look for it.

  2. To actually paint my model red, I need to write a script to set this secret property to false for all UnionOperations in my model. That feels gross and bad, since I’m just trying to color a model.

Comments on possible solutions:

Toggling UsePartColor based on whether the parts in a Union are different colors/materials I don’t think fixes these issues completely. It also isn’t great if the Paint tool sets the color a part and also, if the part is a UnionOperation, toggles this other property because now you have a coloring operation with side effects. I.e. If I start with a Gray model, color it Red, and then color it Gray again, I don’t actually end up where I started, which I think is counterintuitive. However it is probably the best quick fix?

It seems like UsePartColor is a poor man’s MultiMaterial (from 3DS Max), but those multiple materials are being hidden from Studio. I.e. if I Union a Red part and a Green part, the result says Red and Green, but I can no longer change those colors without separating the Union. I think this is the root problem. The Color/Material needs to become it’s own object that a part/union can have multiple of. Then when you paint the part, they get reduced down to a single material that is whatever color you paint it.

TLDR The optimal design does this:

User intent => thing happens.

4 Likes