Tutorial

Here we have the related Tutorial for Zoo Tycoon 1.

Start of uca file

First off, there should be no blank lines or empty bracket ( "[ ]" ) lines between the uca number and the top of your uca. Delete any unnecessary lines. For example, instead of the uca file starting with something like:
[]

[]

[566F83BC]
the uca should start with the following instead:
[566F83BC]

[Global] Section

DefaultSubtype = m
This line tells Zoo Tycoon that if something is missing in the uca file for the female or the young, use the information from the male section instead. This allows making the uca file much smaller. Sometimes this will be set to "f" instead of "m", which tells Zoo Tycoon that if something is missing in the uca file for the male or the young, use the information from the female section instead. This tutorial assumes that "DefaultSubtype" is set to "m".

[AnimPath] Section

If the female of your animal uses the same graphics as the male, it is not efficient to have a separate copy of the graphics for the female. Instead, remove the "animals/566F83BC/f" folder and its contents from the ztd file and have the following line in this section:
f = animals/566F83BC/m
Similarly, if the young of your animal uses the same graphics as the male or if your animal cannot reproduce, remove the "animals/566F83BC/y" folder and its contents from the ztd file and have the following line in this section:
y = animals/566F83BC/m

[m/Characteristics/Strings] Section

cPrefIcon = objects/mangrove/SE/SE
"mangrove" needs to be changed to the preferred object that suits your animal. ID#s can be found in the APE section of the forum, but paths are not listed. You can find them in scenery.ztd, scenery3.ztd (DD, XPACK1), and scenery6.ztd (MM, XPACK2). Open one of these in your Winzip program and click on the ai with the corresponding name. Then look for the "Icon=" line. Not all paths are objects/*NAME*/SE/SE. The maple tree's path is Icon=objects/maple/icmaplSE/icmaplSE, for example. You can also get the object's ID from this ai file. Look for the "cNameID =" line. The object's ID is needed in later sections. If the animal is to be compatible with the original Zoo Tycoon, then cPrefIcon should not be set to a DD or MM path; only use paths that are specified in scenery.ztd.

[f/Characteristics/Strings] Section

