Hey everyone, I'm Altaf4. You may have seen a video making the rounds recently of Ludwig running into a supposed cheater on Netplay. When a Reddit post popped up talking about it, I posted there with the intention of tossing some cold water on the whole scenario and looked to me much more like a simple case of someone who isn't used to a box style controller or that was about all. It turns out, however, that I was wrong and it gives me absolutely no pleasure to say this, but Ludwig was right. The user say you is a dirty cheater, but let's dig into how we can be so sure what exactly the cheat was and what Slippy is doing about this sort of thing for the future. Oh, and just as an aside, I'm going to be referring to this player as say you, I have no idea if that's the correct pronunciation, so I'm just running with it. I was given three SLP replay files that a user on the Slippy Discord server provided for save. These are not the same games with Ludwig, but I think you'll agree that it's pretty clearly the same person. Let's take a look at the first stock of one of them. Did you spot it? Let's see if you do. Everything here seems pretty normal. There's two power shielded lasers, but that's nothing special. Say it even misses one power shield attempt in that clip. Look, heading a power shield on a laser is not hard. It really isn't. If you go into Uncle Punch and practice it for even a few minutes, I guarantee you'll be able to hit power shields reliably. Someone reflecting lasers is not the suspicious part of this clip, and yet there's definitely some cheating going on in this clip. Let's take another look, but while watching say you's controller inputs via M overlay. Excuse me? Let's see that again, but in slow motion, watch the control stick. Yeah, so from this clip, we can pretty conclusively make a few assertions. One, say he was using a smash DI macro. As you can see, each time the SDI macro engages, say you manually hold the intended direction first. The macro is clearly set up to wiggle the control stick around the position that the control stick is pointing. You can see this pretty clearly in this clip here. Say you is fumbling around trying to find the right SDI direction while holding down the SDI macro button that causes it to wiggle around whatever direction is currently being held on the control stick. But the human being pressing the button still needs to press the macro in time. This is why you can see say you constantly missing SDI in these games because it's pressed late. So the other thing we can tell for sure is that say you is not a bot. Say you is a human being holding game-cube controller and frequently messing up the timing on their macro button. So that's cheat number one. It was pretty obvious, but the next one is a bit more subtle. You see, it wasn't save power shields in the lasers that was suspicious, but rather the wave dash out afterwards. That wave dash is tricky to do, not inhumanly hard. Just watch Zane play against mango and you'll see plenty of examples of it. I don't know how to put this delicately, but say you is not exactly a good player. And I say that as a band who recently went to and to at a local and considered the accomplishment an unqualified success. So while I can certainly jump into Uncle Punch Power Shield lasers is just fine, hitting that tight wave dash afterward is not something that I could do reliably. And I bet say you can't either. Turns out, say you is using a macro to do a combined action of Power Shield then wave dash afterward. This might have been a bit harder to notice actually except for the fact that say you exclusively jumps with the x button. But the back row in the Power Shield wave dash combo uses y. If you step through the macro frame by frame, you can see more clearly what's happening. Every time the Power Shield wave dash combo follows an exact pattern. The digital L button is pressed for exactly two frames, then let go for two frames. On frame five, the y button is pressed and held for two frames just to short hop. Then on frame 11, the L button is pressed again to wave dash down, along with the control stick y axis being shoved downward. This blasts for three frames and then the macro is over. What's interesting here is that it seems the macro is set to only override the control sticks y axis, not the x axis. You see, the control stick is actually two separate analog values, x and y. So if say you just press the Power Shield macro button and nothing else, it will wave dash directly down. Notice how the control stick zips back to neutral exactly the same frame as the L button is un-pressed. That's when the macro ends. In order to wave dash in a direction however, say you need to press the macro button and then hold over on the control stick quickly afterward. And if you mess up this timing, it will cause a roll exactly like in this clip. And if you had any lingering doubt that this was in fact a macro, check out this clip. Here's an example of say you missing the timing on one of the Power Shield macros and trying to wave dash to the left. So right here say you take a laser to the dome. The timing was a frame late but the macro was going to go ahead anyway. What I want you to watch is the control stick. Right here say it was actually holding left on the physical stick, but the macro was forcing the y axis down, making the game see it as diagonal. But the very frame that this macro ends, the control stick zips back to facing left. That's because that's where it really was this whole time. So what can we do about this sort of thing? The good news is it's actually really hard to get away with due to how slippy works. Every game ends with your opponent having a full list of every button you pressed frame by frame during the match. That's what an SLP replay file is among other things. So if you're hoping to use a macro like this and get away with it, you're going to have a bad time. We're working out all the detail still, but the general gist is that for rank mode, players will send all the information about the match they just played up to a slippy server. You can't lie about this information because your opponent sends it to and we know they have to match up. So it can tell if you've lied. This already happens in unranked actually. Both you and your opponent tell the slippy server who won the game that you just played. In order to update your hidden MMR, doing additional cheating detection is really just a matter of beefing up this information some more and doing some detection on the server side and considering for lots more clever corner cases. As for tournaments, having a strict no smurfing policy can really help. People are far less likely to try this sort of thing if they risk something that they get caught. So yeah, I hope this was informative. As always, if you're looking to help out development, don't need to fizzy. Everyone else developing for slippy has day jobs, but fizzy's the one doing it full time. So lend them a hand. Later!