CobblemonQuests
Drop-in daily & weekly quest system with configurable rewards, streaks, milestones and hidden quests.
Список изменений
[1.0.0] — 2026-04-16
Initial release. Server-side Fabric 1.21.1 quest system for Cobblemon, designed from the official Cobblemon Quest System concept document. Zero party/social/multiplayer features by design — those will arrive alongside the future party system.
Added
Core mechanics
/quests— double-chest GUI showing active daily + weekly + elite weekly quests with rarity-colored names, per-quest progress bars, reward previews, and reset-timer indicator.- Quest definitions are one HOCON file per quest in
config/cobblemonquests/quests/. First boot seeds the folder with 10 sample quests covering all 5 categories (catching, battling, training, exploration, activities) and all 4 rarities (common, rare, epic, legendary). Admins can ship community quest packs as a single directory drop. - Pool-based random assignment: on reset, 3–5 daily quests and 3–5 weekly quests are picked per player, weighted by rarity and spread across categories so no reset ever stacks identical quest types.
- Server-wide fixed reset: configurable timezone + hour; all players' dailies reset at the same moment. Offline players auto-catch up on next join.
- Reroll system:
/quests reroll <slot>or the GUI's reroll button. First reroll per UTC-day is free; subsequent cost configurable (Stars, PokéDollars, or either). Rate-limited to 5 attempts/minute.
Rewards
Atomic multi-reward grant with rollback-aware failure handling. Supported types:
- PokéDollars — via Impactor primary currency
- Stars — mod-managed per-player balance, persisted in player data
- Item — any Minecraft/Cobblemon item id; configurable overflow behavior (drop / enderchest / refuse)
- Crate keys — configurable crate-plugin command template (ExcellentCrates / CMI / etc.)
- Commands — arbitrary console commands with
{player}substitution
Advanced quest types
- Elite weekly — one extra-difficult weekly quest with significantly better rewards, displayed in a dedicated GUI slot with glow.
- Hidden / secret quests — invisible until triggers match (catch count threshold, species catch, dimension enter). Discovery fires a MiniMessage notification and adds the quest to the player's hidden tab. Optionally repeatable.
- Bonus objectives — each quest may declare one optional bonus with its own progress bar and independent reward bundle.
Streaks & milestones
- Daily streak — completing all assigned dailies before reset increments streak; missing a day resets it. Configurable rewards at day 3, 7, 14, 30 (and any other day you define).
- Milestones — total quests completed unlocks one-time rewards at configurable thresholds (default: 50, 100, 250, 500, 1000).
Admin tools
/quests adminGUI with quest library browser, pool composition view, reroll price display, and one-click reload./quests admin reload— hot-reload config + quest definitions. Players keep in-flight quest progress: each active quest snapshots its definition at assignment time, so config edits never retroactively change a payout./quests admin give <player> <quest>— inject a quest for testing./quests admin complete <player> <quest>— force-complete a quest and grant its rewards./quests admin reset <player>/resetweek <player>— bump a player to a fresh assignment without waiting for the scheduler.
Progress tracking
Subscribes to Cobblemon events:
POKEMON_CAPTURED— catches with filters (species, types, shiny, legendary, biome, dimension, level)BATTLE_VICTORY— NPC-only (PvP is excluded from v1.0 — will return with the party-system update)LEVEL_UP_EVENT— level-up objectives +gain_levelscountEVOLUTION_COMPLETEEXPERIENCE_CANDY_USE_POSTTHROWN_POKEBALL_HIT- Fabric server tick — biome / dimension transition tracking at 1 Hz
Security
Lifted the defensive patterns from PokeBuilder:
- Permission re-check on every action — a demotion takes effect immediately even mid-session.
- Rate limiter — per-bucket sliding-window caps on reroll and admin commands.
- Audit log —
logs/cobblemonquests-audit.logrecords every quest assignment, completion, reward grant, reroll, admin action, hidden discovery, and milestone crossing with an 8-char base36 transaction id. - Snapshot at assignment — config edits don't double-pay an in-flight quest.
- Reward command execution runs as console with placeholder substitution only — no user input ever reaches the shell.
- Bypass permissions (
cobblemonquests.bypass.*) are explicit-only viahasExplicit—/opdoes NOT grant them.
Permissions
| Node | Default | Purpose |
|---|---|---|
cobblemonquests.true | OP 1 | Use /quests |
cobblemonquests.reroll | OP 1 | Use /quests reroll |
cobblemonquests.bypass.reroll-cost | false | Free rerolls always |
cobblemonquests.bypass.rate-limit | false | Skip rate limits |
cobblemonquests.admin | OP 3 | Open /quests admin |
cobblemonquests.admin.reload | OP 3 | Reload config |
cobblemonquests.admin.give | OP 3 | Give a quest |
cobblemonquests.admin.complete | OP 3 | Force-complete |
cobblemonquests.admin.reset | OP 3 | Reset state |
Configuration
config/cobblemonquests/config.conf is a HOCON file with knobs for
schedule, pool weights, reroll cost/currency, streak/milestone
rewards, integrations, security, and GUI theming. Each quest is its
own file under config/cobblemonquests/quests/. MiniMessage is
supported everywhere player-facing.
i18n
English bundled. Drop config/cobblemonquests/lang/<locale>.json to
localize without rebuilding. Resolution order: config dir → bundled
resource → bundled en_us fallback.
Requirements
- Minecraft 1.21.1
- Fabric Loader ≥ 0.16.0
- Fabric API
- Cobblemon ≥ 1.7.0 (hard — the mod has no purpose without it)
- Impactor ≥ 5.3.0 (soft — without it, PokéDollar rewards are skipped with a warning; Stars, items, crate keys, commands still grant)
- Java 21
Bundled in the jar: Fabric Permissions API, SpongePowered Configurate HOCON, Typesafe Config.
LuckPerms is optional — falls back cleanly when absent.
Coexists with PokeBuilder and StaffChat on the same server with no class conflicts or shared mutable state.