cobbletracker-neoforge-1.1.0.jar
Curse Maven Snippet
What's new
Changelog
1.1.0
Built and tested against Cobblemon 1.7.3.
⭐ Legendary spawns
Cobblemon ships no legendary spawn data at all — out of the box they only ever come from shrines. CobbleTracker now handles them, and steps aside when something else already does.
- Context-aware director. Legendaries are placed by biome, time of day, weather and height, judged at the position the spawn would actually land at. Rayquaza on a peak in daylight, Regieleki in a thunderstorm. If nothing fits, nothing spawns.
mode: autorespects your datapack. Install a legendary spawn datapack and the director stands down instead of doubling the rate and overriding its biome rules. Remove it and it takes over again. The decision is logged whenever it changes.- New
legendaries.yml, written in the same vocabulary as Cobblemon's own spawn files (#cobblemon:is_mountain,timeRange,isRaining). /checklegendary— reads Cobblemon's live spawn pool and lists what can appear where you're standing, with per-attempt odds and a countdown to the next attempt. Chat-only, so it works without the client mod. Also the quickest way to find out a legendary datapack failed to load./spawnlegendary— spends one attempt immediately, by the same rules.
✨ New features
- Personal notification settings. A NOTIFY tab in the GUI and
/ct notifyin chat: silence a category for yourself, keep the message but drop the sound, or narrow it to your own radius. A personal radius only ever narrows, never widens. - Discord webhooks, per category. Posted off the server thread with a bounded queue, so a slow or
unreachable Discord never costs tick time. Coordinates obey
hide-exact-position. - Command hooks —
on-spawn-commandsandon-catch-commandsrun console commands with%player%/%species%, enough to wire up rewards or an economy with no extra dependency. - LuckPerms support for every command, by soft detection — no compile-time dependency. Falls back to vanilla operator levels when it isn't installed.
- Action bar announcement channel, alongside chat, title and sound.
- Pokémon details on history cards — level, gender, nature, ability and IVs with the count of perfect ones. EVs too, where a spawn has any. Replaces the spawn distance.
hunt:config block lets a server switch personal hunt mode off. The player's species list is kept and comes back on a server that allows it.- Hunt list persists across sessions, and shift-clicking a history card starts hunting that species.
- Spec operators. Prefix a token with
!to negate it and use|inside a value for or:spec: "isShiny !species:magikarp",spec: "isLegendary species:rayquaza|lugia". - New spec tokens:
perfectIvs,ivs,scale,gender,nature,form,ability, plus context tokensbiome,dimension,time,weatherandy.
🐛 Fixes
- Beams now survive a reconnect. They were only ever pushed at the moment of the spawn, so anyone who joined afterwards — or simply relogged — saw nothing over a legendary that was still standing there.
/checklegendaryodds were wrong by about two orders of magnitude. Biome conditions were only checked against a spawn entry's combined biome set, never inside each individual condition. Because Cobblemon leans heavily on biome-only conditions and anticonditions (979 in the bundled pool alone), this both reported impossible spawns as available and wrongly excluded most of the pool from the odds calculation./ct notify <category> sound offswitched a silenced category back on. Sound and radius are now independent of the on/off state./spawnlegendaryfailed at random near biome borders — only one candidate position was tried.scale:1.15never matched anything. Cobblemon stores scale as a float, so an exact comparison against the value written in config could not succeed.biome:minecraft:junglealso matched a worldgen mod's ownjungle. A namespaced value now means exactly that biome.- Hunt list changes could be lost when quitting to the title screen inside the save debounce.
- Legendary rule descriptions rendered a lone height bound as
Y -40, which reads as a negative number. - A typo in a
legendaries.ymlweather flag silently became "don't care"; it now warns.
🔧 Changes
- Beam radius, grace and height moved out of
/ct admin. Every spawn carries its beam settings to the client when it happens, so editing them there could never affect what was already on screen. They live inconfig.ymland apply on/ct reload. /ct adminminimap rows now show whether you have that mod installed, rather than claiming a format is active when nothing can use it./lastlegendopens the history GUI on its Legends tab when you have the client mod, and falls back to the chat rundown when you don't./checklegendarylists only what can actually spawn, with a one-line count of the rest, instead of printing a hundred rows of "wrong biome".- The unimplemented
kind: blockcategory option was removed. An old config that still sets it loads fine — and the category now works, where before it was silently ignored.
🧹 Under the hood
- Removed per-frame string allocation in the history GUI and per-tick allocation in the spawner.
tracker.jsonandprefs.jsonwrites moved off the server thread;hunt.jsonoff the render thread. All ordered so a delayed write can't revert a newer one.- Fixed a dispatch thread leak in the Discord worker across world reloads.
- Added a re-entrancy guard so a command hook that causes another tracked spawn can't loop.
- 80 unit tests.
1.0.0
First release. Spawn beam, minimap waypoints (Xaero's / VoxelMap / JourneyMap), configurable announcements, browsable spawn history with a capture leaderboard, personal hunt mode, an optional built-in spawner, six themes and an in-game admin panel.
This mod has no additional files

