0 votes
by (140 points)
I'm new to using Twine and currently working on a University assignment.

Using Harlowe at the moment but could change if necessary and probably would need to I think for some of the things I'm hoping to implement.

Is it possible to create a readable log of your story in Twine? Similarly to in Visual novels where you can reread previous text. How would I implement that? TDon't know if I'm just tsearching for the wrong thing on Google. Thanks.

2 Answers

0 votes
by (159k points)
Generally a Passage contains three types of content:

1. The text that the Reader reads.

2. The programming logic that controls what text is seen when, and this is generally done using the current value of story variables.

3. The programming logic that updates the story variables (state history) of your story, this is generally done as a result of the Reader making choices.

The main issue with displaying the content of previously seen passages (a readable log) is that if you do so then:

A. The logic in point 2 will use the current value of the referenced story variables, and that value make not be the same as it was at the time the Passage was previously shown.

B. The Reader selectable choices in point 3 will be displayed again, unless you include some functionallity that suppresses them.

C. The story variable changing logic in point 3 is likely to be run again, which could result in them ending up with incorrect values.

So you basically have to do four things when implementing such a log:

1. Add functionallity that temporarily rewinds the History system back to the state it was at the start.

2. Loop through each of the Moments stored in the History and display the associated Passage.

3. Design every visual Passage so that it suppress all Reader selectable links while the log is being displayed, you may will also need to temporarly disable the Undo/Redo buttons.

4. Reset the History system back to how it was before the Reader activated the log.

Unfortunately Harlowe is deliberately designed to restrict Author access to the story format's engine's internals, which will make all the History related coding difficult at best.
0 votes
by (560 points)

It's crude, but I would do something like have a passage with literally all the text in your game (hidden at first of course). You would then reveal whatever text the player read up to so far with an if-statement, like maybe:

(if: (history:) contains "Introduction")[Hi, nice to meet you!]