# Why does changing the diffuse color of my model's effect change it for all models?

I want to change color of individual model in my game. But when I use

effect.DiffuseColor = newColor

then all of models which were loaded from same model file change color too.

How can I do ?

you are changing the Diffusecolor in the same effect.

there is no easy way to clone a model

so the answer is before draw set the color properly for each model

// Draw method
foreach (ModelMesh mesh in m.Meshes)
{
foreach (BasicEffect effect in mesh.Effects)
{
effect.DiffuseColor = newColor;
}
mesh.Draw();
}

• In addition to this I would be setting the Diffuse color from an the mesh object. This way you can have a default color being applied to the effect if no Diffuse color is needed. – FrenchyNZ Nov 8 '11 at 17:08