[Tool] Chronicler - ChoiceScript Visual Code Editor


@BenSeawalker Whenever I try to run the updater Chronicler_Updater.exe it deletes the file Chronicler-Next.exe which is used to open Chronicler. Am I doing something wrong?


@Classified Yes indeed you are. :slight_smile:
Chronicler itself takes care of downloading the updates. Chronicler_Updater merely exists to replace the Chronicler executable with the new version downloaded to a temporary folder. Then launch Chronicler again.

Long story short: do not run Chronicler_Updater by itself. Simply launch Chronicler and if an update is available, it will popup a confirmation dialog.


@everyone I’ve had a chance to test the online version of Chronicler without internet access and sure enough it continued to run just fine with all currently implemented features working. Hence, you should not need internet access to run it! :smiley:

Further testing will likely be necessary later, but at least for now this feature is working as intended.


Excellent! I look forwards to testing it out


So, do we still not know if COG actually accepts games coded with Chronicler?


@JamzIsMe Submission guidelines are located here.

I was wrong about it passing CS tests, it actually has to pass a public beta test on the forum first. Assuming your game works from a reader’s point of view, then there is no reason why it would be rejected.

There’s not really any difference between Chronicler code and human code other than some labels being generated as “bubble_1234” where the “1234” is the unique identifier of the bubble in your game. And those are only created if you don’t supply your own label in the editor.

As such, I would believe that there is no problems with getting your game on the Hosted Games portion of the site. However I can’t speak for the CoG writers as they have a stricter editing process, even then I feel that only consists of spelling, grammar, and story structure, which would be easier to find and fix with Chronicler than reading through a wall of text.


The original program is still awesome but I’m really looking forward to 2.0.
I had this W.I.P I was flirting with but I felt that although I could certainly do it in the original, it would be much easier using what you describe as the new version, so I’ve been postponing it for now.

Still thinking later this month? :grin:


@MisterFahrenheit As much as I’d like to announce a release next month, I don’t believe I could, in good conscience, do so. I’m learning new technologies and libraries, and hence it’s taking significantly longer than I expected to complete. There was also several UI features that seemed great in my head, but turned out to be awful in implementation and those had to be changed, resulting in changes to the backend data storage as well as the front end.

As the project currently stands, Node rendering is working as intended. Components can be added, moved, edited, and deleted. Links to other nodes, Choices, and Conditions are also rendered and working. New Nodes may also be created and edited.

Next up on the todo list is creating the database and REST API server since these are requirements on the project by my professor. After that I’ll start on generating the flowchart view. In the new version the flowchart view will not be editable to the extent the current version is. You can still create and delete Nodes, and possibly link them, but dragging them around will probably not be possible. This should cut out a lot of the tedium that exists in the current version.

From there I just have to generate the UI for every conceivable Choicescript command (there’s a lot of them…).
I also need to design and implement the project management and settings pages as well as the new homepage for the website.

Finally I have to decide whether Chronicler should remain as a website, or port it into Electron for a cross-platform desktop version. Using Electron would provide nice features such as storing project files locally and guaranteed offline mode. On the other hand it would mean there is no mobile version, but I’m not sure the UI is actually suited for small screens anyway. Plus hosting a web version costs money, meaning I’d have to place advertisements and include a paid version without ads to cover the hosting, SSL, and domain fees. Honestly I’d hate to ruin the experience with ads, but I don’t see any other way to cover the costs without paying for it out of pocket, which is not something I can afford to do currently.

So, a conservative estimate for a beta testing stage would be in late May or June. With a tentative full release date by December of this year.

Be sure to write down your W.I.P ideas, because the reason I created Chronicler in the first place was to write my own W.I.P with it, but I have since completely forgot what it was I was going to write >_<


I understood about 50% of the terms you used, but I’m sure that’ll be useful to others interested in this :smile:
Completely understandable, though. This is a massive undertaking and we’re all thankful you’re sharing it with us in the first place. I suppose I should stop with the excuses and get working on my own project. Chronicler is completely functional after all so I suppose I could use it to get stuck in and then genuinely learn ChoiceScript along the way.

