Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
BOT for 10fastfingers, automatic typing with adjustable speed
/*
* BOT for 10fastfingers, automatic typing with adjustable speed
* ================================================================
*
* bored in my apartment and decided to hack this game: http://indonesian-speedtest.10fastfingers.com/
* just start the game, when you're ready to type, DON'T TYPE ANYTHING, open up
* your Developer Tools in Chrome (CTRL+SHIFT+J) and click Console tab, and
* then paste the whole code below, then press enter, and enjoy the show.
*
* twitter.com/kecebongsoft
*/
var word_idx = 0;
var interval_per_word = 250; // in milliseconds
function hackit(){
if(word_idx<words.length){
$('#inputfield').val(words[word_idx] + ' ');
var keyup = jQuery.Event('keyup');
keyup.which = 32;
$('#inputfield').trigger(keyup);
word_idx++;
setTimeout('hackit()', interval_per_word);
}
}
setTimeout('hackit()', interval_per_word);
@dahdahm

This comment has been minimized.

Copy link

dahdahm commented Oct 24, 2013

or paste this:
$( "#inputfield" ).keyup(function() { $("#inputfield").val( $(".highlight").text() )});

then its as fast as you hit the space bar.

@Tsepten

This comment has been minimized.

Copy link

Tsepten commented Feb 25, 2014

Change the 2nd line when it says
var interval_per_word = 250
change the 250 to like 200 or 1
and it will go faster, but i tried 1 you'll finish the whole test in 2 seconds, and it will have no more words so then the time will keep going and the wpm will go low...

oh and when you get a very high score they will send you notifications and it will show a anti-cheat test and all the words are in a picture..... But i didnt do it.

@HysteriaNetwork

This comment has been minimized.

@sezaiacima

This comment has been minimized.

Copy link

sezaiacima commented May 24, 2014

It's working really 💃

@zstar69

This comment has been minimized.

Copy link

zstar69 commented May 31, 2014

lame

@christianstrang

This comment has been minimized.

Copy link

christianstrang commented Feb 24, 2015

... and a surefire way to get your account banned ;)

@Daniyal-Javani

This comment has been minimized.

Copy link

Daniyal-Javani commented Jul 9, 2015

This code does not work in competitions (more detail in follow) and have varying result with same interval_per_word on it. I try random interval_per_word and random Wrong words but didn't work, do you have any other idea?
more detail:
Anti-Cheat Test

This Anti-Cheat-test is to evaluate your typing result (sorry about the inconvenience but this is the only way to prevent cheating on 10FastFingers).

