Changelog
v1.0.0 — 2026-03-25
Initial release of the KyuubiSoft Pet System with 3 modules and 48 pet/mount types.
Module System
Three independently toggleable modules via config.json:
- Pickup Pets (collector) — 26 types. Miniature companion NPCs that follow the player and automatically collect nearby items. Configurable pickup filters with presets and blacklist/whitelist modes.
- Combat Pets (combat) — 13 types. Always-aggressive battle companions with floating damage numbers, attack animations, and per-entity animation sets.
- Mounts (mount) — 9 types. Instant summon via Mount Horn item, native engine position sync (
player.setMountEntityId), F-key dismount, configurable speed and health per mount type.
Random Stat System
- 11-stat pool:
damage_bonus,max_health,pickup_radius,xp_bonus,stamina_regen,mana_regen,crit_chance,armor_bonus,loot_luck,thorns,life_steal - Rarity-based stat slots: uncommon (2), rare (3), epic (4), legendary (5)
- Stats unlock progressively at level thresholds defined per rarity
- Quality range scaling per rarity (legendary can exceed base maximum at 1.2x)
- Same stat type can appear up to 3 times per pet
- Combat pets roll from a restricted combat-only stat pool
Reroll and Refine Scrolls
- Reroll Scroll — re-rolls both stat type and value randomly
- Refine Scroll — keeps stat type, re-rolls value only
- Separate scrolls for pickup pets (
Pet Reroll Scroll,Pet Refine Scroll) and combat pets (Battle Reroll Scroll,Battle Refine Scroll) - Scroll usage requires the stat to be unlocked and a pet to be summoned
Pet Tracker HUD
- Player-configurable position: 6 presets (
top-left,top-right,middle-left,middle-right,bottom-left,bottom-right) - Player-configurable layout:
verticalorhorizontal - Server defaults set in
config.json, players override via/kspetmenu - Displays pet name, level, XP progress, items collected, and active buff indicators
UI Pages
- Pet Menu — Owned pets grid with active pet info, HUD settings, 5 pet slots per page with pagination
- Pet Collection — Overview of all pet types with ownership status, 6 entries per page
- Bestiary — Discovery tracker with highest level and discovery date, 5 entries per page
- Filter — Pickup filter rule management with presets, 12 rules per page
- Reroll — Stat reroll interface for pickup and combat pets
- Refine — Stat refine interface for pickup and combat pets
- Mount Page — Mount selection and summoning, 3 slots per page
Safety Features
- Gamemode change protection: Follow target auto-refreshes when gamemode changes to prevent orphaned NPCs
- Drop guard: Dropping a pet egg, battle rune, or mount horn automatically dismisses the associated pet/mount
- Orphan NPC cleanup: Periodic sweep + on-join check + manual admin commands to remove stale pet NPCs
- Startup/shutdown cleanup:
forceRemoveAllKSRoleNpcs()with CountDownLatch on server start/stop
Buff System
- Level-scaled buffs applied to the pet owner
- Proper buff stacking fix (no duplicate application)
- Buffs reapply automatically on level-up
Mount System Details
- Position sync:
player.setMountEntityId(networkId)— native engine sync for all players - Animation sync: ECS
MountAnimationSyncSystemwithplayAnimation(), MovementStates+Velocity sync, keepAliveTicks hysteresis - Walk/Run detection: Uses MovementStates flags only (not Velocity — oscillates per tick)
- Clean dismount: Native NPCMountSystems handles player state, entity removed via UUID-lookup (500ms delayed)
- NPCMountComponent: Interactable set together with NPCMountComponent (OnAdd compatibility)
Items
- 52 item definitions total: pet eggs (26), battle runes (13), mount horns (9), scrolls (4)
- Auto-generated item templates for custom pet types (written to
item-templates/when a pet type's summon item is missing from server content)
Localization
- English (
en-US) and German (de-DE) included - 74 localized keys covering all user-facing strings
- Localization version 6
Commands
- Full admin command suite via
/kspetadmin - Player commands via
/kspet(aliases:pet,pets) - Combat pet commands via
/kscombatpet - Mount commands via
/ksmount
Bugfixes
- Placed items (flowers, furniture) no longer picked up by pets
- Combat pets no longer use the pickup system
- Items go to Storage first (not Hotbar) to avoid animation flicker
- Filter works without active pet (first collector pet as fallback)
- "Press F to interact" prompt removed from pets and mounts
- Adjusted model scales for 8 pets
Technical
- Standalone plugin — no dependencies on other KyuubiSoft mods required
- File-first config pattern with JAR fallback
- Auto-save with configurable interval and dirty-flag tracking