All on need's to do is create an environment that is like their natural setting.
Have the right fish species
For example For spawning Colombian Tetras I housed them in a 30 gallon tank with 20 other species of tetras that are found in the Amazon River.
Head and Taillight tetras, Cardinal Tetras, Neon Tetras, Lemon Tetras, Red bellied Pristella tetras and Normal Pristellas, Bleeding heart tetras, Serpae tetras, Brass tetras, Blue Tetras, Black Lined Penquin Tetras, Red Phantom Tetras, Green Fire Tetras and Common Rummynose tetras wth a threesome of Tube-nose Pencilfish
I also placed Amazon Sword plants, Diefenbachia plant, Java moss and Java Ferns.
I used a pH chemical that lowers the pH to the favorable condition and then I cleaned the tank once a month. When my tank was ready to have a water change I looked in the water after I removed the plants, drift wood and their were Colombian Tetra fry everywhere. I even had green Fire tetras, and Serpae Tetras spawn for me.
The basic key is to keep the Java moss growing out of control, know the sexes of your fish and they will be happy.