Build a Wordle · four systems, one prompt

Build a Wordle — How to Make Your Own Wordle Game (Free, in the Browser)

Make your own build a wordle

Learn how to build a Wordle in minutes. Copy our prompt, get a playable word game you own, and share the link — free, no coding, right in your browser.

✦Game
Make a build a wordle

To build a Wordle you need four things and nothing else: a word list split into valid guesses and answers, a guess validator, a two-pass feedback function, and a share string. Everything else — the tile flip, the on-screen keyboard colouring itself in, the shake on a rejected guess — is styling. The 3D game builder in Neta Studio turns a written description into a playable world in the browser, so the word list and the feedback rule are the only parts you actually have to reason about.

This page gives you the prompt to paste, the two settings to edit before you paste it, and the failure modes that show up in most first attempts: duplicate letters scored twice, answers that stop being hidden because the guess list and answer list were merged, and share strings that no longer line up because the word list changed underneath them. No install, no build step, no framework to pick.

The 4 Systems Every Wordle Clone Needs

Strip the game down and there are four systems. Everything you remember about playing it is presentation sitting on top of these.

Skip the validator and you get broken states instead of bugs you can see: a four-letter submission scored against a five-letter answer, the same row scored twice, a guess accepted after the game already ended. Skip the share string and people screenshot the board, which shows the answer to anyone who has not played yet. None of this is optional, and none of it is the interesting part of the build.

Get these four working with flat coloured tiles first. If you want something other than flat tiles later, Agent Sprite Forge handles the art once the rules are stable — adding art before the scoring is correct just makes the wrong feedback harder to spot.

  • Word list, split in twoOne set of words you may type, one set of words that can be the hidden answer. Two arrays, not one. This split is the difference between a game that feels fair and a game that feels arbitrary.
  • Guess validatorRuns before scoring. Checks the guessed string against WORD_LENGTH, checks it appears in the valid-guess set, checks the current row has not already been submitted, checks the game is not already over. A rejected guess does not consume a row.
  • Two-pass feedback functionTakes the answer and the guess, returns five tile states: exact, present, absent. Scores exact matches first, then near matches from the letters that are left over. This is where most clones break.
  • Share stringA short text block that encodes the result: puzzle id, guess count, and the tile pattern for each row. It carries the outcome without carrying the answer or any of the guessed letters.

Copy This Prompt to Build Your Wordle

Here is the whole build. Paste it into the builder as a single description. It names the constants, both arrays, and the scoring rule in two-pass form, which is the part people usually get wrong when they write their own prompt.

> Build a browser word game: one hidden five-letter word, six guesses. > WORD LIST: an array called ANSWERS containing the five-letter words that can be solutions, and an array called VALID_GUESSES containing every answer plus additional accepted words. Keep them as two separate arrays. > FEEDBACK: after each guess, mark every tile as exact, present, or absent. Score exact matches in a first pass, then score near matches in a second pass using only the answer letters not already consumed by an exact match, so a duplicated letter is never marked present twice. > INPUT: accept a guess only if it is exactly five letters and appears in VALID_GUESSES. A rejected guess does not use a row. > ROWS: six rows. The game ends on the correct answer or after row six, then reveals the answer. > KEYBOARD: an on-screen keyboard showing the best known state per letter, where exact beats present and present beats absent. Support the physical keyboard as well. > SHARE: produce a share string containing the puzzle id, the number of guesses used, and one row per guess rendered with three fixed characters for exact, present, and absent. Include no letters from the guess. > CONSTANTS: WORD_LENGTH = 5 and MAX_GUESSES = 6 at the top of the file.

Two places to edit before you paste. The word lists, where you swap in your own arrays, and MAX_GUESSES, where 4 gives a harder daily and 7 gives a more forgiving one. Leave the rest alone until the board plays correctly end to end.

Set Your Word List (Valid Guesses vs Answers)

A valid guess is any word you agree to accept as input. An answer is any word that can be the hidden word. The guess set is always the larger of the two, often several times larger, and the two are never the same array.

Why the two sets exist at all

The answer set has to contain words people actually know. If an obscure term can be your solution, most players lose to a word they have never seen, and the loss reads as unfair rather than difficult. The guess set has to be permissive, because a player who types a real five-letter word and gets told it is not in the word list stops trusting the input field and stops playing.

So the shapes are different on purpose: a tight answer list and a loose guess list that contains the answer list plus everything else you are willing to accept.

The failure mode when you merge them

Merge the two arrays and one problem shows up immediately while another shows up later. Immediately, the answer pool inherits every abbreviation, tolerated plural, and loanword you allowed for guesses, so puzzles get answers that do not feel like answers.

Later, and worse: if a player can enumerate your answer list, they can beat any puzzle in the same number of guesses by walking the list in order. The answer set stops being hidden information. A merged list is a list a solver already has.

1

01

Start with the answer list: a few thousand common five-letter words, all lowercase, no proper nouns, no abbreviations.

2

02

Build the guess list as answers plus a wider set of accepted words, then deduplicate it.

3

03

Store them separately — two arrays, or two text files loaded into two arrays. Never construct the guess list at runtime in a way that also rewrites the answer list.

4

04

Version the pair together. If you replace the answer list, old share strings still carry puzzle ids that used to map to a specific word.

The Feedback Function, in Two Passes

One pass that asks "does the answer contain this letter?" double counts duplicates. Here is the rule instead of the code.

