NPC

An NPC (Non-Player Character) is any character you encounter and interact with in MapleStory that is not controlled by other human players -- they

are generated and controlled by the game server. Their purpose is to serve quests or challenges, help or entertain.

NPCs are located almost anywhere in the Maple World, with their name displayed in yellow beneath them, and sometimes even a short description in addition.

Using the left button mouse click, players are able to interact with them to initiate a conversation or a quest. NPCs that serve quests will have a lightbulb icon to indicate they have a quest available.

Dialogs
Everytime you speak with an NPC, you encounter a dialog window. Here's a list of the available dialoges:
 * OK Dialog - A dialog with text displayed and an OK button to terminate the conversation.
 * Next Dialog - A dialog with text displayed and a Next button to continue the conversation.
 * Yes/No Dialog - A dialog with text displayed and a Yes button to proceed or a No button to terminate the conversation.
 * Selection Dialog - A dialog with text displayed and multiple choice selections available to choose from.
 * Accept/Decline Dialog - A dialog with text displayed and an Accept button to accept or a No button to decline.
 * Style Dialog - A dialog with text displayed at top and a style selection area (Hair, Skin or Face).

NPCs' Scripting
In the private server scene, NPCs are executed through scripts. Theoretically speaking, NPCs can be scripted using any capable scripting language as long as the server's coding languing is capable of executing them. In OdinMS for example, NPCs are scripted in JavaScript (.js) and are located in the scripts\npc folder.

Here's an example of a script taken from OdinMS: function start { cm.sendOk("Hi, I'm Cody! How are you today?"); }