• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Script] Changing text speed?

17
Posts
5
Years
    • Seen Sep 23, 2020
    I have 2 questions regarding text speed:

    1. How can I set the default text speed option to fast?
    I feel like most players want it set to fast, so it would be nice to have it on fast by default.


    2. Can I slow down the text for just one message?
    I have a cutscene where I want a message to display at medium text speed, regardless of the player's text speed setting. Is this possible? if so, how can I achieve that?
     
    990
    Posts
    4
    Years
  • I have 2 questions regarding text speed:

    1. How can I set the default text speed option to fast?
    I feel like most players want it set to fast, so it would be nice to have it on fast by default.


    2. Can I slow down the text for just one message?
    I have a cutscene where I want a message to display at medium text speed, regardless of the player's text speed setting. Is this possible? if so, how can I achieve that?

    1. How can I set the default text speed option to fast?
    Write "XX 20" at offset 0x5496C, where XX = [text speed] + [frame] * 8
    Text speed: 0 = slow, 1 = mid, 2 = fast
    Frame: 0 = type 1, 1 = type 2, etc.

    I'm not sure where I took this from, but they were in my notes.

    2. Can I slow down the text for just one message?
    Not so sure about this one, but you can make general changes to text in a XSE script. For example the below script will show the "..." dots one at a time to show that the NPC is thinking.
    Code:
    #dynamic 0x[Free Space Offset]
    
    #org @main
    lock
    msgbox @1 0x4
    closeonkeypress
    msgbox @2 0x2
    waitmsg
    release
    end
    
    #org @1
    = Ah, you brought the "ITEM"?\nLet me think.\c\h08\h30.\c\h08\h30.
    
    #org @2
    = This is perfect!\nYou can now leave, [player]!
     
    17
    Posts
    5
    Years
    • Seen Sep 23, 2020
    Thanks! That solves the default text speed.

    As for changing text speed for a certain message, adding dots after the text doesn't quite solve my problem.
    I'm programming a cutscene where I want one message to appear slower to create suspense, and then the message box will disappear automatically as the cutscene continues.

    For now, I just did this so there would be enough time to read the message regardless of text speed:
    Code:
    preparemsg @msgPresence
    waitmsg
    pause 0x80
    But it would be cool to be able to slow down the message so I don't have to add the pause afterwards!
     
    990
    Posts
    4
    Years
  • Thanks! That solves the default text speed.

    As for changing text speed for a certain message, adding dots after the text doesn't quite solve my problem.
    I'm programming a cutscene where I want one message to appear slower to create suspense, and then the message box will disappear automatically as the cutscene continues.

    For now, I just did this so there would be enough time to read the message regardless of text speed:
    Code:
    preparemsg @msgPresence
    waitmsg
    pause 0x80
    But it would be cool to be able to slow down the message so I don't have to add the pause afterwards!

    About that, I'm not sure how you could do that. But even if you wrote your message the way you want in the text, Players will definitely read it like that. For example:

    Person 1= What... what are you talking about?
    Delay
    Person 1= ANSWER ME!

    Person 2= I... I am your father!
     
    17
    Posts
    5
    Years
    • Seen Sep 23, 2020
    Spoiler:



    This issue is more about trying to interrupt a message with a visual event, while still giving the player enough time to read the text.

    For example:
    Person 1: "Hurry! The bomb is about to explode! Cut the wire!"

    Person 2: "Which wire am I supposed t--"

    *explosion*
    So in this case, as soon as the 2nd person's message box has finished displaying the text, the message box would disappear and the explosion would happen.
    But this isn't the scenario I'm making, this is just the most clear example I could think of.

    The problem is that fast text is faster than natural dialog speed, so at fast speed the message would disappear before the player reads it.
    And while it works to add a pause after the message like i'm doing currently, it's a bit immersion breaking and looks more unprofessional.
    So the best solution for this scenario would be to slow down the text, so the player has time to read the words as they appear.

    Couldn't find any solutions when I googled how to slow down text, I just saw someone mention it had be done before by another rom hack
     
    990
    Posts
    4
    Years
  • This issue is more about trying to interrupt a message with a visual event, while still giving the player enough time to read the text.

    For example:

    So in this case, as soon as the 2nd person's message box has finished displaying the text, the message box would disappear and the explosion would happen.
    But this isn't the scenario I'm making, this is just the most clear example I could think of.

    The problem is that fast text is faster than natural dialog speed, so at fast speed the message would disappear before the player reads it.
    And while it works to add a pause after the message like i'm doing currently, it's a bit immersion breaking and looks more unprofessional.
    So the best solution for this scenario would be to slow down the text, so the player has time to read the words as they appear.

    Couldn't find any solutions when I googled how to slow down text, I just saw someone mention it had be done before by another rom hack


    Don't know about text being slow, but you can do this:
    Code:
    msgbox @yourmsg 0x4
    pause 0x15
    closeonkeypress

    This will give time to players to read the message and it will not close until a key is pressed.
     
    17
    Posts
    5
    Years
    • Seen Sep 23, 2020
    Spoiler:

    Like i said, that's what I'm doing right now while trying to find a solution. I posted a similar code earlier in this thread.
     
    990
    Posts
    4
    Years
  • Like i said, that's what I'm doing right now while trying to find a solution. I posted a similar code earlier in this thread.

    Yes, but you are using the preparemsg command, whereas I suggested to use msgbox 0x4, as type 0x4 allows more flexibility to control the message.
     
    17
    Posts
    5
    Years
    • Seen Sep 23, 2020
    Yes, but you are using the preparemsg command, whereas I suggested to use msgbox 0x4, as type 0x4 allows more flexibility to control the message.

    I'm not sure I fully understand the difference.
    preparemsg starts displaying a textbox that stays open, and immediately continues executing the script below it, so it gives me a lot of control of what happens next.
    I thought msgbox 0x4 did something similar?
     
    990
    Posts
    4
    Years
  • Let me go on quote Sierra from here:
    0x2
    Spoiler:


    0x3
    Spoiler:

    0x4
    Spoiler:

    0x5
    Spoiler:

    0x6
    Spoiler:

    I'm not sure about prepare message, as I don't use it that much.
     
    17
    Posts
    5
    Years
    • Seen Sep 23, 2020
    Let me go on quote Sierra from here:


    I'm not sure about prepare message, as I don't use it that much.

    preparemsg is even more flexible than msgbox 0x4.

    preparemsg will continue to execute script below it as soon as the message box appears.
    But msgbox 0x4 seems to wait for the message box to finish before continuing.
    So if things are meant to happen automatically after (or during) the message box, preparemsg is the way to go.

    Here's an example:

    using msgbox 0x4 to knock on a door:
    Code:
    #org 0x806000
    lock
    [B]msgbox 0x807000 0x4[/B]
    pause 0x0010
    sound 0x0007
    pause 0x0010
    sound 0x0007
    pause 0x0010
    sound 0x0007
    pause 0x2F
    release
    end
    
    'knock text ----------------
    #org 0x807000
    = knock knock knock
    In-game result:
    - Messagebox will show the full message.
    - Player has to press a button to continue.
    - Messagebox disappears, then 3 knocking sounds are played afterwards.
    Video: View attachment msgbox 0x4.mp4


    using preparemsg to knock on a door:
    Code:
    #org 0x806100
    lock
    [B]preparemsg 0x807000[/B]
    pause 0x0010
    sound 0x0007
    pause 0x0010
    sound 0x0007
    pause 0x0010
    sound 0x0007
    pause 0x2F
    release
    end
    
    'knock text ----------------
    #org 0x807000
    = knock knock knock
    In-game result:
    The message and the sound both happen at the same time, then the message box closes itself without any player input.
    Video: View attachment preparemsg.mp4
     
    Last edited:
    Back
    Top