Here's a set I've been using since very long time ago (Or, to be more exact, since Prankster Sableye was released)
Sableye @ Leftovers
Ability: Prankster
Nature: Bold
248 HP | 252 Def | 8 Spd
0 Attack IVs
- Substitute
- Will-O-Wisp
- Foul Play
- Recover
(I use 8 Speed EVs instead of 4 for Speed Creep - Setting up a Sub before another Sableye Taunts/WoWs is important)
This Sableye demonstrates that changing a single move can turn Sableye from a stallbreaker to a general-purpose annoyance to physical-attacking pokémon (And a sizable number of physically frail special attackers)
While Substitute does not stop pokémon from setting up, something Taunt does, it has some advantages over it: First - it allows Sableye not getting statused with a move that is NOT affected by Magic Coat/Magic Bounce; Second - it gives Sableye free Foul Play turns if its Substitute isn't broken in the same turn; Third - at early game, Sableye becomes a reliable scout for Choice users thanks to Substitute, as it won't lose more than 25% health while scouting moves (Particularly useful against Outrage users), something Taunt Sableye completely fails to do (Substitute, when combined with residual damage, even allows Sableye to KO weakened Life Orb users)
The other three moves are still the same as Taunt Sableye
This Sableye is particularly weak to Volt-Turn teams, as they don't allow it to keep its Substitute up. Everything else, bar multi-hit users and physically bulky special attackers (Such as CM Reuniclus, that has absolutely no problems with this Sableye, unlike its matchup with Taunt Sableye), will end up hating Sableye if they let it set up a Substitute