Der Schalksbach, am Oberlauf Roschbach, am Mittellauf Büttenbach genannt, ist ein 8,8 km langer rechter Zufluss der Eyach im baden-württembergischen Zollernalbkreis.
Der Roschbach genannte Oberlauf entspringt am Talbrunnen im Gewann Hörnle im Naturschutzgebiet Irrenberg-Hundsrücken nordöstlich von Balingen-Streichen auf einer Höhe von 819 m ü. NHN. Nach der Vereinigung mit dem kürzeren, aber ein wenig einzugsgebietsreicheren rechten Aubenbach im nördlichen Zillhausen wird der Bachlauf Büttenbach genannt. Dieser fließt am fast nur an der linken und östlichen Bachseite liegenden Zillhausen vorbei. Noch auf Ortshöhe stürzt der Bach etwa 20 m über den Zillhauser Wasserfall hinab und tritt in einen schluchtartigen Talabschnitt ein. Er vereinigt sich nördlich von Stockenhausen mit dem von links und Süden zufließenden Bach aus dem Wannental, einem im Vergleich deutlich kleineren Gewässer, und wird fortan Schalksbach genannt. Der Bach umfließt Stockenhausen im Norden und Westen und mündet in Frommern von rechts und zuallerletzt Osten in die Eyach.
Der 8,8 km lange Lauf des Schalksbach (inklusive Roschbach) endet 265 Höhenmeter unterhalb seiner Quelle, er hat somit ein mittleres Sohlgefälle von etwa 30 ‰.
Zuflüsse
Ursprung des Roschbachs auf etwa 819 m ü. NHN am Talbrunnen.
- Roschbach, linker Oberlauf von Osten, 4,2 km und 3,8 km²
- Aubenbach, rechter Oberlauf von Norden, 2,7 km und 3,9 km²
- Bezighofenbach, von links und Osten zwischen Streichen und Zillhausen, 1,6 km
- Erlengraben, von links und Osten in Zillhausen, 0,8 km
- Stürzt über den Zillhauser Wasserfall
- Wannental, von links und Südosten vor Stockenhausen, 2,2 km und 1,7 km²
- Bach vom Withau, von rechts und Norden etwa gegenüber Stockenhausen, 1,2 km
Von diesem Zufluss an wird das vorher ab dem Zusammenfluss seiner Oberläufe Büttenbach genannte Gewässer Schalkbach genannt - Bach vom Zimmereck, von links und Südosten zwischen Stockenhausen und Dürrwangen, 1,2 km
Mündung des Schalksbachs von rechts und Osten auf 554 m ü. NHN bei Frommern in die Eyach.