Built in public

Release changelog

Functional changes to playback, visualizers, multiplayer, storage, and project infrastructure.

0.2.1Current

Release labeling policy

Medium or large client features, behavior changes, or compatibility work that require new mod jars advance the numbered client release. The next such release will be 0.2.2. Substantial website or relay operations are listed as dated Service Updates without mislabeling the downloadable client jar. Small corrections that do not materially change behavior stay under the current version and are dated Minor Fix / Update.

August 26, 20260.2.1Current

New worlds, and a party that keeps up

Three new worlds

  • Added Magic Orb: a hanging ball of light that throws rays on the beat from behind a turning rune circle, and refracts the world behind it like glass. Anything standing in front of the orb correctly hides the bend.
  • Magic Orb follows the animation already selected. Each particle in the field carries a miniature orb, so Emerge, Orbit, Fly, Network, Clouds and the rest keep their own motion. Up to six orbs can hang at once, each bursting on its own beat, and Fairy and Nebula receive their own placement.
  • Added Floor Wave: every bass hit lays a ring of light on the ground and races it outward, walking the real terrain so it climbs stairs, rolls over hills and drops down ledges instead of cutting through them.
  • Added Firework Lyrics: the lyric line arrives as a shell that goes off and pulls its own sparks inward until they settle into the words, with further blasts in the sky behind.
  • All three ship on Minecraft 1.21.1, 1.21.11, 26.1.1, 26.1.2 and 26.2 for Fabric and NeoForge.

Rebuilt effects engine

  • Moved every visual effect onto a dedicated draw layer that is composited onto the frame once, so overlapping glows accumulate inside the layer instead of brightening the world once per effect.
  • Stopped shader packs from shading THC's light as if it were a painted surface. Visualizer colors were entering the pack's gbuffer as albedo and being lit by it, which is why bright bands could render dark at night; THC now composites after the pack's final pass.
  • Generated bloom from THC's own effect layer so glow looks the same with shaders enabled or disabled.
  • Added per-effect materials, music-driven animation tracks, screen-space passes for color grading, chromatic split and vignette, masks that confine a pass to a single effect, and mesh shapes to spawn particles on.

Particles

  • Replaced the artwork for Blink, Flame, Heart, Heart Outline, Snowflake, Star, Sword and the THC logo particle.
  • Added six shapes: Bling, Sativa, Creepa, Crown, Star Outline Top and Star Outline Bottom.
  • Removed dead entries (Coron, Virus, Soup API and three duplicate shapes) and renamed the rest to Dollar 2, Snowflake 2 and Snowflake 3. A saved selection pointing at a removed shape falls back to the default instead of rendering nothing.
  • Gave Heart Outline, Leaf and every new shape their own artwork in Fairy, Nebula and the other effect-driven worlds, where they previously fell through to the firefly sprite.

Seeing other players' visualizers

  • Added a remote render path for every world type, particle shape and wing, including the new ones. Effects introduced over recent releases only ever rendered for their owner, so a party member's visualizer could be partly or entirely invisible to everyone else.
  • Corrected remote particle color, which was sampled from the viewer's own gradient rather than the owner's, and remote wing color, which used the built-in palette regardless of the player's choice.
  • Stepped remote fields from the sender's clock instead of once per received packet. Packets are rate-limited and dropped, so another player's field aged slower than their own copy and read as sluggish.
  • Fixed a shared-timing correction that pulled spinning and fading effects back to their resting speed within seconds, ignoring the music, on both screens.
  • Positioned remote wings from the interpolated player model instead of the raw tick, removing the hover and jitter against the body.
  • Eased another player's fairy companion onto its synced anchor instead of assigning it ten times a second, kept it visible while their music is paused, and expired stale anchors so effects no longer stick where they were last seen.

Party playback and safety

  • Made THC Relay authoritative for playback position, skips, seeks, pauses and queue order, removing the drift where a member falls behind and preventing two people from overwriting each other's timeline.
  • Handled refused party actions properly so a denied control no longer leaves the client believing it succeeded.
  • Treated all party traffic as untrusted input: values arriving from another player are validated before use, and links are checked against the allowlist in every place they are handled.

