I’m working on a procedural terrain system and I want to make random terrain. I’ve already gotten the random terrain generation with Terrain Editor | Roblox Creator Documentation, but I want to add biomes like rivers, forests, deserts, etc.
Any help is appreciated 
You can use a noise function (like Perlin or OpenSimplex noise, although I would probably just recommend math.noise) to determine the temperature at a given point. Then you can decide what biome that point is in. For example, you can define a desert to have a temperature ‘T’ of 30 < T < 40 degrees Celsius. Additionally, you can make it colder for points that are higher. This way, you can have a mountain in a desert that is only cold at the top (Kilimanjaro for instance).
In the end, it is all about copying nature. Deserts are hot, jungles are hot and have dense air and mountains are cold on the summit. The key is simply to define factors that differentiate biomes (for instance temperature, humidity, height, adjacent biomes). Then you can check what biome makes the best fit.
I would recommend for biomes, simply make another noise layer, that creates much larger chunks, and any terrain inside is simply modified to the biome specific.
for instance, for ocean, it would drop off at the edges and become smoother at the floor, (or just flat water surface, depending on how you do it)
for mountains, it might smooth out slightly and pick some points and raise them.
ect…