⚠️ Archive Notice: This plugin is not compatible with backend infrastructure changes in Firebot 5.67 and higher. The plugin will no longer be updated.
THIS PROJECT IS NOT ASSOCIATED WITH FIREBOT OR KICK.COM AND IS NOT ENDORSED OR SUPPORTED BY THEIR DEVELOPERS OR ANYONE ELSE.
ALL DATA STRUCTURES AND EVENTS IN THIS INTEGRATION -- EVEN THOSE THAT SEEM TO MAP CLEANLY -- ARE TOTAL HACKS. ALL EVENTS ARE IMPLEMENTED ... HACKILY. THIS INTEGRATION CONTAINS FORWARD-INCOMPATIBLE WORKAROUNDS AND DUE TO ITS CONTENT IT SHOULD NOT BE USED BY ANYONE.
Use caution: this integration uses forward-incompatible workarounds and should be treated as experimental.
-
Firebot is designed for a single streaming platform (Twitch), and many core assumptions and functionality are tightly coupled to this design. As a result, full compatibility with Kick is not achievable under the current architecture.
-
While I've tried to clearly separate Kick user data from Firebot's built-in databases, there's a risk of data leakage or corruption. This could impair or disable your Firebot instance entirely. Always maintain reliable backups.
-
Kick's public API is currently limited and incomplete. Only a small set of events is supported. (Note: Some bots use private APIs, but I purposefully avoided that route to reduce brittleness.)
-
Some features of this integration depends upon Kick's undocumented "pusher" WebSocket service, but that could break without warning.
-
Firebot only responds to events once a Kick notification is received. From time to time, Kick webhook delivery has proven to be unreliable, with notifications delayed by seconds or even minutes or sometimes dropped entirely.
This Firebot integration provides chat feed integration, events and effects for the kick.com streaming platform. This allows you to handle events in Firebot from the Kick platform, such as chat messages, follows, subscriptions, hosts, and more. This also provides effects to send messages to Kick, change the title or category of your stream, and ban and unban users.
- Versions 0.11.0 and higher require Firebot 5.65 or 5.66 and version 0.0.5 or higher of firebot-mage-platform-lib
- Versions 0.10.0 and higher require Firebot 5.65 or 5.66 and a compatible version of firebot-mage-platform-lib
- Version 0.7.0 and higher require Firebot 5.65 or 5.66
Effects are calls to the Kick API made by Firebot as a result of event handlers, preset effect lists, quick actions, and the like.
| Effect | Supported | Min. Version | Notes |
|---|---|---|---|
| Ban/Unban viewer | ✅ | ||
| Channel reward: Manage / unmanage | ✅ | 0.9.0 | Also cost, queue, enabled/disabled |
| Chat (send message) | ✅ | Can chat as streamer or second "bot" account | |
| Delete message | ✅ | 0.8.0 | |
| Stream category change | ✅ | ||
| Stream title change | ✅ | ||
| Timeout viewer | ✅ | Unban the viewer to un-timeout |
Note: The integration currently has effects for all of the operations available via Kick's Public API. Any effects "missing" from this list cannot be added unless and until the Kick API is expanded with more functionality. See Limitations due to Kick.
| Event | Supported? | Min. Version | Notes |
|---|---|---|---|
| Channel data updated | ✅ | Periodic refresh of info from public Kick API | |
| Channel points redeemed | ✅ | 0.9.0 | |
| Chat account age restriction | Possible | No public API support | |
| Chat cleared | Possible | No public API support | |
| Chat emote only mode on/off | Possible | No public API support | |
| Chat followers only mode on/off | Possible | No public API support | |
| Chat message (incoming) | ✅ | ||
| Chat slow mode on/off | Possible | No public API support | |
| Chat sub only mode on/off | Possible | No public API support | |
| Follow | ✅ | ||
| Goal created | Possible | No public API support | |
| Goal ended | ? | No public API support, have not evaluated | |
| Goal progress | ? | No public API support, have not evaluated | |
| Goal updated | Possible | No public API support | |
| Host (raid) (incoming) | ✅ | Uses "pusher" due to no public API support | |
| Host (raid) (outgoing) | ✅ | Uses "pusher" due to no public API support | |
| Kicks (like bits) | ✅ | ||
| Message deleted | ✅ | 0.8.0 | |
| Message pinned | Possible | No public API support | |
| Message un-pinned | Possible | No public API support | |
| Stream category (game) updated | ✅ | ||
| Stream ended | ✅ | ||
| Stream started | ✅ | ||
| Stream title updated | ✅ | ||
| Sub | ✅ | ||
| Sub (Community Gifted) | ✅ | ||
| Sub (Gifted) | ✅ | ||
| Viewer arrived | ✅ | ||
| Viewer banned | ✅ | ||
| Viewer timed out | ✅ | ||
| Viewer unbanned | ✅ | Uses "pusher" due to no public API support; also handles un-timeout |
"Possible" indicates that based on documentation and/or actual testing, the Kick API or Pusher websocket sends a webhook or websocket message that the author believes can be used to trigger a Firebot event. However, since the author is unlikely to use this event himself, it is not currently prioritized for implementation.
| Feature | Support Status | Min. Version | Notes |
|---|---|---|---|
| Channel point rewards: Create/manage | ✅ | 0.9.0 | Accessible properties limited |
| Channel point rewards: Enable/disable | ✅ | 0.9.0 | Enable/disable only |
| Channel point rewards: Redemption triggers effects | ✅ | 0.9.0 | Full support |
| Chat feed: Ban user (on Kick message) | ✅ | Works via context menu and /ban command |
|
| Chat feed: Delete Kick messages | ✅ | 0.8.0 | Works! |
| Chat feed: Display Kick messages | ✅ | Works! Shows badges and emotes too | |
| Chat feed: Timeout user | ✅ | Works via context menu and /timeout command |
|
| Chat feed: Unban user | ✅ | Works via /unban and /untimeout commands |
|
| Chat feed: User profile | ❌ | Firebot assumes all users are Twitch users 🔥 | |
| Chat feed: All other context menu items | ❌ | Various limitations 🇰 🔥 | |
| Commands | ✅ | Cooldowns do not work 🔥 | |
| Currency | Partial | 0.11.0 | Supports currency effects and variables of mage-platform-lib |
| Currency: Watch time | ❌ | No viewer list API endpoint on Kick 🇰 | |
| Moderation: Banned words / URLs | ? | Maybe possible now that Kick API supports deleting messages? | |
| Ranks | ❌ | Pointless without proper currency support | |
| Roles | ✅ | Twitch role filters emulated in platform-aware filter | |
| Viewer database | ❌ | Firebot assumes all users are Twitch users 🔥 |
🇰 = Denotes that the feature cannot be fully supported due to Kick limitations
🔥 = Denotes that the feature cannot be fully supported due to Firebot limitations
- Many user actions (e.g. raids, unbans) don't trigger webhooks. The integration can only support events that Kick provides.
- Kick delivers profile image URLs that only resolve from kick.com, so these images may not display correctly elsewhere.
- Kick's public API is lacking basic chat management options (e.g. delete message, clear chat), so we cannot implement these in Firebot's chat feed.
- There is currently no API for fetching the viewer list, which prevents watch-time tracking and currency accrual.
- There is currently no API to list your followers, subscribers, VIPs, moderators, etc. This limits what can be practically achieved with roles.
- Channel point redemptions can now be managed programmatically via API, but there is no API support for approving or rejecting rewards.
- Channel point redemption properties are limited: name, description, cost, queued, and enabled/disabled. There's no ability to set icons.
- Kick does not provide programmatic definitions of chat badges (or even publish these as plain image files). We've hard-coded in the current definitions in the Firebot chat feed. If those change on Kick, you'll still see the old badges in the Firebot chat feed until the integration is updated.
- Configuration of the "pusher" websocket requires your channel ID and chatroom ID, which are different from your user ID. The process to determine these can be tedious. Thankfully, you'll only need to do this once.
- Firebot's viewer database uses Twitch user IDs as primary keys and assumes every user is from Twitch. This rigid design prevents many features that depend on storing information about users (e.g. currency, metadata).
- Rate limiting (cooldowns) for commands and redeems doesn't work natively. Consider using the Firebot Rate Limiter if needed.
- Slash commands in the Firebot chat (e.g.
/clear) only apply to Twitch. (There aren't Kick API endpoints for most of these anyway.) - You won't be able to add a Kick user to a custom role via the Firebot GUI, because Firebot does a Twitch lookup on whatever you type.
This integration is experimental and aimed at users comfortable with technical setup. I will reconsider broader release and support once:
- Kick offers a public WebSocket connection option, and
- Kick's public REST API is substantially more complete, and
- Firebot evolves for cleaner multi-platform support.
Installation instructions are available if you're feeling adventurous.
Upgrading instructions are available if you felt adventurous in the past and are still feeling adventurous.
Configuration instructions are available if ... well, you get the point.
This plugin is no longer being updated or supported.
This plugin is no longer being developed. Contributions are not being accepted.
This plugin is not compatible with Firebot 5.67 and higher due to backend infrastructure changes. The plugin will no longer be updated.
If you are running Firebot 5.67 or higher, this plugin may not work correctly. Your options are:
- Downgrade to Firebot 5.66. Be sure to disable automatic upgrades and manually install the latest Firebot 5.66 release. Note that you will not get new Firebot features and will no longer receive support from official Firebot channels.
- Uninstall this plugin.
Thank you for your interest and support.
This project is released under the GNU General Public License version 3.
Some code in this project is based on (or copied from) Firebot, which is licensed under the GNU GPL 3 as well. Since the source code is distributed here and links back to Firebot, this project complies with the license.