Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

How to mass change decal color?

I've recently been experimenting with realistic-looking hair in Roblox studio and came across a grass plugin that would add grass (Landscape Brush tool). This plugin adds a custom mesh along with a decal into the workspace. The plugin worked very well; The hair was SUPER realistic. No, my problem was that I couldn't change the colour of the grass all at once. I've tried making a script(As shown below), but it doesn't seem to work. I could go in and manually change each piece, but that would be a huge waste of time, especially since there are at least a hundred.

local this = script.Parent
local grass = this:GetChildren("Grass")
local grassDecal = grass:GetChildren("Decal")

function Color()
	grassDecal.Color3(170,0,0)
end

This is placed inside the model that contains both the part that needed hair along with the grass. (How do you add pictures in the forum?)

2 answers

✓ Accepted answer

GetChildren doesn't take any arguments, it just gives you every single child

also, you can't change the properties of multiple children at once with a single assignment; you have to iterate over every single one with a for loop

local this = script.Parent -- no idea why you do this but let's just go with it

local function Color()
	for _, child in pairs(this:GetChildren()) do
		if child.Name == "Grass" then
			child.Color = Color3.fromRGB(170, 0, 0) -- Color3.new is from a 0-1 scale, you need to use Color3.fromRGB for 0-255
			for _, decal in pairs(child:GetChildren()) do
				if decal:IsA("Decal") then -- if the decals are the only children of each blade of grass, then you can remove this part
					decal.Color3 = Color3.fromRGB(170, 0, 0)
				end
			end
		end
	end
end

1 comment

0

Thanks!

I guess this isn't an entire answer, but I found that I can duplicate the grass part, change the color, and then make it into a custom brush, therefore nullifying the problem.

This discussion is preserved as it was. New answers, comments, and votes are closed.