o d d b a l l z - h e x i n g

my (currently very messy) dives into hexing my personal favourite petz-spinoff, oddballz!!
it's a bit more of a hassle to work with than petz is, both because it lacks some tools but also because of some technical limtations when compared to newer petz versions. but oddballz can also do lots of things that petz can't - they can sing, dance, have little addball-emoticons pop up above their head, and their lnz file even has a section for messing with their personality and preferences for toys, food and 'movement' style! so, because of that, and the fact that nobody really... hexes their own oddballz anymore? i wanted to give it a shot.

MOFF breed oddballz [v 1.0]

this is my first ever oddballz hex, purple friend AKA the "moff" breed! he's just a soft, sleepy little moth creature thing. kept very simple as i honestly didn't know how well i'd be able to do any of this. very positively surprised with the outcome, i love this guy!!! if i make more oddballz in the future, they'll get their own page but for now it's just him.

download his egg!
!!! this utilizes external LNZ so you must have the easy edit kits installed for it to work properly !!! if it still doesn't work after that please let me know :(

and how do you do this? uh... don't!

note!!! this is not yet a full tutorial, i am nowhere near an oddballz expert and still have more stuff to write in here once i figure it out better. it's simply the process i went through and some things i learnt on the way until now! i'll revise it and hopefully make it clearer in the future. but for now, if you feel daring and are up to sacrificing a couple days or so to oddballz, hopefully this can help a little bit < :) you should probably stick to petz though if you're still sane.


1. a virtual machine with an OS compatible with oddballz, as the program cannot run on modern computers. there are plenty of tutorials out there on how to get these working, even for beginners which is how i got mine, so search for those!! i use virtualbox and a copy of windows 98se.

2. kind of optional, but you'll want a way to transfer files between your host computer and your VM. the easiest way to do this in my experience has been:
- using .iso or .img files to make disks your virtual machine computer can read / copy files off of
- and to retrieve files off of the machine, locate the .vdi file inside of the virtualbox VMs folder on your host and open or extract it using 7-zip.

3. a full install of oddballz itself, duh! you can get it here. once it's on your vm, make a backup copy of your fresh install and insert the various easy-edit kits as per instructions from here!

4. the sherlock software petz tools (speficially lnz pro and tinker) and a hex editor of your choice. you could get an image editing program as well, but that's generally easier to do on your host.

after setting all of that up and ensuring everything runs properly, we can now start making our own oddballz breed!! i know it's kind of a lot to go through, but it's a one time process.

the actual hexing process!

the first thing i reccommend you doing is activating brain sliders - this is easily done by opening the oddballz.ini file, and inserting "Show Slider Brain=1" underneath the [ODDBALLZ] section.

also, important: i don't know if oddballz is like this for everyone, but if it won't start up after making edits don't worry! that's just the game being a bit... finicky. all you have to do to prevent this is to restart your vm after every edit you make and then open the game to preview. it's a little annoying i know, but you get used to it and it works!

making a new egg show up

the first actual step: go into your oddballz/EGGZ directory and make a copy of the folder named after whatever oddball you would like to use as a base.
to be honest with you i have no actual hex editor knowledge, so eventhough the carolyn's creations tutorial details how to change the length of your oddballz' name, the easiest thing to do is just pick a name with the same amount of letters as the base one. zott --> moff, for example!

rename your copied folder, as well as the .ODD, .ODx and .INI files inside of it to your oddballz' new name. this can be a placeholder, it's not hard to change around again later!

open the .ODD file in your hex editor, and do a "search and replace" for your base oddballz' name and change it to the new one. make sure all occurances get replaced. do a secound, this time regular search for this new name, and keep looking through until you find the name, followed by 2 dots and then 2 numbers like this:
this is what determines their tray number, so where its egg will show up. the first number is the tray, the secound number is the slot. 2, 2 in moff's case means it shows up in the secound tray in the secound slot, so it's right next to grinnz. this is important, because i don't think you can have two oddballz appear in the same slot!
save your .ODD file, and open up the .ODx file. do another search and replace for the original name to the new name in this file. after saving this one, you are done with the scary hex editor and can close it! for now.

if you played with your base-oddball at all before copying, go into the .INI file and remove everything under "Brand New Egg" and change that number to a 1, so all this file should say is something like this -->
this will reset the oddball to a new "fresh" adoptable one, instead of one that might already be grown or have learnt something! you need to do this if you edit their personality later on as well.

now you can restart your vm, and preview your new oddball ingame for the first time! if everything's gone the way it should, you should get a popup saying that the game has detected a new egg, with the name of your own oddball. it'll still look like the base breed, but not for long!

the LNZ part (finally!)

now begins the part that'll actually feel kind of familiar for an experienced petz hexer! i'm assuming here that you have some basic knowledge of how LNZ already works, so i won't be going over absolutely everything.

open up the "small" .lnz file in LNZ pro - it'll be called "AN_small.lnz" in a zott based breed for example, the first two letters depend on your base breed. this is the oddballz equivalent of the child LNZ, except this game still did it in a totally overcomplicated way which we don't want or need.

