All versions
1.3.3
Release
Pokebuilder for Cobblemon 1.3.36 months ago 27
Compatibility
Minecraft: Java Edition
1.21.1
Platform
Fabric
Supported environments
Server-side
Singleplayer
Required content
Unavailable version
Unavailable version
Unavailable version
Unavailable version
Unavailable version
Changes
[1.3.3] — 2026-04-16
Fixed
PCSelectGuicrashed every time the player tried to open it withNullPointerException: Cannot invoke "String.isEmpty()" because "$$0" is nullfrom insideText.literal(null). Cobblemon'sPCBox.getName()returnsnullfor boxes the player has never explicitly renamed (which is every box on a fresh PC). I was passing that directly toItemBuilder.lore()which forwards toText.literal(). The 1.3.2 diagnostic logging caught it and identified the call site (PCSelectGui.renderBoxline 110). Fixed by defaulting to "Box N" when the name is null/blank, and by hardeningItemBuilder.name/loreto no-op or coerce on null inputs so this whole class of bug can't crash a GUI again. Caught in 1.3.2 thanks to cora's follow-up testing.
[1.3.2] — 2026-04-16
Fixed
- Clicking the "Switch to PC" toggle did nothing visible. Root cause
was a registry race:
BaseGui.open()registered the new GUI inGuiManagerbefore callingplayer.openHandledScreen(), butopenHandledScreentriggers the OLD handler'sonClosedcallback which callsBaseGui.onClose→GuiManager.unregister(playerId). Because the registry is keyed by player UUID (not by GUI identity), the unregister yanked the freshly-registered new GUI's entry. Fixed by opening the screen first and registering the new GUI after — the old GUI's onClose then unregisters cleanly without colliding with the new entry. - PC browser layout had slot collisions. The 30 box slots packed
into a 5×6 grid overlapped the bottom-bar buttons (
BOX_INFO_SLOT47,PARTY_TOGGLE_SLOT49,NEXT_SLOT51) so the last 2 box Pokémon were unreachable and clicking those buttons sometimes triggered a Pokémon-edit instead. New layout puts box slots in a 5×6 grid anchored at row 0 col 1 (slots 1–6, 10–15, 19–24, 28–33, 37–42), reserving row 5 entirely for the bottom bar. Cols 0 / 7 / 8 remain decorative glass walls.
Added
- Diagnostic logging on every PC-open path.
PCSelectGui.open,CobblemonBridge.getPC, and thePartySelectGuiPC-toggle handler now log every failure with the exception type, player name, and stack trace. If the toggle still fails to open the PC for anyone, the next attempt will leave a clear trail inlogs/latest.log— including a chat message to the player naming the failure class. BaseGui.open()now wrapsbuild()andonOpen()in try/catch. A misbehaving feature that throws during render no longer leaves the player with a half-attached screen; the failure is logged with the GUI class name and the player keeps their previous screen.
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:hUzEOIQX:KXqRT0SH"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:hUzEOIQX:KXqRT0SH"
}

