Config System:
- stat-pool.json — All pet stats, rarity rules, and combat defaults are now configurable
- Combat pet configs are no longer overwritten from JAR on reload
- Mount speed now works via MovementSettings.baseSpeed (1.0x - 3.0x)
- Item Quality (border color) automatically syncs to config rarity on startup
UI Redesign:
- 3 category rows (Collector / Combat / Mounts) with 5 slots each instead of a mixed list
- Color-coded categories — Collector (green), Combat (red), Mounts (blue)
- Active Companions section — 3 cards side by side for active Collector, Combat, and Mount with individual Dismiss buttons
- Summon buttons hidden when a pet in that category is already active — must dismiss first
- Sorted by last summoned (most recently used = first)
- Window enlarged to 540x720px
Bugfixes:
- Pet limit display showed "x/3" instead of "x/5" — maxPetSlots now synced from config on player connect
- Mount from menu frozen — page now closes before mount spawn so player can move
- Dropping a pet item (Egg/Rune/Horn) now auto-dismisses the active pet via DropItemEvent
- HUD now auto-creates when a pet is summoned if it wasn't shown yet
- Pet_Egg_Trork Quality fixed from "Epic" to "Uncommon" to match config rarity
New Commands
- /kspetadmin maxout — Sets pet to max level with all stats and effects
- /kspetadmin reroll — Re-rolls all stats from scratch
- Both support: no args (own active pet), combat/collector/pickup/mount (module shortcut), or <player> <type> (full form)
Bugfixes
- setlevel not granting stats — Now rolls stats for all skipped unlock levels
- Combat pets getting wrong stats — Now uses combat stat pool instead of general pool
- Combat pet tooltip hiding stats — Shows all 5 combat stats (was only showing 2)
- Multi-word pet type IDs — dragon frost → dragon_frost works in all commands
- maxout on already max-level pets — Fills in missing stats even if already at max
- maxout/reroll not finding combat pets — Now checks both collector and combat pet slots
Bug Fixes:
- Fix: Combat pet summoned via /kspet menu now follows the owner (missing setFollowOwner call)
- Fix: Mount summoned via /kspet menu now shows F-key interaction (uses MountService.spawnAndMount() instead of PetSpawnService)
- Fix: Menu now allows Combat + Collector pets simultaneously (matching item-based summoning behavior)
- Fix: KnockbackScale: 0 → 0.001 in 4 NPC roles (Follow, Mount Walk/Fly/Swim) — prevents Update 4 crash
- Fix: Interactable component removed in spawn callback — prevents "Inspect" client crash on pets