Good luck! Take your time. We’d rather have (as with COG’s) a polished version than a rushed buggy mess. I’m sure it will be fantastic by the end of it.


Well, if it matters at all, and whether if it should matter or not, you know I would love to see a desktop version. :blush:

In the end, it is your product and you do what it as you please. :slight_smile:


If it helps, CSIDE’s “web” version costs me nothing to host as it uses Dropbox as a “back end”. Free static hosting is surprisingly easy to come by. It’s only when you require back end state/dynamic server behaviour that things tend to get costly. Remember @dashingdon also set us up a nice API (though I haven’t had time to try this yet!), which could be another avenue to look at.

It should also be possible for you to maintain a single code base for web, electron and mobile (Though I too have dropped the ball on the latter… Mobile first UI design I did not do… :confused: ). I think giving people the option to download/not download and use whatever device they like is always something worth striving for though.

One thing I have struggled with on the web is running the automated tests. It’s just far too slow to make all those requests at the moment (this where your own back end would be helpful, I suppose!). I’m wondering if there is a way we could run the tests on a compiled version of the games? Anyway, good to see some progress. Give me a shout if you ever want to swap ideas :slight_smile:


@CJW Interesting. Didn’t Dropbox remove the ability to host websites though? Or, at least, not without a paid account? I actually discovered there is such a thing as distributed hosting a short while after my post. essentially by providing my services helping others host I could, in turn, upload my website to the network. It essentially works similar to a torrent network, but I didn’t read further into the details.

It is entirely possible to use a single codebase for Electron and Web. The only difference would be in how file storage is handled. I’ll certainly consider releasing both.

Thanks for the tips!


Correct, sorry. To clarify, I use github to host the static site and Dropbox’s JS API, in place of a custom backend/database.


Updates on hosting. The nice thing about react is that it does indeed generate a static site. Two solutions that are quick and relatively easy to use are GitHub Pages (which I’m leaning toward) and Surge.sh.
The only issue would be the central server, which I could host with the free tier of Amazon AWS. However, their limits on a free account are pretty sparse, and it is likely that they will be exceeded quickly if even 500 users start creating projects.
While a server would be nice and certainly improve the experience, I don’t believe it is absolutely necessary. Users could simply download their CS project files and then upload them again if they closed their browser or switched to a different device. Alternatively I could integrate the Dropbox and/or Google Drive api and allow files to be stored and retrieved from the user’s own accounts on those platforms. I’m already planning on integrating Dashingdon’s api, so it may be possible to only use that for saving project files, I’ll have to look into it further.

Hence, I believe that Chronicler can be hosted with file storage capabilities for free. I only have to create the server for the purposes of Senior Project, and then I can explore further solutions.


Greetings. First of all, i would like to thank you for what you do. I stumbled across Chronicler a couple of weeks ago and i really appreciate what you do. I am an amateur writer and the idea of making one of my stories interactive has been very alluring to me since i started putting my ideas on paper. Unfortunately, I do not know the first thing about codes, and Chronicler is really the fastest and simplest way to get this kind of job done.
You can also probably tell that I’m not a native english speaker, so I’ll try to be as clear as possible.
I had a couple of questions about Chronicler. I looked around this thread and could not find an answer to them, but i could’ve missed it, so sorry if this has already been asked.

-First of all, I know that the player can input a name to use for the whole story. Is it possible though, for another character, to call him by name? What i mean to say is: I tried creating an action bubble where the player can input a “player_name” variable, but i’m not sure how (or if) that variable can be shown in a sentence.
(I.e. player_name variable is set to JOHNDOE
the player picks “Hello, my name is JOHNDOE” on a choice bubble
another character answers “Hi, JOHNDOE, how are you?” on a story bubble)

-My second question is: Is there a practical way to lock a choice after it has already been selected? For example, if the player can decide to do 5 activites out of 10 possible ones, and i want to make so that, after doing the first one, he comes back to the choice bubbles with the 10 choices, but he can’t pick the one he just picked. So far, i thought of 2 ways to pull this stunt: either I copy the choice bubble 10 times (with the activity he just picked removed from it) and put it after his choice or i can create a variable with 0 and 1 values and use the “selectable if” command. I would like to know if there’s a faster way that does not flood my project with choice bubbles or variables.

