Guess the Word LiveDocumentation, version 1.0.0

A word-guessing game for TikTok LIVE. Viewers type the hidden word in chat, likes open letters for everyone, and gifts give hints, extra time or points.

Version
1.0.0
Released
October 26, 2026
Last updated
October 29, 2026
Author
Arief Zufar Hilmi, Arizu Studio
Support
Support tab on the CodeCanyon item page
Website
arizu.id

1. Introduction

Thank you for buying Guess the Word Live.

A hidden word appears on screen as blank tiles with its category as the hint. Letters open one by one, and the first viewer to type the full word in chat wins the round. Each blank tile shows how many points it is still worth, so the prize visibly drops as letters open. The top of the screen shows the best players, and every gift gets a thank-you on screen: the bigger the gift, the bigger the celebration.

The game runs on your own computer. A small Python server connects to your LIVE and runs the game, and the game screen is a web page you add to OBS as a Browser Source. No coding is needed.

Game screen during a round: top players, the word BUTTERFLY with four letters open, the prize line, timer, like meter, close guesses and a gift notification with the plain gift box icon
A round in progress
Result screen: BUTTERFLY in green tiles and a card saying Correct, Maya
Someone guessed it
Full-screen thank-you for a Galaxy gift with the sender's initial, the plain gift box icon and fireworks
Spotlight for a big gift
Waiting screen with a demo word and the text Type anything in chat to start
Waiting for chat

What's included

2. Quick start

  1. Install Python 3.10 or newer (tick "Add Python to PATH" on Windows).
  2. Open the Source folder and double-click START_GAME.bat.
  3. Copy the password shown in the server window.
  4. In OBS, add a Browser Source with the URL http://localhost:5000, 1080 × 1920.
  5. Open http://localhost:5000/admin, log in, and try the game with Test without going live.
  6. Go live, then type your username in the TikTok tab and click Connect.

3. Requirements

4. Installation

Windows

  1. Extract the zip file.
  2. Open the Source folder and double-click START_GAME.bat.
  3. The first start installs the Python packages it needs (about a minute), then starts the server.

macOS, Linux, or by hand

  1. Open a terminal in the Source folder.
  2. Install the packages: pip install -r requirements.txt
  3. Start the server: python app.py (or bash start_game.sh on macOS and Linux).

The server window

Server window showing the game links, the phone address, the admin password, the TikTok status, the word count and a colored log of rounds and gifts
Keep this window open while you stream. Closing it stops the game. Press Ctrl+C in the window to stop the server.

5. Admin password

Login page with the password field and a note that the password is shown in the server window

There is no default password. Every time the server starts, it creates a new random password and shows it in the server window, next to Password. Capital letters and the dash are optional: k7qxm2tp works for K7QX-M2TP.

Forgot it or closed the window? Restart the server and use the new one. A browser that is already logged in stays logged in after a restart.

To keep the same password every time, set the GTW_ADMIN_PASSWORD environment variable before starting the server. On Windows: set GTW_ADMIN_PASSWORD=YourPassword and then python app.py in the same window.
After 5 wrong passwords in a row, logins from that device are blocked for 5 minutes.

6. OBS setup

  1. In OBS, open the scene you stream with.
  2. Under Sources, click + and choose Browser.
  3. Set the URL to http://localhost:5000/, the width to 1080 and the height to 1920.
  4. Tick Control audio via OBS to mix the game sounds in OBS.

The game screen is always 9:16. In a normal browser window it stays 9:16 with black bars at the sides. For a horizontal stream, keep the source at 1080 × 1920 and scale it down in OBS.

The top 8.5% and bottom 14% of the screen are kept mostly empty, because TikTok shows its own header, chat and gift bar there on viewers' phones.

Refreshing the Browser Source or restarting OBS is always safe: the round keeps going on the server and the screen picks up where it was.

7. Connecting to TikTok

