Kick paid moments need two queues
A Kick chat message and a paid browser-source moment are not the same surface. Chat moves fast and disappears. A browser-source alert lands on the stream, competes with the host, and may be clipped later. If a viewer pays for TTS or a visual alert, moderators need to decide what happens in the paid queue even if the related chat message gets deleted.
Kick's developer docs show that the Chat API can send chat messages and delete chat messages with scoped authorization. Kick's moderation docs cover moderation actions separately. That is useful, but it also proves the point: chat actions and production actions are different tools. Streamers need a workflow that keeps them connected without making one automatically overwrite the other.
StreamableBot should show Kick paid events in a production queue with state: needs review, approved, rejected, played, replay owed, held, or follow-up needed. Chat moderation can happen alongside that queue, but the browser source should not blindly play whatever chat is doing.
- Chat message: public text inside Kick chat.
- Paid alert: browser-source moment on the stream.
- TTS: audio playback that needs stronger review.
- Delete: removes a chat message from public chat.
- Timeout: limits a user in chat.
- Reject: prevents a paid moment from playing.
Use delete for chat, reject for production
When a Kick message breaks chat rules, moderators may delete it or timeout the user. When a paid alert breaks stream rules, moderators should reject or hold the alert in the paid queue. Sometimes both actions happen. Sometimes only one happens.
For example, a viewer may post spam in chat and also submit a perfectly safe paid sticker. The spam gets deleted, but the sticker can still play if the streamer allows it. Another viewer may post a normal chat line and submit unsafe TTS. The chat can stay, but the TTS gets rejected. Keeping the states separate makes the decision fairer and easier to explain.
Do not make moderators choose between over-punishing and under-protecting. Give them separate controls and a linked history.
- Delete chat when the public message breaks chat rules.
- Timeout when the user behavior needs a temporary stop.
- Reject paid alert when the on-stream moment breaks reward rules.
- Hold paid alert when a senior mod or streamer needs to decide.
- Replay paid alert only when production playback failed.
Map Kick API scopes to real roles
Kick's Chat API lists chat:write for sending messages and moderation:chat_message:manage for deleting chat messages. That does not mean every moderator should have every integration permission. Access should match the job.
A chat mod may need native Kick moderation tools. A production mod may need paid queue controls but not account-level stream settings. A bot integration may need permission to send status messages or delete messages according to the broadcaster's setup. A payment support person may need follow-up logs but no chat delete control.
Role separation keeps mistakes smaller. If a production helper only needs to pause TTS, do not give them broad channel access. If a chat mod only needs to delete messages, do not make them own paid alert refunds.
- Chat mod: public Kick chat moderation.
- Production mod: paid queue, browser source, and replay controls.
- Producer: scene and alert mode decisions.
- Account owner: payment follow-up and high-risk settings.
- Bot integration: only the scopes needed for its actions.
Write paid alert rejection reasons
Kick chat can be direct, fast, and rowdy. Paid alerts need clear rejection categories before the stream starts. Do not make moderators invent reasons while chat is watching. The categories should match public rules: slur, harassment, sexual content, dox risk, impersonation, sponsor conflict, unreadable spam, wrong mode, or duplicate.
The viewer-facing rejection copy should be calm. Message rejected for safety rules. TTS paused during sponsor segment. Upload expired after the segment ended. Paid alert held for review. Avoid public shaming. The goal is to protect the show and move on.
Log the category with the paid queue item. If the same category repeats all night, fix the command copy, price, or mode rules before the next stream.
- Safety or harassment.
- Dox or private info.
- Sexual or explicit content.
- Sponsor or family-friendly conflict.
- Unreadable spam.
- Wrong stream mode.
- Duplicate or cooldown violation.
- Needs senior review.
Browser-source playback needs its own safeguards
OBS Browser Source can run web layouts, images, video, and audio inside OBS. That power is exactly why paid alerts need production controls. A Kick chat delete might remove text from chat, but it will not automatically stop a browser source from playing a queued TTS message unless your queue is designed to do that.
Use an explicit playback gate. For safe low-risk alerts, auto-play may be fine. For TTS, uploads, and high-interruption moments, require approval. For sponsor or guest modes, pause the queue or only allow approved categories. For raids or chat spikes, slow the queue instead of letting paid moments stack uncontrollably.
Also keep a kill switch. If something unsafe reaches the scene, moderators need to hide or mute the browser source immediately. That is separate from deleting chat.
- Auto-play only low-risk visual alerts.
- Require approval for TTS and uploads.
- Pause paid queue during sponsor, guest, or unsafe moments.
- Give mods hide, mute, skip, and replay controls.
- Log playback state separately from chat moderation state.
Use public commands that match the workflow
Viewer commands should say what is true right now. If TTS requires mod approval, the command should not say instant TTS. If Upload Corner is paused, the upload command should say paused. If Kick chat moderation and paid alert moderation are separate, the rules should say paid moments can be rejected even when chat is not timed out.
This prevents the classic argument where a viewer says but my chat message was allowed. The answer is that paid on-stream moments have stricter rules because they hit OBS, audio, and the VOD. Write that plainly before purchase.
Keep the command short. Link the full rules elsewhere. The live command should explain open or closed, review or instant, and the main rejection categories.
Also write a command for incident state. If a browser source is down, if TTS is paused, or if Kick chat is in cleanup mode after a spam wave, viewers should see that status before paying for a moment. The worst version is taking paid alerts while every moderator already knows the queue is paused. That creates avoidable refund reviews and makes mods look like they are ignoring people.
- !tts says open, paused, or review-only.
- !alerts says which paid alerts are open.
- !upload says whether images are accepted.
- !rules links to the full paid moment policy.
- !queue gives a rough state without promising exact timing.
- !status says whether paid browser-source playback is healthy, paused, or delayed.
Incident order for a bad paid alert
When a bad paid alert reaches the public scene, move in order. Hide or mute the browser source first. Delete or timeout related chat second if needed. Mark the paid queue item with the reason third. Tell the streamer only if they need to react. Then decide after the stream whether payment follow-up is owed.
That order matters because it protects the live show before it protects the paperwork. If a mod tries to debate the viewer in Kick chat while the browser source keeps playing, the audience still sees the problem. If a producer hides the source but never logs the item, the team cannot explain what happened later.
- Hide or mute the browser source.
- Delete the related chat message if it breaks chat rules.
- Timeout only when user behavior needs a stop, not as a reflex.
- Mark the paid queue item rejected, skipped, or failed.
- Escalate payment review after stream if the public rules require it.
After-stream review for Kick alerts
After the stream, compare chat moderation and paid queue decisions. Did deleted chat messages also have paid alerts? Did paid alerts get rejected without chat action? Did timeouts reduce queue abuse? Did one reward cause most issues? Those answers tell you whether the workflow is fair.
Do not treat every timeout as a payment problem. A viewer can behave badly in chat and still have a paid item that was fulfilled earlier. Also do not ignore payment follow-up when a paid alert failed for technical reasons. The audit log should separate behavior, content, playback, and payment.
Then adjust the next stream. Tighten copy, raise price for high-interruption rewards, add cooldowns, or give mods a better pause button. The review should lead to one or two changes, not a giant policy rewrite every time.
- Count deleted messages linked to paid queue items.
- Count rejected paid alerts by reason.
- Count timeouts during paid queue spikes.
- Find browser-source failures and replay causes.
- Update commands and mod notes before the next Kick stream.
Other resources
Use these references when connecting Kick chat moderation, paid alert queues, and OBS browser-source playback.
- Kick Dev Docs: Chat API.
- Kick Dev Docs: Moderation API.
- Kick Dev Docs: Scopes.
- OBS Studio: Browser Source.
- StreamableBot features.
Quick answers
Should deleting a Kick chat message also reject a paid alert?
Not automatically. Chat deletion handles public chat. Paid alert rejection handles what appears in OBS. Link the history, but let moderators make the production decision separately.
Who should control Kick paid alert moderation?
A production mod or trusted moderator should control paid queue approval, pause, skip, replay, and rejection. Chat mods can handle public chat, but paid browser-source moments need separate production judgment.
What should Kick paid alert rejection copy say?
Keep it short and factual: rejected for safety rules, wrong mode, sponsor-safe mode, unreadable spam, duplicate, or held for review. Do not turn rejections into public arguments.
Can StreamableBot send or moderate Kick chat directly?
Kick's developer docs expose chat and moderation APIs with scoped permissions. Any bot workflow should use only the permissions it needs and keep chat actions separate from paid alert playback decisions.
