PC Rapid Fire




Edit: fixed the final program so you won't have to rename its extension

Shoot Semi-Auto guns with automatic speed! This is a risk-free software mod, so there's no way you can permanently screw up your mouse/joystick.

The Xbox 360 can do it, and after following this tutorial, all you PC gamers can too! I'll show you how to do it with AutoIt, a free Windows automation language.

Note, if you don't want to write the script yourself, you can download the compiled version on step 5.


Step 1: Download and Install Autoit

Download the latest version here (If you use x64 windows, make sure to download that version). You'll also want to download the AutoIt Script Editor, especially if you'll be doing anything heavy duty in the future. It's really nice.

Step 2: Begin the Code!

AutoIt is extremely simple to code. The reference is available online at http://www.autoitscript.com/autoit3/docs/.

Open notepad or use the script editor to create a new file. The script extension is .au3 . Copy and paste the following code.

HotKeySet("!x", "ToggleSpam")
HotKeySet("+{ESC}", "EndSpam")
Global $x 
MsgBox(0, "MouseSpaz", "Alt+X Starts the spaz (press both keys with your left thumb)" & @LF & @LF & "Pressing Alt+X again will stop the spaz" & @LF & @LF & "Shift+Esc will quite the program")	

While 1	
	While $x		

Func ToggleSpam()	
	$x = Not $x
EndFunc   ;==>ToggleSpamFunc 

Func EndSpam()	
EndFunc   ;==>EndSpam

*EDIT* If the above code is strangely formatted, try http://pastebin.com/2sCkEh63

Step 3: Customize Code

The first two lines in the program define what you press to start, stop, and exit the program.

HotKeySet("!x", "ToggleSpam")
HotKeySet("+{ESC}", "EndSpam")

The bolded and italicized text in the above code are the hotkeys, and can be modified to suit your preferences. Some explanation is in order, I sense:

! = Alt
x = X
+ = Shift
{ESC} = Esc

Alt+X is easy to press, because in most FPS and 3PS games, your left thumb is already on the spacebar for jumping, so this allows for easy access. Obviously, if you are left handed, or are using a customized keymap, you'll want to change this. Every key is defined here, in the AutoIt documentation

Step 4: Compile the Code

Save the file (I called mine MouseSpaz)

Navigate to the file's directory, right click it, and click "compile with options"

A window pops up with many tabs. We only need to deal with the first tab. Our script is nothing heavy duty. If you want an Icon, you can make one yourself, or use mine below. Save it to your desktop, or somewhere else memorable. Click on the three dots to the right of "Icon:", and find the file. This icon will also show up in your system tray while the script is running.

Click the three dots next to "Target:", to decide where to save the program, and what to call it. I decided to call the program MouseSpaz and to compile it to the desktop.

Everything good? Ok, click Compile Script. You'll be treated to a nice loading bar, and when it's done, you'll have a very professional looking program that does something very unprofessional!

Navigate to the directory where it was compiled to ("Target"), and double click it. A mouse icon should show up in your system tray.

To test it, go to http://www.addictinggames.com/kingofbuttons.html, and play "Endurance". Put your cursor over the big red button, and hit alt+X to toggle the rapid fire mode on.

Hit Shift+Esc to quit the script

If it makes you lol, I don't blame you. it's funny. If you're not lolling, and if it's not working, make sure of these things:

That you're pressing alt before you press X
That the icon is showing up in the system tray
That you press your own key combination if you've modified it

Note: The speed varies from computer to computer, and I get about 60 clicks per second. So, if I were to a play an FPS that didn't steal any computer resources, I would be shooting at 3600 rounds per minute. Unfortunately, that's impossible. Plus, some party-pooper game developers have put fire-rate limiters on some guns, so don't expect it to work all the time on every gun in every game.

Step 5: Go for the Epic Win!

Go out there and play a shooting game. Multiplayer is hilarious. I highly recommend pistols on Call of Duty 4, and dualies on Counter-Strike 1.6