TikTok tab with the connection status, the username field, the auto-connect checkbox and the Connect, Disconnect and Save buttons
  1. In the Admin Panel, open the TikTok tab.
  2. Type your username without the @.
  3. Tick Connect automatically when the server starts to connect on its own every time, and click Save username.
  4. Click Connect.

You can connect before you go live: the status says "Waiting for your LIVE" and the game retries every 30 seconds. If the stream drops, it reconnects by itself. The connection status is also shown at the top right of every Admin Panel tab.

About the connection

The game reads your LIVE through TikTokLive, an open-source library that uses TikTok's unofficial live data. TikTok does not offer an official API for this, so it can change or rate-limit that data at any time, which can stop the connection until the library is updated.

TikTokLive signs each connection through a third-party service, Euler Stream. Its free plan has a daily request limit; if connections start failing with a rate-limit message, wait a few minutes, or add a key from Euler Stream.

Possible ongoing cost. The game runs on Euler Stream's free plan without a key. If you stream often or keep hitting the limit, you may need a paid plan: a monthly subscription billed by Euler Stream at their own prices, which can change. It is not included in the price of this item. You are responsible for any costs and account requirements needed to go live and stay connected.

TikTok is a trademark of ByteDance Ltd. This item is not made, endorsed or supported by TikTok.

Using a signing key

Set the key in the SIGN_API_KEY environment variable before you start the server:

Windows (Command Prompt, in the Source folder) set SIGN_API_KEY=your-key-here python app.py Windows (PowerShell, in the Source folder) $env:SIGN_API_KEY = "your-key-here" python app.py macOS / Linux (Terminal, in the Source folder) export SIGN_API_KEY=your-key-here python3 app.py

To keep using START_GAME.bat, add the line set SIGN_API_KEY=your-key-here to it, right under cd /d "%~dp0".

Every environment variable the game reads is listed in Environment variables.

8. Connection status and debugging

The game shows the state of its TikTok connection in three places, so you can see at a glance whether chat, likes and gifts are coming in, and why when they are not.

Where to see it

What each status means

Message in the TikTok tabWhat it meansWhat to do
Connected to @usernameThe game receives chat, likes and gifts from your LIVE.Nothing.
Connecting to @username...A connection attempt is running.Wait a few seconds.
@username is not live yet. Retrying every 30s...The account exists, but no LIVE is running.Start your LIVE. The game connects on its next try.
The LIVE has ended. Waiting for the next one...TikTok reported the end of your LIVE.Nothing. The game keeps trying every 30 seconds and connects when you go live again.
Connection closed. Reconnecting in 30s...The connection dropped, for example after a network hiccup.Nothing. It reconnects by itself.
TikTok user @username was not found. Check the username.No TikTok account has this username. The game stops trying.Type the username without the @, exactly as on your profile, and click Connect.
Connection failed (error name). Retrying in 30s...The attempt failed. The name in brackets says why.See the table below. The game keeps retrying every 30 seconds.
TikTokLive is not installed. Run: pip install -r requirements.txtThe Python packages are missing.Run that command in the Source folder and start the server again.
Not connected, or DisconnectedNo connection was started, or you clicked Disconnect.Click Connect.

Error names

Error nameUsual causeWhat to do
SignatureRateLimitErrorThe free Euler Stream plan's limit was reached.Wait; the game retries on its own. If it happens often, add an Euler Stream key with SIGN_API_KEY. Paid plans are a monthly cost.
PremiumEndpointErrorThe signing request needs a paid Euler Stream key.Add a key from a plan that includes it.
SignAPIError, UnexpectedSignatureError, SignatureMissingTokensErrorThe signing service is down, or answered something TikTokLive did not expect.Wait a few minutes. If it goes on for hours, TikTok or the signing service has probably changed; check the item page for an update.
AgeRestrictedErrorTikTok marks the LIVE as age-restricted, and its data is not available without signing in.Remove the age restriction from your LIVE.
WebcastBlocked200ErrorTikTok refused the request from this network.Wait and try again later, or try another internet connection.
ConnectError, ConnectTimeout, ReadTimeout, OSError, TimeoutErrorNo internet, or a firewall or VPN blocks the connection.Check the internet connection and allow Python through the firewall.
ConnectionClosedError and other WebSocket errorsThe live connection was cut.Nothing. It reconnects by itself.

