Batch Generating Character Sheets

Okay so google drive is the commonly used solution for group editable document collections for roleplaying games.  For many events Room 13 generates 2 documents per character: A background document (essentially a short work of fiction describing the characters history) and a character sheet (their stats, sanity, coping mechanism, and a brief rule summary).  Now it’s the second one of these that concerns us.

For The Fete we needed to make a tweak to the sheets late in the process, and hence I had to personally go through about 30 documents making the same edit to each one, and ever since then I’ve been wary of it.  So for Cluedothulhu 2016 I’ve decided to look into batch generating character sheets.The thing I’m currently playing about with is Ultradox, which you can get access to by opening a google document and clicking the “Add-Ons” menu then “Get Add-Ons…” and searching for it.  Once you’ve saved an Ultradoc you’ll need to right click on it in drive and select “Open With” -> “Connect More Apps” and connect Ultradox.  Is there at catch?  Yes there is, you can only generate 50 documents (not sure if it means PDFs or google docs) a month or send 250 emails a month before you have to pay for it, so just be careful when you do your batches and from what accounts you do them.  One or two batch runs should be fine.

You need two documents to make it work, a spreadsheet to load the data from, and a document to use as a template.  First generate your spreadsheet, rename “sheet1” to something more sensible, I picked “data”.  Put in the headings for each thing you want.  I used: player name, character name, summary, insanity title, insanity body, coping a title, coping a body, coping b title, coping b body, strength, sanity, health, melee, ranged, first aid, medicine, escape.

Then create a new “App” in Ultradox, which is basically a way of gluing things together.  Create a new one from scratch, and from the left hand menu add the following things:

  1. Google Sheets -> Load row(s) connect it to your data spreadsheet and set it to load “one row” when running a batch
  2. Google Docs -> “… to Google Docs” and connect it to your template document
  3. Google Drive -> Upload and select an output folder for it to go to, make the filename template something like: “${data.charactername} – ${data.playername}”

Then open up a document to use as your template, Add-Ons -> Ultradox Template Editor -> Open Side Bar  and you should see all the rows that exist from your spreadsheet.  You can add them into your document with ${sheet.row} so a basic template looks something like:

Character Sheet

${playername} - ${data.charactername}

Insanity: ${data.insanitytitle}: ${data.insanitybody}

Coping Mechanism: ${data.copingatitle}: ${data.copingabody}

Coping Mechanism: ${data.copingbtitle}: ${data.copingbbody}


Health: ${}

Sanity: ${data.sanity}        

Strength: ${data.strength}

Melee Combat: ${data.melee}        

Ranged Combat: ${data.ranged}        

First Aid: ${data.firstaid}        

Medicine: ${data.medicine}

Escape: ${data.escape}

Rules Summary:

.... stuff about rules goes here

Then to make it work you hit “Batch” from the top menu, and tick all the rows of data from your spreadsheet you want to generate for, and for each row it will spit out a google doc into your output folder.

To secure it click “App Settings” from the top bar, set it to “Login Required” and “Only users with the ‘view’ permissions can run this app”, then use the “File” menu to rename it, and go find it in your google drive – it looks like a weird file with a red box for an icon, and if you’ve connected Ultradox you can right click it and open it.  Put it in the share with your template and spreadsheet and all your refs can trigger batch runs and fiddle with the settings.


Leave a Reply