PerfectNPC v2.1 — Patch Notes
UI Improvements
- Removed decorative 9-patch container — Switched from @DecoratedContainer to Container for a cleaner look with visible title bar
- Dialogue toggles no longer reset scroll — Enable/Last/Typewriter buttons now use sendUpdate() instead of full page rebuild, keeping your scroll position
- Dialogue auto-save on toggle — Clicking any toggle (Enable, Last, Typewriter, Negate, Prevent Close) now automatically saves all TextField values before updating, preventing data loss
- Add Answer auto-save — Adding a new answer also saves all current TextField values first
- Removed search bar from sidebar (unused) — more compact layout
- NPC list reduced to 4 rows — better fit for the sidebar
- Title bar "PERFECTNPC ADMIN" now properly visible above content
Animation List
- Replaced animation cycle button with paginated list — Browse all available model animations (6 per page) with < > navigation
- Click any animation name to select it as the idle animation
- Currently selected animation highlighted with > name <
- Auto-detect option available as first entry
Bug Fixes
- Fixed #infoTitleField.Value crash after Display Title field removal
- Fixed #searchBtn / #searchField crash after search bar removal
- Fixed DialogPage.getPageId() null causing interaction system crash
- Fixed #trackBtn0.Visible crash in Quest Log (elements not in .ui)
- Fixed #filterAll.Style.TextColor crash in Quest Log (dynamic TextColor not supported)
- Fixed raw color codes (&6, &8) displaying in Quest Log — now properly stripped
- Fixed $C.@Container usage for proper UI rendering without bottom diamond decoration
PerfectNPC v2.0 — Major Update
Overview
PerfectNPC v2.0 is a complete overhaul of the plugin, featuring a brand-new unified admin interface, a full quest objectives system, template variables in dialogs, NPC equipment, and dozens of improvements and bug fixes.
New Features
Unified Admin UI with Sidebar
The entire admin interface has been redesigned into a single window with sidebar navigation. No more jumping between multiple windows to configure your NPCs.
- Left sidebar displays the NPC list with pagination and quick actions (+NEW, DUP)
- 6 section tabs: Info, Dialogue, Shop, Quest, Equipment, Advanced
- Each section loads instantly — clean and responsive
- All editing happens in one place
Quest Objectives System
Quests now support real trackable objectives that auto-complete when fulfilled.
- 4 objective types: Kill Entity, Collect Item, Break Block, Place Block
- Automatic progress tracking — kills, block breaks, item collection all tracked via ECS
- Auto-completion when all objectives are met
- Quest Wizard — creates a ready-to-edit quest with one click
- Quest ID and usable dialog commands displayed directly in the admin panel
Template Variables in Dialogs
Dialog text now supports dynamic placeholders resolved at display time:
- {username} — player's name
- {npcname} — NPC's name
- {questname} — current active quest name
- {killprogress:Zombie} — kill count for a specific entity
- {variable:gold} — player variable value
- {tag:tutorial} — returns true/false
- And more: {breakprogress}, {placeprogress}, {collectprogress}
Player Tags & Variables
A powerful new condition/reward system for advanced quest branching:
- Tags: tag:add:name, tag:remove:name, tag:has:name, tag:not:name
- Variables: variable:gold:add:100, variable:gold:greater:500
- Use them directly as dialog button commands
Quest Title Announcements
Beautiful on-screen titles when a quest starts or completes — "Quest Started" / "Quest Completed!" with the quest name as subtitle.
NPC Equipment
Dress your NPCs with visible armor and weapons:
- 6 slots: Helmet, Chest, Leggings, Gloves, Main Hand, Off Hand
- PICK buttons — copy equipment directly from your own gear with one click
- Equipment persists across server restarts
Face Body
Rotate any NPC to face the player with one click. The NPC respawns at the same position facing you, with all states (frozen, idle animation, equipment, interactions) automatically re-applied.
Move To Me
Instantly teleport any NPC to your current position.
Dynamic Entity List
The entity picker now automatically loads all available NPC roles from the server instead of using a hardcoded list. Every entity type is available.
Improvements
Info Section
- Auto-save — text fields save automatically as you type, no save button needed
- Live updates — nameplate and interaction hint update in-game instantly
- Entity display shows the role name (e.g. "Kweebec Elder") instead of a UUID
Dialogue Section
- Full page editor with prev/next/add/delete navigation
- Answer slots hidden when empty, appear when you click "+ Add Answer"
- Command Reference section listing all available commands (quest:start, tag:add, variable, /give, etc.)
- Help text explaining Answers and Buttons functionality
Shop Section
- Add items via the full item picker with search
- Delete button (red X) on each item row
- Click any item to open the detailed item editor
Quest Section
- Quest ID displayed for easy reference
- Dialog command hints shown directly (e.g. quest:start:quest_123456)
- Inline objective editor with type cycling (KILL/COLLECT/BREAK/PLACE)
Equipment Section
- Help text explaining slot mapping (Main Hand = hotbar slot 1, Off Hand = slot 2)
- PICK buttons for instant gear copying
Advanced Section
- Proximity messages now display as [NPC Name] in gold + message in white
- Animation selector cycles through all available model animations
- Help text explaining that changes require Face Body or server restart
Quest Log (/quests)
- Fixed multiple crashes
- Color codes properly stripped for clean display
- Quest objectives shown inline in description
Dialog Viewer
- Removed duplicate NPC name display
- Title only shows if different from NPC name
Bug Fixes
- Fixed crash when opening /quests (missing UI elements)
- Fixed raw color codes (&6, &8) showing in quest log
- Fixed DialogPage.getPageId() null causing interaction crash
- Fixed DialogAnswer created without UUID
- Fixed TextField values not saving in Dialog, Quest, Equipment, and Advanced sections
- Fixed entity picker and shop editor returning to old admin UI
- Fixed shop color codes showing as raw text for non-English clients (tooltips now injected into ALL locales)
- Fixed idle animation override not being used (selectedIdleAnimation now takes priority)
- Fixed equipment not re-applied after Face Body respawn
- Fixed NPC lookup map not updated after entity UUID change (critical for freeze/idle/equipment)
Commands
Command Description Permission /pnpc Opens the admin panel perfectnpc.admin /pnpc help Shows command help perfectnpc.admin /pnpc reload Reloads NPC data perfectnpc.admin /pnpc lang <code> Changes language (EN/FR/DE/ES/IT/PT) perfectnpc.lang /pnpc duplicate <id> Duplicates an NPC perfectnpc.admin /quests Opens the player quest log None Dialog Command Reference
Use these in dialog button commands to trigger actions when players click:
Command Effect quest:start:questId Start a quest quest:complete:questId Complete a quest tag:add:tagName Add a player tag tag:remove:tagName Remove a player tag variable:gold:add:100 Add to a player variable variable:gold:set:500 Set a player variable /give @p ItemId Give an item to the player
PerfectNPC v1.1 — Patch Notes
UI Improvements
- All admin pages enlarged — wider windows, bigger fonts, larger icons across all pages (List, Admin, Shop, ShopEditor, ShopItemEditor, ItemPicker, EntityPicker)
- Dynamic row visibility — empty rows are now hidden on all paginated pages instead of showing blank space
- Pagination bar hidden when there is only a single page
- Separator lines between rows are hidden for empty slots
Shop
- New "BUY ALL" button— purchases the maximum amount your inventory can hold in a single click
- Automatically calculates the max quantity based on available ingredients and remaining inventory space
- Displays the total purchased amount and number of transactions
- Shows appropriate feedback when inventory is full or ingredients are insufficient
- Selected item highlight — selected shop item now shows a blue text color and arrow prefix instead of background change (fixes broken texture issue)
Pages Resized
Page Old Width New Width NPC List 680 820 Admin 820 920 Shop — 920 Shop Editor 600 750 Shop Item Editor 520 650 Item Picker 480 620 Entity Picker 460 600