When nothing comes in

  1. Check that your LIVE is running on the same account you typed in the TikTok tab.
  2. Read the status in the TikTok tab and the TikTok lines in the server window. Yellow and red lines say what went wrong.
  3. Send a test comment, like or gift with the Admin Panel's test tools. If the game reacts, the game and OBS are fine and only the TikTok connection needs attention.
  4. Click Disconnect and then Connect to start a fresh attempt.
  5. If the status does not change for a few minutes, restart the server.
  6. When you ask for support, copy the TikTok lines from the server window into your message. They contain the full error.

9. Environment variables

None are required: the game runs with no environment variables set. These optional ones change how it starts.

VariableRequiredDefaultWhat it does
SIGN_API_KEYNoNot set: the free Euler Stream planYour Euler Stream API key. TikTokLive signs connections with it, with your plan's higher limits. Paid plans are a monthly cost billed by Euler Stream.
SIGN_API_URLNoNot set: Euler Stream's serverThe address of another signing server that works with TikTokLive. For advanced users only.
GTW_ADMIN_PASSWORDNoNot set: a new random password every startUses this Admin Panel password on every start instead of a random one. Leave it unset unless you need a fixed password, and never share it.
NO_COLORNoNot set: colored outputAny value, for example 1, turns off the colors in the server window, which helps when you save its output to a file.
GTW_GIFT_IMAGESNoNot set: gift pictures are loaded from TikTok at start0 stops the server from loading TikTok's gift list, so gifts show a plain gift box until they arrive in your LIVE. See Gift pictures.

How to set one

Windows (Command Prompt, in the Source folder) set NAME=value python app.py Windows (PowerShell, in the Source folder) $env:NAME = "value" python app.py macOS / Linux (Terminal, in the Source folder) export NAME=value python3 app.py

A variable set this way lasts until the window is closed. To set it every time, add set NAME=value on its own line in START_GAME.bat, right under cd /d "%~dp0", or export NAME=value in start_game.sh, under its cd line.

10. How to play

A round

  1. A new word appears as blank tiles, with its category as the hint. One letter is shown from the start.
  2. Every 12 seconds another letter opens, until half the word is visible.
  3. The first viewer to type the full word in chat wins.
  4. If nobody gets it in 60 seconds, the answer is shown with the missed letters in red, and a new word starts after 7 seconds.
Time's up screen: the word SUNFLOWER with the letters nobody found in red
Time's up: the red letters were still hidden

All of these numbers can be changed in Settings.

What counts as a correct answer

The comment must be the word itself. Capitals, spaces, punctuation, emoji and accents don't matter, so for ICE CREAM all of these count: ice cream, IceCream!!, ice-cream. A sentence like is it ice cream? doesn't count, which keeps it fair and stops people pasting long lists of guesses.

Points

The winner gets 10 points, plus 5 for every letter still blank, plus 5 for each win in a row. Guessing with 5 blank letters on a 3-win streak scores 10 + 5 × 5 + 5 × 2 = 45 points. The prize line under the tiles always shows what the word is worth right now.

On screen

Like meter just filled: hearts bursting and a notification saying Likes revealed a letter
300 likes just opened a letter
Likes and gifts never open the last letter. Somebody always has to type the word to win.

Pausing

Press Pause in the Admin Panel to freeze the timer, for example while you talk to chat. The screen shows a Paused label until you press Resume.

Game screen with the board dimmed and a Paused label

When chat is quiet

