Spelling Race Script (November 2026) – Auto Guess

PUBLISHEDUPDATED
1 Available ScriptFree

Typing out words as fast as you can gets tiring after a while, which is why using a Spelling Race script makes things way easier.

Show off your spelling skills by answering quickly to earn blocks and beat everyone else to the finish line.

Check out the working code below to get started.

Spelling Race Script – Auto Guess & More

Auto Guess & MoreFree
Auto GuessNotification System
if game.PlaceId == 74779072921656 then
    local settings = {
        AutoGuess = true,
        totalTypingDelay = 1.7
    }

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local Players = game:GetService("Players")
    local SoundService = game:GetService("SoundService")
    local LocalPlayer = Players.LocalPlayer

    local TweenService = game:GetService("TweenService")
    local CoreGui = game:GetService("CoreGui")

    local EntropyGui = Instance.new("ScreenGui")
    EntropyGui.Name = "EntropyScript"
    EntropyGui.ResetOnSpawn = false
    EntropyGui.DisplayOrder = 999

    pcall(function()
        EntropyGui.Parent = CoreGui
    end)
    if not EntropyGui.Parent then
        EntropyGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
    end

    local uiScale = Instance.new("UIScale")
    uiScale.Parent = EntropyGui

    local function updateUIScale()
        local viewportSize = workspace.CurrentCamera and workspace.CurrentCamera.ViewportSize or Vector2.new(1920, 1080)
        if viewportSize.X < 800 then
            uiScale.Scale = 0.85
        else
            uiScale.Scale = 1
        end
    end

    if workspace.CurrentCamera then
        workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(updateUIScale)
        updateUIScale()
    end

    local successId, userId = pcall(function()
        return Players:GetUserIdFromNameAsync("Clockzoos")
    end)
    if not successId then userId = 1 end

    local avatarUrl = "https://roblox.com"..tostring(userId).."&width=150&height=150&format=png"
    pcall(function()
        avatarUrl = Players:GetUserThumbnailAsync(userId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size150x150)
    end)

    local activeNotifications = {}

    local function RepositionNotifications()
        for index, frame in ipairs(activeNotifications) do
            local offset = (index - 1) * 60 
            local targetY = 0.08
            
            TweenService:Create(frame, TweenInfo.new(0.3, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {
                Position = UDim2.new(0.98, 0, targetY, offset)
            }):Play()
        end
    end

    local function Notify(titleText, descText, duration)
        titleText = titleText or "Entropy Hub"
        descText = descText or "Notification"
        duration = duration or 5

        local EntropyFrame = Instance.new("Frame")
        EntropyFrame.Name = "EntropyFrame"
        EntropyFrame.Size = UDim2.new(0, 260, 0, 54)
        EntropyFrame.AnchorPoint = Vector2.new(1, 0)
        EntropyFrame.Position = UDim2.new(0.98, 0, -0.2, 0)
        EntropyFrame.BackgroundColor3 = Color3.fromRGB(20, 15, 30)
        EntropyFrame.BackgroundTransparency = 1
        EntropyFrame.ClipsDescendants = true
        EntropyFrame.Parent = EntropyGui

        local EntropyCorner = Instance.new("UICorner")
        EntropyCorner.CornerRadius = UDim.new(0, 27)
        EntropyCorner.Parent = EntropyFrame

        local EntropyStroke = Instance.new("UIStroke")
        EntropyStroke.Color = Color3.fromRGB(130, 50, 200)
        EntropyStroke.Thickness = 1.5
        EntropyStroke.Transparency = 1
        EntropyStroke.Parent = EntropyFrame

        local EntropyAvatar = Instance.new("ImageLabel")
        EntropyAvatar.Size = UDim2.new(0, 36, 0, 36)
        EntropyAvatar.Position = UDim2.new(0, 10, 0, 9)
        EntropyAvatar.BackgroundTransparency = 1
        EntropyAvatar.Image = avatarUrl
        EntropyAvatar.ImageTransparency = 1
        EntropyAvatar.Parent = EntropyFrame

        local EntropyAvatarCorner = Instance.new("UICorner")
        EntropyAvatarCorner.CornerRadius = UDim.new(1, 0)
        EntropyAvatarCorner.Parent = EntropyAvatar

        local EntropyTitleLabel = Instance.new("TextLabel")
        EntropyTitleLabel.Size = UDim2.new(1, -65, 0, 16)
        EntropyTitleLabel.Position = UDim2.new(0, 56, 0, 11)
        EntropyTitleLabel.BackgroundTransparency = 1
        EntropyTitleLabel.Font = Enum.Font.GothamBold
        EntropyTitleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
        EntropyTitleLabel.TextSize = 12
        EntropyTitleLabel.Text = titleText
        EntropyTitleLabel.TextXAlignment = Enum.TextXAlignment.Left
        EntropyTitleLabel.TextTransparency = 1
        EntropyTitleLabel.Parent = EntropyFrame

        local EntropyTextLabel = Instance.new("TextLabel")
        EntropyTextLabel.Size = UDim2.new(1, -65, 0, 16)
        EntropyTextLabel.Position = UDim2.new(0, 56, 0, 27)
        EntropyTextLabel.BackgroundTransparency = 1
        EntropyTextLabel.Font = Enum.Font.GothamMedium
        EntropyTextLabel.TextColor3 = Color3.fromRGB(180, 160, 200)
        EntropyTextLabel.TextSize = 11
        EntropyTextLabel.Text = descText
        EntropyTextLabel.TextXAlignment = Enum.TextXAlignment.Left
        EntropyTextLabel.TextTransparency = 1
        EntropyTextLabel.Parent = EntropyFrame

        local EntropyProgressBar = Instance.new("Frame")
        EntropyProgressBar.Size = UDim2.new(1, -40, 0, 2)
        EntropyProgressBar.Position = UDim2.new(0, 20, 1, -4)
        EntropyProgressBar.BackgroundColor3 = Color3.fromRGB(160, 32, 240)
        EntropyProgressBar.BackgroundTransparency = 1
        EntropyProgressBar.BorderSizePixel = 0
        EntropyProgressBar.Parent = EntropyFrame

        table.insert(activeNotifications, 1, EntropyFrame)
        RepositionNotifications()

        local tweenInfo = TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.Out)
        TweenService:Create(EntropyFrame, tweenInfo, {BackgroundTransparency = 0.15}):Play()
        TweenService:Create(EntropyStroke, tweenInfo, {Transparency = 0}):Play()
        TweenService:Create(EntropyAvatar, tweenInfo, {ImageTransparency = 0}):Play()
        TweenService:Create(EntropyTitleLabel, tweenInfo, {TextTransparency = 0}):Play()
        TweenService:Create(EntropyTextLabel, tweenInfo, {TextTransparency = 0}):Play()
        TweenService:Create(EntropyProgressBar, tweenInfo, {BackgroundTransparency = 0}):Play()

        local progressTween = TweenService:Create(EntropyProgressBar, TweenInfo.new(duration, Enum.EasingStyle.Linear), {Size = UDim2.new(0, 0, 0, 2)})
        progressTween:Play()

        task.delay(duration, function()
            local idx = table.find(activeNotifications, EntropyFrame)
            if idx then
                table.remove(activeNotifications, idx)
            end
            RepositionNotifications()

            local fadeOutInfo = TweenInfo.new(0.4, Enum.EasingStyle.Quint, Enum.EasingDirection.In)
            local fadeOut = TweenService:Create(EntropyFrame, fadeOutInfo, {BackgroundTransparency = 1})
            TweenService:Create(EntropyStroke, fadeOutInfo, {Transparency = 1}):Play()
            TweenService:Create(EntropyAvatar, fadeOutInfo, {ImageTransparency = 1}):Play()
            TweenService:Create(EntropyTitleLabel, fadeOutInfo, {TextTransparency = 1}):Play()
            TweenService:Create(EntropyTextLabel, fadeOutInfo, {TextTransparency = 1}):Play()
            TweenService:Create(EntropyProgressBar, fadeOutInfo, {BackgroundTransparency = 1}):Play()
            
            fadeOut:Play()
            fadeOut.Completed:Connect(function()
                EntropyFrame:Destroy()
            end)
        end)
    end

    local ToggleButton = Instance.new("TextButton")
    ToggleButton.Name = "AutoAnswerToggle"
    ToggleButton.Size = UDim2.new(0, 140, 0, 35)
    ToggleButton.Position = UDim2.new(0, 15, 0, 15)
    ToggleButton.BackgroundColor3 = Color3.fromRGB(30, 20, 45)
    ToggleButton.TextColor3 = Color3.fromRGB(0, 255, 120)
    ToggleButton.Font = Enum.Font.GothamBold
    ToggleButton.TextSize = 12
    ToggleButton.Text = "Auto Answer: ON"
    ToggleButton.Parent = EntropyGui

    local ToggleCorner = Instance.new("UICorner")
    ToggleCorner.CornerRadius = UDim.new(0, 8)
    ToggleCorner.Parent = ToggleButton

    local ToggleStroke = Instance.new("UIStroke")
    ToggleStroke.Color = Color3.fromRGB(130, 50, 200)
    ToggleStroke.Thickness = 1.5
    ToggleStroke.Parent = ToggleButton

    ToggleButton.MouseButton1Click:Connect(function()
        settings.AutoGuess = not settings.AutoGuess
        if settings.AutoGuess then
            ToggleButton.TextColor3 = Color3.fromRGB(0, 255, 120)
            ToggleButton.Text = "Auto Answer: ON"
            Notify("Entropy Hub", "Auto Answer Enabled", 2)
        else
            ToggleButton.TextColor3 = Color3.fromRGB(255, 80, 80)
            ToggleButton.Text = "Auto Answer: OFF"
            Notify("Entropy Hub", "Auto Answer Disabled", 2)
        end
    end)

    local data = ReplicatedStorage:FindFirstChild("Modules") and ReplicatedStorage.Modules:FindFirstChild("Data")
    local worddata = {}

    if data then
        for _, v in ipairs(data:GetChildren()) do
            if v.Name:find("WordData") then
                table.insert(worddata, v)
            end
        end
    end

    local soundToWordMap = {}
    local function loadWordDatabase()
        for _, v in ipairs(worddata) do
            local success, wordModule = pcall(function()
                return require(v)
            end)
            if success and wordModule then
                for dificulty, difidata in pairs(wordModule) do
                    for _, wrddata in ipairs(difidata) do
                        if wrddata.id and wrddata.word then
                            soundToWordMap[wrddata.id] = wrddata.word
                        end
                    end
                end
            end
        end
    end
    loadWordDatabase()

    local function executeAutoSpell(word)
        if not word or word == "" then return end
        
        Notify("Entropy Hub", "The Words: " .. word, 4)

        local remotes = ReplicatedStorage:FindFirstChild("Remotes")
        local submitAnswer = remotes and remotes:FindFirstChild("SubmissionLabelClient")

        if settings.AutoGuess then
            task.spawn(function()
                local cur = ""
                local letters = string.split(word, "")
                local letterCount = #letters
                local delayPerLetter = settings.totalTypingDelay / math.max(letterCount, 1)
                
                task.wait(0.2)

                local remotesFolder = ReplicatedStorage:FindFirstChild("Remotes")
                local submitAnswerRemote = remotesFolder and remotesFolder:FindFirstChild("SubmitAnswer")

                if submitAnswerRemote then
                    for _, l in ipairs(letters) do
                        cur = cur .. l
                        task.wait(delayPerLetter)
                        
                        pcall(function()
                            submitAnswerRemote:FireServer("Type", cur)
                        end)
                    end

                    task.wait(0.1)
                    pcall(function()
                        submitAnswerRemote:FireServer("Submit", word)
                    end)
                end
            end)
        end
    end

    local lastTriggeredId = nil
    local lastTriggerTime = 0

    task.spawn(function()
        while true do
            for _, obj in ipairs(SoundService:GetDescendants()) do
                if obj:IsA("Sound") and obj.Name == "WordSound_Normal" then
                    if obj.IsPlaying and soundToWordMap[obj.SoundId] then
                        local foundWord = soundToWordMap[obj.SoundId]
                        local currentTime = tick()

                        if obj.SoundId ~= lastTriggeredId or (currentTime - lastTriggerTime > 1.5) then
                            lastTriggeredId = obj.SoundId
                            lastTriggerTime = currentTime
                            
                            executeAutoSpell(foundWord)
                        end
                    end
                end
            end
            task.wait(0.05)
        end
    end)

    print("Entropy Script Started")
