From Random Charts to Generators - Chartopia Matures

Chartopia is known as a platform for creating random tables. Developer Glenn McCord explains how it has moved to being a tool for fully-featured random generators.


In May we released the holy grail of all features, input variables. This allowed Chartopia to not just be a random table tool, but a generator tool too.

This is really exciting for us, because, up until now, Chartopia has focused primarily on being able to digitise published content from books; published RPG games such as Ironsworn and Hot Springs Island, translate really well to Chartopia's charts/tables.

With the introduction of input variables, creators can now set filters and parameters that feed into the tables, allowing a lot more flexibility and complexity.

Chartopia now has a much more mature template language. Input variables (which allow for generators), came after we introduced variables in Chartopia. There are also condition expressions, and hopefully soon, loops. We're aware that someone could make their own generator in javascript, python, or even Excel, but we're trying to create a language perfect for random table and roleplaying systems.

There's also been some changes to the editor, with a few additional meta data options, the controls for input variables, and the collapsible subcharts.


The biggest technical challenge is making an intuitive template language.

Since the project started, the Chartopia Domain Language (as we’re calling it now) has evolved considerably to the point where we’ve settled on a couple of design decisions; one is the curly brace notation and the other the macro like commands.

In and around that though, is the requirement to have Markdown formatting. We chose Markdown because it’s platform independent; on a browser it will render to html, but on a mobile app, libraries provide native rendering.

The challenge is getting everything to play nice with each other, especially when charts roll on other charts and those subcharts have their own Markdown formatting.

Sometimes users will want to print characters that have a special meaning in Markdown, so in certain circumstances those characters need to be escaped. Because Chartopia can treat every table cell as its own potential mini generator and renderer, there is the potential to create some unintended side effects from nested rolling.

Gamma Word Character Creator

"User TedTschopp is doing a fantastic job of pushing Chartopia to its limits. Here's a screenshot of his WIP MCC / Gamma World Character Creator."

Other Requests

The other problem is keeping up with the requirements of the users. We’ve had feature requests of which some have been easy to implement, and some not so. Because our goal is to create a language specifically for random tables and generators, we definitely like hearing what users want to achieve, but it does make for some interesting design decisions about how the command would look like in the Chartopia Domain Language.

A slightly less technical challenge has been trying to keep up with good UX design. As the users push the system to its limit, we’ve definitely had to improve things over time. Early users may remember some of Chartopia's UI deficiencies, but we’ve iterated over time and now the editor is far easier to use and capable of handling a lot more data.

Future plans

We're certainly not short of feature ideas, but here's some near term tasks.

First we want to get the last of the major Language features implemented: loops, logical conditions and a few extra macros our users have requested. In regards to the UI, there are some improvements that need to be done, one of which is to implement a plain text editor mode to compliment the rich text editor currently in use. The last one is a native iOS and Android app. As good as the mobile browser version is, a native app does remove a lot of the browser quirks. We want to implement offline charts, but that would be a few versions away.


You can find out more from an earlier Interview with Glenn