How generate a new texture during run-time? (not every frame)

I made a skateboard model which I UV’d to fit this:
Where the green is where a graphic would go.
What I’d like to do is be able to change the graphic/ wheel color on a single texture during runtime. Is it possible to mask out parts of the material (like the wheels) and only change the color of that section?
For the graphic, is it possible to have a separate image with all of the graphics packed onto it and then pick and choose which one to apply to the green during run-time?
The idea is when the user is done “customizing” the skateboard, a new image will be generated which fits the UV map.

Is there better ways of doing something like this? Im pretty new to this haha.

Couldn’t you apply sprites or decals instead? Give the skateboard a base texture, then build ‘sprites’ or ‘decals’ that can be applied ontop of the original texture?

I somewhat found a workaround using dynamic material instances but there must be a simpler way. I will try out decals