News Shop
Events Forums

Codex Tracking Spreadsheet


Probably, but it breaks up the “Board State” section. Instead of being one continuous section, it becomes two sections, which might not really bother people, but I prefer it two be one section, then blank lines, then economy.


I don’t know if it has been discussed before, but a technician death with 0 cards in your drawpile triggers a reshuffle before your teched cards enter into it. Is this already accounted for with the “draw 1” button?

In those cases, the “Tech 2 cards” text shouldn’t be the first one that come up in the summary.


It’s accounted for if you draw the cards before you put your tech choices in the tech spots. If you put the tech spots in first, it will assume you’re drawing during your turn, and they will be shuffled in. The spreadsheet doesn’t track draws/reshuffles at all outside of the end of turn Discard/Draw, so you have to note any other draw reshuffles manually.


Correct, technician draw timeline is either not noted, or manually noted by the player. The sheet handles technician draw like any other draw, but tech choices should not be typed in until after any draws that happened during your opponent’s turn. Technician and gorgon death, for example.


Thanks for the replies! :smiley:


How about adding an automatic spoiler to tech, hand and discard in the generate post thing?

And possibly also a (details : thoughts) at the bottom of it?


I’m against adding spoilers to the hidden fields. IMO, they’re already sufficiently hidden by the details tags, and spoilers just make it take longer to read people’s thoughts for spectators/after the game.


I’m with cstick, this forum software doesn’t show the contents the way the old one did during loading.

I have been meaning to add a thoughts section to the post. Thanks for the reminder.


After a PBF match, I would still say that I personally would enjoy a spoiler tag for every detail listing. Adding that manually, if you just want to make sure it is still hidden if accidents were to happen if someone presses the details button, is a lot more of a hassle than just pressing with your mousebutton one more time. And apparently quite a few people do add spoiler tags on their own, so the way the spreadsheet works now makes for more buttonpresses in general than if you were to add the spoiler tag to it.

It is still of course up to you if you want to do it, it is still a great product in and of it self, so I am not complaining, more just arguing against cstick’s point, that it would add more work if spoiler tags were added. :slight_smile:


The beautiful thing about a google doc is you can copy the whole thing and make your own version, with spoiler tags. And when the original gets updated, just copy across and re-edit.
Technology and collaboration are wonderful. You could even put your own version up for people who prefer spoiler tags!


So here’s what I’ve done, if you want to use it. It has all the details spoilered and it has a Thoughts section at the end. My additions may have been cludgy, so apologies if they are. It’s been maybe 16 years since I’ve done any code, so I had to figure it out by reading @zhavier’s work and experimenting a bit. (I’ll also say that I don’t like it as much as the phase-breakdown format that @FrozenStorm has been using lately; that one’s rill purty.)

Here’s what you do: In your spreadsheet (I use a clean version that I make copies from for my games), go into Tools, then Script Editor. That’ll bring up the Codex PbP Helper code that @zhavier wrote. Now, go scroll down until you see a line starting with the word “template” (line 139 in my version). (This is within the onEdit function, and it’s the section of the code that controls the output formatting for the forums.)

