Tags
Creators
Details
All versions
9.0.0-alpha.8+mc26.2-fabric
Alpha
Pupper Client 9.0.0-alpha.8 for Minecraft 26.2 (fabric)last week 17
Uploaded by
Compatibility
Minecraft: Java Edition
26.2
Platform
Fabric
Supported environments
Client-side
Required content
Any compatible version
Any compatible version
Changes
Pupper Client 9.0.0-alpha.8 for Minecraft 26.2
Minecraft 26.2 · Fabric / NeoForge · Architectury API · Java 25
Changes
- chore: bump the version to 9.0.0-alpha.8 (e2806f1)
- fix(hud): draw a simple metric once per frame (52d0454)
- build: leave ViaFabricPlus out of the development runtime (d8a4741)
- docs(i18n): fill the missing Chinese strings and drop stale keys (8600ab4)
- chore: remove the cloud music HUD (cd639ae)
- chore: remove the server text privacy module (a3a4768)
- chore: remove the heypixel module (e361361)
- fix(gui): route a wheel event to what is under the cursor (9fc7e56)
- feat(protocol): make ViaFabricPlus an optional dependency (9842b61)
- refactor(music): move the library scan out of the manager (929c257)
- refactor(cosmetics): move the file rules out of the page (c1bf5a2)
- refactor(skia): split the drawing facade by what it draws (07a8318)
- perf(input): stop rebuilding the keybind list on every click (ea8106c)
- perf(ui): skip redundant texture binds within a UI pass (4ca9f37)
- build: drop the space from artifact names and clear stale jars (60f006a)
- test: run the pure-logic checks with JUnit (fca8bcd)
- refactor(settings): separate the setting model from the settings modules (36fe917)
- refactor(mixin): drop the repeated word from the mixin package (4985ec6)
- build: enforce whitespace and indentation with spotless (7d523ec)
- test: rename the verification source set after what it is (92eebe3)
- refactor(hud): share the fade and numeric-diff helpers (c176729)
- refactor(hud): declare the frame listener once in the base class (1e86ff1)
- refactor(config): dispatch setting types through one codec table (7fe7659)
- chore(settings): drop the ytdlp and ffmpeg path settings (6e1f9c0)
- refactor(gui): express the page transitions as one slide (927dcba)
- refactor(player): share the perspective state machine (b4f19d7)
- chore(icon): keep only the icon constants the client draws (472366a)
- chore(assets): drop the unused background and shrink the logo (ec71fe0)
- chore: remove fields nothing reads (ed863b7)
- chore(mixin): drop two mixins that inject nothing (4f53855)
- chore: delete unreachable code and orphaned resources (d0f2a8f)
- chore(shaders): remove seven unused shader programs (97096e8)
- docs(license): correct the provenance note for the Material facade (4f6627c)
- docs(license): describe vendored headers as they actually are (e41d322)
- fix(shutdown): release cape and skin textures (cb7ac36)
- fix(mixin): merge duplicate hooks and drop both overwrites (e1dc77f)
- fix(hud): resolve the fallback design without recursing (12c1f5e)
- fix(io): handle cancelled dialogs and missing configs (abed9c2)
- fix(threads): use one scheduler thread and drop the unused pool (7ab1e66)
- perf(music): wait for player work instead of polling (0b5c420)
- perf(music): scan the library off the client thread (2ae43d7)
- perf(ui): upload UI geometry in one batch per pass (077d193)
- perf(hud): rebuild the mod list only when its inputs change (85fbe13)
- perf(text): cache glyph bounds and font metrics (c0a198c)
- perf(color): resolve each Material role once per scheme (adc9811)
- fix(websocket): configure the endpoint and stop sending session tokens (babc42f)
- fix(player): read Minecraft state on the client thread (a353ff5)
- fix(event): make listener dispatch safe across threads (5ce085c)
- fix(skia): make image loading report failures and key by identity (1de5080)
- fix(build): package the Linux Skija natives the inventory already listed (1d7177c)
- fix(config): key saved settings by translation key, not display name (d7c28b1)
- build: keep the blank line after the license header (51c0491)
- refactor(build): move every build script to the Kotlin DSL (5b1d3b5)
- build: enforce the license header with Spotless (9224497)
- docs(agents): add universal rules and verified check commands (fc1a11d)
- chore(license): add the GPL header to every first-party source (4f15f00)
- docs(license): point the inventory at the version catalog (7cb67cb)
- refactor: remove unlicensed converter and dead copyleft code (ace62c1)
- feat(font): replace the proprietary Google Sans heading with Open Sans Medium (914c744)
- docs(license): add license texts and third-party inventory (13b14c5)
- docs(license): adopt GPL-3.0-or-later with NOTICE and third-party inventory (c8194af)
- fix(autotext): skip ticks without a player instead of with one (8654f67)
- feat(cosmetics): show layered top and side faces in skin preview (d418bd5)
- fix(cosmetics): load textures on the client thread and enlarge skin previews (d6477f7)
- feat(cosmetics): keep custom capes and skins local to the client user (3cc08a2)
- fix(cape): avoid invalid texture ids for non-ASCII cape names (cc8ffec)
- fix(ci): install headless Skia libraries on the Linux runner (dafdebb)
- fix(build): provide Linux Skija natives to HUD verification (082b0d5)
- feat(render): add clear view module for blindness, darkness and nausea visuals (1606878)
- docs(readme): trim duplicated requirements and tighten the layout (a6b58a7)
- test(smoke): add an entity render extraction benchmark (b94845b)
- perf(render): memoize shadow scans and skip unchanged display blocks (9acc3a4)
- fix(render): apply the boat water mask pose that 26.2 never evaluates (4e30c83)
- perf(render): reuse rail orientation for stationary minecarts (18109f7)
- docs(agents): forbid internal phase codes in commit messages (86a38b9)
- feat(hud): add item and crosshair info modules (1bc77a7)
- feat: expand music player and simplify client settings (e907c94)
Optional dependencies
Any compatible version
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:zN1WBfNk:3G9lG9Qo"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:zN1WBfNk:3G9lG9Qo"
}