Release set

  • Released THC 0.2.1 for Minecraft 1.21.1, 1.21.11, 26.1.1, 26.1.2 and 26.2 on Fabric and NeoForge, one canonical JAR per target.
August 10, 20260.2.0

Light through shaders, proof through play

Shader-pack lighting

  • Added a shader-native lighting path so visualizer colors enter the selected pack's own lighting, tone mapping, block response, and shadows instead of stopping at THC's flat glow.
  • Added music-reactive spotlights with adjustable cones, visible volumetric shafts, and reach and brightness that move with the track.
  • Added Prepare pack under Dynamic Lights. THC never edits the original archive; it writes a separate <pack>_THC copy for selection in shader options.
  • Added support for BSL, Photon, Complementary Reimagined, Complementary Unbound, Bliss, Solas, Rethinking Voxels, Aurora Fantasy, and IterationRP / T / VX.
  • Added point shadows for BSL. Other prepared packs retain shader lighting and clearly report that point shadows are unavailable instead of failing silently.

Verified accounts and live badges

  • Added Minecraft account linking through a short in-game code entered at Connect. The relay issues it only after Mojang verifies the live session, so another player cannot claim that account.
  • Kept verification codes in a private HUD card instead of chat or notifications. The card closes when any non-chat Minecraft or THC screen opens and clears after five minutes.
  • Added the THC leaf beside players who are currently running THC through the relay. Supporters use gold. Staff have specific colors.
  • Added the same live mark and soft highlight to THC's player and party lists.
  • Badges disappear when the player is no longer connected through THC Relay. Supporter cosmetic unlocks remain a later roadmap item.

Dynamic HUD and larger interfaces

  • Added Dynamic beside Off, On, Media, and Lyrics for HUD widgets. A dynamic widget appears only while something is playing and clears when playback stops.
  • Raised THC's interface-scale ceiling from 1.8 to 4.0 for 4K displays and TVs while retaining window-fit limits so controls cannot be scaled off-screen.

Lighting correctness across every target

  • Restored True Dynamic Light strength when audio response is disabled or no audio device is available: silence now renders the selected base color and audio brightens it from there.
  • Separated the True Dynamic and Shader Lights switches so each mode controls its own lighting path.
  • Cleared old light state when changing visualizer type so the previous visualizer no longer remains in the world.
  • Brought shader lighting, spotlights, volumetric beams, point-shadow controls, shader-final-pass geometry and particles, and entity-shaped shadows to 1.21.1, 1.21.11, 26.1.1, 26.1.2, and 26.2 on Fabric and NeoForge.

Player lists and interface reliability

  • Filtered server-created tab-list filler from THC's player list. When the relay is connected, the list can narrow to nearby players who are also running THC.
  • Corrected dropdown backgrounds, kept the Dynamic Lights button row inside the panel while resizing, and made the watermark and notifications follow THC's own scale instead of Minecraft's GUI scale.

Audio tools, logs, and release packaging

  • Moved the pinned FFmpeg package to an immutable versioned release asset with a byte-identical fallback, retained full SHA-256 verification, and kept a verified local archive for later repairs.
  • Reduced lighting logs to state changes instead of repeating the same status continuously.
  • Released THC 0.2.0 for Minecraft 1.21.1, 1.21.11, 26.1.1, 26.1.2, and 26.2 on Fabric and NeoForge.
  • Retired separate channel variants. Each loader and Minecraft target now has one canonical, feature-complete JAR.
  • Prepared shader packs now use the <pack>_THC name. Existing prepared copies keep working, and preparing again creates a fresh copy under the new name.
  • THC Relay remains optional and disabled by default; verified account linking and live badges require it to be enabled.

Supporter access and site update / August 10

  • Restored Patreon connection through OAuth. Former supporters can continue to sign in, while supporter permissions remain available only during an active paid membership.
  • Added Ko-fi receipt sign-in using both the transaction ID and the email from the same receipt; a transaction ID alone is never accepted, and one-time tips provide login access without ongoing supporter perks.
  • Ko-fi subscription payments now extend a visible paid-through date by one calendar month. Later subscription webhooks renew it automatically, and expired memberships lose supporter perks without losing login access.
  • Updated the Support me page with the new supplied avatar artwork.
