The 100% Good Ready-to-Use Tweego Folder is both a coding guide for the Tweego compiler and an easy-install for the program. It is meant to complement the official Tweego documentation, and update the Tweego download folder (formats).
The Guide is fairly short and goes over installation of Tweego in Windows and MacOS, the Twee Notation (a.k.a. Passage set-up), and use of Tweego in Windows and MacOS as well as with Twine 1 and Twine 2 formats.
While the Guide was compiled with SugarCube 2.37.3, and the Ready-to-Use Tweego Folder has a base project with SugarCube 2.37.3, Tweego can be used with any Twine 1 and Twine 2 formats. Annotations are also provided to change formats.
READ THE GUIDE & DOWNLOAD THE FOLDER
Note: setting up Tweego is different depending on your device. Check the Guide for full instructions before downloading the Folder (esp. for MacOS).
The Folder includes:
the Ready-to-Use Tweego Guide
Tweego, all official Twine 1 & 2 formats, and relevant scripts
Twine® is an “an open-source tool for telling interactive, non-linear stories” originally created by Chris Klimas maintained in several different repositories (Twinery.org). Twine is also a registered trademark of the Interactive Fiction Technology Foundation.
Tweego is a free (gratis and libre) command line compiler for Twine/Twee story formats, written in Go, created by TME. The Ready-to-Use folder is based on the one put together by Sjoerd.
READ THE GUIDE & DOWNLOAD THE FOLDER
The previous version of this Guide and Folder (SugarCube 2.36.1/Windows only) is still available for download on my GitHub.
When an aspiring writer gives up on his latest project and goes to bed, he wakes up in a peculiar ever-shifting dimension filled with familiar friends... As well as foes. What will it take to wake up from this strange dream?
ISEKAI GUY is a multi-chapter, multi-crossover adventure comic of various franchises made in Paint 3D and Twine 2. There are also OC x canon and canon x canon elements in this story. Don't like? Don't read. But otherwise, please enjoy!
I’m really happy with this update (I finished the inventory system! And it was so simple, just like I knew it would! Damn procrastination!), which brings so much stuff!
A loooot of new things have been added in this update. To get a summary, you can simply read the bullet point at the end of the post.
As always, the current version of the game is available here: https://mad-j-j.itch.io/fathers-day
Okay, so for the actual content this update brings:
Since the idea of the game is that Sansa is stuck in a loop, everything is put in place with the idea that all actions can be reinitialized. I hadn't made it so the day would reinitialize unless being caught by the guards trying to escape them. It was possible to go on forever and just continue past the hour I had decided would fit the end of the day. That now has been fixed; it's impossible to go past 16:00. I'll try and add to the forced ending of the day so that it varies depending on the situation (ideally, Sansa would have to assist to her father's execution several times unless the player has managed to escape the guards) but that will be for another update.
Since the game restarts regardless of your action, there was no "Game over". This is now changed; a number of factors (number of days spent, dying - which is not yet possible - or being caught by the guards) will influence Sansa's Sanity meter. Starting at 100, the number will go down unless she prays at the Godswood until Sansa becomes insane due to the repetition of the loop. There are several stages of Sanity, which have no other influence for now than to indicate how come to game over the player is. Maybe I'll consider adding specific actions available (or unavailable) depending on the Sanity level.
A few more dialogs options, nothing too fancy there.
The Father's Path is now available. The paths were mentionned in the introduction: Sansa can follow a god's advice to get her father to survive. The advices and clues to complete the game can be checked on in the Objectives menu.
Speaking of Menus, the Objective one also displays what is available in the inventory if the player found the bag. There is only one object that can be added there, but the structure is in place and will be important for future objectives in various Paths.
Finally, a brief mention for Ideas which should give clues to the player directly into the text as to some game mecanics, regardless of their Objectives.
Okay that was really a lot and I glossed over some details, but I think everything is in there now!
The day now restarts when 16:00 is reached
Introduction of a "Sanity meter"
Starting off at 100, numerous actions can lower the sanity. Praying at the Godswood can raise the Sanity level back to 100.
Introduction of a Game over
Depending on the Sanity level; once it reaches zero, the game automatically sends the player to the ending.
Added 1 dialog option for Ser Arys Oakheart
Added to Fara's dialog interactions
Introduction of 'Paths'
The Father's Path is available
The first objective of the Father's path is made available as well
Introduction of 'Objectives'
The 'Objective' menu is available
The first two 'objectives' are available and solvable
Introduction of 'Ideas'
A working Inventory system
A description of the objects in the inventory is now available in the Objective menu
Twine notes in Harlowe: Choosing names and pronouns
So, this was something really cool I ran across doing some research and I thought I’d share it. There are, of course, multiple languages you can write in for Twine. I’m doing Harlowe, as it’s most beginner-friendly and really seems to have everything I need. (One day, when I finish my Javascript/CSS studies, I may play with SugarCube or even Snowman but today is not that day XD)
Anyway, my current project is setting up what is basically a dating sim featuring one of my favorite romantics - Genesis. I am... roughly a fourth of the way through, if things go the way I think they will, so I’m only sharing the WIP with my betas but suffice to say I’m really excited.
And I wanted to share the coding for letting the player choose their own name (pretty easy to look up, but worth putting out there) as well as one way to set things up for choosing their own pronouns. Under the cut, because it’s long.
Choosing your name is actually a really simple command:
(set: $name to (prompt: "Enter your name:", ""))
You can change “enter your name” to whatever prompt you want - “choose your name” “what’s your name?” etc. And then after that, any time you want to put their name in, you just write $name. Example:
“Hello, $name!”
The coding for pronouns is much longer, because you have - minimum - he/him, she/her, and they/them. You could put anything you wanted, honestly, but those are the variants I went with.
First, you’ll want an opening code to let people choose, which looks something like this:
Before we begin... what are your pronouns? (link: "She/her")[(set: $gender to "f")(goto: "Name")]? (link: "He/him")[(set: $gender to "m")(goto: "Name")]? Or (link: "they/them")[(set: $gender to "t")(goto: "Name")]?
In the actual text, this will look like:
Before we begin... what are your pronouns? She/her? He/him? They/them?
That’s because “link:” is what prints the name of your link - whatever you put there is what is printed. $gender is your variable that you’re setting by clicking the printed words (which show up as a link, see below:)
As you can see, it’s a clear hotlink. The “goto” command is simply the name of the next passage, and could be changed to whatever you need. I simply used “name” because I did the name prompt in the next passage.
Before you get to the name, however, you’re going to want to put in the following (and here’s where it gets long)
EDIT: Variables are case sensitive, so $HeShe and $heshe are two different variables. Be careful!
{(if: $gender is "m")[
(set: $HeShe to "He")
(set: $HisHer to "His")
(set: $heshe to "he")
(set: $himher to "him")
(set: $hisher to "his")
(set: $himselfherself to "himself")
(set: $boygirl to "boy")
(set: $boysgirls to "boys")
(set: $manwoman to "man")
(set: $menwomen to "men")
(set: $guygirl to "guy")
(set: $guysgirls to "guys")
]
(if: $gender is "f")[
(set: $HeShe to "She")
(set: $HisHer to "Her")
(set: $heshe to "she")
(set: $himher to "her")
(set: $hisher to "her")
(set: $himselfherself to "herself")
(set: $boygirl to "girl")
(set: $boysgirls to "girls")
(set: $manwoman to "woman")
(set: $menwomen to "women")
(set: $guygirl to "girl")
(set: $guysgirls to "girls")
]
(if: $gender is "t")[
(set: $HeShe to "They")
(set: $HisHer to "Their")
(set: $heshe to "they")
(set: $himher to "them")
(set: $hisher to "their")
(set: $himselfherself to "themself")
(set: $boygirl to "person")
(set: $boysgirls to "people")
(set: $manwoman to "person")
(set: $menwomen to "people")
(set: $guygirl to "person")
(set: $guysgirls to "people")
]}
Now, you can add... well, anything to this. I know that because when I lifted the basic formula from this Reddit link, I went in and added nonbinary options. (Fair warning, it’s got some useful stuff but OP apparently did not believe nonbinary was an option at the time. Hopefully they’ve come around since that post.)
So, rehash. First add in the “choose your pronouns” code. Then, in the next passage add in what’s above, and - if you like - add in the name code. From that point, all you have to do is write the variables. So, in the code you’d have something that looked like this:
“Hello, $name! You are one lucky $boygirl!”
And if I had selected “LadyKF” as my name, and “she/her” as my pronouns, what I would see when playing the game would be:
“Hello, LadyKF! You are one lucky girl!”
Complex at first, I know, but once you get the hang of it, it’s really easy - and a great way to make things much more flexible for your players, if you want a player-insert vs having them play a specific character. Hope it helped!
I've got plans in where this is going, scenario-wise, but for now I'm still working on the structure.
(oh btw there'll be talk of game mecanics because if I can't shout about it in the tumblr void, then where can I?)
Twine is a wonderful program in that there's loads of stuff you can put in place. The majority of this stuff I cannot do because I'm no genius, but I still manage some. Case in point: dialogs.
The way you'd usually go about it for simple interactions in a twine game would be to create several passages with links between them. One response; one passage. This doesn't suit my needs though, because:
I want it all to hold in one passage
So I can organize the passages better
So I don't have to give the same dialogs options repeatedly over several passages when everything could be written down once.
The point of the game would be to revisit the same characters and observe how specific actions/questions will change their behavior towards you AND how acquiring new information gives you acces to new dialog options.
So, how the frick do you do that when there's no pre-made dialog box in Twine? You make it yourself! Is that the better answer? I don't know. Is this code the best? Probably not. Is it working? Well it looks like it does! Was there another way? Haven't found it, but if it's simpler I'd be happy to learn it!
I'll probably still change the dialog coding a bit (I’ve just found another issue with it very recently), but it's a start! Yay!
Here, have a (very short) sample of Fara’s dialog’s coding:
In some cases, an answer given by a character might prompt a second, sub-question. This sub-question will only be available directly after the character’s answer and disappear afterwards. (there are also sub-sub-question and so on).
The point was to try and emulate a real conversation as much as possible, and make it impossible for the player to explore all the dialog options in one day.
Fara’s dialog options are relatively simple, but normally more complex characters could change their answer to the player depending on their previous actions.
I’m also considering including question categories to gather, hide and reveal questions if it turns out there are too many at once and it becomes too much on one screen.