File Details
NxSkin-2.0.0.jar
- R
- Feb 21, 2026
- 204.27 KB
- 482
- Early Access
File Name
NxSkin-2.0.0.jar
Supported Versions
- Early Access
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 2026-02-21
Added
- Singleplayer/LAN Support: Added
RequirePermissionstoconfig.json(Default:true). Disabling this allows players to use all NxSkin features without needing OP or permission nodes, perfect for private servers. - Console Support: The
/nxskin set <skinName> <targetPlayer>command can now be executed directly from the server console. - Developer API: Introduced custom events for other developers to hook into:
NxChangeCosmeticEvent: Fired when a player applies a single cosmetic part.NxEquipOutfitEvent: Cancellable ECS event fired when a player equips a full outfit.
Changed
- Architecture Refactor: Major internal reorganization, separating the codebase into
apiandimplpackages for better maintainability. - Safe Initialization: Refactored cosmetic registries to use Lazy Loading, completely preventing potential
NullPointerExceptioncrashes during server boot. - Command Safety: Modifying another player's skin now strictly synchronizes with the target player's specific
WorldThread, safely supporting multi-instance/multi-world setups.
Fixed
- ECS Thread Crashes: Fixed
java.lang.IllegalStateException: Assert not in thread!that occurred when executing commands asynchronously. - Cooldown Bug: Cooldowns are now safely applied only if the target player is fully loaded in the world and successfully receives the skin update.
[2.0.0-rc.2] - 2026-01-29
Added
- Wardrobe Interaction: Introduced the Cosmetic Wardrobe block.
- Players can now physically interact with a Wardrobe furniture to open the Outfit Manager.
- Scale Synchronization: Added a "Save Scale" checkbox to the Scale slider.
- When enabled, changes to the character's scale in the GUI are instantly applied to the actual player model in the world.
- The custom scale is persistent and saved with outfits.
- New Command:
/nxskin load <name>- Added
Player Load Cosmetic Commandallowing players to instantly equip saved outfits via chat (without opening the GUI if you want).
- Added
[2.0.0-rc1] - 2026-01-26
Added
- Outfit Management System: A fully integrated GUI interface allowing players to manage their custom looks without commands.
- Save: Players can name and save their current combination of cosmetics.
- Load: Instantly apply previously saved outfits via a visual file browser.
- Delete: Remove unwanted outfits with a Safety Confirmation GUI to prevent accidental deletion.
- Security & Limits:
- File Sanitization: Strict input validation prevents malicious file naming or directory traversal attacks when saving outfits.
- Configurable Limits: Server owners can now set a maximum number of outfits per player in
config.json(Default: 3) to prevent storage abuse.
- Expanded Permissions: Granular control over the new outfit features.
nxskin.outfit.save: Allows saving new outfits.nxskin.outfit.load: Allows loading saved outfits.nxskin.outfit.delete: Allows deleting existing outfits.
[1.0.0] - 2026-01-19
Added
- Initial Release: Complete and robust system for dynamic player skin management.
- Dynamic Command System:
/nxskin set <skinName>: Fetches and applies skins instantly from the Hytale API./nxskin clear(aliases:reset,remove): Restores the player's original skin./nxskin reload: Hot-reloads the configuration file without restarting the server.
- Auto-Cleanup: Automatically removes data entries when a player reverts to their original skin, keeping the JSON database lightweight.
- Skin Persistence: Skins remain applied across server restarts and player rejoins.
- Customization & Config:
- Command Cooldowns: Configurable delay to prevent API spam.
- Local Cache: High-performance skin caching with configurable expiration (default 24h).
- Granular Permissions: - Complete integration with Hytale's permission system (Nodes:
nxskin.command.set,nxskin.command.clear,nxskin.command.reload,nxskin.admin).

