
Key Required
OP script
Lua Script•231 lines (5356 chars)
-- [ open source since some retard is probaly going to deobfuscate it and it took 10 minutes to make ] --
local all_words_http = game:HttpGet("https://raw.githubusercontent.com/forgebin/roblox/main/wordlewords.txt")
-- there are tons of bugs inside of the god damn list the game uses.
local wordle_words = {}
for _, v in pairs(all_words_http:split(" ")) do
if #v == 5 then
table.insert(wordle_words, v)
end
end
warn("Words added.", #wordle_words)
local transform = {
["Bright green"] = "Correct letter!",
["Dark Curry"] = "Correct letter but in the wrong place!",
["Medium brown"] = "Not correct, not in the word."
}
local Words_Frame = game.Players.LocalPlayer.PlayerGui.ScreenGui.Words
local game_words = {}
local function get_word_answer(index)
local ret = {}
for _, v in pairs(Words_Frame:FindFirstChild(tostring(index)):GetChildren()) do
if v:IsA("Frame") then
local gradient = v["Frame"]
table.insert(ret, BrickColor.new(gradient.BackgroundColor3))
end
end
return ret
end
local function calculate_word_score(word, feedback)
local score = 0
local letter_counts = {}
for i = 1, #word do
local letter = word:sub(i, i)
letter_counts[letter] = (letter_counts[letter] or 0) + 1
if feedback[i] == BrickColor.new("Bright green") then
score = score + 3
elseif feedback[i] == BrickColor.new("Dark Curry") then
score = score + 2
elseif feedback[i] == BrickColor.new("Medium brown") then
score = score - 1
end
end
-- MURICA (FUCK YEAH!)
score = score + (#word - #letter_counts)
return score
end
local function filter_words(words, guess, feedback)
local filtered = {}
local must_contain = {}
local must_not_contain = {}
local exact_positions = {}
for i = 1, #guess do
local letter = guess:sub(i, i)
if feedback[i] == BrickColor.new("Bright green") then
exact_positions[i] = letter
must_contain[letter] = (must_contain[letter] or 0) + 1
elseif feedback[i] == BrickColor.new("Dark Curry") then
must_contain[letter] = (must_contain[letter] or 0) + 1
elseif feedback[i] == BrickColor.new("Medium brown") then
if not must_contain[letter] then
must_not_contain[letter] = true
end
end
end
for _, word in ipairs(words) do
local match = true
local letter_counts = {}
for i = 1, #word do
local letter = word:sub(i, i)
letter_counts[letter] = (letter_counts[letter] or 0) + 1
if exact_positions[i] and letter ~= exact_positions[i] then
match = false
break
end
end
if match then
for letter, count in pairs(must_contain) do
if (letter_counts[letter] or 0) < count then
match = false
break
end
end
end
if match then
for letter in pairs(must_not_contain) do
if letter_counts[letter] and letter_counts[letter] > (must_contain[letter] or 0) then
match = false
break
end
end
end
if match then
table.insert(filtered, word)
end
end
return filtered
end
local function count_unique_letters(word)
local unique = {}
for i = 1, #word do
unique[word:sub(i,i)] = true
end
return #unique
end
local function calculate_letter_frequency(words)
local freq = {}
for _, word in ipairs(words) do
for i = 1, #word do
local letter = word:sub(i,i)
freq[letter] = (freq[letter] or 0) + 1
end
end
return freq
end
local function choose_next_word(words, previous_guesses, turn)
local letter_freq = calculate_letter_frequency(words)
local best_word = nil
local best_score = -math.huge
for _, word in ipairs(words) do
local is_previous_guess = false
for _, prev_guess in ipairs(previous_guesses) do
if word == prev_guess then
is_previous_guess = true
break
end
end
if not is_previous_guess then
local score = 0
score = score + count_unique_letters(word) * 10
for i = 1, #word do
local letter = word:sub(i,i)
score = score + (letter_freq[letter] or 0)
end
local letter_count = {}
for i = 1, #word do
local letter = word:sub(i,i)
letter_count[letter] = (letter_count[letter] or 0) + 1
if letter_count[letter] > 1 then
score = score - 5
end
end
if turn <= 2 then
local common_letters = {a=1, e=1, i=1, o=1, u=1, r=1, s=1, t=1, l=1, n=1}
for letter in word:gmatch(".") do
if common_letters[letter] then
score = score + 5
end
end
end
if score > best_score then
best_word = word
best_score = score
end
end
end
return best_word
end
local function input_guess(guess)
for i = 1, #guess do
local letter = guess:sub(i, i):upper()
keypress(Enum.KeyCode[letter])
task.wait(0.1)
keyrelease(Enum.KeyCode[letter])
task.wait(0.1)
end
keypress(Enum.KeyCode.Return)
task.wait(0.1)
keyrelease(Enum.KeyCode.Return)
end
local function play_wordle()
local possible_words = wordle_words
local guesses = {}
for turn = 1, 6 do
local guess = choose_next_word(possible_words, guesses, turn)
table.insert(guesses, guess)
input_guess(guess)
task.wait(1)
local feedback = get_word_answer(turn)
local all_correct = true
for _, color in ipairs(feedback) do
if color ~= BrickColor.new("Bright green") then
all_correct = false
break
end
end
if #feedback == 5 and all_correct then
print("Word guessed correctly:", guess)
return
end
possible_words = filter_words(possible_words, guess, feedback)
end
end
play_wordle()Features & Information
op auto type

works perfectly fine using solara
I miss ur chess auto play script.. I hope you'll get back developing that script
@sophiasmith3718 thank you for your support, but i don't think chess auto play will be released until i find a good obfuscator and when actual good executors come out so i can give the best performance.
@tigak that script was perfect man :( I really enjoy using the script because I beated all of my opponent.
@tigak did your server disband?