[CSIDE] The ChoiceScript IDE (v1.3.3 Now Available — 05/09/2022)

If I had two wishes, the first thing I’d wish for is having access to this back when I was attempting to write Jewel in the East. The second is for a version that’s fully accessible on mobile.


Hi CJW! Thanks for the totally awesome program. I used to write in Notepad++ and while it wasn’t too bad, CSIDE is a definite improvement that I will be using permanently from here on-out.

I had an issue I’d like to report (sorry for not reporting it on GitHub but I can’t be bothered with trying to make an account on there at the moment lol). I encountered some issues with indentation once when I opened the program. CSIDE said that there were some spaces detected in my game (I use tabs) and asked if I wanted to correct them. I clicked yes, and then, as I went through my game, I noticed that my indentation was messed up entirely. This is essentially what happened:

blah blah stuff stuff
     #choice begins here at this indentation
     but then the text under the choice was at the wrong indentation

That’s about the best I can visualize this. I have a lot of choices nesting within some of my options and a lot of *if/*else statements, and all of that indentation was reduced. I had to completely re-indent everything. Not sure if this was an issue with the way I was indenting (I had some initial confusion because the default setting is spaces and I didn’t know that) or if it was a program issue but I felt that it should be reported.

Also, it’d be awesome to have a variable library that saves variables made with the *create command and lets you autofill variable names when you type *set. But that’s just something to think about :slight_smile: Thanks for the great program!


Hi trevers! I’m very glad to hear you’re enjoying CSIDE, and thank you for reporting the issue. I appreciate it’s lot of effort to submit to Github, posting is here is absolutely fine, just give us a nudge if no one responds to it (it’ll never be intentional), and we’ll eventually add it ourselves if we think it’s worth doing so.

You’re not the first and I doubt you’ll be the last to fall afoul of this… I implemented this check to give you a simple slap on the wrist if you had started to use four tabs, instead of four spaces, or vice versa. Anything more complicated than that will indeed cause CSIDE to create a real mess (and that’s why it was always optional, not automatic). “Fixing” this would require a much more complicated system that actually crawls through and tries to decide what your real intentions are, based on previous lines, but even this isn’t fool proof - no one is going to know exactly what indentation you intended (except you!). For the time being, I’m actually getting very tempted to turn this feature off, as it seems to be causing a lot more harm than good. Would anyone have any objections? An alternative would be to throw up a simple message, maybe list some culprit lines, without actually offering to fix it for you.

On the bright side, I have recently made a change to how visible tabs (and now spaces!) render, so that any combination of spaces+tabs won’t actually fill in correctly, making it a lot easier to spot and fix cases of mixed indentation manually.

Note the half complete lines (I’d be tempted to colour them differently as well):


This seems to be a hot topic at any rate, so I’m very keen to invite discussion on this. The only thing I will say is that rewriting a better auto-indentation detector is probably not going to end up high on my TODO list.


Thank you for the clarification! I think a warning message and culprit lines would be phenomenal to help fix those issues.

As for the indentation marking, I think the current version of it is sufficient! The issue I notice with the lines is that the dotted lines seem to be below the text on the line as opposed to next to it or in the center of it. For me, this would get super confusing. I imagine people with dyslexia might also encounter problems with a ton of lines. But it could possibly work! :slight_smile:


First of all just wanted to say many thanks @CJW for this awesome tool! I switched to using it on desktop and it is enormously helpful.

Question: I tried using the online version on my phone (Android) but can’t get it to work (can create projects but then can’t find them.) Is this just me, or is it because CSide is not yet mobile-friendly?

Thanks again for all your hard work so the rest of us can write quicker & better! :slight_smile:


Would you prefer vertical lines? I can probably make that an option, and will also look into moving the lines a bit higher.

Thank you for your feedback LadyCass, I’m really glad to hear it!

Opening a pre-existing project should work OK. Try creating one locally, then opening it via the web ui.
Phone support is really poor in terms of the UI, but it should be functionally sound.

I have been having no end of trouble with the web version since Dropbox shifted to its v2 API. Even on browsers it doesn’t seem to work properly half the time. When I get a spare weekend I’m hoping to replace the Dropbox dependency with @dashingdon support (or at least add this as the new default). I’m not sure how much work this will entail though.

I’m really sorry I don’t have a better answer than that right now, I’ve been nothing but disappointed with a lot of changes made to Dropbox over the past couple of years.


Let me know if I can do anything to help from my end with dashingdon.com. I’d be happy to tailor the API to your system requirements whenever I have some spare time.


Look at that community support!

*achieve amazing_person

My thanks to both @dashingdon and @CJW for your help. You’ve been invaluable. This is where I say that… Apparently.


Wholeheartedly agree. CSIDE and Dashingdon have both been invaluable in helping a first-timer create and make public his work, respectively.


@CJW, aa, exciting development update!

Would it be worth making the ‘loading, do not close CSIDE’ window during updates the same yellow warning colour as was previously used for notifying of development updates? Seems to make sense to make all the ‘alert!’ pop-ups that same nice yellow.

Also—development version too—is the Changelog meant to have a yellow background, or something like this, for development version updates, now that the app doesn’t shriek ‘development version!’ at you every time you start it? (Which I appreciate very much; thank you.) I seem to remember that being suggested at some point.

I’m excited to tinker. :D

Edit: We should probably change the Help section to reflect the new customisable code editor window, I’m thinking? And take out bits like:

It is not possible to change the highlighting colours used, but they do vary according to the Dark, Light, or Dichromatic Code Editor themes (selectable in Settings).

Since now it is. Glory. :D

And add really thorough instructions, I’m thinking…and maybe even some sort of help for people not used to making custom style sheets, which could talk about types of colour indicators and maybe links to guides with useful charts? I know that’s a bit above and beyond the most specific reading of CSIDE’s Help scope, and some of it is spelled out a bit in the custom code project, but a thorough review would certainly be helpful, at least to me. I know I’ll have to sit with Google for a bit, myself, and figure it all out…

Happy to help with any potential new section of help docs (although I’m probably not the best for the rough draft), and/or edit them, as always!

Also: Would it be useful if I at some point go through the new features and either make sure Help is up to date, or that we have a few versions of Help according to the latest stable/new version?

(Also also, ‘Here be bad speeling’, ha. XD)

And should example projects have a suggested project name that’s the same as the title? I just noticed the title field was blank when I downloaded the custom theme project, and that surprised me a bit. I was expecting a title that matched its title in the example projects list.

1 Like

Update: v1.2.0 - 18/12/2017 on Development Channel

Feature release including custom themes, code folding and selection matching, a handful of bug fixes and some minor behaviour tweaks.


  • Code folding/collapsing
  • Example projects are now runnable
  • Selection matching (highlights other instances of selected text)
  • Custom theme scripting (and matching example project)
  • Spellcheck now supports including/excluding of command lines
  • Visible indentation support for spaces
  • New shortcut combos for
    • Delete line
    • Duplicate line
    • Toggle block comment


  • ‘Insert double line break’ menu option now respects indentation
  • Fixed a file path issue on attempts to open a project folder
  • Made some changes to mitigate a possible ui/locking bug with project controls
  • Misspelled words next to speech marks are now detected correctly


  • Updated internal copy of ChoiceScript to Github commit
  • ‘Untitled_X’ scenes are now generated with fully lowercase names
  • Numerous changes to spellcheck and indentation syntax implementation
  • Editor history delay has been drastically reduced which should result in smaller/more precise undo steps
  • Updates:
    • Development channel warning removed
    • Name of update channel now appears in the update title
    • Development updates are now coloured in yellow
    • Update channel setting now has a description


  • The mixed scene indentation test performed on newly opened files has been disabled
  • The additional temporary editor themes have been removed (in light of custom theme support)
    • Only the Light, Dark and Dichromatic themes will be supported going forward
    • Users who’s config points to removed themes will be set back to the Light theme

In addition, both the stable and latest channels have been updated to v1.1.2.


v1.2.0 - Known Bugs (It is a Development version!)

  • Custom themes don’t persist across sessions (you’ll need to re-run the scripts for the moment)
  • Speech marks next to words are being caught as misspellings
1 Like

You are God.

The way we currently work is that a sufficiently stable development version eventually becomes stable, latest… Etc. So I think a lot of these changes wouldn’t make sense.

Ideally we’d actually have “stable” and “development” branches, that features were cherry picked and combined from. That’s difficult to do with me relying so heavily on you guys for user testing. In an ideal world we’d have confidence from automated tests to help with this, but alas, it wasn’t something I thought about when I started developing CSIDE.

For the documentation, I agree there’s a few bits that could do with tweaking, and a specific page wouldn’t hurt (and if anyone would like to handle this it would be a fantastic help - otherwise I’ll eventually get round to it when I can).

Same goes for other new features.

That said, I feel the example project is pretty comprehensive, and lists enough examples… If you really feel it is not, then please let me know where you think it falls short.

The title should not be blank, I will look into that.

I’m not sure if this has been asked, but are there any plans for possibly creating a ChoiceScript iOS app sometime down the road? I’m mostly on my iPad Pro lately, and it is suitable laptop replacement for me except for one crucial issue: the CSIDE web app just doesn’t work as it should. Whenever I try to use it with my external keyboard, it doubles each keystroke — two spaces when I pressed the key once, two backspaces, two H’s, etc. It doesn’t do that with the onscreen keyboard, but no way would I want to write with that. An iOS app would solve that completely, but I’m sure I’m very much one of the only people who would use it so I’d understand if there are no plans to create one.

But on the subject of the CSIDE web app, thank you so much for it. It has made working on my projects soooo much easier since it’s done through Dropbox and I don’t need to download the ChoiceScript files. I mainly use a Chromebook to write, so I can’t download the files to run ChoiceScript on my computer, and then I have a proper PC I also write on. The web app has made it so easy to write on multiple devices, especially when one can’t run the files like a normal computer.


The code folding makes a huge difference for keeping track of scenes as they get longer.

I’m tinkering with the custom editor to find something that I like, and I’ve noticed two areas we can’t change – the color of the cursor and the sidebar with line numbers. Both are set at what seem to be light theme defaults – the cursor is black and the side is white. It’s a bit annoying with a dark theme, especially when turning the background black makes my cursor disappear!


Ah, one other thing: I went and updated the CSIDE program on my desktop to see the code folding because that sounds wonderful, and it is, but I wish you could fold *labels as well as *choices and other commands.


@CJW ily so much I can’t even sdfgsjgdff https://youtu.be/TGWVr3nIV0s?t=3m38s


Fangirling is over now. I’ll get back to work. This is a professional environment.

Could it be done? Yes. Is it worth doing doing? Quite possibly. Do I have the time to do it? Not really. The best I can promise is to maybe, eventually, get around to improving the mobile accessibility of the web version. Even if I had the time to develop the additional versions, I definitely wouldn’t have the time to properly test them (I don’t even own an iPhone or iPad). There are so many things like this that I would love to do, but simply can’t divert enough attention to. This is where I would really, really love to see another programmer or two jump in and lend a hand, hint, hint, if there are any of you lurking out there! :wink:

I’m afraid this is nigh on impossible. Labels do not have an obvious end like choices. Sure some people make use of *gosubs and returns, but many others don’t. There is no guaranteed way to know how much code needs to be collapsed. If someone can come up with one, I’d be more than happy to rescind this statement!

Very good points, I will look into supporting those two elements as well, please let me know if you stumble across anymore :slight_smile:


I suppose I’ll have to settle for using a code editor app, sync it up with Dropbox, and refresh the CSIDE web app when I want to to test out my changes in it. It is still better than nothing, by far! :slight_smile:

Would it be possible to create a way for the user to define where to fold the code? Such as, the user right clicks on a line number and selects “Start Code Folding” then right clicks on another line number and select “End Code Folding.” Or perhaps do it via selection? That way you wouldn’t need an obvious end, and the user can decide how much they want to collapse. Just a thought; I know very little about programming, so I don’t know if that’s possible or even a reasonable solution.

1 Like