else
    game:GetService("Players").LocalPlayer:Kick("Game is not supported by this script.")
end
Executor compatibility changes over time. Check current reports before testing.

Copy the code above into a compatible Roblox script executor if you choose to test it.

Spelling Race Script Status

✓AvailabilityFree
$Price$0
◫CompatibilityDesktop & Mobile
★SafetyVerified

Roblox and game updates can affect compatibility, so the script’s status should be treated as temporary rather than guaranteed.

Frequently Asked Questions

What is a Spelling Race script?

A Spelling Race script is third-party Lua code intended to run alongside the Roblox game through a compatible script executor.

What features does this Spelling Race script include?

Different scripts contain different code. This version includes: Auto Guess, Notification System.

How do you use the Spelling Race script?

Pick a compatible executor such as Hydrogen, MacSploit, AWP.GG, Delta, Fluxus, Codex, launch Roblox and join the game, copy the complete Lua code from the script card above, paste it into the executor’s editor, and click Run or Execute. Compatibility changes over time, so a name here doesn’t guarantee current support.

Can a Spelling Race script get your Roblox account banned?

Yes. Third-party scripts can violate Roblox rules and may put an account at risk. Only use code from a source you trust, never enter your Roblox password into a script or executor, and test on an alternate account first.

Does the Spelling Race script work on mobile?

Check whether both the executor and the script support your device and the current Roblox version. Mobile executor support does not guarantee that every script will work.

Check out our Roblox Scripts hub and Roblox Games Directory for more.

Leave a Comment