This test only appears when you type faster than X WPM. Below you can see the last 5 results in each category that are currently not counted. By clicking on one of those results you will get to the Anti-Cheat-Test where you can unlock the results by typing fast enough (don't worry, you can try it as often as you like).

@miladissmart

This comment has been minimized.

Copy link

miladissmart commented Jul 27, 2015

if you get higher than 99 they will give you an anti-cheat test

@karlingen

This comment has been minimized.

Copy link

karlingen commented Aug 12, 2015

Change numberOfTimes to any number.

var numberOfWordsPerMinute = 400;

$( "#inputfield" ).keyup(function() { $("#inputfield").val( $(".highlight").text() )});
for (i=1; i <=numberOfWordsPerMinute; i++) {
  var e = $.Event("keyup");
  e.which = e.charCode = e.keyCode = 32;
  $("#inputfield").trigger(e);
}
@EmmanuelU

This comment has been minimized.

Copy link

EmmanuelU commented Sep 17, 2015

var word_idx = 0;
function hackit(){
    if(word_idx<words.length){
        $('#inputfield').val(words[word_idx] + ' ');
        var keyup = jQuery.Event('keyup');
        keyup.which = 32;
        $('#inputfield').trigger(keyup);
        word_idx++;
        hackit();
    }
}
hackit();

take out the timeout and you'll get the fastest possible score at the moment (usually #1).

@fungasio1o1

This comment has been minimized.

Copy link

fungasio1o1 commented Nov 2, 2015

umm guys I am only 11 and want to hack this game for school so I don't know where to put that stuff so plz tell me

@BurakDev

This comment has been minimized.

Copy link

BurakDev commented Jan 5, 2016

Navigator developper console. (F12 on Chrome)

@ghost

This comment has been minimized.

Copy link

ghost commented Jan 21, 2016

do one for nitrotype!

@mhchen-UA

This comment has been minimized.

Copy link

mhchen-UA commented Feb 6, 2016

var word_idx = 0;
var interval_per_word = 200; // in milliseconds
function hackit(){
    //if(word_idx<words.length){
      if(word_idx < 140){
        $('#inputfield').val(words[word_idx] + ' ');
        var keyup = jQuery.Event('keyup');
        keyup.which = 32;
        $('#inputfield').trigger(keyup);
        word_idx++;
        setTimeout('hackit()', interval_per_word);
    }
}
setTimeout('hackit()', interval_per_word);

This will get you 140+ in competitions. It's usually less than 152 WPM too, That's when I activate anti-cheat. I got first place constantly with this code.

@mhchen-UA

This comment has been minimized.

Copy link

mhchen-UA commented Feb 6, 2016

http://10fastfingers.com/anticheat/generate_word_picture Does anyone know where the source code for the picture generator would be from? We could probably crack the anti-cheat engine if we do.

@itotallyrock

This comment has been minimized.

Copy link

itotallyrock commented Feb 13, 2016

I made a version for http://typing-speed-test.aoeu.eu/

I minimized the code a bit too and made it bookmarklet compatable, not that you would ever need it that often. All you need to do is add javascript: in front of the code below.

It doesn't work for stats if you set it too fast but if you're just trying to show off set it to any value larger than 1ms

setInterval(function(){
    $('#input').val($("#currentword").text()+' ');
    var keyup=jQuery.Event('keyup');
    keyup.which=32;$('#input').trigger(keyup);
}, parseInt(prompt("Speed",50)));
@say4n

This comment has been minimized.

Copy link

say4n commented Apr 11, 2016

var word_idx = 0;
var interval_per_word = 600; // in milliseconds
function hackit(){
if(word_idx<words.length){
$('#inputfield').val(words[word_idx] + ' ');
var keyup = jQuery.Event('keyup');
keyup.which = 32;
$('#inputfield').trigger(keyup);
word_idx++;
setTimeout('hackit()', interval_per_word);
}
}
setTimeout('hackit()', interval_per_word);

Use this to get 105wpm and no anti cheat!!

@AutismoMan

This comment has been minimized.

Copy link

AutismoMan commented Apr 22, 2016

Can anyone make a version for Typin Pal http://school.typingpal.com/info/

@aufa

This comment has been minimized.

Copy link

aufa commented May 4, 2016

var $=jQuery;
var ifield = $('#inputfield');
interv = setInterval(function() {
    var vl = $('#words .highlight');
    if (!vl.length) {
        clearInterval(interv);
    }
    vl = vl.text();
    if (vl == '' || !vl || typeof vl =='undefined') {
        clearInterval(interv);
    }
    ifield.val(vl + ' ');
    var keyup=$.Event('keyup');
    keyup.which=32;
    ifield.trigger(keyup);
}, parseInt(prompt("Speed", 85)));
@alex-09

This comment has been minimized.

Copy link

alex-09 commented May 27, 2016

Where can I put this code ?

@simplepure

This comment has been minimized.

Copy link

simplepure commented Aug 7, 2016

ar $=jQuery;
var ifield = $('#inputfield');
interv = setInterval(function() {
var vl = $('#words .highlight');
if (!vl.length) {
clearInterval(interv);
}
vl = vl.text();
if (vl == '' || !vl || typeof vl =='undefined') {
clearInterval(interv);
}
ifield.val(vl + ' ');
var keyup=$.Event('keyup');
keyup.which=32;
ifield.trigger(keyup);
}, parseInt(prompt("Speed", 85)));

@my-music

This comment has been minimized.

Copy link

my-music commented Aug 9, 2016

How do I run the code? I opened the console and pasted the code there but nothing happens...

@bro345

This comment has been minimized.

Copy link

bro345 commented Aug 16, 2016

do i press command option j at the same time

@Sukrit-Gupta

This comment has been minimized.

Copy link

Sukrit-Gupta commented Aug 19, 2016

Is it possible to write some code so that "red highlighting" of code is turned off at 10fastfingers.com http://j.mp/2b5LU9Z ?

@sascha-meissner

This comment has been minimized.

Copy link

sascha-meissner commented Oct 27, 2016

# Here is an easy & nasty hack :

just open the console on 10fastfingers,

start the game by typing one character into the field

now paste in console:

$.each(words,function(el,i){ user_input_stream+=(' '+i) }); hit enter
user_input_stream = user_input_stream.substr(1,user_input_stream.length); hit enter

and wait until the countdown finishes.
You will get the best possible result ;-)

cheers & if you like easy solutions visit
https://thebridge.digital

@fgtyugjt

This comment has been minimized.

Copy link

fgtyugjt commented Oct 28, 2016

I would love to eat a mac book

@ChazWenham

This comment has been minimized.

Copy link

ChazWenham commented Feb 14, 2017

this makes you get 99wpm so you don't have to do the anticheat test

var word_idx = 0;
var interval_per_word = 620; // in milliseconds
function hackit(){
//if(word_idx<words.length){
if(word_idx < 140){
$('#inputfield').val(words[word_idx] + ' ');
var keyup = jQuery.Event('keyup');
keyup.which = 32;
$('#inputfield').trigger(keyup);
word_idx++;
setTimeout('hackit()', interval_per_word);
}
}
setTimeout('hackit()', interval_per_word);

@ChazWenham

This comment has been minimized.

Copy link

ChazWenham commented Feb 14, 2017

or adjust it from 620 to 650

@Whitewolf4256

This comment has been minimized.

Copy link

Whitewolf4256 commented Oct 28, 2017

Can we get one for writeforme.org?

@personmanguy

This comment has been minimized.

Copy link

personmanguy commented Nov 1, 2017

Can somebody make a version so that the correct words/letters are inputted when I type any key?

@eboyprod7

This comment has been minimized.

Copy link