July 29, 20260.1.10

Storms above, steadier playback below

Clouds and Lightning worlds

  • Added a drifting Clouds world with music-driven rain and geometry puddles, guarded on both render and tick paths for safer long sessions.
  • Added a branching Lightning world whose strike frequency follows tempo, width responds to bass, and bloom carries the selected particle gradient across the sky.
  • Clouds and Lightning synchronize through THC Relay so listening parties can share the same storm across all five supported Minecraft versions and both loaders.

Procedural skyboxes

  • Introduced GLSL-powered Aurora, Nebula, Shooting Stars, and Color Sky Fade modes with bass, treble, and BPM shaping their motion and color changes in real time.
  • Added a dedicated four-stop Skybox colors gradient and automatically hides vanilla clouds while a THC sky is active.
  • Added a camera-locked geometry fallback when Iris is active, and validated the sky system across every supported build, including OpenGL and Vulkan on 26.2.
  • Skyboxes are local for this release; Clouds and Lightning are the party-synchronized world types.

HUD and interface polish

  • Persisted effect colors between game sessions, cleared abandoned puddles when rain worlds are disabled, and restored reliable Lyrics HUD visibility with an independent media-widget toggle.
  • Added Shift + H to return dragged lyrics and media widgets to their default positions, alongside more practical default HUD and interface scaling.
  • Reworked narrow-window layouts across Songs, Media, Style, Particles, and party administration so controls remain inside their panels, labels fit, scrollbars drag correctly, and media text does not escape its card.
  • Extended drag-to-seek to the 1.21.11 and 26.x ports and improved nameplate sizing for short track titles and time readouts.

Audio, lyrics, and party reliability

  • Corrected OpenAL teardown order and serialized THC audio work, preventing invalid-operation errors from leaking into Minecraft's sound engine and reducing random playback dropouts.
  • Stopped repeated lyric lookups by caching both successful and empty results, while cleaning provider metadata so artist and title searches match more often.
  • Made party seeking authoritative through the relay so a member's scrub position is shared instead of being overwritten by the next playback update.
  • Reduced sync-channel log noise and hardened font presets without regressing server resource-pack reload behavior.

Website Update / July 29

  • Added a private Report flow with guided categories, image optimization, attachment safeguards, spam controls, ticket replies, and resolution tracking.
  • Added community voting with timed polls, optional images, multi-choice limits, and a Vote link that appears in the header only while a poll is active.
  • Improved clean page URLs, Chrome scrolling and popup performance, themed native controls, and the responsive audio seek, volume, and track-navigation experience.
  • Added safe changelog video embeds and refreshed direct downloads with verified release hashes and proper Fabric and NeoForge artwork.
July 24, 20260.1.9

Wings, cleaner interfaces, safer joins

Server resource-pack join fix

  • Fixed a client freeze that could drop the connection with an internal error when joining a server that applies its own resource pack.
  • Reworked the bundled interface fonts so each display font no longer re-loads the entire fallback glyph set on every resource reload, keeping pack-driven reloads fast.
  • Hardened glyph loading so a malformed font in any resource pack degrades to a single missing character instead of stalling the whole font load.

Wings as a world type

  • Moved the Hellish and Angelic back-wings into the World selector as their own world types instead of a separate toggle; selecting a wing world shows the wings only.
  • Drove wing color from the active visualizer gradient so wings match your particle colors, with the flap riding the bass and the color scroll riding the tempo.
  • Rebuilt the Angelic wing as an arched wing-bone with hanging, tapering feathers, expanded the Hellish membrane to a fuller clawed shape, and kept wings hidden in first person.

Interface scaling and menus

  • Made the media widget and broadcast popups ignore Minecraft's GUI scale and follow only THC's own HUD scale, matching the main interface.
  • Lowered the minimum HUD scale so widgets can be made smaller.
  • Made dropdown menus fully opaque and aligned to their options so sliders and labels no longer show through, and corrected control spacing on the Particles page.
  • Softened particle sprite edges to remove hard pixelated black fringing.

