I'm just going to leave this here...

May 22, 2015

A couple years ago I decided that I wanted to learn javascript a little better. As I usually do when I want to learn a language or something similar, I chose a project. I mixed in my interest in role-playing games and decided to create a browser-based character sheet manager for my favorite game system, GURPS.

GURPS needed this more than other gaming systems might. First, GURPS is very heavy on bookkeeping and accounting. To address this, there are already several decent character sheet management software packages. But all of them are stand-alone, load-onto-your-(Windows)-computer apps, with prerequisites like Java. I wanted something that would work on any real operating system, and would only require that you had an internet browser to run it. (You do, don't you! See?)

This made javascript a good choice, because all modern browsers are also javascript interpreters. Doing it this way also means that my 'app' can be either something you put on your computer locally, or you can just use it like a web page. There are a few other online character sheet managers out there already, but they don't really try to create a nice-looking character sheet for viewing or printing. This package does a good job at that, if I do say so myself:

I've been working on this off-and-on since then, and I've put many more hours into it than I care to admit. I've gotten pretty good with javascript, my family misses me, and this thing now works pretty well, so I'm going to decide that I'm done.

Random Fantasy Culture Name Generator
Culture:
 
 

GURPS Javascript Character Sheet Package (JCSP)

I captured as much of the Basic Set rules as I could; skills, ads & disads, equipment, armor, encumbrance, defense, race templates, techniques, etc. You can create customized traits, skills, and equipment. Prerequisites, defaults, and trait adjustments for skills all work properly. Trait modifiers work, and are available for making custom dis/advantages. All magic spells from the Basic Sets are included, along with all of the basic equipment, weapons, armor, etc. My handling of equipment and encumbrance is unusually good, I think. You can even include character art: enter a web URL or a path to a local file in the path box under File → Upload Character Art. Your character can be saved on your computer, USB device etc., and you can open and edit as often as you like. You can have multiple different character sheets open simultaneously.

You can start immediately by clicking on one of the character sheet links below. Or you can download the package. There are also tutorials; a general one, and a tutorial on templates.


GURPS 3rd edition,
original single-page layout

GURPS 3rd edition, 2-page layout

GURPS 4th edition

GURPS 3rd edition, NPC card

GURPS 4th edition, NPC card

Here are a couple of landscape layouts:


GURPS 4th edition, landscape layout 1

GURPS 4th edition, landscape layout 2

Some layouts of my own design:


GURPS 4th edition, my layout

GURPS 4e, my 1 page layout,




GURPS 4th edition, half-page

I've made a first try at an NPC sheet: i.e., a page with several JCSP NPC cards on it together. These pages show 4 NPC cards, arranged (if you size the window right) in two rows of two, so that if you print the page with a landscape orientation, all four cards print together. That said, you have to do it just right for it to work. First, you can load a different character into each card using the JCSP menus, but if you refresh the page, all four will reset to whichever character you modified most recently. So load and print, using the browser print function. Second, I found that even though the four cards should fit on a single landscape page, my printer wanted to split them up unless I shrunk things a little, in my case to about 90% scaling.

3rd edition NPC card sheet4th edition NPC card sheet

I tried the card sheet in several browsers. The instructions above work for Firefox; using Chrome I just had to set the margins to 'minimum' and layout to 'landscape' (the printout was in black-and-white, though). Using Safari I was unable to get the print settings to put more than one card on a page; apparently Safari always wants to split up iframes. Opera crashes when I load the NPC sheet page - wtf? Not tried with Windows browsers yet.

Full character sheet files for the 3rd and 4th edition Iconic Characters (Dai Blackthorn et al.) are part of the package. If you want to load one of them into any of the character sheets above, just copy one of the relative URLs below, open a character sheet, go to File → Open Character URL in the menu, and paste the URL in the text box. These will demonstrate many of this package's features.

The Iconics generally have little (3rd edition) or no (4th edition) equipment, so I have included a couple of character files that show more of these features. You should load the Toovtekki.gurps (3rd edition) or Stick.gurps (4th edition) file if you want to see how this package handles equipment, encumbrance, wearing armor, and wielding weapons.

The 'memory' for these sheets uses your browser's localStorage, instead of cookies. The character file is attached to the browser window/tab. If you open character sheets in several windows/tabs, each one can contain its own character file. If you have opened or created a character in a window/tab, you can then browse around between character sheets, and the character file will follow you around. Characters are not attached to sheets in any way, they are attached instead to rulesets (i.e., 3rd or 4th edition rules). You can freely open and look at a 3rd edition character in a “4th edition” character sheet (or vice-versa); the character will still be rendered using the correct (3rd edition) rules.

Some years ago I wrote some software to generate random names for characters belonging to some fantasy cultures: elves, dwarves, etc. I recently found it and decided it should be included in JCSP; this will be part of release 1.9. In the meantime, you can try it out here.

If you have questions or feedback, please send me an email. My address is 'jim.thurmond', at the domain of this website. Give me a few days; I don't check this email address frequently.

JCSP updates

version 1.8 (November 2016) Addendum

After a quick bug-spotting, I have updated the 'live' code on the site for v1.8; I will not be updating the code for download until the next release. The bug in question affected the cost calculations for certain modified traits.

version 1.8 (November 2016)

version 1.7 (June 2016)

version 1.6 (March 2016)

version 1.5 (December 2015)

Merged Spell and Skill classes. Like traits in version 1.3, users can now put spells and skills together in any order. Also added a second landscape-oriented 4th edition sheet.

version 1.4 (October 2015)

Racial templates added to the New Character dialog; Technique/Maneuver editing integrated into the Edit Skills dialog; addition of the NPC Card character sheet.

version 1.3 (June 2015)

This version saw the merging of the Advantages, Disadvantages, Perqs, and Quirks subclasses into a single new Trait class. For users, this allows traits to be arranged in whatever order you like now (unless the sheet itself imposes some restrictions, like the basic 4th edition sheet divides Ads from Disads).

This may also be the update in which the random character generator was introduced.