Species Mod JSON Format

From SkyCorp Global
Revision as of 20:48, 15 May 2018 by SkyCorp (talk | contribs) (hasUselessHands support)

Species JSON supports a variety of parameters to create custom transformations.

NOTE - Species Modding was introduced for build r24.

Fixed fields

A "type" of "SPECIES" should be used when creating an entity mod.

An "id" field should also be specified with the name of the transformation. Be careful not to use the same id as another mod -- if you use the same mod name as your mod wiki page, you can be assured of no conflicts.

Body part description - Fixed or Dynamic options

A field of "transformedBodyPartDescriptions" can contain definitions for each body part, OR a lua function can be defined for 'getBodyPartDescription'. Usually transformedBodyPartDescriptions is used, unless you need to handle a multi-phased transformation for a particular body part (for instance, growing a small tail, then the tail becoming bigger).

Dynamic fields

Return Type Parameter
string getBodyPartDescription(string bodyPartName, int severity)

Gets description of body part of that species, ie cat ears are "protruding pink and white fur covered triangular ears"

NOTE - If transformedBodyPartDescriptions is used, it will be used instead of this function, unless the body part is undefined.

void causeTF

Causes the player to be transformed a little bit. This function should find some body part (or multiple body parts), change their state, and output relevant text to the screen. If the player is fully transformed already, it should not output any text.

This function should be defined by every species.

boolean getIsFullyTransformed

This function should return whether or not player is 100% the target form. Often used to determine whether to continue calling causeTF() in a forced transformation sequence (ie: lose to a transforming monster).

This function should be defined by every species.

void speciesNatureTick

If player is more than 50% this type of species, then this will be called during gameTick(). This can be useful for species-specific features like turning on/off heat for catgirls, or starting a pregnancy for dragon queens.

void bodyPartTick(BodyPart bodyPart)

This will be called every game tick for each body part that is TF-ed to this species type. Generally isn't used in favor of using speciesNatureTick instead.

boolean hasAlternateVoice

With a non-human voice, players will have difficulty communicating with humans. (False for normal english speech)

string getAlternateVocal

If the player has a non-human voice, what kind of noise do they make when trying to communicate?

boolean hasUselessHands

If true, will prevent the player from interacting with some objects in the game which require fine motor skills. For instance, return true if the player has hooves for hands.