Improvements:
• Persistent skin cache: every player's signed skin is captured automatically on join and stored in the plugin database, so it stays available offline and across restarts
• UUID-based Mojang sessionserver fallback fetches the signed skin asynchronously when no cached skin is available, then re-renders the NPC once the texture arrives
Bug fixes:
• Citizens leaderboard NPCs no longer show the internal "perfranknpcs-…" label above their head, only the configured hologram is rendered now
• FancyNpcs leaderboard NPCs now show the correct skin for offline players who never joined this server (no more permanent Steve fallback)
Bug fixes:
• NPC skin lookup no longer blocks the server thread while waiting for offline player profile data
New features:
• Per-rank hologram lines: top 1, 2, 3 now have distinct default templates (crown / silver / bronze) and you can add overrides for any rank under display.rank-lines
• PlaceholderAPI support inside hologram lines, embed any %placeholder% in display.general.lines, rank-lines or empty.lines and it resolves against the ranked player
• New PlaceholderAPI expansion exposing top entries: %perfranknpcs_<metric><period><rank>_<field>% (fields: name, value, raw, uuid)
Bug fixes:
• Skin lookup no longer falls back to default Steve when the player's name isn't on Mojang, chain is now SkinsRestorer -> cached OfflinePlayer profile -> name lookup
New features:
• SkinsRestorer integration: leaderboard NPC bodies and player heads now show the player's /skin instead of the Mojang default, including for offline players (toggle: display.npc.skinsrestorer-integration, default on)
• Hologram text size is now configurable via display.hologram.scale (range 0.1 – 10.0, default 1.0); existing translation/rotation are preserved when scaling
Code:# plugins/PerfRankNPCs/config.yml — under display.npc, add: display: npc: # When SkinsRestorer is installed, use the player's chosen /skin instead of the Mojang default. # Applies to both 'skin' (NPC body) and 'head' (player head item) modes. No effect without SkinsRestorer. skinsrestorer-integration: true # plugins/PerfRankNPCs/config.yml — under display.hologram, add: display: hologram: # Hologram text size. 1.0 = vanilla, 1.5 = 50% larger, 0.7 = 30% smaller. Range: 0.1 – 10. # Bigger text usually needs more line-spacing-y so the lines don't overlap. scale: 1.0 # plugins/PerfRankNPCs/config.yml — bump: config-version: 14
Bug fixes:
• Fixed/perfranknpcs reloadcausing server watchdog dumps while cleaning up NPC entities
Bug fixes:
• Rank NPCs now still spawn when an offline-mode player name cannot be resolved for a skin
• FancyNpcs skin lookup failures now fall back to the default NPC skin instead of blocking NPC creation
• Player damage near Rank NPCs is now blocked to prevent NPC hitboxes from bypassing protected spawn areas
Improvements:
• Added configurable NPC protection settings for cancelling NPC damage and nearby player damage
Code:# plugins/PerfRankNPCs/config.yml — add: protection: cancel-npc-damage: true cancel-player-damage-near-npcs: true player-damage-radius: 4.0
Bug fixes:
• Fixed a shutdown crash caused by NPC cleanup trying to schedule Folia tasks after the plugin was already disabled
Bug fixes:
• Holograms no longer disappear after server restart, chunk unload or player relog
• No more duplicate or orphaned NPCs left over from previous restarts
Improvements:
• Full Folia compatibility, no more scheduler errors, smooth on multi-region servers
• Smoother performance on busy servers, leaderboard refreshes are lighter and use less memory over time
