How to make a Journal.
(Point&Click style games)
(Point&Click style games)
Hi everyone. I've seen around tutorials about how to make a book
What is the point of the journal: A journal can be "filled" progressively as the story advances any time you see fit. You could include a summary of the day before or some event written by the main character (thus giving an idea of how the character is feeling or their personality), the main points of a long conversation with an important NPC or include pictures and clues related to puzzles.
How to name your pictures: every "entry" of your journal is a different picture, but all of those entries might be on the same “fictional page" of your journal. Therefore you might end up with three different pictures for "Page1", and two for “Page2”. Since we need to override those pictures or “false pages” and still be able to go forward and backwards inside our journal (“real pages”) we will need 2 variables to keep track of them, so I named the pictures Page1a, Page1b, Page1c, Page2a, Page2b... to make things easier, but is up to you how you name them.
For this tutorial I named those variables [Page Number] (for the fictional pages) and [Journal Advance] (for the false ones). I took the picture of the empty book
- First make the item for the journal and insert a Common Event (CE) inside it to open the journal event (In this tutorial I named it [Open Journal]). Set it to 'NO consumable', the scope to ‘none’ and the occasion ‘Menu Screen’. Is up to you to set it as Regular Item or Key Item. Make sure you create an autorun event as soon as the game start to give the item to the character or a normal event if you want the player to find the journal through the game.
*You could also use the plugin Hide Item Quantities, made by Mr Trivel, writing <noq> on the Note window to (duh) hide the x1 on the item for aesthetics. (PLUGIN NOT MADE BY ME)
Link to Mr. Trivel’s Hide Item Quantities
- Now open the CE Open Journal and insert a picture of the journal you are going to use without any writings on it (like the one on the link before). This will serve as a “base” in case you want to include animations to flip the pages or your game lags in between pages. In this tutorial it's Picture #1. Then create a Switch (here called [Inside Journal]) and set it to ON. -> you could put all of this inside a “Choice” option if you want to be asked if you want to open your journal or not.
*Optional: you could use the opacity of the picture to create a transition when you open the journal, setting it to 0 and then increasing it progressively to 255. The dimensions of your picture are up to you and the screen resolution you use for your game, but make sure they are big enough so the player can read them easily. You could add a sound effect too before showing the picture.
- Now create 3 new Common Events, we will use them to “turn” the pages of the journal (a.k.a. to control the variable): [Turn Right], [Turn Left] and [Turn Right/Left].
On the [Right] one create a Conditional Branch in which if the button “right” is pressed down, we will ADD (+=1) to the variable Page Number.
For the [Left] one is exactly the same but since we are “backwards” on the journal we will SUBstract (-=1) to the variable Page Number if the button “left” is pressed down on the condition branch.
Finally just copy and paste those 2 condition branches on the [Turn Right/Left CE], making sure that they are separated.
*You could add a SE or place a small waiting time after the events to ensure a nice pacing. Technically you just need to use the CE Turn Right once, so you could write it down on the main event, but I like to keep it as a separate event to keep it simple.
- Now create the final and most important Common Event: [Inside Journal], set the trigger to Autorun and set the Switch you made on the Open Journal CE as the condition.
Inside it make a Conditional Branch: if the button [cancel] is pressed down, erase the picture you used as an empty base shown on the Open Journal CE (Picture #1), erase the picture you will use to place all the pages (here Picture #2) and finally turn the condition switch for this autorun event OFF. -> keep this at the end of your CE, and preferably place it inside a “Choice” option so you don’t close the journal by accident.
- Now is time to make the heavy content of the [Inside Journal] event. It is not difficult to do, but quite long and a bit hard to explain; please check the pictures and the examples since they might be easier to understand than the explanations:
- First create many individual Conditional Branches, one for each “fictional page” of the journal, and set the variable [Page Number] equal to 0, 1, 2, 3…. (keep in mind that unless you make a cover picture, the first page of our journal will be variable = 0, the second page variable =1... and so on).
*If [Page Number] = 0 (page1)
*If [Page Number] = 1 (page2)
*If [Page Number] = 2 etc. (page3)…- Then inside each of those [Page Number] branches, make another set of conditional branches, this time for the variable [Journal Advance]. Make one branch for every number of pictures or “false pages” you have for that page and finally SHOW the picture inside it accordingly. All of them have to be on the same picture #x slot. Here they are on Picture #2.
So, for example, if I have 3 different pages one, 2 different pages two and 1 page three (page1a, page1b, page1c, page2a, page2b, page3a) it should look like this:
*If Page Number = 0 (page1) -> this line will not have a picture
*If Journal Advance = 0 (show picture page1a) -> these yes
*If Journal Advance = 1 (show picture page1b)
*If Journal Advance = 2 (show picture page1c)
*If Page Number = 1 (page2)
*If Journal Advance = 3 (page2a)
*If Journal Advance = 4 (page2b)
*If Page Number = 2 (page3)
*If Journal Advance = 5 (page3a)- Now make a COPY of the last picture you have per page and place it under it, but instead of making the condition of the variable equal to the number of the false page (=), make it it equal or bigger (≥) to the number of the next variable [Journal Advance] . Make sure it is equal or bigger or you won’t be able to use it as the story progresses. It would look like this:
*If Page Number = 0 (page1)
*If Journal Advance = 0 (page1a)
*If Journal Advance = 1 (page1b)
*If Journal Advance = 2 (page1c)
*If Journal Advance ≥ 3 (page1c)
*If Page Number = 1 (page2)
*If Journal Advance = 3 (page2a)
*If Journal Advance = 4 (page2b)
*If Journal Advance ≥ 5 (page2b)
*If Page Number = 2 (page3)
*If Journal Advance = 5 (page3a)
The reason we do this is because when you get all the entries of your, for example, Page 1, you still can’t turn into Page 2 because you haven’t gotten it in-game. But once you get a new entry and “unblock” Page 2, you want to be able to travel between these pages freely. Therefore the extra “repeated” false page will have the Turn Right (for Page 1 only) after the show picture line and Turn Right/Left (for all the other extra pages). Except for those of the Page 1 (they don’t have any turn event), all the “false pages” should have the Turn Left event.
Like this:
If you have understood all my bad explanations and how the event works (congrats :’D) you could also set the event like this to make it shorter: just place that extra page under the last false page, changing the equal (=) of the variable to equal or bigger too (≥). It works exactly the same, pick the method that is easier for you.
- We still need to do one more thing for this event as a whole: how to make the [Journal Advance] variable actually increase on the game. This variable will be modified outside these common events we made for the journal: every time you want to include an entry on your story include a [Control variable: Journal advance -> add 1 (or adjust the number accordingly) on the event you are using to advance the plot]. Then the new picture will appear on the journal.
*Optional: When you close your journal, it remembers the last page you were looking at (it remembers the variable duh), so next to that "Journal advance add 1", you could add a conditional branch (if journal advance is X, then set the Page Number to X), to make sure the player will open the journal on the correct page every time they get a new entry.
- And FINALLY, this is optional but STRONGLY recommended: if you check that last picture I put you will notice a new switch called [show journal item] at the end of that event. This switch activates a new Common Event set on Parallel. It will make a sound effect and show a small picture on the corner of the screen to notify the player that a new entry has appeared on the journal. If we didn’t do this they wouldn’t be able to tell when it happens and they would forget about the journal and our effort to create it
Remember to turn off the switch at the end of that event. You can make the picture bounce or increase-decrease like in this example:
And that is it!
I hope this was useful for someone and that the explanation wasn't too confusing (sorry for any English mistake).
..........
New: How to customise the entries of the journal:
In you need/want the player to have more interaction with the entries you can introduce a few options to make it so. It is limited to the size of every entry and the place they occupy on the page, but can bring more variety to the gameplay. Since the structure is very similar to the previous journal example I won't explain them again.
- The first stage of the event is exactly the same as before: create the item, the Open Journal common event and the 3 common events to turn pages.
- Then you have to write your entries on top of a transparent background. If you want more than one entry on the same page you should be careful of their placement. It helps to keep a consistent naming for all the pages, for example: Page1entryAtext1, Page1entryAtext2, Page1entryBtext1...
- Now the Inside Journal Common Event:
- It will still use the variables Journal Page, Journal Advance and for the most part the same structure as the previous journal, but we will need new variables, one for every choice the player makes: the variables start with 0 value, so we can use that default value to make the choices. Since we don't want those choices to reappear over and over we need to set a new value to that variable according to the choice made. We will still need the external event to increase the Journal Advance variable.
- The main difference between this method and the other is that we will need to use more number of pictures as they will "pile up" one on top of the other instead of substituting the previous one. On the previous mode we only needed picture #8 and picture #9 for the examples. Now we will need as many pictures as entries on the same page, and erase them accordingly on the Cancel button part of the event. Depending on how you organise your entries you could reuse some picture numbers instead of erasing them, for example Page 1 could use pictures 9, 10, and 11; Page 2 pictures 12, 13 and 14; Page 3 again pictures 9, 10, 11...
*If Journal Advance = 0
*If Journal Page 1 entry A = 0
*If Journal Advance = 1-Show text: Do you want to write about.../How are you feeling...?
-Show options:
*If Journal Page 1 entry A = 1-Show options:
-if option 1: control variable [Journal Page 1 entry A = 1]
-if option 2: control variable [Journal Page 1 entry A = 2]
-if option 3: control variable [Journal Page 1 entry A = 3]
-if option 2: control variable [Journal Page 1 entry A = 2]
-if option 3: control variable [Journal Page 1 entry A = 3]
-Show picture #9
*If Journal Page 1 entry A = 2-Show picture #9
*If Journal Page 1 entry A = 3-Show picture #9
4. Since we don't know what picture will be chosen we need to include them all on the next "Journal Advance" entry before the new Choice. Then we will use a new variable and a new picture.
5. When you need to turn the page of the journal the structure is the same as before, except for a couple of things:
-From the second page onward include the Turn Left or Right command after every picture.
And that is pretty much it. If you need more examples or something is unclear let me know.
Last edited:





