If you’re comfortable with code, you can just compare my code (below) to @zhavier’s and change the first few sections and the last section of the template stuff to look like mine. If you’re not at all comfortable with code, do this:

  1. Copy the following code (you should be able to highlight it and do a ctrl+c or right-click -> copy, or something similar)

  2. Go back to the code in the PbP Helper in the Google sheets Script Editor. Highlight the line that starts with “template” (line 139 that I mentioned above) and every line after that until right after the last line that starts with “template” (somewhere close to line 200). If you highlight a line that starts with “getSpreadsheet()” or a line that starts with “functionPeek(),” you’ve gone too far.

  3. ctrl+v or right-click ->paste or something similar to replace @zhavier’s template with mine.

  4. Hit the save icon in the script editor, then close the script editor.

  5. If all went according to plan, you should now have spoilers on your details, and a thoughts section at the bottom.

    template = “P"+ miscData[0] + “T” + turn + "\n\n”;

    template = template + ‘----------\n\n[details=’;
    if (lastTech!=""){
    template = template + ‘Tech StartingHand Workers]’ + “\n”;
    template = template + 'TECH\n’ + “\n”;
    template = template + lastTech + "\n
    else {
    template = template + ‘StartingHand Workers]’ + “\n”;

    template = template + 'STARTING HAND’;
    template = template + lastHand + "\n
    template = template + ‘WORKERS\n’;
    template = template + workers + '\n
    \n----------\n[/details]’ + “\n”;

    template = template + ‘[details=NextHand]\n’;
    template = template + hand + '\n
    \n----------\n[/details]’ + “\n”;

    if (discardSize>0){
    template = template + ‘[details=Discard]\n’;
    template = template + discard + '\n

    template = template + “Tech " + techCount + " card(s)\n”;
    template = template + lastActions + “\n”;
    template = template + drawPhaseSummary + “\n\n----------\n”;

    template = template + ‘[B]Board Info:[/B]’ + “\n”;
    template = template + ‘[B]In Patrol:[/B]’ + “\n”;
    template = template + '* :psblueshield: [I]Squad Leader[/I]: ’ + allValues[0][6] + “\n”;
    template = template + '* :psfist: [I]Elite[/I]: ’ + allValues[1][6] + “\n”;
    template = template + '* :ps_: [I]Scavenger[/I]: ’ + allValues[2][6] + “\n”;
    template = template + '* :exhaust: [I]Technician[/I]: ’ + allValues[3][6] + “\n”;
    template = template + '* :target: [I]Lookout[/I]: ’ + allValues[4][6] + “\n”;

    template = template + ‘[B]In Play:[/B]’ + “\n”;
    template = template + '* ’ + inPlay + “\n”;

    template = template + ‘[B]Buildings:[/B]’ + “\n”;
    template = template + '* :heart: Base HP: '+ miscData[2] + “\n”;
    for (var i = 3; i<11; i++){
    if (miscData[i][0]>0){
    template = template + '* :heart: ’ + miscDataTitle[i][0] + ': '+ miscData[i][0];
    if (miscData[10][0]!=""&&i==4)
    template = template + " (" + miscData[10][0] + “)”;
    if (miscData[11][0]!=""&&i==6)
    template = template + " (" + miscData[11][0] + “)”;
    template = template + “\n”;

    template = template + ‘\n[B]Economy Info:[/B]’ + “\n”;
    template = template + ‘[B]Cards:[/B]’ + “\n”;
    template = template + '* Hand: ’ + handSize + “\n”;
    template = template + '* Deck: ’ + deckSize + “\n”;
    template = template + '* Disc: ’ + discardSize + “\n”;

    template = template + ‘[B]Gold:[/B]’+ “\n”;
    template = template + '* Gold: '+ miscData[12] + “\n”;
    template = template + '* Workers: '+ workerSize + “\n”;

    template = template + ‘\n[details=Thoughts]\n’;
    template = template + '\n


Asking mainly for feedback from the rest of the community:

Am I the only one who has come to dislike the automatic “worker -1” that appears at the top of the actions column? It’s fine for the first few turns, and I guess was put it to remind people that it’s usually a good idea to make a worker each turn. But I’ve come to find it a bit of an annoyance as the game goes on. Not just because by the midgame sometimes you want to skip the worker, because you can’t afford to lose the card and/or the gold. But because whenever you have card-drawing effects you often want to play those before deciding what to worker. And then there’s the issue where sometimes you forget to actually drag a card over to the “workers” column - but you’ve still paid the gold for your non-existent extra worker, because you never caught it on the spreadsheet.

Since it’s really very easy to just type “worker -1” at the appropriate place in the action log, I’d personally rather it wasn’t there automatically. This means that you have to make the conscious decision to do this at a particular point in your turn, and then move the card over at the same time - exactly as you do in a real-life game. And it’s how all the other actions work in the spreadsheet (to play a unit I drag it over from “hand” to “in play” or “patrol zone”, then type in the action and take off the cost).

I’m aware that this is just nitpicking, and might not be a view that’s widely shared. But I’m wondering if it is something that others have thought about too.


I find it easier to delete two fields (when I don’t want a worker) than type “Worker” & “-1” (when I do), but as has already been mentioned, it’s relatively easy to make changes if a particular thing bugs you.


Yea, the worker thing can trip people up, but I decided it was easier to always remind players to make a worker (especially new players).

I have no problem with others creating an alternate sheet, but I won’t be creating features or updates for them. Armed pirates update instructions are perfectly good though.

if you want to break your actions into phases, you could add lines to the actions section of the spreadsheet, such as

[b]Upkeep[/b] Get Paid 3 [b]Main Phase[/b] Actions! -2 Worker -1 [b]Discard/Draw[/b]

which would result in the following being generated

Get Paid - ($3)
Main Phase
Actions! - ($1)
Worker - ($0)
Float ($0)
Discard 3, Draw 2


Is it worth it to just create a button that adds in the Worker and the -1, similar to the buttons for “Draw” and such? That way it could be done at any point during the turn (for example if you draw a card which you then decide to worker) without having to delete the built-in worker.

Not that I have any idea how to do that…


I’ve made some slight changes to the sheet, so I get most of the code and am comfortable changing stuff. I’m still confused how it grabs the starter deck, though. I want to manually add in stats like (2/3) etc to the cards so I don’t have to do this every game.

I’ve looked at a lot of games on the forum, and if I’m not mistaken, literally every single person does this. Is there a reason I’m not thinking of that the starting stats of the base creatures aren’t automatically put in? I guess it’s slightly more “stuff” to look at and not that big of a deal to just type every game.


You have a valid point, but I never thought it would look good in the hand spoilers. Starting cards names are pulled from the card list sheet, based on what spec is listed first in the deck selection. Changing them to have the stats is complicated, in that adding any text to the card name breaks the link on the card list sheet. Lastly, it is the fact that stats are fluid. Something like Ironbark Treant could be a 3/2 or a 1/2+2A, and anything that has taken damage, or anything with +/- 1 Runes. Basically, if people were going to have to mark stats as they changed, I figured it was basically the same as marking the stats to begin with.


It looks like the spreadsheet has an error where if the whole deck is drawn and the discard is not yet reshuffled, then teched cards for the last turn does not count as being in the discard both on the main page and in the pbf template generated.


I noticed a bug where doing Discard/Draw with a top of deck card removes the card from the sheet completely. It might have been because I was undoing stuff a fair bit, though I would figure that the button-bound scripts would handle things based on actual cell contents, rather than some hidden state about previous cell contents.


I am not sure how to replicate either of these bugs, @feathers and @Shadowfury333

Maybe you can PM me a link to a sheet that has just had the error occur, or that will have the error occur if I click the button.