the way petz handles these files is referring to the adult LNZ as the "default linez file", and any extensions or overrides are applied to that. oddballz instead loads the master.lnz just like the adult linez file does, which means the child lnz has its whole seperate ballz info, addballz, ommissions, et cetera... what i'm getting at is the way petz did it is better and much easier to edit, so remove everything except for [Default Linez File], and make it refer to your eggz' main lnz instead, like this:

once again, the "AN" here depends on what your base breed was. we will return to this and make an actual "baby version" much later. for now, our oddball can't grow anymore, so we can focus on their main lnz!

open up your breed's main LNZ, it should be called exactly the same as the small one just... without the small part! and, right off the bat you should see that oddballz has a LOT more different sections than petz does - and i'm sorry to disappoint, but at the time of writing this i can't really tell you what all of them do yet. i haven't experimented enough!! i will update this once i know more.

i think the visuals of the oddball should take priority for now, anyway. this is the part i can tell you the least about what to do though. it all depends on your hexing style, since it's a creative process! but what i did was look for 'familiar' sections that appear in petz as well, and remove all the breed-specific info in it so i can make something truly my own.

the various "extension" and "enlargement" sections work exactly like they do in petz. [Eyes] and [256 Eyelid Color] do as well, however [256 Iris Color] doesn't do anything as oddballz can't have coloured irises.

[Move Up], [Move Forward] and [Move Sideways] are what's known as just [Move] in newer petz games, but seperated. you work with these by putting a ball number and the amount they'll be moved. forward and sideways work great, but for some reason move up won't display changes properly? the only place it seems to show up is the get info screen, so i am leaving it blank in my files.

[Project Ball] and [Default Scales] should also be familiar and useful to you. i don't know what's up with that latter one, but you can just edit the first two (the ones marked "normal") and it'll work as you'd expect it.

for [Omissions] you can empty it out, just remember that ballz 65 and 66 (zorient, ztrans) are animation-specific ballz just like in petz and should stay omitted. oddballz use the same exact numbers that catz do, so you can just check the ball number chart included with LNZ to omit/unomit the ballz you want.

[Add Ball]... oh boy! this may look a whole lot like its petz equivalent, but works differently. in the basegame, these are only ever used for the various emoticons above an oddballz head, but you can make the game display them permanently! they move a bit strangely and don't properly rotate with the ball if that makes any sense (you kinda just have to see it) but as an addball lover, it's absolutely better than nothing.
the addballs are all neatly labeled which makes it easy to see what's what. the ones between ;flower and ;tears are "standard" emoticons and present in every oddball breed. i like to remove everything past that point to place my own!
what determines when an addball becomes visible is the "group" column, the last number. if you look through the existing addballs, you'll see that every emoticon has it's own group number which i assume is somehow linked to specific oddball behavior... i don't know how to work with that part yet! the best way to figure things out is see what exactly the addball-emoticons are that you want to edit/replace, and to check when they pop up when playing with your oddball and basing it off of that.
to make permanently visible addballz, use 0 as a group number. you can texture them if you add another column after group with the texture number.

[Linez] is another obvious one! remember if you removed addballz to remove their corresponding linez too, else the game gets confused. i personally also like to only leave the emoticon-linez from the original as i prefer to make my own linez later.

[Texture List] and [Ballz Info] are almost exactly the same as they are in petz and work as you'd expect them to. the only thing is that oddballz can't have "semi-transparent" textures, only displaying the texture as is at 0, or displaying it as one colour at 1.
external textures work exactly as they would in petz, just draw your texture and convert it to the game's limited palette and hope for the best! i reccommend putting it inside of your oddballz' folder directly so it's easy to "transfer", if that makes sense.

