Studio Queues
Chat commands every commission streamer should set up

Studio Queues Team · Last updated June 24, 2026

Chat commands every commission streamer should set up

Learn how to set up essential Twitch chat commands like !queue and !commission with Nightbot or StreamElements for seamless booking and queue management.

Three questions on rotation. "What are you working on." "Are commissions open." "How much for a full body."

You answer the first one, finish the line you were on, get the second one. You answer that, lose your place, get the third one. Half an hour goes by and you've drawn maybe four minutes of actual lineart. Half of chat didn't get a response because you were heads-down. The same conversations are going to happen on the next stream and the one after.

Chat commands fix this. Not all of it, but the repeat questions. The list below is the one that actually handles a commission stream. Names are conventional, not fixed. What matters is that they're set up and chat knows they exist.

Pick a bot first

Most of these commands need a chat bot to run them. The common options on Twitch are Nightbot, StreamElements, and Fossabot. Any of them handles the basics. Nightbot is the easiest to set up and the most documented. StreamElements bundles overlays and a loyalty system if you want those. Fossabot is newer and cleaner but the integrations are thinner.

For the commands in this post, Nightbot is fine. Switch later if you outgrow it.

The bot has to be added to your Twitch channel and given moderator status. Once it's in, you set up commands through the bot's web dashboard, not in Twitch itself.

The command list

!queue

The most important one. Chat is going to ask "where am I" or "how long is the queue" constantly. The version that works is one that pulls live data, not one you edit by hand.

The static version is a custom command that returns text like "Current queue: 4 commissions, next slot opens around the 25th." It's fine until the queue changes, which is daily, and then it lies until you remember to update it. Most artists set this up, forget to update it, and end up just removing it.

The dynamic version uses the bot's URL fetch feature. In Nightbot, that's $(urlfetch). You point it at a URL that returns the current queue as plain text, and the bot reads that URL every time someone runs the command.

Studio Queues provides this endpoint in your artist settings under Overlays. The URL sits next to your OBS overlay URL with a copy button. The setup in Nightbot is one line:

!addcom !queue $(urlfetch <your queue URL>)

Paste that into your chat with the real URL, the bot creates the command, done. The response is current every time without you touching it, because the queue data is already live on the platform. Same token as the OBS overlay, so the security model is the same: token-gated, respects your private-queue toggle if you have one set, no setup beyond the paste.

If you're not on a platform, you need a script or a small endpoint that returns the queue summary as text, which means you're building the data layer yourself. It's a lot more work and you have to keep it running, but the principle is the same.

!commission

What chat sees when they want to actually book. Should answer "are commissions open" and link to wherever they go next.

The static version is two manually edited messages, one for open and one for closed, that you swap when you change state. It works but it lies any time you forget to flip it.

The dynamic version uses the same URL fetch pattern as !queue. Studio Queues provides a status endpoint alongside the queue one, in the same settings card with the same copy button. The setup looks like:

!addcom !commission $(urlfetch <your status URL>)

The response includes whether commissions are currently open or closed and the link to your booking page, generated live from your platform state. You toggle commissions open or closed once in your dashboard, and the !commission response updates everywhere it's used. No bot edits, no message swapping at midnight when you decide to close.

The link in the response should go to one page where chat can see your offerings, your prices, and submit an inquiry without bouncing across four tabs. The public commission page on Studio Queues is built to be exactly that: prices, intake form, click-to-accept TOS at submit, all on one URL. If you're stitching it together yourself, a single landing page that consolidates the same information works as a fallback, you just have to maintain it.

!prices

The single most asked question. The version that works is short and points to the full page, not a wall of text in chat.

The static version is a hand-written response like "Pricing: bust $XX, half body $XX, full body $XX. Full menu at [link]." Fine until you raise your prices and forget to update the bot, at which point chat is quoting prices you don't honor anymore.

The dynamic version uses the same pattern. Studio Queues provides a pricing endpoint that returns your current rates from your platform settings:

!addcom !prices $(urlfetch <your prices URL>)

Update your prices once in your dashboard and !prices reflects them immediately. The response includes a link to your full menu for anyone who wants the complete breakdown including add-ons.

If you're rolling your own, the principle is the same. Build an endpoint that returns plain text, point the bot at it, update it in one place when prices change. Chat doesn't want to read a price sheet in their chat window. They want a number and a link. Give them both.

!tos

Your terms of service. Even if your TOS lives at the bottom of your commission page, having it as a command makes it linkable in chat instantly when somebody asks "what's your revisions policy" or "do you do NSFW."

"Terms of service: [link]. Short version: [one or two sentences of the highlights]."

Highlights worth surfacing: revisions included, what counts as out-of-scope, payment policy, what you don't draw. The full TOS is at the link for anyone who wants to read it.

