NPCs
NPCs are mobs withtype: npc, so they are spawned, looked up and contributed through mobs() like any other mob. LodeEntitiesAPI.npcs() is the same registry narrowed to them:
NpcInteractEvent: that skips the NPC’s dialog, while its own +onInteract lines still run.
Dialogs
Branching conversations fromDialogs/ can be driven from code: start one from an item use, a region enter, a quest step.
ids() and get(id) are there too. The NPC argument is optional, so a dialog doesn’t have to belong to an NPC at all.
Dialogs speak the same effect language
Custom conditions you register are immediately usable in dialogconditions: blocks, and custom mechanics in dialog node effects:. Nothing extra to wire up.
See NPC Dialogs and Dialog Conditions for the config side.