After 3 rounds in a row without any comment, like or gift, the game stops on "Type anything in chat to start", with a demo word flipping its letters so the stream doesn't look frozen. The next comment, like or gift starts a new word. Set "Wait for chat after" to 0 to never stop.

11. Gift thank-yous

Every gift is thanked on screen, sized by its total coin value (a Rose ×10 combo counts as 10 coins):

Gift valueThank-you
Under 10 coinsA notification near the bottom with the gift's picture.
10 coins or moreA banner at the top with the sender's name and the gift spinning in, plus three fireworks.
500 coins or moreA full-screen spotlight with the sender's photo, the gift, a firework show and its own sound.

Change both limits in Settings, under Gift thank-yous. Banners and spotlights wait their turn, so each gifter gets a full moment even when several gifts arrive together.

Banner at the top thanking Jake for a Doughnut, with the plain gift box icon and fireworks
Banner for a mid-sized gift, with the plain gift box shown when no picture is loaded

Each gift also has an action that changes the game. See Gifts.

Gift pictures

TikTok's gift artwork is not included in this item. When the server starts, it loads TikTok's public gift list once and uses the pictures from TikTok's own servers in the thank-yous and in the Admin Panel's Gifts tab and test tools; the server window then says Loaded ... gift pictures from TikTok. A gift that is not in that list (gifts differ by region) shows a plain gift box until a viewer sends it during your LIVE, because TikTok sends the picture with every gift. At start, a yellow line in the server window names the gifts in your Gifts tab that are missing from TikTok's list. That is normal for some regional gifts; viewers in your region may not be able to send them. Without an internet connection, or with GTW_GIFT_IMAGES set to 0, every gift shows the plain gift box, as in the screenshots in this guide.

12. Admin Panel

Open http://localhost:5000/admin. The tabs at the top are Live, TikTok, Settings, Words, Gifts and Sounds. Changes apply to the running game straight away, without a restart.

Live

Live tab: the round panel with the answer as tiles, the time, prize and player count, the round buttons, the activity log and a preview of the game screen
Leaderboard table with rank, player, points, wins and best streak

Test without going live

Test without going live card with the viewer name, a guess field, like buttons and the gift grid with gift box icons, next to the Your own words card

Send guesses, the correct answer, likes and any gift as a test viewer. Test players land on the leaderboard too, so reset it before your stream.

Your own words puts a word at the front of the queue with the category you choose. Use it for themed rounds or sponsor words.

Settings

Settings tab with cards for Round, Letter hints, Points, Gift thank-yous and Screen
SettingDefaultWhat it does
Round length60 secondsTime to guess each word.
Answer stays on screen for7 secondsThe break between words.
Wait for chat after3 quiet rounds0 never waits, and starts as soon as the server starts.
Letters shown at the start1 letterFree letters when a word appears.
Open a letter by itself every12 seconds0 turns automatic letters off.
Stop opening by itself at50% of lettersAutomatic letters never open more than this.
One letter for every300 likes0 turns the like meter off.
Correct answer10 pointsBase points for the winner.
Each letter still hidden5 pointsRewards fast guesses.
Each win in a row5 pointsStreak bonus.
Banner with fireworks from10 coinsSee Gift thank-yous.
Full-screen spotlight from500 coinsSee Gift thank-yous.
Title at the bottomGUESS THE WORDYour game's name on screen.
Players on the top board53 to 6 circles at the top.
Show close guessesOnLists wrong guesses with the right length.

Words

Words tab with the category list on the left and the word editor on the right

The included categories are Animals, Birds, Body Parts, Clothing and Accessories, Colors and Shapes, Countries, Famous Cities, Fantasy and Fairy Tales, Food and Drinks, Fruits and Vegetables, Household Items, Jobs, Kitchen and Cooking, Music and Hobbies, Nature and Weather, Parties and Holidays, Places and Buildings, School and Office, Sea Creatures, Space and Science, Sports and Games, Technology, Tools and Hardware, Toys and Games, and Transportation.