Order is not a style choice. If you score near matches before exact matches, an earlier present tile can consume the letter that a later tile needs for its exact match, and a green tile turns yellow. That is a visible, reproducible bug and players will report it as one.

The duplicate test that catches it

Guess EERIE against the answer SPEED. The guess has three E tiles. The answer has two E letters. A single-pass containment check marks all three E tiles present. Two passes mark the first two present and the third absent, which is the truth, and that third tile being grey is information the player needs.

Run that pair through your function after every change to the scoring logic. It is the cheapest regression test a word game has.

1

01

Pass one, exact. Walk positions 0 through 4. Where the guessed letter equals the answer letter at the same position, mark that tile exact and remove one copy of that letter from the remaining answer pool.

2

02

Pass two, near. Walk the positions again, skipping tiles already marked exact. If the remaining pool still holds that letter, mark the tile present and remove one copy of it from the pool.

3

03

Everything left unmarked is absent. Absence is the default state, not a third pass over the answer.

4

04

Absence is per tile, not per letter. The same letter can be exact in one position and absent in another within a single guess.

Daily Puzzle or Unlimited Rounds?

Daily mode derives one answer from the date or a seed, so every player gets the same word, and the board locks after a single submission. Unlimited mode starts a fresh board on demand.

These are not two flavours of the same feature. They optimise for different things, and the table is the honest comparison.

Ship both, with daily as the default and unlimited behind a practice button. If you ship daily only, you cannot test your own answer list without editing the date constant, and you will find the unfair answers at the same time your players do.

AspectOne board a dayUnlimited rounds
Puzzle selectionDate or seed picks the answer; every player gets the same wordRandom from the answer list, or the player picks a category you define
Share stringComparable between players, because the answer was identicalNot comparable across players; useful only as a personal result
HabitOne predictable slot pulls players back at the same time each daySession length belongs to the player; no fixed return time
Replay valueLow for a single puzzle, since the board is submitted onceHigh; this is the mode people use to keep playing after the daily
Testing your word listSlow: you have to move the date or seed to see another answerFast: new board on demand, so you can review many answers in a row
Versioning riskHigh: changing the answer list mid-run invalidates existing share stringsLow: a new board does not rewrite anything already shared

Share Your Wordle With a Link

A share string beats a screenshot because it carries the result without giving the answer away. A screenshot shows letters, or shows the answer after a loss, so anyone who has not played that board is spoiled by looking at it. The string carries only the grid: five tiles per row, three states each. It also survives compression and image blocking in group chats, where screenshots often do not.

The world link lets someone play the game. The share string shows how a board went. They are two different pieces of information and should not be merged into one artefact.

What a shared board has to preserve to stay comparable

Two results are only comparable if the string carries the context that made them. Anything missing here turns a comparison into a guess.

1

01

The puzzle id or seed, so both players know the two boards had the same answer.

2

02

The guess count and one row per guess, in order — a 4 out of 6 built three greens then a green is a different board from a 4 out of 6 built from four present tiles, and readers parse the grid.

3

03

A fixed three-character tile encoding, so every row renders at the same width and the grid lines up in a monospace chat.

4

04

A hard-mode flag if you support hard mode. A 4 out of 6 in hard mode is not the same result as a 4 out of 6 in standard, and mixing them makes the string meaningless.

5

05

The dictionary version. If you edit the answer list, a puzzle id that used to mean one word can mean another.

A fixed board, a rule, a score — the shape you are about to build.
Bounded, retryable, describable in one line. That is what makes a daily shareable.

Walk into the world it belongs to

A sprite is a character with nowhere to stand. The last step is the one nobody else offers: take the sheet you just built and put it in a world someone can walk around in — a small island, a planet, a rainy street corner. Every world on this site was made from one written description and published as a page you can play.

FAQ

Can I build a Wordle for free? +

Yes. The builder runs in the browser, so there is nothing to install and no build step to configure. The four systems above are the entire build, and the prompt in this page produces a playable board before you write any rules text yourself.

Do I need to code to build a Wordle? +

No. You write the description and the builder produces the game; you then edit the two arrays and MAX_GUESSES as plain settings. You would only touch logic if you want hard mode, hints, or a scoring rule other than exact and present.

How many words do I need? +

Two lists, not one. A few thousand answers plus a guess list several times larger is a workable shape; below roughly a thousand answers, regular players start seeing repeats. Every entry must be lowercase, exactly five letters, and free of proper nouns.

Can I play my own Wordle? +

Yes. The world is playable as soon as it exists, and unlimited mode is what you use to test it. Before you share anything, play a run of boards and note every answer that felt unfair — those entries are the ones to cut from the answer list.

Can I share it? +

In two pieces, which is deliberate. The world link lets someone play the game, and the share string reports a single result without revealing the answer. Keep the dictionary version inside the string so archived results still make sense after you edit the word list.

How is this different from the games list? +

The games list is finished worlds you open and play — Mini World and The Cyclops' Island are two you can look at to see the shape the builder produces. This is the source instead: you own the word lists, the guess count, and the rules, so you can change how the game feels rather than play someone else's version of it.

Back to the 3D Game Builder

All 31 finished 3D worlds, games and scenes live on one page — every one of them playable.

Platform: Neta StudioPage: Build a WordleRead next: /app/3d-game-builder/games-like-wordle · /explore/tool/daily-word-puzzle · /use-cases/en/wordle-alternatives
×