Release set

  • Rebuilt Fabric and NeoForge for Minecraft 1.21.1, 1.21.11, 26.1.1, 26.1.2, and 26.2.
July 18, 20260.1.8

New surfaces, living geometry

Six new interface themes

  • Added Frutiger Aero, Y2K Futurism, Glassmorphism, Skeuomorphism, Technozen, and Neumorphism presets.
  • Each preset combines its own color palette with an existing optimized GUI surface treatment instead of duplicating renderer code.
  • Applied the same theme set to Fabric and NeoForge across Minecraft 1.21.1, 1.21.11, 26.1.1, 26.1.2, and 26.2.

Audio-reactive BLOB visualizer

  • Expanded BLOB into a filled, deforming latitude-and-longitude mesh with a separate wire overlay.
  • Bass, mids, treble, overall level, timing, and beat pulse displace the BLOB surface independently.
  • Added a dedicated Topology control that changes mesh density and appears only while BLOB is enabled; Line Thickness now controls only the wire width.

Visualizer controls and interface themes

  • Removed the Filled, Net, Cube, Pyramid, Rain, and True shortcut buttons from the Visual and Particles panels without removing their underlying world-rendering modes.
  • Kept Effect, Animation, and World selection available through their full selectors while reclaiming vertical space for advanced controls.
  • Rebuilt Frutiger Aero, Y2K Futurism, Glassmorphism, Skeuomorphism, Technozen, and Neumorphism with distinct panel geometry, surfaces, decoration, and button treatments instead of palette-only variations.

Orbital media widget

  • Added a circular watch-inspired media layout with centered track and artist text, previous and next controls, and a central play/pause control.
  • Wrapped playback progress around the center button as a segmented duration ring and placed two compact audio visualizer zones along the lower edge.
  • Kept the existing widget layouts available and added Orbital as a separate selectable option.

Input and release reliability

  • Fixed GUI key rebinding so the configured key opens and closes THC consistently instead of falling back to hard-coded H after the first use.
  • Built and compile-validated all ten loader/version combinations across the supported distribution channels.
  • Scanned every release jar and confirmed that no executable or native-library file is bundled.

Supporter portal / July 22

  • Added a supporter portal at /connect where Patreon and Ko-fi supporters can connect the account they support THC with to manage their perks.

Distribution Update / July 21

  • Starting with THC 0.1.9, CurseForge uses the same official feature set as direct and Modrinth builds instead of a reduced manual-tools variant.
  • Optional yt-dlp and FFmpeg installation remains explicit, version-pinned, and SHA-256 verified; choosing Later downloads nothing.
  • Separately named platform artifacts are byte-for-byte copies of the official loader build.
  • Historical 0.1.5 and 0.1.6 entries below describe the old CurseForge policy and are retained only as release history.

Service Update / July 18

  • Added an accessible website audio player for Fatboibari - Country shi+ PT2, with play/pause, seek, elapsed time, duration, and provider links.
  • Connected every website visualizer example to real Web Audio frequency and waveform analysis from the playing track instead of synthetic animation data.
  • Kept the MP3 outside the public static directory and exposed it only through a no-store, byte-range-capable playback endpoint with no download interface.
  • Separated feature questions into a dedicated FAQ while expanding User Agreements around data use, retention, third parties, and user responsibility for selected audio.
July 17, 20260.1.7

Lyrics without borders

Multilingual world-space lyrics

  • Added a bundled Unicode font path for the world Lyrics visualizer instead of depending on Latin-only vector glyphs.
  • Added support for Latin letters and diacritics such as ã, Russian and other Slavic Cyrillic text, Korean Hangul, Japanese kana and kanji, Chinese Han characters, and Arabic.
  • Added Unicode normalization, codepoint-safe iteration and truncation, combining-mark handling, and Arabic shaping with right-to-left reordering.
  • Applied the same multilingual world-lyrics behavior to local and relay-synchronized lyrics across every supported Minecraft target.

