Voxel Terrain Generation

Hi everyone,
i want to create a voxel game with my friends. We actually dont know how to make a Terrain Generator like in minecraft but just with one layer. I got so far that i know how to divide the world in chunks and add multiple on a flat plane. Now I got stuck at the height to generate mountains, forests and maybe desterts or other biomes. Next thing we dont know how to save these chunks so if we go away and come back the same chunks are there. We got 0 experience with c++ so would be nice of someone of you could explain us how to make that in blueprints.