1.2.0-BETA
Compatibility
Required content
Changes
[1.2.0] — 2026-04-17 — "Customization Update"
Full GUI layout customization, new quest types, and a completely reworked reward editor with a 4-step wizard flow. Admins now control every pixel of the player quest menu and can build rewards visually without ever opening a config file.
Added — GUI Layout Config
- New
config/cobblemonquests/gui/player_main.conf— a slot map that assigns a role to every slot (0–53) in the player/questsGUI. - Available roles:
border(glass pane, configurable color 0–15),filler(any custom item id),divider,daily_quest(indexed),weekly_quest(indexed),elite_quest,button_close,button_stats,button_claim_all,button_timer,button_reroll,button_hidden,button_admin,button_version,empty. - Admins can fully rearrange the layout, add custom filler items, reposition quest slots, and restructure the menu without touching Java code.
- Default layout mirrors the v1.1 design. Delete the file and reload to regenerate.
- Hot-reloadable via
/quests admin reload.
Added — New Quest Objective Types (15 total)
Four new types join the existing eleven:
HATCH_EGG— auto-subscribed to Cobblemon'sHATCH_EGG_PREevent. Tracks species, types, shiny, legendary on the hatched Pokémon.DEFEAT_WILD— fires on battle victories that are NOT NPC trainer battles and NOT PvP. Lets admins distinguish "defeat a wild Pokémon" from "win any battle."CATCH_SHINY— shortcut type that fires alongside every shiny catch. No filter setup needed — just set a target count.CATCH_LEGENDARY— same pattern for legendary catches.
Changed — Reward Wizard (4-step rework)
The old single-click "append a default reward" flow is replaced by a guided 4-step wizard:
- Category — pick Currency / Items / Crate Keys / Commands.
- Selection — depends on category:
- Currency: choose PokéDollars or Stars.
- Items: tabbed browser (All / Cobblemon / Balls / Candies / Vanilla) with full item-registry pagination. Click an item to select it.
- Crate Keys: pick from common preset names (daily, weekly, monthly, elite, milestone, legendary, common, rare, epic, vote).
- Commands: pick from preset command templates.
- Quantity — +1 / +10 / +100 and −1 / −10 / −100 buttons around a centered live counter.
- Recap + Confirm — shows the full reward summary (type + selection + quantity). Click "★ Add to Quest ★" to attach it and return to the editor.
Both the Quest Editor and the Quest Creation Wizard now open this wizard when the admin clicks "+ Add reward."
Internal
- New
GuiLayoutConfig+SlotRole+SlotEntryclasses drive the layout-config system.QuestsMainGuiis now fully data-driven — it reads the slot map at build time and dispatches clicks by role, not by hardcoded slot index. - New
gui.admin.rewardpackage with 7 classes:RewardWizardCallback,RewardCategoryGui,RewardCurrencyPickerGui,RewardItemBrowserGui,RewardCrateKeyGui,RewardCommandGui,RewardQuantityGui,RewardConfirmGui. EggHatchTrackersubscribes reflectively to Cobblemon's egg-hatch event field (name varies between Cobblemon versions).BattleTrackernow fires bothWIN_BATTLEandDEFEAT_WILDon wild-only victories.ProgressTracker.fireCatchnow also firesCATCH_SHINY/CATCH_LEGENDARYwhen the caught Pokémon matches.
Notes for upgraders from 1.1
- Drop the new jar in
mods/. On first boot,gui/player_main.confis created with the default layout. Your existingconfig.confand quest files are fully forward-compatible. - If you had customized slot positions via a fork, migrate your
changes to
player_main.conf— the hardcoded slot constants are gone.
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:4ShL0DGz:JOE4WBQW"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:4ShL0DGz:JOE4WBQW"
}
