Warhammer 40,000: Darktide

Warhammer 40,000: Darktide

Оценок: 44
Make any weapon Full Auto, and more. A legal AHK guide
От MIJAMIJAMIJA
An in-game modifiable AHK script for Full Auto on Semi-Auto weapons. Avoid the risk of carpal and ulnar tunnel syndrome, reduce handstrain for your own long term health benefit. AHK scripts are allowed by Fatshark.
Also has a ledge movement tech script.
2
2
   
Наградить
В избранное
В избранном
Удалить
Latest Update
Below I will list only the latest update info to keep it short. Full update log will be at the bottom of the guide instead.

2022-12-13
  • Fixed autofire (melee+ranged) working while crouching and standing. Before there was an issue while crouching. Thanks Damaskus for pointing this bug out.
Introduction
If you like this script please give the guide a thumbs up!
If you get upset by others wanting to avoid problems with carpal tunnel etc, even though FatShark allows the use of scripts, go ahead and thumbs down like many have done. Weird thing to be angry about though.

This AHK script requires you to have Auto Hot Key installed, it is a software for macrocreation.
You can find it here: https://www.autohotkey.com

The script has two features, a togglable full auto macro and a movement tech macro.
Full Auto will only affect Ranged (while turned on) and is never active for melee weapon. There is a separate bind you can use for melee light attack spam (while holding left click, instead of spam clicking it).
The script is only active while Darktide is your active window (while in game that is!).

One of many comments where Fatshark CM says AHK scripts are legal:
https://www.reddit.com/r/Vermintide/comments/ywqnh0/darktide_reviewer_but_do_remember_that_tide_games/iwoxx8e/
Binds
These are the default binds. There is a chapter in this guide explaining how to change them if you want different binds.

Script functionality
  • Movement Tech: Space + Forward Side Mouse Button
  • Auto Fire On/Off: F1 (default OFF)
  • Increase AF Speed: Left Alt + Scroll Down
  • Decrease AF Speed: Left Alt + Scroll Up
  • Reset AF Speed: Left Alt + Middle Mouse (click scroll)
  • Veteran Mode On/Off: F2 (default OFF)
  • Spammable Ping On/Off: F3 (default ON)
  • Melee Auto Fire: Left Alt + Hold Left Mouse Button

In-Game Binds
The script uses these binds to make stuff happen. If you have different binds in game you need to update your binds in game or update the binds in the script.

  • Jump: Spacebar
  • Dodge: Left Shift (you can have Sprint and Dodge on same key)
  • Crouch: Left Control
  • Attack: Left Mouse Button
  • Ping Only: Forward Side Mouse Button
  • Swap to Melee weapon: 1
  • Swap to Ranged weapon: 2
  • Swap to Grenade: G
  • Class Ability: F
How to use
The ledge movement tech is always active, the auto fire is togglable.

Ledge movement tech:
Space+Forward Side Button+Strafe Direction

Here is a video showcasing how this works.
(small note about the video, technically its not the dodge distance but the dodge velocity that affects ledgeteching.)

Important. This script makes a few assumptions:
1) Your dodge key is Shift.
2) Your jump key is Space.
3) You strafe with A and D.
4) You crouch with Left Control

Either update your in game settings to reflect this (you can have sprint and dodge on same key, i use spacebar ONLY for jumping, shift for sprint+dodge.) Or you need to change the keys in the script.

I recommend going into The Meat Grinder in the hubworld to practice how to use this else it may be a bit confusing. Movement tech is primarily useful as zealot when wanting to quickly make your way forward to a group of enemies, it has some use defensively to reposition as other classes. The speed of this tech depends on the dodge distance of your active weapon.

The ledge tech activates when pressing space and XButton2 (mouse side button used as "forward" in a webbrowser) while walking up to a ledge. After this you need to keep holding XButton2 to keep the script running (stops when you let go) and then hold A or D depending on what direction you want to go.

Full Auto:
Toggle on/off: F1 (Defailt OFF)
Veteran Mode on/off: F2 (Default OFF)
Turn on/off Fast Ping: F3 (Default ON)
Use (if on): Hold Left Click
Increase Click Speed: Left Alt + Scroll Down
Decrease Click Speed: Left Alt + Scroll Up
Reset Click Speed: Left Alt + Mouse 3 (click mouse wheel)
Melee override: Left Alt + Hold Left Click

Here is a video showcasing how this works.
(Please note that the key for Melee Override has changed, as you can see in binds listed right above this video. It now works even if autofire for ranged is off.)

