How to use the Memory Bank
The memory bank stores all memories, or variables for your entire game. You can add new memories in any episode, and they will can be referenced in any subsequent game. A variable is a way to store and remember player action to reference later— whether it’s a number you increase to show affection growing, remembering an event that happened (“you threw a smoothie at him in episode 1!”), or setting up a pronoun system by remembering text.
Adding a Memory
Inside the Memory Bank, create a new slot and name your memory. You may want to include something in the name that references which episode it first appears in. (example: Ep1_ChooseEvil)
Each memory will require a “default value.” Think of this as what should the player have when they start the game.
Now let’s define the type of memory:
Yes/No - Most common!
This is for a Memory where all you want to do is check if the player did or did not do something.
Example Questions: Did we kiss the love interest? Is Bob alive? Did we witness the murder?
How does it work?
Example: You have a choice to kiss a love interest, and you want the love interest to reference it in the next episode. You want to check according to this:
Did we kiss the love interest? 👉 Path 1
Otherwise 👉 Path 2
Why is the default set to no?
The default represents the status of the game when the player starts the game. Since they haven’t kissed the love interest yet, it defaults to no.
Text
This is for using a Memory that refers to a name or label.
Example Question: Which nickname did the player choose? Which town is the MC from?
How does it work?
Example: setting a nickname. You might want to let your fans choose between three nicknames — Pumpernickel, Scout, and Jellybean. You will need to create memories for two nicknames. This will allow you to later check according to this:
Is the nickname Pumpernickel? 👉 Path 1
Is the nickname Scout? 👉 Path 2
Otherwise 👉 Path 3
Why isn’t the third option “Is the nickname Jellybean?”
When designing for choice memory, you must always leave one option without any condition. This avoids having players get stuck at parts of the game. In the example above, they will only end up in Path 3 if they chose Jellybean, so adding this is unnecessary.
Number
This is for using a Memory that counts up or down.
Example Questions: How much gold does the player have? Which Level is the player on?
How does it work?
Example: collecting gold. You might want to let your fan earn gold in the game. Then, you might allow them to buy certain things depending on their gold. This lets you check a sequence like this:
Does player have at least 20 gold? 👉 Path 1
Otherwise 👉 Path 2
Making the game remember the choice.
First, you have to tell your Memory Bank to store this memory. This will allow you to reference it from any subsequent episode in the game.
Inside the Memory Bank, add a new slot and name your Memory. In this case, we will call our Memory “used_fire”. Our “question” we want to ask later is “Did the player choose to use fire?” Since the answer is either “yes or no”, this tells me that I should use the Yes/No type.
🚨 Memory names can only use letters and numbers. No special characters or spaces except underscore.
Using Memories with Remember and Check
Let’s set up a scenario where you’re a superhero who has an option to use FIRE or ICE powers to attack a villain. Later on, the villain reveals fire is his true weakness, and we want to remember our initial choice to give a bonus option to those players that picked FIRE early on.
Tying the memory to the choice.
Each choice will have an outcome. Since this is a yes/no choice, you only need to set the memory on the branch you are changing. We want to set the player’s status of “used_fire” from No to Yes if they choose the fire option. We change the value of memories using REMEMBER STEPS.
Checking the memory later.
Now, you’re further into the game and you want the villain to mention whether you used fire or not. This means you need to use a CHECK STEP to check the memory.
Create a Check step and fill in your memory. In this case, we are checking if used_fire (Yes) is true and bringing them to one branch. If it’s not true, it goes to another branch.
🚨 Right now, you must make the goto nodes BEFORE you set the check up. You cannot create a node from within this step.
Now you understand the basics of Memories, how to use Remember steps to change them, and how to use Check steps to make different branches based off of them. Next, check out how to set up a Relationship System using memories!
Common Questions:
I have a looped choice where players can go back and pick multiple options, but in one route they earn relationship points, so players have figured out they can make an infinite loop to keep earning points. Is there a way to make it so the player only gains those points once?
Add a yes/no variable that has to do with the name of that one path where the player can gain points. So if it's about your LI handing you a feather in ep 3, call it Ep3LIFeather. Default it to 'No'.,
Right after the step where you give the player points, add a Remember Ep3LIFeather = Yes step.
Instead of having your choice go to the node where the relationship points are given, have that choice first go to a new Check node, where you check Ep3LIFeather. If it's Yes, it means you've already gotten the points, so direct them to a version of the node where there's NO relationship points up step. (Some games add a step that says, You've already earned points for this scene!). If it's No, it means that's the first time they're seeing this, so direct them to the path that has the relationship points up!