The link should point to a TOS that holds up in a dispute. A static page linked in a bio is what's called a browsewrap agreement and tends to lose chargeback cases because there's no proof anyone read it. Studio Queues records a click-to-accept on every commission submission with a timestamp, so the !tos link points to a real agreement, not a hopeful one. The longer breakdown is in the click-to-accept TOS guide.

!discord and !socials

Two separate commands, or one combined. People want to follow you off-stream and they're not going to find the link buried in your panel.

"Discord: [invite link]"

"Socials: Twitter [link], Instagram [link], Bluesky [link]"

Keep the link list short. Three platforms is plenty. If you have a Linktree or a personal site, point at that instead and let it host the full list.

!lurk

Chat convention. Someone says they're going to lurk, they fire the command, you don't have to acknowledge it personally. The bot does it for you with a nice response.

"Thanks for lurking, [user]. The art continues."

Trivial command, sets a friendly tone, takes ten seconds to add.

!commands

A meta-command that lists the other commands. Necessary because new chatters don't know any of this exists.

"Available commands: !queue, !commission, !prices, !tos, !discord, !socials. More at !faq."

Set a five-minute cooldown so it doesn't spam.

!faq

For the questions that come up enough to be expected but not quite enough to deserve their own command. "Do you do refunds." "Can I tip extra." "How do you take payment."

Point at a page on your site if you have one. If you don't, the bot can hold a paragraph-length response, just don't make it scroll past chat's view.

Cooldowns and who can use what

Two settings matter on every command.

Cooldown. How long between uses. Default to thirty seconds on user-facing commands and five minutes on the meta ones like !commands and !faq. Without cooldowns, a single user can spam !queue twenty times and clog the chat.

User level. Who can run it. Most of these are "everyone." A few should be mod-only, specifically the ones that change state (!setqueue, !open, !close, if you use them).

Both settings live in the bot's command dashboard, on each individual command. Two seconds to set, prevents the most common chat command failure modes.

Mod commands worth having

Three commands that only your mods (or you) should be able to run.

!so for shoutouts. When somebody in chat is a fellow artist or a returning client, a quick !so [user] drops their channel link. Keeps things friendly without the typing.

!open and !close. If your bot supports variables, these can flip the !commission response between open and closed text. If not, they're shortcut commands you edit yourself when you change state.

!setqueue [number] if you're not using a dynamic queue. Lets you update the queue count in chat without leaving the canvas. Bot replaces the text in !queue with the new number.

Skip these if your queue is already dynamic. The whole point of the dynamic version is that you don't need a manual override.

Commands worth skipping

Most chat command lists you find online were written for gaming streamers and then copied around. A few of them get recommended for art streams where they don't fit.

!uptime. How long the stream has been running. Useful for game streams where people are tracking record attempts. On a commission stream, nobody cares, and the answer is "long enough that I need a break, probably."

!specs. Your PC build. A gaming-stream convention. On art streams the relevant question is your tablet model, and even that comes up rarely enough that you can just answer it when it does.

!game. Twitch sets the category. The command is redundant.

!sub plugs. The bot reminds chat to subscribe every ten minutes. It reads as needy on art streams in a way it doesn't on bigger entertainment channels. Skip the auto-plug, mention subs once at the start and once at the end if you want.

!followage. How long someone has followed you. Cute, not useful, eats chat space.

The principle: every command you add is one more thing in chat. Add the ones that answer a real question, skip the ones that just fill the channel with bot text.

The OBS overlay does the rest

Chat commands answer the questions that come in as text. Most of the same information also belongs on the screen so people don't have to ask in the first place. The queue visible as an OBS overlay handles the "where am I" question before anyone types it. The commands handle everyone who joins mid-stream and didn't see the overlay yet.

Both layers are useful. The overlay is passive, always there for people watching. The commands are active, on demand when someone has a specific question. Set up both, the chat-question load drops noticeably and you actually get to draw.

Setup time

The whole list above is maybe forty minutes of work if you're starting from zero. Add the bot, paste in the commands, set the cooldowns, test each one from a second account or have a friend run them.

The dynamic commands (!queue, !commission, !prices) take longer to wire up. On Studio Queues it's three URL pastes into the bot, about a minute total, because the three endpoints sit in the same dashboard card with copy buttons. If you're rolling your own, fifteen minutes per endpoint if you have them ready, an hour or two each if you have to build them. Either way it's worth it. Static commands that depend on the queue or your pricing are the single most common dead commands on art channels because nobody remembers to update them.

The whole point of any of this is the same as the point of the scene structure: the stream stops being held together by you answering everything in real time. Chat asks a question, the bot answers it, you keep drawing.

That's the goal. The list above gets you there for the price of an afternoon of setup.