Tick the categories to play and click one to edit its words, one per line. Words use the letters A to Z only, with spaces between words for phrases like HOT AIR BALLOON; numbers and punctuation are not allowed. Click Save word bank: lines that aren't valid are skipped and listed. Any language written with A to Z works, for example Indonesian.

Gifts

Gifts tab with a table of gifts, each with the plain gift box icon, its coin value, action and amount
ActionAmount meansEffect
Reveal lettersLettersOpens letters for everyone, never the last one.
Add timeSecondsAdds time to the round, up to twice the round length.
Bonus pointsPointsPoints for the sender.
Skip wordNot usedEnds the round and shows the answer.
Do nothingNot usedOnly the thank-you.

Out of the box, gifts under 5 coins reveal a letter and bigger gifts give the sender points equal to their coin value. The amount multiplies with combos. To add a gift that isn't listed, type its exact name as TikTok shows it. The pictures next to the names come from TikTok while the server runs; see Gift pictures.

Sounds

Sounds tab with a card for each of the seven sounds

Seven sounds: new word, letter revealed, correct answer, time's up, countdown tick, gift received and big gift spotlight. Upload your own .mp3, .wav or .ogg (up to 5 MB), set the volume, play it, or go back to the built-in sound, then click Save sounds.

From your phone

Admin Panel on a phone with the round panel and the buttons

On the same Wi-Fi as your streaming PC, open the From a phone address shown in the server window and log in. If Windows asks whether Python may use the network, allow private networks.

13. How it works

TikTok LIVE ──► tiktok_connector.py ──► game_engine.py ──► Socket.IO ──► game screen (OBS) └─────► Admin Panel

tiktok_connector.py joins your LIVE as a viewer and receives comments, gifts and likes. game_engine.py runs the whole game on the server: words, timer, letters, guesses and scores. Whenever something changes, and once a second, the server sends the current state to every open game screen and Admin Panel. The game screen only draws what it receives, so a refresh, a background tab or a second preview window can never fall out of step.

The game screen never receives the answer before the round ends; only the logged-in Admin Panel does. Every admin action needs a login, and saving settings also needs a CSRF token.

14. Customization

Title

Settings, "Title at the bottom". No code needed.

Colors

The game screen colors are at the top of Source/static/css/game.css, and the Admin Panel's at the top of Source/static/css/admin.css:

