FightInputDDR reads a real controller in the background and shows, step by step, whether a motion input landed and why. Pick a game and character from the in-game selector, then just play — every move in that character's kit is graded live, no menu-diving required.
A Unity 6 dev tool that reads a real fighting-game controller through XInput and grades whether a motion input — like a half-circle super or a charge move — was actually executed correctly, in real time, against a per-character movelist.
FightInputDDR is a Unity-based tool for understanding fighting-game motion inputs, built for two audiences at once: developers who need to test how forgiving or strict their move recognition is, and players who want to see exactly where an input like a half-circle super or a charge motion is going wrong. It reads a controller directly through Windows' XInput API — bypassing Unity's window-focus gating — so it keeps working even while a separate game, like Guilty Gear Strive, has focus.
An in-game selector picks a game and character, then swaps between them live; each movelist is authored as an external JSON file, so adding a character doesn't require touching code. Three modes read the same live input: DDR-style, for learning where each input lives; motion-trial, for running one move at a time; and passive detection, which needs no button press — it recognizes the start of any known move from either facing and reports whether it lands. The build is validated against two Guilty Gear Strive characters, Sol Badguy and Slayer, including Slayer's Dandy Step follow-up cancels. All overlays scale consistently on any monitor or aspect ratio.
Each mode looks at input a different way, but all three read the same live controller — nothing simulated, nothing replayed.
MotionJudgmentSystem.StartTrial — with per-step pass/fail and timing diagnostics against each step's window. Kept in the project for manual, one-move-at-a-time dev testing; enable it by hand in the Hierarchy.xinput1_4.dll instead of Unity's Gamepad class — specifically to bypass window-focus gating, so the tool keeps reading input while Guilty Gear Strive holds focus.StreamingAssets, parsed at runtime — no recompiling to add a move. The in-game selector reads a catalog of these files and calls into the detector to swap the watched character on the fly, including "any of" follow-up steps like Slayer's Dandy Step, which accepts any of the four attack buttons as a valid cancel.MotionMirror flips directional chords at grading time, so the same move data grades correctly from either facing without duplicating a single move.About two minutes: the game/character selector, DDR mode, a motion trial, and passive detection recognizing Sol Badguy's and Slayer's moves — including Dandy Step follow-ups — from both facings during a real Guilty Gear Strive session.