If you want to get the most out of RPG Maker, learn Ruby. In the meantime, lots of talented scripters have done the work for you. Every Friday, The Iron Shoe features a fun script and goes into detail about how to use it. It also covers a little bit of Ruby each time so you can make even more out of the script.
Yanfly isn’t the only scripter with a message manager. Modern Algebra has come up with an amazing way to let you change the position of text boxes so you’re not so limited to top/middle/bottom. Coupled with dynamically adjusting window-sizes, this message manager may be exactly what you need to make your game look, well, less out-of-the-box. Today I’m talking about the “Message Options” script (I’ve linked you to a bunch of Modern Algebra’s dialogue options). Download the script, add it to your project, and let’s get started!
Options
There are a whole lot of features in this script, and each one has it’s own customization options. Roughly speaking, we can do the following:
- Have text follow-on or “append” to the previous text. That is, if you have two “Show Text” commands in an event, one right after another, the manager will appear to connect them in a box.
- Scroll within your message box at variable speeds, line by line, and allow scrolling up so a player can see earlier parts of the conversation
- Have various sound effects, including dialogue start, pause, stop and typing
- Name plates
- Automatically place the message window to not obscure certain characters or NPCs.
- Shrink the window to the minimum size necessary to contain the text
- Position the text in relation to an event on the screen
Here are some of the interesting ones:
- append_text: when set to true, all commands to add text to the message window will be shown consecutively, that is, scrolling in the same window. If this still doesn’t make sense, set it to true and give it a spin so you can see what it’s like! False would return to default.
- Pause_before_scroll: combined with append, you’ll get a nice crisp pause before the next page scrolls into your window.
- letter_sound_on: play a typing sound as the text starts to appear. It’s like Phoenix Wright!
- message_windowskin: with this, you can actually change the window skin used dynamically in your game. Use a different skin for different contexts!
- do_not_obscure: this is an awesome feature. Put the ID of the player or event that you want to make sure is visible on screen, and the message window will never obscure that player or event. Really helpful when building cutscenes.
- fit_window_to_message: this will change the size of the window box every time so it’s only as big as necessary.
A note about combining fit and append. Suppose you have several dialogue boxes in a row in your event, like this:
If append is on, even if fit is on, the window isn’t going to change size from text to text – it’s going to be as large as necessary to accommodate the biggest text. So definitely four lines tall. And then probably as long as “a tunnel to dig from our yard that would” which is several boxes down. This means that “What is it?” is going to be in a much larger box than necessary. It’s not bad, it’s not good – you should just be aware!
Example Dialogue
In the example above, we have a conversation from Vidar between two characters – Dorottya and Katarina (who affectionately call each other Dorry and Kat). Even if we’ve set up some of our presets in our script, we can (and probably want to) change them here where it’s not just on NPC yapping at us, it’s a conversation.
First, we want to add name boxes so we know who is talking. We can prefix each dialogue with a command to insert a name box using \nb{Name}. So something like this:
As we put this in, we see that each character gets 1 command, and then it passes to another. Even if we’re using append throughout the game, it would make very little sense to use it here – each character should really get their own box. We can use a script call to turn off append for just this event.
ats_all(:append_text, false)
We’ll want to call the same thing at the end of our conversation, subbing in true, to set us back to the default.
Next is a really fun feature – dynamically setting the position of the box. Now, we can move the dialogue box to above the NPC that’s actually talking so it looks more like a conversation! First we need the event numbers of our NPCs – you can get it at the top of the event page for the character itself.
Then in our conversation event, we add yet another command – \et[EVENT NUMBER]. The message box will be above the event – you can use \eb for below, \el and \er for left and right. Add them right before the namebox command.
Combining all these elements, we can get a really cool effect that makes the game look less…defaulty.Now just write some good dialogue!