- Genre
- Shedding card game / multiplayer card game
- Platform
- Any modern web browser (desktop, tablet, phone, foldable)
- Deck
- 108 cards · 4 colors × (0–9 + skip + reverse + draw-2) + 4 wilds + 4 wild-draw-4s
- Players
- 2–10 seats per match (you + humans + AI bot fill)
- Modes
- Solo vs AI · Friend match (live WebSocket) · six rule modules
- Controls
- Click cards, or D draw · Space pass · U Last! · 1-9 hand-position
- Price
- Free
- Hand size
- 7 cards dealt to start
One Card. Outlast Them All.
Last Card Standing is a 108-card shedding game built around one simple promise: shed every card in your hand before anyone else does. Match the top card by color or rank. Drop a wild to flip the active color. Land an action card to ruin somebody's turn. When you're down to one, call Last! — forget and the next opponent calls you out for a two-card penalty.
You can play casually against AI bots, or grab a friend (or eight) and run a live match over a real-time WebSocket. The deck and core mechanics are public-domain — color-and-rank matching, action cards, "go out" calls — but every line of code, every animation, and every name is original and trademark-clean. No signup, no install, no ads, no payment processor anywhere on the site.
The core loop
Every player is dealt 7 cards. The top of the draw pile is flipped as the starting active card. Play moves around the table; on your turn you must either match the top card (by color or rank), play a wild, or draw. Action cards trigger immediately when played. The first person to empty their hand wins the round and scores the point value of every card in everyone else's hand. Numerals score face value; action cards score 20 points; wilds score 50.
A run is however many consecutive rounds you choose to play before stopping. There's no fixed round count, no 500-point finish line — when you're done, hit Cash out and your accumulated points lock in as your leaderboard score for that ruleset. In live matches every round ends with a 30-second play again? vote; vote no and your seat converts to a bot so the rest of the table keeps going while your run is submitted.
A round, played out
- You're dealt 7 cards. The starting active card is the red 7.
- You play a red skip. The next player loses their turn; play jumps to the seat after them. Active card is now skip / red.
- They play a red reverse. Direction flips — now play comes back to you.
- You play a wild draw-4 and pick blue. The next player draws 4 and is skipped. Active color is blue.
- Two turns later you're down to one card. You hit U to call Last! (or tap the button). You have 3 seconds before someone can flag you for the 2-card penalty.
- Your last card matches — you play it, you go out, the round ends, you score every card still in your opponents' hands.
Action cards
Skip
Next player loses their turn. Follow up by matching color or rank; only counter with another skip when stacking is enabled.
Reverse
Flips the direction of play. In 2-player matches it acts like a skip — you go again.
Draw 2
Next player draws 2 and skips their turn. With The Stacker on, they can defend by playing an equal-or-higher draw card to pass the stack along.
Wild
Pick any color to set as the new active color. Always playable. Worth 50 points in opponents' hands.
Wild Draw 4
Pick a color AND make the next player draw 4 + skip. With The Stacker, this can chain into +6 / +8 / +10 escalations if those sub-rules are on.
Last! call
Hit U or the on-screen button when you go down to one card. Miss the call and any other player can flag you for a 2-card penalty within a 3-second arm window.
Custom rules. Your own leaderboard.
Flip individual rule modules on or off in the drawer's Game seed panel. Each unique combination is canonicalised into a comma-sorted "ruleset" string and gets its own leaderboard, so a vanilla run never competes against a max-chaos run. The active ruleset is locked once you start a run — no flipping toggles mid-game to chase a score.
Solo vs AI
Pick 2, 3, or 4 AI opponents at run-start. Each AI runs through the
same canonical engine the live multiplayer service uses — there's no
"AI mode" code path; bots play with the same legal moves and the same
validation rules as a human. The decision function is deterministic:
given the run seed and the action history so far, the AI's next move
is fixed. That's not a limitation — it's what makes replay validation
cheap. The active AI_VERSION is stamped on every submitted
run row so old replays still pass after future AI tuning passes.
Live multiplayer with friends
Open the friend tab in the lobby, host a match, and share the
8-character invite code (or send a DM friend invite to a registered
handle). The host picks 1–9 expected friends and 0–9 AI bots; total
seats are capped at 10. The match starts when you have enough humans
joined — server enforces humans ≥ total − bots.
A Workerman PHP WebSocket service at wss://tglgames.com/ws/lcs
drives every play. The server is authoritative — whose turn it is, what
the active color is, what's been played — so no client can fabricate a
move or peek at hidden state. Empty seats fill with real DB-backed
*_bot user accounts, so kicked players' seats keep playing
instead of stalling the table. Match chat is shared with the rest of
the site's chat infrastructure (room type match) — emoji
reactions, history, edits all work the same as the main lobby.
Per-round play-again voting
After every round the server broadcasts a 30-second vote: do you
want another round? Vote yes and you stay in
rotation. Vote no and your run is persisted (rounds
played, cumulative score, end reason: cashout) and your
seat converts to a bot so the table keeps playing. No host-controlled
"end match" button — the match ends when every human seat has
cashed out.
Replay-validated scoring
A Mulberry32 PRNG, bit-identical between the JS client and the PHP validator, drives the shuffle and every AI decision. The full action stream is logged with timestamps; on submit the server replays everything against the seed and rejects any run whose score doesn't match the simulator. Run tokens are HMAC-signed and single-use, so replay attempts and seed-swap attacks both fail at submit. Rule-toggle deck modifications go through the same engine — turning on The Stacker or Color Dump changes the deck inside the canonical engine, and the validator runs the same modified engine when it re-derives the run.
Controls in full
- Mouse / touch: tap a card in your hand to play it; tap the draw pile to draw; tap Last! when you're down to one card.
- D draw a card · Space pass (when applicable) · U call Last! · Enter next round
- 1–9 play a card by hand position
- Color picker appears on every wild — click your color of choice (red / yellow / green / blue)
- The opponents carousel auto-scrolls to the active seat; tap any opponent to inspect their card count and last play
Visual style and accessibility
Two themes (light and dark) follow your OS preference by default and can be flipped from any page header. Cards use a high-contrast color palette with a corner glyph fallback so red/green color-blindness doesn't blur skips and reverses together. Every interactive control has a keyboard equivalent — full keyboard play is supported for screen reader and motor-accessibility users. No animations exceed 250 ms; the "reduced motion" CSS media query disables the card-fly-in tween and falls back to instant placement.
Privacy and signup
No account required for solo. Guests get a generated handle on first visit and can rename freely; everything you do is tied to that handle until you choose to register it. Friend matches need a registered handle so invites can route to a stable user id. There are no tracking pixels, no analytics SDK, no third-party scripts, and no payment processor anywhere on the site — the whole stack is one origin and one signed session cookie.
Frequently asked
Is it really free?
Yes. No ads, no in-app purchases, no payment processor. Hosted on a small VPS as a hobby project.
How is this different from Uno?
It uses the same public-domain shedding mechanics (color-and-rank match, action cards, "go out" call) that have existed since long before any commercial product, but every line of code, every card name, every animation, and every art asset is original. The slogan and the brand are tglgames.com originals. Trademark-clean by design.
What happens if my friend disconnects mid-game?
Their seat is automatically converted to a real DB-backed bot account on a short timeout. The table keeps playing. If they reconnect within a reasonable window, they take their seat back — otherwise the bot finishes the match for them and they're submitted with whatever score they had at the time.
Why does each rule combo have its own leaderboard?
The Stacker on changes the deck composition. Max-cards auto-out changes the win condition. Color Dump adds four wilds. A score earned under one rule set isn't comparable to a score earned under another, so the canonical (sorted, comma-joined) ruleset string scopes the leaderboard. vanilla is the baseline; everything else is its own table.
Can I host a private game?
All friend matches are private by default — the 8-character invite code is the only way in. There's no public lobby browser. You can also send a DM friend invite from your profile to any registered handle.
Is there an app?
No, and there won't be. Everything is a browser page. Add to your home screen if you want an icon — it'll launch fullscreen.