:root { --board: #1438A6; background --tile: #FFFFFF; letter tiles --ink: #0B1640; letters --accent: #FFC93C; prize, rank 1, gift thank-yous --good: #177A43; correct answer --bad: #C0272D; missed letters }

Font

The game uses Outfit from Source/static/fonts/. To change it, replace the .woff2 files and update outfit.css.

Logo

The product name is shown as text. To add your logo, put an <img> in the footer of Source/templates/game.html.

Word bank file

You can also edit Source/words.json while the server is stopped:

{ "categories": { "Animals": { "enabled": true, "words": ["ELEPHANT", "GIRAFFE"] } } }

Port

The server uses port 5000. To run it next to another app on that port, set "server": { "port": 5001 } in Source/tiktok_config.json, restart, and use the new port in OBS.

15. File structure

Source/ ├── app.py server, Admin Panel API, Socket.IO ├── game_engine.py rounds, letters, points, gifts, likes ├── tiktok_connector.py TikTok LIVE connection ├── word_bank.py loads and picks words ├── console.py server window output ├── words.json word bank ├── tiktok_config.json settings, gifts, sounds ├── game_state.json leaderboard (created on first run) ├── requirements.txt Python packages ├── START_GAME.bat Windows launcher ├── start_game.sh macOS and Linux launcher ├── templates/ game.html, admin.html, login.html └── static/ css, js, audio, fonts, images

16. Updating and uninstalling

Updating to a new version

  1. Stop the server.
  2. Keep copies of tiktok_config.json, words.json and game_state.json from your Source folder.
  3. Replace the Source folder with the new one, then put the three files back.
  4. Run START_GAME.bat; it installs any new packages.

Uninstalling

Delete the game folder. To also remove the Python packages it installed, run pip uninstall flask flask-socketio TikTokLive.

17. Troubleshooting

The game screen is blank in OBS

Check that the server window is still open, and start it again if not. Then open the Browser Source properties and click "Refresh cache of current page". If the screen says it can't reach the game server, the server isn't running or the port is different.

I can't log in

Use the password from the current server window; it changes on every start. If you see "Too many failed attempts", wait 5 minutes or restart the server.

TikTok won't connect

Check the username (no @) and that you are live. "Waiting for your LIVE" is normal before the stream starts.

A viewer typed the right word but didn't win

The comment has to be only the word. Another viewer may also have been a moment faster; the Activity log and the server window show who won each round.

No sound

OBS plays sounds by itself. In a normal browser tab, click the page once (a "Click to turn on sound" button appears). Also check the volumes in Sounds and the Browser Source level in the OBS mixer.

Gifts show a plain gift box instead of their picture

The server could not load TikTok's gift list when it started (no internet, or a firewall blocked it), GTW_GIFT_IMAGES is set to 0, or the gift is not in TikTok's list for your region. Check the server window for Loaded ... gift pictures from TikTok or a yellow line about the gift pictures. If the list could not be loaded, the game tries again when it connects to your LIVE, and a gift sent during your LIVE always brings its own picture.

"Address already in use"

Another program, or a second copy of the game, is using port 5000. Close it or change the port.

18. FAQ

Can I try it without going live?

Yes. Use Test without going live in the Live tab.

Can viewers find the answer somewhere?

No. The game screen only receives the letters that are open. The full answer is sent only to the logged-in Admin Panel.

How do I make rounds easier or harder?

In Settings, raise or lower "Letters shown at the start", "Open a letter by itself every", "Stop opening by itself at" and "Round length". You can also untick categories with longer words.

Can I use another language?

Yes, if it is written with the letters A to Z, like Indonesian or Malay. Replace or add words in the Words tab. The game screen labels are in English.

Can I show the game on a second screen?

Yes. Any browser on the same network can open http://<your PC's address>:5000; every screen shows the same round.

What happens if my internet drops?

The game keeps running on your PC, and the TikTok connection comes back by itself when the internet returns.

Does the game need my TikTok password?

No. It only reads public LIVE events (comments, gifts and likes) using your username.

Can I run it on a server (VPS)?

It's made to run on your streaming PC. It can run on a VPS, but TikTok sometimes blocks connections coming from data centers.

19. Credits and licenses

ItemLicenseNotes
Flask 3.0.3BSD-3-ClauseInstalled from PyPI by requirements.txt
Flask-SocketIO 5.3.6MITInstalled from PyPI by requirements.txt
TikTokLive 6.6.5MITInstalled from PyPI by requirements.txt
Socket.IO client 4.7.2MITSource/static/js/
SweetAlert2 11.26.25MITSource/static/js/
Outfit fontSIL Open Font License 1.1Source/static/fonts/
Atkinson Hyperlegible Next fontSIL Open Font License 1.1Documentation/fonts/
Rubik fontSIL Open Font License 1.1Documentation/fonts/
Sound effectsOriginal workMade for this item
Gift box iconOriginal workMade for this item, Source/static/images/

No TikTok artwork is included. Gift pictures are loaded from TikTok's servers while the game runs (see Gift pictures). TikTok is a trademark of ByteDance Ltd. This item is not made, endorsed or supported by TikTok. The same list is in CREDITS.txt.

20. Changelog

Version 1.0.0, October 26, 2026

First release.

21. Support

Questions or a problem not covered here? Use the Support tab on the item's CodeCanyon page and include what you did and what happened, a screenshot of the server window, and your operating system and Python version (python --version).