Take Your Stream Chat
Chat from Twitch, YouTube, Kick and TikTok - inside Minecraft, next to you.
No second monitor. No OBS overlay you keep forgetting to look at. Messages pop up as little cards in the world, or sit quietly in a screen corner. Read chat, pin a funny one, keep playing.

Two ways to show chat
In the world. Bubbles spawn around you, or only in front of you (so they stay on camera). Look at a message and the timer pauses - handy when you want to read it out loud. Left-click to dismiss, right-click to pin. Pins stick around per world and dimension.
On the HUD. A stack in any screen corner. Still visible when you open your inventory. Nudge it with X/Y offsets so it doesn’t cover your hotbar.
Pick In world or On HUD in settings → Appearance. Fine-tune where things sit in Placement.
What else you get
- Several platforms at once - turn on the ones you actually stream on
- Emotes as pictures - Twitch, 7TV, Kick, YouTube stickers, plus optional color emoji
- Role badges — host, mod, VIP, sub next to the name
- Your colors — panel fill and border (or let the border follow the platform color)
- History — scroll back, replay a message, pin it again, or block the nick
- Filters — banwords, regex, username blocklist, and per-platform role filters (subs / VIP / mods / followers)
- Per-platform mute — hide one source’s messages or its ping sound without disconnecting
- TikTok gifts and follows — optional, off by default
It’s client-side. Only you need the mod.
Setup (about two minutes)
- Install Fabric and Fabric API for your Minecraft version. Download the matching jar from this page.
- Drop the jar in
mods/and launch. - Press
]to open settings. - Turn on a platform, click the gear, paste your channel /
@username. - Hit Chat ON at the bottom (or press
[).
Turning a platform on does not connect by itself. That’s on purpose: you can set everything up, then go live with one click.
Mod Menu is optional. Fabric API is not.
Keys
| Key | What it does |
|---|---|
] |
Open settings |
[ |
Connect / disconnect all enabled chats |
In the world, empty hand:
- Left click — dismiss a message
- Right click — pin; click the pin (or hold) to unpin / drag
You can change the keys in Minecraft’s Controls menu.
Tips from streaming with it
- Chat too fast? Lower spawn chance so not every message becomes a bubble.
- Want a clean POV? Use HUD, or FOP only so 3D cards stay in your field of view.
- Noisy chat? Open the platform gear and turn off “show everyone”, then keep only subs / VIP / mods.
- Don’t want to press
[every session? Turn on auto-connect when you join a world. /streamchat test hellois the fastest way to see a bubble without going live.
Commands
You probably won’t need these — settings cover the same things. Main command is /streamchat (/minestream still works).
| Command | |
|---|---|
/streamchat test Hello! |
Spawn a test message |
/streamchat chat start / chat stop |
Same as [ |
/streamchat banword add word |
Add a filtered word |
/streamchat blockuser add SomeNick |
Block a username |
/streamchat help |
Full list |
Versions
Minecraft 1.21, 1.21.1, 1.21.4, 1.21.8, 1.21.10, 1.21.11, 26.1, 26.2. One jar per game version — pick yours on this page.
Needs Fabric Loader and Fabric API.
Coming from Take Your MineStream (1.x)
Same mod, new name. Settings and pinned messages migrate on first launch. Old jars were tyms-…, new ones are tysc-…. Don’t run both.
Something broken? Tell us me GitHub.
How to Install Take Your Stream Chat (Mod)
Take Your Stream Chat by ijustseen is verified for Fabric, Neoforge across Minecraft versions 1.20.1, 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.4, 1.21.5, 1.21.6 (latest release: 2.1.1, file size: 456 KB). Follow the steps below to install it safely from ModCraft.tv:
- Click the Download button above and select your Minecraft version (1.20.1, 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.4, 1.21.5, 1.21.6) and platform (Fabric, Neoforge).
- Make sure you have the compatible loader or environment installed for Fabric, Neoforge.
- Move the downloaded Take Your Stream Chat file into your Minecraft
.minecraft/modsfolder and launch the game.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 5d ago | 1 | ||||
| 19d ago | 1 | ||||
| 20d ago | 1 | ||||
| 20d ago | 1 | ||||
| 20d ago | 1 | ||||
| 20d ago | 1 | ||||
| 20d ago | 1 | ||||
| 20d ago | 1 | ||||
| 20d ago | 1 | ||||
| 20d ago | 1 | ||||
| 20d ago | 1 | ||||
| 21d ago | 1 | ||||
| 22d ago | 1 | ||||
| 22d ago | 1 | ||||
| 22d ago | 1 | ||||
| 22d ago | 1 | ||||
| 22d ago | 1 | ||||
| 22d ago | 1 | ||||
| 22d ago | 1 | ||||
| 22d ago | 1 | ||||
| 22d ago | 1 | ||||
| 1mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| 8mo ago | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 |
Release after **2.1.0**. Adds Minecraft 26.3 and fixes TikTok connect errors reported by players.
Release after **2.0.1**. Fixes player-reported YouTube/TikTok issues, reworks platform settings into
per-platform pages and adds appearance customization. Ideas and the TikTok role-detection approach
contributed by **Adi**.
### Fixed
- YouTube EU cookie consent** —
HttpClientnow pre-seedsCONSENTandSOCScookies so EU/EEA IPs get the real watch/live-chat payload instead of the consent interstitial ([#9](https://github.com/ijustseen/take-your-minestream/issues/9)) - YouTube live-chat emojis** — named stickers such as
face-purple-cryingand channel custom emojis were dropped (parser only readrun.text). They are now parsed frommessage.runs[].emojiand drawn inline from YouTube CDN thumbnails - Kick emotes** —
[emote:id:name]tokens in chat were shown as raw text. They are now parsed and drawn inline fromfiles.kick.com - TikTok comments missing for some users** — parse chat text from newer protobuf fields, accept prefixed method names, keep the full TikTok cookie jar on the websocket, and skip malformed user payloads without dropping the comment ([#10](https://github.com/ijustseen/take-your-minestream/issues/10))
### Added
- Independent role toggles per source** — “Show everyone” on by default (other roles then inactive). Turn it off to keep subscribers / VIP / mods / followers that the platform actually sends ([#11](https://github.com/ijustseen/take-your-minestream/issues/11))
- HUD widget position** — choose a screen corner and X/Y pixel inset ([#11](https://github.com/ijustseen/take-your-minestream/issues/11))
- Per-platform settings pages** (
PlatformConfigScreen) — platform banner, back button, channel/username field, role filters and all platform toggles in one place - Panel colors** — HEX fill tint and border color with a full HSV color picker (saturation square, hue slider, preview); Escape applies the color; default fill is black; border can follow the platform brand color
- Reset to defaults** — two-click confirm in Chat & filters restores factory settings (banwords / blocked names / regexps are kept)
- Role badges** — host / mod / VIP / subscriber pixel badges before the author name in 3D panels, HUD cards and history
- Per-platform mute and sound** — hide a platform's messages or its notification sound without disconnecting
- TikTok gifts and follows** as optional chat events (off by default); streak gifts are announced once, on streak end
### Changed
- Enabling a source no longer starts the parser** — a source switch only adds it to the parsed list; connections open when the chat parser is started (Chat ON) and new sources join a running parser
- Main settings screen** — platforms are now banner cards, two per row (same look as the platform page header): icon, name, on/off switch and a gear button that opens the platform page
- Automoderation and username blocklist** — each is a single row now: on/off switch plus a gear button that opens the banwords / blo
Patch release after **2.0.0** (
550b7b5). All items below ship only in **2.0.1** artifacts (tysc-2.0.1+<mc>.jar), not in 2.0.0.### Added
- Minecraft 26.2** support (
tysc-2.0.1+26.2.jar, Fabric API 0.154.2+, Java 25) LegacySectionText** — parses legacy§color codes in 3D message text (Twitch and other platforms)- Runtime dimension binding** for every active message (
Message.dimensionKey): spawn, pin, restore from history ScreenNavigationCompat** and **HudOverlayCompat** — shared entry points for screen navigation and action-bar overlay across 1.21.x / 26.1 / 26.2- Stonecutter rules for **26.2** APIs:
mainCamera(),setScreenAndShow,gui.screen(), HUD overlay path MessageEmoteSorting** and **MessageRenderSmoothing** — extracted fromMessageRenderer(shared by 1.21.x and 26.x)
### Fixed
- Pinned / chat messages visible in other dimensions** (e.g. mod worlds such as Aether) — messages are tagged, filtered on render/HUD/click, cleared on dimension change, and pins are saved per dimension before reload ([#8](https://github.com/ijustseen/take-your-minestream/issues/8))
- 3D message rotation** around the player on 26.2 — corrected Mojang axis mapping (
POSITIVE_Y→Axis.YP, notYN) - 26.2 world rendering** —
COLLECT_SUBMITS+SubmitNodeCollectorsubmit pipeline instead of removedbufferSourcedraw path - Invisible 3D text** on 26.2 — fixed
submitTextargument order (light/color) - Nick / message colors** on 26.2 —
§codes parsed viaLegacySectionTextinstead of rawComponent.literal - 26.1** render event —
LevelRenderEvents.AFTER_SOLID_FEATURESinstead of removedAFTER_ENTITIES - Click handling** — filter messages by current dimension; 26.1 and 26.2
MouseHandlerMixinbehaviour aligned - Break particles** on 26.2 — float quad coordinates (no
Math.round), matching 26.1 - Settings / history navigation** on 26.2 — screens opened via
setScreenAndShowcompat layer
### Changed
- On dimension change: save pins for the **previous** dimension, remove all messages from other dimensions, then load pins for the new one
PinnedMessageStore.saveForDimension()— persists only pins whosedimensionKeymatches the target file- 26.1 and 26.2 client overrides aligned; only the render pipeline differs where the API requires it
- UI screens, keybinding, chat status overlay, and HUD visibility use compat helpers instead of direct
setScreen/inGameHud/currentScreencalls
### Technical
SubmitGeometryHelper, submit-basedMessageRenderer,MessagePanelWorldRenderer, andMessageParticleManagerfor 26.2RenderLayerCompatstub for 26.2 submit pipeline; removed unusedpanelConsumerhelper- Stonecutter:
Style/TextColormappings,Formatting.byCode→ChatFormatting.getByCode - Overrides in
versions/26.2/src/;settings.gradle.ktsadds **26.2** to the Stonecutter matrix
### MAJOR UPDATE — multi-platform chat, UI overhaul & rebrand
- Take Your MineStream** is now **Take Your Stream Chat** (
tysc, mod idtake-your-stream-chat). Settings and pins migrate automatically from 1.x (take-your-minestreamfolder /tymsjars).
This release is a breaking change in scope: chat is no longer Twitch-only, settings and HUD were reworked, and several gameplay defaults changed.
### Added
- Multi-platform live chat**: Twitch, **YouTube**, **Kick**, and **TikTok** — connect several sources at once from Settings → General
- Unified chat stack:
ChatConnectionManager,ChatMessagePipeline,IncomingChatMessage, per-platform clients - Platform icons** on message cards (3D, HUD, history) with accent-colored panel borders
- Chat role filter** applies to **all platforms** (subscriber/member, VIP, mod, broadcaster) via shared badge parsing (
ChatAuthorRoles) - HUD overlay** rework: slide-in animation, smooth fade-out, chat-like stacking (newest at bottom), nick color from platform when available
- HUD stays visible in **inventory and container screens**; hidden on ESC menu and other full screens
- MessagePanelLayout** — single source of truth for 3D panel size (render, click hit-test, look-to-freeze)
- Localized UI and connection messages (en, ru, de, es, fr, zh — 162 keys each)
- Settings tab **icons** (General, Messages, In World, Chat History)
PlatformChannelRow,ConfigUiHelper,ChatConnectToggleHelper; HTTP layer onjava.net.http.HttpClient(Kick WAF compatibility)- Chat connect toggle** in settings footer (between Chat History and Done): ON/OFF label, colored dot, **green/red button background** by connection state; same action as the hotkey
- Connection status overlay** (
ChatStatusNotifier): connect/disconnect/connecting shown on the **action bar**, not in chat - TikTok custom emotes** in chat messages (inline emotes + subscriber emote stickers), loaded from TikTok CDN URLs
- Spawn distance range** (min/max blocks) for Around and FOP modes in **In World** settings (default 2–5)
- Color Unicode emojis** — optional setting (Settings → Messages) renders system emoji glyphs instead of Minecraft font squares; works in 3D, HUD, and history
### Changed
- Settings screen**: platform toggles per service, channel fields; save reconnects changed platforms; footer **History · Chat · Done**
- Chat notifications**: status on action bar; **errors only** in chat (offline / WAF / missing channel, etc.)
- Chat History** (formerly Message History): opens scrolled to the bottom; orange history icon
- In World** settings tab disabled when spawn mode is HUD
- Platform cannot be enabled with an empty channel/username
- Message scale** presets reduced (~one step smaller): Tiny → 0.35, Normal → 0.75, Huge → 1.25 (Huge ≈ old Large)
- 3D interaction distance** capped at **16 blocks** (click, pin, drag)
- Fall / fade duration** fixed at **0.5 s** — removed from settings (wa
- All console log messages are now in English
- Removed verbose debug logging (IRC chat echo, emote load/register traces, 7TV success counters, settings-screen info)
### Fixed
- Crash when rendering 3D message panels on Minecraft 1.21.11 with Iris/Sodium (and related modded renderers):
RenderLayerCompatnow callsRenderLayers/RenderTypesdirectly instead of reflection (also fixes the incomplete 1.4.2 fix that could still throwUnable to resolve entity RenderLayer) CameraPositionCompatuses direct camera position API per Minecraft version instead of reflection- History action popup: card text no longer draws on top of the menu — on Minecraft 1.21–1.21.4 popup fills use
RenderLayer.getGuiOverlay(); on 1.21.8+ a new GUI root layer is created before the popup
- Unpin mode** setting (Settings → Behavior): choose how to unpin 3D messages with right-click
- Pin icon only** — unpin only when clicking the pin icon; click elsewhere on the message to drag
- Whole message** — quick right-click anywhere on the message unpins it; holding right-click drags
### Fixed
- Crash when rendering 3D message panels on Minecraft 1.21.11 (NPE in
VertexConsumerProvider.getBufferwhenRenderLayerCompatreturned null) - Restored fallback chain for
RenderLayerCompat(removed in 1.4.1) with exhaustive method scan acrossRenderLayers/RenderLayer - Added safe
getEntityBuffer/getTextBufferhelpers; all world render paths now use them CameraPositionCompatno longer caches a failed reflection lookup permanently- Broken 9-slice panels in history/pinned columns on Minecraft 1.21 / 1.21.1 (legacy
drawTextureignored texture region size) - Emotes not rendered in message history and pinned columns (only plain text was drawn)
- Unpin mode «Whole message»: a quick right-click on an unpinned message no longer pins and immediately unpins it
- Message history screen with context menu: pin/unpin, block user, replay message
- Blocked username list and block action from history
- Chat role filter (Twitch badges: broadcaster, mod, VIP, etc.) in config
- Two-column history UI: full history (left) + all pinned messages in the world (right), centered layout
- Message history actions (MessageHistoryActions): pin copies with historySourceId, replay, block
- Reusable GUI layer: MessageCardLayout, MessageCardRenderer, MessagePanelGuiRenderer, GuiScrollbar, HistoryMessageActionPopup, ScreenUiHelper, ModUiTheme
- 9-slice panels for world and HUD message rendering (MessagePanel9Slice, MessagePanelWorldRenderer)
- HUD emote rendering (MessageEmoteGuiRenderer); pinned messages hidden from HUD overlay
- Configurable message history size (10–500)
- Chance-to-spawn slider and numeric fields for lifetime, fall duration, max freeze distance
- Multi-version build with Stonecutter: 1.21.8, 1.21.10, 1.21.11, 26.1 (covers 26.1.1 and 26.1.2 via one JAR)
- Gradle tasks buildAndCollect, buildActive, runActive; BUILD.md reference
- Package refactor: config/, core/, integration/twitch/, ui/screen/, ui/gui/, filtering/
Changed
- Settings screen redesigned: tabs, scrollable list, fixed footer with description and buttons; category labels
- Banword / regexp / blocked-username list screens aligned with new UI theme
- Message history: compact panels, independent scroll per column, live refresh on pin/unpin and history cap
- HUD overlay: text wrap width aligned with 3D mode (120 px)
- Pinned message persistence (PinnedMessageStore): improved world save/load and pin dimensions
- World join/leave handling updates for pinned messages and IRC state
- Build migrated from Groovy build.gradle to Kotlin build.gradle.kts + settings.gradle.kts
- README and Modrinth README updated; translations (en, ru, de, es, fr, zh)
Fixed
- Message history content clipped on the left (card X vs scissor padding mismatch)
- Scrollbar track and thumb extending below/above the list panel
- Message history not updating when history limit was reached (same size, different messages)
- Button hover in custom-rendered screens
- Pin icon and panel hitbox dimensions
- RenderLayerCompat for Minecraft 1.21.11
- Translucent rendering for removed/gone messages in history
- Unpin from pinned column correctly removes history-linked pin copies
Technical
- Version-specific client overrides in versions/1.21.8/src/client/java/ (legacy mouseClicked / keyPressed APIs)
- Minecraft 26.1 port: Mojang mappings, build-unobfuscated.gradle.kts, Stonecutter replacements, overrides in versions/26.1/src/ (MouseHandlerMixin, HUD, key bindings, sliders, MessagePosition, and related UI)
- PlayerMessageCompat for chat feedback across 1.21.x and 26.1
- Per-version dependencies in versions/<mc>/gradle.properties
- MessageLifecycleManager.getAllPinnedMessages() — all active pinned messages, not only those still in history
- Emotes added (twitch + 7tv)
- Secure interaction (interact with messages by empty hand only)
- translations
- menu updated
- message spawn sound
- message spawn chance
- updates suggested by JustS-js
- local emote storage
- pin hitbox fix
- auto irc connect on join
- Now you can pin messages
- Massages behavior fixes with
- Pinned messages can be copied from world in config folder
- IRC fix