Rewind the turn — experimental
Ask the table to replay the current turn from its start. Everyone has to agree, and it is off unless the lobby turns it on.
New
- ⏪ Rewind the turn. A misclick used to be permanent. Now any player can ask the table to replay the current turn from the beginning — the board, the graveyards, the life totals and the cards in hand all go back to where they were when the turn began, and play carries on from there.
Everyone still in the game has to agree. Bots agree for you. Anyone can refuse, and one refusal ends it — the turn stands and play continues. The ask lasts a minute; if nobody answers it lapses on its own.
Nobody is pretending the information goes back. The other players saw what you played, the same way they would across a table. Rewinding takes back the turn, not what everyone learned during it.
Turn it on per table under Rewind when you create a lobby. It is off by default, so a table only sees it if someone chose it, and a table that does not use it pays nothing for it.
Rewinding is new and still being proven — it is the deepest change a game can make while it is running. If a game behaves strangely after a rewind, that is worth a bug report: it is the rewind, not you.
Sharing a view, joining by link, and cards that had no way to be played
A watcher can ask to see the game from your seat, invite codes are links now, Wish and Serum Powder reach the board, and the mana prompt stops lying about what its exit does.
New
- 👁️ Watch from a player's seat. Spectating shows you what the table shows everyone — no hands, no face-down cards. A watcher can now ask a seat to share its view, and that player answers Allow or No. Say yes and the watcher sees the game the way you see it. A grant is per watcher and can be stopped at any time from the spectator list on your plate. Both halves work on phone. It reveals nothing about your opponent, and no deck or sideboard travels with it.
- 🔗 Copy code in a lobby is now copy link. Send the link and players join your table through it — including a visitor who is signed out, who lands at the table once they are through sign-in. Join by Code takes a pasted link too, and a refused join now says why instead of dropping you on the table list.
- 📖 Public /about, /formats and /changelog pages, readable without an account, with a page for each format.
- 🃏 Improved hand card handling — the feel and animation of picking a card up, moving it and dropping it, and a card now lands in the slot you aimed at.
Cards the game gave you no way to use
- 🧞 Wish makes a card in your sideboard playable where it sits — it is never fetched. The engine offered it every time; the board had nowhere to put it, so the offer never reached you. Cards playable from outside the game now appear in an "Outside the game" chip that shows up only when there is something in it, on desktop and on phone.
- 🧪 Serum Powder's mulligan ability lived nowhere you could press it. The mulligan prompt now carries a third option, "Exile hand to Serum Powder", at every keep-or-mulligan decision.
- 🎯 "Target spell" now means a spell. Sink into Stupor was cast at an Overlord's impending trigger, announced a bounce, and did nothing — the check only asked whether the source card matched, never whether the thing on the stack was a spell. Cards that deliberately target abilities are untouched.
A prompt nobody could answer
- 🧊 Palantir of Orthanc's end-step scry, made with an empty library, asked its controller to arrange nothing. Nothing appeared on screen — and because the game sits waiting for that answer, priority never moved again: every seat at the table froze, not only the player being asked. One three-player pod sat on it for six minutes until the other two conceded. A scry with nothing to look at now settles on its own.
- 🔎 The same dead end is closed where it could still be reached: naming a card from an empty list, which Alhammarret, High Arbiter hits against an opponent holding only lands, and Garth One-Eye hits on his seventh activation.
The mana prompt
- 💧 "Cancel" meant two opposite things. On a spell you are casting, backing out withdraws the cast — nothing happened. On a cost you are asked for while something resolves — Rhystic Study, Propaganda, Ghostly Prison, Erratic Portal — backing out is the answer: you decline, and the thing resolves because you refused. It now reads "Don't Pay" when refusing is the answer, and keeps "Cancel" when it is a withdrawal.
- 🌈 Mana you were told you could spend was being refused. Cards that let you spend mana as though it were any type or color — Laughing Jasper Flint on the cards it exiles — had that permission dropped on the way to the prompt.
- 💎 A source you cracked is gone, and the prompt now says so. Sacrifice a Treasure, a Lotus Petal or an Eldrazi Spawn for mana, back out of the payment, and it does not come back. That is the engine's own behavior and it is not cheap to change, but it used to happen in silence. Each spent source is now named above the exit, before you reach for it. Tapping a land is still fully reversible.
Elsewhere
- 👥 The friends rail was rebuilt around one scroller. It had four nested ones in a single column, none of which handed the wheel on when it reached the end, so getting from a list to the Add field meant moving the pointer off the list — and it could still render a heading above no rows at all. The counts also lied: "Now at the Tables · 32" sat above twelve rows with no way to reach the other twenty. Lists now stop at eight rows with a Show all that names the real total, and headings stay put as you scroll past them.
- ⚙️ A round of background work on performance and stability with no visible surface — keeping concurrent games better isolated from one another, making a release verifiable before it goes out, and groundwork toward a broader undo.
Most of this arrived as bug reports. Share view is new, and an ask that appears to go nowhere is worth reporting.
Fixes and polish
Abilities work while you control someone else's turn, copied counterspells can aim at the stack, mulligan counts say where the hand is heading, and running out of time ends the match.
In a game
- 🧠 While taking an opponent's turn — Emrakul and friends — their fetchlands and activated abilities could not be used. The engine was offering them the whole time; the board was throwing the answer away. Their permanents now answer a click the way yours do.
- 🎯 Lose Focus's replicate copies could not be aimed at the spell being countered — the prompt offered nothing to pick. Copied counterspells can now target what is on the stack.
- 🃏 Cabal Therapy named a card and then showed no hand. Flashing it back reused the first reveal instead of showing the second one, which is the whole point of casting it twice.
- ⏱️ Running out of time lost the game but left the clock stopped, so the rest of the match was played untimed. The clock covers the match, so flagging now ends the match.
Around the table
- 🎲 The browse row advertised Bo1 for tables that launched Bo3. The two lobby lists had each invented their own answer and disagreed; both read the table's real setting now.
- 🔢 "Opponent mulliganed to 7" printed on every mulligan, whatever they were going down to. The count now says where the hand is heading.
- 🔁 A spectator who joined between games of a Bo3 saw a finished board with no clock and no prompt, which is indistinguishable from a dead game. It now says the players are sideboarding.
Most of these arrived as bug reports.
The board says what it chose
A permanent shows the color, type, card name or number its controller picked — and identical cards wear a letter so the game can say which one it means.
🎨 Play a Gate from Baldur's Gate and nothing on the board told you which color it taps for. You could not read your own land. Same for Cavern of Souls' chosen creature type, the card Pithing Needle named, or a number picked on resolution — the choice was made, then went unrecorded anywhere you could see it.
A permanent now carries that choice on the card. It covers around 280 cards that ask their controller to choose a color, a type, a card name or a number.
🔤 Related, and for the same reason: when two cards on screen are identical, the game can now put a letter on them — A, B, C — so a reference can say which one it means. A stack tile returning one of two identical creatures used to print a bare name with no way to tell them apart, and two copies of the same trigger waiting to be ordered were indistinguishable rows even when the order mattered.
Letters appear only where they are needed: when something refers to a card by name and nothing on screen can point at it. Cards that can be pointed at are left alone.
Both came from bug reports. If a permanent makes a choice that still does not show, it is worth reporting — the list of cards that ask is long.
Blocking, kicking, and a pass confirm that holds
Blocking someone now keeps them away from your table, hosts can remove a player, full tables leave the list, and the armed pass no longer disarms itself.
Passing priority
- ✋ Arming a pass with mana floating — or an attack with no attackers — took two presses, and then disarmed itself a few seconds later. Every time. The confirm now stays armed until you use it or cancel it.
Blocking someone
- 🚫 Blocking only stopped direct messages. A blocked player could still sit at your table and talk in the room, and could sidestep it entirely by hosting the table themselves. Blocking now keeps them out of tables you are in, in both directions.
Hosting a table
- 👋 A host had no way to remove someone from a table waiting to start. There is now one.
- 🚪 The host's own "Leave" freed no seat and closed nothing, and sat beside two other low-contrast exits that were easy to confuse. Leaving as host now does what it says.
The table list
- 🪑 Open Tables advertised full tables and vs-Bot practice tables that the join then refused — a four-seat pod could read "1/4" and still have no chair. A table you cannot join no longer invites you to.
- 👻 Games that wedged or were abandoned are cleared out instead of lingering.
Five of these came in as bug reports.
Fact or Fiction shows you the piles
A two-pile choice now renders both piles as cards you can read, and library-peeking cards show every seat's top card.
🃏 Fact or Fiction asks you to pick a pile. Until now both piles rendered as "3 card(s) face down" — so the one card in Magic whose entire point is the agony of choosing between two visible piles was a coin flip. The same display covered Steam Augury, Sphinx of Uthuun and around thirty other cards that split a reveal into piles.
Each pile is now a group of cards you can actually read, with its own label and count, and you pick the group.
🔦 Separately, Lantern of Insight shows the top card of every player's library — it had been showing only your own. Cards that let you look across seats now do.
Both came in as bug reports.
A draft you left is a draft you can get back to
Drafts in progress now appear on your lists with a way back in, and the pick clock no longer sits at 00.
↩️ A draft in progress used to appear on no list anywhere. Navigate away — or lose the tab — and there was no route back to a seat that still held your picks. Drafts you are seated at now show up with a way back in, including a bot draft or a sealed pool sitting in deck building.
⏱️ The pick clock behaved badly in a few ways at once:
- 📦 "Opening your first pack" could sit on a spinner indefinitely, with no explanation and no retry, while your clock ran.
- 🕒 When the auto-pick had to step in it had no time limit of its own, so a slow moment could park a forced pick with the chip reading 00.
- 🔀 Updates from a different draft could reach the wrong screen and swap your pack mid-pick, or navigate you out of the one you were in.
👻 And when the last human left a pod, it used to leave a table behind that nothing could clear.
Three of these came in as bug reports. Drafts have a lot of moving parts — if a pick or a clock does something strange, the in-game bug button captures the state.
One table list, and one way to search it
Open Tables and Live Games are now the same list in two states, with a shared search and filters — and the Join button stays on screen.
🔍 Open Tables and Live Games were two different lists that happened to sit near each other: one a proper table, the other a row of chips with no format, no spectator count and no way to narrow it. They are now the same list in two states, sharing one search box and filter row — narrow by format, by size, or by name.
📐 The bigger change is that the list stays usable when the window is not wide. Between roughly 1024 and 1150 pixels — and on tablets — the table used to turn into a sideways scroller and carry the Join button off the right edge, which made a table you could see one you could not join. The layout now reflows instead.
⏱️ A few smaller things that were quietly wrong: a draft pod that spent fifteen minutes in deck building used to hit turn one already reading "15m", because the timer counted from when the table was made rather than from the first turn. A Commander table printed its format twice. On phone and tablet the whole card was one big button, so it swallowed keyboard input and made the invite code hard to select.
Forgetful Fish — cards you dig up come to you
Ownership in the shared-library format routed found cards to the wrong player; the graveyard is one pile; and paid mulligans charge the right price.
Three fixes scoped to the shared-library format, where both players draw from one deck.
🎣 A card you find is yours. "My opponent cast a Diabolic Vision and it put the card in my hand" — because both seats share a library, ownership was being worked out from who last touched the card. Hermit Druid, Coiling Oracle, explore, discover and tutors could all hand the found card to the wrong player. A discover you decline no longer gives it away either.
🪦 One graveyard, drawn once. The board drew two graveyard piles with the same count, each labelled as belonging to a player, for a zone that both players share. It is one pile now. When a card's ability is on the stack, the copy it came from is marked — which matters when you need to know which one to remove.
🔄 Mulligans cost what they should. A paid mulligan that drew a hand failing the format's criteria reported a cost of nothing, so you bottomed no cards and kept seven. The keep prompt also stated the wrong hand size, and drifted further with each mulligan.
Ordinary games do not share a library and were not affected by any of this.
Fixes and polish
Flip controls back on double-faced cards in prompts, a reveal tracker you can close, the hand cursor on buttons, and a smoother phase rail.
Prompts
- 🔄 A double-faced card offered by a prompt had lost its flip control, which was most obvious while sideboarding: the whole pool was DFCs you could not read the back of. The flip is back, and the other face is fetched ahead of time so it appears when you ask rather than after a wait.
Panels
- 📌 The reveal tracker opened at a fixed size whatever it held, and at its default position with a few cards tracked it could hang off the right edge of the screen — taking its close and collapse buttons with it, so the only way to shut it was to drag it back first. It now sizes to its contents, stays on screen, and can be resized and collapsed like the graveyard and exile windows. Those had a smaller version of the same overhang.
- ⌨️ Moving a panel by keyboard used to need about twenty presses before it budged, and one resize press could collapse it to a single column.
Across the app
- 🖱️ Buttons show the hand cursor on hover again. The styling framework dropped that rule from its reset, and this app was built on that version, so several hundred buttons across the header, settings, lobby, deck editor and match view had been rendering under a plain arrow with nothing to say they were clickable. Disabled controls stay on the default cursor, as they should.
- ⚡ The phase rail no longer re-measures itself on every frame while the current phase opens, which was dropping frames on high-refresh displays. The banner now reaches its size at once rather than growing into it.
Lightning Bolt looks like Lightning Bolt again
Cards default to their ordinary printing instead of a crossover promo, and the card database is refreshing again.
🖼️ A card with no art chosen now defaults to its ordinary printing. Bolt had been showing up as the Final Fantasy borderless one, Counterspell and Path to Exile as Marvel promos, Brainstorm as the TMNT version — the newest printing won by default, and lately the newest printing has often been a crossover.
Roughly one card in seven was defaulting to a promo or alternate art, and about a hundred and thirty defaulted to a non-English printing. Both are now down to a small remainder. Bolt resolves to its Double Masters printing, Taiga to Beta.
🔄 Behind that, the card database had quietly stopped refreshing in late July, so newer cards and corrections had been going stale. It is updating on a schedule again.
Picking art per card is unchanged — a printing you chose yourself is still the one you get. If a card still defaults to something odd, the in-game bug button is the fastest way to flag it.
The Hobbit is playable
The Hobbit (HOB) cards are in the pool for deck building, drafting and play.
🧝 The Hobbit (HOB) is now available. Its cards can be added to decks, show up in cube and set drafting, and are playable in a game.
New sets land as the engine adds them; a card that behaves oddly is worth reporting from the in-game bug button.
Fixes and polish
Card motion that reads the same way every time, art that recovers and arrives warm, and fixes to deck launch, friends and casting from a zone window.
Motion
- 🎴 Card flights are worked out from what is actually on screen rather than from a running commentary of what happened. The same play now animates the same way each time — before, a card could fly from its real position, from a rough guess at one, or simply appear, depending on which arrived first.
- 📐 A card entering play takes its size and take-off point from the board it is actually landing on, and a card created on the battlefield stops in place instead of flying in from the deck.
Card art
- 🖼️ A card image that stalls mid-load retries and recovers instead of being written off for the rest of the game.
- ⚡ Your deck's art is fetched when you pick the deck, not when the first card needs it, so cards tend to arrive already drawn rather than as a placeholder that fills in.
Decks, lobby and casting
- 🃏 A deck that can't be launched says which deck and which player it belongs to, instead of only that something was illegal.
- 👥 Friends lists could show the same friendship twice; a pair is one row.
- ↩️ A spell started from a zone window — the graveyard or exile viewer — can be backed out of. It committed you as soon as you clicked.
Under the hood
- 🚀 Faster loads: pages, card images and deck art are cached more sensibly at the edge, and the engine runs on about half the memory it reserved before.
Motion changed shape substantially here. If a card flies from somewhere it shouldn't, the in-game bug button captures the board as you saw it.
Fixes and polish
Commander drag-and-drop, mana from outside the battlefield, yield to the stack, reconnect history, a faster engine, and a long list of fixes.
Deck editor
- 👑 The command zone is a card you drag into and out of. Drag from the deck onto a throne to seat a commander; drag it onto the board to return it to the 99, or onto the sideboard column to return it there. Both thrones, so partners and Backgrounds work.
- 🎯 Set as commander on a card's preview does the same as a real move — the copy leaves the 99 as it arrives. Seating used to add a second copy, so you had to delete the original by hand.
- 📋 Plain-ASCII spellings of accented cards import — Lorien Revealed, Lim-Dul's Vault, Juzam Djinn. They resolved to nothing before. Old lists spelling Æther Vial work too.
Paying costs
- 💧 Paying only ever looked at your battlefield, so any source that isn't a permanent on the board couldn't be used — Elvish and Simian Spirit Guide exiled from hand, Channel, and anything paying from the graveyard, exile or the command zone. A source in your hand is now clickable where it sits; the rest appear under Other sources.
- ⚡ Channel and other command-zone abilities are clickable in the effects rail, including while you're paying for something else.
In game
- 🃏 Mulligan states the numbers: "1 mulligan taken. Keeping puts 1 card back — a 6-card hand", with Keep 6 on the button, and says so when the first mulligan was free. You're also asked whether to keep before choosing what goes on the bottom, not after.
- ⏭️ Yield to the stack hands the rest of the current stack over in one press, and stops early if an opponent adds something. Ships unbound — Settings → Controls.
- 🎲 Prompts like "total mana value X or less" printed the literal letter X; they now carry the evaluated number and a running tally. An over-budget combination used to be accepted and then annihilated on resolution — targeting refuses it up front now, along with every other "these targets don't work together" rule.
- 🔒
Ctrl+Z no longer reaches back across priority — you could tap a land in response to a trigger, watch it resolve, then take it back knowing the outcome.
- 🔍 Reveal chips hold while you're deciding instead of expiring on a six-second timer mid-decision.
- 📜 The game log reads top-down; scry, surveil and reveal rows were drawing above the spell that caused them.
- 💬 Chat survives the end of the game, and leaving a game you're watching moved from the opponent's nameplate to the spectator's own panel.
- 🃏 Two cards had the wrong data: Advancing the Spirit was costed
{5}{U} instead of {2}{G}, and Yip Yip! wasn't marked a Lesson.
Motion
- 🎴 Draws arrive as one wave. Up to a full opening hand every card flies; past that the hand takes them in a single beat, instead of flying some and appearing the rest.
- 🖼️ Cards whose art hadn't loaded fly face-down instead of as blank rectangles.
- 📐 Cards entering the battlefield could take their size from the opponent's half of the board; a tapped permanent leaving animated out of its sideways box rather than its upright footprint; a permanent could go invisible for a couple of seconds when its entrance fell back to the simple version.
- 🔤
{C} renders as a colorless pip, and generated effects dropped a debug id from their name — Channel (151)'s Effect → Channel's Effect.
Reconnecting
- 🔁 The log, the reveals you'd seen and the chat lived only in your browser tab. The server now keeps a short replay of the current game and hands it back when you return — including on a fresh device. You only get back what was sent to you originally, so a card revealed privately to your opponent stays private.
Under the hood
- 🚀 General performance work: ~55% less engine time per game and ~21% less memory, with no change to how any card behaves.
- 🔄 If a new version deploys while your tab is open, the app reloads itself once instead of failing to load a page — never mid-match.
When a player drops — early access
A disconnected seat now shows a countdown instead of a frozen table — and joining a match tells you where it's stuck.
🔌 When someone's connection drops mid-game, the table used to just freeze. Now you can see what's happening:
- ⏳ A disconnected player's seat reads "lost connection" with a countdown. If they don't make it back in time, that seat concedes and the game moves on, so a table isn't stuck indefinitely on a player who's gone.
- 📡 If your own connection stutters, a banner says so and keeps trying to reconnect while your seat is held.
- 🧭 Joining a game now walks through real steps — finding the table, opening the connection, taking your seat — and, if it stalls, says so plainly and offers to copy diagnostics or head back to the lobby.
- 🪦 A match that has ended or can't be found now tells you so, instead of spinning forever.
This is a first pass at connection handling — the grace timing and the exact wording will keep evolving. If a game gets stuck in a way this doesn't cover, Report a problem.
Set drafting, Chaos packs, and draft bots — early access
Draft official sets or full Chaos, tune the table, undo a mis-pick — and fill empty seats with bots that actually draft.
📦 Draft tables now open three kinds of packs. Your cube works exactly as before — and next to it sit two new sources:
- 🗺️ Official sets — more than 190 draftable sets, from current standard fare to the deep past. Pick one set for all three packs or mix them per pack (Invasion → Planeshift → Apocalypse, the classic way), or leave a slot on Random and let the table decide. Sealed takes sets too, all six packs.
- 🌀 Chaos Draft — every pack is a different random set. Point it at a theme to keep the madness within an era, or go fully wild.
🤖 Draft bots fill the empty seats. Add one from the table and it drafts with real card preferences — reading signals, following its colors, not picking at random — then builds a real deck from its pool. In a two-player draft you can sit down against it the moment the last pack empties.
⏱️ The table has knobs now: a pick timer (75 seconds by default — a lapsed pick is made for you; turn it off for a casual table), picks per pass, and undo — take back your last pick with Ctrl+Z, as long as the pack hasn't moved on.
All of this is fresh — a few older or unusual sets have quirky booster recipes, and in pods of three or more, bots draft alongside you but don't yet take a seat in the games after. Expect rough edges and report what you find.
Row menus and deck tidying
Right-click any deck, folder, or friend for its menu — plus rename, move, and a safer delete.
🖱️ Deck rows, deck folders, and friends-rail rows now carry right-click menus — the same set of actions as the ⋯ button, whichever you reach for.
- ✏️ Rename a deck straight from its menu.
- 📁 Move a deck into another folder without dragging.
- 🗑️ Deleting a deck is now its own set-apart action rather than a single unguarded click.
- 📋 Open Tables lays out as a proper table on desktop — format, host, seats, and join code at a glance — and the whole row is clickable to join.
Small stuff, but it's the stuff you touch every day.
Readable text, and a few fixes
Clearer announcements and errors, spectators visible in bigger pods, steadier pods, and a couple of small additions.
More fixes and small additions from the day:
- 🔤 Announcements and error messages are legible again. The platform announcement strip and a few connection-error notices were rendering dim and hard to read; they're now upright, high-contrast text.
- 👁️ See who's watching a 3–4 player pod. Spectators were invisible in games with more than two players — the watcher list shows there too now.
- 🛡️ Pods stay alive. A multiplayer game whose first players left could be shut down out from under the players still in it. Not anymore.
- ⚔️ An optional attack safeguard. Turn on Settings → Gameplay → Confirm empty attacks and ending combat while you still have creatures that could attack asks once first, so you don't skip a swing by reflex. Off by default.
- 🤖 Bots in Rich Man's Draft. The second seat can now be filled by a bot, the same as a booster draft.
- 🗳️ Vote cards read cleanly. Game-log lines from voting effects (Council's Judgment and the like) no longer come out garbled.
Fixes & polish
Your chosen art everywhere, honest spectating, controlling other players repaired, and a week of smaller fixes.
A round-up of fixes from the past week:
- 🎨 Your chosen printings now show in the in-game decklist, Sagas wear the right art, and the art picker behaves — the set filter filters, the double scrollbar and the jitter are gone. Permanents that blink away and return no longer come back invisible.
- 👁️ Spectators get an honest match record — the victor's name in the headline instead of "Victory — you…", and no Concede offered from a seat that was never yours.
- 🧠 Controlling another player (Mind Slaver, Emrakul) actually works now — see and cast from the controlled hand, discard from it, and priority routes correctly in pods.
- 🌫️ Phased-out cards stay on the battlefield where they were, dimmed, instead of vanishing into a separate strip.
- ⚔️ Declaring attackers no longer dims the opponent's board, and combat arrows stay visible over the report window and at screen edges.
- 🀄 Draft packs no longer flash empty mid-pick — your pool stays visible while the next pack travels to you.
- 🃏 Card interactions repaired: optional "you may sacrifice" triggers ask instead of deciding for you, Aluren grants its free casts to the right players, and Zubera death counts read correctly.
- 📐 Layout repairs: the deck viewer's list view fills its width without sideways scrolling, prompts fit on small screens, and friends-rail rows keep the whole username visible with a ⋯ menu for actions.
- 🔤 Dropdown menus across the lobby and settings were restyled for legibility.
- 🔒 A hidden-information pass: game updates were carrying data the screen never showed but shouldn't have been sent at all — an opponent's sideboard during deck-building, details of face-down cards. Sealed off.
Cards in motion — early access
Draws, mills, discards, and reanimation now travel across the board instead of blinking between zones.
🎞️ Cards now travel between zones instead of teleporting. The board reads as motion rather than a run of jump-cuts:
- 🃏 Your draws fly from the library onto the card that just joined your hand.
- ⚰️ Mills and discards sweep to the graveyard — a big mill sends a few cards on their way and settles the rest with a single beat, so it reads at a glance instead of flooding the screen.
- 🌘 Reanimation and tutors glide a card onto the battlefield from wherever it came from.
🎴 A travelling card shows its face wherever you'd be allowed to see it, and its back when it's hidden — an opponent's draw stays a mystery.
🎚️ Prefer it calmer? Settings → Visuals still sets the speed and effect intensity, down to barely-there.
Motion is fresh and still being tuned — the feel will keep changing, and not every glide reaches multiplayer pods or phones yet. Report anything that looks off.
Direct messages
Message any player outside the game — unread badges, offline delivery, and blocking.
✉️ Players can now message each other between games. Open a conversation from the envelope in the header, the friends rail, or a player's profile — the badge keeps count of what's unread.
- 📬 Messages wait. Someone offline gets everything when they return.
- 🔗 A message notification takes you straight to that conversation.
- 🚫 Blocking is a click in the conversation header. A blocked player is told plainly that you aren't accepting messages — no silent void. Manage the list under Settings → Blocked players.
🎯 The match screen is untouched — messages live entirely on the out-of-game surface, where there's room for them.
Messaging is new — if a conversation misbehaves, Report a problem knows the way.
More board on your phone
A space overhaul for phone matches — a slide-out drawer, slimmer strips, and a peek at your hand.
📱 Phone matches got a space overhaul that hands more of the screen back to the battlefield.
- 🗄️ A slide-out Companion drawer tucks secondary tools and info away until you reach for them.
- ➖ Slimmer strips and a midline stack badge trim the chrome framing the board.
- 🃏 A hand peek keeps a sliver of your hand in view without giving it the whole bottom of the screen.
🔧 It came with a run of fixes: the stack opens on its own when a trigger lands, mana pays in a single row, the Scry and arrange rows stay legible instead of wrapping over several lines, a spell sitting on the stack is reachable to tap as a target, and cards resize correctly when the board splits or a panel moves.
Phone play is still evolving — expect more tuning, and a few rough edges along the way.
Fixes & polish
Faster tokens, a pop-out library, richer link previews, and a pile of smaller fixes.
A round-up of smaller fixes from the past week and a half:
- 🪙 Tokens load faster and no longer trail behind real cards, while sibling tokens — two different Clues, say — keep their distinct art.
- 📚 Pop out the Library into a floating window when its top card is revealed, the same as graveyard and exile.
- 🔤 The card-name picker (Pithing Needle and friends) stops leaving stale names on screen as you filter, and lists each name once.
- 🏷️ Card keywords no longer stack redundant ancestors — Landcycling reads as Landcycling, not three cycling keywords at once.
- 👁️ Card previews show a running discard count where an effect counts your discards, and a stuck-blank ability image on the stack heals itself.
- ↔️ A busy battlefield no longer collapses cards into each other — the row scrolls instead.
- 🃏 An uncastable card casts again, multiplayer eternalize costs render cleanly, and right-clicking a stack item docks its yield menu beside it.
- ♿ Out-of-game screens got an accessibility and readability pass: the connection pill announces its status, long announcements get a real "Read more," and the Settings tabs no longer push a phone page sideways.
- 🔗 Sharing an endstep.cc link now unfurls with a title, description, and branded image instead of a bare URL.
Around the table
Player portraits, a chat you'll actually notice, editable table names, resumable bot games, and cleaner deck imports.
🪑 A batch of comforts around lobbies, tables, and decks.
- 🖼️ Player portraits show in the top bar and on lobby seats now, instead of a single letter.
- 💬 Lobby chat opens by default in a spot you'll notice on desktop and tablet, and the table name is clearly the host's to edit — a gold underline, a pencil, and pride of place as the lobby's headline.
- 👤 Open tables show who created each one.
- ▶️ Resume a vs-Bot game from your active matches, the same as an online game.
- 👥 Multiplayer pods no longer freeze when the game needs a choice from a player whose turn it isn't.
- 📊 Multiplayer match history records every seat now, listing all your opponents and counting toward your record.
- 📥 Deck imports read cleaner — a pasted Commander deck with curly quotes or fancy dashes no longer mis-reports "not enough cards," and when a card truly can't be matched, the check names it instead of hiding it behind a count.
- 🗂️ Sideboarding an oversized deck no longer shoves your extra maindeck cards into the sideboard for you.
Truer Magic symbols
Loyalty, Saga lore, Battle defense, poison, and protection now wear authentic Magic symbols you can actually read.
🔣 A pass over the little symbols on cards, so they look right and read clearly.
- 🛡️ Planeswalker loyalty now sits on a clean shield badge, sized to match the power/toughness plate and legible whether loyalty is one digit or three.
- 📖 Saga chapters and Battle defense use their real Magic glyphs, with the numeral showing through again.
- 🌈 Protection and hexproof from a color show that color's sigil, and planeswalker ability costs (+1, −3, 0) render as a proper loyalty badge.
- ☠️ On phone, poison and commander damage use the same skull and sword icons as the desktop card sheet.
Combat and targeting, clearer
Divide combat damage the way you want, damage panels that pre-fill and stick, and targeting arrows that point where they should.
⚔️ Combat and the stack are easier to read — and to control.
- 🩸 Divide combat damage freely. When a creature is blocked by several, you can split its damage however you like, including lethal to the second blocker while sparing the first. This follows the current Magic rules. (Trample still needs lethal on each blocker before it spills over to the defender.)
- 📋 Damage panels pre-fill and stick. Assigning damage starts from a legal split, and your manual edits hold instead of being overwritten. The confusing Auto-Assign button is gone, and Space confirms.
- 🎯 Targeting arrows land where they point. A spell aimed at another spell or a permanent draws its arrow to the nearest card edge instead of through the middle — and a counterspell finally shows an arrow to the spell it's countering.
- 🛡️ Combat reads at a glance. The card detail panel now shows BLOCKING and BLOCKED BY alongside ATTACKING, attack arrows keep their source in view during an Alpha Strike, and token blockers show their real art in the Divide Damage panel.
🔒 Plus: restricted mana — the instant-and-sorcery-only mana some cards make, for one — now carries a small lock in your pool and during payment, with a note on what it's allowed to pay for.
Banned & Restricted — the June 29 update
Deck legality now reflects the June 29, 2026 Banned & Restricted announcement.
⚖️ Deck checks now enforce the June 29, 2026 Banned & Restricted update right away, ahead of the official card data catching up.
- 🚫 Legacy — Candelabra of Tawnos is banned.
- 🚫 Pauper — Seeker of Skybreak is banned.
- 🚫 Brawl — Force of Will, Subtlety, Wash Away, Ugin's Labyrinth, Time Warp, and Temporal Manipulation are banned.
⚠️ A deck holding one of these will flag as illegal in that format.
Alerts when a game's starting
Off-tab alerts when a game's starting, plus small chips when an opponent scries, surveils, or mulligans.
👀 Two ways to keep up with a game without staring at the tab.
🔔 Alerts when it matters. When someone joins your lobby or a game is about to start, you get a heads-up even if the tab is in the background — a desktop notification when Endstep isn't focused (if you've allowed them), a toast and a soft ping when it is. There's a new Desktop notifications switch in Settings, and the old lag before a new arrival showed up is gone.
🕵️ Hidden actions, surfaced. When an opponent scries, surveils, or takes a mulligan, a brief chip now marks it — so those quiet moments don't slip by unseen. Chips carry public information only: that it happened, and how many cards, not which. You won't see a chip for your own actions.
This is new — depending on your browser and its permissions, an alert may occasionally arrive late or not at all.
A sandbox for testing
In games against only bots, flip on Cheats to spawn cards, add mana, and draw — handy for testing decks and interactions.
🧪 Testing a deck or chasing down a bug? Games against only bots can now turn on a Cheats sandbox.
🎛️ Flip the Cheats toggle when you set up a vs-Bot game — it also appears in an all-bot multiplayer pod. In the match it opens a small panel where you can:
- 🃏 Spawn any card straight into your hand by name,
- 💎 Add mana of any color to your pool, and
- 🎴 Draw a batch of cards at once.
🔒 Cheats only show up when at most one human is at the table, and only while it's your turn to act — so a real game against another player stays untouched.
This is a testing aid, not a way to play a ranked match. It's new, and rough in spots.
The stack, redrawn
A cleaner stack — alternative-cost markers on the art, targets listed on the tile, and a panel that sizes itself.
📜 The stack — the pile of spells and abilities waiting to resolve — got a visual rework.
- 🏷️ Cast markers moved onto the art, so an alternative cost (flashback, overload, and the like) reads at a glance without covering the card's name.
- 🎯 Multi-target spells list their targets right on the tile, capped with a "+N more" when there are many.
- 📐 The panel sizes itself — it grows to fit a busy stack, then scales the tiles so nothing quietly scrolls out of view. Resizing the panel now sets a maximum rather than a fixed height, so a single-item stack shrinks and its card grows to fill the room; an overflowing stack scrolls.
🧬 Mutate got a fix along the way: when a mutating creature asks which half ends up on top, you can now pick the spell still on the stack, not only the creature already in play.
Phone play, sharpened
A big tuning pass on the touch match — a resizable decision dock, one-strip phase stops, and more room for the board.
📱 The phone match layout got a wave of hands-on tuning.
- 📏 A decision dock you can size. Drag the grip at the top of the bottom bar to make it taller or shorter — it holds that height between prompts, so the board doesn't shift under your thumb mid-decision.
- 🚦 One phase strip. Phase stops are now a single row down the edge: tap or swipe up on a step for an opponent-turn stop, down for your own, and long-press to skip ahead to it. The current step stays lit — gold on your turn, blue on the opponent's.
- 🧹 More board, less chrome. Scrollbars no longer reserve space on the battlefield, hand, and zone rows; a slim hairline replaces the chunky hand-resize bar; and when a row has cards off-screen, its edge fades with a tap-to-scroll count.
- 👆 Touch that behaves. Bigger, finger-sized buttons for colors, numbers, and mana; drag-to-reorder your hand; a prompt's Skip and Confirm stay pinned while the card grid scrolls; the stack reads bottom-up like on desktop; and animated card effects now play on phone too.
Desktop is untouched. Mobile is still being tuned — if something feels off, the in-game Report a problem button sends it straight from the board.
Small touches that add up
Animation speed, deck ordering, spectator tools, and clearer choices.
A handful of conveniences from the last few days:
- 🎬 Animation speed is now yours to set. A new Settings → Visuals tab lets you pick Default, Cinematic, Punchy, or Minimal, plus an effect-intensity knob.
- 🗂️ Reorder decks inside a folder by dragging — the order sticks.
- 👁️ Spectators get a Leave button and can tap the eye to see who's watching.
- 📋 Show decklist now opens as a real grouped board you can sort, instead of a flat list.
- 🔤 Name-a-card prompts preview each card on hover, so you can see what you're picking.
- 🏷️ Alternative costs (like Fireblast's) now label each option by its cost, so the two ways to cast a spell are easy to tell apart.
Fixes & polish
Readability, stability, and a pile of player-reported bugs.
A round of fixes, much of it straight from in-game reports:
- 📜 Ability and log text on the stack and in the game log reads more clearly.
- 🎯 Targeting is more dependable — clicking a triggered ability on the stack no longer grabs the wrong card, and graveyard choices now group by their owner instead of being mixed together.
- 🖱️ Right-clicking an ability pins a readable view of that ability, and the menu it opens no longer hides behind the preview.
- 🖼️ Card images that fail to load now fall back to a clean text version instead of sitting blank.
- ⏭️ Auto-pass no longer skips past your first main phase.
- ⏳ Longer and multiplayer games are steadier — triggered abilities are less likely to be missed, and a game that drops a prompt can recover instead of stalling.
- 🃏 The card pool is updated to the engine's newest release, bringing in more recent cards.
- 💬 Chat now filters profanity, and profane usernames are turned away at signup.
- ✨ Plus a batch of smaller touches — reveal toasts pause when you hover them, friends-list names link to profiles, face-down power/toughness, scry legibility, zone dialogs, and theme-matched tooltips.
Momir Basic — play without a deck
No deckbuilding. Each turn, pay X and roll a random X-drop creature.
🎲 A new way to play when you don't feel like building a deck. Momir Basic hands you sixty basic lands and the Momir Vig avatar in the command zone. Tap mana into it and it conjures a random creature of that cost — the bigger the payment, the bigger the roll.
▶️ Launch it from Quick Play to take on the bot. No decklist, no sideboard — just lands, luck, and what you do with whatever shows up.
A denser match layout on phones
More room for the board, with phases, the stack, and your zones a tap away.
📱 The in-match layout on phones has been reshaped to give the battlefield as much room as possible.
- 🚦 Phase lanes run down the outer edges — all twelve steps, the current one lit, your stops gold and the opponent's blue. Tap a step to toggle a stop.
- 📜 The stack appears as a floating overlay the moment something lands on it, then steps aside when it's your turn to decide.
- 🪦 Tap a graveyard or exile chip to swap your hand for that pile in place; tap your hand count to snap back.
- 💬 Log, Reveals, and Chat live in one persistent top row.
👆 Bigger touch targets and keyboard support came along with it. Desktop is unchanged.
Multiplayer pods — early access
Commander and free-for-all pods are here — fill the empty seats with friends or bots.
👥 Endstep now seats three and four players at one table. Spin up a Commander or free-for-all pod and the board reshapes into a tiled arena, so you can see the whole table at once — every life total, hand, and battlefield in its own corner.
🤖 Short a player? Drop a bot into any open seat. Each seat in the lobby has an Open / Bot switch — pick a deck and the engine takes the chair. Run a full pod solo against three bots, or mix friends and bots however you like.
⚔️ One-on-one duels play the same as before.
Pods are early and still in heavy development — expect rough edges and bugs along the way.
Introducing "What's New"
A quiet nudge whenever there's something new since your last visit.
🆕 Endstep now tells you what's changed since you last played.
👀 When there's something new, a small "See what's new" chip appears — click it to catch up on every update you missed, newest first, each with its date. No pop-ups in your way, nothing during a match.
📖 You can reopen this any time from What's New in the menu.
Notes are written by hand, only when there's something worth sharing — so this stays signal, not noise.
Fixes & polish
Card art, readability, audio, and login fixes across the board.
A round of smaller fixes from the last couple of days:
- 🖼️ Card art is more reliable — tokens and double-faced cards no longer borrow the wrong picture, blinked cards keep their art, and token images a strict browser used to block now load. When an image truly can't be found, the card falls back to a clean, readable text version instead of a broken frame.
- 👁️ Card preview no longer cuts off long rules text when there's room to show it.
- ✅ Deck counts and legality now read consistently across the editor and game, with clearer messages about what to fix.
- 👑 Companion and Commander effects show up where they belong instead of as an odd extra card.
- 🔇 Audio no longer leaks the ambient track past mute.
- 🔤 Card names read correctly inside keyword reminders.
- ⏭️ The auto-pass indicator got a cleaner look.
- 🔑 Discord login no longer trips over a stale browser cookie.
Report a problem, right from the game
Hit a bug or have an idea? Report it without leaving the match.
🐛 See something wrong — or think of something better? Right-click the board (or open the board menu on mobile) and choose "Report a problem."
📝 A quick form lets you flag it as a bug or a suggestion, describe what happened, and send it in. You can paste or attach more. No account hunting, no leaving your game.
Every report sent makes Endstep better, faster.
Phase stops, redrawn
The phase rail is now a row of toggles — decide exactly where the game pauses for you.
🚦 The row of phase markers down the side of the board got a rework. Each phase is now a toggle — switch on the ones where you want the game to stop and hand you priority, and leave the rest to flow past untouched.
⏯️ You can also part or relock the current phase on the fly, so you can stop where it matters this turn without committing to it forever.
Endstep on your phone
A full phone-first redesign — play, draft, and build decks in portrait, and install it like an app.
📱 Endstep is now built for your phone, top to bottom. Play full matches in portrait on a touch board made for thumbs: a bottom drawer you drag up for your hand, zones that glow when something's castable, and a midline you can slide to give either half of the battlefield more room.
🛠️ It isn't just the match. Login, deck building, drafting, the cube editor, and the sideboard were all rebuilt for small screens — heavy dialogs become thumb-reachable sheets, and a new mobile sideboard swaps cards with a single tap.
📲 You can also install Endstep like a native app — add it to your home screen and it runs full-screen, with the match going edge-to-edge while you play. Look for the install hint, or find it under App in Settings.
Mobile is new and still being tuned — if something feels off on your device, the in-game Report a problem button now sends it straight from the board.
The board reacts
Damage, deaths, counters, and triggers now play out with motion on the battlefield.
✨ Spells and combat now leave a mark on the board. Damage flashes, dying creatures dissolve to ash, counters land with a beat, and triggers and combat get a little lean — all rendered right over the cards in play.
🎨 It's purely cosmetic — it never changes the rules and never blocks a click, and rapid-fire plays are kept from piling up so the board stays readable while you play.