If you couldn't get the script working, I've attached the compiled version below. Note that I use alt+C instead, because that is the easiest combination on my laptop keyboard.



    • IoT Challenge

      IoT Challenge
    • Arduino Contest 2019

      Arduino Contest 2019
    • Colors of the Rainbow Contest

      Colors of the Rainbow Contest

    102 Discussions


    9 years ago on Step 5

    i used the script - it works on the button game, but not on the fps game. idk why it only works there

    2 replies

    Hmm...could you tell me what game you were playing? Some games have fire rate limiters that prevent you from making the most of this script

    mushedmellowJunkyard John

    Reply 3 years ago

    OMG im so late with this comment, but if you can help me that would be great! I was playing BO3 and I couldn't do it and I have no idea....

    Also, if you can explain to me why that would be awesome, also, do you know of games that I can use this on? Thx, hope you keep up the good work!


    4 years ago on Introduction

    Thanks for this post however: I've looked at yours and a few others I could find. The key thing me and seemingly a lot of others are trying to figure out is how exactly just to make left mouse the toggle key itself...so when its pressed down maybe with ispressed_ it spams and then when it is let go it stops. Some of us dont want some crazy long spam thing and just need burst fire.


    6 years ago on Introduction

    Can you get banned from a game like bf3 for using this?


    8 years ago on Introduction

    i tried it with zombie mode, it fired one shot and then i had to turn it of so i could fire normal again? is there anything i can do about it?


    8 years ago on Step 2

    Your script does not work - I had to help a friend fix this today.

    1 - EndFunc ;==>ToggleSpamFunc <--- Needs to be

    EndFunc ;==>ToggleSpam

    2 - EndSpam() <--- Needs to be

    Func EndSpam()

    3 - Global
    $xMsgBox(0, "MouseSpaz", "Alt+X Starts the spaz (press both keys with your left thumb)" & @LF & @LF & "Pressing Alt+X again will stop the spaz" & @LF & @LF & "Shift+Esc will quite the program") <--- Needs to be

    Global %x

    MsgBox(0, "MouseSpaz", "Alt+X Starts the spaz (press both keys with your left thumb)" & @LF & @LF & "Pressing Alt+X again will stop the spaz" & @LF & @LF & "Shift+Esc will quite the program")

    This is also all concatenated together in your pastebin version.

    4 - Your while loops need to be inside the ToggleSpam function.

    5 - Pretty sure the while loop checking '1' is like saying "if 1 == 1", though I don't know this language to be sure. It's harmless anyway, just a nitpick.

    Test your code man! :P Peace.

    3 replies
    Junkyard Johneagleon

    Reply 8 years ago on Introduction

    Ah, thank you. Instructables messed with the code's formatting a yearish ago, and I scrambled to correct the formatting without re-checking the code. It is now corrected.

    Now I know you don't know this language, so let me help you out: your first correction is correcting a comment, which really has no bearing on anything at all. The while loops cannot to be in the ToggleSpam func because what you call a harmless redundacy is actually the main loop of the program and is what causes the program to keep checking for hotkey commands during its life.

    I thank you for bringing to my attention the errors, however found the tone of your message supremely annoying. :P Peace.

    eagleonJunkyard John

    Reply 8 years ago on Step 2

    The issue is that I don't have AutoIt myself. The corrections I list made it work for the person I was helping (at least according to him), including the while loop inside togglespam. I'm actually genuinely curious now what 'while 1' is doing - thought it would be a boolean check, in which case, '1' would always return true.

    http://pastebin.com/1W9Nms4w this is the modified version I sent my friend. I'm assuming AutoIt activates the togglespam function every time its associated key is pressed, even while another function is running. In this case, $x will successfully be toggled on/off each time the function is called, and indeed, the while loop will only be checked once after the call, which is the only time it needs to be checked. It will begin looping only after the function is called during a 'toggle on' phase, possibly saving a few CPU cycles.

    Sorry if I offended, was being a little snarky I admit.

    Junkyard Johneagleon

    Reply 8 years ago on Step 2

    The Boolean check basically just keeps the program running. The code you posted (at least on my machine) will execute once and close. You see, AutoIt is a scripting language and is often used for things like macros, and by default it closes after it has followed all of its instructions. The While 1 loop puts it in a suspended state, so that the program will not terminate unless it receives the command to do so, kind of like the main loop in a java. However,I do see your point about the other loop. I agree; embedding it in the function is better practice in this scenario.

    Don't worry about it! Thanks for not exploding like oh so many other people do online when confronted with conflicting viewpoints :D


    9 years ago on Step 5

    im playing a game called parabellum the script turns off when i start the game.


    9 years ago on Step 5

     When I was coding it myself I kept getting errors because when I copied and pasted it all went to one line.  I tried to fix it but your images are to blurry so I couldn't could you post the code with spaces or get a picture that shows all the code clearly?


    1 reply