local adjust_typing_speed = 0.1 --adjust typing speed here local vim = game:GetService("VirtualInputManager") local keyMap = { [" "] = "Space", ["!"] = { key = "1", shift = true }, ["@"] = { key = "2", shift = true }, ["#"] = { key = "3", shift = true }, ["$"] = { key = "4", shift = true }, ["%"] = { key = "5", shift = true }, ["^"] = { key = "6", shift = true }, ["&"] = { key = "7", shift = true }, ["*"] = { key = "8", shift = true }, ["("] = { key = "9", shift = true }, [")"] = { key = "0", shift = true }, ["-"] = { key = "Minus", shift = false }, ["_"] = { key = "Minus", shift = true }, ["="] = { key = "Equals", shift = false }, ["+"] = { key = "Equals", shift = true }, ["["] = { key = "LeftBracket", shift = false }, ["{"] = { key = "LeftBracket", shift = true }, ["]"] = { key = "RightBracket", shift = false }, ["}"] = { key = "RightBracket", shift = true }, ["\\"] = { key = "BackSlash", shift = false }, ["|"] = { key = "BackSlash", shift = true }, [";"] = { key = "Semicolon", shift = false }, [":"] = { key = "Semicolon", shift = true }, ["'"] = { key = "Quote", shift = false }, ['"'] = { key = "Quote", shift = true }, [","] = { key = "Comma", shift = false }, ["<"] = { key = "Comma", shift = true }, ["."] = { key = "Period", shift = false }, [">"] = { key = "Period", shift = true }, ["/"] = { key = "Slash", shift = false }, ["?"] = { key = "Slash", shift = true }, ["`"] = { key = "GraveAccent", shift = false }, ["~"] = { key = "GraveAccent", shift = true }, } local function sendKey(char) local mapping = keyMap[char] if mapping then if type(mapping) == "table" then if mapping.shift then vim:SendKeyEvent(true, "Shift", false, game) task.wait(0.02) vim:SendKeyEvent(true, mapping.key, false, game) vim:SendKeyEvent(false, mapping.key, false, game) vim:SendKeyEvent(false, "Shift", false, game) else vim:SendKeyEvent(true, mapping.key, false, game) vim:SendKeyEvent(false, mapping.key, false, game) end else vim:SendKeyEvent(true, mapping, false, game) vim:SendKeyEvent(false, mapping, false, game) end else local upperChar = string.upper(char) pcall(function() vim:SendKeyEvent(true, upperChar, false, game) vim:SendKeyEvent(false, upperChar, false, game) end) end end for i, v in pairs(workspace.Tracks.Negative:GetChildren()) do local firstChild = v:FindFirstChild("1") if firstChild then local testCharacters = firstChild.TestCharacters:GetChildren() table.sort(testCharacters, function(a, b) return tonumber(a.Name) < tonumber(b.Name) end) for i, child in ipairs(testCharacters) do local text = tostring(child.SurfaceGui.TextLabel.Text) --print(tostring(child.SurfaceGui.Parent) .. ": " .. text) task.wait(adjust_typing_speed) sendKey(text) end end end