September 22, 2026
The Wheel Comes to Every Battle
By Emilis
The prompt wheel used to be a streamer thing. Now every battle can spin it, it can't be gamed, and your next room remembers how you like to play.

Two things landed today, and they were both requests I had been hearing for a while. The first: the spinning prompt wheel, which until now only existed on streamer battles and as the standalone party page, is now a setting in every ordinary code-join battle. The second: your room remembers how you like to play. Set up five rounds of Decade and Bangers on the wheel once, and the next room you host opens already set up that way.
Neither of these was a big build, and that is most of what this post is about. The interesting part was not the code. It was deciding what the wheel should be allowed to do in a room of friends, which turned out to be a different question from what it is allowed to do on a stream.
Why did normal battles not have the wheel already?
Because the wheel was built for streamers first, and a stream is a different room. On a stream there is exactly one person picking prompts, the streamer, every single round, and chat is watching them do it. The wheel there is a show: spin it on camera, react to where it lands, maybe tweak the wording, lock it in. The streamer curates their own prompt pack and can type whatever they like onto it, because it is their channel and their show.
A code-join battle is a group of friends taking turns. The person picking the prompt changes every round, and everyone else in the room is a competitor, not an audience. That changes what "fair" means. A feature that is harmless when one trusted host controls it becomes a loophole when it rotates around a table of people who are all trying to win.
So the wheel had actually been sitting in the normal game, switched off, for a while. I pulled the setting before it shipped because it was not ready to be fair yet, and "not ready to be fair" is a worse bug than "not ready" in a party game.
The rule: custom prompts only live in Custom
The one rule I wanted to hold everything else to was simple. If you picked a prompt pack, the prompts come from that pack. If you want prompts nobody wrote but you, that is what the Custom setting is for, and it says so on the tin.
The streamer version of the wheel lets the picker edit the prompt after it lands. On a stream that is a feature: the streamer rewords "songs for a road trip" into "songs for a road trip with your ex" and chat loves it. In a room of friends, the same edit box is a back door. The wheel lands on a prompt you don't like, you quietly retype it into one your song fits perfectly, and the Decade pack everyone agreed on is gone without anyone noticing.
So in a normal battle the wheel's answer is the answer. It shows you what it landed on, and you either use it or spend a respin. There is no box to type into, because the moment there is one, every theme is secretly the Custom theme.
Why does a respin cost a reroll?
A respin costs a reroll because otherwise the wheel is just a slower way of choosing whatever you wanted. If spinning again is free, you spin until it lands on the prompt your song was made for, and every other player is waiting on you while you do it.
The list picker already had a reroll budget: the host decides how many times the picker may throw away the options, and it resets every round. The wheel now spends from the same budget. Your first spin of the round is free. Every respin after that costs one, and when you run out, the wheel's next answer is final. Set rerolls to zero and the very first spin is the prompt, which is honestly the most fun way to play.
I went back and forth on whether redrawing the wheel's slices and respinning should be two separate buttons with two separate budgets. They collapsed into one. From the picker's side both mean "not this one, give me another", and two budgets is one more thing to explain to a room that just wants to start.
So how does Custom work on the wheel?
The host writes the wheel. With Custom and the wheel both switched on, the settings panel gives the host a box to type prompts into, one per line, at least two. That list becomes the wheel for the whole battle, and every picker spins it in their turn.
The alternative I seriously considered was the party version: every player types one prompt in the lobby, and the wheel is made of everyone's ideas. I love that idea and it might still happen. But it is a whole new step in the lobby for a feature that works well enough in its simpler form, so the first version keeps it to one author. The host is already the person setting the rules, so they are the natural person to write the wheel.
The rotating pickers still cannot reword what they land on. Even in Custom mode, the prompts are whatever the host wrote before the battle started, and nobody gets to change them mid-game once they can see which prompt suits their own song. If you want total freedom for each picker, Custom on the list setting still lets the picker type any prompt they like, exactly as it always did.
Why was it so easy to build?
Because almost all of the hard parts were already solved, twice. The wheel animation, and making every phone in the room watch the same spin land on the same slice at the same moment, was built for streams months ago. A stream is a much harsher test than a living room: lots of viewers, laggy connections, a streamer who clicks things fast. Anything that survives that is comfortably fine for four friends on a sofa.
The settings side was already there too. Rounds, prompt packs, how prompts get picked and how many slices the wheel has were all real settings for streamer battles. Bringing the wheel to normal battles was mostly putting the switch back into a settings panel that had been built to hold it, and then writing the three or four rules above into the screen where the prompt gets chosen.
That is the part of this project I am proudest of in hindsight. When the streamer features went in, I made a point of building them as a different shape of the same game rather than a second game bolted onto the side. Features built that way tend to come back the other way for free. The wheel took an afternoon because the streamer version had already paid for it.
The bug I found on the way
Testing the wheel across a full battle turned up something that had been hiding: from round two onwards, the wheel quietly shrank to five slices. Round one drew the full wheel, the next round drew five prompts, the number the list picker uses, because the code that deals the next round's prompts never asked which picker the room was using.
Nobody had reported it because nobody could: the wheel was switched off in normal battles, and streamer battles keep their wheel from round to round, so they never deal a fresh one. It is a nice example of why switching something back on deserves a proper play-through rather than a glance at round one. Round two now gets the same size wheel as round one.
Does Aux Battles remember my settings without an account?
Yes. Your settings are remembered by the browser you host from, with no account and no login, the same way the site already remembered your player name. Host from the same phone or laptop next time and your room opens with the rounds, prompt packs, music sources and wheel setup you played with last. Host from a different device and you get the defaults, because there is no account for the settings to follow you around in.
I wanted this for the most boring reason possible: I host a lot of games, and I was setting up the same configuration by hand every single time. Most groups have a way they like to play, and the game should learn it after the first night instead of asking again.
Why save when the battle starts, not with a button?
Because the settings worth remembering are the ones you actually played. My first plan remembered your settings every time you saved the settings panel. The trouble is that people fiddle. They try the wheel, change their mind, pick eight rounds as a joke, change it back. Remembering every one of those saves means your next room opens on whatever you happened to click last, not what your group actually played.
So there is no "remember these settings" button to find and forget. The moment you press Start Battle, that setup becomes the one your next room opens with. Pressing start is the clearest signal a host ever gives: this is how we are playing tonight. The settings panel still has its normal save button for the room you are in; remembering for next time just rides along with starting the game.
The new room also opens already set up, rather than opening on the defaults and changing a moment later. That sounds like a small thing, but it means a friend who joins in the first second sees the real settings, not a flash of the wrong ones. And if you ever want a clean slate, there is a "Reset to defaults" link at the bottom of the settings panel.
Being careful with what gets remembered
Anything a browser remembers can go stale. A prompt pack you liked might be renamed or retired, a setting might change its options, and a saved setup from months ago should not be able to build a broken room. So remembered settings are checked against what the game offers today every time they are read. Anything that no longer makes sense quietly falls back to the default, one setting at a time, so one stale choice never throws away the rest.
If a browser will not remember anything at all, a private window for example, nothing breaks. You just get the defaults, exactly like before this feature existed. A remembered preference is a convenience, and a convenience should never be the reason a game fails to start.
And a Custom wheel you wrote for one battle is kept even if the next battle uses a normal prompt pack, so switching Custom back on later does not mean retyping your list.
What I would take from this
The code was the easy part, and it was easy on purpose. The real work was one question: who is this for, and what would that person try to get away with? A streamer and a room of friends want the same wheel for completely different reasons, and a rule that is generous in one room is a loophole in the other. Once I wrote the rule down in one sentence, custom prompts live in Custom, every other decision followed from it: the edit box goes, respins cost something, and the host writes the Custom wheel before anyone can see which prompt suits them.
Spin it at your next battle. Set rerolls to zero if you are brave.