If the female has the same graphics as the male, then this section should not exist. If the female has different graphics than the male, this section should have two lines. One line will set cListImageName to the name of the image to use for the animal list. The other line will set cPrefIcon to the preferred object for the female, even when it is the same as the male. If this section exists without a "cPrefIcon =" line, than no preferred object will be shown for the female. (If this section does not exist, then Zoo Tycoon shows the male's preferred object for both the male and female.) The female's preferred object does not have to be the same as the male's. However, there is usually no good reason for them to be different.

[m/Characteristics/Integers] Section

This section contains many settings associated with the animal and the exhibit. There are a number of "Chance" settings: cBuildingUseChance, cChaseAnimalChance, cDeathChance, cDrinkWaterChance, cEatVegetationChance, cSickChance, among others. Since these are probabilities, they should not be less than 0 or more than 100. Be careful with these settings because "Chance" looks similar to "Change". cSickChange, for example, is different than cSickChance.

cAnimalDensity
This is the minimum number of squares needed per adult animal. Young animals do not affect exhibit size.

cBashStrength
This indicates how strong the animal is. Blue Fang animals range from 0 to 325. All Blue Fang animals have a cBashStrength line even when it is set to 0. If there is no cBashStrength line, the animal might be invisible in the game.

cCaptivity = 10
This deals with how captivity effects the happiness of your animals. If high enough, then the animal will not be happy, no matter what is done. This is another variable that can cause the frowny face.

cElevationPref
This represents the percentage of the exhibit that must have slopes or cliffs. Zoo Tycoon's definition of a slope or cliff is any grid square side that is at a different height than the square next to it.

cFamily
This sets the family ID associated with the animal. Sometimes the APE tool incorrectly sets this to -1. In this case, the animal might be visible in the original Zoo Tycoon, but it will be invisible in Marine Mania. As long as the value is greater than 0, there should not be any problems with any Zoo Tycoon version.
But for reference, Zoo Tycoon uses the following family IDs: 5200 (Primitive Ungulates), 5201 (Racoon), 5202 (Bears), 5203 (Primates), 5204 (Odd-toed Ungulates), 5205 (Even-toed Ungulates), 5206 (Cat), 5207 (Canine), 5208 (Hyena), 5210 (Marsupial), 5211 (Bird), 5212 (Seal), 5213 (Crocodile), 5214 (Edentate), 5215 (Pig), 5216 (Dinosaur), 5217 (Monster). Marine Mania added: 5218 (Cetacea), 5219 (Lamniformes), 5220 (Invertebrates), 5221 (Carcharhiniformes), 5222 (Anguilliformes), 5223 (Pinniped), 5224 (Sirenia), 5225 (Myliobatidae), 5226 (Testudinae), 5227 (Octopodidae), 5228 (Architeuthidae), 5229 (Perciformes), 5230 (Mustelidae), 5231 (Atlantean). Complete Collection added: 5232 (Monitor Lizards), 5233 (Orectolobiformes), 5234 (Tapirs), 5237 (Rajiformes).

cFootprintX and cFootprintY
These should accurately reflect the number of half squares that the animal will use in its largest animation set. Otherwise it might be difficult to place objects near the animal. Each grid square in Zoo Tycoon uses a 2x2 footprint. For reference, the clouded leopard (and most Zoo Tycoon animals) set cFootprintX to 1 and cFootprintY to 2. The baboon, chimp, penguin, flamingo, gazelle, gorilla, mandrill, ostrich, and warthog set both to 1. The elephant, hippo, and tritops set both to 2. Dinosaurs and tank animals are bigger, including the tritops in DD. (Even Blue Fang was inconsistent with some uca settings.)

cHabitat
This affects the displayed habitat icon. The habitat ID needs to be changed accordingly. The following IDs are recognized: 9400 (Savannah), 9401 (Grassland), 9402 (Deciduous Forest), 9403 (Coniferous Forest), 9404 (Boreal Forest), 9405 (Tropical Rainforest), 9406 (Scrub), 9407 (Highlands), 9408 (Tundra), 9409 (Desert), 9410 (Non-habitat), 9411 (Many), 9412 (Null Habitat), 9413 (Aquatic), 9414 (Bad-habitat).

cHabitatPreference
This represents how suitable the exhibit must be for the suitability indicator to be green. For example, if cHabitatPreference is set to 70, the exhibit suitability must reach at least 70 for the indicator to turn green and for the animal to consider the exhibit to be suitable.

cHabitatSize = 100
All Blue Fang animals have this set to 100. Therefore, all user created animals should also. This does not affect the size of the exhibit that is needed for the animal. cAnimalDensity is used for that.

cHappyReproduceThreshold
This indicates the minimum happiness level the animal must have before it will consider reproducing. If the animal should not reproduce, set this to 100.

cInitialHappiness = 60
This effects how happy your animal is when he is first placed in the exhibit. It usually ranges from 50-100. This can be a variable that decides whether your animal has a frowny (red) face or a smily (green) face. I usually set it to 60 or higher.

cKeeperFoodType
This represents the type of food that the animal eats. The original Zoo Tycoon recognizes: 0 (Hay), 1 (Meat), 2 (Fruits and vegetables), 3 (Bamboo shoots), 4 (Grass and branches), 5 (Fish). Dinosaur Digs added: 6 (Insectivore Chow), 7 (Large Meat Chow), 8 (Large Grass and Leaves Chow). Marine Mania added: 9 (Krill), 10 (Fish), 11 (Chum), 12 (Marine Grass), 13 (Urchin). Unless there is a good reason, use one of the original Zoo Tycoon values (0-5). Dinosaurs and tank animals can be added to the original Zoo Tycoon. (However, tank animals will be on land since the original Zoo Tycoon does not know about tanks.) But these animals will not get the food they need unless it is a food recognized by the original Zoo Tycoon.

cLocation
This represents the location of your animal's origin in the game. Zoo Tycoon recognizes: 9600 (Africa), 9601 (India), 9602 (Siberia), 9603 (Southeast Asia), 9604 (Himalayas), 9605 (China), 9606 (South America), 9607 (North America), 9608 (Arctic), 9609 (Antarctica), 9610 (Eurasia), 9611 (Australia), 9612 (Asia), 9613 (Europe), 9614 (North Africa), 9615 (Pacific Ocean), 9616 (Eastern United States), 9617 (Western United States), 9618 (Many). Marine Mania added: 9625 (Many Locations), 9626 (Arctic), 9627 (Many Locations), 9629 (Many Locations), 9630 (North Pacific Ocean), 9631 (Many Locations), 9632 (Atlantic Ocean), 9633 (Many Oceans).

cMediumRate
This sets the medium speed of your animal. It should not be a higher number than cFastRate.

cNameID = 19000
The "19000" tells Zoo Tycoon that language information is in the uca file instead of a dll file.

cNeedToys = 1
This says whether the animal needs a toy (1) or not (0).

cNumberAnimalsMax
This specifies the maximum number of animals allowed in the exhibit, including animals of other animal types. An exhibit is just wasting space if it is bigger than cNumberAnimalsMax x cAnimalDensity.

cNumberAnimalsMin
This specifies the minimum number of animals that must be in the exhibit for them to be happy. The minimum exhibit size would be cNumberAnimalsMin x cAnimalDensity.

cOffspring
This specifies the number of children that will be born when the animal reproduces. If the animal should not reproduce, set this to 0.

cPctHabitat
It is not obvious what this represents. It might be the minimum percentage of the foliage and rocks that must match the habitat associated with the animal (cHabitat).

cPrefIconID = 7014
This tells Zoo Tycoon what text to display when you scroll over the preferred object icon. This object ID number should correspond to the cPrefIcon setting you used in the [m/Characteristics/Strings] section. That section, described earlier, says how to find the object ID number. (7014 is for the Mangrove Tree.)

cReproductionChance
This is the probability that the animal will have children during each game day, once cHappyReproduceThreshold has been reached. This probability should be very low, as it is in real life. If the animal should not reproduce, set this to 0.

cRockPref
This represents the percentage of the exhibit that must have rocks. Zoo Tycoon uses the relative size of rocks when using this percentage. Therefore, when smaller (1x1 footprint) rocks are used, 4 times the number of rocks are needed as compared to when larger (2x2 footprint) rocks are used. cRockPref deals with rocks from a suitability perspective. A different section, described later, talks about rocks from a happiness perspective.

cSlowRate
This sets the slow speed of your animal. It should not be a higher number than cMediumRate.


cSocial = 0
This says whether the animal wants other animal types in its exhibit (1) or not (0).

cSpacePref
This probably represents the minimum percentage of the exhibit that must not contain anything. Therefore, the total of cTreePref, cRockPref, and cSpacePref should usually be less than 100. (Although nearly half of the Marine Mania animals go over 100, this might be because tanks have depth.)

cSwims
This says whether the animal can enter fresh or salt water (1) or not (0). This does not indicate whether or not the animal can enter tanks. A large set of other settings are used for that. In addition, if a land animal can also swim, there is more than setting cSwims to 1 and adding swim animations. water_idle must be defined in the Animations sections. If not, the animal will cause the game to crash. If not defined, cSwims must be 0 and either cEnterWaterChance must be 0 or must not exist in this [m/Characteristics/Integers] section. If cSwims is 1, it is also desirable to have swim animations, to define "swim" in the Animations sections, to create water behaviors, to create a [AmbientAnimsWater] section, and to have appropriate cEnterWaterChance and cEnterLandChance settings in this [m/Characteristics/Integers] section.

cTreePref
This represents the percentage of the exhibit grid squares that must have foliage. Note that this is a different definition than used for cRockPref. When smaller rocks are used, you do not have to fill a grid square. But when smaller (1x1 footprint) foliage is used, each grid square should contain 4 plants. Each of these grid squares will count as one square of foliage from a suitability perspective, but will count as 4 objects from a happiness perspective. A different section, described later, talks about foliage from a happiness perspective.

[f/Characteristics/Integers] Section

Normally this section should not exist because the female should use the male's settings. However, Marine Mania has a problem where it will not show text when you scroll over the preferred object icon for a user created animal. (The original Zoo Tycoon does not have this problem.) There is probably a better way to avoid the problem, but one way to avoid the problem is to add this section with one line: a "cPrefIconID = 7014" line. The number should be the same number that was used in the [m/Characteristics/Integers] section.

[y/Characteristics/Integers] Section

Zoo Tycoon animals always have this section with settings for cAttractiveness, cChaseAnimalChance, and cIsJumper, even when these settings are the same as in the [m/Characteristics/Integers] section. In addition, it cannot hurt to put a "cPrefIconID = 7014" type of line in this section as well. Other settings should only be in this section when they are different than those in the [m/Characteristics/Integers] section, which will not be very often.

[cCompatibleAnimals] Section

This section indicates how other animal types, family types, and genus types will affect this animal. This section contains many pairs of lines. The first line of each pair contains either an animal ID, a family ID, or a genus ID number. The second line of each pair contains the affect that the other animal will have on your animal. A positive number means your animal will be happier when both animals are in the same exhibit. A negative number means your animal will be sadder when both animals are in the same exhibit. (Zoo Tycoon also uses the habitat of the other animal to determine if your animal becomes happier or sadder.) If cSocial is set to 1 in the [m/Characteristics/Integers] section, then this section should contain at least one animal, family, or genus ID with a positive affect value. The IDs for animals can be found in various Blue Fang ztd files (including downloads from Microsoft) or in a freeform unlock file. These IDs can also be found on many ZT sites; look in the APE section.

If an affect value is 0, there is no need to include the pair of lines. For example, instead of having something like the following:
v = 5042
v = 5
v = 5000
v = 0
v = 5001
v = 0
use the following instead:
v = 5042
v = 5
Also, be careful that the same animal, family, or genus ID number is not used more than once in this section.

If the family number is in here with a negative number, you must add the id of your animal with a positive number to counter the negative number. Otherwise, your animal will have a frowny face when another of its kind is added. For example, if your animal id is 566F83BC and cFamily is set to 5203 in the [m/Characteristics/Integers] section and this section has the following:
v = 5203
v = -20
then add the following to this section:
v = 566F83BC
v = 20


[cSuitableObjects] Section

This section indicates how objects (habitats, foliage, rocks, shelters, toys, poo, etc.) will affect this animal. This section contains many pairs of lines. The first line of each pair contains an object ID number. The second line of each pair contains the affect on happiness. However, the affect value is not the direct affect, just the relative affect. Positive numbers increase happiness. Negative numbers decrease happiness. The greater the value, the bigger the affect on happiness. Of the habitat IDs (9400-9414), the highest affect value should go with the ID that matches the cHabitat ID in the [m/Characteristics/Integers] section.

If an affect value is 0, there is no need to include the pair of lines. For example, instead of having something like the following:
v = 6062
v = -10
v = 7024
v = 0
v = 7025
v = 5
use the following instead:
v = 6062
v = -10
v = 7025
v = 5
Also, be careful that the same object ID number is not used more than once in this section.

Although Blue Fang does not follow this, it probably makes the most sense to have cPrefIconID set to the foliage ID that has the greatest affect value in this [cSuitableObjects] section. If there is no foliage with an affect value greater than zero (for example, for a tundra animal), then cPrefIconID probably should be set to the rock ID that has the greatest affect value in this section.

[cCompatibleTerrain] Section

This section indicates how terrain will affect this animal's suitability. This section contains many pairs of lines. The first line of each pair contains one of the following terrain numbers: 0 (Grass), 1 (Savannah Grass), 2 (Sand), 3 (Dirt), 4 (Rainforest Floor), 5 (Brown Stone), 6 (Gray Stone), 7 (Gravel), 8 (Snow), 9 (Fresh Water), 10 (Salt Water), 11 (Deciduous Floor), 12 (Waterfall), 13 (Coniferous Floor), 14 (Concrete), 15 (Asphalt), 16 (Trampled). The second line of each pair has different meanings. If its number is negative, the terrain decreases the animal's happiness. If its number is zero, the terrain has no affect on the animal's happiness. If its number is positive, this is the percentage of the exhibit that must have this terrain. All of the positive, second line numbers in this section should add up to 100. So, for example, if this section contains:
v = 6
v = 15
v = 8
v = 80
v = 9
v = 5
then the animal's exhibit must have 15% gray stone (6), 80% snow ( 8 ), and 5% fresh water (9).

If any second line value is 0, there is no need to include the pair of lines. But be careful that you are not deleting the Grass number of 0. For example, instead of having something like the following:
v = 0
v = 35
v = 1
v = 0
v = 3
v = 10
use the following instead:
v = 0
v = 35
v = 3
v = 10
As another example, instead of having something like the following:
v = 0
v = 0
v = 1
v = -5
use the following instead:
v = 1
v = -5

[m/Animations] Section

This section matches actions (on the left of the equals) with graphics (on the right of the equals). Some of the graphics (such as objects/box/idle/idle.ani) are in Zoo Tycoon's ztd files. Most of the graphics must be in your ztd file in folders within the animals/566F83BC/m folder. If you did not supply a particular set of graphics, then change this section to use graphics that you did supply. For example, if this section has a "jump_high = highjump" line and you did not create "highjump" graphics but you created "run" graphics, use "jump_high = run" instead. Similarly, if your ztd has graphics that is not being used in this section, remove the graphics folder from the ztd. For example, if your ztd has an animals/566F83BC/m/noseair folder but this section does not have "noseair" to the right of any equals, remove the animals/566F83BC/m/noseair folder from your ztd. Sometimes there are garbage lines in this section, such as "v = 8111". These garbage lines should be obvious and can be removed.

[f/Animations] Section

The female should have the same actions as the male. Therefore, this section is not necessary and should be removed.

[y/Animations] Section

If your animal cannot reproduce, this section should be removed. Otherwise, just like the [m/Animations] section, remove any garbage lines, compare the graphics in this section with the folders in the animals/566F83BC/y folder, and make the appropriate changes. Be especially careful with any "jump_high = highjump" line. Some adults can jump high, but the young usually cannot. Therefore, this line should usually be "jump_high = run". After you make any changes, compare this section with the [m/Animations] section. If this section is exactly the same, then the section is not necessary and should be removed.

[Sounds] Section

There should not be animations or sounds in the ztd file that are not used in the uca file. These animations or sounds will slow Zoo Tycoon when it starts, loads a zoo, or loads menus. They will also cause longer downloads and use more bandwidth. First off, delete any "wav" files in the ztd unless you put them in the ztd. I would recommend going to the original animals "ai" file (in this case, animals/cloulep.ai for the clouded leopard) and copy its sound section. This way Zoo Tycoon will use its own sound files instead of the ones in your ztd and you can make the ztd smaller by deleting the "wav" files. However, be sure full paths are always used. For example, if you copy the [Sounds] section from animals/gorilla.ai, the line "pant = gorilla1" must be changed to "pant = animals/gorilla/gorilla1.wav". The other lines in the [Sounds] section would have to be changed similarly, except for those that already show full paths.

In case you added a new "wav" file, you need to add it to this section, give it the correct path, give it a name, and add it into the Behavior Sets. For example:
baby1 = animals/566F83BC/lelgrowl.wav
baby1 = 1500
"baby1" is the name that will be used in the Behavior Sets. All of the files you added are in the animals folder. 566F83BC refers to the animal's ID# (also a subfolder). lelgrowl.wav is the sound file you supplied. 566F83BC will have to be changed to your animal's ID# and lelgrowl.wav to the name of your sound file. In "baby1 = 1500", 1500 tells how loud it should be. If you add sound files, be sure they are in "Microsoft PCM, 16 bit" or "Microsoft PCM, 8 bit" format. Zoo Tycoon does not support other formats. For example, it does not support "Microsoft APCM" format.

If sounds are defined in the [Sounds] section, then the [Sounds] section should also define sounds for placesound and pickupsound.
pickupsound = animals/ID#/oneOfTheOtherSounds.wav
pickupsound = 1500
placesound = animals/ID#/oneOfTheOtherSounds.wav
placesound = 1500
These cause the animal to make a sound when you pick up and put down the animal. Make appropriate changes to these lines for your animal and your sound files.

[AmbientAnims] Section

Sometimes the APE tool adds duplicates to this section. If so, remove the duplicates.

[defaultLCID] Section

This section defines the default language code. Since more people that use Zoo Tycoon know English (although not necessarily as their first language) compared to any other language, this section should contain the following line:
LCID = 1033

[m/iCharacteristics/Integers] Section

This section sets a value for "cEnterLandChance". If there is a "cEnterLandChance" setting in the [m/Characteristics/Integers] section, the value here should match the value there. If there is no "cEnterLandChance" setting in the [m/Characteristics/Integers] section, use the following line here:
cEnterLandChance = 100

[f/iCharacteristics/Integers] Section

Since the female's settings should match the male's settings, this section can be deleted.

[y/iCharacteristics/Integers] Section

Since these settings match the male's settings, this section can be deleted.

[1033] Section

This section contains four settings for the English language: cGeneralInfoFileName (with the name of a text file in the ztd file), cLongHelp, cName, and cTheString. The text file should not have long lines that have no spaces. (For example, split web site addresses across lines.) Also, if the text file contains multiple paragraphs, the paragraphs should end with normal "end paragraph" characters instead of using long sequences of spaces and relying on Zoo Tycoon to wrap the lines. Usually these paragraphs should be separated by blank lines as well. For a quality animal, also verify there are no grammar errors in the text file or in the cLongHelp setting.

In addition to the [1033] section, it is also possible to have other language sections. However, only include other sections if they use the appropriate language. If they use English also, do not include those sections in the uca file and do not include their text files in the ztd file.

[m\BehaviorSet\...] Sections

These sections say what the animal should do under various circumstances. There are some things that should be checked. The numbers in each "f = fPlaySetProb(..." line should add up to 100.

There should not be any "Undefined". If "Undefined" is immediately after "(", change it to one of the names to the left of an equals in the [m/Animations] section. If none seem appropriate, then remove the line containing "Undefined". If "Undefined" is after the "," in a "fPlayWithSound" line, change the "Undefined" to a sound name in the [Sounds] section. If none seem appropriate, change "fPlayWithSound(...,Undefined)" to "fPlay(...)". For example, instead of the line "f = fPlayWithSound(shake,Undefined)", either the line "f = fPlayWithSound(shake,sniff)" (if "sniff" is defined in the [Sounds] section) or the line "f = fPlay(shake)" should be used instead. ("fPlayWithSound(shake,sniff)" tells Zoo Tycoon to show the "shake" animation while playing the "sniff" sound.)

There should not be any "f = fPlay()" lines. Just like for "Undefined", these lines should either have an animation name added (such as "f = fPlay(shake)") or they should be removed.

[f\BehaviorSet\...] Sections
The female should have the same behaviors as the male. Therefore, all of these sections should be removed.

[y\BehaviorSet\...] Sections

The APE tool often adds duplicate lines to these sections. These duplicates should be deleted for efficiency and memory savings. If the [m\BehaviorSet\bHappy] section contains one line while the [y\BehaviorSet\bHappy] section contains more than one line, the APE tool added duplicate lines. If the APE tool added duplicate lines to one [y\BehaviorSet\...] section, it added duplicate lines to all [y\BehaviorSet\...] sections. Most of the time, all you have to do is delete all [y\BehaviorSet\...] sections. There are at least two times, however, when you do not want to do this. One is if the young should use different sounds than the adult. Another is if the young is actually an egg that should not move. In the first case, go through all of these sections and make them look similar to the male's sections but with different sounds. (Sometimes you may want different behaviors as well.) In the second case, go through all of these sections and make them look similar to the male's sections but without any "fPlayWithSound...", "fMove...", "fWalk...", "fRun..." or "fTrot..." lines.

Additional tips for the ztd file

Sometimes there are unnecessary "pal" files in the ztd file. For example, you may have added a n.pal file to your plaque folder (such as the plgorill folder). However, there might already be another "pal" file (such as plgorill.pal) in this folder. These original "pal" files can be removed.

Ideally, you should not have "pal" files in your animation folders. It is much more efficient to use a common "pal" file that is in the "animals/ID#" folder. But if you do have "pal" files in your animation folders, you can usually remove the original "pal" file that is in the "animals/ID#" folder.

When you create the ztd file, it is more efficient not to save folders in the ztd file. Only the files are important. Also when you create the ztd file, a smaller file is created if you use maximum compression. However, it might not be obvious how to do either of these things with whatever program you are using to create the ztd file.


Kostenlose Webseite von Beepworld
 
Verantwortlich für den Inhalt dieser Seite ist ausschließlich der
Autor dieser Homepage, kontaktierbar über dieses Formular!