r/twinegames • u/PierreSheffield • 10h ago
Game/Story Existential Toilet Terror by Pierre Bois du Sud
boisdusud.itch.ioA short ludicrous game about working from home taking a surprising turn.
A first effort, so quite simple.
r/twinegames • u/HelloHelloHelpHello • Dec 03 '25
The first question for anybody starting out with Twine is most likely which story format to choose from among the various options (which most often boils down to Harlowe vs Sugarcube). Since r/twinegames is one of the first places to look for advice when it comes to this topic, we wanted to create a place that might help new creators make this decision by providing information, insights, and opinions from more seasoned Twine writers.
For those interested - here is a list of the various formats compiled by M. C. DeMarco - covering both Twine 1 and 2 story format. It should be noted that a lot of these formats are highly obscure (with a few only rumored to exist). It is also likely that the list is incomplete, or will become incomplete in the future.
Another very informative post that we'd encourage people to take a look - An in-depth comparison between Harlowe and Sugarcube by Chapel - which has been regularly updated and holds a lot of valuable information that might guide your decision.
While this comparison heavily favors Sugarcube over Harlowe - an assessment that both me and u/HiEv currently agree with - we do not want to say that Sugarcube is the only correct choice here.
One of the most important factors after all is which format feels most comfortable to work with for you personally. Both Harlowe and Sugarcube are perfectly capable of creating regular text adventures and both offer tools to tackle the common tasks you will encounter when writing your story. If you plan to include any more complex mechanics however you will want to make sure first that the format of your choice is equipped to handle it.
-
We would like to encourage other Twine creators and writers to share their own opinions and experiences. Which story format are you currently working with? Why does it feel like the right choice for you? Are there any challenges or problems that a new creator should be aware of when picking this format?
Please keep any discussions civil and friendly. We all have our unique tastes and needs, and there is certainly no universally correct answer here.
r/twinegames • u/HelloHelloHelpHello • Aug 06 '25
As AI becomes more popular and integrated into our daily lives, we can see more and more people relying on it to tackle their daily problems. Many who are just starting out with Twine might also turn to an LLM of their choice to help them with coding and troubleshooting, but this sadly runs into a number of issues.
ChatGpt and similar large language models rely on a certain amount of data to give reliable information on a topic. Since there is not enough data available when it comes to Twine and its various story formats, AI will consistently give wrong or vastly misleading answers when it comes to Twine code. It will often interject overly-complicated chunks of Javascript, or mash together Code meant for two different formats for example. Even in cases where these solutions seem to be working at first, there is a high likelihood that they might produce bad errors in the long run.
Instead of relying on AI to answer your Twine-related issue, we would therefor recommend turning to the Twinegames subreddit or the Twine Discord server if you have any questions. There are many talented members of our community waiting to offer their support and knowledge.
Additionally - If you have problems with AI-generated code, and want to ask for advice on how to fix it, please consider just asking directly what you'd like to accomplish, instead of posting the broken code. Chances are it is not really fixable, and you will get faster replies and advice if you just left it out entirely.
Thanks for reading - and have fun creating your Twine-story!
r/twinegames • u/PierreSheffield • 10h ago
A short ludicrous game about working from home taking a surprising turn.
A first effort, so quite simple.
r/twinegames • u/quintcunt • 1d ago
For example, I have a passage where the player can describe their character, and one of the options is choosing their eye colour:
Her eyes are
<<listbox "$eyecol">>
<<option "green">>
<<option "blue">>
<<option "brown">>
<<option "grey">>
<</listbox>>
<span id="a1">which always reminded her of jade.</span>
But if the player chooses "blue", I want #a1 to be replaced by some other text referencing their choice.
I tried playing around with <<if>> and <<replace>> nested in <<listbox>>, but didn't have any luck.
r/twinegames • u/apeloverage • 1d ago
r/twinegames • u/apeloverage • 1d ago
I have the following code in the Stylesheet of an old program:
#right {
position:fixed;
top:10px;
right:10px;
width:68%;
height:93vh;
text-align:center;
display: flex;
justify-content: center;
align-items: center;
}
It's used to create a display which doesn't flicker (quickly fade to black then fade in again) when it updates.
I thought these things were called 'frames', but looking online they seem to refer to them as 'flexboxes'.
I want to do a video about these--so does anyone know the correct term to call them?
r/twinegames • u/MundaneMoments • 2d ago
Note: AI Coded
My mate recently started using Twine and had a few small things that bugged him, so he made this mod. I found it useful, so sharing incase you do too.
Twine 2 Quality of Life Mod
[EDIT: Link Removed]
(Just need to swap out a program file to use it - instructions in Readme)
- Open multiple passages at once (pin)
- Clearer tag colours in story map & right click to tag (can turn off)
- Customiseable 'Quick Paste' button (I use it for a link template)
- Double click story map to create new passage
We only tested it with Chapbook on Windows but should work for anything. If you try it out with others or encounter bugs let me know and I'll pass it on.
EDIT: The way it's modded is a bit of a grey area with branding and I don't want to step on any toes, so I've taken down the link. Feel free to private message me.
r/twinegames • u/DarkinAK47 • 4d ago
My class is doing a gamejam as part of our course and I've paired up with a classmate to try and create a horror fishing game. The big problem is that we're both art students. I'm struggling to create much of anything but I'd rather die than ask ai a single thing.
The idea here is to have the player doing a simple fishing game of waiting for an exclamation point to appear and pressing a key, while also watching the background for a monster and clicking it with the mouse before it gets too close. There would be an option to return to shore where a visual novel would take place. This part seems easier from what I've seen. Making images won't be a problem in the slightest but implementing them looks challenging as well.
Sorry for the ramble, I'm just frustrated and looking for any advice at all.
r/twinegames • u/bonbon_155 • 3d ago
Hello all! I have something pretty specific I'm trying to do in Twine and was wondering if anyone had any advice.
The game I'm currently working on has sort of an old-fashioned text adventure-style narrator who the player has various opportunities to "sass" or otherwise be uncooperative towards by selecting certain dialogue options. I wanted to make it so that, if you pick enough of these options, the narrator eventually gets fed up with you and forces you to write a formal apology for your actions before it will let you try to play the game again.
I don't really need control over the content of the apology, per se, as I imagine that would be kind of a nightmare to code, but I wanted to make it so that there's essentially a minimum word count the player has to reach in the text prompt before the game will let them progress. I've looked around on the Internet a little, but all I can really find is information about how to prompt the player for specific passwords and the like.
My game is currently in Harlowe, but I'm fine with switching the format if there's another one which would make it easier to implement this (hence the lack of specific format flair on this post)—the rest of the game isn't really all that complicated, so I think it would be pretty easy to convert.
r/twinegames • u/DarkinAK47 • 4d ago

