Making models (Blender) with a variable colour

I’m trying to make models for a roguelike game, but I want the dungeons to have their own colour scheme. The models would have 2 colours; stone, and the variable dungeon colour.
I think I should give the models 2 materials for this, so I can change the colour of one material without affecting the other.
I just wanted to make sure that that would work (I would need the game to edit the material, and I’m not sure how), and wondered if I should be doing this a better way (I’m not an expert with materials).

Multiple materials may not work for this purpose, unless they are actually separate parts of the mesh. You need a single material that let’s you change values somehow.

One easy way is basic material changes. Most shaders let you make changes, in brightness and diffuse colors, on top of the existing textures. And often you can animate those changes in the animation system, or at the least you can duplicate the material for your object and change the duplicate.

Another solution that I personally like better(when possible) is to use Substances for materials. Substances are generally easy to change properties of, even at run-time. This of course means you either have to make your substances yourself or obtain them from other sources. But they don’t work exactly the same as regular texture based materials so it is another system to learn.

If you use multiple materials on an object, these can be individually switched/reassigned at runtime via script.

In one of my projects, I’m using a script to randomly make horses white, brown or black whenever they spawn, while keeping eyes, saddle etc. untouched.