Auto typer
Key Required Verified

Auto typer

Type Race!CraXCraX 102.5K views 980 executesUpdated Aug 2, 2022
4.0/ 5(5 votes)
4180% Positive
Lua Script•37 lines (2191 chars)
_G.wpmlimit = 201 -- Max WPM you can hit, will start stuttering at this limit
_G.keydelay = 0.0525 -- Delay between keys to seem more legit. 0.075 ~ 144wpm

local vim = game:GetService("VirtualInputManager") -- I specifically did this bc keypress used only VK bytecodes
-- Interpreting straight letter to VIM seems to be faster than using VK, and it works without needing game focus

---- vvvvv I DID NOT MAKE ANYTHING IN THIS SECTION vvvvv ----
local function findLetterTable()
for i,obj in pairs( getgc() ) do
if type(obj) == "function" and getfenv(obj).script == game:GetService("Players").LocalPlayer.PlayerGui.LocalMain then
local consts=debug.getconstants(obj)
if consts[8]=="idXTO3JVlV0CBTmiSbaQ" then
--local tab=debug.getupvalue(obj,4)
return debug.getupvalue(obj,4) -- FULL CREDIT TO IDoN0t ON V3RM FOR THIS THING [showthread.php?tid=1140292]
end end end end -- I have no idea what's going on in this thing, other than just raw letters come out of it
---- ^^^^^ I DID NOT MAKE ANYTHING IN THIS SECTION ^^^^^ ----

local descendants = findLetterTable()
for index, descendant in pairs(descendants) do
    if string.upper(descendant) ~= " " then -- Remnant of an old method of getting letters
        local key = Enum.KeyCode[string.upper(descendant)]
        vim:SendKeyEvent(1,key,0,nil)
        vim:SendKeyEvent(0,key,0,nil) 
        else
        vim:SendKeyEvent(1,32,0,nil) -- This is how I used to interpret spaces safely
        vim:SendKeyEvent(0,32,0,nil) -- It's crusty, but it works
        end
    while tonumber(game.Players.LocalPlayer.PlayerGui.ScreenGui.Main.RaceScreen.LiveStats.WPM.Stat.Text) > _G.wpmlimit do
    task.wait() -- This section hard limits at the set WPM cap. Should this also be keydelay so it's less jittery/stuttery?
    end
    wait(_G.keydelay)
    if game.Workspace:FindFirstChild("Doll") then -- To avoid bugs with non RLGL modes
        while game:GetService("SoundService").DollSaying.TimePosition > 5 or game:GetService("SoundService").DollSaying.TimePosition <= 0 do
            task.wait() -- I encourage experimenting with the timepos to squeeze the most out of the time you have. 5 is the highest it's reliable at.
        end
    end
end

Features & Information

Credit to IDoN0t on v3rm for the section that finds which letters to type. This wouldn't be possible without it. Customisable WPM cap (to avoid triggering the anticheat) and customisable key delay (to make it seem more legit) -- Try to avoid going too high, as the game does have a very basic anticheat in place. I am unsure what the hard limit for the anticheat is, but it does permaban if you go too high. How to use: Execute when the round starts (NOT before it starts, as it starts typing immediately and will just start typing the wrong letters/be out of sync)
#auto#type race#automatic#typer

Community Comments (8)

FascinatingFascinatingAug 2, 2022(edited)

below 400 is fine ig, got banned at 401 words 0.00075 sec

LuckyDuckLuckyDuckAug 2, 2022(edited)

uwu

FliqpyFliqpyAug 3, 2022(edited)

Hey, what is a legit setting

ForeverekkForeverekkAug 13, 2022(edited)

nice

tyroxgaming03tyroxgaming03Aug 30, 2022(edited)

I love it (:

KrzysztofkwiatkowskKrzysztofkwiatkowskSep 30, 2024(edited)

How to use the script, like. how to use it? i executed it and it doesnt work, can you make me a setting?

Replying to @Krzysztofkwiatkowsk
CONVICTEDXCONVICTEDXSep 5, 2025

@Krzysztofkwiatkowsk the script hasn't been updated since 3 years ago it does not work anymore

zosynzosynOct 5, 2026

looks like its viewbotted

More Scripts for Type Race!