Every dial is in config/cityworld_zoo-common.toml.
Spawning is read when a world's biomes are built, so those take a restart; behaviour is read live. Two
commands, both for operators.
[spawns]
One master switch, then a block per species with the same five dials. CityWorld's zoos and a pack's own spawns are separate from all of this.
| Setting | Default | What it does |
|---|---|---|
| natural | true | Spawn the animals naturally at all. Off, they only come from zoos, eggs and whatever spawns them on purpose. |
| <species>.enabled | true | This species spawns naturally. |
| <species>.weight | 2 to 8 0-1000 | Spawn weight against the biome's other creatures. The defaults are on the animals page. |
| <species>.minHerd | 1 to 3 1-32 | Herd size when a group spawns - the smallest. |
| <species>.maxHerd | 2 to 6 1-32 | And the largest. |
| <species>.biomes | per species | Biome ids or #tags it spawns in. Empty means nowhere. |
The species keys are giraffe, zebra, lion,
elephant, tiger, rhesus_macaque,
deer and brown_bear. A block looks like this:
[spawns]
natural = true
[spawns.deer]
enabled = true
weight = 8
minHerd = 2
maxHerd = 5
biomes = ["#minecraft:is_forest", "#minecraft:is_taiga"] [behaviour]
| Setting | Default | What it does |
|---|---|---|
| hunt | true | Lions hunt zebras, deer and farm animals; tigers hunt deer, macaques and farm animals. |
| huntInterval | 1200 20-72000 | How keen a hunter is: on average one hunt starts per this many ticks of having prey in view. 20 ticks is a second, so 1200 is a minute. |
| huntRest | 6000 0-72000 | Ticks a predator rests after a kill before it hunts again. Five minutes by default. |
| protectYoung | true | Lions, tigers and bears attack a player who comes near their cub, as a polar bear does. |
| protectRange | 8 1-32 | How near to a cub, in blocks, is too near. |
Commands
What is registered - the eight entity types, their eggs and sounds - and which build this is. The first thing to run when something looks wrong.
What is loaded near you, counted by species, within that many blocks (1 to 512).
No permission nodes. Both commands are gated on operator level 2. Players need neither: the animals are met in the world, bred with their food, or placed with a spawn egg.
For pack authors
Each animal's place in CityWorld's zoos is one JSON file in this jar, under
data/cityworld_zoo/cityworld/zoo/animal/, and its pen one under
.../zoo/habitat/. A pack that ships the same path replaces it: set the weight to
0 to take an animal out of the zoos, or point it at a habitat of your own.
// data/cityworld_zoo/cityworld/zoo/animal/lion.json - ship this path in your pack to take lions out of the zoos
{ "entity": "cityworld_zoo:lion", "name": "Lions", "weight": 0,
"count": { "min": 1, "max": 3 }, "baby_chance": 0.2,
"size": "small", "habitat": "cityworld_zoo:savanna", "requires_mod": "cityworld_zoo" }
Pen sizes are small,
large (the big multi-chunk pens) and tall (a four-high
fence). requires_mod is what lets an entry sit harmlessly in a world without
the mod it names: CityWorld skips it quietly. The full format, habitats included, is in CityWorld's
palettes guide on GitHub.
For spawn rules, the entity-type tag
#cityworld_zoo:zoo_animals lists all eight, and each has an ordinary loot
table at cityworld_zoo:entities/<animal>. The animals are plain vanilla-style
animals with the standard constructor and attributes, so a mod that makes variants of creatures can
use them as bases.