AddedPatrol job: placed NPCs walk a saved route in a loop, back and forth or in random order, and pick up at the nearest point after a fight.
AddedRoute Creator stick: click the ground to place up to 50 points, then sneak-click to name the route. Its menu edits routes, and one route can serve many NPCs.
AddedBodyguard job: guards chosen players, alliances or NPCs, or whoever hires it with a right-click. It stays close and fights anyone who hurts its protectee.
AddedBodyguard rules for retreating, teleporting to catch up (also across dimensions), protecting a player through respawn, and what to do when it gives up.
AddedBodyguard friendly fire switch, so the ones it guards can't hurt it by accident.
AddedBodyguards can be hired through new dialog actions and /lunanpc bodyguard assign|dismiss|order. The hirer can tell it to follow, stay, go home or leave.
AddedChunk Loader trait: keeps the chunks around the NPC loaded, so patrols and bodyguards keep going with no player nearby.
AddedDownload Skin in the Model picker: download a player's skin once by name or URL, and everyone sees it. It is saved with the world, so later skin changes never affect it.
AddedSkin Settings for downloaded skins: rename, switch between classic and slim arms, or delete.
AddedEdit access per NPC on the General tab: API only, in-game only, or both. API-only NPCs show a lock in the NPC lists.
AddedFixed accuracy slider that sets how accurate every shot is (0–100%) when dynamic accuracy is off.
AddedTarget In Sight value for advanced combat conditions, so attacks can stop firing through walls.
AddedSpears are carried in the charge pose while running and play their vanilla sounds, with vanilla's charge bonus when gear affects stats.
AddedMore models can hold items or wear heads, skulls and blocks, and the Inventory tab only enables the slots a model can show. (Suggested By @daekthielen)
AddedThe Manage Permissions log shows player heads and records skin downloads, edits and deletes.
AddedOps get a red chat warning when a saved NPC's setup can't work as configured.
AddedSetup warnings for patrol, bodyguard, Chunk Loader and spawn-area rules, such as a patrol without a route.
AddedAPI: RouteRegistry, NpcRoute, NpcPatrolSubType, NpcBodyguardSettings and patrol and bodyguard controls on NpcInstance, with the onPatrolPointReached, onBodyguardLocked and onBodyguardReleased events.
AddedAPI: LunaNpcApi.skins(server) with SkinRegistry to manage downloaded skins.
AddedAPI: NpcEditAccess with editAccess() / setEditAccess on NpcDefinition. Changes the access forbids throw IllegalStateException.
AddedAPI: AllianceRegistry.setMatchAllPlayers and setFriendlyFire.
FixedNPCs stuck chasing an unreachable target ignored players hitting them.
FixedMelee attacks landed through walls.
FixedMelee NPCs got stuck below their target or walked back into pits instead of going around.
FixedWide NPCs needed gaps one block wider than their body.
FixedNPCs knocked off their route kept pushing at the missed ledge instead of finding a new way.
FixedNPCs that gave up on a target never chased it again while it stayed in view.
FixedLeft-clicking an item slot in a menu cleared it instead of opening it.
FixedNPCs routing around a wall kept turning back and edged slowly along it.
FixedNPCs hopped constantly when brushing past walls, slowing them to a crawl.
FixedFast NPCs circled around corners and obstacles instead of rounding them.
FixedAlliance changes made through the API didn't reach connected players right away.
ChangedLunaNPC now runs on Minecraft 26.3.
ChangedAttack speeds faster than 0.5s now really hit that fast, and a new speed applies on the next attack.
ChangedCrossbows stay raised and reload right after each shot like a pillager, and bows stay drawn for the whole fight.
ChangedNPCs no longer flip weapons at the boundary between close and long range.
ChangedArmed illagers use their vanilla weapon poses.
ChangedThe Main Hand and Ranged Weapon slots now explain what they do.
ChangedItems that don't fit in a full inventory drop at the player's feet instead of toward the NPC.
ChangedAPI: NpcRegistry.create and getOrCreate now take an NpcEditAccess; pass NpcEditAccess.SHARED to keep the old behavior.
ChangedAPI: NpcJobSettings, NpcTraitsSettings and NpcProjectileSettings have new components, so direct constructor calls need updating. The with… methods are unaffected.