Procedurally generated texture

Need some assistance with how I should go about making this.

So far I have a terrain that morphs with Perlin Noise to make a new map every time you play. However I need to have a texture match this generation.
My current attempt at making this is using a second layer of perlin noise make a new texture, and applying different points of color based on the “height” of the float value. That works at making a pretty map picture, but I haven’t been able to get it to make the same shape as the map that generates. Is there a better way of going about this?

Do you have any randomization going? If you do and are making a map twice you’ll get different results. Try just doing it once and storing it in some array and using that array to generate both the terrain and image.