Data packs - ZAWA-Evolved/ZAWA GitHub Wiki

A few features of ZAWA: Evolved have been coded to allow customization via data packs! With this information, you will be able to customize things such as: adding new variants to existing animals, changing an animal's breeding item or kibble, altering the items within a diet, and more.

Creating a data pack

First, follow this guide to get started with a working base data pack.

Animal data

See: animal stats

All animal data files exist within the entity_stats data type. For example, the zawa:african_wild_dog file is located at data/zawa/entity_stats/african_wild_dog.json.

Temperament, an enum: timid, neutral, defensive, territorial, or aggressive.
Kibble, an item. This can be any item that exists in your world, written as namespace:id.
Size, an enum: ambient, tiny, small, medium, large, or giant.
Fertility, an enum: low, medium, or high.
Breeding item, an item. This can be any item that exists in your world, written as namespace:id.
Litter size, an integer or ranged integer.
Diet, a string written as namespace:id.
Speed, an enum: slow, medium, or fast.
Enrichment, a list of enrichment type lists: zawa:blocks is a list of any blocks that exist in your world, written as namespace:id; zawa:entities is a list of any entities that exist in your world, written as namespace:id.
Variant count, an integer.
Captive variants, an optional integer.

Data requirements for a full zoo animal differ from an ambient animal. We will use the african wild dog and butterfly as our examples.

african_wild_dog.json

{
  "temperament": "defensive",
  "kibble": "zawa:carnivore_kibble",
  "size": "medium",
  "fertility": "high",
  "breeding_item": "zawa:large_meat",
  "litter_size": {
    "min": 4,
    "max": 5
  },
  "diet": "zawa:large_carnivore",
  "speed": "fast",
  "enrichment": {
    "zawa:blocks": [
      "zawa:scratching_post",
      "zawa:heat_rock",
      "zawa:sprinkler"
    ],
    "zawa:entities": [
      "zawa:scented_ball",
      "zawa:beef_ice_treat"
    ]
  },
  "variant_count": 5,
  "captive_variants": 1
}

butterfly.json

{
  "temperament": "timid",
  "size": "ambient",
  "breeding_item": "minecraft:sugar",
  "speed": "medium",
  "variant_count": 11
}

Adding a new variant

Diet data

File structure

Editing an existing diet

Adding a new diet