Thank you very much in advance. As i said, your work is really appreciated on my part.


Okay, I’ve been working on a game (which is called “Choice of An Invader” for those curious, and involves being an alien tasked with conquering Planet Earth) using that Chronicler, and I’m wondering if anyone could help me figure out something;

How do I build a “Show Stats” character sheet with Chronicler?

The tutorial video BenSeawalker provided showed me how to add variables, but not a way to show the stats in-game. I messaged him for help on that regard, though I’m still waiting for a response.

I’m planning for my game’s “Show Stats” character sheet to show the MC’s name, species name, (both of which can typed by the player), gender, a set of 4 skills gauged with a scale of 1 to 10, and a “Benevolence/Malevolence” 50/50 gauge.

Any chance anyone can help me with that?



To answer your first question, if you type the name of a variable in a story bubble and hit the “tab” key to autocomplete it, it should wrap the variable in ${}. For example the variable “player_name” would look like “${player_name}”. In Choicescript this outputs the contents of the variable. Make sure the variable exists under the variables tab.

As for your second question you are looking for the “*disable_reuse” command. In a choice bubble simply type “*disable_reuse” in front of the text for that choice. Chronicler should highlight the command if you typed it correctly.

Glad my program has been of help to you!



This is not a Chronicler specific issue, but rather a Choicescript one.
Chronicler does not currently have an editor for the stats screen (although one is in the works for the new version).
To add the stats screen to your Chronicler project simply create a scene named “choicescript_stats” and connect up a code bubble inside it.

For info on how to code what you want I recommend reading this wiki page which covers the choicescript_stats file in detail.

I apologize for not getting to your email sooner, and hope this info helps!


Hey all, I’ll try to keep this forum tab open so I get notifications from now on. This will be the best way to contact me either via a post on this thread or a private message.

I’ve also seen a rare issue reported twice now that Chronicler duplicates “*page_break” actions upon either saving or loading the project. Leading to massive file sizes and unwanted behavior in the generated code.
I am unsure if the same issue occurs with it being inside an action bubble or only in story bubbles.
Regardless, I am unable to fix it at this time. Rest assured that it will not be an issue in the new version which I am still pouring as much time as I can into. Thank you for your patience!


Heyo! I emailed you but I got impatient, I’m sorry. ^^
“Chronicler-Next cannot be opened because of a problem.”
I tried opening Chronicler for Mac but got this pop-up, I’m running macOS High Sierra version 10.13.4. Thank you in advance! I love the app by the way.

The report shows this.

Process:               Chronicler-Next [1128]
Path:                  /private/var/folders/*/Chronicler-Next.app/Contents/MacOS/Chronicler-Next
Identifier:            ds.Chronicler-Next
Version:               ???
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Chronicler-Next [1128]
User ID:               501

Date/Time:             2018-06-02 20:26:55.662 -0400
OS Version:            Mac OS X 10.13.4 (17E199)
Report Version:        12
Anonymous UUID:        8665232C-34EB-360A-548D-B86B4EC55858

Sleep/Wake UUID:       B22C34E7-0DD8-43B6-B167-29C7075FE01A

Time Awake Since Boot: 3100 seconds
Time Since Wake:       2600 seconds

System Integrity Protection: enabled

Notes:                 Translocated Process

Crashed Thread:        0

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    DYLD, [0x1] Library missing

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  Library not loaded: @rpath/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets
  Referenced from: /private/var/folders/*/Chronicler-Next.app/Contents/MacOS/Chronicler-Next
  Reason: image not found

Binary Images:
       0x105ceb000 -        0x105db9ff7 +ds.Chronicler-Next (???) <CC7EC295-4AA7-38A1-AB38-12C1C6A844E4> /var/folders/*/Chronicler-Next.app/Contents/MacOS/Chronicler-Next
       0x1095c6000 -        0x1096109df  dyld (551.3) <AFAB4EFA-7020-34B1-BBEF-0F26C6D3CA36> /usr/lib/dyld