A joystick.tv Chat Bot · Built by HARPAX
BlooBot brings a loyalty streak economy, schedule management, and viewer engagement tools to your stream. Viewers build chat streaks by showing up and chatting on consecutive live streams, then cash those streak days in against your tip menu. Mods publish a weekly schedule, optional 4:20 and stream-duration announcements keep the chat lively, and every channel's economy rates and features are independently tunable in chat. Self-hosted — no third-party platforms, no data sharing.
Install from Marketplace →New to BlooBot? Follow these steps to go from install to fully configured.
!blooconfig timezone ET (swap ET for your zone).
Supported shortcuts: ET, CT, MT, PT, AKT, HT,
BST, CET, AEST, JST; full words like Eastern, Central, Mountain,
Pacific, Alaska, Hawaii, UK; or any IANA name like America/Chicago.
!schedule.
Example: !setsched mon 8pm wed 6pm fri 6pm. Use sub for subscriber-only days:
!setsched sub sat 3pm. Run !schedule to confirm it looks right.
!blooconfig streak_rate 500 sets the tokens of tip-menu purchasing power earned per streak day (default: 1000);
!blooconfig cashin_cooldown 10 sets minutes a viewer must wait between !cashin redemptions (default: 0, no limit);
!blooconfig milestone 5 sets how often BlooBot shouts out a viewer's chat streak — every Nth stream they hit
(default: 10; set to 0 to disable). This is separate from stream_milestones below.
!blooconfig 420_local on posts a single 4:20 PM announcement each day when your timezone hits 4:20.
!blooconfig 420_all on celebrates every 4:20 happening around the world (fires many times a day, naming a different city each time).
!blooconfig stream_milestones on posts a shoutout as your stream passes duration milestones (30m, 1h, 1.5h, 2h…).
!blooconfig webhook https://discord.com/api/webhooks/…. Once it's set, you or a mod post the announcement on demand by typing
!golive (or !golive Come hang out! for a custom message) — BlooBot then posts a "Going Live" message with your stream link to that Discord channel.
Use !blooconfig webhook clear to remove it.
!blooconfig show to print all your current settings to chat and make sure everything looks right.
Everything BlooBot brings to your stream.
Viewers earn a streak day each live stream they chat in; missing a stream resets them to one. Streak days become tip-menu purchasing power they spend with !cashin. Rate and cooldown are tunable per channel.
Subscribers get the cheapest tip-menu pricing and access to sub-only items. They can also stash one low-cost item per stream with !bank and pull it out later with !redeem.
Mods publish a weekly schedule with !setsched (mark sub-only days with sub). Viewers check it any time with !schedule, shown in your timezone. Each channel's schedule is independent.
Optional 4:20 PM celebrations while you're live. 420_local fires once a day on your own clock; 420_all joins every 4:20 around the world. Run either, both, or neither.
Optional chat shoutouts as a live stream passes duration marks (30m, 1h, 1.5h, 2h…). Toggle on with !blooconfig stream_milestones on.
Save a Discord webhook, then post a "Going Live" announcement with your stream link on demand — you or a mod type !golive (or !golive your message) when you start.
Tune economy rates, cooldowns, timezone, 4:20 modes, milestones, and the webhook live in chat with !blooconfig — mods only, no restart required. !blooconfig show prints everything.
Viewers get the next Formula 1 race weekend with !f1sched — every session time shown in your channel's configured timezone.
BlooBot runs on its own hardware with no third-party platforms and no data sharing. Your settings, schedule, and streak data stay isolated to your channel.
Available in every BlooBot channel.
| Command | Who | Description |
|---|---|---|
| !streak | Anyone | Show your current chat streak, your best-ever streak, and how much tip-menu purchasing power you have for !cashin. |
| !cashin [item] | Anyone | Spend streak days on a tip-menu item, matched by name. Subscribers get the cheapest pricing and sub-only items; non-subs can't redeem sub-only items. |
| !bank [item] | Subscribers | Stash one tip-menu item costing 100 tokens or less for later — once per stream. BlooBot asks you to confirm with Yes/No. |
| !redeem [item] | Subscribers | Pull a previously banked item out and trigger it. Confirm with Yes/No. The item must still be active on your live tip menu. |
| !banked | Anyone | List the items you currently have banked and waiting to redeem. |
| !schedule | Anyone | Show this channel's remaining stream times for the week, in your configured timezone. |
| !setsched [day] [time] | Mods | Set stream times (e.g. mon 8pm wed 6pm). Prefix a day with sub for sub-only days. !setsched clear wipes the schedule. |
| !golive [message] | Mods | Post a "Going Live" announcement with your stream link to your Discord webhook. Requires a webhook set via !blooconfig. |
| !f1sched | Anyone | Show the next Formula 1 race weekend's sessions, in your configured timezone. |
| !blooconfig [setting] | Mods | View and adjust this channel's bot settings (see the full table below). Run on its own for a setup guide. |
| !help | Anyone | List the commands available in this channel. |
A loyalty system that turns showing up into tip-menu rewards.
!streak.streak_rate tokens (default 1000). A viewer spends them on a tip-menu item by name with !cashin [item], and BlooBot deducts only the streak days needed.streak_rate and rounded up, so a redemption never costs less than the item is worth.A 1000-token item costs 1 streak day.
A 2500-token item costs 3 streak days (2500 ÷ 1000 = 2.5, rounded up).
Set !blooconfig streak_rate 500 and that same 1000-token item now costs 2 days — a lower rate makes rewards "cost" more streak days.
Subscriber banking. Subscribers can also set aside one inexpensive item (100 tokens or less) for later with !bank [item] — once per stream, confirmed with a Yes/No reply. It waits in their inventory (!banked) until they cash it out with !redeem [item], as long as that item is still active on your live tip menu.
Streak milestones. When a viewer's streak hits a multiple of your milestone setting (default every 10 streams), BlooBot shouts it out in chat. Set !blooconfig milestone 0 to turn those off.
Every setting is per-channel and changes instantly in chat. Mods and the broadcaster only. Run !blooconfig with no options for a quick setup guide, or !blooconfig show to print your current values.
| Setting | Default | What it does |
|---|---|---|
| show | — | Print all of this channel's current settings to chat. |
| streak_rate <n> | 1000 | Tokens of tip-menu purchasing power earned per streak day. Lower = redemptions cost more streak days. |
| milestone <n> | 10 | Announce a viewer's chat streak every Nth stream they reach. Set to 0 to disable. |
| cashin_cooldown <min> | 0 | Minutes a viewer must wait between !cashin redemptions. 0 means no cooldown. |
| timezone <tz> | UTC | Your timezone, used by the schedule, 4:20, and milestone timing. Accepts ET/CT/PT…, full words (Central, Pacific…), or IANA names (America/Chicago). |
| webhook <url> | not set | Discord webhook URL used by !golive. Use webhook clear to remove it. |
| 420_local <on|off> | off | Post one 4:20 PM announcement per day on your own timezone, while live. |
| 420_all <on|off> | off | Join every 4:20 happening worldwide while live — fires many times a day, naming a different city each time. |
| stream_milestones <on|off> | off | Post a shoutout as a live stream passes 30m, 1h, 1.5h, 2h… marks. |
Get BlooBot running in your channel in under a minute.