Bloom controls

  • Added the Bloom Strength slider to Minecraft 1.21.1, 1.21.11, 26.1.1, and 26.1.2, matching the control already introduced on 26.2.
  • Connected the saved strength value to particle and geometry bloom on both Fabric and NeoForge while preserving the existing OpenGL, Vulkan, Sodium, and shader compatibility paths.

Official update notice

  • Added a non-blocking startup check for newer compatible THC releases.
  • The prompt offers Go to site, Don't ask again, and Later; it never downloads or replaces a mod automatically.
  • Restricted update links to the trusted THC HTTPS host.
  • Starting with 0.1.9, the same notice behavior is available across direct, CurseForge, and Modrinth distributions.

Validated release set

  • Promoted Minecraft 1.21.1, 1.21.11, 26.1.1, 26.1.2, and 26.2 to normal validated releases for Fabric and NeoForge.
  • Verified loader artifacts, metadata, and SHA-256 hashes, and confirmed that no executable or native-library payload is bundled.
  • Configured platform distributions to use the validated official builds.
  • Reset release-specific website counters for 0.1.7 while preserving a separate lifetime total across every tracked release.

Service Update / July 17

  • Added Modrinth as a first-class distribution channel beneath CurseForge on the Downloads page.
  • Added a live Modrinth API check to the Status page and a distinct moderation-pending state that does not report a core service outage.
  • Documented that CurseForge may lag behind due to slower moderation while Modrinth initially distributes the official THC build.
  • Made the scrolled Downloads header fully opaque so page headings no longer show through or overlap the navigation bar.
July 15-16, 20260.1.6

True light, clearer interfaces, safer media

True Dynamic Lights

  • Expanded visualizer light projection across non-full block geometry including slabs, stairs, leaves, fences, walls, panes, doors, trapdoors, signs, chests, lanterns, torches, plants, carpets, paths, paintings, and similar shapes.
  • Added separate transparent-block and fluid transmission controls for glass, ice, water, and other partially light-blocking materials.
  • Respected cutout texture alpha so transparent portions of flowers, doors, and other sprite-like models no longer receive a faint rectangular light surface.
  • Restored the no-shader render path while retaining Iris/shader-pack compatibility.
  • Expanded the light brightness control to support stronger output and relabeled it clearly in Particle settings.

Interface and background blur

  • Reworked background capture to avoid black frames and recursive framebuffer feedback under Iris.
  • Kept the world blurred behind THC while rendering the main GUI, website confirmation, Privacy & Services, dependency consent, and options screens sharply above it.
  • Prevented bass-reactive Screen FX from post-processing an open GUI.
  • Corrected overlapping labels and controls across Lyrics, Particles, Players, and Visual pages.

Media safeguards and artwork

  • Added a 20-minute duration limit and 64 MiB media-file limit for provider-resolved playback.
  • Improved SoundCloud artwork resolution so downloaded tracks can retain their cover image.
  • Kept dependency versions pinned and SHA-256 verified before official-build installation.

Compatibility Update / July 16

  • Added Fabric and NeoForge builds for Minecraft 1.21.11, 26.1.1, 26.1.2, and 26.2 while keeping 1.21.1 as the source-of-truth build updated first.
  • Validated the populated, rounded THC interface on Minecraft 1.21.11 and published it as a normal compatibility release.
  • Published 26.1.1, 26.1.2, and 26.2 as clearly labeled Alpha builds while broader gameplay and relay testing continues.
  • Ported 26.2 world visuals to Minecraft's deferred SubmitNodeCollector renderer and NeoForge's SubmitCustomGeometryEvent.
  • Compile-validated both 26.2 loaders; runtime validation is still pending.
  • Pinned each loader/API range and compiled 1.21.11 for Java 21 while compiling 26.x for Java 25.
  • Kept the relay wire format independent of Minecraft and loader versions so supported THC clients can share party state on mixed-version server setups.
  • Documented the update order: 1.21.1 is always updated first, then another maintained target is selected at random.
  • Added independent download counters and verified SHA-256 values for every Minecraft-version and loader pair.

