{"id":160934,"date":"2026-06-09T18:09:31","date_gmt":"2026-06-09T15:09:31","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/twitchrewards999\/"},"modified":"2026-06-09T18:09:31","modified_gmt":"2026-06-09T15:09:31","slug":"twitchrewards999","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/twitchrewards999\/","title":{"rendered":"TwitchRewards999"},"content":{"rendered":"<p> \u2699\ufe0f Core Systems<\/p>\n<p>1. Twitch Account Linking<br \/>\nPlayers can link their Minecraft account to their Twitch account using a simple in-game command. This is the foundation for tracking watch time and rewards.<\/p>\n<p>&#8211; **Command**: `\/linktwitch <twitch_username>`<br \/>\n&#8211; **Storage**: Linked accounts are stored in `usernames.yml` in the format `twitch_username: minecraft_uuid`.<\/p>\n<p>2. Streamer Configuration<br \/>\nServer administrators can easily configure the main Twitch channel to be tracked. The plugin will monitor this channel for live status updates.<\/p>\n<p>&#8211; **Configuration**: Set the `twitch_channel` and `twitch_link` in `config.yml`.<br \/>\n&#8211; **API Integration**: Requires a Twitch Client ID and Secret to be added to the `config.yml` for Twitch API communication.<\/p>\n<p>3. Live Announcements<br \/>\nWhen the configured streamer goes live, a customizable announcement is broadcast to all players on the server, encouraging them to join the stream.<\/p>\n<p>&#8211; **Configuration**: Enable or disable this feature and customize the message in `config.yml`.<br \/>\n&#8211; **Example Message**: `\u00a7d[Live] %streamer% is now streaming! Watch at: %streamlink%`<\/p>\n<p>4. Watch Time Tracking System<br \/>\nThe plugin tracks the watch time of all linked players who are online on the Minecraft server while the streamer is live.<\/p>\n<p>&#8211; **Logic**: An asynchronous task runs every second to check the streamer&#8217;s live status and update the watch time for online, linked players.<br \/>\n&#8211; **Storage**: Watch time data is stored in `time.yml` for each player, including `seconds_watched` and `unclaimed_rewards`.<\/p>\n<p>5. Reward Interval Logic<br \/>\nRewards are automatically granted to players based on a configurable time interval.<\/p>\n<p>&#8211; **Configuration**: Set the `reward_interval` (in seconds), `reward_type` (`points` or `item`), and the `reward` itself in `config.yml`.<br \/>\n&#8211; **Example**: If `reward_interval` is 600, a player will receive a reward for every 10 minutes of watch time.<\/p>\n<p>6. Offline Reward Handling<br \/>\nIf a player earns a reward while they are offline, the plugin stores it as an &#8220;unclaimed reward&#8221;. When the player logs back in, they are notified and given a unique code to redeem their rewards.<\/p>\n<p>&#8211; **Logic**: A `PlayerJoinEvent` listener checks for unclaimed rewards and generates a redeem code.<br \/>\n&#8211; **Notification**: The player receives a message like: `\u00a7eYou\u2019ve earned rewards for watching %streamer%! Use \/twitchredeem <code> to claim them.`<\/p>\n<p>7. Redeem Code System<br \/>\nA flexible system for redeeming rewards using unique codes. Codes can be generated automatically for offline rewards or manually by streamers\/admins.<\/p>\n<p>- **Storage**: Codes are stored in `redeemcodes.yml` with their `reward_type`, `reward`, and `uses_left`.<br \/>\n- **Expiration**: Codes are automatically removed when their `uses_left` reaches 0.<\/p>\n<p>8. Streamer Reward Code Generation<br \/>\nStreamers and administrators can generate custom reward codes to share with their audience during a stream.<\/p>\n<p>- **Command**: `\/twitchreward generate`<br \/>\n- **Configuration**: The reward type, value, and number of uses for generated codes can be configured in `config.yml`.<\/p>\n<p>9. Twitch Points System<br \/>\nAn in-plugin currency system that allows players to accumulate \"Twitch Points\" as rewards.<\/p>\n<p>- **Storage**: Player point balances are stored in `twitchpoints.yml`.<br \/>\n- **Command**: Players can check their balance with `\/twitchpoints`.<\/p>\n<p>10. Watch Time Tracking (via Twitch IRC)<br \/>\nTo provide an accurate watch time tracking system, TwitchRewards999 now integrates directly with Twitch IRC. This system tracks players who are actively participating in the stream's chat.<\/p>\n<p>- **How it works**:<br \/>\n    1.  The Minecraft plugin connects to the streamer's Twitch chat via Twitch IRC.<br \/>\n    2.  It tracks users who join or leave the chat, and those who send messages.<br \/>\n    3.  Only players who are identified as active chatters will have their watch time tracked.<br \/>\n- **Setup**:<br \/>\n    1.  Configure your Twitch Client ID, Client Secret, and OAuth Token in the plugin's `config.yml`.<\/p>\n<p> Part 1: Setting up the Twitch Extension<\/p>\n<p>1.  **Create a new Twitch Extension**:<br \/>\n    - Go to the Twitch Developer Console.<br \/>\n    - Click on \"Extensions\" in the left-hand menu.<br \/>\n    - Click \"Create an Extension\".<br \/>\n    - Give your extension a name (e.g., \"MyRewardsExtension\") and select \"Panel\" as the extension type.<br \/>\n    - Click \"Create Extension\".<\/p>\n<p>2.  **Get your Extension Credentials**:<br \/>\n    - In your extension's dashboard, you will see your **Client ID**.<br \/>\n    - Click on the \"Settings\" tab. Your **Extension Secret** is here.<\/p>\n<p>3.  **Generate and Upload the Frontend Files**:<br \/>\n    - Start your Minecraft server with the TwitchRewards999 plugin installed. This will automatically generate the `extension_frontend` folder containing `panel.html` and `viewer.js` in the same directory as your plugin's configuration folder (e.g., `plugins\/TwitchRewards999\/extension_frontend`).<br \/>\n    - Go to the \"Asset Hosting\" tab in your extension's dashboard.<br \/>\n    - Drag and drop the contents of the newly generated `extension_frontend` folder (`panel.html` and `viewer.js`) into the upload area.<br \/>\n    - Set the \"Panel Viewer Path\" to `panel.html`.<br \/>\n    - Click \"Save Changes\".<\/p>\n<p>---<\/p>\n<p> Part 2: Setting up the Minecraft Plugin<\/p>\n<p>1.  **Install the Plugin**:<br \/>\n    - Place the `TwitchRewards999-1.0.0.jar` file (from the `target` directory) into your Spigot server's `plugins` folder.<br \/>\n    - Start your Minecraft server. This will generate the plugin's configuration files.<\/p>\n<p>2.  **Configure the Plugin**:<br \/>\n    - Open the `plugins\/TwitchRewards999\/config.yml` file.<br \/>\n    - Set the `twitch_channel` to your Twitch username (the channel you want to track).<br \/>\n    - Set the `twitch_link` to your Twitch channel URL.<br \/>\n    - Fill in your `twitch_client_id` and `twitch_client_secret` (the same ones from your Twitch Extension).<br \/>\n    - **Obtain a Twitch OAuth Token:**<br \/>\n        - Go to a Twitch Chat OAuth Password Generator (e.g., https:\/\/twitchapps.com\/tmi\/).<br \/>\n        - Authorize the application to get your OAuth token. It will start with `oauth:`.<br \/>\n        - Copy the full token.<br \/>\n    - Set the `twitch_oauth_token` in `config.yml` to the OAuth token you just obtained.<br \/>\n    - Customize the rest of the settings (rewards, messages, etc.) to your liking.<br \/>\n    - Save the `config.yml` file and restart your server or run `\/twitchreload`.<\/p>\n<p>---<\/p>\n<p> Part 3: Final Steps<\/p>\n<p>1.  **Activate the Extension**:<br \/>\n    - Go back to your Twitch Extension's dashboard.<br \/>\n    - Go to the \"Version Status\" tab and follow the steps to move your extension to \"Hosted Test\" and then to \"Released\".<br \/>\n    - Once released, you can install the extension on your own channel by going to your Creator Dashboard -> Extensions -> My Extensions.<\/p>\n<p>2.  **Test the System**:<br \/>\n    - Start streaming on Twitch with the extension active.<br \/>\n    - Have a player link their Twitch account in-game with `\/linktwitch <their_twitch_username>`.<br \/>\n    - Watch the stream for the configured `reward_interval`.<br \/>\n    - You should see rewards being granted in-game.<br \/>\n    - Check the server console for any errors.<\/p>\n<p>You have now successfully set up the complete TwitchRewards999 system!<\/p>\n<p>---<\/p>\n<p> \ud83d\udcac Commands<\/p>\n<p>| Command                       | Description                                       | Permission          |<br \/>\n| ----------------------------- | ------------------------------------------------- | ------------------- |<br \/>\n| `\/linktwitch <twitch_user>`   | Link your Minecraft account to your Twitch account. | (everyone)          |<br \/>\n| `\/twitchpoints`               | Shows your current Twitch Points balance.         | (everyone)          |<br \/>\n| `\/twitchreward generate`      | Generates a reward code for the streamer to share.| `twitchreward.admin`|<br \/>\n| `\/twitchredeem <code>`        | Redeem a stored or shared reward code.            | (everyone)          |<br \/>\n| `\/twitchreload`               | Reloads the plugin's configuration and data.      | `twitchreward.admin`|<br \/>\n| `\/twitchtime <player>`        | See a player's watch time and unclaimed rewards.  | `twitchreward.admin`|<\/p>\n","protected":false},"excerpt":{"rendered":"<p>TwitchRewards999 is a comprehensive plugin for Minecraft designed to bridge the gap between your Twitch stream and your Minecraft server. It rewards players for their watch time, fostering a more engaging and interactive community.<\/p>\n","protected":false},"featured_media":160935,"template":"","meta":{"_minecraft_slug":"twitchrewards999","_minecraft_project_id":"V24XxMn8","_minecraft_author":"Erik9994857","_minecraft_license":"LicenseRef-All-Rights-Reserved","_minecraft_downloads":44,"_minecraft_follows":0,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"twitchrewards999.zip","_minecraft_size_bytes":18362136,"_minecraft_version_count":1,"_minecraft_updated_at":"2026-05-15T21:30:48.342620Z","_minecraft_date_created":"2025-11-18T00:18:59.082614Z","_minecraft_date_modified":"2025-11-12T00:26:42.957712Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/twitchrewards999","_minecraft_icon_attachment_id":160935,"_minecraft_imported_at":"2026-06-09T15:09:31+00:00","_minecraft_import_hash":"a97460389f011dc472f3ea28c4f25ef5","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,127,128,867,129,123,92],"mod_loader":[130,132,133,134],"minecraft_version":[62,37,40,73,74,38,78,79,80,81,82],"class_list":["post-160934","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-paper","mod_category-purpur","mod_category-social","mod_category-spigot","mod_category-technology","mod_category-utility","mod_loader-bukkit","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>TwitchRewards999 - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/twitchrewards999\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TwitchRewards999 - Minecraft\" \/>\n<meta property=\"og:description\" content=\"TwitchRewards999 is a comprehensive plugin for Minecraft designed to bridge the gap between your Twitch stream and your Minecraft server. It rewards players for their watch time, fostering a more engaging and interactive community.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/twitchrewards999\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/twitchrewards999\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/twitchrewards999\\\/\",\"name\":\"TwitchRewards999 - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/twitchrewards999\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/twitchrewards999\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/twitchrewards999-icon-1fc2b06f56af0597357037c2f653bbfaf8ca3405_96.webp\",\"datePublished\":\"2026-06-09T15:09:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/twitchrewards999\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/twitchrewards999\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/twitchrewards999\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/twitchrewards999-icon-1fc2b06f56af0597357037c2f653bbfaf8ca3405_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/twitchrewards999-icon-1fc2b06f56af0597357037c2f653bbfaf8ca3405_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/twitchrewards999\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"TwitchRewards999\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TwitchRewards999 - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/twitchrewards999\/","og_locale":"en_US","og_type":"article","og_title":"TwitchRewards999 - Minecraft","og_description":"TwitchRewards999 is a comprehensive plugin for Minecraft designed to bridge the gap between your Twitch stream and your Minecraft server. It rewards players for their watch time, fostering a more engaging and interactive community.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/twitchrewards999\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/twitchrewards999\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/twitchrewards999\/","name":"TwitchRewards999 - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/twitchrewards999\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/twitchrewards999\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/twitchrewards999-icon-1fc2b06f56af0597357037c2f653bbfaf8ca3405_96.webp","datePublished":"2026-06-09T15:09:31+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/twitchrewards999\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/twitchrewards999\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/twitchrewards999\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/twitchrewards999-icon-1fc2b06f56af0597357037c2f653bbfaf8ca3405_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/twitchrewards999-icon-1fc2b06f56af0597357037c2f653bbfaf8ca3405_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/twitchrewards999\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"TwitchRewards999"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/160934","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/160935"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=160934"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=160934"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=160934"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=160934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}