Character movement speed based on surface

Maybe this tutorial is handy for you. In order to filter it material wise, you can combine this system with your footstep system if you dont want to do a linetrace per tick to just get the surface type.

Footstep system

https://forums.unrealengine.com/attachment.php?attachmentid=3582&d=1400806806

Seen here: Get surface type on terrain materials? - Blueprint Visual Scripting - Unreal Engine Forums