diff --git a/.github/HitBox.png b/.github/HitBox.png
new file mode 100644
index 0000000..be395ad
Binary files /dev/null and b/.github/HitBox.png differ
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0dc7b4b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/.vscode
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..f041ed4
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 ccelik97
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..1796c36
--- /dev/null
+++ b/README.md
@@ -0,0 +1,19 @@
+# SOCD Cleaner
+
+A software based SOCD Cleaner written in [AutoHotKey](https://www.autohotkey.com), for Windows.
+
+From [Hit Box Arcade](https://www.hitboxarcade.com/blogs/support/what-is-socd):
+
+> SOCD means "Simultaneous Opposing Cardinal Directions." It is the physical actuation of cardinal directions that are separate and opposite to each other - ie, pressing Left and Right at the same time. This phenomenon is best known on all-button controllers, such as the Hit Box and Smash Box, but current controllers like the Dual-Shock 4 can do something similar with its cross-directional (Analog Stick and Dpad) inputs.
+> ![Hit Box button layout.](/.github/HitBox.png)
+
+By default it assumes the following button setup:
+
+* Left: E
+* Crouch: R
+* Right: F
+* Space: Space
+
+Note: Run it as Administrator if your game is also running as Administrator.
+
+## Download: [Here](https://github.com/ccelik97/SOCD-Cleaner/releases/latest)
\ No newline at end of file
diff --git a/SOCD Cleaner.ahk b/SOCD Cleaner.ahk
new file mode 100644
index 0000000..dd98a41
--- /dev/null
+++ b/SOCD Cleaner.ahk
@@ -0,0 +1,61 @@
+I_Icon = SOCD_Cleaner.ico
+IfExist, %I_Icon%
+ Menu, Tray, Icon, %I_Icon%
+;return
+
+;; ? FROM: https://www.autohotkey.com/boards/viewtopic.php?p=391598&sid=b225a17ae64d8e7fa5ae600b77b5b6f4#p391598
+
+#InstallKeybdhook
+#UseHook On
+#MaxHotkeysPerInterval 200 ; ? FROM: https://www.autohotkey.com/board/topic/62512-permanently-turn-off-that-annoying-hotkey-limit/
+
+;; * Pressing both Left & Right buttons cancels each other.
+;; ? Left: e
+;; ? Right: f
+
+~e::
+ if(GetKeyState("f", "p"))
+ SendInput {e up}{f up}
+Return
+
+~f::
+ if(GetKeyState("e", "p"))
+ SendInput {e up}{f up}
+Return
+
+~e up::
+if(GetKeyState("f", "p"))
+ SendInput {f down}
+Return
+
+~f up::
+if(GetKeyState("e", "p"))
+ SendInput {e down}
+Return
+
+;; * Pressing both Jump & Crouch buttons inputs only Jump,
+;; * releasing Jump inputs Crouch.
+;; ? Jump: space
+;; ? Crouch: r
+
+~space::
+ if(GetKeyState("r", "p"))
+ SendInput {space down}{R up}
+Return
+
+~space up::
+if(GetKeyState("r", "p"))
+ SendInput {r down}
+Return
+
+~r::
+ if(GetKeyState("space", "p"))
+ SendInput {r up}{space down}
+Return
+
+~r up::
+if(GetKeyState("space", "p"))
+ SendInput {space down}
+Return
+
+;; ! BSDK
\ No newline at end of file
diff --git a/SOCD_Cleaner.ico b/SOCD_Cleaner.ico
new file mode 100644
index 0000000..b90489b
Binary files /dev/null and b/SOCD_Cleaner.ico differ