May 2021: Improved NPC Dialog System [CLOSED]


Start Date: May 12, 2021
Due Date: May 31, 2021 (by end of day, Pacific Time)


Each entrant is eligible for a payment of up to $500, with a minimum of $200 if the entry meets the minimum standards. The exact payment amount for each entrant will be based on the quality of the entrant’s work.


An NPC dialog system allows a player to interact with an NPC. It is very common in games and is used for such things as quests and tutorials.

In Community Content there is an NPC dialog system that was extracted from Corehaven (Dialogue System With NPCs by Hani). This is used in many current Core games.

The goal of this Challenge is to edit or make a new NPC dialog system with feature improvements, more visual variety, and that is easier to use. Add your own improvements, as well as some of the suggestions listed below.

Close Box
The player should be able to manually close the dialog at any time.

Auto Close Logic

  • The dialog should close automatically when a player walks away from the NPC.

  • The dialog should close automatically when a different NPC dialog is started.

  • Consider adding an event handler that closes the dialog when a specific event is received. This will allow another script to send an event to close the dialog.

The current method to continue the dialog may not be the most intuitive. It relies on a text label telling the player to LMB to continue. Maybe there is a better way of doing this.

Multiple NPCs
The system must function properly with multiple NPCs. The current system has problems when more than one NPC is involved. For example, if you start a dialog at one NPC, and then go to another NPC and open a dialog, then the new dialog state is not correct. It incorrectly shows some of the buttons from the previous dialog.

Mouse Pointer
The system should work for any default mouse state. Some Core games have the mouse hidden by default, while others have the mouse shown be default. Prior to the dialog, save the current mouse state, and then after the dialog restore the mouse state.

Trigger Prompt
The trigger prompt should be hidden when the dialog is taking place.

NPC Overhead Icon
The creator should be able to easily change the overhead icon of the NPC.

GUI Design
One downside to the current dialog system is that all games that use it look the same. So it would be nice to offer different graphical designs and skins. The look and even the layout can be different, for example. Take a look at other PC games for examples of how other dialog systems are graphically designed.

Consider providing a way for the creator to specify the font of the various elements.

User Friendly
Think of ways to make the system as easy to use and user friendly as possible. We want creators to drag and drop this into their game, easily add a dialog, and be up and running as fast as possible.


  • You are permitted to use existing NPC dialog systems as a starting point or reference.

  • Include a readme file that describes how to use your content. Make it as easy as possible for other developers to understand how to implement your system.

  • Consider using Lua Modules so that developers can easily require and call the module functions.

  • Scripts should use clean, readable code with extensive comments.

  • Please review the content best practices.


  • Design an improved NPC dialog system with as many of the features above as possible.


If you have any questions, then please post them to this topic.


How To Apply

For instructions on how to apply, please visit the Application Form post.


Submitting Your Work

  • Your application acceptance message includes instructions on how to submit your work.
  • Entrants must submit their work by the deadline listed in the Challenge in order to be considered for payment.
  • Failure to submit your work on time may affect your eligibility for future Challenges.


More Information

For detailed information about the rules, judging criteria, and best practices please visit the Challenge Board Info & Rules post.