eboyprod7 commented Dec 15, 2017

var word_idx = 0;
var interval_per_word = 100; // in milliseconds
function hackit(){
//if(word_idx<words.length){
if(word_idx < 50){
$('#inputfield').val(words[word_idx] + ' ');
var keyup = jQuery.Event('keyup');
keyup.which = 32;
$('#inputfield').trigger(keyup);
word_idx++;
setTimeout('hackit()', interval_per_word);
}
}
setTimeout('hackit()', interval_per_word);

That one better

@Cyberspy

This comment has been minimized.

Copy link

Cyberspy commented Apr 11, 2018

Beyond just an exercise in programming, what is the point in this?
Why do any of you need fake typing speed stats?

@johnolek

This comment has been minimized.

Copy link

johnolek commented Jun 8, 2018

I think it's just fun to write these kinds of things.

I made a version that tries to match a targetWpm value. It's pretty verbose because I like it that way.

class TenFastCheater {
  constructor() {
    const spaceEvent = $.Event('keyup')
    spaceEvent.which = 32
    this.spaceEvent = spaceEvent

    this.adjustmentStep = 50
    this.minDelay = 50
    this.randomRange = 10
    this.targetWpm = 157
    this.charactersTyped = 0
    this.startTime = 0

    this.delay = 1 / (this.targetWpm / 60) * 1000
  }

  static currentWordSelector() {
    return 'span.highlight'
  }

  static inputSelector() {
    return '#inputfield'
  }

  static timerSelector() {
    return '#timer'
  }

  currentWord() {
    return $(this.constructor.currentWordSelector()).text()
  }

  currentWordExists() {
    const word = $(this.constructor.currentWordSelector())
    return word.text() !== "" && word.is(':visible')
  }

  pressSpace() {
    $(this.constructor.inputSelector()).trigger(this.spaceEvent);
  }

  typeWord(word) {
    $(this.constructor.inputSelector()).val(word)
    this.pressSpace()
    // Plus one for the space
    this.charactersTyped += word.length + 1
  }

  typeCurrentWord() {
    this.typeWord(this.currentWord())
  }

  nextTimeout() {
    const randomDelay = (Math.random() * this.randomRange * 2) - this.randomRange
    return this.delay + randomDelay
  }

  currentEstimatedWpm() {
    if (this.secondsElapsed() <= 5) {
      return 0;
    }

    return (60 / (this.secondsElapsed()) * this.charactersTyped) / 5
  }

  secondsElapsed() {
    return ((new Date).getTime() - this.startTime) / 1000
  }

  adjustDelay() {
    if (this.currentEstimatedWpm() == 0) {
      return
    }

    const change = this.adjustmentStep

    if (this.currentEstimatedWpm() > this.targetWpm) {
      this.delay += change
    } else if (this.delay - change >= this.minDelay ) {
      this.delay -= change
    }
  }

  cheat() {
    if (this.startTime == 0) {
      this.startTime = (new Date).getTime()
    }
    this.typeCurrentWord()
    if (!this.currentWordExists()) {
      this.reset()
      return
    }
    this.adjustDelay()
    const nextTimeout = this.nextTimeout()
    setTimeout(this.cheat.bind(this), nextTimeout)
  }

  reset() {
    this.startTime = 0
    this.charactersTyped = 0
  }
}

const cheater = new TenFastCheater
cheater.cheat()
@pzychob1tch26

This comment has been minimized.

Copy link

pzychob1tch26 commented Sep 20, 2018

is there any cheat for typingtest.com?I am trying to apply for this transcribing job but cant pass the stupid typing test ,it requires 60 wpm at %90 accuracy

@pxoss

This comment has been minimized.

Copy link

pxoss commented Sep 26, 2018

Is it possible to write some code so that "red highlighting" of code is turned off at 10fastfingers.com http://j.mp/2b5LU9Z ?

nice ip logger man

@awcurlette

This comment has been minimized.

Copy link

awcurlette commented Feb 16, 2019

var word_idx = 0;
var interval_per_word = 150; // in milliseconds
function hackit(){
if(word_idx<words.length){
$('#inputfield').val(words[word_idx] + ' ');
var keyup = jQuery.Event('keyup');
keyup.which = 32;
$('#inputfield').trigger(keyup);
word_idx++;
setTimeout('hackit()', interval_per_word);
}
}
setTimeout('hackit()', interval_per_word);

@buzamahmooza

This comment has been minimized.

Copy link

buzamahmooza commented Mar 22, 2019

Hello all,

  • First of all nice script, I made one where it enters the value but then I had to press space bar for it to go to the next word, so I used AutoHotkey.
  • Anyway, to the main point: I'm trying to make a script that runs for the anticheat page as well, we can use an OCR script to convert the image to text, and then type it (ocrad.js is one example).
    The problem here is that the website gives you a different image every time you request the img.src.
    I'm trying to get around this by capturing the image data using a canvas element, so far I'm having no luck, any ideas?
imageCanvas = (function getSafeImage() {
     const canvas = document.createElement('canvas');
     canvas.getContext('2d').drawImage(img, 0, 0);
     return canvas;
})()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.