cb5406341a | ||
---|---|---|
images/astrology | ||
README.md | ||
abilities.json | ||
calendar.json | ||
elements.json | ||
genders.json | ||
geography.json | ||
mottos.json | ||
natures.json | ||
sexes.json | ||
species.json | ||
traits.json | ||
word-lists.json |
README.md
Floraverse Character Generator Data
The dataset used in the Floraverse Character Generator. It is released under the Creative Commons BY-SA license.
The directory images
contains various images from (or based on images from) the Floraverse website.
The input files used for generating names are not present in this repository. They use Phonagen, and the languages used by the character generator are present as examples in the Phonagen repository.
Files
The files and their format is described below.
For the json
files, the type of the root is given.
When describing a field, the key of the field is followed by the expected type of the field in parentheses.
A distribution
of type type
is a map object whose keys correspond to the value of the name
field of the given type
and associated values are number
giving the corresponding weight in the distribution.
calendar.json
Contains the description of the calendar year and astrological signs.
The root is an object
containing two fields:
months
(list
:month
): the list of monthsastrological-signs
(list
:sign
): the list of astrological signs
A month
object has the following fields:
number
(integer
): the numerical representation of the month in datesname
(string
): the name of the monthdays
(integer
): the number of days in the monthnamed-after
(string
): the origin of the name
A sign
object has the following fields:
name
(string
): the name of the signsymbol
(string
): the path to the image of the symbol of the signfrom
(date
): the starting date of the astrological signto
(date
): the ending date of the astrological sign
A date
objects used in the astrological signs has the folowing fields:
month
(integer
): the month of the dateday
(integer
): the day of the date
genders.json
Contains the description of (english) genders. Mostly for grammatical use when generating sentences.
The root is a list
of gender
objects.
A gender
object has the following fields:
name
(string
): the name of the gendertitle
(string
): the honorific used to indicate the gender of a persontitle-abbreviation
(string
): the abbreviation of the titlesubject
(string
): the 3rd person subject pronoun corresponding to the genderobject
(string
): the 3rd person object pronoun corresponding to the gendergenitive
(string
): the 3rd person genitive adjective corresponding to the genderreflexive
(string
): the 3rd person reflexive pronoun corresponding to the genderplural?
(boolean
): indicate if verbs should be conjugated in plural when the subject pronoun is the subject of a sentence
sexes.json
Contains the description of biological sexes. Used when generating ancestors or descendants.
The root is a list
of sex
objects.
A sex
object has the following fields:
name
(string
): the name of the sexcontext
(string
): a description indicating in which context to use that object.mother?
(boolean
or thestring
"maybe"
): indicate if individuals of that sex are described as biological mother.gender-distribution
(distribution
:gender
): indicate the default distribution used when generatinggender
for individuals of the givensex
.
elements.json
Contains the description of magical elements. Used for affinities.
The root is an object
containing the following fields:
none
(element
): an element value used for a lack of elemental affinityprimary
(list
:element
): the list of primary elementssecondary
(list
:combined-element
): the list of secondary elementstertiary
(list
:combined-element
): the list of tertiary elements usable by the generator. The composition may diverge from what is described in the comic.tertiary-exact
(list
:combined-element
): the list of tertiary elements as described in the Floraverse comic, but not usable by the generator
The element
object has the following fields:
name
(string
): the name of the elementaffinity-description
(string
): a string used to describe someone or something having an elemental affinityrelated-nouns
(list
:string
): a list of nouns that can be used to convey the idea of the elementrelated-adjectives
(list
:string
): a list of adjectives that can be used to convey the idea of the element
The combined-element
object has the following fields:
components
(list
:string
): a list of elements that compose a combined element; each string correspond to the name of an element.result
(element
): the resulting element of the combination
mottos.json
Contains various mottos and a way to generate variations.
The root is an object
containing the following fields:
prefix
(list
:string
): a list of prefix for making variations of prefixable mottos.prefixable
(list
:string
): a list of prefixable mottos.unprefixable
(list
:string
): a list of unprefixable mottos.
geography.json
Contains the locations. Those are described in a tree structure with places containing other places.
The root is an object
containing the following fields:
location-types
(list
:location-type
): the list of location typesplaces
(place
): the root location (the world)
The location-type
object contains the following fields:
name
(string
): the name of location typepreposition-in
(string
): the preposition to use when indicating something is inside a location of that typepreposition-near
(string
): the preposition to use when indicating something is near a location of that type
The place
object contains the following fields:
name
(string
): the name of the locationreference-link
(string
, optional): an URL to the page where the location is described. If a location has noreference-link
, it means that it is the same as the parent location.type
(string
): the name of alocation-type
indicating the type of the placerestricted?
(boolean
, optional): iftrue
, indicate a location (and its sub-locations) cannot be freely used in generated contents. Default tofalse
.locations
(list
:place
, optional): a list of places located inside the place. Empty by default.
species.json
Contains the species.
The root is an object
containing the following fields:
defaults
(species
): the default values of the species structure. These values are used when not explicited in a species of the list of species.species
(list
:species
): the list of species.crossbreeds
(list
:crossbreed
): the list of crossbreed species. Only childs whose parents are of different species are described.
The species
object contains the following fields:
name
(string
): the name of the speciesreference-link
(string
): an URL to the page where the species is described.endemic-in
(list
:string
): a list ofplace
names where the species is usually found.restricted-to-endemic-areas?
(boolean
): iftrue
, indicate the species can only be found in the places where it is endemic.affinity
(distribution
:element
): the distribution of elemental affinity of the speciessex
(distribution
:sex
): the distribution of sexes of the speciesreproduction
(string
): the way the species reproduce. Possible values are:sexual
for sexual reproductionasexual
for asexual reproductionartifact
for species whose member are built rather than born
asexual-parent-species
(list
:string
): a list ofspecies
name
used in asexual reproduction to indicate which species can generate a member of this speciesgenerable-as-character?
(boolean
): iftrue
, the species can be used by the character generator to generate a charactercitizen?
(boolean
): iftrue
, indicate that member of this species would be considered citizen in civilized places. Usually means that members of this species have a rather high level of intelligence.pet?
(boolean
): iftrue
, indicate that member of this species could be raised as pets or domestic animals in civilized places.wild?
(boolean
): iftrue
, indicate that member of this species are usually considered as wild animals in civilized places.vegetal?
(boolean
): iftrue
, indicate a species whose members are unable to move on their own, like trees.mimic?
(boolean
): iftrue
, indicate the species physically mimics other species, and member of this species (the real species) must be instanciated with another associated species (the immited species). Members of this species usually physically look like members of the immited species, but with modifications from their real species.mimic-method
(mimic-filter
): indicate the filter used for a mimic species to choose the assoicated species during instanciation.mimic-genes-used?
(boolean
): iftrue
, indicate the genes used to compute the species use the real species. Iffalse
, the genes use the immited species.varieties
(list
:species
): a list of species based on this species. They used the values of this species as default values and can be considered as variations of a same species.
The mimic-filter
object contains the following fields:
species
(species
): a filter on the species fields. The associated value may be the value to search or an object of the form{"not": [...]}
to list the values to exclude.relationship
(string
, optional): a filter indicating a relationship between the character of the mimic species and another character from which the species is copied.
The crossbreed
object contains the following fields:
parents
(list
:string
): a list of parent species that give birth to a crossbreed; each string correspond to the name of an species.child
(species
): the crossbreed species; only fields that should be forced instead of computed are needed. An empty object indicate crossbreed is possible.
word-lists.json, natures.json
Contains dictionaries of words classified by categories.
natures.json
is specific to personnality traits.word-lists.json
contain generic categories used for generating various character traits.
The root is an object
whose fields indicate the name of the category and associated values are list
of string
containing the different words of the category.
traits.json
Contains lists of templated sentences grouped in categories.
The root is an object
whose fields indicate the name of the category and associated values are list
of sentence
.
A sentence
is a list of tokens which can be either a string
or a token
.
The sentence is generated by replacing the tokens by strings and concatenating the resulting string list with spaces.
A sentence often need a gender
instance as input to generation (as defined in genders.json
).
A token
is a object
containing a single field among those:
gender
(string
): the token should be replaced by the indicated field of agender
instance.verb
(string
): the token should be replaced by a conjugated form of the value using theplural?
field of agender
instance.undefined-article
(string
ortoken
): the token should be replaced by the value prefixed by the undefined article and a space.plural
(string
ortoken
): the token should be replaced by the plural form of the value.word
(string
): the token should be replaced by one of the word of the indicated category (fromword-lists.json
).species
(string
): the token should be replaced by thename
field of one of thespecies
instance (fromspecies.json
) whose field indicated by the value is set totrue
.nature
(value unused): the token should be replaced by a word from a category ofnatures.json
. The value is unused and should be set totrue
.location
(value unused): the token should be replaced by thename
field of alocation
instance (fromgeography.json
). The value is unused and should be set totrue
.
Some fields can take a token
object as a value. Those should be replaced by a string
before applying the token rule.
abilities.json
Contains the list of abilities.
The root
is a list
of ability
objects.
An ability
object contains the following fields:
name
(string
): the name of the abilitydescription
(string
): the description of the abilityauthor
(string
): the original author behind the abilityconditions
(list
:ability-condition
): a list of conditions to get the ability. A generated character can get the ability if one of the condition is respected.
An ability-condition
object contains the following fields:
type
(string
): indicate the kind of condition. The possible values are the strings"species"
and"affinity"
.automatic?
(boolean
): indicate if the ability is automatically got when the condition is respected
A species condition contains the following fields:
species
(string
orlist
:string
): The species or list of species a character should have in its genes to get the ability.gene-threshold
(number
): the percentage of genes of the species to get the ability
An affinity condition contains the following fields:
affinity
(string
): the needed affinity to get the ability