Farm Animal
In Staxel, *.farmAnimal files are used to specify a Animal. It specifies the following;
- What the animal's model and body type is.
- What behaviours the animal will have.
- What the animal will give under certain circumstances.
Animals are probably the most complex file to make from scratch. They touch on so many different areas that it isn't uncommon to see at least 7 files per Animal.
Contents
- 1 Creating a *.farmAnimal file
- 2 Config Options
- 2.1 "code"
- 2.2 "airResistance"
- 2.3 "animationParameters"
- 2.4 "catatonic"
- 2.5 "crateTile"
- 2.6 "designs"
- 2.7 "despawnBehaviourKind"
- 2.8 "eatsFromHand"
- 2.9 "eatsGrass"
- 2.10 "eating"
- 2.11 "eggs"
- 2.12 "feedKind"
- 2.13 "grazes"
- 2.14 "happy"
- 2.15 "idleBehaviours"
- 2.16 "jumpForce"
- 2.17 "milkingBehaviours"
- 2.18 "milks"
- 2.19 "models"
- 2.20 "movementVelocity"
- 2.21 "names"
- 2.22 "nudeModels"
- 2.23 "playBehaviours"
- 2.24 "poops"
- 2.25 "pushedForce"
- 2.26 "resistedPushedForce"
- 2.27 "shearingBehaviours"
- 2.28 "sleepy"
- 2.29 "spawnBehaviours"
- 2.30 "standingResistance"
- 2.31 "turnSmoothingFactor"
- 2.32 "unhappy"
- 2.33 "unhappyBehaviours"
- 2.34 "velocityRandomizationFactor"
- 2.35 "wools"
Creating a *.farmAnimal file
Config Options
"code"
Valid options (String): A unique string which species what this Farm Animal is.
Default Value: No default value is specified. Always need to provide your own.
A string containing the code of the farm animal the blob will be referring to.
"airResistance"
Valid options (Double): A positive decimal number.
Default Value: No default value is specified. Always need to provide your own.
This is the amount of resistance to movement the animal will have while on the ground.
"animationParameters"
This is a blob containing the values of how the animal can move and the animation that goes with that. It will commonly look like;
"animationParameters": { "WalkingStrideCycleLength": 0.5, "SwimmingStrideCycleLength": 0.5, "MaxWalkingSpeed": 2.0, "RunningStrideCycleLength": 2.0, "MinRunningSpeed": 3.0, "AnimationJitterFactor": 1.0 },
"AnimationJitterFactor"
Valid options (Float): A positive decimal number.
Default Value: No default value is specified. Always need to provide your own.
This is how much the animation will vary from frame to frame. This effectively changes the animation playing speed where a value of 10 will play the animation 10 times as fast, while 0.1 will take 10 times as long to complete.
"MaxWalkingSpeed"
Valid options (Float): A positive decimal number.
Default Value: No default value is specified. Always need to provide your own.
This is the minimum velocity the animal will change its animation to. Going slower than this value will not make the animal animate slower.
"MinRunningSpeed"
Valid options (Float): A positive decimal number.
Default Value: No default value is specified. Always need to provide your own.
This is the maximum velocity the animal will change its animation to. Going higher than this value will not make the animal animate faster.
"RunningStrideCycleLength"
Valid options (Float): A positive decimal number.
Default Value: No default value is specified. Always need to provide your own.
This is the highest value for how long the running stride will take. Smaller values mean that the animation will repeat more often over a set distance.
"SwimmingStrideCycleLength"
Valid options (Float): A positive decimal number.
Default Value: No default value is specified. Always need to provide your own.
This is the value for how long the swimming stride will take. Smaller values mean that the animation will repeat more often over a set distance.
"WalkingStrideCycleLength"
Valid options (Float): A positive decimal number.
Default Value: No default value is specified. Always need to provide your own.
This is the lowest value for how long the running stride will take. Smaller values mean that the animation will repeat more often over a set distance.
"catatonic"
This is a Blob that contains information on the what the effects that will play when the animal is playing the "staxel.farmAnimalBehaviour.Catatonic" behaviour. (Most commonly done while despawning.) It will commonly look like;
"catatonic": { "emotes": [ "staxel.emote.farmAnimals.Eaiting_1"], },
"emotes"
Valid options (List of Strings): A list of strings each containing the code to a Emote file.
Default Value: No default value is specified. Always need to provide your own.
This is the list of emotes that will be randomly selected in when showing the animal is catatonic.
"crateTile"
Valid options (String): A string containing the code to a Tile
Default Value: No default value is specified. Always need to provide your own.
This is the tile that is given when attempting to capture this animal. It should be the same one to spawn the animal, although it can be different.
"designs"
Valid options (List of Blobs ): A list of blobs.
Default Value: No default value is specified. Always need to provide your own.
This is a list of blobs containing all the different Villager Designs the animal can take. Often this is only used to specify the Species, gender, and Personalities of the animal and not to specify the clothing of the animal.
"despawnBehaviourKind"
Valid options (List of Strings): A list of strings containing the name of a behaviour.
Default Value: No default value is specified. Always need to provide your own.
This is a list of behaviours that the animal will use when despawning from the world. The full list of Behaviour codes and what they do is listed under Animal Behaviours.
"eatsFromHand"
This is an List of Blobs that contains information on each items that can be eaten. This will commonly look like;
"eatsFromHand": [ { "code": "staxel.item.crafting.Wool" } ],
Each blob follows the Items#Universal Spawning Rules of normal items.
"eatsGrass"
Valid options (Bool): True or False
Default Value: No default value is specified. Always need to provide your own.
This will determine if the animal will actually eat the tile tile and lose hunger. Will do nothing unless #"grazes" is true.
"eating"
This is a Blob that contains information on the what the effects that will play when the animal is eating. It will commonly look like;
"happy": { "emotes": [ "staxel.emote.farmAnimals.Eaiting_1"], },
"emotes"
Valid options (List of Strings): A list of strings each containing the code to a Emote file.
Default Value: No default value is specified. Always need to provide your own.
This is the list of emotes that will be randomly selected in when showing the animal is eating.
"eggs"
Valid options (List of Blobs): A list of blobs containing Items. See Items#Universal Spawning Rules for more details.
Default Value: No default value is specified. Always need to provide your own.
This is the list of items you want the Animal to lay on occasion. Each of these items will need to follow the Items#Universal Spawning Rules of normal items.
"feedKind"
Valid options (String): Any valid string.
Default Value: No default value is specified. Always need to provide your own.
This is the string containing what the animal will eat. This animal will then proceed to eat from Tiles that have a Feeder Component with this particular string.
"grazes"
Valid options (Bool): True or False
Default Value: No default value is specified. Always need to provide your own.
This will determine whether or not the Animal will show the eating the ground animation. This will not determine if the animal will turn the grass to dirt. (That is decided by #"eatsGrass".)
"happy"
This is a Blob that contains information on the what the effects that will play when the animal is happy. It will commonly look like;
"happy": { "emotes": [ "staxel.emote.farmAnimals.Happy_1"], "sounds": [ "staxel.sounds.farmAnimals.Chicken.happy_1"] },
"emotes"
Valid options (List of Strings): A list of strings each containing the code to a Emote file.
Default Value: No default value is specified. Always need to provide your own.
This is the list of emotes that will be randomly selected in when showing the animal is happy.
"sounds"
Valid options (List of Strings): A list of strings each containing the code to a Sound file.
Default Value: No default value is specified. Always need to provide your own.
This is the list of sounds that will be randomly selected in when showing the animal is happy.
"idleBehaviours"
Valid options (List of Strings): A list of strings containing the name of a behaviour.
Default Value: No default value is specified. Always need to provide your own.
This is a list of behaviours that the animal will use when the animal is considered Idle. This is often the default behaviour. The full list of Behaviour codes and what they do is listed under Animal Behaviours.
"jumpForce"
Valid options (Double): A positive decimal number.
Default Value: No default value is specified. Always need to provide your own.
This is the force the will get applied when the animal starts to jump. Be sure to set this high enough for your animal to get over blocks.
"milkingBehaviours"
Valid options (List of Strings): A list of strings containing the name of a behaviour.
Default Value: No default value is specified. Always need to provide your own.
This is a list of behaviours that the animal will use when the animal is being milked. The full list of Behaviour codes and what they do is listed under Animal Behaviours.
"milks"
Valid options (List of Blobs): A list of blobs containing Items. See Items#Universal Spawning Rules for more details.
Default Value: No default value is specified. Always need to provide your own.
This is the list of items you want the Animal to give when they are milked. Each of these items will need to follow the Items#Universal Spawning Rules of normal items.
"models"
Valid options (List of Strings): A list of strings each containing the path to a model.
Default Value: No default value is specified. Always need to provide your own.
This is a list of models that will be randomly used when creating the animal.
"movementVelocity"
Valid options (Double): A positive decimal number.
Default Value: No default value is specified. Always need to provide your own.
This is the maximum speed that the Animal will move at.
"names"
Valid options (List of Strings): A list of strings containing any valid values.
Default Value: No default value is specified. Always need to provide your own.
This is a list of names that will be randomly given to the animal upon spawning.
"nudeModels"
Valid options (List of Strings): A list of strings each containing the path to a model.
Default Value: No default value is specified. Always need to provide your own.
This is a list of models that will be randomly used when the animal is sheared. They will go back to a normal model after regrowing their wool.
"playBehaviours"
Valid options (List of Strings): A list of strings containing the name of a behaviour.
Default Value: No default value is specified. Always need to provide your own.
This is a list of behaviours that the animal will use when the animal is interacted with. These behaviours are special and are usually associated with specific items. Such as those with the Throwable Component. The full list of Behaviour codes and what they do is listed under Animal Behaviours.
"poops"
Valid options (List of Blobs): A list of blobs containing Items. See Items#Universal Spawning Rules for more details.
Default Value: No default value is specified. Always need to provide your own.
This is the list of items you want the Animal to poop out on occasion. Each of these items will need to follow the Items#Universal Spawning Rules of normal items.
"pushedForce"
Valid options (Double): A positive decimal number.
Default Value: No default value is specified. Always need to provide your own.
This is the force the will get applied when the animal when it gets pushed. This particular force happens when the animal is idle. (i.e. Not doing anything.)
"resistedPushedForce"
Valid options (Double): A positive decimal number.
Default Value: No default value is specified. Always need to provide your own.
This is the force the will get applied when the animal when it gets pushed. This particular force happens when the animal is not idle. (i.e. Moving, eating etc)
"shearingBehaviours"
Valid options (List of Strings): A list of strings containing the name of a behaviour.
Default Value: No default value is specified. Always need to provide your own.
This is a list of behaviours that the animal will use when the animal is being sheared. The full list of Behaviour codes and what they do is listed under Animal Behaviours.
"sleepy"
Valid options (Bool): True or False
Default Value: If not specified, will default to false.
This will determine if the animal will randomly sleep throughout the day.
"spawnBehaviours"
Valid options (List of Strings): A list of strings containing the name of a behaviour.
Default Value: No default value is specified. Always need to provide your own.
This is a list of behaviours that the animal will use when spawning into the world. The full list of Behaviour codes and what they do is listed under Animal Behaviours.
"standingResistance"
Valid options (Double): A positive decimal number.
Default Value: No default value is specified. Always need to provide your own.
This is the amount of resistance to movement the animal will have while on the ground.
"turnSmoothingFactor"
Valid options (Double): A positive decimal number.
Default Value: No default value is specified. Always need to provide your own.
This is the largest angle you will allow the animal to turn in one tick. Note that this is in Radians.
"unhappy"
This is a Blob that contains information on the what the effects that will play when the animal is unhappy. It will commonly look like;
"unhappy": { "emotes": [ "staxel.emote.farmAnimals.Unhappy_1"], "sounds": [ "staxel.sounds.farmAnimals.Chicken.unhappy_1"] },
"emotes"
Valid options (List of Strings): A list of strings each containing the code to a Emote file.
Default Value: No default value is specified. Always need to provide your own.
This is the list of emotes that will be randomly selected in when showing the animal is unhappy.
"sounds"
Valid options (List of Strings): A list of strings each containing the code to a Sound file.
Default Value: No default value is specified. Always need to provide your own.
This is the list of sounds that will be randomly selected in when showing the animal is unhappy.
"unhappyBehaviours"
Valid options (List of Strings): A list of strings containing the name of a behaviour.
Default Value: No default value is specified. Always need to provide your own.
This is a list of behaviours that the animal will use when the player tries to perform an action while they are unhappy. These are used instead of milking and shearing behaviours when unhappy. The full list of Behaviour codes and what they do is listed under Animal Behaviours.
"velocityRandomizationFactor"
Valid options (Double): A positive decimal number.
Default Value: No default value is specified. Always need to provide your own.
This is the additional randomness added to movement. It will cause animals to move faster or slower while moving between destinations.
"wools"
Valid options (List of Blobs): A list of blobs containing Items. See Items#Universal Spawning Rules for more details.
Default Value: No default value is specified. Always need to provide your own.
This is the list of items you want the Animal to give when they are sheared. Each of these items will need to follow the Items#Universal Spawning Rules of normal items.