Changelog
v1.12.1 — 2026-10-23
Section titled “v1.12.1 — 2026-10-23”Missing translations and unreadable characters. Not tested in game yet.
- All nine languages are complete. 143 texts were English for Spanish, French, Italian, Polish, Brazilian Portuguese, Russian and Turkish players: the compendium (tabs, filters, status chips, buttons, stat rows, reroll tooltips, copies list, 3D stage hints), the pickup filter window, the HUD (pet kind, kills, recovery, revive hint), the combat pet messages (defeated, recovering, owner away, revived), the item restore messages, the four “all” scroll names, the reroll-all and refine-all windows and the module and egg messages. They are now translated, with short words where the window has little room.
- The chat message after rerolling a stat (“Rerolled Damage: 5 › 8”) and the
/kspetadmin maxoutreply used an arrow that no game font has, so players saw a ”?”. Both use ”›” now. - “You need the pet item in your inventory” was garbled in Polish, Portuguese, Russian and Turkish. All four are correct now.
- German texts use proper umlauts, the egg is called “Ei”, and several Polish and Turkish typos are fixed.
Changed
Section titled “Changed”/kspetadminanswers in the admin’s own language. Usage lines, help, errors, the results of every subcommand and theinspectoutput were English text in the plugin; they are now in the language files of all nine languages. The console gets the server’s default language. Command syntax, pet type IDs and instance IDs stay as they are.- A failed
giveexplains the reason with the same text as the admin window (for example “The inventory of Steve is full, nothing was created.”). - The reasons a restore can fail (“their inventory is full”, “they still have this pet’s item”, …) are shown in the viewer’s language, in
/kspetadmin restoreand in the admin window’s Replace item. /kspetadmin listshows the rarity in the admin’s language.
Localization
Section titled “Localization”- Version 18. All nine languages now have the same 498 texts (before: 409 in English and German, 266 in the other seven). See Localization.
v1.12.0 — 2026-10-22
Section titled “v1.12.0 — 2026-10-22”Status page in the KyuubiSoft Panel. Not tested in game yet (boot-tested with and without the panel plugin).
- Pets page on the panel’s “Mod Status” page: when the panel plugin KyuubiSoftAPI (2.1 or newer) is installed, Pets shows a status page there: active companions (collector and combat pets out, players on a mount, players with a companion, loaded pet types), a table per world, the companions that are out right now (player, pet, kind, level, world; first 100), the module switches, and warnings when the pet database did not start, a game system failed to register or no pet types are loaded.
- Two admin actions on that page, only for panel accounts with the permission to run mod admin actions and recorded in the panel’s audit log: Reload configuration (same as
/kspetadmin reload, asks for confirmation first) and Remove orphaned pet NPCs (same as/kspetadmin cleanworld; summoned pets stay). - Pet events for the panel:
pet_level_up(player, pet type, new and previous level) andconfig_reloadedreach the panel’s event stream, so panel webhooks and event actions can react to them.
Changed
Section titled “Changed”- KyuubiSoftAPI is an optional dependency. Pets runs exactly as before without it.
v1.11.2 — 2026-10-21
Section titled “v1.11.2 — 2026-10-21”- Tile in the
/ksadminhub: with KyuubiSoft Core 2.8.0 or newer installed, the pet admin window appears as a tile in Core’s “KyuubiSoft Management” hub. It opens withks.pet.admin; a player without that permission gets a message in their own language.
Changed
Section titled “Changed”- KyuubiSoft Core is an optional dependency now: Pets still runs without it, and with Core installed, Core loads first.
- The shared language system follows Core 2.8.0: it honours the server’s default player language and the “players may choose” switch, and language choices are no longer lost when several KyuubiSoft mods save them at the same time.
- Localization version 17.
v1.11.1 — 2026-10-20
Section titled “v1.11.1 — 2026-10-20”Bug fixes for removing pets, death protection, the mount page and several config keys. Not tested in game yet.
- Removing a pet now really removes it.
/kspetadmin removeand Remove in the admin window only took the pet off the player’s cached list; its database record and its item stayed, so using the item brought the pet back, while the confirmation said it was gone. Now every copy of the item becomes void (a copy in a chest or with another player crumbles when used), every online player who has it sends it home and loses the item (with a message), and the database record is deleted. If the database cannot be written, nothing is removed and the admin gets the reason. See Commands. - Death protection works when the world drops everything on death (“Drop All”). Pet eggs, Battle Runes and Mount Horns now stay in their slots in every death mode, also with KyuubiSoft Item Control’s death rules and drop prevention and with KyuubiSoft Graveyard (pet items no longer end up in the gravestone). Everything else follows the world’s death rules and those mods as before.
/kspet combatshowed the collector pet’s level, XP and kills instead of the combat pet’s.- The mount page (
/kspet mount) summoned the mount at the clicked position in the list of all mounts, not the one shown, and paged through the wrong list. Clicks and paging now use the list the page shows. The page also needs the mount’s horn in your inventory now, like/ksmount summonand the compendium. - Summoning a combat pet by right-clicking its Battle Rune now applies its stats as buffs right away (before, only with the next level-up). Dismissing or swapping through the rune removes them.
PetDespawnedEventnow fires whenever a summoned pet leaves while the server runs (dismiss, swap, death, logout, world change, item drop, admin remove, cleanup); not for the pets cleared on server shutdown. See API & Events.- Max out said “best values” in the admin window. It sets the max level and fills every free stat slot, keeping existing stats; the window and
/kspetadmin maxoutnow say exactly that. /kspetadmin helpnow listscleanworld,dbreloadanddbflush.hudPositionandhudLayoutinconfig.jsonwere never read. They are now the HUD default for players who never picked their own. Players with an existing pet file keep the setting saved in it.- Pets created in the admin window join the recipient’s pet list right away, like pets from
/kspetadmin give.
maxPetsEverywhere(defaultfalse): withtrue,maxPetsPerPlayeralso stops hatching a blank egg, Battle Rune or Mount Horn into a new pet and creating a pet in the admin window, not only/kspetadmin give. See Configuration.combatBalance.levelUpCombatStatsOnly(defaultfalse): withtrue, stats a combat pet unlocks through a natural level-up come from the combat stats only, like its first stats and rerolls.- Servers without KyuubiSoft Core get both keys written into their existing
config.jsonon the first start; values already in the file are kept.
Not changed
Section titled “Not changed”petDespawnOnDisconnectandxpSources.passivePerMinutestill have no effect; they are now marked as unused. Pets are always sent home on logout, and pets get no XP over time.
Localization
Section titled “Localization”- Version 16: 5 new texts in all 9 languages (pet limit, removed pet messages, admin window errors) and the new “Max out” message.
v1.11.0 — 2026-10-19
Section titled “v1.11.0 — 2026-10-19”New: admin window
Section titled “New: admin window”/kspetadmin without arguments now opens one admin window, Pet Management, in the KyuubiSoft “Goldfiligran” look. The console still gets the command list, and /kspetadmin help shows it in game. /kspetadmin creator (alias create), /kspetadmin lootluck and the new /kspetadmin players open the window on that section. Reload reloads the config, pet types, stat table and languages without closing the window. See Admin Panel.
- Create pet (replaces the old Pet Creator): pet list with search and module filter, level, nickname and recipient (empty = yourself, otherwise any online player in any world). The stat rows follow the rarity: as many rows as the rarity rolls, its unlock levels, only stats from the stat pool, and only combat stats for combat pets. Values are typed in display units (5 = 5 %); each row shows the stat’s range, the value at the chosen level and a warning when the value is above what the rarity can roll. Roll rolls like a natural pet, Best values sets the best quality with every stat from level 1 and the max level.
- Blacklist (replaces the old loot luck window): 8 quick picks (weapons, armor, tools, potions, food, ores, bars, gems) with example icons and the number of items each one really hits on your server; your own patterns with a live hit count while typing; remove one pattern or all of them.
- Player pets (new): the online players and their pets with level, module, rarity and status (active, ready, recovering, item missing). Per pet: set level, give XP, reroll stats, max out, revive a defeated combat pet, replace a lost item and remove the pet.
- The quick toggles of the old blacklist window hit almost nothing.
*_Weapon_*matched 7 template items instead of 245 weapons (weapons are calledWeapon_Sword_Iron); armor, tools, consumables and resources had the same problem. A blacklist that still holds the old patterns shows a banner with their real hit counts and an Update button that replaces them with what they meant. Nothing changes until an admin clicks it. - The old creator offered
speed_bonus, which is not in the stat pool, and every stat for combat pets. - Creating a pet for a player with a full inventory (or who just left the world) no longer leaves a pet without item.
/kspetadmin addxpcould put another pet’s buffs into the collector slot, write its level onto the active pet and roll non-combat stats for combat pets. Admin XP now goes straight to the chosen pet./kspetadmin setlevel,addxp,reroll,maxoutandremovenow run in the owner’s world; before, level-up effects and the item tooltip update were skipped.- Two admins changing the loot luck blacklist at the same time from different worlds could corrupt it.
Changed
Section titled “Changed”- Numbers in the admin window use your language’s decimal separator;
5,5and5.5both work. - A second click is blocked while an action still runs in another world, so a double click on “Create” no longer creates two pets.
Localization
Section titled “Localization”- Version 15: 178 new admin window texts in all 9 languages (the old admin windows were English only).
- Natural level-ups of combat pets still roll from the full stat list, while new combat pets and every admin roll use combat stats only. (1.11.1 adds the switch
combatBalance.levelUpCombatStatsOnly.)
v1.10.1 — 2026-10-19
Section titled “v1.10.1 — 2026-10-19”/kspetadmin lootluck,/kspetadmin creatorand/kspetadmin inspect handopened nothing (thread error)./kspetadmin setlevel,rerollandmaxoutdid not update the egg, rune or horn tooltip of players outside the default world./kspetadmin inspect <player>only found players in the default world. It now finds every online player and also works from the console./kspetadmin cleanupnow removes pets standing in another world in their own world.
v1.10.0 — 2026-10-18
Section titled “v1.10.0 — 2026-10-18”- Reroll dice in the compendium. Every unlocked stat of an owned copy has a small dice. A click uses one reroll scroll from your inventory and rerolls that stat (Pet Reroll Scroll for collector pets and mounts, Battle Reroll Scroll for combat pets). The dice above the stat column rerolls all unlocked stats for one Reroll All Scroll after one confirmation. Dice are gold while you have a matching scroll and grey otherwise. Works for every owned copy, summoned or not.
- Next-level preview. Stats that grow with the level show the value after the next level-up next to the current one; combat pets show it for damage too.
- Hidden stats are listed. Rolled stats that are still locked show as “Hidden stat” with their unlock level.
/kspetadmin restore <player> [type | id]gives a player a replacement for a lost egg, battle rune or mount horn with level, stats and name intact. Without a pet argument it lists the pets whose item is missing. The player must be online and have room in the inventory.- Restores cannot duplicate pets: every older copy of the item becomes void. It crumbles when used, no longer counts as owned, and a pet summoned through it is sent home. Items from before 1.10.0 stay valid until their pet is restored for the first time.
/kspetadmin inspect handshows the item generation and whether the item is a void copy. Every restore is logged with the admin’s name.
- Rerolling a stat could apply the pet’s buffs although the pet was not active.
- The item-loss guards did not recognise current pet items. The active pet was sent home whenever any egg, rune or horn left the inventory, and drops of current pet items were ignored. Both now check the right item.
Localization
Section titled “Localization”- Version 13. New texts in English and German; the other languages show English for them.
v1.9.1 — 2026-10-18
Section titled “v1.9.1 — 2026-10-18”Changed
Section titled “Changed”- The Goldfiligran textures now come from the shared KyuubiSoft UI kit. They are registered once per server and shared with other KyuubiSoft mods (for example Bank 2.6.0). Nothing extra to install, no visual change.
v1.9.0 — 2026-10-17
Section titled “v1.9.0 — 2026-10-17”New: Pet Compendium
Section titled “New: Pet Compendium”/kspet now opens the Pet Compendium. Set ui.compendium to false in config.json to keep the classic menu. See UI Pages.
- List: all pet types of the selected tab (Collector pets, Combat pets, Mounts, with “owned / total” counters; tabs of disabled modules are hidden), sorted by rarity, with the filters All / Owned / Missing. Pets you do not own are dimmed, pets you own several times show a count badge.
- Live 3D stage: the selected pet’s model inside the window. Drag to rotate, scroll to zoom, slow auto-rotation. Nothing is spawned in the world.
- Details: level and XP, HP and recovery time of combat pets (with mortality on), stats, and for pets you do not own their base stats and a “How to get it” text.
- Your copies: every copy is its own card with its own level, stats, HP and recovery. Summon, dismiss, rename (any pet type, 1 to 24 characters) and revive per copy.
- HUD settings moved into the compendium header, and owned collector copies have a button that opens the pickup filter for exactly that copy.
- Redesigned pet HUD: one card per active pet with item icon and rarity ring, level, name in rarity colour, HP bar (combat pets with mortality on), XP bar, buffs and collected items or kills. A defeated combat pet keeps its card with a live recovery countdown.
- Redesigned pickup filter (
/kspet filter) in the same look, translated into English and German. config.json→ui:compendium(true),lockedPets("visible"or"hidden"),previewTilt(12),previewSpinSpeed(18). Servers without KyuubiSoft Core get the block written into their config on the first start.- Pet types: optional
obtainHint(the “How to get it” text) andpreviewScale(0 = automatic).
- The pet menu could summon combat pets and mounts although that module was disabled.
- Opening the pet menu could lose up to
petDbFlushIntervalSecondsof XP of the summoned pet and reset the HP and recovery of combat pets. - The pickup filter’s close button did nothing for players without a collector pet.
Changed
Section titled “Changed”- Localization version 12. Existing language files are backed up and replaced once on the first start.
- The 3D stage shows models in their rest pose (no animation).
v1.8.0 — 2026-10-16
Section titled “v1.8.0 — 2026-10-16”Combat pets were immortal and could farm bosses while their owner stood AFK. This release adds three independent switches in config.json → combatBalance. All of them are off by default, so a server that does not touch the config keeps the old behaviour. See Combat Pets.
- Combat pets can be defeated (
combatBalance.mortality.enabled).- Real HP:
baseHealthat level 1,healthPerLevelper level above 1, plus the pet’s Max Health stat. Pet types can override both viacombatStats.baseHealth/combatStats.healthPerLevel. - Only hits from hostile NPCs count; fall damage, drowning, the owner, other pets and (unless
playerDamageistrue) other players never hurt a combat pet. A pet that is attacked fights back. - Taunt: every pet hit has a
tauntChance(default 25 %) to draw the target’s attention to the pet. - A defeated pet disappears and needs
deathCooldownMinutes(default 15) to recover. The cooldown is stored in the database and survives relogs, world changes and restarts. - Optional XP penalty on defeat (
xpLossPercent, default 0; never drops a level). - Out of combat the pet regenerates
regenPerSecondHP (default 2) afterregenDelaySeconds(default 10) without damage. Damage carries over between summons. - Pet HP is shown in the HUD and in
/kscombatpet stats, which also lists recovering pets. - Defeated pets are never treated as killed mobs: no drops, no kill rewards, no death message.
- Real HP:
- Battle Pet Revival Scroll (
Battle_Revive_Scroll): right-click to revive the most recently defeated combat pet. Only used up when a pet was revived. No crafting recipe, like the other pet scrolls. /kspetadmin revive <player>ends the recovery of all defeated combat pets of a player.- Pet hits through Hytale’s damage system (
combatBalance.damageThroughPipeline): armor and resistances reduce pet damage, invulnerable boss phases block it, and other damage plugins see the hit. Kill rewards of other plugins still do not go to the owner for pet kills. - AFK protection (
combatBalance.requireOwnerActivity): combat pets stop fighting when their owner has neither turned the camera nor attacked forownerInactivitySeconds(default 120). Knockback or water pushing the player does not count as activity.
- Combat pets earned no XP and no kill count for their own kills; only kills where the owner landed the last hit counted.
/kscombatpet statsshowed the collector pet instead of the combat pet.- A combat pet dismissed in the middle of a fight left its combat state behind.
- Combat pets no longer chase other players’ pets or mounts.
Changed
Section titled “Changed”- Localization version 10. Existing language files are backed up (
*.json.backup-v<old>) and replaced once; copy your own translations back from the backup. - The pet database gets two new columns (
downed_until,health_fraction), added automatically. - Servers without KyuubiSoft Core get the
combatBalanceblock written intoconfig.json(all switches off). - Plugin manifest: author is now
KyuubiDDragon, and the description is the pets one.
Recommended settings against AFK boss farming
Section titled “Recommended settings against AFK boss farming”"combatBalance": { "damageThroughPipeline": true, "requireOwnerActivity": true, "ownerInactivitySeconds": 120, "mortality": { "enabled": true, "baseHealth": 100.0, "healthPerLevel": 5.0, "tauntChance": 0.25, "deathCooldownMinutes": 15, "regenPerSecond": 2.0, "regenDelaySeconds": 10, "xpLossPercent": 0.0, "playerDamage": false }}v1.7.2 — 2026-10-12
Section titled “v1.7.2 — 2026-10-12”- Rebuilt against the final Hytale 0.7.0 release (Update 7). No functional changes.
v1.7.1 — 2026-10-10
Section titled “v1.7.1 — 2026-10-10”- Collector pets fetch dropped items again (broken since Hytale 0.6). Pets stopped following while an item lay nearby and idled at the spot where they were summoned. Now the pet walks to the item, picks it up and follows you again; if the item disappears first, the pet returns at once. It also gives up an item when you walk more than 15 blocks away or change the pickup filter so the item no longer qualifies. Pets now start following in worlds without any dropped items, too.
- The fetching uses
KS_Pet_Follow_Role. Custom pet types with a different NPC role still follow but do not fetch items.
- The fetching uses
/kspetadmin givecould report success without the player receiving anything (players outside the default world). The item is now delivered in the player’s own world, and the success message only comes once the item is in the inventory.- A failed give no longer uses up a pet slot. The pet is only created after a successful delivery; otherwise the admin is told why (inventory full, player not in a world, error).
- A given pet is the pet the player gets. Before, the first right-click of a given egg created a second, freshly rolled pet.
/kspetadmin givenow hands out a rune for combat pets and a horn for mounts (it always gave the egg item).- The Pet Creator delivers the item in the target player’s own world as well.
- Empty pet records left behind by earlier gives are not removed automatically. Find them with
/kspetadmin inspect <player>and remove one with/kspetadmin remove <player> <instance-id>.
v1.7.0 — 2026-10-06
Section titled “v1.7.0 — 2026-10-06”Changed
Section titled “Changed”- Built for Hytale Update 7 (0.7.0-pre.5.1). The container check for block XP (no XP for breaking chests and crates, no XP or Loot Luck for chest contents) works on the new block storage with the same rules.
- Pet death protection was missing on servers where Item Control is installed but its drop prevention module is disabled. Item Control is now declared as an optional dependency so it always loads first.
v1.6.2 — 2026-09-06
Section titled “v1.6.2 — 2026-09-06”- Rebuilt against Hytale 0.6.3. No functional changes.
v1.6.1 — 2026-08-27
Section titled “v1.6.1 — 2026-08-27”- Rebuilt against the Hytale 0.6.0 release. Required: the release protocol differs from the pre-release builds.
v1.6.0 — 2026-08-21
Section titled “v1.6.0 — 2026-08-21”Changed
Section titled “Changed”- Built for Hytale 0.6.0 (Update 6). Mandatory update: older jars do not load on 0.6.0.
- Command permissions follow the Update 6 model: the player commands are open and check
ks.pet.user.*themselves,/kspetadminrequiresks.pet.admin.
Performance
Section titled “Performance”These fixes were listed as unreleased in May 2026 and ship with this version.
- Severe lag when mining many blocks at once or felling large trees is fixed. Every XP gain used to write to the database, rescan the inventory and refresh every online player’s tooltips. Plain XP now only updates memory and the HUD; the expensive work runs on level-ups and deliberate actions (reroll, rename, summon).
- New
petDbFlushIntervalSeconds(default 30): the active pets are written to the database periodically, so a crash loses at most about 30 seconds of XP.
- Mounts sometimes failed to spawn with
Unable to handle non-spawned entity: KS_Mount_Walk_S<n>_Role. The plugin now retries with the base mount role. - Leftover mount NPCs with a speed other than 1.0 were never cleaned up; cleanup now covers all pet and mount roles.
- Collector pets kept running back to their owner and never went to dropped items.
- Disconnecting while mounted could leave a frozen copy of the mount in the world.
/kspetadmin giveand the Pet Creator warn when the target’s inventory is full.
v1.5.0 — 2026-05-26
Section titled “v1.5.0 — 2026-05-26”- Built against the Hytale server release 2026.05.26. No functional changes.
v1.4.6 — 2026-05-26
Section titled “v1.4.6 — 2026-05-26”- Update for Hytale 0.5.0.
- Fixed:
/kspet,/ksmount,/kscombatpetand the self-target/kspetadmin rerollandmaxoutrefused to run with “This command is for players only” on Hytale prerelease 2026.05.21.
v1.4.5 — 2026-05-21
Section titled “v1.4.5 — 2026-05-21”- Pet item tooltips show the pet itself: hovering an egg, rune or horn shows the pet’s nickname, level, rarity and its unlocked stats instead of the default item text. Locked stats stay hidden until they unlock. The tooltip updates after rerolls, refines, level-ups and renames.
v1.4.4 — 2026-05-21
Section titled “v1.4.4 — 2026-05-21”- The pet HUD moved to the new HUD API of Hytale prerelease 2026.05.21 (HUD key
ks.pets.tracker). - Fixed: using pet items and scrolls from a hotbar slot other than the first could fail on Hytale prerelease 2026.05.15 and later.
v1.4.2 — 2026-05-03
Section titled “v1.4.2 — 2026-05-03”- Fixed pets overwriting drops.
v1.4.1 — 2026-04-30
Section titled “v1.4.1 — 2026-04-30”- Fixed: items you dropped yourself and picked up again kept an internal “dropped by player” marker, which stopped them from stacking and from being salvaged. Picking them up now removes the marker.
v1.4.0 — 2026-04-29
Section titled “v1.4.0 — 2026-04-29”- Fixed using items after they were collected (same fix as 1.3.15).
v1.3.15 — 2026-04-29
Section titled “v1.3.15 — 2026-04-29”- Fixed using items after they were collected.
v1.3.14 — 2026-04-29
Section titled “v1.3.14 — 2026-04-29”- Fixed the integration with gravestone mods.
v1.3.13 — 2026-04-28
Section titled “v1.3.13 — 2026-04-28”- Fixed the integration with gravestone mods.
v1.3.10 — 2026-04-27
Section titled “v1.3.10 — 2026-04-27”Loot Luck dupe hardening
Section titled “Loot Luck dupe hardening”A series of fixes that close the chest-stash dupe path against pet pickup XP, the items-collected counter, and the Loot Luck duplication roll. All three effects now sit behind a single !playerDropped gate, so collecting your own dropped loot is invisible to pet progression.
- Container-break dupe closed. New
PetContainerBreakMarkerSystemlistens onBreakBlockEventand marks everyItemStackin the brokenItemContainerBlock(chest, crate, …) as player-dropped before Hytale’s drop pipeline (ItemContainerSystems.OnAddedOrRemoved.dropAllItemStacks→ItemComponent.generateItemDrops) spawns the entities. Two redundant marker channels (BSON metadata stamp + 5-min itemId tracker) — the itemId tracker is the load-bearing one because the BSON stamp can be lost during the drop pipeline’s stack copy. Place loot in a chest, wait an hour, smash the chest: pet collects without XP, counter, or Loot Luck. - Container blocks no longer grant block-break XP.
PetBlockBreakXpHandlernow skips blocks with anItemContainerBlockcomponent. Smashing a chest is not a mining activity; this also closes a chest-XP-farm path (place chest, smash, repeat). pet.itemsPickedUpandtotalItemsCollectedmoved behind the!playerDroppedgate. Previously the two counters were incremented unconditionally on every successful pickup, even though XP and Loot Luck were already gated. Now collecting a Q-drop, a death drop, or a chest contents tick produces no progression effect at all.- Q-drop and death-drop marker systems shipped together.
PetPlayerDropMarkerSystem(BSON marker onDropItemEvent.PlayerRequest) andPetPlayerDeathMarkerSystem(RefChangeSystem<DeathComponent>, ordered betweenPlayerDropItemsConfigandDropPlayerDeathItems) cover the manual Q-drop and death-drop paths. Markers are stripped on respawn so Keep-Inventory mode does not leave BSON-tagged items that would break crafting.
New: Loot Luck blacklist
Section titled “New: Loot Luck blacklist”Admin-configurable item-id blacklist that blocks Loot Luck duplication for matched items. Independent from the Pickup Filter (which is per-player and controls whether the pet collects at all) — the blacklist only suppresses the duplication roll, the pet still picks up and the player still gets the item once. Useful for de-valuing common drops (Dirt, Stone) and high-tier gear (Tools, Weapons) that should never duplicate.
- Storage:
data/loot_luck_blacklist.json. Dedicated file rather than a section insideconfig.jsonto avoid clobbering parallel admin edits when the UI live-saves. - Pattern syntax: case-insensitive. Plain patterns (
Dirt) match as substring. Patterns with*(*_Tool_*,Ore_*) treat*as.*. CompiledPattern[]cache rebuilt on every load/add/remove/toggle/clear/reload, so admin UI edits hit the next pickup tick without a server reload. - Admin UI: new
/kspetadmin lootluckopens a page with six quick-toggle buttons (Tools / Weapons / Armor / Food / Ores / Resources), a custom-pattern input, a paginated list of active patterns with per-row delete, and Clear All. Every mutation live-saves to disk.
v1.0.0 — 2026-03-25
Section titled “v1.0.0 — 2026-03-25”Initial release of the KyuubiSoft Pet System with 3 modules and 48 pet/mount types.
Module System
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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)
- 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
Section titled “Localization”- English (
en-US) and German (de-DE) included - 74 localized keys covering all user-facing strings
- Localization version 6
Commands
Section titled “Commands”- Full admin command suite via
/kspetadmin - Player commands via
/kspet(aliases:pet,pets) - Combat pet commands via
/kscombatpet - Mount commands via
/ksmount
Bugfixes
Section titled “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
Section titled “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