csgt
csgt
Choicescript Game Tools Dev Blog
20 posts
Previously named DashingdonSnoop (hence the PFP) Developer: Lauren W. (@thesoulofthebeautiful) Get the extension: https://addons.mozilla.org/en-US/firefox/addon/cs-game-tools/
Don't wanna be here? Send us removal request.
csgt 4 months ago
Note
I'm sorry if you've been asked this before but why specifically Firefox?
And to that effect, have you considered porting your extension to us plebian Chrome users?
I don't believe it's come up before so no worries! There's a very simple reason: Firefox is the browser I use 馃構. There are technical reasons as well though, the process for creating and publishing chrome extensions is a lot more difficult and annoying, but I do plan to have at least experimental support for chrome at some point.
0 notes
csgt 2 years ago
Text
Hi folks, it's been a rough few months but I am getting ready to release the next version of CSGT! As mentoined I had a bunch of life stuff going on, but additionally one of the primary things I've been working on is switching the Node packager that I use (from browserify to webpack). However I am C/C++/Python kinda gal, not a Node developer and managed to get myself extremely confused and tangled within that. That said, I have made my way through it, and I now get to reap the benefits in massively simplified code, as well as using another extension to almost double the compression of the save data!
Visually, I've reorganized the menus for managing saves, so those should hopefully be easier to use. I had one question though about whether people actually use the functionality that synchronizes saves across computers. It seems like a nice feature to keep for me, but the actual amount of storage that's available is tiny (100 KB to be precise). Most games use between 2-4 KB, which seemed reasonable to me for a while, but while testing I discovered that some games (e.g. Royal Affairs, which you should all play if you haven't) use significantly more (20 KB before the new compression, 10 KB after). So I'm curious if anyone actually uses the sync capability / if it's worth me maintaining.
Let me know!
9 notes View notes
csgt 2 years ago
Note
I'm so looking forward to all of the upcoming and potential sapphic ifs including the lady knights one by @mondaysandwich. 馃憖
I would personally love to create a slice of life IF about voice actors, but idk if I could make it work lol.
Me too fr !! 馃
I love the sound of Monday鈥檚 Lady Knight IF and I鈥檓 down bad for all the lovely ladies/enbys 馃憖
Ooo, wait I think that could be really interesting actually !! I remember an IF where the MC and ROs were radio show hosts, but I think it鈥檚 either inactive or was deleted unfortunately, but it looked really interesting so I think the voice actor IF would definitely be doable if you were up for it 馃憖 I have also seen several people calling out for more slice of life IFs!
For those who want some sapphic IF recs (obviously these are just the ones I know of):
Lady Knight IF by @mondaysandwich
A Life Supreme by @lifesupreme-if
Her Crimson Clutches by @thathexwolf
Juliet & Cinderella by @julietandcinderella-if
Chasing the Fall by @chasingthefall-interactive
WLW games list by @interact-if
88 notes View notes
csgt 2 years ago
Text
Tumblr media
Apartment 502 is a 18+ slice-of-life romantic drama inspired by shows like New Girl and Friends.
Content warnings include: explicit language, sexual themes, substance use, violence.
Moving from your small home town to New York City was supposed to be a dream. You were supposed to start your new life with your long-distance partner and dive headfirst into full-on adulthood. Everything was supposed to be perfect. How can you not love being in your mid-twenties in the Big Apple?
That is until your put-together, white collar partner dumps you the same day you arrive.
Fun.
Essentially homeless and and determined to make the life you dreamed of, you take a last-minute offer to move into the spare bedroom in Apartment 502. Now, you're twenty-five and living with three other longtime best friends with their own drama and messy interpersonal relationships. Parties, late-night pizza runs, drama, fights, heartbreak, betrayals...maybe the life you want won't be as easy as you first thought.
Will you find romance in the city that never sleeps?
**Apartment 502 is a romance, angst, and drama-centered story **
Tumblr media
design your mc from clothing style to appearance to pronouns, gender identity, name, looks, and more.
choose 1 of 5 jobs that grant you different scenes and different people: (artist/musician, news anchor, writer, teacher, bartender )
curate your MCs personality and how they react to all the hijinks Apt. 502 has to offer, especially the drama that ensues. Style your MC's room and their aesthetic style.
navigate angsty and dark dramas that weave your roommates in a a narrative that can either save their friendship, or break them apart.
engage in a romance with 1 of 6 characters: one of your roommates, your ex, your neighbor or work rival.
Ruin relationships or mend them. Center yourself around the roommates and become part of the core group.
Follow Apartment 502 throughtout MC's first year as a roommate: from holidays, to birthdays, to everything in-between.
Tumblr media
Atlas/Athena [f/m] - 1 of 3 roommates. A is the elusive and isolated musician who makes a living writing songs for others and doing gigs down at the local bar. A is quiet, nonchalant, and prefers their isolation. After getting their heart broken by their high school sweetheart, A has swore off love and vowed to focus solely on their career. A has no room for love, and they make it clear.
Appearance: Olive, freckled skin. Atlas has shaggy brown hair that falls in front of their eyes in a wolf-cut with bleached white dyed pieces at the bottom. Athena's brown and white hair falls down her back with black, straight-cut blunt bangs. They usually wear all black and have a variety of piercings.
Cal/Calliope [f/m] - 1 of 3 roommates. Cal is the ultra nice, slightly uptight, easily flustered college professor who is currently dating their longtime partner...that everyone seems to hate. Cal seems very in love with them and is oblivious to their best friends' irritation, but is that all a ruse?
Appearance: Cal has golden blonde hair. Cal's hair is curly fluffy while Calliope's falls down in soft ringlets around her face. Pale skin and green eyes. C dresses down, wearing basic clothes like button-downs and plain dresses.
Levi/Lani [f/m] - 1 of 3 roommates. L is boisterous, arrogant, and the comedian of the group. L makes their money as an influencer and uses their abundance of free time to pick up all kinds of people. L doesn't believe anyone can get them to settle down, especially considering they've never been in love..nor believe it exists.
Note: you can only romance L by starting a purely physical relationship first.
Appearance: Russet brown skin and long black hair that falls down their back and tied in a messy bun. L usually wears a white, billowy button down tucked into black slacks with an abundance of rings.
Garrett/Gaia [f/m] - Your neighbor. G is friendly but distant, always looking down at their phone when they see you. They seem disinterested in the happenings of Apartment 502. You can't help but wonder more about them...and their young child.
Appearance: Brown skin and curly black hair. G usually has headphones on, and Garett's hair is cut into a curly undercut while Gaia's is primed in a slick bun. They're usually dressed in a pristine black turtle neck and matching black pants.
Rainn [f/m] - your perfect, financially-stable lawyer ex. You thought what you and Rainn had was special, until they abruptly dump you the same day you were set to move in. The worst part? They live in the same building.
Oddly enough, Rainn doesn't seem to be acting like someone who should be completely moved on...
Appearance: Rain either has a severe black bob or black slicked back hair and usually seen in a pantsuit or business-casual clothes. They have tan skin and bright blue eyes.
Mason/Mona [f/m]- your old college best friend turned rival...who is now your co-worker. What are the chances you two ended up in the same place? M seems to have a lot of fun making things harder for you at your new job, especially considering you guys are competing for the affection of your boss. Tch.
Appearance: Long or short dyed dark white hair and tan skin with bright brown eyes. (Mason's outfit is dependent on job of choice.)
DEMO TBA
3K notes View notes
csgt 2 years ago
Note
hello there, do I have to play online in order for the add-on to work? would you be able to add a feature so that even if I run the game locally it would work? and thanks for all your hard work. :)
Hi there! Thank you so much for your interest in CSGT, I'm always glad people appreciate it :)
So I can say that it works for locally *hosted* games (i.e. if you're developing a game), but I haven't tested on downloaded games. There's no real reason why it can't do that though, if it doesn't work then it's simply a filter in the manifest that is causing issues. Please do try it out though and let me know if you encounter any issues!
1 note View note
csgt 2 years ago
Note
Thank you very much for the shoutout! I know I've been a bit inactive as of late but CSGT is still alive, I'm hoping to release the next version today or tomorrow!
If anyone hasn't read @allieebobo's fantastic work you absolutely should! College Tennis: Origin Story is one of my favourite IFs, and while it's been a while since I last read Merry Crisis I was equally enamoured with it, so you should check both of those out when you have a chance!
i've been having an itch to write an if game, do you have any tips? i feel like its a very bad idea to jump straight in head first yk?
Ahh! First off, that's so exciting, congrats!!! I'd say actually that jumping straight in head-first was what I did! I'd say it wasn't a bad decision xD I'm a big believer that a shitty first draft is a lot better than a perfect story that never gets written :)
Best of luck and have fun! I can't wait to read whatever you come up with :) Starting a new project (at least for me) always gives me such an endorphin rush. More practical advice under the cut.
Planning
Instead of just writing what you know, I'd say, write what you care about. It'll shine through in the writing :)
Coming up with a more bounded concept/premise helps to make the IF a little less 'unwieldy' to write, and you can always expand on it and branch out from the main (tight) skeleton鈥攅.g. I love both my IFs but gotta say, Merry Crisis is a hell of a lot easier to plan.
On plot: Decide what the theme and main journey/narrative arc will be. What is the central goal of your MC, and what will they go through along the way? Who's invested (or opposed) to this?
On characters: I like thinking about how their experiences and background have shaped their personality, worldview, dreams, desires, and fears. Thinking of them as folks who have their own paths that happen to coincide with MC's helps me come up with the main emotional 'beats' of the IF.
Writing
I don't plan much before I write, but I do sketch out the main 'landmarks'/major moments (see above) and work around those. They're stepping stones that help me to thread the rest of the story tgt.
I tend to write the skeleton of the code first, then fill it in with words. I find the code gives me some structure鈥攁nd as for the writing, I sorta just improvise/fill in words on the fly. It also allows me to come back certain scenes that I'm not 'inspired' to write at the moment.
Writing down good lines that occur to me in the middle of the day really helps. A good playlist also helps set the mood :P
And finally, if the words ain't flowing, I usually don't sweat it. Usually I pivot to doing something else, like planning, or reading, or coding, or fixing bugs/editing, or answering asks on Tumblr, or just doing something else completely!
Coding
If you're using twine, a useful starting point is @manonamora-if 's insanely useful collection of twine resources, and her equally amazing twine guide!
If you're using choicescript, this basic tutorial is a good place to start. Yi Weng's videos are nice as well. For testing, check out @csgt's mozilla extension (randomtest and quicktest are crucial as well.)
Beta-testers are also an invaluable way to get extra eyes on your work, especially when the IF starts getting too long.
Other things: I highly recommend checking out @interact-if and @writingwithcolor鈥攖hey usually share useful resources for writing.
41 notes View notes
csgt 2 years ago
Text
Recorded a quick video showing how to get CSGT working on Android:
youtube
I realized I forgot to actually show the installation, but in that last menu if it's not yet installed there will be a small plus on the right side, tap that to install.
2 notes View notes
csgt 2 years ago
Text
Spent a bunch of time revamping the save system, in the next version authors will be able to instruct CSGT to save a checkpoint. I've also added the ability to disable the animations, although I think there may still be some issues with that. Last thing I'm trying to do before releasing the next version is implement a stat editor in CSGT, which is slightly trickier than it sounds
1 note View note
csgt 2 years ago
Note
Hello! I had a question about CSGT, sorry for bugging you on your regular blog. Anyway, I haven't found a way to sideload it yet, but if I did do you think it theoretically might work with Firefox for Android? Assuming that if I managed it, it would still be totally unsupported and might blow up my browser, etc etc.
Hey! No worries, didn't realize that I didn't have anon enabled on the other one! I'm going to copy what I said about Android builds from the forum thread:
So funny story, it does actually support Android currently (that鈥檚 where I primarily use it actually), but Mozilla has some stupid rules around add-ons for Android. Namely, there鈥檚 a very very limited whitelist of addons that you can install on the basic Firefox for Android. However, on Firefox Nightly and Firefox for Android Beta you can install it using a custom collection, and they describe the process here. A quick summary of that process (assuming you鈥檝e installed Firefox Nightly / Beta):
Create a collection with whatever extensions you would like on Firefox for Android Beta
Note the number and name in the collection URL
In Firefox Nightly / Beta, go to Custom Add-on collection and input the number and name.
Your extensions should now be installed!
It鈥檚 a major pain in the ass, but unfortunately it鈥檚 totally out of my hands. I have added some specific support for mobile, but it鈥檚 pretty much just enough to get it working as until Mozilla changes their policies my hands are pretty much tied. Also note that cross-browser syncing doesn鈥檛 work on mobile (again Mozilla), but it does work between games on the same browser. So for example if you made a save for TWC 2 on mobile, you could import that into TWC 3 (or the demo!) on mobile.
3 notes View notes
csgt 2 years ago
Text
I鈥檝e just published the newest version 1.6.0! It should update automatically soon after it goes live. As mentioned, the QuotaExceeded error has been entirely resolved by switching to use IndexedDB. Additionally, you can now make, load, and import custom saves from any game (casually adding saves to games published via CoG), although the interface kinda sucks right now so I think I鈥檒l probably revisit that in the near future. I've also added an interface to manage (delete) any saves you don't want.
I had said that the compression rate was increased, but I discovered within the last couple of hours that the library I was using had a pretty severe memory leak. I wanted to put out what I had so y鈥檃ll can start playing around with that, and I can continue running my head into this particular wall some other day.
Please let me know if you encounter any bugs! I would also love feedback if there鈥檚 other features that you would find useful.
4 notes View notes
csgt 2 years ago
Text
The next version of CSGT will switch from using localStorage to store data persistently to using IndexedDB. This will completely prevent the QuotaExceeded errors you may have seen when playing some games, and may also allow me to persist your history (instead of it beirg lost between sessions). This is supported on all major browsers, but what it means is that if you play a game using CSGT, then attempt to play it on the same browser without CSGT, the previous data will not be used (this is only applicable to games on choiceofgames.com).
1 note View note
csgt 2 years ago
Text
Next update will include:
save data management, including deleting saves and making custom saves for loading into other games
increased compression on save data to preempt running out of storage in CSGT
use of increased compression in the localStorage store to hopefully prevent quota exceeded errors (I don't know if anybody but me has run into that but it's super annoying)
You can probably expect the next update this weekend! Also feel free to request any features that you think would be useful.
4 notes View notes
csgt 2 years ago
Text
One of the next big things I'd like to work on is delta-encoding the history, compressed using LZString (interestingly both of those are done in Twine!). That would make the total space needed by the history significantly smaller, possibly small enough to be saved in the storage of CSGT itself rather than in volatile memory.
1 note View note
csgt 2 years ago
Text
Choicescript Game Tools
An updated post about CSGT for this blog!
Features:
Variable change notifications
Autosave and restore on Dashingdon / moody.ink / locally-hosted games
A back button
In-browser code view (if you open it when any text is highlighted, the code which generated that text will be highlighted and centered in the code viewer)
CSS improvements
Transfer save data between games (for easy sequels pre-publishing)
I am one developer with a day job, so unfortunately the amount of time I can put into this is limited, but I'm always open to feature requests and try to be responsive about bug reports!
See also the topic on the CoG forum (https://forum.choiceofgames.com/t/csgt-back-button-save-syncing-variable-notifications-extension-for-firefox/133937) and the GitHub page (https://github.com/lawruble13/cs-game-tools).
55 notes View notes
csgt 2 years ago
Note
Don't worry, it's not just authors who post regularly on the forums. They appreciate getting comments from readers, and there are a few programmers who have made save tools and posted about them there. But there's plenty of people who lurk too, so if that's your preference it's fine as well.
Here's a link to some recent posts about savegames (and potential plans from CoG; the tldr is that they currently have no plans to officially implement them):
forum (.) choiceofgames (.) com/t/consolidated-saves-in-choice-of-games-and-hosted-games-thread/33373/158
Thanks for the assurance! I have now made a topic on the CoG forum (https://forum.choiceofgames.com/t/csgt-back-button-save-syncing-variable-notifications-extension-for-firefox/133937 for those interested), I have no idea how interaction works over there but we'll see!
The latest version also has (let's call it alpha) support for moody.ink and locally-hosted builds, as requested! Offline builds that aren't locally-hosted (e.g. using the file directly) might work but honestly I didn't test them too thoroughly.
4 notes View notes
csgt 2 years ago
Note
Hi! Thanks a lot for making CSGT, it works great and it's what I've always wanted to have in CS games (the back button especially). Wanted to ask, do you happen to have an account on the Choice of Games forum? There's been a discussion on having savegames as a feature and I think many people there would appreciate your tool.
And will you add support for moody.ink? It's an updated version of dashingdon by the same site creator. It would be great to have support for locally hosted/offline games too (if that's feasible).
Hope that isn't too much to ask. Thanks again for making the plugin! 鉁岋笍鉂わ笍
Hi, thank you so much for sending this ask! It's really nice to know that the work I've put in is appreciated 馃槉
I do have an account on the CoG forum, although I don't spend much time there (always felt a little intimidating as I'm not an author per se). I probably should though, is there a particular thread where that discussion is happening?
I'd never heard of moody.ink, that's pretty cool! Thankfully it seems like it should be pretty straightforward for me to add support for it, so I'll be looking into that over the next couple of days. As for locally hosted/offline games, it's a bit trickier, but if it's a desired feature I'd be happy to look into it!
Absolutely not too much to ask, and thanks again for sending this in! 鉂わ笍鉂わ笍
2 notes View notes
csgt 2 years ago
Text
I feel so bad for the people who followed me for CSGT updates and actually got my constant stream of nonsense 馃槄
anyway brief status update
I am still working on it daily, however I'm currently in the process of overhauling and porting it to TypeScript so I can make use of webpack and such to include some more useful modules so I can do things like entirely rewrite how it stores persistent data (did you know that it's using a JS library that's been deprecated for 13 years??).
The reasoning for this is that I went to play the Golden Rose but it went to cache the paid level data and overflowed my localStorage quota, so I wanted to change what it uses to support more data. Additionally I'd like to change how it stores data to be a delta coding, which makes a lot of things more complicated but massively reduces the memory usage of the CSGT history, which means that I can probably also persist the autosave data!
plus there'll be like a few simple fixes
I also did release a version with much better mobile styling support, so if you're interested check that out and lmk what you think!
2 notes View notes