Monday we covered the basics of Chat Mapper and what parts are going to interact with RPG Maker to create our dialogue. Before we progress to integration, there are 3 more unique things we should talk about: links, within-dialogue branches, and script calls.
You might’ve noticed this tiny little icon that looks like a chain in Chat Mapper. This is a link – it allows you to cross-over or “jump” to any other point in your tree. This means anywhere, including to layers above, below, and sideways. It’s incredibly helpful, and should be used anytime you were thinking of copy/pasting. Why? Let’s say instead of linking, you copy some dialogue to this new location. A month later, you want to edit it. There’s nothing to remind you “hey, you copied this elsewhere, make sure to edit that one too.” Unless your tremendously diligent (and willing to duplicate or triplicate work regularly), you’ll have inconsistencies.
So instead, we link. Now any edits we make to one dialogue node will be uniformly and universally applied. How do we do make this link? Click the chain button on either a group node or dialogue node.
The box you clicked on will now be outlined in red.
Click where you want to go next – again, it can be either a group node or dialogue node. When you do, you’ll see an arrow and a label that says “To X: ____” with the name of the place you selected to jump to.
A few points to remember:
- From a group node, a link will trigger only if you make it to that “To” label. Above, that means that if group node #28 is FALSE, then jump to node 3 and carry on from there. Otherwise, show the dialogue.
- From a dialogue node, a link will only trigger once you finish the dialogue above. In the below example, we have two branches. The first chunk of dialogue differs depending on how we got there. But the second is the same each time, so we just use a link in the left branch.
Remember that you can link to a group node (if you want to continue to ask your way down the tree to find the correct leaf) or to a dialogue node (to go directly to a dialogue leaf). Use these liberally!
Within Dialogue Branches
While often the entire dialogue with an NPC will change depending on your conditions, sometimes it’s just a little bit. Again, copy/pasting is never the correct answer. Instead, we’re going to do some of the dialogue, then branch when we need to. Just like you can have either kind of node as a “child” of a group node, you can have either kind of node as a “child” of a dialogue node! They’re totally interchangeable.
The above is a good example. There is a line of dialogue that happens regardless of whether Dani is dead. Then, Elek is going to change what he says depending on whether Dani is dead, so we branch. We do that for one dialogue node, then we link back so that each “branch” is the same after.
Dialogue is nice and all, but NPCs are the quest-giving lifeblood of games. That means that not only should you get story from them, you need quests! In every game, quest mechanics differ, but you’d expect certain things like:
- Adding or removing items when you talk to an NPC
- Updating a journal
- Turning on switches
- Changing variables
All of those kinds of things are crucial, and can be done right in Chat Mapper using the command:
Add that at the end of your dialogue, then hit return and add any Ruby code you want to trigger once that dialogue node is reached. So, if your NPC is giving a quest and you need to set switch 20 to “on” as a result, your dialogue node might look something like:
Friend! I'm in big trouble! I lost my wedding ring and need someone to go to the sewer dungeon to find it. Please help me! I'll reward you in gold! \script $game_switches = true
After the dialogue occurs in the game, switch 20 will be set to true. You can run as many lines of code as you want:
Don’t worry if, in the node, it looks like there are line breaks. What matters is the Properties Window – so long as each line of code is on it’s own line there, you’re fine. In the above, we are revealing a quest in a journal, adding items to the party inventory, setting Variable 12 to 1000, and even calling some Indicative Data Recording (that I discussed a month or so ago).
That’s all for the ins-and-outs of Chat Mapper. On Friday, we’ll discuss Exporting and Converting so that we can use it in RPG Maker!