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

Setting string value to material type?

So I have this string value that changes to a material (Plastic,Fabric,Neon,etc...) How would I set a material to that string value?

here is a little line or so

local material = script.Parent.Parent.MaterialPicker.MainFrame.CurrentMaterial.Value
slab.Material = Enum.Material.material --Obvi not working

2 answers

You must use []'s when specifying a variable as the index, so it would be slab.Material = Enum.Material[material]

A simple way to do this, is simply set it to the string. You almost had it down, but in this case Enum.Material.(string), would not work. So, there is two different methods you can use. An example of what I mean is like this:

material="Plastic"
game.Workspace.Part.Material=material --Works :P

--or

material="Plastic"
game.Workspace.Part.Material=Enum.Material[material]

So to apply this to your script, we'll use the same variable and everything, and simply change it so that it sets the Material equal to the string:

local material = script.Parent.Parent.MaterialPicker.MainFrame.CurrentMaterial.Value
slab.Material = material

Now we'll try it using the second method:

local material = script.Parent.Parent.MaterialPicker.MainFrame.CurrentMaterial.Value
slab.Material =Enum.Material[material]

Either of these would work correctly, you can decide which one to use. For simplicity, I would go with the first method however.


Anyways, hope this helped. If you have any further problems/questions, please leave a comment below, and I'll see what I can do :P

####-Dyler3

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