Skip to main content [Autohotkey] The ultimate melee macro: Rapid-fire and spin attack using 1 key, highly usable and easy to configure : r/Warframe

Get the Reddit app

Scan this QR code to download the app now
Or check it out in the app stores
r/Warframe icon
r/Warframe icon
Go to Warframe

[Autohotkey] The ultimate melee macro: Rapid-fire and spin attack using 1 key, highly usable and easy to configure

Resource

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
Archived post. New comments cannot be posted and votes cannot be cast.
PlayStation®5 Pro
Thumbnail image: PlayStation®5 Pro
Sort by:
Best
Open comment sort options

alternately you can bind melee to mouse4, then spin to win comes easy.

More replies
[deleted]

ITT: Beyblades

More replies

This not working for me at all, Any in-depth guide how to setting?

melee= XButton1 ; -- NOTE: You have to change HotKeys below as well (E.g. change XButton1)

meleeKey= 0

slideKey= Shift

I changed meleeKey to 'E' (default melee attack) and slideKey to 'Ctrl', and what is XButton1?

Also

Sublime Text 3 + Package Control + Autohotkey package

Do i need all of them or just AHK if i only need copy-paste code.

More replies
[deleted]

Can't this result in a ban, though?

More replies

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.

More replies
[deleted]

Comment deleted by user