Real-Time Text Conversations

Example files to look at: tutorial_3_text_message.rpy

Unlike regular text messages, real-time text conversations play out similar to a chatroom with a single character. The player receives a text message, and upon entering the conversation, cannot leave until either the conversation is over or the player exits the conversation and it is lost. See Regular Text Messages for more information on regular text messages instead.

Beginning a Text Conversation

Example files to look at: tutorial_3_text_message.rpy

A brief overview of the steps required (more detail below):

  1. Create a label using the prefix after_ + the name of the chatroom you want to send the text messages after e.g. label after_my_chatroom

  2. Begin the text chain with call compose_text(s, real_time=True) where s is the variable for the character who is sending the message

  3. Write dialogue for the conversation. You may use Script Generator.xlsx to assist with this.

  4. End the text chain with call compose_text_end('convo1') where 'convo1' is an optional label to jump to to allow the player to reply to the message

  5. End the entire after_ label with the line return

  6. Create a label for the conversation (e.g. label convo1:) and begin with call text_begin(s) where s is the variable for the character sending the message

  7. Write the text message dialogue as you would a chatroom, including elements such as (pauseVal=0) after the MC’s dialogue.

  8. Finish the conversation label with jump text_end

To have the characters begin a text conversation with the player after a chatroom, much like regular text messages, you need to have a label that follows a specific naming convention. For example, if your chatroom is called

label my_chatroom:

then you need to create a label called

label after_my_chatroom:

Then to begin writing the dialogue that will appear in the popup notifying the player of a new text message, begin with

call compose_text(r, real_time=True)

where r is the variable of the character who will text the player. real_time=True indicates to the program that this conversation will take place “in real-time” once the player enters the conversation.

You can then write the character’s dialogue the way you would in a chatroom. These messages will show up as a “backlog” of sorts before the player enters the conversation, so it should be brief.

At the end of the initial messages, write

call compose_text_end('convo1')

where 'convo1' is the name of the label to jump to to continue the text message conversation. This can be named anything, though it’s recommended you come up with a consistent naming scheme so you don’t accidentally have two labels with the same name.

You can repeat this for as many text conversations as you’d like to have, beginning each with call compose_text(r, real_time=True) and ending with call compose_text_end('convo1'), of course swapping out the character variables and label names for different values.

Next, create a label with the name you passed it in compose_text_end and begin it with call text_begin(r) where r is the variable of the character who is in the conversation.

label convo1:
    call text_begin(r)

Next, write out the conversation just like a chatroom, including adding CGs, emojis, and changing fonts. Text messages do not currently support special speech bubbles. You can begin the label with additional dialogue before a menu choice. Like in chatrooms, menu choices should be preceeded with call answer in order to show the answer button at the bottom of the screen. Unlike regular text messages, you can award the player as many heart points as you would like, as they will be awarded in real-time.

Finally, end the text conversation with

jump text_end

An example of a label to jump to for a real-time text conversation might look like the following:

label convo1:
    call text_begin(r)
    r "Some sample text."
    r "This is continuing the conversation from before."
    call answer
    menu:
        "Choice 1":
            m "Choice 1" (pauseVal=0)
            r "Reply to choice 1."
        "Choice 2":
            m "Choice 2" (pauseVal=0)
            call heart_icon(r)
            r "Reply to choice 2."
    r "More dialogue for the conversation."
    call answer
    menu:
        "Choice 3":
            m "Choice 3" (pauseVal=0)
            r "Reply to choice 3."
        "Choice 4":
            m "Choice 4" (pauseVal=0)
            call heart_icon(r)
            r "Reply to choice 4."
    r "Final dialogue."
    jump text_end

Leaving Real-Time Text Conversations

Unlike regular text messages, real-time text conversations function more like chatrooms. Thus, if the player clicks the “Back” button during a real-time text conversation, they will be asked if they’d like to end the conversation.

Backing out of a real-time text conversation means that conversation will no longer be available to continue, though the player will retain any heart points or CGs they collected before they exited the conversation. There is no option to “replay” text message conversations, but unlike chatrooms they do not expire until another text conversation overwrites them.