GlymeraPets - Changelog
v2.0.0 (2026-06-04)
Fixed
- Shop NPCs no longer duplicate. Previously the engine persisted each spawned shop NPC to the world, so on every restart a saved "ghost" copy was rehydrated and a fresh one was spawned from shops.json — the shop keeper multiplied over time. The old cleanup ran on the first player join with fixed delays, which often missed ghosts whose chunk had not loaded yet.
Changed
- Shop NPCs are now spawned non-persistent, so the engine never saves them to disk and no ghost copy can ever be rehydrated. Because of this, a shop NPC is (re)spawned on the load of the chunk it lives in rather than on player join — exactly one keeper per saved shop, every time.
- On chunk load, any leftover shop NPC from older versions is cleaned up automatically, so existing duplicate keepers are removed the first time you visit them.
- Removed the old first-join sweep/respawn logic entirely.
Notes
- No changes to pets, the shop GUI, payments, the creature roster, commands or config — this release is purely the duplication fix. Existing shops.json and player data are fully compatible.
v1.0.0 (2026-06-04)
Initial release.
Pets
- Peaceful, controllable companion creatures. Every creature uses a single peaceful, invulnerable follow-role; the bought creature's look is applied on top via appearance swap, so pets are always friendly regardless of which creature they imitate.
- Pets follow their owner (LockedTarget) and are teleported to the owner when they get too far away (followTeleportDistance, default 20 blocks).
- Pets are immortal (cannot be killed).
- 1 pet active at a time (hard-coded), up to 10 owned (maxOwnedPets, default 10).
- Pets persist per player and the active pet is re-summoned on login.
- Right-clicking a pet shows a hearts particle (affection), like GlymeraCats/GlymeraDogs.
Creature roster
- 154 configurable creatures. 111 pet-sized land & air creatures are enabled by default; 43 borderline-size / large creatures are included but disabled by default and can be switched on by an admin.
- Aquatic creatures (fish, jellyfish, eel, shark, whale, lobster) are intentionally not included — they do not work as land-following pets.
Shop
- Placeable shop NPC: a creature-appearance keeper (Klops Gentleman by default, configurable via shopAppearance). Right-click it to open the buy GUI; click a creature to buy it. Each pet's price shows the payment item as an icon (or the money amount).
- Admins get the shop block with /gpets giveshop and place it; /gpets shopremove removes the nearest shop and refunds the block. Only admins can place shops.
Payment
- Per-creature payment, configurable individually: items or money. The settings GUI shows both values with the active one marked [ACTIVE], and the item as an icon.
- Defaults: 3x Greater Essence of Life (Ingredient_Life_Essence_Concentrated), or 1000 money.
- Money support is optional and uses GlymeraMerchant if installed, otherwise a VaultUnlocked economy. If neither is present, item payments still work.
GUIs & commands
- /gpets — pet management GUI (call / dismiss / release, list owned pets)
- /gpets admin — per-creature settings GUI (OP): enable/disable, switch items<->money, adjust amount, and "Set Item" to set the payment item to whatever you are holding
- /gpets shop — open the buy GUI directly
- /gpets call|dismiss|release <name>, /gpets list
- /gpets giveshop, /gpets shopremove, /gpets reload (OP)
Notes
- Fully config-driven (mods/Glymera_GlymeraPets/config.json, /gpets reload). No logging, no network access.
