Skip to content
avoidmemoriesPublic

About

SOCD: Snap Tap for any keyboard/game

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

SnapHook

SOCD: Snappy Tappy

Preview


Quick start

  1. Start SnapHook.exe from the published folder and accept the Windows elevation prompt. Elevation is required so the keyboard hook can also see input sent to elevated games.
  2. Add a game profile. You can select an executable from disk or choose a currently running process.
  3. Open the profile, add one or more key pairs, and choose an input method.
  4. Turn the master switch to ENABLED. A profile is active only while its matching process owns the foreground window.

The application can be hidden to the notification area; use its tray menu to enable/disable the engine, return to the window, or exit cleanly.

Input methods

Every profile has its own input method. Release is the default and should be tried first.

Release — recommended

Release preserves the real keyboard stream. Physical key presses and releases are delivered to the game normally. When opposite directions overlap, Snaphook only injects a release for the older direction; after the newer direction is released, it injects a press to restore the older one.

  • Best default for most games.
  • Real keyboard input reaches the game unchanged; SnapHook only adds the release and restore events needed for SOCD.

Hybrid — macro-friendly

Hybrid provides the same release-and-restore SOCD behaviour, but receives physical keyboard events through Windows Raw Input instead of installing a global low-level keyboard hook. This keeps SnapHook out of the hook chain used by AHK, macro pads, accessibility tools, virtual keyboards, and similar applications.

  • Use it when macros become unreliable while a SnapHook pair is configured or while one of the pair keys is held.
  • Real key presses still reach the game; SnapHook only adds synthetic events when it needs to release or restore the opposite key.
  • After restoring a key, Hybrid sends a final synthetic key release when you physically release it. This prevents stuck movement if another keyboard hook delays event delivery.
  • It is intended for profiles that need macro compatibility.

Blocking — fallback

Blocking holds back the real key event and replaces it with a synthetic (SendInput) event. The game sees only the stream generated by SnapHook.

  • Use it only when a particular game does not react correctly in Release or Hybrid.
  • It depends on the game accepting synthetic input, so it can be less compatible with anti-cheat-protected games.

Compatibility Notes

Testing has shown that the application works in many games. Notable popular titles include:

  • Valorant
  • Overwatch
  • Apex Legends
  • PUBG
  • Deadlock
  • Rocket League
  • GTA V Legacy/Enhanced

It also works in Counter-Strike 2 outside official matchmaking. However, official Valve servers may kick players after detecting automated input.

FACEIT does not currently block SnapHook from running, but it ignores all of the application's input methods.

Building

dotnet publish SnapHook.csproj -c Release -r win-x64 --self-contained false -p:PublishSingleFile=false -p:DebugType=none -o publish

The native worker is compiled automatically when Native/SnapHookWorker.exe is missing. To force a rebuild:

dotnet build -p:RebuildNativeWorker=true

Requires the .NET 10 SDK and MSVC (Visual Studio 2022 or 2026 with the C++ workload). Native/build-worker.cmd locates VsDevCmd.bat on its own.

Where things are stored

User data lives in %APPDATA%\SnapHook\:

  • settings.json — profiles, key pairs, options

Limits worth knowing

  • Extended keys (arrows, numpad enter, right Ctrl/Alt, Insert/Home/PgUp) need KEYEVENTF_EXTENDEDKEY. The worker sets it from the real event flags.
  • Left and right modifiers are kept apart by learning the virtual key from the genuine event rather than from MapVirtualKey, which is layout dependent.
  • Competitive rulesets in some titles treat snap tap as prohibited automation. That is a rules question, not a technical one: use it where you are actually allowed to.

About

SOCD: Snap Tap for any keyboard/game

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages