Skip to main content

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: vertical or horizontal
  • Server defaults set in config.json, players override via /kspet menu
  • 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 MountAnimationSyncSystem with playAnimation(), 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