The Full Auto script is togglable on/off and if on makes a few assumptions:
1) You only want it to be active while holding a ranged weapon
2) You swap between range/melee using either Q or 1/2 keys.
3) Your class ability key is F
4) Your grenade key is G

If you swap weapons, use class ability, and/or equip grenade using other keys you need to modify the AHK script to take this into account.

Default setting is 360 ms between clicks. Slowest setting is 1010ms between clicks. Fastest setting is 10ms between clicks. You can change this but you cannot make it faster than 10ms, the game wont register clicks properly if you go faster (and no weapon shoot this fast anyway, not even remotely).

I recommend unbinding scrollwheel from swapping weapons, else when finetuning the clickspeed you'll be swapping weapons like mad during it. However this doesnt really matter because when you find the speed you like you wouldn't do this anymore anyway, so it wont really impact your gameplay, just your setup.

This only works if you swap between Range and Melee using Q, 1, 2 keys. If you swap using other keys (such as mousewheel) you need to update the script to reflect this.

Spam Ping:
Default ping system in Darktide is coded wrong. Instead of pinging when you press the ping button you ping when you release the ping button. This makes it feel unresponsive.

The spam ping setting makes you spam out pings as long as you hold Forward Side Mouse Button. This solves the unresponsive nature of the games ping, because if you just press the button now it will immediately ping what you aimed at. It also lets you hold it and "sweep" a horde to ping anything potentially in there. Ping in game must of course be binded to this button, or you need to update the script.

This setting defaults to ON but is togglable with F3. You can set spam ping to default to off by changing this:
toggle4 := True
to this:
toggle4 := False

However as the ping is broken in game I recommend using this. Ping should be on a button you can easily press (which is why I use forward side mouse button) and you should always have something pinged, this helps your team (and yourself).
The AHK script
#NoEnv #Warn SendMode Input SetWorkingDir %A_ScriptDir% ;Global Vars toggle := False toggle2 := True toggle3 := False toggle4 := True cspeed := 350 ;----------------Notes--------------- ; XButton1 = 4th mouse button. Typically performs the same function as Browser_Back. ; XButton2 = 5th mouse button. Typically performs the same function as Browser_Forward. ; MButton = Scroll-wheel button. ; LButton = Left mouse button. ; <! = Left Alt. ; ;--------------How to Use------------ ; F1 = Activates/Deactivates the autoclicker. ; F2 = Activates veteran mode (F turns on Auto Fire if Toggle is on, since F swaps to ranged weapon for veteran). ; F3 = Turn off/On (Default on) the spam ping while holding XButton2 (forward side mouse button). ; Left-Alt + Scroll-wheel up/down = Changes clicking speed of autoclicker. ; Left-Alt + Middle Mouse Button = Resets clicking speed of autoclicker to 4 clicks per second. ; Left Alt + Left Mouse Button (Hold) = Can let go of Left Alt as long as still holding Left Mouse. Enables auto-clicker for melee (spam light attack) ; Space + XButton2 (Hold) = Ledgehopping. Can let go of Space as long as holding XButton2. Move towards a vaultable ledge and use this + strafe angle (A or D). Makes you ledgehop, goes fast. ; ; Autoclicker is only active while having ranged equipped + autoclicker turned on. Melee will behave like normal (unless using Left Alt + Left Mouse override) ; Macros only active while Darktide.exe is the active window (so only while in game) ;------------------------------------ ;------------Spam Tagging------------ #if !GetKeyState("Space","P") && (WinActive("ahk_exe darktide.exe")) *~$XButton2:: If toggle4 { While GetKeyState("XButton2", "P") { Send {XButton2 Down} Sleep 10 Send {XButton2 Up} Sleep 150 } return } return #if ;----------------END---------------- ;------------Movement Tech----------- #if GetKeyState("Space","P") && (WinActive("ahk_exe darktide.exe")) *~$XButton2:: Sleep 100 Loop 12 { If !GetKeyState("XButton2", "P") return Send {Shift Down} Sleep 30 Send {Shift Up} } If !GetKeyState("XButton2", "P") return Send {LCtrl Down} Loop 12 { If !GetKeyState("XButton2", "P") { Send {LCtrl Up} return } Send {Shift Down} Sleep 30 Send {Shift Up} } KeyWait, XButton2 Send {LCtrl Up} return #if ;----------------END---------------- ;--------------Toggles-------------- #If (WinActive("ahk_exe darktide.exe")) *F1::toggle := !toggle *F2::toggle3 := !toggle3 *F3::toggle4 := !toggle4 #if ;----------------END---------------- ;------------Click Speed------------ #If (WinActive("ahk_exe darktide.exe")) *<!WheelUp:: if (cspeed <951) { cspeed :=cspeed +50 } return *<!WheelDown:: if (cspeed >49) { cspeed :=cspeed -50 } return *<!MButton::cspeed := 350 #if ;----------------END---------------- ;------------Ranged Only------------ #if (WinActive("ahk_exe darktide.exe")) ~$1::toggle2 := False ~$2::toggle2 := True ~$Q::toggle2 := !toggle2 ~$G::toggle2 := False ~$F:: if toggle3 { toggle2 := True return } return #if ;----------------END---------------- ;-----------Melee Override---------- #if GetKeyState("LAlt", "P") && !toggle2 && (WinActive("ahk_exe darktide.exe")) ~$*<!LButton:: While GetKeyState("LButton", "P") && !toggle2 { Send {LButton Down} Sleep 10 Send {LButton Up} if !GetKeyState("LButton", "P") { return } Sleep 300 if !GetKeyState("LButton", "P") { return } } return #if ;----------------END---------------- ;------------Auto Clicker----------- #If !GetKeyState("LAlt", "P") && toggle2 && (WinActive("ahk_exe darktide.exe")) ~$*LButton:: If toggle { While GetKeyState("LButton", "P") { While GetKeyState("LButton", "P") && toggle2 { Send {LButton Down} Sleep 10 Send {LButton Up} if !GetKeyState("LButton", "P") { return } Sleep cspeed } if !GetKeyState("LButton", "P") { return } Send {LButton Down} While GetKeyState("LButton", "P") && !toggle2 { Sleep 50 } Send {LButton Up} if !GetKeyState("LButton", "P") { return } } } return #if ;----------------END----------------
What do I do with that code???
Copy it, open notepad, paste it in notepad, save the file as "name".ahk (replace "name" with whatever you want).

