TYPER.IO
Home Discuss Hiscores
Discussions

Discussion

got2gofast

IInfiniteWPM·8 months ago

// ==UserScript== // @name typer.io autotyper // @namespace http://tampermonkey.net/ // @version 6.0 // @match *://typer.io/* // @run-at document-start // @grant none // ==/UserScript== (function() { 'use strict'; let liveSocket = null; const OrigWS = window.WebSocket; function getPlayState() { const el = document.querySelector('#input'); if (!el) return null; const fk = Object.keys(el).find(k => k.startsWith('__reactFiber')); let f = el[fk]; while (f) { if (f.type?.name === 'Play') { let s = f.memoizedState, i = 0; while (s) { if (i === 28) return { state: s.memoizedState, dispatch: s.queue.dispatch }; s = s.next; i++; } } f = f.return; } return null; } function ProxiedWS(...args) { const ws = new OrigWS(...args); liveSocket = ws; ws.addEventListener('message', ({ data }) => { if (typeof data !== 'string' || !data.startsWith('42')) return; try { const [event] = JSON.parse(data.slice(2)); if (event === 'START_GAME') { const words = [...document.querySelectorAll('.Gameboard_wrapper__R_X8I')] .map(el => el.innerText.trim()); submitAllWords(words); } } catch(e) {} }); return ws; } ProxiedWS.prototype = OrigWS.prototype; Object.assign(ProxiedWS, OrigWS); window.WebSocket = ProxiedWS; function submitAllWords(words) { const result = getPlayState(); if (!result) return; const { state, dispatch } = result; let current = { ...state }; for (let i = 0; i < words.length; i++) { const remaining = [...current.wordsRemaining]; const completed = remaining.shift(); const next = { ...current, currentInput: '', currentIndex: current.currentIndex + 1, currentWord: current.words[current.currentIndex + 1] || '', wordsRemaining: remaining, wordsComplete: [...(current.wordsComplete || []), completed] }; dispatch(next); const en = current.words[current.currentIndex].length + 1; liveSocket.send('42["CLIENT_UPDATE","' + btoa(JSON.stringify({ er: 0, en })) + '"]'); current = next; } } })(); CALIBRATING WPM IS AN EXERCISE LEFT TO THE READER -Halokonkaku

9 comments · last comment 8 months ago

9 comments

I
InfiniteWPM· 8 months ago

Halocankau

I
InfiniteWPM· 8 months ago

Halakanaka

I
InfiniteWPM· 8 months ago

Hakolokona

I
InfiniteWPM· 8 months ago

for scientific purposes only cheating is bad mm'kay

N
NOT_A_LEMONADE· 8 months ago

I think you meant "Educational Purposes Only"

J
Jackpot· 8 months ago

gng what is this bro -_-

H
Halokankaku· 8 months ago

What did I do bro

J
Jackpot· 8 months ago

idk what u did but I guess u did something bad cause he misspelled ur name 3 times idiot bro.

N
NOT_A_LEMONADE· 8 months ago

🤣🤣🤣

More discussions

  • JJdyn Creator · 7 hours ago
    I've rebuilt Typer from scratch
    2
  • Llament · 1 month ago
    I find it frustrating on how there are a lot of rude people on here..
    7
  • CCL1PP3D · 2 days ago
    Hello from NZ say hello from your country
    0
  • IIShowSlow · 4 days ago
    What are ways to not make mistakes while typing fast?
    3
All discussions

Discord

Chat with other racers, report bugs and suggest what we build next.

Join the Discord
TYPER.IO

© 2026 Typer.io · made by Jaden

Race

  • Quick Play
  • Solo
  • Private lobby

Community

  • Discussions
  • Hiscores
  • Discord

Account

  • Log in
  • Sign up
  • Forgot password