File Details
GlymeraArmorStand-3.0.0.jar
- R
- Apr 15, 2026
- 71.17 KB
- 49
- Early Access
File Name
GlymeraArmorStand-3.0.0.jar
Supported Versions
- Early Access
GlymeraArmorStand - Changelog
v3.0.0 (2026-04-15)
Bug Fixes
- Duplicate NPC Fix: Resolved issue where armor stands would duplicate (sometimes 100+) when players switched between worlds/instances and returned. Duplicates appeared as skinless NPCs that walked around. Root cause: the plugin respawned NPCs immediately when
getEntityRefbriefly returned null during chunk transitions, while Hytale simultaneously restored its own persisted copies from chunk data.
Changes
- Cleanup-first architecture: Adopted the proven approach from GlymeraFarmer. On first player join after server start, all stand NPCs are deleted and entity tracking is reset. A 3-cycle lockout prevents any respawning until cleanup completes.
- Respawn cooldown (3 seconds per stand): When a stand NPC is detected as missing, the plugin now waits 3 seconds before respawning. This prevents rapid-fire duplication when entity references are briefly invalid during chunk loading.
- Pre-spawn position cleanup: Before spawning a new stand NPC, all untracked NPCs at the same position are removed first.
- Spawn lockout during cleanup: No stand NPCs are respawned while any cleanup cycle is active.
- Periodic cleanup reduced: Duplicate scan interval changed from every 1 second to every 5 seconds to reduce unnecessary overhead.
No Functional Changes
- All commands, equipment mechanics, skin generation, persistence, and recipes remain identical to v2.0.0.
v2.0.0 (2026-04-11)
Bug Fixes
- Skin Persistence Fix: Armor Stand appearances no longer randomize after chunk persistence cycles (auto-save, player disconnect/reconnect). Previously,
ApplyRandomSkinPersistedComponentcaused Hytale to re-randomize the NPC skin on every persistence cycle, overriding the seed-based deterministic skin set by the plugin. This was hidden before because chunk unloading triggered a respawn cycle that re-applied the correct skin. With GlymeraChunkLoader keeping chunks permanently loaded, the respawn cycle never triggered, making the bug visible.
Technical Details
- Removed
ApplyRandomSkinPersistedComponentfrom NPC spawn logic (was line 535-536) - The plugin's own persistence system (seed in item durability +
skins.jsonregistry +ModelComponent/PlayerSkinComponent) is sufficient and correct - Removed unused
ApplyRandomSkinPersistedComponentimport
v1.0.0 (2026-04-10)
- Initial release: Craftable armor stand blocks that spawn random player-looking NPCs
- Seed-based deterministic appearance (stored in item durability)
- Equipment system (hit with armor/weapon to equip, empty hand to unequip/break)
- Persistent across server restarts (position, equipment, appearance)
- Chunk load/unload handling with duplicate cleanup
/armorstand give|list|removeall|reloadcommands