If you have AHK installed this should be correctly identified as an AHK file, the icon should be a little paper with an H on it. You can right click this file and it should tell you "Run Script" as an option, do this.

If the script is running you should see an "H" icon in your system tray. You can exit the script if you right click this icon and choose "Exit", however the script should not do anything while youre not in Darktide anyway.

Test it in The Meat Grinder to see if things work as expected.

Now praise the emperor and protect your wrists and hands from unnecessary strain that playing a lasgun in darktide will surely give you without using a full auto script.
I don't like your binds! How do I change them?
Well to begin with you are objectively wrong, my binds are great, but as I am a certified good boy I'll let you know how to change them to whatever you'd want them to be.

Start by opening up this page:
https://www.autohotkey.com/docs/KeyList.htm

You will use this to know what various keys are called in AHK, this is essential since we want to replace some keys with whatever you prefer.

Modifier Keys
Now first let me explain modifier keys real fast, if this is something you want.
A modifier key would be the "ctrl" key in a "ctrl+mouse wheel down" type bind. Basically you hold down your modifier key and press another key to run the script (like the script currently does!).

Scroll down to the section of that webpage that talks about modifier keys and it should list them all for you. This is how they work:
Left Control = <^
Left Alt = <!
So if I want a bind to be
Left Control + A
it would be written as
<^A::

Changing the binds
You need to look for the keys in the script that you dislike and swap them up to what you'd prefer. The script is broken down into sections with titles that roughly explain what is what, which hopefully assists you in doing this.
Lets say you want to change the toggle on/off bind from F1 to Left Control+Mouse3

First we look for that part in the script, which we find here:

;------------Auto Toggle------------ *F1::toggle := !toggle ;----------------END----------------

Now we can use the link from above to double check if this is correct, in this case it's pretty easy to know F1 means the F1 key, but if you are unsure of the name of a key just check the link at the top of this segment.

Okay so now we want to change the part of that code that is a button we dislike to one we like. Since we know F1 is the name of the button this must, logically, be what we change.
Here's how it will look like when we swap this to be on Mbutton (Mouse wheel click):

;------------Auto Toggle------------ *<^Mbutton::toggle := !toggle ;----------------END----------------

When it comes to buttons with a * and/or ~ in front of them I would recommend keeping those. You need to remove modifier keys and the actual key of course but * and ~ serve a different purpose so keep those there when you swap out keys.

Lets do one more example so we are certain you understand how this works.

