Hello fellow Tibians,
IMPORTANT NOTE BEFORE YOU REPLY: Please do not just tell me to "use Q, E, Z, C for diagonals." I have been playing with my current hotkey setup for years, and those keys are already bound to critical spells. I am strictly looking for a technical analysis of this script. Thank you!
I play Tibia on a compact keyboard without a physical numpad. Since I use WASD in "Chat Off" mode, I’m trying to find a safe way to walk diagonally by holding down two movement keys simultaneously (e.g., holding W + A to step North-West).
Since the Tibia client doesn't natively combine these inputs into a diagonal step, I turned to AutoHotkey (AHK) v2.0. After contacting CipSoft support and reading up on Reddit, I stripped away my old risky macro attempt (which used InputHook, custom Key-Up injections, and static Sleep timers) because CipSoft explicitly stated that mapping a series of commands constitutes an illegal macro.
To comply with the strict 1 Keypress = 1 Game Action rule and avoid artificial software signatures, I created this clean, stateless hotkey remapping:
autohotkey
#Requires AutoHotkey v2.0
~w::(GetKeyState("a", "P") ? SendInput("o") : GetKeyState("d", "P") ? SendInput("p") : 0)
~s::(GetKeyState("a", "P") ? SendInput("k") : GetKeyState("d", "P") ? SendInput("l") : 0)
~a::(GetKeyState("w", "P") ? SendInput("o") : GetKeyState("s", "P") ? SendInput("k") : 0)
~d::(GetKeyState("w", "P") ? SendInput("p") : GetKeyState("s", "P") ? SendInput("l") : 0)
Technical Clarifications:
- Why not official software? My SteelSeries GG software does not support multi-key combinations as conditional triggers (e.g., using W+A to trigger a third key).
- The "2-to-1" Argument: While pressing two keys (W+A) triggers one action (o), no sequence or chain of commands is being automated here. It's a conditional remap that outputs exactly one virtual keypress per combination.
- The Ghosting / "Zickzack" Step: Because this script uses the tilde (~) modifier, native hardware signals for WASD are never blocked. If my finger timing isn't perfect, Windows might register a straight step right before the diagonal triggers. I am completely fine with this minor mechanical stutter.
My Questions to the Community:
- BattlEye Detection: Since this script uses the tilde (~) modifier, it never blocks or manipulates native hardware signals. It contains no static timers (Sleep) and no loops. To BattlEye, does this look identical to high-end keyboard software doing a key remap, or does the fact that it's executed via AHK still pose an automated ban risk?
- Rule Compliance: Since pressing the combination triggers exactly one single virtual keypress natively bound to the client's movement settings, does this strictly fall under the "1:1 hotkey mapping" that CipSoft tolerates?
- Experience: Do any of you use a similar stateless AHK setup for compact keyboards, and have you ever faced any issues or official warnings?
Thank you for your time and help!