GameMaker (2.3)

Dialogue engine - Text boxes


You must be logged in to obtain assets


With this dialogue engine you can easily add text boxes with dialogue to your games. You can also add options that affect the dialogue or change variables. It's easy to change the speed of the text and colors or the sprite shown in the text box. Now you can add speech bubbles too.

Most important features:

  • Text boxes

  • Speech bubbles

  • Typewriter text

  • Options/choices that can affect the dialogue or change variables

  • Works with different views and camera

  • Very customizable

  • Incredibly easy to use

How is it used? Everything works with scripts. Every script has an explanation and an example. I have tried to make this dialogue engine as easy to use as possible.

How easy to use is it? For example, you can make an npc say something with this:

if keyboard_check_pressed(vk_space) {
    if place_meeting(x,y,player) {
        if !textbox_exists() {
            textbox_create("Hello","How are you?");

And it will just work. : )

End User Licence Agreement (EULA).

Age Rating: 4+


GMS2 - Version 1.8.4. Published June 25, 2020


  • textbox_set script updated with a new argument: EnableMouse. If it's set true, mouse can be used to advance in dialogue and choose options. If you want to change the sprite of the box in the options, change it manually in the option objects.

  • Options now appear after the whole text has appeared.


  • When using speech bubbles, sometimes things were calculated incorrectly because of font size variations, now it's fixed.

GMS2.3 - Version 2.5.0. Published April 27, 2022


  • Edited code in the textbox object and the option objects. Now they have the same code as the equivalent objects of my Cutscene engine. Thanks to this, it's smoother to use these engines together and less objects are needed. Also, this makes updating these engines much easier for me, which means that updates will be available faster when they are needed.


  • Changed array name from message to msg, because message has become a built-in variable

  • Changed a variable ("selected") from string to real number to make code easier to handle & to slightly improve performance

  • Updated manual

Loading, please wait

Package contents

Loading, please wait

What is the issue?

Loading, please wait