that should be 1 full scroll through the entire (visual) LNZ! if you did what i did, you should have a blank slate which should just look like a messed up cat (that's what oddballz secretly are!). remember to save and then restart to see it ingame.
from this point, honestly just work on these sections like you would any other pet. previewing often and just experimenting helps a lot! if you change colours, ingame you have to select 'restore original colours' under options to have them take effect.
if you're like me and kind of hate numbers, you can get an install of petz & pet workshop on your vm, and place addballz on a petz breed first so you can copy over the xyz placement and ballsize. you just have to remember that addballz in oddballz are very different. also, very small ballz that petz would display as just 1 pixel do not show up in oddballz, so no liplines no matter how hard you try :(

preferences & behaviour

MASSIVE WORK IN PROGRESS !!! still experimenting and doing research.
please check back sometime later for a more complete guide ; _ ;

[Favorite Flavor] & [Poison Flavor] use numbers that correspond to the colours in the flavorizer. white is 1, and if you count ? from there yellow would be 5, red 8, and so on.

[Favorite Toy] is exactly what it sounds like!
16 - transformer
18 - gravitron
19 - atomic ball
20 - popbox
21 - robo pogo
22 - snoshooter
24 - slime (liquifood)

[Locomote Type] determines the walk animations they usually have! the first number is more often and the secound is a bit more rare. if you only want one animation to play ever, you can put the same number twice. here's what i've gathered from looking through official breeds, i'll search for more and describe these better later:

16 - sneaking along the ground like a cat
20 - normal looking slow walking
28 - "waddly" steps
36 - wormy wiggling
60 - big steppy walk
64 - flying by flapping its arms
76 - bunny/frog hopping
80 - trotting
84 - faster walking
88 - slow running
84 - faster running

[Default Factors] alters the oddballz' personality! there are some instructions as to what numbers do what, but i'm not sure about what all 5 columns mean just yet. inserting different numbers everywhere and then re-adopting your oddball does make them feel quite different though!

[OddLove Breed Name] - did you know some oddballz canonically have crushes on one another? they have specific emoticon addballz for this, but if there isn't one, they just use the heart! it will pop up if the oddball they are in love with was out of its egg right before them. if you don't want your oddball to have a love interest, you can just make its oddlove be its own breed name, and it'll get a heart if you take it out twice in a row! like it's happy to see you!!! i like that a lot.

[Farminator Switches] determines what they turn into when being transformed. i'll work out a full guide of what number means what later, but you can just check the oddballz whose transformations you like and check what numbers they use, they're all labelled in the .lnz files.

[Num Tricks], [Learning Rate], [Vocal Type], [Swat Type], [Sing Type] - i have yet to experiment with at the time of writing, sorry!!!

[Grub Love] is kinda like oddlove in that it triggers the heart emoticon to appear.

[Clumsiness] & [JumpToCeiling] look self explanatory enough? jumptoceiling seems to just be either a 1 or a 0, so yes or no. clumsiness has values and the higher it is the more dumb your oddball is, probably? again, i have to experiment with these more.

the small lnz & [get info]

as i would with a petz pet, i like to return to the small/child lnz after completing the main hexie. just add in some extensions/enlargements and default scales and you're good pretty much. works just like the petz ones after doing the prep step from above, except you need to use a 2nd ballz info instead of overrides, i think.

[Get Info] is a fun section! you can get it in your lnz by copying the one from the MASTER.LNZ (should be inside ptzfiles/odd after inserting the easy edit kit) which is what every breed except for the jester reads from. it works similarly to [Head Shot] from petz, except that you pick a start frame number and a duration of an animation loop! i've played around with this a bit but couldn't find any of the other walking animations yet. i'll update this once i do.

to edit the actual information in the box of the get info window, you have to return to the .ODD file in the hex editor. simply search for your oddballz' name again, find the plaintext description and write something of similar length over it. you can do the same for the "tips" that pop up at the bottom of the screen about your breed.

the egg & sounds

the egg in the case is a sprite and works similarly to sprites in petz (eg, toyz) so, the program for this is tinker! get the .FLH and .FLM files from your folder, open them in tinker and export all of their frames. i much prefer to do any image editing on my host computer which is why i included that bit about file transferring in the prerequisites part. if you have tinker installed on your main computer (which as a hexer, i assume you would?) you can do the whole thing like that, you just need to send them back to the virtual machine and put them in your custom oddballz' folder. no limited colours to worry about this time, as tinker converts them for you automatically! just remember to set the palette to oddballz.

i left sounds for last because they're very very time consuming, and if you don't feel like doing them you should just use another oddballz' sounds as is. the way i did mine on moff though was to download the sounds of another oddball breed from here onto my host computer, and edit every single sound to be higher pitched or messed up in some other way. you could probably record your own sounds too, but that's even more work.

once you're done with this, insert them in a folder inside of your oddballz' egg folder.
because the sounds i picked in this example were originally walret's, their filenames all have "WA" in them. so, to get the game to read these sounds, i went into walret's .ODD file in my hex editor again, searched for 'sounds' which should lead you to a section that looks like this, this is the sound text. select it all and copy it into a notepad document. it will be plaintext but it'll be messed up, so now you have to format it to be 1 sound per line without all the dots.

after you are done with that, change the "Sounds root path=" at the top to say "Sounds root path=eggz\(the name of your oddball)\" and the "PTZFILES\ODD\WA\SOUNDS\" (or similar) infront of every single sound to be whatever you called the folder containing the sounds inside of your eggz directory. make sure this text file is inside of your oddballz' folder as well.
now go into your main LNZ file, find [Sounds] and change it to your text file and what directory it is in (should be eggz\your oddball\ again) and now your oddball should have its own voice!

you can store these files elsewhere too, but i like having everything in its eggz subfolder so it's easy to add to someone elses game of oddballz.

jeez that was A LOT of text!!! thank you for taking the time to read my insane ramblings, even if you don't even wanna make your own oddball! if you do end up making an oddball however, tell me about it! i'd love to see more being made in the current day. i just wanna spread what i know so far...

<----------- also, here's a commemorative zotty stamp for your patience!