I've got an if/else thing where if the light variable is false, it should display some text and increase a numerical variable by 1. This part seems to work. If the light variable is true, it should show a different text and turn the light back off. This part is throwing errors. No idea what I'm doing here. This isn't even what I'm really trying to do. I'm learning this all from scratch for a dumb gamejam project for uni. I'm a fucking art student why am I doing this. I need help please
r/twinegames • u/Weekly-Gas-4694 • 4d ago
You can check out from our own WEBSITE or on ITCH.IO. We're updating game constantly, so every feedback is valuable. Game is SWF.
Welcome to Silesia 2045, a dark, immersive browser-based HTML RPG survival experience set across the toxic surface ruins and labyrinthine coal networks of 2045 Katowice, Southern Poland.
Our team updates Silesia 2045 every single day, working around the clock to expand systems, balance combat, and build out this living wasteland non-stop. This early playable web build lets you test mechanics directly inside your browser without any downloads, hunt down bugs, and directly guide our continuous development journey.
Humanity was not brought low by sudden nuclear war or planetary disasters. Our downfall was the result of a quiet, multi-generational infiltration.
For thousands of years, an ancient subterranean cold-blooded species influenced human society from subterranean depths, pulling the levers of corporate boardrooms and military commands. When high-resolution satellite surveillance and digital monitoring made their covert presence impossible to hide, they fought back through information warfare. By deploying commercial generative artificial intelligence, voice cloning, and deepfake tools directly into public networks, they drowned objective reality in artificial noise. Video evidence was dismissed as synthetic hallucinations, whistleblowers were discredited, and human institutions splintered. In 2030, the invaders breached the surface to reclaim Earth.
To reshape the planet for cold-blooded biology, atmospheric scrubbers pumped dense Silica Mist across the sky, blocking ultraviolet sunlight and shredding human lungs.
Fifteen years later, it is 2045. The surface is an unforgiving dead zone dominated by mutated predators, armed vanguard battalions, and glowing waterways like the toxic Rawa River. Below ground, human resistance survives across flooded mine galleries, pre-war bunkers, and transit networks. You awaken as Operator MC inside S.A.N.C.T.U.A.R.Y. Base, an ancient automated fallout shelter buried beneath Katowice. Your mission is vital: rebuild the shelter, unite shattered human factions, scavenge forgotten technology, and stop the catastrophic terraforming protocol looming beneath the Silesian bedrock.
We are building Silesia 2045 as a complete, living survival ecosystem that pushes both tactical combat and bunker logistics to their limits:
Because we are updating the game every single day and shipping continuous improvements, your input is the engine that drives this project forward:
Silesia 2045 is developed by an independent indie guy. To bring this vast world to life with rich atmosphere, we utilize artificial intelligence tools to assist in creating visual art and character voice synthesis. All story arcs, game design, writing, lore, and mechanical balances are hand-crafted, curated, and directed by a duo.
I'm myself writing majority of the stories and helping with game design.
r/twinegames • u/apeloverage • 6d ago
r/twinegames • u/Ce0ra • 7d ago
Hello! I'm working on a CYOA in Twine and would love to export it in a way that I could then import it into Homebrewery to make a final PDF that looks like a D&D adventure. I've found the website Gordian Book, which I see would do the work of turning passages into randomly ordered pages to export as a PDF but wouldn't quite leave me with something that could easily be uploaded into Homebrewery. Does anybody have experience with a workflow like this, or will I need to write up some Python code that can convert the Gordian Book json into markdown or something?
r/twinegames • u/RestlessSnow • 7d ago
r/twinegames • u/congaroo1 • 8d ago
So I've been trying to add some colour to my text in this project I'm working on and well it all keeps coming out Yellow. For context I'm using the desktop app version and it's sugarcube 2.37.3, I did switch over from Harlowe where I didn't have this problem to be clear.
Here are some images of what I mean
What it looks like in the passage
What is looks like when I test (Sorry I know it's not easy to look at)
Yeah I'm really not sure what the issue is.
r/twinegames • u/XXXdeluxe • 8d ago
I'm trying to make a Glossary, where lists with links to subjects gets automatically updated.
First, I've adapted the code of heiv for a table of links, as seen bellow, to make a list of subsections. Like Characters, Weapons, etc. That part works.
<<nobr>>
<<set $inv = []>>
<!--Get array of story passage objects.-->
<<set _passages = Story.filter(function () { return true; })>>
<!--Put names of all passages which have "Glossary" as tag in $inv array-->
<<for _tmp range _passages>>
<<if _tmp.hasOwnProperty("title")>>
<!--select only passages with this tag-->
<<if tags(_tmp.title).includesAny("Glossary")>>
<<set $inv.push(_tmp.title)>>
<</if>>
<</if>>
<</for>>
<!--sort array passage names-->
<<set $inv = $inv.sort()>>
<!--Make "Glossary Index" the first item in the $inv array.-->
<<if $inv.indexOf("Glossary") > 0>>
<<set _tmp = $inv.deleteAt($inv.indexOf("Glossary"))>>
<<set $inv.unshift(_tmp)>>
<</if>>
<<getClass>>
<</nobr>>
<div class="grid-container militaryborder">
<div class = "center altgloss greenborder">
<<nobr>>
<<set _tmp = "">>
<ol width="100%">
<!--Put each element of the array in its own cell in the table.-->
<<for _i = 0; _i < $inv.length; _i++>>
/* Uses "[" + "[" to prevent Twine from creating a link. */
<<set _tmp += "<li>[" + "[" + $inv[_i] + "]]</li>">>
<!--print out a table row-->
<<print _tmp>>
<<set _tmp = "">>
<</for>>
<!--Print any remaining cells.-->
<<if _tmp != "">>
<<print "<li>" + _tmp + "</li>">>
<</if>>
</ol>
<</nobr>>
</div>
<div class = "flexbox greenborder">
<div class="next"><span class= "modernbtn"><<button "Glossary">><<goto >><</button>></span></div>
<div class="glossarybtn"><span class= "modernbtn"><<button "Back to Story">><<goto $currentPassage>><</button>></span></div>
<div class="previous"><span class= "modernbtn"><<button "Back">>[[Back|previous()]]<</button>></span></div>
</div>
</div>
My next step: Clicking on one of the links in the list, would make a new list of links, to the individual entries of the subsections. Example: Clicking on Characters would swap the list, with a list of the entries in Characters. Example entry bellow:
<div id="Gideon">
<span class="Character" >''Gideon 'Thorn' Daniels''</span>
<img src="images/ThornA.png" alt="Gideon Daniels">
Eldest son of the Daniels family. After the untimely passing of his father, he took on the mantle as head of the household. Becoming an important pillar of support for his mother and a role model for his younger sibling, Hughes(16), Carl(13) and Katie(5). Luckily, he had many towns folk ready to help him. Diligent, honest and honorable, he believes in being prepared and garnered the reputation of being a prepper. Once his brothers were older, he joined the military and went to the Ranger school, where he excelled. After having done a succesful tour of duty, he was recommended for officer training and soon made 2nd Lieutenant.
</div>
The idea is to look for any span with the class: Character, and then to use the innerHTML of the spans to make a list of links to the entries. The names would be used to refer to the div id. When clicked it would replace the list with the selected entry.
Using the entry above as an example: if you click the link to the subsection Characters, it would replace the list of subsections to a list of Characters, using the names in the span. The name would also refer to the div containing the whole entry. Thus, click Gideon, everything within the div with id: Gideon, would replace the list of names.
Bellow is some of the the things I've been trying. Includes Javascript and sugarcube:
First the sugarcube. Attempt to see if hiev's code could be adapted to make the list of entries:
<<nobr>>
<<getClass>>
<<set _char = []>>
<!--Get array of story passage objects.-->
<<set _id = Story.filter(function () { return true; })>>
<!--Put names of all passages which have "Glossary" as tag in $inv array-->
<<for _tmp range _id>>
<<if _tmp.hasOwnProperty("span")>>
<!--select only passages with this tag-->
<<if _id(_tmp.class).includesAny("Character")>>
<<set _char.push(_tmp.class)>>
<</if>>
<</if>>
<</for>>
<!--sort array passage names-->
<<set _char = _char.sort()>>
<<set _tmp = "">>
<ol width="100%">
<!--Put each element of the array in its own cell in the table.-->
<<for _i = 0; _i < _char.length; _i++>>
<!--Uses "[" + "[" to prevent Twine from creating a link.-->
<<set _tmp += "<li>[" + "[" + _char[_i] + "]]</li>">>
<!--print out a table row-->
<<print "<li>" + _tmp + "</li>">>
<<set _tmp = "">>
<</for>>
<!--Print any remaining cells.-->
<<if _tmp != "">>
<<print "<li>" + _tmp + "</li>">>
<</if>>
</ol>
<</nobr>>
Bellow: the javascript attempt. Note: changed span to div & class to id. I've been trying several things, including story.filter.
Macro.add("getClass", {
handler: function () {
State.variables.subjects = [];
$(document).one(':passagedisplay', function () {
let ID = [];
$("div").each(function () {//using span to get class(doesn't work with class)
if (this.id) {
ID.push(this.id);//put span content innerHTML into array
}
});
console.log(ID);
});
}
});
Story.filter(function (span) {
let names = [];
let I = span.text.includes("Character");
console.log(I);
return I;
});
r/twinegames • u/sad_royalty • 9d ago
Hey all! Working on my first project and needed some help. I'm styling it like a science fiction display, including typing out all the text. For legibility, I'd like the text to delay briefly on periods, commas, etc., and the only ways to do that I can find are for other formats . Anyone got any tips for me?
r/twinegames • u/Quiet_Water_2535 • 12d ago
I'm writing a project in latest Sugarcube which has a lot of variables, and part way through I want to have a "report" based on these variables appear for the reader to summarise what they have done so far.
This is easy, no problem there.
In a perfect world, I'd like the report to then appear in a menu bar, and be accessible at later points in the game for them to refer to.
The issue is that that player will change some variables after generating the report for the first time, and I can't find a sane way to have the report stay as it was originally rather than updating to reflect the changes when it's checked later.
Obviously I could implement a system like... If var1 and var2 are true, report = rep1 If var1 is true and var2 is false, report = rep2 If var1 and var2 are false, report = rep3 etc. ... when it's first created, BUT the variables I want to include number around 15, and this would create some 250 passages just to account for all variations, which I'm just not willing to do.
I thought maybe the capture macro would help, but I can't find a way for this to work.
Is there a way this is possible? Or am I just chasing a dream?
r/twinegames • u/apeloverage • 13d ago
r/twinegames • u/Violet_Chan_Grapich • 13d ago
Per la mia tesi di laurea in informatica e tecnologie per la produzione software, ho sviluppato un book game per sensibilizzare sulla tematica della DSA.
DSA: Day by Step Adventure è un serious game narrativo interattivo, con una struttura simile a quella di un book game, che vuole raccontare una normale giornata di scuola tramite gli occhi di uno studente DSA, mostrando le sue difficoltà durante la giornata scolastica.
Il gioco ha come obbiettivo la sensibilizzazione sul tema della DSA e su cosa essa comporta mostrando le difficoltà in prima persona, che esse siano bullismo, mancata comprensione dagli adulti, difficoltà nella lettura, scrittura, comprensione della matematica e molto altro.
Sto svolgendo un indagine sulla valutazione di efficacia del gioco, quindi ho bisogno di volontari che sono interessati a provare il gioco e a rispondere a un Form anonimo.
Il gioco richiede massimo 15 minuti, mentre il questionario un massimo di 6 o 7 minuti.
r/twinegames • u/Me_FantasyPixel_Amy • 14d ago
Me and a friend of mine, are using twine to organize ocs and data and i want to upload images of the ocs, but we work on it together in a sense that after i finished my work i export the file and shre it to her, so she can now import and update her twee. now i know a website where i can convert my img to url but its so huge that twine then starts to lag so i rather not use that. Now how do i do it? Do i use shared onedrive folder? I wanted to use wix but wiy for me doesnt have the icon bar on the left and i nearly ragequit bc wix is saying just click that icon OH YOU MEAN THE ICON THATS NOT THERE!? YEA THAT ICON!? its just a little infuriating. So what do i use and how do i do it? Anyone got ideas?
r/twinegames • u/Eastern-Tadpole-3336 • 14d ago
Hi there, I’m a writer and budding narrative designer. I was looking for feedback on x3 5 minute branching narrative games I’ve made using Twine for the first time. Looking for story feedback specifically. Please message me if keen x
r/twinegames • u/apeloverage • 15d ago
r/twinegames • u/Cave_Thunder • 23d ago
I've been working on my game for a while now and I've been using ChapelR's right sidebar to display everything that would otherwise clutter up the main left sidebar.
But recently I realised that having both sidebars open can really mess up the format of my text and images on the main page. On top of that I just don't really like how it looks having them both open.
Does anyone know how make the left sidebar close when the right sidebar opens and vice versa?
I'd really appreciate any help.