This time lets say you want to use the movement tech script but you do not have crouch binded to left control, you have it on the default "c" and you want it to remain that way. How do we solve this?

Well we know we need to look for this under the "Movement Tech" title and this time we want to look for where it says Left Control, and swap this to C.

Here's one example of that:

Send {LCtrl Down}

Now we change this to:

Send {c Down}

I hope this explained how to change the bindings in the script and will make the process simple for you.
Update Log
Below I will list the date of updates to the script and the things of importance that was changed/added. You can refer to this list to see if your script is up to date and whether or not you want to update to the latest version.

2022-12-08
  • Likely the last update for some time, unless I stumble over something interesting.
  • Added support for the melee spam to work even when ranged toggle is set to off. Timings were adjuster to make it more consistent for melee too. Hotkey is still Left Alt + Hold Left Mouse Button.

2022-12-08
  • Likely the last update for some time, unless I stumble over something interesting.
  • Added support for the melee spam to work even when ranged toggle is set to off. Timings were adjuster to make it more consistent for melee too. Hotkey is still Left Alt + Hold Left Mouse Button.

2022-12-07
  • Found out that Darktide pinging system is broken. It sends the ping on Key Up instead of Key Down. To remedy this ive enabled spampinging, so as long as ping button is held (for me forward mouse button) it will spam ping. This will fix the unresponsive feeling of pings.
    You can toggle this on/off with F3 (default: ON). Feel free to update the bind to whatever you use for pinging, or swap the default setting to False if you are not interested. (Toggle4 = False at top of the script)
  • Updated how melee auto-fire override works to make it more consistent. New bind is now Left Alt + Left Mouse Button (then keep holding left mouse), old bind was Back Mouse Side Button + Left Mouse Button.

2022-12-06
  • Changed auto-fire toggle to F1 (from Left-Ctrl + Middle mouse)
  • Added "Veteran Mode" (F2), toggle this on if you are playing ranger veteran. If your autofire is toggled on then pressing F will make sure autofire is active, since this swaps from Melee to Ranged.
  • Auto Fire is now turned off when you press "G" for grenade. This is so that you can do a normal hold down left click throw with grenades while using the auto fire script. There is no way at all to automatically turn autofire back on after grenade is thrown so you will have to manually press "2" which turns auto fire back on, since the game assumes you swapped to ranged.
Комментариев: 48
MIJAMIJAMIJA  [создатель] 13 июн. 2024 г. в 3:25 
you can just keep this part:

#NoEnv
#Warn
SendMode Input
SetWorkingDir %A_ScriptDir%

;Global Vars
toggle4 := True
Nate 10 июн. 2024 г. в 20:25 
I don't need any of the stuff from the top or the end?
MIJAMIJAMIJA  [создатель] 10 июн. 2024 г. в 8:15 
just rip out the part under Spam Tagging and only use that.
Nate 12 мая. 2024 г. в 23:39 
How would I go about making an AHK for just the spam ping? I like it a lot but it makes me dodge constantly. So far using a revolver the full auto works one time, I switch back and forth and it goes on my melee, so I'd like to just use the ping spam. Its very good. Ty for this!
MIJAMIJAMIJA  [создатель] 30 апр. 2024 г. в 5:49 
i recommend using full auto mods now instead of this script. since theres now mods for the game and those will integrate with it better. check out nexus and search for full auto
That Werewolf guy 30 апр. 2024 г. в 5:12 
How does one remove the auto clicker for melee? My mouse 4 is my special button and it keeps glitching my melee to auto swing
MIJAMIJAMIJA  [создатель] 27 дек. 2022 г. в 0:51 
the melee override already is on left mouse. its enabled by pressing left alt + left mouse at the same time and after that you can let go of left alt and just hold down left mouse.

rin you will have to give more details than "it is not working" because it is impossible to suggest a fix when you have that little details to your post.

did you install auto hot key? did you run the script? did you enable the script when in game?
Rin~♪ 26 дек. 2022 г. в 19:53 
I got problem with script. I've tried all its functions and none of them working. Have to click manually to fire semi guns :steamsad:
doedoefistncuff 26 дек. 2022 г. в 8:27 
hello im trying to figure out the auto melee override. is it supposed to stay active after switching weapons? if not is there a way to make it so it can? also im trying to switch it from l alt + l mouse to l control.
MIJAMIJAMIJA  [создатель] 23 дек. 2022 г. в 10:01 
youd just want to make your sprint key also trigger a hold down on your crouch key.