food finickiness


if you've played with quite a few petz, or especially a siamese or poodle, it's likely you've noticed that some petz have very strong opinions on food flavors. while this is often attributed to finickiness, and much more likely in petz with a high finickiness value, what actually controls this are different values altogether! pickiness, or "food finickiness" as it's called in the game's code, is actually a value in a pet's sprite descriptors, the same section where a pet's favorite colors, flavors, and other toy preferences are stored. in reflet's .pet file breakdown, these are the last two "unknown" values, marked "unknown 3" and "unknown 4", at the very bottom of the sprite descriptor section.


in order to check these values, we need to find the sprite descriptor section in the pet's file in a hex editor. an easy way to do this is to start near the bottom of the file, at the top of the family tree section, and scroll up until you find the section (marked with "p.f.magicpetzIII") just before the family tree section. select part of the line of FFs just after the section marker.



to make this easier to read, set the number of bytes per line to 23. if this changes the viewpoint of the hex editor, just push the down arrow key to bring the focus back to where you selected before.


now, scroll down until you see a shift somewhere in the columns, like where the column filled with "64" moves over or the one filled with "3C" ends. this is where the sprite descriptors end and the goal descriptors begin, so the first values of these last two columns are the values controlling food finickiness!
the first of these values is the primary control for food finickiness, and has a few different potential values with different effects:

value effect
1 no food finickiness
2pet will only eat one flavor
(this is the pet's favorite flavor, or the first flavor set as their favorite in the case more than one is present)
3pet dislikes cheese, but will accept other flavors
4if value below is high, no food finickiness
if value below is low, pet will only eat favorite flavors (but any flavors set as favorite, rather than just the first)
0this will crash the game when the pet encounters food, don't do this
only 1, 2, and 3 generate naturally in petz, but 4 seems to have special behavior associated with it, so it may have been intended for something that never ended up being added to the game.

something else important to note is that even petz with no food finickiness may still display distaste for flavors that are associated with the other species of pet ("beef" for dogz and "fish" for catz), and will only eat these flavors if they are either one of the pet's favorites or their personality values make them more favorable to them (ex. catz with high dogginess).

the second value is a bit less understood, but tends to be a high number (usually 64) in petz that aren't picky, and a low number in petz that are, so it may be some sort of control for how "tolerant" a pet is of other flavors? as noted, this value also controls the special behavior displayed by value 4!


if you'd like to change a pet's food finickiness, simply change these values according to the above based on how picky you'd like the pet to be, then run the pet's file through PetzByte to recalculate the checksum!


(hi out there!)