You do not need the Qt libraries to run this one.

Help and Documentation

You don't have to run this at a command line or give it command-line options - just double-click on it in Windows, and if you have everything in the right files it should do its magic. There are example files (options.txt, motif.txt) included in the zip to get you started.

The Motif Files

The motif files, which you should specify in the options file (discussed below), should generally look something like this:

1 Shapeshifter
1.1 Shapeshifter impersonates animal
1.1.1 Shapeshifted animal distracts hunters Shapeshifted animal leads hunters to their deaths Shapeshifted animal leads hunters to game
1.1.2 Shapeshifted animal steals food
1.1.3 Shapeshifter only killable in animal form
1.1.4 Real animals detect imposter
1.1.5 Shapeshifted animal understands human language
1.1.6 Shapeshifted domestic animal aides masters
1.2 Shapeshifter impersonates murdered human
1.2.1 Shapeshifter impersonates dead community leader
1.2.2 Shapeshifter impersonates dead religious leader
1.2.3 Shapeshifter identified when body is located
1.3 Shapeshifter impersonates sleeping/absent human
1.4 Shapeshifter adopts imperfect form
1.4.1 Shapeshifted human missing facial features
1.4.2 Shapeshifted human missing identifying characteristics
1.4.3 Shapeshifted form is crippled
1.5 Shapeshifter marries human
1.5.1 Half-human child of shapeshifter Child of shapeshifter has limited shapeshifting abilities Child of shapeshifter understands animal language
1.6 Shapeshifter impersonates foreign trader
1.6.1 Shapeshifted trader sells magical items Items traded by shapeshifter do not function when stolen
1.6.2 Shapeshifted trader cheats humans
1.7 Shapeshifter abducts child
1.7.1 Human child raised by shapeshifter

In general, motif x should be required for motif x.y, which isn't quite how the Thompson index works, but it will make this program produce more sensible results.

The Options File

There must be a file in the directory called options.txt. This file contains parameters for the program and lists of other files for the program to read. Lines that start with # are comments (ignored); all other lines consist of a command followed by one or more options.

Specifying Files

There are four types of files you can specify; motif files, other options files, output files for the chosen motifs, and "error" files that tell you what the program did. The commands for specifying them are motif-file, option-file, out-file, and error-file. Note that motif-file and option-file can take multiple file names. Here's an example:

motif-file motif1.txt motif2.txt
option-file moreoptions.txt
out-file out.txt
error-file error.txt

out-file and error-file actually default to out.txt and error.txt, so you can leave them out if you want, and you don't need to specify additional options files, but you need at least one motif file.


The count command specifies how many motifs you want to choose (depending on the value of each motif, discussed below). The default is 10.

count 10

Random Weights

You can make the program more likely to choose some motifs than others by giving them different weights for the randomizer. The default weight for everything is 100, so if you assign a weight of 200, it'll be twice as likely to be picked, and a weight of 50 will be half as likely. The weight command takes two arguments - a classification and a weight. You can also assign weights to multiple motifs by using *s to mean any classification. Examples:

weight 1.7 70
weight 1.6.* 45

Story Value

You can also specify that some motifs have a higher story content than others - again, the default is 100. Essentially, when you tell the program to choose 10 motifs, you are telling it to choose 1000 points of story value, and each motif is initially worth 100, unless you set it otherwise. It works like the weight specification above, including the *s. For example:

value 1 10
value 1.2.* 120


You can make certain motifs mutually exclusive, that is, once one is chosen none of the others may be chosen. The exclusive command takes arguments of any number of motif classifications, including ones including *s. For example:

exclusive 1.5.1 1.7
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License