> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livehub.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# Chatexto

> Guess the secret word by semantic closeness

<Info>**Category:** Word · **Players:** free-for-all (no elimination) · **Status:** Stable</Info>

The host picks a secret word. Chat guesses words, and each guess is scored by
how **semantically close** it is to the secret — rank 1 is the word itself,
higher ranks are further away. The first person to land rank 1 wins.

<Frame caption="Chatexto running live on stream">
  <img src="https://mintcdn.com/livehub/3raAYvXUvtRals_D/images/games/chatexto-live.webp?fit=max&auto=format&n=3raAYvXUvtRals_D&q=85&s=27f2a9687f8ff4f922a0f4da7c5fc848" alt="The Chatexto game screen: a closest-guess hero, a live ladder of ranked guesses, and a points leaderboard" width="2290" height="1914" data-path="images/games/chatexto-live.webp" />
</Frame>

## Gameplay

<Steps>
  <Step title="Guess words">
    Type a single word (letters only, at least two characters). Each new word
    is placed on a closeness ladder by its rank; the closer it is, the hotter
    it glows.
  </Step>

  <Step title="Read the heat">
    A low rank (e.g. #3) means you're very close; a high rank (e.g. #1340) is
    cold. Use everyone's guesses to triangulate toward the secret.
  </Step>

  <Step title="Solve it">
    The first person to type the exact secret word (rank 1) wins and ends the
    round. The host can also reveal early to settle on points.
  </Step>
</Steps>

Each unique word is scored once — the first person to play it claims it, and
inflections (plurals, tenses) resolve to their base word. Late joiners are
welcome any time; their first guess opts them in.

## How closeness works

Chatexto ranks every word in its dictionary by how close it is *in meaning* to
the secret word, then tells you where your guess landed. Rank 1 is the secret
itself; rank 500 is the 500th-closest word.

* **Meaning, not spelling.** Words are compared using *word embeddings* — each
  word is a point in a high-dimensional “meaning space” learned from how words
  are used together. “King” sits near “queen” and “throne,” far from “banana.”
  So `sunrise` scores well for a secret of `dawn` even though they share no
  letters.
* **Your rank is a position.** The game sorts the entire dictionary by
  closeness to the secret and reads off where your word falls. A low rank means
  you're closing in; a high rank means you're cold.
* **Heat.** The board groups guesses into close / mid / far bands so the room
  can see how warm the field is at a glance. Milestone ranks are worth chasing:
  the top 100, the top 10, the top 3, and the solve at rank 1.
* **Word forms don't matter.** Plurals and tenses fold to their base word
  (`movies` → `movie`, `tried` → `try`, `racing` → `race`), so you're never
  penalized for how you typed it.
* **One claim per word.** The first person to play a word claims its rank;
  repeats — or a different form of the same word — don't score again. Reading
  the top guess off the screen and retyping it won't put you on the board.
* **Off-dictionary guesses.** A word the game doesn't know simply doesn't rank
  (it shows as “not a word”). The host's secret is checked when the round is
  created, so it's always a word the game can rank.

<Note>
  Under the hood, each word is a 300-dimension vector, and closeness is cosine
  similarity after an *All-but-the-Top* correction (Mu & Viswanath, 2018) that
  strips the few dominant directions shared by every word — so ranks reflect
  real differences in meaning rather than how common a word is.
</Note>

## Configuration

| Option          | Values                                                          | Default                   |
| --------------- | --------------------------------------------------------------- | ------------------------- |
| **Theme**       | a curated word category, or **Custom** (host supplies the word) | Random theme              |
| **Secret word** | any in-vocabulary English word — overrides the theme            | From the theme            |
| **Winner mode** | `most_points`, `final_guess`                                    | `most_points`             |
| **Reveal gift** | a TikTok gift that unlocks letters                              | Galaxy · clear to disable |

**Theme.** Chatexto draws the secret from a curated word category, so guesses
stay on-topic. Leave it on **Random** to let the game pick a theme (and word)
for you, or choose **Custom** and set your own word below.

**Secret word.** Optional — type any in-vocabulary English word to override the
theme and play that exact word. It's checked when the round is created; an
unknown word is rejected so you can pick another. Leave it blank to use the
theme.

**Winner mode.** Decides how a round is scored and who's crowned:

* **most\_points** (default) — every accepted guess scores by rank tier (see
  Scoring below). A rank-1 guess still ends the round and banks 100
  for the solver, but the highest total takes the crown, so a prolific guesser
  can edge out the solver. The host can also **reveal early** to settle on
  points before anyone solves it.
* **final\_guess** — the first person to type the exact word wins outright and
  the round ends immediately.

**Reveal gift.** An optional, cooperative hint gift — prefilled with **Galaxy**,
or clear it to turn hints off. When set, sends of that gift uncover letters for
the whole room; see [Gifts](#gifts) for the amounts and caps.

## Layout

<Frame caption="Chatexto — play surface">
  <img className="block dark:hidden" src="https://mintcdn.com/livehub/tLM5hObS9SSBWuYJ/images/games/chatexto.svg?fit=max&auto=format&n=tLM5hObS9SSBWuYJ&q=85&s=faf95aae7b4e8fc8eb041062717eeccf" alt="Labeled layout of the Chatexto play surface" width="860" height="480" data-path="images/games/chatexto.svg" />

  <img className="hidden dark:block" src="https://mintcdn.com/livehub/tLM5hObS9SSBWuYJ/images/games/chatexto-dark.svg?fit=max&auto=format&n=tLM5hObS9SSBWuYJ&q=85&s=36e84c89d307fdc54143c137cf769e7f" alt="Labeled layout of the Chatexto play surface" width="860" height="480" data-path="images/games/chatexto-dark.svg" />
</Frame>

1. **Marquee** — game title and how-to hint.
2. **Heat tiles** — counts of close / mid / far guesses so far.
3. **Gift strip** — which gift reveals letters and by how much (when configured).
4. **Revealed letters** — letters unlocked by gifts, listed without positions.
5. **Closest-guess hero** — the current best guess, with its rank and heat bar.
6. **Closest-guess ladder** — recent guesses sorted by rank, colored by heat.
7. **Recent attempts** — every guess in arrival order, including duplicates and non-words.
8. **Leaderboard** — top players by points (or best rank in final-guess mode).

The game moves through **Lobby → Loading → Playing → Finished**.

## Gifts

Chatexto's gift is a **cooperative hint** — it helps the whole room and can
never hand anyone the win. It's set by the **Reveal gift** option (Galaxy by
default; clear it to turn hints off).

* **Each send reveals about 10% of the letters** (always at least one), at
  **random positions** — so a hint suggests the word's shape without spelling
  it out from the front.
* **Every send is equal.** One send reveals the same \~10% no matter which gift
  you pick or how many diamonds it's worth. Progress comes from how *often* the
  gift is sent, not how expensive it is — there's no paying for the answer.
* **Reveals stop at 70%.** At least \~30% of the letters can never be bought and
  must be guessed. Once the cap is reached, further sends do nothing and the
  board shows “hints exhausted,” so a round always ends on a guess.
* **Spaces, hyphens, and punctuation** are shown from the start and don't count
  toward the cap.

Because reveals are flat-rate and capped, gifts move the whole room toward the
answer together without letting one gifter buy the solve.

## Scoring

In **most\_points** mode, each accepted guess scores by rank:

| Rank      | Points |
| --------- | ------ |
| 1         | 100    |
| 2–10      | 30     |
| 11–50     | 15     |
| 51–200    | 8      |
| 201–1000  | 3      |
| 1001–5000 | 1      |
| 5000+     | 0      |

* A rank-1 guess ends the round in either mode. In most\_points, the solver
  banks 100 first, then the highest total is crowned — usually the solver, but
  a prolific guesser can edge ahead.
* Tiebreaks: points, then best rank, then join order.
* Wins are tracked per streamer.
