Close
Showing results 1 to 8 of 8
  1. #1

    Question Help with AHK Setup

    For dual boxing on a single PC, is AHK enough? ISBoxer is essentially $50/yr, and with only 2 accounts, I probably will barely utilize its full feature set.

    I've looked around but can't find a simple tutorial on dual boxing in 2018. It's all several years old or applies to 5+ accounts.

    On my main WoW account, I have a hunter, a rogue, a paladin, and a priest I want to level.

    On the second WoW account I'm about to start with RAF, what class would go well with each one of these?

    I'm thinking Hunter/hunter, Rogue/rogue, paladin/druid, priest/mage, but I have no idea. The goal is getting to 110 ASAP so I can try to get my Mage Tower artifact appearances for hunter/rogue/paladin/priest before the July patch that will remove Mage Tower forever.

    Thanks in advance!


    Thread moved; title edited.
    -MiRai
    Last edited by MiRai : 04-23-2018 at 11:22 PM Reason: Thread moved; title edited.

  2. #2
    Multiboxologist MiRai's Avatar
    Join Date
    Apr 2009
    Location
    Winter Is Coming
    Posts
    6128

    Default

    Quote Originally Posted by willcoq View Post
    For dual boxing on a single PC, is AHK enough? ISBoxer is essentially $50/yr, and with only 2 accounts, I probably will barely utilize its full feature set.
    It comes down how much is your time worth? Both programs have learning curves to them, no doubt, but unless you're already familiar with scripting/coding/programming, AHK may end up eating up more of your time. If you are dead set on free software, then I would guess that HKN is a lot easier to work with than AHK, although AHK is going to be more powerful (but, again, that will require time and effort to reach that level of working knowledge).

    Quote Originally Posted by willcoq View Post
    I've looked around but can't find a simple tutorial on dual boxing in 2018. It's all several years old or applies to 5+ accounts.
    In terms of software used, I would guess that the multiboxing community is broken down something like this:

    Code:
    80% ISBoxer
    
    15% HotKeyNet
    
     5% Other
    Personally, I'm not aware of any AHK tutorials, but I'm not sure AHK has changed all that much over the years, especially in terms of simple replication of keys, so I would guess that those tutorials are probably still relevant. On the other hand, the number of accounts they're set up for is most likely irrelevant, as I would imagine that the only thing you'd need to change would be where the keystrokes are being sent.

    Again, this is kinda where it comes down to: How much is your time worth?

    Quote Originally Posted by willcoq View Post
    On my main WoW account, I have a hunter, a rogue, a paladin, and a priest I want to level.

    On the second WoW account I'm about to start with RAF, what class would go well with each one of these?

    I'm thinking Hunter/hunter, Rogue/rogue, paladin/druid, priest/mage, but I have no idea. The goal is getting to 110 ASAP so I can try to get my Mage Tower artifact appearances for hunter/rogue/paladin/priest before the July patch that will remove Mage Tower forever.

    Thanks in advance!
    I'm going to ask that you open up a new thread to ask about class compositions. Mixing topics in threads doesn't help the flow of discussion, nor does it help those who are searching for similar topics.
    Do not send me a PM if what you want to talk about isn't absolutely private.
    Ask your questions on the forum where others can also benefit from the information.

    Author of the almost unknown and heavily neglected blog: Multiboxology

  3. #3

    Default

    Thanks, MiRai! I think what I may end up doing is using the ISBoxer 7 day trial to see if that will be better for me.

    I appreciate your detailed response about the various nuances of AHK, hotkeynet, etc.!

  4. #4

    Default

    here you can find my AHK script I have used from TBC to CATA. It worked quite well even in pvp situations. I have interact with target mapped to key "g" and the code alternates sending 2 and g, 3 and g. 2 and 3 beeing my single and aoe dps keys. you can change it to whatever you want. The code will work for 2 - 5 accounts, but you can delete the lines with containing WowWinId3-5

    Code:
    ;Grab unique window ID's
    WinGet, WowWinId, List, World of Warcraft
    
    ClonesPush(strKeys)
    {
        global WowWinId1
        global WowWinId2
        global WowWinId3
        global WowWinId4
        global WowWinId5
        IfWinNotActive, ahk_id %WowWinId1%
            ControlSend, , %strKeys%, ahk_id %WowWinId1%
        IfWinNotActive, ahk_id %WowWinId2%
            ControlSend, , %strKeys%, ahk_id %WowWinId2%
        IfWinNotActive, ahk_id %WowWinId3%
            ControlSend, , %strKeys%, ahk_id %WowWinId3%
        IfWinNotActive, ahk_id %WowWinId4%
            ControlSend, , %strKeys%, ahk_id %WowWinId4%
        IfWinNotActive, ahk_id %WowWinId5%
            ControlSend, , %strKeys%, ahk_id %WowWinId5%
    }
    
    ; *******************************
    ; *** Only if WoW is in focus ***
    ; *******************************
    #IfWinActive, World of Warcraft
    
    ~Enter::Suspend, Toggle
    ~/::Suspend, On
    ~Escape::Suspend, Off
    ~r::Suspend, On
    
    ;*** Special Functions ***
    ~+\::ClonesPush("{Shift down}{\ down}{\ up}{Shift up}")
    
    ;*** 2 step push - alternating 2 and g with the push of single button
    ~ě::
    If toggle
     {
        send ě
        ClonesPush("{ě down}{ě up}")
        toggle := !toggle
     }
    Else
     {
        send g
        ClonesPush("{g down}{g up}")
        toggle := !toggle
     }
    Return
    
    ~š::
    If toggle
     {
        send š
        ClonesPush("{š down}{š up}")
        toggle := !toggle
     }
    Else
     {
        send g
        ClonesPush("{g down}{g up}")
        toggle := !toggle
     }
    Return
    
    
    ~č::
    If toggle
     {
        send č
        ClonesPush("{č down}{č up}")
        toggle := !toggle
     }
    Else
     {
        send g
        ClonesPush("{g down}{g up}")
        toggle := !toggle
     }
    Return
    
    ; *** Makes clones jump with main ***
    ~Space::ClonesPush("{Space down}{Space up}")
    
    ~Insert::ClonesPush("{Insert down}{Insert up}")
    ~PgDn::ClonesPush("{PgDn down}{PgDn up}")
    ~PgUp::ClonesPush("{PgUp down}{PgUp up}")
    
    ~NumpadSub::ClonesPush("{NumpadSub down}{NumpadSub up}")
    ~NumpadAdd::ClonesPush("{NumpadAdd down}{NumpadAdd up}")
    
    ; *****************************************************************************
    ; *** Move clones *** added ~ for moving also the main
    ; *****************************************************************************
    ~Up::ClonesPush("{Up down}")
    ~Up Up::ClonesPush("{Up up}")
    ~Down::ClonesPush("{Down down}")
    ~Down Up::ClonesPush("{Down up}")
    ~Left::ClonesPush("{Left down}")
    ~Left Up::ClonesPush("{Left up}")
    ~Right::ClonesPush("{Right down}")
    ~Right Up::ClonesPush("{Right up}")
    
    ; *****************************************************************************
    ; *** Hotbars Letters ***
    ; *****************************************************************************
    ~C::ClonesPush("{C down}{C up}")
    ; ~Q::ClonesPush("{Q down}{Q up}")
    ~T::ClonesPush("{T down}{T up}")
    ~G::ClonesPush("{G down}{G up}")
    ~F::ClonesPush("{F down}{F up}")
    ~Z::ClonesPush("{Z down}{Z up}")
    ~L::ClonesPush("{L down}{L up}")
    ~P::ClonesPush("{P down}{P up}")
    ~H::ClonesPush("{H down}{H up}")
    ~Y::ClonesPush("{Y down}{Y up}")
    ; ~E::ClonesPush("{E down}{E up}")
    ~V::ClonesPush("{V down}{V up}")
    ~K::ClonesPush("{K down}{K up}")
    ~J::ClonesPush("{J down}{J up}")
    ~[::ClonesPush("{[ down}{[ up}")
    ~]::ClonesPush("{] down}{] up}")
    
    
    ; *****************************************************************************
    ; *** Hotbars 1-0 ***
    ; *****************************************************************************
    ~+::ClonesPush("{+ down}{+ up}")
    ; ~ě::ClonesPush("{ě down}{ě up}")
    ; ~š::ClonesPush("{š down}{š up}")
    ; ~č::ClonesPush("{č down}{č up}")
    ~ř::ClonesPush("{ř down}{ř up}")
    ~ž::ClonesPush("{ž down}{ž up}")
    ~ý::ClonesPush("{ý down}{ý up}")
    ~á::ClonesPush("{á down}{á up}")
    ~í::ClonesPush("{í down}{í up}")
    ~é::ClonesPush("{é down}{é up}")
    ~=::ClonesPush("{= down}{= up}")
    ~´::ClonesPush("{´ down}{´ up}")
    
    ; *****************************************************************************
    ; *** Hotbars F's ***
    ; *****************************************************************************
    ~F1::ClonesPush("{F1 down}{F1 up}")
    ~F2::ClonesPush("{F2 down}{F2 up}")
    ~F3::ClonesPush("{F3 down}{F3 up}")
    ~F4::ClonesPush("{F4 down}{F4 up}")
    ~F5::ClonesPush("{F5 down}{F5 up}")
    ~F6::ClonesPush("{F6 down}{F6 up}")
    ~F7::ClonesPush("{F7 down}{F7 up}")
    ~F8::ClonesPush("{F8 down}{F8 up}")
    ~F9::ClonesPush("{F9 down}{F9 up}")
    ~F10::ClonesPush("{F10 down}{F10 up}")
    ~F11::ClonesPush("{F11 down}{F11 up}")
    ~F12::ClonesPush("{F12 down}{F12 up}")
    
    ; *****************************************************************************
    ; + SHIFT
    ; *****************************************************************************
    ; *** Numbers ***
    ~+1::ClonesPush("{Shift down}{1 down}{1 up}{Shift up}")
    ~+2::ClonesPush("{Shift down}{2 down}{2 up}{Shift up}")
    ~+3::ClonesPush("{Shift down}{3 down}{3 up}{Shift up}")
    ~+4::ClonesPush("{Shift down}{4 down}{4 up}{Shift up}")
    ~+5::ClonesPush("{Shift down}{5 down}{5 up}{Shift up}")
    ~+6::ClonesPush("{Shift down}{6 down}{6 up}{Shift up}")
    ~+7::ClonesPush("{Shift down}{7 down}{7 up}{Shift up}")
    ~+8::ClonesPush("{Shift down}{8 down}{8 up}{Shift up}")
    ~+9::ClonesPush("{Shift down}{9 down}{9 up}{Shift up}")
    ~+0::ClonesPush("{Shift down}{0 down}{0 up}{Shift up}")
    ~+=::ClonesPush("{Shift down}{= down}{= up}{Shift up}")
    ~+-::ClonesPush("{Shift down}{- down}{- up}{Shift up}")
    
    ; *** Letters ***
    ~+R::ClonesPush("{Shift down}{R down}{R up}{Shift up}")
    ~+S::ClonesPush("{Shift down}{S down}{S up}{Shift up}")
    ~+E::ClonesPush("{Shift down}{E down}{E up}{Shift up}")
    ~+F::ClonesPush("{Shift down}{F down}{F up}{Shift up}")
    ~+A::ClonesPush("{Shift down}{A down}{A up}{Shift up}")
    ~+D::ClonesPush("{Shift down}{D down}{D up}{Shift up}")
    ~+L::ClonesPush("{Shift down}{L down}{L up}{Shift up}")
    ~+H::ClonesPush("{Shift down}{H down}{H up}{Shift up}")
    ~+K::ClonesPush("{Shift down}{K down}{K up}{Shift up}")
    ~+Y::ClonesPush("{Shift down}{Y down}{Y up}{Shift up}")
    ~+P::ClonesPush("{Shift down}{P down}{P up}{Shift up}")
    ~+C::ClonesPush("{Shift down}{C down}{C up}{Shift up}")
    ~+V::ClonesPush("{Shift down}{V down}{V up}{Shift up}")
    
    ~+[::ClonesPush("{Shift down}{[ down}{[ up}{Shift up}")
    ~+]::ClonesPush("{Shift down}{] down}{] up}{Shift up}")
    
    ~+F2::ClonesPush("{Shift down}{F2 down}{F2 up}{Shift up}")
    
    ~+PgUp::ClonesPush("{Shift down}{PgUp down}{PgUp up}{Shift up}")
    ~+PgDn::ClonesPush("{Shift down}{PgDn down}{PgDn up}{Shift up}")
    ; *****************************************************************************
    
    ; *****************************************************************************
    ; ^ CTRL
    ; *****************************************************************************
    ; *** Numbers ***
    ~^1::ClonesPush("{Ctrl down}{1 down}{1 up}{Ctrl up}")
    ~^2::ClonesPush("{Ctrl down}{2 down}{2 up}{Ctrl up}")
    ~^3::ClonesPush("{Ctrl down}{3 down}{3 up}{Ctrl up}")
    ~^4::ClonesPush("{Ctrl down}{4 down}{4 up}{Ctrl up}")
    ~^5::ClonesPush("{Ctrl down}{5 down}{5 up}{Ctrl up}")
    ~^6::ClonesPush("{Ctrl down}{6 down}{6 up}{Ctrl up}")
    ~^7::ClonesPush("{Ctrl down}{7 down}{7 up}{Ctrl up}")
    ~^8::ClonesPush("{Ctrl down}{8 down}{8 up}{Ctrl up}")
    ~^9::ClonesPush("{Ctrl down}{9 down}{9 up}{Ctrl up}")
    ~^0::ClonesPush("{Ctrl down}{0 down}{0 up}{Ctrl up}")
    ~^-::ClonesPush("{Ctrl down}{- down}{- up}{Ctrl up}")
    ~^=::ClonesPush("{Ctrl down}{= down}{= up}{Ctrl up}")
    
    ; *** Letters ***
    ~^E::ClonesPush("{Ctrl down}{E down}{E up}{Ctrl up}")
    ~^F::ClonesPush("{Ctrl down}{F down}{F up}{Ctrl up}")
    ~^H::ClonesPush("{Ctrl down}{H down}{H up}{Ctrl up}")
    ~^L::ClonesPush("{Ctrl down}{L down}{L up}{Ctrl up}")
    ~^K::ClonesPush("{Ctrl down}{K down}{K up}{Ctrl up}")
    ~^W::ClonesPush("{Ctrl down}{W down}{W up}{Ctrl up}")
    ~^U::ClonesPush("{Ctrl down}{U down}{U up}{Ctrl up}")
    ~^J::ClonesPush("{Ctrl down}{J down}{J up}{Ctrl up}")
    ~^P::ClonesPush("{Ctrl down}{P down}{P up}{Ctrl up}")
    ~^C::ClonesPush("{Ctrl down}{C down}{C up}{Ctrl up}")
    ~^V::ClonesPush("{Ctrl down}{V down}{V up}{Ctrl up}")
    
    ~^[::ClonesPush("{Ctrl down}{[ down}{[ up}{Ctrl up}")
    ~^]::ClonesPush("{Ctrl down}{] down}{] up}{Ctrl up}")
    
    ~^F1::ClonesPush("{Ctrl down}{F1 down}{F1 up}{Ctrl up}")
    ~^F2::ClonesPush("{Ctrl down}{F2 down}{F2 up}{Ctrl up}")
    ~^F3::ClonesPush("{Ctrl down}{F3 down}{F3 up}{Ctrl up}")
    ~^F4::ClonesPush("{Ctrl down}{F4 down}{F4 up}{Ctrl up}")
    ~^F5::ClonesPush("{Ctrl down}{F5 down}{F5 up}{Ctrl up}")
    ~^F6::ClonesPush("{Ctrl down}{F6 down}{F6 up}{Ctrl up}")
    ~^F7::ClonesPush("{Ctrl down}{F7 down}{F7 up}{Ctrl up}")
    ~^F8::ClonesPush("{Ctrl down}{F8 down}{F8 up}{Ctrl up}")
    ~^F9::ClonesPush("{Ctrl down}{F9 down}{F9 up}{Ctrl up}")
    ~^F10::ClonesPush("{Ctrl down}{F10 down}{F10 up}{Ctrl up}")
    ~^F11::ClonesPush("{Ctrl down}{F11 down}{F11 up}{Ctrl up}")
    ~^F12::ClonesPush("{Ctrl down}{F12 down}{F12 up}{Ctrl up}")
    Last edited by johny_mnemonic : 04-24-2018 at 04:04 PM

  5. #5

    Default

    Thanks, Johny! I may end up giving this a shot.

    In the meantime, the first thing I'm going to try is HotkeyNet instead of AHK.

    I used the post here: https://us.battle.net/forums/en/wow/...8205806#post-4

    And I'm merging two scripts:
    1. Two WoWs on one machine: http://www.hotkeynet.com/wow/wow-sample-two-on-one.html
    2. PIP: http://www.hotkeynet.com/wow/wow-pip.html

    Since PIP uses F1, I removed F1 from the two-on-one script. I also added in some other keybinds I use (Lctrl+Numpad0, Lctrl+Numpad1, etc)

    I use a Logitech G600, and I map the 12 side buttons to Numpad0-9, multiply, and minus.

    This is what that section looks like. I will test it tonight:

    Code:
    //-----------------------------------------------------------// DEFINE HOTKEYS FOR ALL KEY COMBINATIONS THAT WILL GET
    // SENT TO BOTH WOWS. ADD MORE KEY COMBO'S IF YOU WANT. 
    //-----------------------------------------------------------
    <Hotkey ScrollLockOn A-Z, 0-9, Plus, Minus, F2-F12 except W, A, S, D, Q, E>
    <SendLabel w1, w2>
    <Key %Trigger%> 
    
    
    <Hotkey LCtrl Numpad0, Numpad1, Numpad2, Numpad3, Numpad4, Numpad5, Numpad6, Numpad7, Numpad9, Numpad9, Numpad1, NumpadMinus, Multiply>
    <SendLabel w1, w2>
    <Key %Trigger%>

  6. #6

    Default

    Quote Originally Posted by johny_mnemonic View Post
    here you can find my AHK script I have used from TBC to CATA. It worked quite well even in pvp situations. I have interact with target mapped to key "g" and the code alternates sending 2 and g, 3 and g. 2 and 3 beeing my single and aoe dps keys. you can change it to whatever you want. The code will work for 2 - 5 accounts, but you can delete the lines with containing WowWinId3-5

    Code:
    ;Grab unique window ID's
    WinGet, WowWinId, List, World of Warcraft
    
    ClonesPush(strKeys)
    {
        global WowWinId1
        global WowWinId2
        global WowWinId3
        global WowWinId4
        global WowWinId5
        IfWinNotActive, ahk_id %WowWinId1%
            ControlSend, , %strKeys%, ahk_id %WowWinId1%
        IfWinNotActive, ahk_id %WowWinId2%
            ControlSend, , %strKeys%, ahk_id %WowWinId2%
        IfWinNotActive, ahk_id %WowWinId3%
            ControlSend, , %strKeys%, ahk_id %WowWinId3%
        IfWinNotActive, ahk_id %WowWinId4%
            ControlSend, , %strKeys%, ahk_id %WowWinId4%
        IfWinNotActive, ahk_id %WowWinId5%
            ControlSend, , %strKeys%, ahk_id %WowWinId5%
    }
    
    ; *******************************
    ; *** Only if WoW is in focus ***
    ; *******************************
    #IfWinActive, World of Warcraft
    
    ~Enter::Suspend, Toggle
    ~/::Suspend, On
    ~Escape::Suspend, Off
    ~r::Suspend, On
    
    ;*** Special Functions ***
    ~+\::ClonesPush("{Shift down}{\ down}{\ up}{Shift up}")
    
    ;*** 2 step push - alternating 2 and g with the push of single button
    ~ě::
    If toggle
     {
        send ě
        ClonesPush("{ě down}{ě up}")
        toggle := !toggle
     }
    Else
     {
        send g
        ClonesPush("{g down}{g up}")
        toggle := !toggle
     }
    Return
    
    ~š::
    If toggle
     {
        send š
        ClonesPush("{š down}{š up}")
        toggle := !toggle
     }
    Else
     {
        send g
        ClonesPush("{g down}{g up}")
        toggle := !toggle
     }
    Return
    
    
    ~č::
    If toggle
     {
        send č
        ClonesPush("{č down}{č up}")
        toggle := !toggle
     }
    Else
     {
        send g
        ClonesPush("{g down}{g up}")
        toggle := !toggle
     }
    Return
    
    ; *** Makes clones jump with main ***
    ~Space::ClonesPush("{Space down}{Space up}")
    
    ~Insert::ClonesPush("{Insert down}{Insert up}")
    ~PgDn::ClonesPush("{PgDn down}{PgDn up}")
    ~PgUp::ClonesPush("{PgUp down}{PgUp up}")
    
    ~NumpadSub::ClonesPush("{NumpadSub down}{NumpadSub up}")
    ~NumpadAdd::ClonesPush("{NumpadAdd down}{NumpadAdd up}")
    
    ; *****************************************************************************
    ; *** Move clones *** added ~ for moving also the main
    ; *****************************************************************************
    ~Up::ClonesPush("{Up down}")
    ~Up Up::ClonesPush("{Up up}")
    ~Down::ClonesPush("{Down down}")
    ~Down Up::ClonesPush("{Down up}")
    ~Left::ClonesPush("{Left down}")
    ~Left Up::ClonesPush("{Left up}")
    ~Right::ClonesPush("{Right down}")
    ~Right Up::ClonesPush("{Right up}")
    
    ; *****************************************************************************
    ; *** Hotbars Letters ***
    ; *****************************************************************************
    ~C::ClonesPush("{C down}{C up}")
    ; ~Q::ClonesPush("{Q down}{Q up}")
    ~T::ClonesPush("{T down}{T up}")
    ~G::ClonesPush("{G down}{G up}")
    ~F::ClonesPush("{F down}{F up}")
    ~Z::ClonesPush("{Z down}{Z up}")
    ~L::ClonesPush("{L down}{L up}")
    ~P::ClonesPush("{P down}{P up}")
    ~H::ClonesPush("{H down}{H up}")
    ~Y::ClonesPush("{Y down}{Y up}")
    ; ~E::ClonesPush("{E down}{E up}")
    ~V::ClonesPush("{V down}{V up}")
    ~K::ClonesPush("{K down}{K up}")
    ~J::ClonesPush("{J down}{J up}")
    ~[::ClonesPush("{[ down}{[ up}")
    ~]::ClonesPush("{] down}{] up}")
    
    
    ; *****************************************************************************
    ; *** Hotbars 1-0 ***
    ; *****************************************************************************
    ~+::ClonesPush("{+ down}{+ up}")
    ; ~ě::ClonesPush("{ě down}{ě up}")
    ; ~š::ClonesPush("{š down}{š up}")
    ; ~č::ClonesPush("{č down}{č up}")
    ~ř::ClonesPush("{ř down}{ř up}")
    ~ž::ClonesPush("{ž down}{ž up}")
    ~ý::ClonesPush("{ý down}{ý up}")
    ~á::ClonesPush("{á down}{á up}")
    ~í::ClonesPush("{í down}{í up}")
    ~é::ClonesPush("{é down}{é up}")
    ~=::ClonesPush("{= down}{= up}")
    ~´::ClonesPush("{´ down}{´ up}")
    
    ; *****************************************************************************
    ; *** Hotbars F's ***
    ; *****************************************************************************
    ~F1::ClonesPush("{F1 down}{F1 up}")
    ~F2::ClonesPush("{F2 down}{F2 up}")
    ~F3::ClonesPush("{F3 down}{F3 up}")
    ~F4::ClonesPush("{F4 down}{F4 up}")
    ~F5::ClonesPush("{F5 down}{F5 up}")
    ~F6::ClonesPush("{F6 down}{F6 up}")
    ~F7::ClonesPush("{F7 down}{F7 up}")
    ~F8::ClonesPush("{F8 down}{F8 up}")
    ~F9::ClonesPush("{F9 down}{F9 up}")
    ~F10::ClonesPush("{F10 down}{F10 up}")
    ~F11::ClonesPush("{F11 down}{F11 up}")
    ~F12::ClonesPush("{F12 down}{F12 up}")
    
    ; *****************************************************************************
    ; + SHIFT
    ; *****************************************************************************
    ; *** Numbers ***
    ~+1::ClonesPush("{Shift down}{1 down}{1 up}{Shift up}")
    ~+2::ClonesPush("{Shift down}{2 down}{2 up}{Shift up}")
    ~+3::ClonesPush("{Shift down}{3 down}{3 up}{Shift up}")
    ~+4::ClonesPush("{Shift down}{4 down}{4 up}{Shift up}")
    ~+5::ClonesPush("{Shift down}{5 down}{5 up}{Shift up}")
    ~+6::ClonesPush("{Shift down}{6 down}{6 up}{Shift up}")
    ~+7::ClonesPush("{Shift down}{7 down}{7 up}{Shift up}")
    ~+8::ClonesPush("{Shift down}{8 down}{8 up}{Shift up}")
    ~+9::ClonesPush("{Shift down}{9 down}{9 up}{Shift up}")
    ~+0::ClonesPush("{Shift down}{0 down}{0 up}{Shift up}")
    ~+=::ClonesPush("{Shift down}{= down}{= up}{Shift up}")
    ~+-::ClonesPush("{Shift down}{- down}{- up}{Shift up}")
    
    ; *** Letters ***
    ~+R::ClonesPush("{Shift down}{R down}{R up}{Shift up}")
    ~+S::ClonesPush("{Shift down}{S down}{S up}{Shift up}")
    ~+E::ClonesPush("{Shift down}{E down}{E up}{Shift up}")
    ~+F::ClonesPush("{Shift down}{F down}{F up}{Shift up}")
    ~+A::ClonesPush("{Shift down}{A down}{A up}{Shift up}")
    ~+D::ClonesPush("{Shift down}{D down}{D up}{Shift up}")
    ~+L::ClonesPush("{Shift down}{L down}{L up}{Shift up}")
    ~+H::ClonesPush("{Shift down}{H down}{H up}{Shift up}")
    ~+K::ClonesPush("{Shift down}{K down}{K up}{Shift up}")
    ~+Y::ClonesPush("{Shift down}{Y down}{Y up}{Shift up}")
    ~+P::ClonesPush("{Shift down}{P down}{P up}{Shift up}")
    ~+C::ClonesPush("{Shift down}{C down}{C up}{Shift up}")
    ~+V::ClonesPush("{Shift down}{V down}{V up}{Shift up}")
    
    ~+[::ClonesPush("{Shift down}{[ down}{[ up}{Shift up}")
    ~+]::ClonesPush("{Shift down}{] down}{] up}{Shift up}")
    
    ~+F2::ClonesPush("{Shift down}{F2 down}{F2 up}{Shift up}")
    
    ~+PgUp::ClonesPush("{Shift down}{PgUp down}{PgUp up}{Shift up}")
    ~+PgDn::ClonesPush("{Shift down}{PgDn down}{PgDn up}{Shift up}")
    ; *****************************************************************************
    
    ; *****************************************************************************
    ; ^ CTRL
    ; *****************************************************************************
    ; *** Numbers ***
    ~^1::ClonesPush("{Ctrl down}{1 down}{1 up}{Ctrl up}")
    ~^2::ClonesPush("{Ctrl down}{2 down}{2 up}{Ctrl up}")
    ~^3::ClonesPush("{Ctrl down}{3 down}{3 up}{Ctrl up}")
    ~^4::ClonesPush("{Ctrl down}{4 down}{4 up}{Ctrl up}")
    ~^5::ClonesPush("{Ctrl down}{5 down}{5 up}{Ctrl up}")
    ~^6::ClonesPush("{Ctrl down}{6 down}{6 up}{Ctrl up}")
    ~^7::ClonesPush("{Ctrl down}{7 down}{7 up}{Ctrl up}")
    ~^8::ClonesPush("{Ctrl down}{8 down}{8 up}{Ctrl up}")
    ~^9::ClonesPush("{Ctrl down}{9 down}{9 up}{Ctrl up}")
    ~^0::ClonesPush("{Ctrl down}{0 down}{0 up}{Ctrl up}")
    ~^-::ClonesPush("{Ctrl down}{- down}{- up}{Ctrl up}")
    ~^=::ClonesPush("{Ctrl down}{= down}{= up}{Ctrl up}")
    
    ; *** Letters ***
    ~^E::ClonesPush("{Ctrl down}{E down}{E up}{Ctrl up}")
    ~^F::ClonesPush("{Ctrl down}{F down}{F up}{Ctrl up}")
    ~^H::ClonesPush("{Ctrl down}{H down}{H up}{Ctrl up}")
    ~^L::ClonesPush("{Ctrl down}{L down}{L up}{Ctrl up}")
    ~^K::ClonesPush("{Ctrl down}{K down}{K up}{Ctrl up}")
    ~^W::ClonesPush("{Ctrl down}{W down}{W up}{Ctrl up}")
    ~^U::ClonesPush("{Ctrl down}{U down}{U up}{Ctrl up}")
    ~^J::ClonesPush("{Ctrl down}{J down}{J up}{Ctrl up}")
    ~^P::ClonesPush("{Ctrl down}{P down}{P up}{Ctrl up}")
    ~^C::ClonesPush("{Ctrl down}{C down}{C up}{Ctrl up}")
    ~^V::ClonesPush("{Ctrl down}{V down}{V up}{Ctrl up}")
    
    ~^[::ClonesPush("{Ctrl down}{[ down}{[ up}{Ctrl up}")
    ~^]::ClonesPush("{Ctrl down}{] down}{] up}{Ctrl up}")
    
    ~^F1::ClonesPush("{Ctrl down}{F1 down}{F1 up}{Ctrl up}")
    ~^F2::ClonesPush("{Ctrl down}{F2 down}{F2 up}{Ctrl up}")
    ~^F3::ClonesPush("{Ctrl down}{F3 down}{F3 up}{Ctrl up}")
    ~^F4::ClonesPush("{Ctrl down}{F4 down}{F4 up}{Ctrl up}")
    ~^F5::ClonesPush("{Ctrl down}{F5 down}{F5 up}{Ctrl up}")
    ~^F6::ClonesPush("{Ctrl down}{F6 down}{F6 up}{Ctrl up}")
    ~^F7::ClonesPush("{Ctrl down}{F7 down}{F7 up}{Ctrl up}")
    ~^F8::ClonesPush("{Ctrl down}{F8 down}{F8 up}{Ctrl up}")
    ~^F9::ClonesPush("{Ctrl down}{F9 down}{F9 up}{Ctrl up}")
    ~^F10::ClonesPush("{Ctrl down}{F10 down}{F10 up}{Ctrl up}")
    ~^F11::ClonesPush("{Ctrl down}{F11 down}{F11 up}{Ctrl up}")
    ~^F12::ClonesPush("{Ctrl down}{F12 down}{F12 up}{Ctrl up}")
    hi sorry for necro. Is this script in like with blizzards rules of 1 keypress 1 action ? I. Other Words: safe to use

  7. #7

    Default

    Quote Originally Posted by Banankontakt View Post
    hi sorry for necro. Is this script in like with blizzards rules of 1 keypress 1 action ? I. Other Words: safe to use
    yes, the script only does 1 press = 1 action

  8. #8

    Default

    Quote Originally Posted by johny_mnemonic View Post
    yes, the script only does 1 press = 1 action
    do i just compile it start up, and it works ?

Tags for this Thread

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •