If you want to make your own Trope Cards, then this page contains instructions on what you’ll need and how to do it.
There is also some more technical information at the bottom which will explain how the spreadsheet works and acts as a tutorial for the various functions, which should give you some scope for designing your own or changing up the formatting even if you're not familiar with Excel at all.
(These instructions are quite basic in places: I wanted to make them accessible anyone, and so they’re aimed at the non-crafty, non-Excel Whizz layperson.)
Firstly, you will need to select which Tropes you want to make in the spreadsheet. Go to the ‘Information’ sheet. In the ‘Code’ column there will be a two letter, three digit code for each Card. Copy the code for the first Card that you want to make1), and go to the ‘Card List’ sheet. In the column marked ‘List Here’, paste the code at the top (in cell B2). The name of the Card should appear next to it (and, in rare cases, a custom formatting prompt). If you then go to the ‘Cards’ sheet, the Card that you selected will now have appeared in the top left of the first page of the sheet.
As you continue to add codes to the list, the Cards will successively appear left-to-right, top-to-bottom on the ‘Cards’ sheet. After 8 codes have been listed, the Cards will start appearing on the second page, and so on. The pages are listed next to the list so that you can easily know how many pages to print. The ‘Cards’ sheet is 10 pages long (for a maximum of 80 Cards at 8 to a page).
Metatrope Codes should be listed where it says ‘List Metatropes Here’. The sheet will warn you if you put a Metatrope code in the main list or a non-Metatrope code in the Metatrope list. As you list Metatropes, they will appear on the ‘Metatrope Cards’ sheet instead – the reason for this is that their formatting is somewhat different from other Cards. This sheet is only 2 pages long (for a maximum of 16 Cards).
Certain Cards require a little more tweaking:
(Just ignore the ‘Images’ sheet, by the way: it exists purely for technical reasons.)
Now that you’ve selected which Cards you want to make, print however many pages you need to. Once finished, flip the paper in your printer and go to the ‘Card Backs’ sheet. This is only 1 page (8 Cards) long, though as they’re all identical just print however many copies you need2).
Once printed on both sides, hold the sheet up to the light on the back side to check that the black outline on the front is more than covered3).
The black border is punctuated by white crosses, which are cutting aids. Use the guillotine4) to cut between them in a straight line – though it usually takes a few goes to work out exactly where your guillotine’s cutting line is5). Starting around the edges gives the minimum number of cuts6).
Once you have your pile of paper Cards, put the first in a pouch so that it lines up and then run it through the laminator7).
And that’s it! You have your very own Trope Cards.
The small pouches mean that the occasional Card will get stuck inside the laminator and crumpled up: use one blade of a pair of scissors to fish it out, though be careful not to cut the Card8). Running them through several times after this sort of works, but they'll always be a bit squiffy: it's usually easiest to just make a new Card.
If you just want to add your own Trope Cards using the pre-existing format, then the process is very simple. On the ‘Information’ sheet, add the new Card’s name, suit, rank, flavour text and quote in the relevant columns, and then assign a code to it (e.g. Blah). If you then type ‘Blah’ into the list on the ‘Card List’ sheet then it will appear, fully formatted, in the ‘Cards’ sheet – no further work necessary. The sheet will automatically know if you’ve decided to make a Metatrope, too, and will correct you if necessary.
However, there are a number of style guidelines to follow if you want to keep any new Cards in keeping with the canon ones:
The codes are arbitrary, with the two letters corresponding to the suit and the numbers counting upwards from 001 once the Cards have been put in alphabetical order by suit (i.e. Am001 is the first Armament alphabetically). Over the course of the game, the Cards were re-coded every time a new one was added. To do this, sort the Cards by name and then by suit – then select the first two codes in the suit and drag down to redistribute the codes for the whole suit. This makes it easy to see what code you need at a glance.
Capitalise every word in the title unless it's an article9), conjunction10) or preposition11).
Don’t try to add any new suits, as it won’t work.
Ranks should be in Roman numerals, though watch out for the font size if you go higher than VI.
Flavour text can’t be longer than around 195 characters (or 4 lines on the Card), and should be descriptive without being a dictionary definition.
Quotes have a few, and are easiest to write out in Word before copying and pasting:
This all sounds complicated, but becomes intuitive pretty quickly.
Metatropes follow slightly different rules:
The flavour text box contains a formula, starting with ‘Take N Tropes’. This is then followed by ‘The resulting Trope(s)…’ specifiying how the input Tropes are converted into the output Tropes.
Rather than having a quote, they show how many Cards should be input and how many are output using the 🂠 character with the → character between them. If the input or output number is arbitrary, use ‘🂠 🂠 …’ on that side of the formula.
This section is for if you want to muck around with the formatting or are just interested in how the spreadsheet was put together, though isn't necessary for making or designing your own Trope Cards.
You're welcome to use it to design your own cards for another game etc.
This is really only aimed at people who are not familiar with programming but are familiar with Excel basics, to enable them to pick things up in this specific context. As such, I have assumed no advanced knowledge of Excel or any knowledge of programming logic whatsoever. Feel free to skip around if you already know things.
These are the default settings of the spreadsheet:
The Card format relies on certain rows and columns being merged across certain cells. This is useful for when you want certain cells to spread across multiple rows or columns.
To do this, select the cells you want to merge and select ‘Merge & Centre’ on the ‘Home’ ribbon, then ‘Merge & Centre’ again on the dropdown. To unmerge, select the cell and do the same thing. I wouldn't recommend this unless you're completely changing around the formatting.
Put simply, the spreadsheet works by taking the code put into the ‘Card List’ sheet, looking up the corresponding data in the ‘Information’ sheet and then modifying the relevant card on the ‘Cards’ sheet accordingly.
The primary way in which it does this is by using the VLOOKUP function. This function has four parameters in the following format:
‘VLOOKUP(value,table,index_number,approximate_match)’
When run, Excel will take the ‘value’, then look for it in the first column of the specified ‘table’ and look across that row to the Nth column of the table specified by the ‘index_number’. It will then output what is in that cell. ‘approximate_match’ isn’t important, but should always be marked as ‘FALSE’14).
If you look at the rank, title, flavour text and quote cells for each of the Cards on the ‘Card’ sheet, you will see that – among other things – the VLOOKUP function is used. To take an example, the flavour text cell of the first Card (C4) contains:
‘VLOOKUP('Card List'!B2,Table1[#All],5,FALSE)’
The process is essentially identical for Metatropes, though VLOOKUP is pointed to use the codes listed in ‘List Metatropes Here’ on the ‘Card List’ sheet instead. This is why Metatropes contain 🂠 formulae in the ‘Quote’ column.
Though VLOOKUP is the main function used by the title, rank, flavour text and quote cells, some other functions are also used by the spreadsheet
The IF function states that if a certain condition is met do one thing, otherwise do something else. It has three parameters in the following format:
‘IF(logical_test,value_if_true,value_if_false)’
When run, Excel will run the ‘logical_test’, which is a formula, output ‘value_if_true’ if the formula is true, and output ‘value_if_false’ if the formula is false.
This is used in quite a few places across the spreadsheet. One easy-to-understand example is where the ‘Card List’ sheet warns you if you have input a code that should be in the other list. In cell I2, where the warning appears for cell G2, part of the formula is:
‘IF(VLOOKUP(G2,Table1[#All],3,FALSE)="Metatrope","","Wrong List")’
This formula nests VLOOKUP inside the IF clause, meaning that the VLOOKUP function is part of the ‘logical_test’ parameter.
‘IF("Narrative Device"="Metatrope","","Wrong List")’
Clearly, a Narrative Device is not a Metatrope, and so using ‘ND088’ would cause this formula to output ‘Wrong List’. Using ‘Mt003’ would have caused it to output nothing (i.e. entering the code for a Metatrope on that list is fine).
IF clauses can be nested. What this means is that one or both of the outputs can themselves be IF clauses (and, inversely, can be part of the initial formula). This is also used in cell I2 where the formula begins:
‘=IF(G2=0,"",IF(VLOOKUP(…’
Cell I2 will always check first whether G2 has the value of 0 (which is the default if the cell is empty). If it does, I2 will output "" (i.e. nothing), and will only move onto the second IF clause containing the VLOOKUP function if the cell contains another value (i.e. if G2=0 is false). This is essentially a check that asks ‘has a value been entered?’ If this first check were omitted, the VLOOKUP check would find an empty row in Table1 and output ‘0’, which is not equal to ‘Metatrope’, thereby causing the second IF function to output ‘Wrong List’. This is obviously something we don't want to happen as it would spam the ‘Card List’ sheet for every cell in the list with no entry.
Nested IF clauses are used much more extensively in checks against the main list (e.g. cell D2). These are mostly to warn for any formatting changes that are required for specific Cards. They are also used to list the names of the Cards, as well as on the ‘Cards’ and ‘Metatrope Cards’ sheets for further warnings.
The most important thing to remember is the formatting of the IF clauses in the formula: nested IF clauses will only trigger if a parent IF clause triggers them. For example, if would have been useless checking ‘G2=0’ after running VLOOKUP and receiving the output ‘Wrong List’15).
These are functions that check whether formulae are true or false. AND, OR and XOR can contain as many formula parameters as you wish16), while NOT can only contain one.
The AND and OR functions are very intuitive, and output ‘TRUE’ or ‘FALSE’ depending on the formulae contained within them. They follow the following format:
‘AND(logical1,logical2,…)’17)
‘OR(logical1,logical2,…)’18)
AND will output ‘TRUE’ if and only if all of the formulae are true, whereas OR will output ‘TRUE’ if at least one of the formulae are true. As a corollary, AND will output ‘FALSE’ if at least one of the formulae are false, whereas OR will output ‘FALSE’ if and only if all of the formulae are false. For example, ‘AND(B2=0,B3=0,B4=0)’ would output ‘TRUE’ if and only if the first three entries on the main list were blank, whereas ‘OR(B2=0,B3=0,B4=0)’ would output ‘TRUE’ if at least one of them were blank.
The XOR function follows the following format:
‘XOR(logical1,logical2,…)’19)
Another name for XOR is the ‘exclusive OR’, and when it contains two formulae it will output ‘TRUE’ if and only if one of the formulae are true. If both or neither are true then it will output ‘FALSE’. Inputting more than two formulae causes it to output ‘TRUE’ if and only if an odd number of formulae are true, and ‘FALSE’ if and only if an even number of formulae are true. For example, ‘XOR(B2=0,B3=0)’ would output ‘TRUE’ if either B2 or B3 were blank, but ‘FALSE’ if both or neither were.
The NOT function outputs ‘TRUE’ or ‘FALSE’ follows the following format:
‘NOT(logical)’20)
It will output ‘TRUE’ if the formula is false, and ‘FALSE’ if the formula is true. This is useful when you want to say ‘anything but X is acceptable’. For example, in cell D5 on the ‘Metatrope Cards’ sheet ‘NOT(C2="Metatrope")’ outputs ‘TRUE’ if cell C2 contains any value other than ‘Metatrope’.
NOT can be combined with AND, OR and XOR to complete the set of basic logical functions:
‘NOT(OR(logical1,logical2,…))’21) will output ‘TRUE’ if and only if all of the formulae are false, and ‘FALSE’ if at least one of the formulae are true.
‘NOT(AND(logical1,logical2,…))’22) will output ‘TRUE’ if at least one of the formulae are false, and ‘FALSE’ if and only if all of the formulae are true.
‘NOT(XOR(logical1,logical2,…))’23) will output ‘TRUE’ if and only if and even number of formulae are true (with 2 inputs, both or neither), and ‘FALSE’ if and only if an odd number of formulae are true (with 2 inputs, only 1 of them).
They can also be combined in various ways. For example, ‘AND(OR(logical1,logical2),logical3)’ gives ‘TRUE’ if and only if ‘logical3’ is true, but also requires only one of ‘logical1’ or ‘logical2’ to be true.
These are extremely useful when working out what conditions should satisfy or trigger an IF clause, and are useful in simplifying a lot of formulae that would otherwise be extremely cumbersome24).
The colour of the Cards comes from conditional formatting. Essentially, Excel will change the format of a cell (such as its colour) based on various specified rules. By default, the cells for each Card are white. If you select all of the cells for a particular card on the ‘Cards’ sheet, not including the black border, then press ‘Conditional Formatting’ on the ‘Home’ ribbon followed by ‘Manage Rules…’ you should see four rules for that Card in the Conditional Formatting Rules Manager. For the first Card it will say it applies to ‘=$C$3:$E$5’, meaning all cells ranging from C3 to E5. Just ignore the $ characters25).
If you double click one of the rules it will bring up the ‘Edit Formatting Window’ The window will show ‘Use a formula to determine which cells to format’ highlighted, meaning that the formatting of the cells is determined by a formula. For the Object suit rule for the first Card, the formula will be ‘=$C$2="Object"’. In other words, cell C2 must contain the text ‘Object’. C2 is the top part of the black border of the Card.
This cell contains a VLOOKUP function that pulls through the suit of the specified Card. This is in black text on a black background, and is done because I simply couldn’t get Excel to allow VLOOKUP in conditional formatting at all26). Each of the four rules for each Card check for this value, and one of the rules should output ‘TRUE’ for any given Card, given each Card is in one of the four suits (ignoring Metatropes for the time being).
On that window, if you click ‘Format…’, go to the ‘Fill’ tab and click the ‘Fill Effects…’ button you can see the specified effect, which is a two colour downward gradient between a dark and a light shade of the same colour. This effect is applied per cell and not per Card.
The ‘Metatrope Cards’ sheet works in a very similar way, though with only one rule per Card. The reason for not having the effect applied at all times on that sheet is because it makes it easier to work with.
The images for each suit rely on dynamic images overlaying the Cards. For some reason, when you select a dynamic image you cannot simply enter a formula into the formula bar, but instead must create a new “Name” in the Name Manager which refers to a specific formula and then point the image to that instead27). Each Card has its own dynamic image, and each dynamic image therefore requires its own formula; there are 96 in total saved in the spreadsheet.
The Name Manager can be found on the ‘Formulas’ ribbon. When clicked, you will see a list of names that all follow the format ‘SuitLookupN’. These count up in order from 1 to 80 for each Card on the ‘Cards’ sheet, with ‘SuitLookupNMT’ functions counting up from 1 to 16 for each Card on the ‘Metatrope Cards’ sheet.
If you click on ‘SuitLookup1’, referring to the first Card, it will refer to:
‘=INDEX(Images!$B$2:$B$6,MATCH(Cards!$C$2,Images!$A$2:$A$6,0))’
If you click off the Name Manager and select the image on the first Card you will see ‘=SuitLookup1’ in the formula bar. In essence, it is a custom function equal to the formula above.
The INDEX and MATCH functions are reasonably similar to the VLOOKUP function, though not the same. The INDEX function specifies the value in the Nth row in a given range. It follows the following format:
‘INDEX(array,row_num)’28)
The ‘array’ refers to a range of cells, while ‘row_num’ specifies which row the output should be taken from. As an example, it could be:
‘INDEX(Images!$B$2:$B$6,2)’
The ‘array’ is cells B2 to B6 on the ‘Images’ sheet, and the ‘row_num’ is 2, meaning the second row in that range. The function would therefore output the value of B3 in the ‘Images’ sheet, which is the image of the sun29). This differs from VLOOKUP, which instead looks for the row which contains a specified value in the first column of a table (i.e. a code), and then outputting the value in a specified column.
In the real example, the row is defined by the MATCH function nested inside the INDEX function.
The MATCH function works by outputting which position a given value holds in a range of cells30). It follows the following format:
‘MATCH(lookup_value,lookup_array,match_type)’
The ‘lookup_value’ is the given value, the ‘lookup_array’ is a range of cells, and the ‘match_type’ states how the function should operate if it does not find an exact match. In the formula above it is:
‘MATCH(Cards!$C$2,Images!$A$2:$A$6,0)’
The ‘lookup_value’ is cell C2 in the ‘Cards’ sheet (i.e. the suit of the first Card). The formula then takes this suit and checks for what order it comes in the range of values in A2 to A6 on the ‘Images’ sheet. The ‘0’ for the ‘match_type’ means only an exact match is acceptable31).
Taking these two together, if the suit were ‘Object’, the MATCH function would see ‘Object’ on the ‘Cards’ sheet, check the range A2 to A6 on the ‘Images’ sheet for an exact match and find that ‘Object’ appeared in the fifth row. It would therefore output 5. The main formula would therefore simplify to:
‘=INDEX(Images!$B$2:$B$6,5)’
This means that the function checks for the fifth row of the range B2 to B6 on the ‘Images’ sheet and outputs what it finds. This is the image of the ship.
Therefore, the image on the first Card which is defined by the formula ‘=SuitLookup1’ would become the image of the ship.
You may be wondering why I didn't use VLOOKUP. Unfortunately, it doesn't work with images.
If you want to increase the number of pages that can be printed at once, you will need to manually copy the formatting for the Cards. From my experience, most of this cannot be done automatically and so it’s a huge faff. This includes manually creating new “Names” for each Card on the Name Manager, and sorting out the conditional formatting rules (which do not play nicely with copy and paste).
In addition, you will need to extend the lists on the ‘Card List’ sheet, including dragging down columns C, D, H and I so that the sheet works correctly with the expanded lists.
If you want to create any new Cards that require custom formatting changes for that Card, the functions in those columns can be amended to account for the new Card by nesting a new IF clause or using the OR function to check for that Card if its special requirements are identical to a pre-existing Card. Conditional formatting has serious limitations on what it can change, and so you may need to create a new sheet if your Card requires certain changes such as text size, cell size, cell merging etc. This is why Metatropes have their own sheet.
If you want to create a new suit, this is doable using conditional formatting and the Name Manager, but will require a large number of modifications to the existing functions, and the addition of a new 82 × 60 image on the ‘Images’ sheet.
If you have any questions about this, or just want some help, please feel free to drop me an email on my personal address at jc@jecarter.co.uk and I'll do my best to assist.