

Reddit community and fansite for the free-to-play third-person co-op action shooter, Warframe. The game is currently in open beta on PC, PlayStation 4|5, Xbox One/Series X|S, Nintendo Switch, and iOS!
[Autohotkey] The ultimate melee macro: Rapid-fire and spin attack using 1 key, highly usable and easy to configure
So, I'm sharing this and hoping it will come useful to someone looking to use Macros to ease the annoyances that you face everyday with super high speed attacks and melee. E.g:
-
The tedious Maiming Strike spam for min-maxing.
-
Excalibur exalted blade spams
-
Any really fast melee weapon
I haven't found any macro that suits my requirements. This one works very nicely to my tastes :)
Anyway, let me know if you like this and if you have any suggestions to improve this I'll be happy to listen.
EDIT: Wow the comments, I was expecting some controversy but not as much. Anyway, long long story short, the macro only sends inputs without reading any feedback from the game. I have a few accessibility issues using my hand so I find this macro eases the tension a lot.
In a non-competitive environment, macros of this nature in general "SHOULD BE OK" in terms of reasonable judgement. I don't see any significant advantage to using a macro like this other than convenience and reduction of stress on the hands. The same advantage you would get by having an ergonomic desk and ergonomic mouse and keyboard, i.e. convenience.
That said, use this at your own risk.
Finally and in my personal opinion. I really wish maiming strike would be more usable, as my min-maxing genes are itching to use it as often as humanly possible.
Finally finally, sorry for creating a mess of controversy...
Main Features
-
One button melee spam and melee spin, and user friendly
-
Adjustable melee spin speed while in-game, with tooltip messages
-
Easy to configure
How to use
Configuration
-
Adjust Key Settings (Lines 9-11):
-
melee: The button to start the macro (Default is XButton1)
-
meleeKey: The button mapped in game to do melee attack (Default is 0 key)
-
slideKey: The button mapped in game to slide (Default is Shift)
-
Lines 61 onwards: Adjust hotkeys as needed, especially the XButton1 in case you changed the melee button variable.
Main buttons
-
Press melee attack once = normal attack
-
Press melee and hold = rapid fire attack
-
Slide and melee = normal spin attack
-
Slide and HOLD melee = automatic spin attack START
-
Press any movement key = STOP automatic spin attack
Option buttons
-
F2 = Toggle macro (Default is ON).
-
PgUp = Reduce spin attack delay (Faster spin) and display current value
-
PgDown = Increase spin attack delay (Slower spin) and display current value
More features
-
There's a small internal delay added while holding button before the macro starts, to separate intent if you were trying to do a single attack or rapid attack.
-
Advanced configuration for adjusting the relative delay rates that happen in a spin attack
-
I'm using the "Send Blind" feature to make spin attacks function very nicely in case Shift or Ctrl were used as the slide key
Notes / Future development
-
Tooltip may cause issues. If that happens you can comment out lines 35, 42, 43. (Comments start with semicolon (;) character)
-
I don't know how to use a variable as a hotkey.
-
I don't know if there's a way to save the melee spin speed after adjustment. You can simply adjust the variable spinTime (Line 73) after you find the suitable speed.
-
For editing and creating your own, I recommend installing Sublime Text 3 + Package Control + Autohotkey package
Please let me know if you have any improvements to share :) !
Macro
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. #Warn ; Enable warnings to assist with detecting common errors. SendMode Input ; Recommended for new scripts due to its superior speed and reliability. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. #MaxHotkeysPerInterval 20000 ;---- KEY SETTINGS ---- melee= XButton1 ; -- NOTE: You have to change HotKeys below as well (E.g. change XButton1) meleeKey= 0 slideKey= Shift ;---- TIME SETTINGS ---- spinTime = 480 waitBS = 400 meleeDelay = 100 ;----------------------- ;-- CALC STUFF ratei := 5.0 ;0.045454545 rateii := 30.0 ;0.303030303 rateiii := 65.0 ;0.651515152 startloop := 0 meleeRapid := 1 speedRate := 10 CalcTimes() ;-- FUNCTIONS STUFF RemoveToolTip: { SetTimer, RemoveToolTip, Off ToolTip ;return } Msg(s) { ToolTip, %s%, 140, 140 SetTimer, RemoveToolTip, 1000 return } CalcTimes() { global spini := (spinTime * ratei / 100.0) spinii := (spinTime * rateii / 100.0) spiniii := (spinTime * rateiii / 100.0) Msg(spinTime) return } ;----------------------- #IfWinActive, WARFRAME { #If, meleeRapid=1 XButton1:: Send {Blind}%meleeKey% Sleep, waitBS While GetKeyState(melee, "P"){ Send {Blind}%meleeKey% Sleep, meleeDelay ; milliseconds } return +XButton1:: Send {Blind}%meleeKey% Sleep, spinii Send {%slideKey% Up} Sleep, waitBS GetKeyState, state1, XButton1, P if state1 = D { startloop:=1 Msg("Spinning ON!") While(startloop=1) { Send {W down} Send {%slideKey% Down} Sleep, spini Send {Blind}%meleeKey% Sleep, spinii Send {%slideKey% Up} Sleep, spiniii Send {W up} } } return ;return #If #If, meleeRapid="0" *XButton1:: Send {Blind}{%meleeKey% Down} return *XButton1 UP:: Send {Blind}{%meleeKey% Up} return ;return #If ~F2:: if(meleeRapid=0){ meleeRapid:=1 msg("Melee rapid mode ON") } else{ meleeRapid:=0 msg("Melee rapid mode OFF") } return ~PgUp:: spinTime := (spinTime - speedRate) CalcTimes() return ~PgDn:: spinTime := (spinTime + speedRate) CalcTimes() return } #If, startloop=1 *~W:: *~Space:: *~S:: *~A:: *~D:: startloop:=0 Msg("Stop spin") return #If

alternately you can bind melee to mouse4, then spin to win comes easy.
ITT: Beyblades
This not working for me at all, Any in-depth guide how to setting?
I changed meleeKey to 'E' (default melee attack) and slideKey to 'Ctrl', and what is XButton1?
Also
Do i need all of them or just AHK if i only need copy-paste code.
Can't this result in a ban, though?
I love you.
Wow the comments, I was expecting some controversy but not as much. Anyway, long long story short, the macro only sends inputs without reading any feedback from the game. I have a few accessibility issues using my hand so I find this macro eases the tension a lot.
In a non-competitive environment, macros of this nature in general "SHOULD BE OK" in terms of reasonable judgement. I don't see any significant advantage to using a macro like this other than convenience and reduction of stress on the hands. The same advantage you would get by having an ergonomic desk and ergonomic mouse and keyboard, i.e. convenience.
That said, use this at your own risk.
Finally and in my personal opinion. I really wish maiming strike would be more usable, as my min-maxing genes are itching to use it as often as humanly possible.
Finally finally, sorry for creating a mess of controversy...
I've been trying this out and the results are somewhat bizarre - changing the key settings to match the Warframe defaults seems to mostly not work (I did remember to change the Xbutton modifier to Ctrl, but it just results in my frame rolling a lot).
In the end I changed my Warframe config to match the ones that the AHK script is expecting but I'm having another problem - engaging the endless spin2win macro alt-tabs my Warframe window.
Might give this script another try later on, right now I feel like there must be something I'm missing.
EDIT: Just realized that it's probably because I never hit F2 before doing anything, then I tried hitting F2 and it also minimizes my window. Hmm.
Comment deleted by user