Minor Fix / Update / July 16

  • Disabled face culling for the deferred THC GUI pipelines so rounded triangle fans render consistently across the new Minecraft renderers.
  • Corrected page clipping coordinates so main-GUI cards, labels, and controls are visible instead of being clipped out on 1.21.11 and 26.x.
  • Rebuilt every port artifact, replaced the historical channel-specific JARs, and issued new SHA-256 hashes.
  • Increased spacing on the downloads page and moved narrower desktop layouts to full-width loader cards.
  • Expanded the version selector to five targets without squeezing narrower desktop or mobile layouts.

Official website variant

  • Includes the explicit, consent-gated installer for the pinned yt-dlp and FFmpeg releases.
  • Downloads only after the user selects the install action, verifies hashes before use, and stores tools inside the active Minecraft instance.
  • Ships as distinct -official.jar files for Fabric and NeoForge.

Historical CurseForge behavior (superseded in 0.1.9)

  • Version 0.1.6 physically omitted OfficialDependencyInstaller and contained no dependency-download payloads.
  • It kept local discovery and execution support for tools the user installed manually.
  • This separate behavior no longer applies starting with 0.1.9.

Service Update / July 15

  • Added a Chrome-specific low-paint rendering path that replaces costly fixed blend and backdrop-filter layers with visually matched composited surfaces.
  • Throttled header updates and paused the website visualizer during active Chrome scrolling.
  • Reduced Chrome visualizer pixel density, glow work, and particle counts while preserving all showcase modes.
  • Replaced repaint-heavy hover shadows and layout-changing navigation hovers with transform and border transitions.
July 14-15, 20260.1.5

Consent, reliability, and multiplayer polish

Audio tools

  • Moved managed tools and media caches into the active Minecraft instance under thc/.
  • Made FFmpeg and yt-dlp installation an explicit user action instead of a startup download.
  • Pinned yt-dlp 2026.07.04 and FFmpeg 8.0.1, with SHA-256 verification before use.
  • Added discovery of compatible instance-local and system-installed tools before prompting.

Official website variant

  • Retains the explicit, consent-gated dependency installer for pinned FFmpeg and yt-dlp releases.
  • Verifies dependency SHA-256 hashes before extraction or execution.
  • Uses explicit -official.jar download names so CDN caches cannot mix release channels.

CurseForge variant

  • Physically omits the executable downloader class and executable dependency download URLs.
  • Replaces the download action with manual setup instructions and original dependency sources.
  • Contains no bundled executables, native libraries, or hidden installer payloads.

Multiplayer and relay

  • Improved remote visualizer update frequency and other-player particle controls.
  • Added reconnect-safe persistent party accounts, membership, and roles through the relay.
  • Improved world-space lyric and visualizer synchronization for nearby players.

Interface and project

  • Added a configurable bottom-right official-site watermark to Fabric and NeoForge, with confirmation before opening the website.
  • Added in-client service disclosures for downloads, relay data, retention, and third-party services.
  • Added dedicated website downloads, changelog, support, agreements, status, wiki, and per-version counters.

Service Update / July 15

  • Added verified Ko-fi and Patreon supporter ingestion with retry deduplication and privacy-safe public opt-in rules.
  • Added aggregate supporter totals and platform counts without exposing private payment or membership identities.
  • Added live supporter-integration health to the public status page.

Minor Fix / Update / July 15

  • Added a dedicated mobile agreements layout and fixed mobile horizontal overflow.
  • Reduced visualizer frame rate, pixel ratio, particle counts, blur, and off-screen rendering work on constrained devices.
July 20260.1.4

Instance-local foundations

  • Introduced safe migration for known THC-owned files from the legacy user-home folder.
  • Added disclosure screens and controls for relay connection and optional dependency downloads.
  • Expanded party synchronization, mute controls, and world visualizer settings.
Initial public build0.1.1

The first public rhythm

  • Released audio-reactive world visualizers for Minecraft 1.21.1.
  • Provided Fabric and NeoForge client builds with configurable visual styles.
  • Introduced audio playback, lyrics, widgets, and multiplayer presence.

Try the current build

Version 0.2.0 is ready

Go to downloads
go back to joints and java home?