Run it
Copy the script and paste it into your executor.
()
Players = :()
VirtualInputManager = :()
UserInputService = :()
StarterGui = :()
LogService = :()
HttpService = :()
player = Players.LocalPlayer
playerGui = player:()
CONFIG = {
typingSpeed = ,
minLength = ,
maxLength = ,
idealLength = ,
autoResetTime = ,
wordsPerPage = ,
}
commonWords = {
[] = , [] = , [] = , [] = ,
[] = , [] = , [] = , [] = ,
[] = , [] = , [] = , [] = ,
[] = , [] = , [] = , [] = ,
}
DICTIONARY_URLS = {
,
}
allWords = {}
consoleAutoComplete =
collectedLetters = {}
usedWords = {}
lastWordTime =
topWords = {}
selectedIndex =
currentPage =
screenGui = .()
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.Parent = playerGui
scaleFactor =
marginX, marginY = ,
searchBox = .()
searchBox.Size = .(, * scaleFactor, , * scaleFactor)
searchBox.Position = .(, -*scaleFactor - marginX, , -*scaleFactor - marginY)
searchBox.BackgroundColor3 = .(, , )
searchBox.BorderColor3 = .(, , )
searchBox.BorderSizePixel =
searchBox.TextColor3 = .(, , )
searchBox.PlaceholderText =
searchBox.Font = .Font.GothamBold
searchBox.TextSize = * scaleFactor
searchBox.ClearTextOnFocus =
searchBox.TextEditable =
searchBox.Parent = screenGui
toggleButton = .()
toggleButton.Size = .(, * scaleFactor, , * scaleFactor)
toggleButton.Position = .(, -*scaleFactor - marginX, , -*scaleFactor - marginY)
toggleButton.BackgroundColor3 = .(, , )
toggleButton.BorderColor3 = .(, , )
toggleButton.BorderSizePixel =
toggleButton.TextColor3 = .(, , )
toggleButton.Font = .Font.GothamBold
toggleButton.TextSize = * scaleFactor
toggleButton.Text =
toggleButton.Parent = screenGui
trollButton = .()
trollButton.Size = .(, * scaleFactor, , * scaleFactor)
trollButton.Position = .(, -*scaleFactor - marginX, , -*scaleFactor - marginY)
trollButton.BackgroundColor3 = .(, , )
trollButton.BorderColor3 = .(, , )
trollButton.BorderSizePixel =
trollButton.TextColor3 = .(, , )
trollButton.Font = .Font.GothamBold
trollButton.TextSize = * scaleFactor
trollButton.Text =
trollButton.Parent = screenGui
resetButton = .()
resetButton.Size = .(, * scaleFactor, , * scaleFactor)
resetButton.Position = .(, -*scaleFactor - marginX, , -*scaleFactor - marginY)
resetButton.BackgroundColor3 = .(, , )
resetButton.BorderColor3 = .(, , )
resetButton.BorderSizePixel =
resetButton.TextColor3 = .(, , )
resetButton.Font = .Font.GothamBold
resetButton.TextSize = * scaleFactor
resetButton.Text =
resetButton.Parent = screenGui
resultsFrame = .()
resultsFrame.Size = .(, * scaleFactor, , * scaleFactor)
resultsFrame.Position = .(, -*scaleFactor - marginX, , -*scaleFactor - marginY)
resultsFrame.BackgroundTransparency =
resultsFrame.Parent = screenGui
selectionBox = .()
selectionBox.BackgroundTransparency =
selectionBox.BackgroundColor3 = .(, , )
selectionBox.BorderSizePixel =
selectionBox.Visible =
selectionBox.Parent = resultsFrame
arrowMargin =
leftArrow = .()
leftArrow.Size = .(, *scaleFactor, , *scaleFactor)
leftArrow.Text =
leftArrow.Font = .Font.GothamBold
leftArrow.TextSize = *scaleFactor
leftArrow.BackgroundColor3 = .(,,)
leftArrow.TextColor3 = .(,,)
leftArrow.Parent = screenGui
leftArrow.Position = .(, searchBox.AbsolutePosition.X, , searchBox.AbsolutePosition.Y - *scaleFactor - arrowMargin)
rightArrow = leftArrow:()
rightArrow.Text =
rightArrow.Parent = screenGui
rightArrow.Position = .(, searchBox.AbsolutePosition.X + *scaleFactor, , searchBox.AbsolutePosition.Y - *scaleFactor - arrowMargin)
(message)
(()
StarterGui:(, {
Title = ,
Text = message,
Duration =
})
)
(message)
pattern =
.(message, pattern)
LogService.MessageOut:((message, messageType)
.(message, )
letters = (message)
letters consoleAutoComplete
lastWordTime = ()
.(collectedLetters, letters)
( .. letters)
( .. letters .. )
searchBox.Text = letters
)
.(()
.()
lastWordTime > () - lastWordTime > CONFIG.autoResetTime
usedWords = {}
lastWordTime =
()
()
)
(content)
success, wordsJson = (()
HttpService:(content)
)
success
word, _ (wordsJson)
len = #word
len >= CONFIG.minLength len <= CONFIG.maxLength commonWords[word:()]
.(allWords, word:())
(content)
word content:()
len = #word
len >= CONFIG.minLength len <= CONFIG.maxLength commonWords[word:()]
.(allWords, word:())
#allWords >
()
()
()
i, url (DICTIONARY_URLS)
ok, content = (()
:(url)
)
ok
loaded =
content:()
loaded = (content)
loaded = (content)
loaded
( .. #allWords .. .. i)
searchBox.PlaceholderText =
( .. #allWords .. )
( .. i .. )
()
searchBox.PlaceholderText =
()
(parent, text, size, offsetY)
lbl = .()
lbl.Size = .(, , , size + )
lbl.Position = .(, , , offsetY)
lbl.BackgroundTransparency =
lbl.TextColor3 = .(, , )
lbl.Font = .Font.Arcade
lbl.TextSize = size
lbl.TextStrokeTransparency =
lbl.TextStrokeColor3 = .(, , )
lbl.Text = text
lbl.Parent = parent
lbl
(word, currentInput)
remaining = word:(#currentInput + )
.(()
cam = .CurrentCamera
size = cam.ViewportSize
x, y = size.X/, size.Y/
_ = ,
VirtualInputManager:(x, y, , , , )
.()
VirtualInputManager:(x, y, , , , )
.()
c remaining:():()
VirtualInputManager:(, .KeyCode[c], , )
.(CONFIG.typingSpeed)
VirtualInputManager:(, .KeyCode[c], , )
.()
VirtualInputManager:(, .KeyCode.Return, , )
VirtualInputManager:(, .KeyCode.Return, , )
)
()
_, c (resultsFrame:())
c:() c:()
startIdx = (currentPage-)*CONFIG.wordsPerPage +
endIdx = .(currentPage*CONFIG.wordsPerPage, #topWords)
i = startIdx, endIdx
size = (i == startIdx) *scaleFactor *scaleFactor
offsetY = (i == startIdx) *scaleFactor + (i-startIdx-)**scaleFactor
lbl = (resultsFrame, topWords[i]:(), size, offsetY)
lbl.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
word = topWords[i]
word
usedWords[word] =
( .. word)
(word, searchBox.Text)
searchBox.Text =
selectionBox.Visible =
)
endIdx-startIdx+ >
firstLabel = resultsFrame:()[]
firstLabel firstLabel:()
selectionBox.Position = firstLabel.Position
selectionBox.Size = firstLabel.Size
selectionBox.Visible =
selectionBox.Visible =
(input)
topWords = {}
input = input:()
input ==
selectionBox.Visible =
_, c (resultsFrame:())
c:() c:()
_, w (allWords)
w:(, #input) == input w ~= input usedWords[w]
.(topWords, w)
.(topWords, (a, b)
lenA, lenB = #a, #b
distA = .(lenA - CONFIG.idealLength)
distB = .(lenB - CONFIG.idealLength)
distA == distB
lenA == lenB
a < b
lenA < lenB
distA < distB
)
currentPage =
()
toggleButton.MouseButton1Click:(()
consoleAutoComplete = consoleAutoComplete
consoleAutoComplete
toggleButton.Text =
toggleButton.TextColor3 = .(, , )
toggleButton.BorderColor3 = .(, , )
()
toggleButton.Text =
toggleButton.TextColor3 = .(, , )
toggleButton.BorderColor3 = .(, , )
()
)
trollButton.MouseButton1Click:(()
searchBox.Text ==
()
input = searchBox.Text:()
longWords = {}
_, w (allWords)
w:(, #input) == input usedWords[w] #w >=
.(longWords, w)
#longWords ==
()
.(longWords, (a, b) #a > #b )
trollWord = longWords[]
usedWords[trollWord] =
( .. trollWord:())
(trollWord, searchBox.Text)
searchBox.Text =
)
resetButton.MouseButton1Click:(()
usedWords = {}
lastWordTime =
()
()
)
leftArrow.MouseButton1Click:(()
currentPage >
currentPage = currentPage -
()
)
rightArrow.MouseButton1Click:(()
currentPage < .(#topWords/CONFIG.wordsPerPage)
currentPage = currentPage +
()
)
searchBox.Focused:(()
searchBox.Text =
selectionBox.Visible =
)
searchBox:():(()
(searchBox.Text)
)
.(()
()
()
( .. #allWords .. )
)Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: raw.githubusercontent.com.
Description : Search through a 470,000+ English word dictionary, or let the tool do it for you. Simply enter the starting letters, select a word from the suggestions, and the script will automatically type it for you. ⚠️ Note: This is v1, a polished prototype rather than a final release. A more advanced v2 is currently in development. Features : 🔎 Dictionary search (470k+ English words) ⌨️ Auto-typing selected words 📜 Word succession list 🧠 Used words tracking 🔄 Reset function