Family Tree: Animal Breeding & LineageСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (76)
release
Family Tree 1.4.0 for Paper and Spigot
1.4.0+plugin31 окт. 2026 г.12Minecraft: 1.20.1, 1.21.1, 1.21.4, 1.21.5, 1.21.8, 1.21.10, 1.21.11, 26.1.2, 26.2, 26.3paper, purpur, spigot
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 1.20.1 Forge
1.4.0+1.20.1-forge31 окт. 2026 г.3Minecraft: 1.20.1forge
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
beta
Family Tree 1.4.0 for 26.3 Neoforge
1.4.0+26.3-neoforge31 окт. 2026 г.12Minecraft: 26.3neoforge
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 26.2 Neoforge
1.4.0+26.2-neoforge31 окт. 2026 г.2Minecraft: 26.2neoforge
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 1.21.11 Neoforge
1.4.0+1.21.11-neoforge31 окт. 2026 г.1Minecraft: 1.21.11neoforge
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 1.21.10 Neoforge
1.4.0+1.21.10-neoforge31 окт. 2026 г.1Minecraft: 1.21.10neoforge
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 1.21.8 Neoforge
1.4.0+1.21.8-neoforge31 окт. 2026 г.2Minecraft: 1.21.8neoforge
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 1.21.5 Neoforge
1.4.0+1.21.5-neoforge31 окт. 2026 г.0Minecraft: 1.21.5neoforge
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 1.21.4 Neoforge
1.4.0+1.21.4-neoforge31 окт. 2026 г.0Minecraft: 1.21.4neoforge
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 1.21.1 Neoforge
1.4.0+1.21.1-neoforge31 окт. 2026 г.10Minecraft: 1.21.1neoforge
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 26.3 Fabric
1.4.0+26.331 окт. 2026 г.14Minecraft: 26.3fabric, quilt
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 26.2 Fabric
1.4.0+26.231 окт. 2026 г.4Minecraft: 26.2fabric, quilt
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 26.1.2 Fabric
1.4.0+26.1.231 окт. 2026 г.2Minecraft: 26.1.2fabric, quilt
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 26.1.1 Fabric
1.4.0+26.1.131 окт. 2026 г.0Minecraft: 26.1.1fabric, quilt
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 1.21.11 Fabric
1.4.0+1.21.1131 окт. 2026 г.2Minecraft: 1.21.11fabric, quilt
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 1.21.10 Fabric
1.4.0+1.21.1031 окт. 2026 г.1Minecraft: 1.21.9, 1.21.10fabric, quilt
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 1.21.8 Fabric
1.4.0+1.21.831 окт. 2026 г.0Minecraft: 1.21.6, 1.21.7, 1.21.8fabric, quilt
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 1.21.5 Fabric
1.4.0+1.21.531 окт. 2026 г.0Minecraft: 1.21.5fabric, quilt
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 1.21.4 Fabric
1.4.0+1.21.431 окт. 2026 г.0Minecraft: 1.21.4fabric, quilt
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 1.21.1 Fabric
1.4.0+1.21.131 окт. 2026 г.2Minecraft: 1.21.1fabric, quilt
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.4.0 for 1.20.1 Fabric
1.4.0+1.20.131 окт. 2026 г.0Minecraft: 1.20.1fabric, quilt
Что нового
# Family Tree 1.4.0
## Breeding planner
Pick two animals and Family Tree shows what their baby can be before you feed them. Choose **Breeding planner** at the top of the browser, or select an animal in the tree and choose **Plan breeding**. Shift-click a second card first to plan that pair.
- For horses, donkeys, mules, llamas, and trader llamas, each foal stat gets its lowest, most likely, and highest value, a bar showing how likely each value is, and the chance the foal beats both parents. Speed is in blocks per second, jump in blocks, and health in hearts. Llamas show chest slots first.
- The odds come from Minecraft's own breeding code, which is the same on every supported version from 1.20.1 to the 26.4 snapshot. A foal's stat lands around its parents' average, spread by the gap between the parents plus 30% of the stat's whole range, and a value past the game's limit bounces back inside it. Family Tree computes those chances exactly instead of sampling.
- A llama foal's strength is a random number from 1 up to the stronger parent's strength, with a 3% chance of one more. The weaker parent doesn't matter, and only that 3% roll can beat the stronger parent.
- Every camel has the same stats, so the planner says so instead of showing ranges.
- A horse and a donkey plan a mule. A llama and a trader llama can have either kind of foal, depending on which parent's breeding code runs.
- The planner warns when a parent is still a baby, or when it isn't loaded nearby and was born in the last two world days.
- The baby gets its species' word in each language: foal, lamb, calf, piglet, kitten, and so on, or a neutral word where a language has none.
Players without the client mod can plan too. `/familytree breed <a> <b>` prints the prediction and the relationship in chat, with the same name and UUID rules as the other commands. In the chest menu, a pet's family page has **Plan breeding**, which lists possible mates and opens the plan as a book. A wolf plan fits on two pages, with each stat's chance to beat both parents right under it. Both use only animals the player may view.
## Variant odds
The planner lists each possible variant with its chance:
- Sheep mix wool colors through the dye recipes, so red and white always make a pink lamb. Colors without a recipe give either parent's color.
- Axolotls take a parent's color, except 1 time in 1,200 when the baby is blue.
- Mooshrooms take a parent's color. Two parents of the same color have a 1 in 1,024 chance of the other color.
- Pandas pass one of each parent's two genes, and each gene can turn random 1 time in 32. The odds are grouped by how the cub looks and which hidden gene it carries.
- Horses keep a parent's coat 4 times in 9 each and get any coat 1 time in 9. Markings work the same way with 2 in 5 for each parent.
- Cats, wolves, llamas, foxes, and the warm and cold cows, pigs, and chickens of 1.21.5 and newer take either parent's variant, half the time each. The plan names both, such as "Variant: Pale 50%, Woods 50%" for two wolves.
- Rabbits take a parent's coat 19 times in 20. The rest of the time the biome where the baby is born picks the coat, and the planner shows that share as decided by the biome.
Frogs are left out, because a frog's color depends on the biome where its tadpole grows up. Animals from other mods are left out because Family Tree can't read their rules.
## How two animals are related
Shift-click a second card in the tree. The panel names the relationship in plain words, such as "Quill and Sorrel are half siblings" or "Aspen and Briar are first cousins", and the cards and links between them light up. Shift-click the card again to stop comparing. When the history has no shared ancestor, the panel says they are "not related as far as Family Tree knows".
The planner shows the same sentence and the baby's inbreeding coefficient, such as 25% for full siblings and 12.5% for half siblings. Vanilla Minecraft ignores inbreeding, so this is information, not a penalty. The coefficients match the textbook values for full and half siblings, double first cousins, and three generations of parent and foal matings. When an animal has a parent that was pruned from the history, the planner says the two may be more closely related than shown. **Show relationship** opens a tree with just the two animals and the ancestors that connect them.
## Best pairs
**Best pairs** ranks pairs of living adult horses, donkeys, or llamas, or horse and donkey pairs for mules, by the foal's expected speed, jump, health, chest slots, or an overall score. The overall score averages each stat as a share of the game's range. Filters skip close relatives, whose foal would be 1/8 inbred or more, or every known relative, and keep pairs to one owner or to your own animals. Click a pair to open it in the planner. A herd with only some stats recorded still appears, ranked by the stats it has. In a herd of more than 1,500, Best pairs ranks pairs among the 1,500 animals with the best value for the chosen stat, and says so. In a test with 400 horses, ranking took about a tenth of a second.
## See relatives in the world
Hold the grave accent key (`` ` ``, left of 1) and look at an animal Family Tree records. Its relatives that are loaded nearby glow on your screen, each with a label such as "Parent · Comet", "Child · Ember", or "Half sibling · Pip". The animal you look at glows white with a ◆ before its name, and dust particles flow along a line from each parent to it and from it to each child. Look at another animal while you hold the key to switch to its family. The action bar says how many relatives are nearby.
- Labels name parents, children, siblings, half siblings, grandparents, and grandchildren, using the same relationships as the breeding planner. Minecraft animals have no sex, so the words are neutral: parent rather than mother, sibling rather than sister. Aunts, uncles, and cousins stay unlit, so a pen of one large family doesn't light up whole.
- Each relation has its own color from the Okabe-Ito palette, which stays distinguishable with the common kinds of color blindness: orange parents, yellow grandparents, sky-blue children, purple grandchildren, and green siblings. The label always names the relation, so color is never the only cue.
- Labels sit above the head and ears on a dark background, so a horse facing you doesn't cover its label and a bright sky doesn't wash it out. Closer than 6 blocks a label stops growing, and past 12 blocks it stops shrinking.
- The outlines, labels, and lines exist only on your screen. Other players see nothing. The lines show even with Particles set to Minimal.
- The server decides who is related and applies the same `viewPolicy` as the Family Tree screens. Another player's pet that you can't open in Family Tree stays unlit, and so do animals that are related to the one you look at only through that pet. The server answers with at most 32 relatives loaded within 64 blocks of you, named by UUID, and never sends their positions.
- Holding the key sends a request only when you look at an animal it hasn't asked about, at most four a second, and the server turns away faster requests before it looks anything up. Answers are kept until you let go and refreshed every five seconds while you keep looking.
- Settings has two new switches. **Relatives in the world** turns the key off completely, with no requests and no outlines. **Lines to parents and children** hides the particle lines. Change the key under Options > Controls > Family Tree. The default is free in vanilla Minecraft, Jade, JourneyMap, Xaero's Minimap, JEI, REI, and EMI. On NeoForge and Forge the key only works in the world, so it doesn't clash with keys that recipe viewers use in inventory screens.
- Server owners can deny the `familytree.relatives` node to turn the key and the menu button off. `relativesCooldownMillis` in `config/familytree-server.properties` sets the request cooldown, 200 ms by default.
- On a server without Family Tree, the key says so in the action bar. On a server with Family Tree 1.3.0 or older, it says that server's Family Tree can't show relatives. Nothing else changes, and the rest of Family Tree works with a 1.3.0 server as before.
Players without the client mod get **Show relatives nearby** on a pet's family page in the chest menu. It lists the pet's relatives loaded within 64 blocks in chat, with the same labels as the key, and puts a column of colored dust over the pet and each relative. Only the player who pressed it sees the dust.
## Paper, Purpur, and Spigot servers
Family Tree now comes as a plugin for Paper, Spigot, and Paper forks such as Purpur. Put `familytree-1.4.0+plugin.jar` in `plugins/`, and players type `/familytree` for the chest menus without installing anything.
- One jar runs on Paper from 1.20.1 to 26.3 and on Spigot 1.20.1, 1.21.11, and 26.3. Each version in [the guide](../plugin.md#supported-servers) passed its checks on a real server with an unmodded client, and so did Purpur 26.3.
- It records the same animals as the mod: tamed pets on their own, and other animals once a player breeds, names, or adds them with the linking stick. Deaths, horse stats, and variants are recorded too. Spigot doesn't report when frogs, sniffers, and turtles breed, so on Spigot those need a name tag or the linking stick.
- It has the mod's `/familytree` commands, including `breed`, `reload`, and `settings`, the chest menus with search, rename, Add parents, the family book, Plan breeding, and **Show relatives nearby**, and the same `familytree.*` permission nodes.
- `plugins/FamilyTree/config.yml` has the mod's server settings under the same names, each with a comment.
- History stays in the mod's `familytree.dat`, in the same place and format. A world keeps its families when a server moves between the mod and the plugin.
- Players who have the Family Tree client mod get its screens and the relatives key on a plugin server. Fabric clients were tested on Paper, Purpur, and Spigot, NeoForge 1.21.1 and 26.3 clients on Paper, and the Forge 1.20.1 client on Paper.
- On Spigot, item names in the menus show species names in English, and Spigot 1.20.1 asks for search and rename text in chat. Paper shows everything in the player's language and uses an anvil. [Differences from the mod](../plugin.md#differences-from-the-mod) lists the rest.
## Permission nodes for LuckPerms
Server owners can now decide who may do what with LuckPerms or another permission mod. Family Tree checks a `familytree.*` node for every command and action, such as `familytree.rename`, `familytree.locate`, `familytree.parents`, `familytree.others.view` for browsing everyone's pets, `familytree.others.manage` for editing them, `familytree.prune`, and `familytree.breed`. [Family Tree on servers](../servers.md#permission-nodes) lists all 15.
- It uses fabric-permissions-api on Fabric, which LuckPerms includes, and PermissionAPI on NeoForge and Forge. Fabric doesn't need fabric-permissions-api installed. Family Tree only uses it when a permission mod brings it.
- Without a permission mod, or when a node is unset, players get what they got in 1.3.0 by operator level. Nothing changes until an admin sets a node.
- A command a player's nodes deny answers with the node it needs, such as "You don't have permission for that (familytree.locate)", and so does a rename refused on the rename screen. Chest menu buttons disappear when their action is denied. The `/familytree` usage line lists only the subcommands the player may run.
- Menus check the player's nodes again on every click, so a change made with LuckPerms or `/familytree reload` applies without a relog.
- A player who may not locate, because of `ownersCanLocate=false` or a denied `familytree.locate`, receives no pet positions, neither in the family list nor in the reply to a rename. That includes a player who may manage other players' pets.
LuckPerms 5.4.140, the last LuckPerms build for NeoForge 1.21.1, disconnects every player at login on NeoForge 21.1.252 and 21.1.265, with or without Family Tree. On NeoForge 1.21.1, use operator levels.
## Server settings with comments and reload
`config/familytree-server.properties` now explains every setting in a comment above it, with its default and allowed values. `/familytree reload` reads the file again without a restart and names each value Family Tree can't use, in the log and in the admin's chat, with the value it uses instead. Command aliases still change only after Minecraft's `/reload` or a restart. A misspelled setting stays in the file under "Not recognized" so the typo isn't lost. `/familytree settings` lists what differs from the defaults.
New settings, all with 1.3.0's behavior as the default:
- `operatorLevel` sets which permission level counts as an operator.
- `ownersCanLocate`, `ownersCanRename`, `ownersCanEditParents`, and `ownersCanSetAge` can leave those actions to operators.
- Six cooldowns: opening the screens and menu, a player's scans, scans across the server, locating, edits, and the relatives key.
- `listLimit` for `/familytree list`.
- `linkingStick` turns the linking stick off, `linkingStickName` changes the name it needs, and `linkingSelectionSeconds` sets how long it remembers a selection.
- `serverLanguage` answers every player in one language, including players who have the client mod.
- `farmLimitMessage=false` stops the message a breeder gets once at the farm limit, and `locateTeleportLink=false` stops operators' Locate coordinates from filling in a teleport command when clicked.
- `discoverPetsOnLoad=false` stops tamed pets from joining the history just because their chunk loaded.
The locate and edit cooldowns now also cover `/familytree locate`, `pair`, `unpair`, `setage`, `setbirth`, and confirming the linking stick, as they already covered the screens and the chest menu. The console and command blocks have no cooldown.
## Choose species with datapacks
Modpacks can add species to the `familytree:tracked` and `familytree:ignored` entity type tags from a datapack or KubeJS. The server's settings file wins when they disagree, and both win over the farm, wildlife, and modded switches. [Family Tree on servers](../servers.md#datapack-tags) has an example.
## Tested on servers
Family Tree ran on dedicated Fabric 1.21.11, NeoForge 1.21.1, and Forge 1.20.1 servers with a modded and an unmodded client joined at once, and with LuckPerms on Fabric 1.21.11 and 26.3, NeoForge 1.21.11 and 26.3, and Forge 1.20.1. The servers also ran spark, Lithium or Canary, FerriteCore, ModernFix, C2ME, Krypton, Chunky, ServerCore, No Chat Reports, and Clumps where those have builds. [Family Tree on servers](../servers.md#tested-servers) lists the versions and results.
With 5,000 farm animals in the history, Family Tree used 0.4% of the server thread while two players opened its screens, saved, and scanned, and its records took under 1 MB of memory.
## Ready for Minecraft 26.4
Minecraft 26.4 is still in snapshots, so this release has no 26.4 file. The source builds Fabric for 26.4-snapshot-6, and on October 31, 2026 that build passed the server smoke test, the client demo, a real server with a modded and an unmodded client, and the upgrade of a 26.3 world with its history. A Fabric file for 26.4 follows the game's release. It will need Java 25 and Fabric Loader 0.20.1 or newer, because Fabric API for 26.4 requires Loader 0.20. NeoForge has no 26.4 build yet.
## Safer saves and pruning
- If the server stopped while Minecraft was writing `familytree.dat`, or another program held the file when the world loaded, Minecraft couldn't read it and Family Tree saved an empty history over it. Every version since 1.1.0 did this. Family Tree now reads the file itself. If that fails too, it copies the file to `familytree.dat.unreadable-<date>_<time>`, stops recording and saving so the file stays as it was, and tells operators in the server log and in chat when they join. Restore a backup or repair the file, then restart the server. Until then, `/familytree list`, `scan`, `info`, `locate`, and `breed`, the screens, and the linking stick say the history can't be used instead of answering as if it were empty.
- On 26.x, a world whose older `data/familytree.dat` couldn't be imported started an empty history and never tried the import again. It now stays read-only and writes no new file, so the next start imports the older file once it is fixed.
- `/familytree prune` first says how many records it would remove and asks you to run it again with `confirm`. Click the command in chat to fill it in.
- Pruning and automatic farm cleanup keep a removed parent's ID on its children, as before. The tree now marks such a child with a short dashed line and a question mark above its card, and selecting the card says a parent was removed from the history. When the tree shows only your own animals, it says the parent was removed or belongs to another player, because Family Tree can't tell those apart there. Exports draw the same mark and explain it in the footer. Kinship still counts a shared removed parent, so two lambs of a pruned ewe stay siblings.
- Prune and cleanup backups are named by date and time, such as `before-prune-2026-10-31_14-05-09.json`, instead of random numbers.
## Fixes
- Bred foxes are recorded. Since 1.3.0, a fox kit and its parents never joined the history, because foxes breed through their own code instead of the path every other animal takes. Now the kit and both parents join for the player who fed them sweet berries or glow berries, on every loader.
- Breeding turtles adds both parents for the player, as breeding frogs and sniffers does. Baby turtles still hatch from eggs without parents, so name or add them and use **Add parents**.
- When two players fed the two parents, both parents and the baby went to one of them. Now each parent belongs to the player who fed it, and the baby to the first parent's owner, as before. This covers camels too, and a parent whose feeder logs off before the animals breed.
- Riding a camel or a skeleton trap horse no longer adds it to the history when the server ignores its species through `ignoredSpecies` or the `familytree:ignored` tag.
- `/familytree info` counts generations only through animals the player can see, so it matches the screens and tooltips and doesn't reveal how deep a hidden pedigree goes.
- `/familytree info` with a name two pets share listed the choices and then said "No record". It now lists the choices only, and each choice can be clicked to fill in the command with that pet's UUID.
- Locating or editing another player's pet that you can see now says only its owner or an operator can do that, instead of "No record". A pet you can't see still prints "No record" once, not twice.
- Quoted names such as `/familytree info "Treename Test"` now work in `info` and `locate`.
- `/familytree list` no longer repeats an animal's name inside its death message. Locate names the dimension, such as "in the Overworld", and reports a dead animal's last known location in one line.
- "Set Rex to 1 days old" now reads "1 day old", and linking a pig or another animal into its own ancestry says "An animal can't be its own ancestor" instead of calling it a pet.
- A death with no attacker, such as thorns damage from `/damage`, showed "%1$s was killed while trying to hurt %2$s". It now says the animal died. An animal shot by a dispenser's arrow is "shot by Arrow", as in Minecraft's own death message. Records saved before this fix read correctly too.
- `/familytree setage`, `setbirth`, and their help now say what a world day is: 20 minutes of the world running. Ages still count those days, so sleeping and `/time` don't age animals, and existing birth days keep their meaning.
- With Jade's Horse Stats or WTHIT's horse lines on, the Family Tree tooltip no longer repeats a horse's speed and jump, or a llama's strength in Jade. It still shows health and the parent comparisons for the rest. Turn those off in Jade or WTHIT to get Family Tree's speed and jump lines back.
- On Minecraft 1.21.9 and newer, the Controls screen named Family Tree's key category `key.category.familytree.familytree`. It now says Family Tree.
- A player without the client mod, on a server with the chest menu turned off, saw `key.familytree.open_tree` in the help text. The key hint now goes only to players with the mod.
- On Fabric servers, a player without the client mod got every linking stick message twice, and the first click said the animal was already selected.
## Large families in the tree
- A species view with more than 40 animals now shows its families a page at a time, largest family first, with **<** and **>** to turn pages and a label such as "Families 1–38 of 241". Before, 1,250 sheep fit to 0% and drew as one line, and 250 cats fit to 9% as empty outlines. Now a page of cats fits at 29% with names and faces. A family larger than a page gets a page of its own.
- **Find by name** in a species view jumps to the first animal whose name contains the text, on whatever page it is, and Enter moves to the next match.
- **Fit tree** stops at 25%, where cards still show names. When the family doesn't fit, it centers on the selected animal, or starts at the first card in the top row. Scrolling out stops at 10%, which still shows the shape of a family of 1,245 sheep.
- A generation with more than 10 animals wraps into rows, so a pair with 45 puppies opens at a readable size and exports. Links into a wrapped generation run down its left side and links out of it down its right side, so no line passes under a card.
- A parent's tree now shows each foal's other parent beside it, linked to the foal, so a foal no longer looks like it had one parent. Hiding the parent's branch hides that card too. A foal bred back to its parent or grandparent sits below its younger parent, and in the foal's own tree the older parent sits with the grandparents. The older parent's link to the foal runs down its own lane at the side, so it never runs along another parent's line. A mate whose own parents are in the tree, such as a sibling, links to them.
- A tree still opens with six generations above and below the animal. When there are more, the edge cards get a ▲ or ▼ tab with the number of generations left out, such as "▲ +18" on a 25-generation line. Click the tab to show six more. Exported images carry the same marks.
- **Show all**, hiding a branch, and turning a page no longer move the tree. The selected card, or another card when nothing is selected, stays where it was.
- At 854x480, Minecraft's default window, and other short windows such as 1080p at GUI scale 4, the tree's buttons move to a column beside the tree. In testing, a cow's tree that fit to 12% at 854x480 now fits at 45%.
- In a species view too large for one image, export says how many animals the family has and suggests exporting one animal's tree.
- Exported images are named after the animal or species and the date, such as `family-tree-Comet-2026-10-31.png`, with `-2` and so on for later exports that day. Before, the name had a random number.
## Tree cards
- Text on tree cards now grows and shrinks with the zoom. At 275% it fills the card instead of sitting small in a corner. Zoomed far out, text stops shrinking once a letter would be smaller than a screen pixel, and each card shows the rows that still fit, starting with the name. Hover over a card to read what it left out.
- Cards are as tall as their content. A wolf with a name, generation, and owner gets a card about half the old height, and every card in one tree keeps the same height, so rows line up. Exported PNGs keep their old card size.
- Long death messages wrap over up to three lines and keep the day, such as "Rex was poked to death by a sweet berry bush on day 3". A message longer than that ends with "..." and reads in full on hover.
- A 64-character name takes at most two lines, ending with "..." when it is longer, and the card grows so the lines below it stay inside. The full name shows on hover.
- The stats panel moves to another corner of the tree when it would cover the selected card or the card you compare it with.
- A name with Arabic or Hebrew letters no longer reverses the sentence it sits in, such as a tree title, a death line, or a chat answer to a `/familytree` command. Chat gets this only on 1.4.0 clients, because older and unmodded clients would draw the marks that keep the name apart as boxes.
- **Locate pet** and **Waypoint** still close the tree so you can read the answer in chat, but the open key (H by default) now brings back the same tree, zoomed and panned as you left it. The action bar reminds you.
## Browser and other screens
- At GUI scale Auto on a 1920x1080 screen, the browser's buttons took most of the height and the pet list showed half a row. The list now keeps at least two full rows at every GUI scale. Buttons are as wide as their labels, species buttons share one row that you page through with the arrows, and on the smallest screens the less used buttons move into a **More** button. If that still isn't enough, the tabs become one button that steps through them.
- Long rows no longer run into the day column.
- Species buttons use the game's name for every species, so "Dogs", "Cats", and "Parrots" no longer sit next to "Camel" and "Horse".
- Search used to look only in the selected tab. When other tabs have matches, the list now says how many, and clicking that line shows them.
- **Find existing pets** now says how many new pets it found, that it found none nearby, or that the server didn't scan because you pressed it too soon.
- **Add parents** offers only animals that can be the parents: the pet's species, a horse and a donkey for a mule, and none of the pet's own descendants. Before, the server refused other choices only after Confirm. Rows in the pet picker start with the portrait and name, and Tab, the arrow keys, and Enter still pick a row. The hint and error text are centered under the title.
- Escape goes back one screen everywhere, as it does in vanilla's Statistics and Advancements screens. Settings used to close Family Tree instead.
- In Japanese, Chinese, and Korean, Getting started breaks lines between characters and keeps "Family Tree" on one line. On small screens its text scrolls instead of running under the buttons.
## Chest menus
- The family book opens in the game's book screen instead of a lectern, so the Take Book button that did nothing is gone. Breeding plans open the same way.
- A parent's family page said "No recorded children" when its baby belonged to another player. The page and the family book now count every recorded child and say how many the player can't view.
- Variant names such as a fox's or a rabbit's coat were in English in menu tooltips and books, whatever the player's language. They now use the player's language.
- Family book pages measure names at the width the game draws them, including Cyrillic and other wide letters, so a long list of names continues on the next page instead of running off the bottom.
## Upgrade
Update the server and clients together when you can, but 1.4.0 and 1.3.0 still connect to each other. NeoForge and Forge still register protocol 4, and every network addition is optional:
- The relatives key uses two new optional channels, `relatives_request_v1` and `relatives_result_v1`. A 1.4.0 client on a 1.3.0 server shows a message for the key, and the rest of Family Tree works. In testing, Fabric 26.3 and NeoForge 1.21.1 clients joined 1.3.0 servers, showed the message, and opened the Family Tree screens normally.
- The rename reply has one new status for a denied `familytree.rename`. The server sends it only to 1.4.0 clients, which it recognizes by the relatives channel. A 1.3.0 client gets the 1.3.0 reply and a chat line that names the node.
- The breeding planner works from the family list the client already receives. Permission nodes, the new settings, and the species tags add no network channels.
Saved records don't change in 1.4.0, and the data version stays 1. A 1.3.0 history loads unchanged, and the Paper plugin reads and writes the same file. A 1.3.0 settings file keeps every value. Family Tree rewrites it once to add the comments and the new settings at their defaults.
`/familytree prune` now removes nothing until it is repeated with `confirm`. Scripts and console macros that prune need the extra word.
Going back to 1.3.0 keeps every record, because no saved fields changed. Two limits apply:
- 1.3.0 rewrites `config/familytree-server.properties` at every start with only its own settings, so the comments and every setting added in 1.4.0 are lost. Keep a copy of the file. 1.3.0 also ignores permission nodes and uses operator levels.
- Don't go back to 1.3.0 while 1.4.0 reports an unreadable history. 1.3.0 would save an empty history over `familytree.dat`. The `familytree.dat.unreadable-<date>_<time>` copy stays either way.
Minecraft world version restrictions still apply, so each build is for worlds of its own Minecraft version, not for downgrading a newer world.
## Pack authors
- Every integration stays optional. Family Tree bundles none of Jade, WTHIT, Mod Menu, JourneyMap, Xaero's Minimap, or fabric-permissions-api, and starts without them.
- The relatives key defaults to the grave accent. On NeoForge and Forge it only applies in the world, not in inventory screens.
- Family Tree's resources add a zero-width `space` provider for U+2066 to U+2069 to Minecraft's `default` and `uniform` fonts, so the marks that keep right-to-left names apart don't draw as boxes. Font providers from several packs combine, so this doesn't replace a resource pack's fonts.
- Datapacks and KubeJS can choose tracked species with the `familytree:tracked` and `familytree:ignored` tags.
release
Family Tree 1.3.0 for 1.20.1 Forge
1.3.0+1.20.1-forge31 окт. 2026 г.8Minecraft: 1.20.1forge
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
beta
Family Tree 1.3.0 for 26.3 Neoforge
1.3.0+26.3-neoforge31 окт. 2026 г.74Minecraft: 26.3neoforge
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 26.2 Neoforge
1.3.0+26.2-neoforge31 окт. 2026 г.2Minecraft: 26.2neoforge
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 1.21.11 Neoforge
1.3.0+1.21.11-neoforge31 окт. 2026 г.3Minecraft: 1.21.11neoforge
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 1.21.10 Neoforge
1.3.0+1.21.10-neoforge31 окт. 2026 г.3Minecraft: 1.21.10neoforge
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 1.21.8 Neoforge
1.3.0+1.21.8-neoforge31 окт. 2026 г.3Minecraft: 1.21.8neoforge
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 1.21.5 Neoforge
1.3.0+1.21.5-neoforge31 окт. 2026 г.2Minecraft: 1.21.5neoforge
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 1.21.4 Neoforge
1.3.0+1.21.4-neoforge31 окт. 2026 г.1Minecraft: 1.21.4neoforge
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 1.21.1 Neoforge
1.3.0+1.21.1-neoforge31 окт. 2026 г.7Minecraft: 1.21.1neoforge
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 26.3 Fabric
1.3.0+26.331 окт. 2026 г.8Minecraft: 26.3fabric, quilt
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 26.2 Fabric
1.3.0+26.231 окт. 2026 г.9Minecraft: 26.2fabric, quilt
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 26.1.2 Fabric
1.3.0+26.1.231 окт. 2026 г.7Minecraft: 26.1.2fabric, quilt
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 26.1.1 Fabric
1.3.0+26.1.131 окт. 2026 г.3Minecraft: 26.1.1fabric, quilt
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 1.21.11 Fabric
1.3.0+1.21.1131 окт. 2026 г.7Minecraft: 1.21.11fabric, quilt
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 1.21.10 Fabric
1.3.0+1.21.1031 окт. 2026 г.3Minecraft: 1.21.9, 1.21.10fabric, quilt
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 1.21.8 Fabric
1.3.0+1.21.831 окт. 2026 г.2Minecraft: 1.21.6, 1.21.7, 1.21.8fabric, quilt
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 1.21.5 Fabric
1.3.0+1.21.531 окт. 2026 г.2Minecraft: 1.21.5fabric, quilt
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 1.21.4 Fabric
1.3.0+1.21.431 окт. 2026 г.2Minecraft: 1.21.4fabric, quilt
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 1.21.1 Fabric
1.3.0+1.21.131 окт. 2026 г.5Minecraft: 1.21.1fabric, quilt
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.3.0 for 1.20.1 Fabric
1.3.0+1.20.131 окт. 2026 г.2Minecraft: 1.20.1fabric, quilt
Что нового
# Family Tree 1.3.0
## Chest menus for players without the client mod
Players who join a Family Tree server with an unmodded client can now type `/familytree` to browse in chest menus. Server admins no longer need every player to install the client mod.
- The pet list shows spawn egg icons, names, age, and living or deceased status, 45 pets to a page. Filter by status or species, or search by name in an anvil.
- Click a pet to see its parents, grandparents, and children, and click any relative to move through the family.
- Owners and operators can locate the pet in chat, rename it in Family Tree through an anvil, add or clear its parents with a picker and a confirmation step, and read the family as a written book on a lectern screen.
- The menus follow the screens' permissions and cooldowns. They never show coordinates, and other players' pets are view-only.
- Every click in a menu is refused before Minecraft moves an item. Shift-click, number keys, dragging, double-click, the offhand key, dropping, and closing with an item on the cursor leave the player's inventory unchanged.
- Players with the client mod keep the full screens. `/familytree` prints the command list and the key that opens them, and `/familytree menu` opens the chest menu.
- `vanillaMenu=false` in `config/familytree-server.properties` turns the menu off. `commandAliases=pets,ft` adds other names for `/familytree`.
The family tree is not drawn on a map item. Text on a 128-pixel map needs a server-side bitmap font, which would leave pet names in Chinese, Japanese, Korean, and other scripts unreadable, and each map adds a permanent file to the world.
## Translations
Family Tree now includes Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, Ukrainian, German, French, Italian, Spanish for Spain and for Mexico, Brazilian Portuguese, Polish, and Turkish. The translations are machine-made, and corrections are welcome on GitHub.
- The server also answers in these languages. Chat messages from commands and the linking stick, and all chest menu text, use the player's Minecraft language when a translation exists, and English otherwise. This works for players without the client mod too.
- Species names in the browser, picker, chat, and menus now come from Minecraft's own entity names, so they follow the game language. `/familytree list` and `/familytree info` no longer contain fixed English text.
- A unit test checks that every language file has exactly the keys and format arguments of the English file.
## Every animal you breed
Family Tree now records cows, mooshrooms, sheep, pigs, chickens, rabbits, goats, foxes, axolotls, frogs, bees, turtles, pandas, ocelots, hoglins, striders, sniffers, armadillos, and breedable animals from other mods, next to your pets.
- Wild animals stay out of the history until a player breeds them, uses a name tag on one, or clicks one with the linking stick. Breeding records the baby and both parents. The player who fed, named, or added them owns them in Family Tree, and babies of a recorded family stay with that family's owner.
- Families already in the history keep growing when their animals breed without a player.
- Frogs, sniffers, and turtles hatch from spawn or eggs, so Minecraft never links their babies to the parents. Breeding frogs or sniffers still adds both parents for the player; turtles need a name tag or the linking stick. Name or add the hatchlings, then use **Add parents**.
- Unnamed animals other than pets get their species and a short code as a name, such as "Sheep 3F2A1C". The name comes from the species id, so it stays the same when you change languages. The pet names stay free for pets.
- `/familytree info` and the linking stick work for every recorded animal. `/familytree list` stops after 100 lines on large farms.
## Variants and rare outcomes
Tree cards, the browser, the details panel, `/familytree info`, and exports show each animal's variant: axolotl, mooshroom, frog, and llama colors, wool color, panda main and hidden genes, and rabbit and fox types. Cows, pigs, and chickens show their warm, cold, or temperate variant on Minecraft 1.21.5 and newer.
- A gold ★ marks a blue axolotl, a brown mooshroom, or a brown panda, and exports explain the star in their legend.
- Select a baby to compare its variant with its parents'. The panel explains surprises: the parents' wool colors mixed, a panda shows a gene both parents carried hidden, a mooshroom changed color (a 1 in 1,024 chance), or a bred axolotl turned blue (about 1 in 1,200). Family Tree judges this at birth, so dyeing a sheep or a lightning strike later doesn't change the explanation.
- Search matches variant names, so "blue" finds blue axolotls.
## Portraits for every species
Every animal in the browser and tree shows its in-game model with its variant, including modded animals. Exports reuse those portraits: the screen briefly shows them on black and white while the image is prepared, and the PNG is still drawn in the background. Cats, wolves, and horses keep their texture portraits in exports.
## Browser
Once the history holds more than one kind of animal, the browser shows tabs for Pets, Farm, Wildlife, and Modded, and the species buttons follow the selected tab. A history with only pets looks as it did in 1.2.0. Species forests with many separate families wrap into rows instead of one long strip, and cards off the screen are no longer drawn.
## Server settings and storage limits
`config/familytree-server.properties` gains these settings. The [README](../../README.md#server-settings-for-animals) describes each one.
- `trackFarmAnimals`, `trackWildlife`, and `trackModdedAnimals` turn categories on or off. All three are on by default.
- `trackedSpecies` and `ignoredSpecies` override the categories for single species. Ignored species also stop new pets of that species.
- `farmRecordLimit`, 5,000 by default, caps unnamed animals other than pets. At the limit, breeding stops adding them and the breeder hears about it once. Pets and named animals are always recorded.
- `autoPruneFarmRecords` is off by default. When on, reaching the limit writes a JSON backup to `familytree-backups/`, then deletes the oldest deceased unnamed animals other than pets until three quarters of the limit remain. It never deletes pets, named animals, or living animals.
- `/familytree prune farm` deletes every deceased unnamed animal other than a pet after the same backup.
In a test with 5,000 unnamed farm animals, the history encoded for saving in 31 to 50 ms to a 364 KiB file, a full snapshot was 4 pages and 889 KiB, and the client received it in 116 to 196 ms in singleplayer. A cleanup backup at that size was 2.3 MB and took 45 to 91 ms.
## Minecraft 1.21.4 to 1.21.10
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.4, 1.21.5, 1.21.8, and 1.21.10. With them it covers 1.21.1 and every release from 1.21.4 to 1.21.11. The Fabric 1.21.8 file also runs on 1.21.6 and 1.21.7, and the Fabric 1.21.10 file on 1.21.9. Each NeoForge file declares one Minecraft version. All of them run on Java 21.
| Minecraft | Fabric | NeoForge |
| --- | --- | --- |
| 1.21.4 | Fabric API for 1.21.4 | 21.4.161 or newer within 21.4 |
| 1.21.5 | Fabric API for 1.21.5 | 21.5.101 or newer within 21.5 |
| 1.21.6, 1.21.7 | The 1.21.8 file, with Fabric API for your version | No build |
| 1.21.8 | Fabric API for 1.21.8 | 21.8.57 or newer within 21.8 |
| 1.21.9 | The 1.21.10 file, with Fabric API for 1.21.9 | No build |
| 1.21.10 | Fabric API for 1.21.10 | 21.10.64 or newer within 21.10 |
These builds include horse stats, portraits, export, the chest menus, and every other feature of the 1.21.1 and 1.21.11 builds.
- Every 1.21 build saves to the world's `data/familytree.dat`, the file 1.21.1 already uses. A 1.21.1 world upgraded to any of these versions keeps its pets, parents, deaths, and horse stats without an import step. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- In testing, a 1.21.1 world with history from Family Tree 1.2.0 kept that history after upgrading to 1.21.4 and to 1.21.10 on Fabric and NeoForge. A world upgraded one version at a time, from 1.21.1 through 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11 to 26.1.1, kept every record.
- Use the same Family Tree version on the server and clients. Older Family Tree releases have no build for these versions.
## Works with Jade and WTHIT
Look at a tracked animal with [Jade](https://modrinth.com/mod/jade) or [WTHIT](https://modrinth.com/mod/wthit) installed, and the tooltip adds its Family Tree name, both parents, and its generation. Horses, donkeys, mules, llamas, and the other horse types also list speed, jump, and health beside their parents' values, with the same ▲ and ▼ markers as the tree.
The tooltip shows only what the player could open in Family Tree's own screens. Pets the server's `viewPolicy` hides stay hidden, a hidden parent shows as unknown, and the tooltip never includes coordinates. When the server also runs Jade or WTHIT, it sends the details for each animal the player looks at. Without the server half, the client uses the last family list it received from the Family Tree screen. Show generation and Show horse stats in Family Tree's settings apply to the tooltip too.
## Waypoints in Xaero's Minimap and JourneyMap
With [Xaero's Minimap](https://modrinth.com/mod/xaeros-minimap) or [JourneyMap](https://modrinth.com/mod/journeymap) installed, the tree screen shows **Waypoint** next to **Locate pet**. JourneyMap gets the waypoint directly. Xaero's Minimap shows a waypoint share from Family Tree in chat, and Xaero's own **Add** link opens its waypoint form with the pet's name and position filled in. The server sends the live position for a loaded pet and the last known position otherwise. Only the pet's owner or an operator can request it, as with Locate pet, and the position never appears in chat for others.
Without either map mod, the tree screen is unchanged.
## Settings from the mod list
Mod Menu on Fabric and Quilt, and the Config button in NeoForge's and Forge's mod list, open Family Tree's settings.
## Send feedback
**Send feedback** in the browser and on the Getting started screen opens a form for a message to the developer, with an optional contact field for a reply. The form lists everything that will be sent: the message, the contact if given, the Family Tree, Minecraft, and loader versions, and the game language. Nothing is sent until you press **Send**, and Family Tree never sends anything on its own or in the background. The feedback server uses your IP address only to limit spam and leaves it out of the email. It accepts three messages per network in ten minutes.
## Fixes
- On Minecraft 26.3, left clicks in the browser and tree did nothing since 1.1.0: a row didn't open the pet's tree, a card couldn't be selected, and dragging didn't pan. Minecraft 26.3 numbers mouse buttons differently from older versions. Clicks now work on every version.
- Deaths without an attacker now read like Minecraft's own death messages, such as "Rex suffocated in a wall on day 12". A pet that suffocated used to show "Died of in wall". The tree, the list command, the chest menu, and the book use the same wording in every language.
- Large families with 32 or more animals in one generation could stop the tree screen from opening because rows were sorted by positions that changed during the sort.
## Upgrade
Update the server and clients together. The snapshot and rename result channels changed to `snapshot_pages_v5` and `rename_result_v3`, and NeoForge and Forge register protocol 4. The chest menus and translations add no saved fields and no network channels. The waypoint button adds the optional `waypoint_request_v1` and `waypoint_result_v1` channels.
Saved records gain one optional `variant_origin` field, which records how a bred animal got its variant. Variants themselves use the existing `variant_id` field. A 1.2.0 history loads unchanged. If you go back to 1.2.0, it keeps every record, including the new animals, and drops `variant_origin` on its next save.
## Pack authors
Every integration is optional. Family Tree doesn't bundle Jade, WTHIT, Mod Menu, JourneyMap, or Xaero's Minimap, and it starts without them. Install Jade or WTHIT on the server as well as the clients to get tooltips for pets a player hasn't opened in the Family Tree screen. The map waypoints and Mod Menu are client-side. Family Tree's own settings are in `config/familytree-client.properties` on each client and `config/familytree-server.properties` on the server.
release
Family Tree 1.2.0 for 1.20.1 Forge
1.2.0+1.20.1-forge29 окт. 2026 г.6Minecraft: 1.20.1forge
Что нового
# Family Tree 1.2.0
## Horse breeding stats
Family Tree records speed, jump height, and health for horses, donkeys, mules, llamas, trader llamas, camels, skeleton horses, and zombie horses. Speed is in blocks per second, jump in blocks, and health in hearts, using the Minecraft Wiki's conversions. Llamas also show strength and their chest slots.
- Tree cards show each animal's stats. A green ▲ marks a stat higher than both parents, and a red ▼ marks one lower than both.
- Select a pet in the tree to compare each stat with both parents' values. Small windows and large GUI scales show a one-line summary instead.
- **Sort** in the browser orders pets by speed, jump, or health. Pets without stats follow in name order.
- Exported PNGs include the stats and a legend for the markers.
- Settings has **Show horse stats** to hide the stats everywhere, including exports.
- `/familytree info <name>` lists the stats.
- Horses, donkeys, mules, skeleton horses, and zombie horses have portraits. In the game they match coat and markings; exports show a side profile cut from the animal's texture. Llamas and camels have in-game portraits only.
Stats are base values, so potion effects don't change them. Family Tree reads them when it records an animal and again whenever the server loads, unloads, or scans it.
## Camels and skeleton trap horses
Minecraft treats every camel as tamed, and skeleton trap horses are tamed without an owner. Version 1.1.0 recorded each of these animals as soon as it loaded, without an owner, so only operators could see them. Now Family Tree records them once a player rides or breeds them, and that player becomes their owner in Family Tree. Minecraft's own ownership stays unchanged. Wild camels nobody rides stay out of the tree. Ownerless records that 1.1.0 already saved stay in the history, and the first player to ride one of those animals becomes its owner.
Foals that are not tamed yet keep their last known location and stats current, because their record already exists from breeding.
## Minecraft 1.21.11
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.11. Fabric needs Fabric API for 1.21.11. NeoForge needs 21.11.48 or newer within 21.11. Both builds run on Java 21.
- A 1.21.1 world upgraded to 1.21.11 keeps its Family Tree history. Both versions save to the same file, so nothing gets imported or converted. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- Tamed nautiluses and zombie nautiluses are recorded, and foals from bred nautiluses keep their parents. They have no portraits; the browser shows the first letter of the name.
## Minecraft 1.20.1 on Fabric and Forge
Family Tree now runs on Minecraft 1.20.1. The Fabric build needs Fabric API 0.92.x for 1.20.1, and the Forge build needs Forge 47.1.0 or newer. Both run on Java 17 and include horse stats and every other feature of the newer builds.
- 1.20.1 worlds keep their history in `data/familytree.dat`, the same file and format that 1.21.1 uses. A 1.20.1 world upgraded to 1.21.1 kept its pets, parents, and deaths in testing.
- Wolves in 1.20.1 have a single coat, so wolf portraits use the tamed wolf texture. Cat and horse portraits match their coats.
- Forge uses the same channel names as the other builds and registers protocol 3. Players without Family Tree can join a Forge server that runs it.
## Quilt
The Fabric builds are now listed for Quilt. With Quilt Loader 0.30.1 and Fabric API, a dedicated server started with Family Tree on all seven Fabric targets. Clients on 1.21.1 and 26.3 joined a Quilt server, received the welcome message, and opened the browser. Older Quilt Loader releases such as 0.24 report a Fabric Loader version below Family Tree's minimum, so Quilt refuses to start the mod on them.
## Upgrade
Update the server and clients together. This release changes the snapshot, open, discovery, and rename channels, and NeoForge registers protocol 3.
Saved records gain one optional `horse_stats` field. Saves from 1.1.0 load unchanged, and horses recorded by 1.1.0 get stats the next time they load. If you go back to 1.1.0, it keeps every record but drops the stats on its next save. They return when the horses load under 1.2.0.
beta
Family Tree 1.2.0 for 26.3 Neoforge
1.2.0+26.3-neoforge29 окт. 2026 г.47Minecraft: 26.3neoforge
Что нового
# Family Tree 1.2.0
## Horse breeding stats
Family Tree records speed, jump height, and health for horses, donkeys, mules, llamas, trader llamas, camels, skeleton horses, and zombie horses. Speed is in blocks per second, jump in blocks, and health in hearts, using the Minecraft Wiki's conversions. Llamas also show strength and their chest slots.
- Tree cards show each animal's stats. A green ▲ marks a stat higher than both parents, and a red ▼ marks one lower than both.
- Select a pet in the tree to compare each stat with both parents' values. Small windows and large GUI scales show a one-line summary instead.
- **Sort** in the browser orders pets by speed, jump, or health. Pets without stats follow in name order.
- Exported PNGs include the stats and a legend for the markers.
- Settings has **Show horse stats** to hide the stats everywhere, including exports.
- `/familytree info <name>` lists the stats.
- Horses, donkeys, mules, skeleton horses, and zombie horses have portraits. In the game they match coat and markings; exports show a side profile cut from the animal's texture. Llamas and camels have in-game portraits only.
Stats are base values, so potion effects don't change them. Family Tree reads them when it records an animal and again whenever the server loads, unloads, or scans it.
## Camels and skeleton trap horses
Minecraft treats every camel as tamed, and skeleton trap horses are tamed without an owner. Version 1.1.0 recorded each of these animals as soon as it loaded, without an owner, so only operators could see them. Now Family Tree records them once a player rides or breeds them, and that player becomes their owner in Family Tree. Minecraft's own ownership stays unchanged. Wild camels nobody rides stay out of the tree. Ownerless records that 1.1.0 already saved stay in the history, and the first player to ride one of those animals becomes its owner.
Foals that are not tamed yet keep their last known location and stats current, because their record already exists from breeding.
## Minecraft 1.21.11
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.11. Fabric needs Fabric API for 1.21.11. NeoForge needs 21.11.48 or newer within 21.11. Both builds run on Java 21.
- A 1.21.1 world upgraded to 1.21.11 keeps its Family Tree history. Both versions save to the same file, so nothing gets imported or converted. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- Tamed nautiluses and zombie nautiluses are recorded, and foals from bred nautiluses keep their parents. They have no portraits; the browser shows the first letter of the name.
## Minecraft 1.20.1 on Fabric and Forge
Family Tree now runs on Minecraft 1.20.1. The Fabric build needs Fabric API 0.92.x for 1.20.1, and the Forge build needs Forge 47.1.0 or newer. Both run on Java 17 and include horse stats and every other feature of the newer builds.
- 1.20.1 worlds keep their history in `data/familytree.dat`, the same file and format that 1.21.1 uses. A 1.20.1 world upgraded to 1.21.1 kept its pets, parents, and deaths in testing.
- Wolves in 1.20.1 have a single coat, so wolf portraits use the tamed wolf texture. Cat and horse portraits match their coats.
- Forge uses the same channel names as the other builds and registers protocol 3. Players without Family Tree can join a Forge server that runs it.
## Quilt
The Fabric builds are now listed for Quilt. With Quilt Loader 0.30.1 and Fabric API, a dedicated server started with Family Tree on all seven Fabric targets. Clients on 1.21.1 and 26.3 joined a Quilt server, received the welcome message, and opened the browser. Older Quilt Loader releases such as 0.24 report a Fabric Loader version below Family Tree's minimum, so Quilt refuses to start the mod on them.
## Upgrade
Update the server and clients together. This release changes the snapshot, open, discovery, and rename channels, and NeoForge registers protocol 3.
Saved records gain one optional `horse_stats` field. Saves from 1.1.0 load unchanged, and horses recorded by 1.1.0 get stats the next time they load. If you go back to 1.1.0, it keeps every record but drops the stats on its next save. They return when the horses load under 1.2.0.
release
Family Tree 1.2.0 for 26.2 Neoforge
1.2.0+26.2-neoforge29 окт. 2026 г.3Minecraft: 26.2neoforge
Что нового
# Family Tree 1.2.0
## Horse breeding stats
Family Tree records speed, jump height, and health for horses, donkeys, mules, llamas, trader llamas, camels, skeleton horses, and zombie horses. Speed is in blocks per second, jump in blocks, and health in hearts, using the Minecraft Wiki's conversions. Llamas also show strength and their chest slots.
- Tree cards show each animal's stats. A green ▲ marks a stat higher than both parents, and a red ▼ marks one lower than both.
- Select a pet in the tree to compare each stat with both parents' values. Small windows and large GUI scales show a one-line summary instead.
- **Sort** in the browser orders pets by speed, jump, or health. Pets without stats follow in name order.
- Exported PNGs include the stats and a legend for the markers.
- Settings has **Show horse stats** to hide the stats everywhere, including exports.
- `/familytree info <name>` lists the stats.
- Horses, donkeys, mules, skeleton horses, and zombie horses have portraits. In the game they match coat and markings; exports show a side profile cut from the animal's texture. Llamas and camels have in-game portraits only.
Stats are base values, so potion effects don't change them. Family Tree reads them when it records an animal and again whenever the server loads, unloads, or scans it.
## Camels and skeleton trap horses
Minecraft treats every camel as tamed, and skeleton trap horses are tamed without an owner. Version 1.1.0 recorded each of these animals as soon as it loaded, without an owner, so only operators could see them. Now Family Tree records them once a player rides or breeds them, and that player becomes their owner in Family Tree. Minecraft's own ownership stays unchanged. Wild camels nobody rides stay out of the tree. Ownerless records that 1.1.0 already saved stay in the history, and the first player to ride one of those animals becomes its owner.
Foals that are not tamed yet keep their last known location and stats current, because their record already exists from breeding.
## Minecraft 1.21.11
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.11. Fabric needs Fabric API for 1.21.11. NeoForge needs 21.11.48 or newer within 21.11. Both builds run on Java 21.
- A 1.21.1 world upgraded to 1.21.11 keeps its Family Tree history. Both versions save to the same file, so nothing gets imported or converted. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- Tamed nautiluses and zombie nautiluses are recorded, and foals from bred nautiluses keep their parents. They have no portraits; the browser shows the first letter of the name.
## Minecraft 1.20.1 on Fabric and Forge
Family Tree now runs on Minecraft 1.20.1. The Fabric build needs Fabric API 0.92.x for 1.20.1, and the Forge build needs Forge 47.1.0 or newer. Both run on Java 17 and include horse stats and every other feature of the newer builds.
- 1.20.1 worlds keep their history in `data/familytree.dat`, the same file and format that 1.21.1 uses. A 1.20.1 world upgraded to 1.21.1 kept its pets, parents, and deaths in testing.
- Wolves in 1.20.1 have a single coat, so wolf portraits use the tamed wolf texture. Cat and horse portraits match their coats.
- Forge uses the same channel names as the other builds and registers protocol 3. Players without Family Tree can join a Forge server that runs it.
## Quilt
The Fabric builds are now listed for Quilt. With Quilt Loader 0.30.1 and Fabric API, a dedicated server started with Family Tree on all seven Fabric targets. Clients on 1.21.1 and 26.3 joined a Quilt server, received the welcome message, and opened the browser. Older Quilt Loader releases such as 0.24 report a Fabric Loader version below Family Tree's minimum, so Quilt refuses to start the mod on them.
## Upgrade
Update the server and clients together. This release changes the snapshot, open, discovery, and rename channels, and NeoForge registers protocol 3.
Saved records gain one optional `horse_stats` field. Saves from 1.1.0 load unchanged, and horses recorded by 1.1.0 get stats the next time they load. If you go back to 1.1.0, it keeps every record but drops the stats on its next save. They return when the horses load under 1.2.0.
release
Family Tree 1.2.0 for 1.21.11 Neoforge
1.2.0+1.21.11-neoforge29 окт. 2026 г.1Minecraft: 1.21.11neoforge
Что нового
# Family Tree 1.2.0
## Horse breeding stats
Family Tree records speed, jump height, and health for horses, donkeys, mules, llamas, trader llamas, camels, skeleton horses, and zombie horses. Speed is in blocks per second, jump in blocks, and health in hearts, using the Minecraft Wiki's conversions. Llamas also show strength and their chest slots.
- Tree cards show each animal's stats. A green ▲ marks a stat higher than both parents, and a red ▼ marks one lower than both.
- Select a pet in the tree to compare each stat with both parents' values. Small windows and large GUI scales show a one-line summary instead.
- **Sort** in the browser orders pets by speed, jump, or health. Pets without stats follow in name order.
- Exported PNGs include the stats and a legend for the markers.
- Settings has **Show horse stats** to hide the stats everywhere, including exports.
- `/familytree info <name>` lists the stats.
- Horses, donkeys, mules, skeleton horses, and zombie horses have portraits. In the game they match coat and markings; exports show a side profile cut from the animal's texture. Llamas and camels have in-game portraits only.
Stats are base values, so potion effects don't change them. Family Tree reads them when it records an animal and again whenever the server loads, unloads, or scans it.
## Camels and skeleton trap horses
Minecraft treats every camel as tamed, and skeleton trap horses are tamed without an owner. Version 1.1.0 recorded each of these animals as soon as it loaded, without an owner, so only operators could see them. Now Family Tree records them once a player rides or breeds them, and that player becomes their owner in Family Tree. Minecraft's own ownership stays unchanged. Wild camels nobody rides stay out of the tree. Ownerless records that 1.1.0 already saved stay in the history, and the first player to ride one of those animals becomes its owner.
Foals that are not tamed yet keep their last known location and stats current, because their record already exists from breeding.
## Minecraft 1.21.11
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.11. Fabric needs Fabric API for 1.21.11. NeoForge needs 21.11.48 or newer within 21.11. Both builds run on Java 21.
- A 1.21.1 world upgraded to 1.21.11 keeps its Family Tree history. Both versions save to the same file, so nothing gets imported or converted. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- Tamed nautiluses and zombie nautiluses are recorded, and foals from bred nautiluses keep their parents. They have no portraits; the browser shows the first letter of the name.
## Minecraft 1.20.1 on Fabric and Forge
Family Tree now runs on Minecraft 1.20.1. The Fabric build needs Fabric API 0.92.x for 1.20.1, and the Forge build needs Forge 47.1.0 or newer. Both run on Java 17 and include horse stats and every other feature of the newer builds.
- 1.20.1 worlds keep their history in `data/familytree.dat`, the same file and format that 1.21.1 uses. A 1.20.1 world upgraded to 1.21.1 kept its pets, parents, and deaths in testing.
- Wolves in 1.20.1 have a single coat, so wolf portraits use the tamed wolf texture. Cat and horse portraits match their coats.
- Forge uses the same channel names as the other builds and registers protocol 3. Players without Family Tree can join a Forge server that runs it.
## Quilt
The Fabric builds are now listed for Quilt. With Quilt Loader 0.30.1 and Fabric API, a dedicated server started with Family Tree on all seven Fabric targets. Clients on 1.21.1 and 26.3 joined a Quilt server, received the welcome message, and opened the browser. Older Quilt Loader releases such as 0.24 report a Fabric Loader version below Family Tree's minimum, so Quilt refuses to start the mod on them.
## Upgrade
Update the server and clients together. This release changes the snapshot, open, discovery, and rename channels, and NeoForge registers protocol 3.
Saved records gain one optional `horse_stats` field. Saves from 1.1.0 load unchanged, and horses recorded by 1.1.0 get stats the next time they load. If you go back to 1.1.0, it keeps every record but drops the stats on its next save. They return when the horses load under 1.2.0.
release
Family Tree 1.2.0 for 1.21.1 Neoforge
1.2.0+1.21.1-neoforge29 окт. 2026 г.6Minecraft: 1.21.1neoforge
Что нового
# Family Tree 1.2.0
## Horse breeding stats
Family Tree records speed, jump height, and health for horses, donkeys, mules, llamas, trader llamas, camels, skeleton horses, and zombie horses. Speed is in blocks per second, jump in blocks, and health in hearts, using the Minecraft Wiki's conversions. Llamas also show strength and their chest slots.
- Tree cards show each animal's stats. A green ▲ marks a stat higher than both parents, and a red ▼ marks one lower than both.
- Select a pet in the tree to compare each stat with both parents' values. Small windows and large GUI scales show a one-line summary instead.
- **Sort** in the browser orders pets by speed, jump, or health. Pets without stats follow in name order.
- Exported PNGs include the stats and a legend for the markers.
- Settings has **Show horse stats** to hide the stats everywhere, including exports.
- `/familytree info <name>` lists the stats.
- Horses, donkeys, mules, skeleton horses, and zombie horses have portraits. In the game they match coat and markings; exports show a side profile cut from the animal's texture. Llamas and camels have in-game portraits only.
Stats are base values, so potion effects don't change them. Family Tree reads them when it records an animal and again whenever the server loads, unloads, or scans it.
## Camels and skeleton trap horses
Minecraft treats every camel as tamed, and skeleton trap horses are tamed without an owner. Version 1.1.0 recorded each of these animals as soon as it loaded, without an owner, so only operators could see them. Now Family Tree records them once a player rides or breeds them, and that player becomes their owner in Family Tree. Minecraft's own ownership stays unchanged. Wild camels nobody rides stay out of the tree. Ownerless records that 1.1.0 already saved stay in the history, and the first player to ride one of those animals becomes its owner.
Foals that are not tamed yet keep their last known location and stats current, because their record already exists from breeding.
## Minecraft 1.21.11
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.11. Fabric needs Fabric API for 1.21.11. NeoForge needs 21.11.48 or newer within 21.11. Both builds run on Java 21.
- A 1.21.1 world upgraded to 1.21.11 keeps its Family Tree history. Both versions save to the same file, so nothing gets imported or converted. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- Tamed nautiluses and zombie nautiluses are recorded, and foals from bred nautiluses keep their parents. They have no portraits; the browser shows the first letter of the name.
## Minecraft 1.20.1 on Fabric and Forge
Family Tree now runs on Minecraft 1.20.1. The Fabric build needs Fabric API 0.92.x for 1.20.1, and the Forge build needs Forge 47.1.0 or newer. Both run on Java 17 and include horse stats and every other feature of the newer builds.
- 1.20.1 worlds keep their history in `data/familytree.dat`, the same file and format that 1.21.1 uses. A 1.20.1 world upgraded to 1.21.1 kept its pets, parents, and deaths in testing.
- Wolves in 1.20.1 have a single coat, so wolf portraits use the tamed wolf texture. Cat and horse portraits match their coats.
- Forge uses the same channel names as the other builds and registers protocol 3. Players without Family Tree can join a Forge server that runs it.
## Quilt
The Fabric builds are now listed for Quilt. With Quilt Loader 0.30.1 and Fabric API, a dedicated server started with Family Tree on all seven Fabric targets. Clients on 1.21.1 and 26.3 joined a Quilt server, received the welcome message, and opened the browser. Older Quilt Loader releases such as 0.24 report a Fabric Loader version below Family Tree's minimum, so Quilt refuses to start the mod on them.
## Upgrade
Update the server and clients together. This release changes the snapshot, open, discovery, and rename channels, and NeoForge registers protocol 3.
Saved records gain one optional `horse_stats` field. Saves from 1.1.0 load unchanged, and horses recorded by 1.1.0 get stats the next time they load. If you go back to 1.1.0, it keeps every record but drops the stats on its next save. They return when the horses load under 1.2.0.
release
Family Tree 1.2.0 for 26.3 Fabric
1.2.0+26.329 окт. 2026 г.15Minecraft: 26.3fabric, quilt
Что нового
# Family Tree 1.2.0
## Horse breeding stats
Family Tree records speed, jump height, and health for horses, donkeys, mules, llamas, trader llamas, camels, skeleton horses, and zombie horses. Speed is in blocks per second, jump in blocks, and health in hearts, using the Minecraft Wiki's conversions. Llamas also show strength and their chest slots.
- Tree cards show each animal's stats. A green ▲ marks a stat higher than both parents, and a red ▼ marks one lower than both.
- Select a pet in the tree to compare each stat with both parents' values. Small windows and large GUI scales show a one-line summary instead.
- **Sort** in the browser orders pets by speed, jump, or health. Pets without stats follow in name order.
- Exported PNGs include the stats and a legend for the markers.
- Settings has **Show horse stats** to hide the stats everywhere, including exports.
- `/familytree info <name>` lists the stats.
- Horses, donkeys, mules, skeleton horses, and zombie horses have portraits. In the game they match coat and markings; exports show a side profile cut from the animal's texture. Llamas and camels have in-game portraits only.
Stats are base values, so potion effects don't change them. Family Tree reads them when it records an animal and again whenever the server loads, unloads, or scans it.
## Camels and skeleton trap horses
Minecraft treats every camel as tamed, and skeleton trap horses are tamed without an owner. Version 1.1.0 recorded each of these animals as soon as it loaded, without an owner, so only operators could see them. Now Family Tree records them once a player rides or breeds them, and that player becomes their owner in Family Tree. Minecraft's own ownership stays unchanged. Wild camels nobody rides stay out of the tree. Ownerless records that 1.1.0 already saved stay in the history, and the first player to ride one of those animals becomes its owner.
Foals that are not tamed yet keep their last known location and stats current, because their record already exists from breeding.
## Minecraft 1.21.11
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.11. Fabric needs Fabric API for 1.21.11. NeoForge needs 21.11.48 or newer within 21.11. Both builds run on Java 21.
- A 1.21.1 world upgraded to 1.21.11 keeps its Family Tree history. Both versions save to the same file, so nothing gets imported or converted. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- Tamed nautiluses and zombie nautiluses are recorded, and foals from bred nautiluses keep their parents. They have no portraits; the browser shows the first letter of the name.
## Minecraft 1.20.1 on Fabric and Forge
Family Tree now runs on Minecraft 1.20.1. The Fabric build needs Fabric API 0.92.x for 1.20.1, and the Forge build needs Forge 47.1.0 or newer. Both run on Java 17 and include horse stats and every other feature of the newer builds.
- 1.20.1 worlds keep their history in `data/familytree.dat`, the same file and format that 1.21.1 uses. A 1.20.1 world upgraded to 1.21.1 kept its pets, parents, and deaths in testing.
- Wolves in 1.20.1 have a single coat, so wolf portraits use the tamed wolf texture. Cat and horse portraits match their coats.
- Forge uses the same channel names as the other builds and registers protocol 3. Players without Family Tree can join a Forge server that runs it.
## Quilt
The Fabric builds are now listed for Quilt. With Quilt Loader 0.30.1 and Fabric API, a dedicated server started with Family Tree on all seven Fabric targets. Clients on 1.21.1 and 26.3 joined a Quilt server, received the welcome message, and opened the browser. Older Quilt Loader releases such as 0.24 report a Fabric Loader version below Family Tree's minimum, so Quilt refuses to start the mod on them.
## Upgrade
Update the server and clients together. This release changes the snapshot, open, discovery, and rename channels, and NeoForge registers protocol 3.
Saved records gain one optional `horse_stats` field. Saves from 1.1.0 load unchanged, and horses recorded by 1.1.0 get stats the next time they load. If you go back to 1.1.0, it keeps every record but drops the stats on its next save. They return when the horses load under 1.2.0.
release
Family Tree 1.2.0 for 26.2 Fabric
1.2.0+26.229 окт. 2026 г.3Minecraft: 26.2fabric, quilt
Что нового
# Family Tree 1.2.0
## Horse breeding stats
Family Tree records speed, jump height, and health for horses, donkeys, mules, llamas, trader llamas, camels, skeleton horses, and zombie horses. Speed is in blocks per second, jump in blocks, and health in hearts, using the Minecraft Wiki's conversions. Llamas also show strength and their chest slots.
- Tree cards show each animal's stats. A green ▲ marks a stat higher than both parents, and a red ▼ marks one lower than both.
- Select a pet in the tree to compare each stat with both parents' values. Small windows and large GUI scales show a one-line summary instead.
- **Sort** in the browser orders pets by speed, jump, or health. Pets without stats follow in name order.
- Exported PNGs include the stats and a legend for the markers.
- Settings has **Show horse stats** to hide the stats everywhere, including exports.
- `/familytree info <name>` lists the stats.
- Horses, donkeys, mules, skeleton horses, and zombie horses have portraits. In the game they match coat and markings; exports show a side profile cut from the animal's texture. Llamas and camels have in-game portraits only.
Stats are base values, so potion effects don't change them. Family Tree reads them when it records an animal and again whenever the server loads, unloads, or scans it.
## Camels and skeleton trap horses
Minecraft treats every camel as tamed, and skeleton trap horses are tamed without an owner. Version 1.1.0 recorded each of these animals as soon as it loaded, without an owner, so only operators could see them. Now Family Tree records them once a player rides or breeds them, and that player becomes their owner in Family Tree. Minecraft's own ownership stays unchanged. Wild camels nobody rides stay out of the tree. Ownerless records that 1.1.0 already saved stay in the history, and the first player to ride one of those animals becomes its owner.
Foals that are not tamed yet keep their last known location and stats current, because their record already exists from breeding.
## Minecraft 1.21.11
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.11. Fabric needs Fabric API for 1.21.11. NeoForge needs 21.11.48 or newer within 21.11. Both builds run on Java 21.
- A 1.21.1 world upgraded to 1.21.11 keeps its Family Tree history. Both versions save to the same file, so nothing gets imported or converted. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- Tamed nautiluses and zombie nautiluses are recorded, and foals from bred nautiluses keep their parents. They have no portraits; the browser shows the first letter of the name.
## Minecraft 1.20.1 on Fabric and Forge
Family Tree now runs on Minecraft 1.20.1. The Fabric build needs Fabric API 0.92.x for 1.20.1, and the Forge build needs Forge 47.1.0 or newer. Both run on Java 17 and include horse stats and every other feature of the newer builds.
- 1.20.1 worlds keep their history in `data/familytree.dat`, the same file and format that 1.21.1 uses. A 1.20.1 world upgraded to 1.21.1 kept its pets, parents, and deaths in testing.
- Wolves in 1.20.1 have a single coat, so wolf portraits use the tamed wolf texture. Cat and horse portraits match their coats.
- Forge uses the same channel names as the other builds and registers protocol 3. Players without Family Tree can join a Forge server that runs it.
## Quilt
The Fabric builds are now listed for Quilt. With Quilt Loader 0.30.1 and Fabric API, a dedicated server started with Family Tree on all seven Fabric targets. Clients on 1.21.1 and 26.3 joined a Quilt server, received the welcome message, and opened the browser. Older Quilt Loader releases such as 0.24 report a Fabric Loader version below Family Tree's minimum, so Quilt refuses to start the mod on them.
## Upgrade
Update the server and clients together. This release changes the snapshot, open, discovery, and rename channels, and NeoForge registers protocol 3.
Saved records gain one optional `horse_stats` field. Saves from 1.1.0 load unchanged, and horses recorded by 1.1.0 get stats the next time they load. If you go back to 1.1.0, it keeps every record but drops the stats on its next save. They return when the horses load under 1.2.0.
release
Family Tree 1.2.0 for 26.1.2 Fabric
1.2.0+26.1.229 окт. 2026 г.5Minecraft: 26.1.2fabric, quilt
Что нового
# Family Tree 1.2.0
## Horse breeding stats
Family Tree records speed, jump height, and health for horses, donkeys, mules, llamas, trader llamas, camels, skeleton horses, and zombie horses. Speed is in blocks per second, jump in blocks, and health in hearts, using the Minecraft Wiki's conversions. Llamas also show strength and their chest slots.
- Tree cards show each animal's stats. A green ▲ marks a stat higher than both parents, and a red ▼ marks one lower than both.
- Select a pet in the tree to compare each stat with both parents' values. Small windows and large GUI scales show a one-line summary instead.
- **Sort** in the browser orders pets by speed, jump, or health. Pets without stats follow in name order.
- Exported PNGs include the stats and a legend for the markers.
- Settings has **Show horse stats** to hide the stats everywhere, including exports.
- `/familytree info <name>` lists the stats.
- Horses, donkeys, mules, skeleton horses, and zombie horses have portraits. In the game they match coat and markings; exports show a side profile cut from the animal's texture. Llamas and camels have in-game portraits only.
Stats are base values, so potion effects don't change them. Family Tree reads them when it records an animal and again whenever the server loads, unloads, or scans it.
## Camels and skeleton trap horses
Minecraft treats every camel as tamed, and skeleton trap horses are tamed without an owner. Version 1.1.0 recorded each of these animals as soon as it loaded, without an owner, so only operators could see them. Now Family Tree records them once a player rides or breeds them, and that player becomes their owner in Family Tree. Minecraft's own ownership stays unchanged. Wild camels nobody rides stay out of the tree. Ownerless records that 1.1.0 already saved stay in the history, and the first player to ride one of those animals becomes its owner.
Foals that are not tamed yet keep their last known location and stats current, because their record already exists from breeding.
## Minecraft 1.21.11
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.11. Fabric needs Fabric API for 1.21.11. NeoForge needs 21.11.48 or newer within 21.11. Both builds run on Java 21.
- A 1.21.1 world upgraded to 1.21.11 keeps its Family Tree history. Both versions save to the same file, so nothing gets imported or converted. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- Tamed nautiluses and zombie nautiluses are recorded, and foals from bred nautiluses keep their parents. They have no portraits; the browser shows the first letter of the name.
## Minecraft 1.20.1 on Fabric and Forge
Family Tree now runs on Minecraft 1.20.1. The Fabric build needs Fabric API 0.92.x for 1.20.1, and the Forge build needs Forge 47.1.0 or newer. Both run on Java 17 and include horse stats and every other feature of the newer builds.
- 1.20.1 worlds keep their history in `data/familytree.dat`, the same file and format that 1.21.1 uses. A 1.20.1 world upgraded to 1.21.1 kept its pets, parents, and deaths in testing.
- Wolves in 1.20.1 have a single coat, so wolf portraits use the tamed wolf texture. Cat and horse portraits match their coats.
- Forge uses the same channel names as the other builds and registers protocol 3. Players without Family Tree can join a Forge server that runs it.
## Quilt
The Fabric builds are now listed for Quilt. With Quilt Loader 0.30.1 and Fabric API, a dedicated server started with Family Tree on all seven Fabric targets. Clients on 1.21.1 and 26.3 joined a Quilt server, received the welcome message, and opened the browser. Older Quilt Loader releases such as 0.24 report a Fabric Loader version below Family Tree's minimum, so Quilt refuses to start the mod on them.
## Upgrade
Update the server and clients together. This release changes the snapshot, open, discovery, and rename channels, and NeoForge registers protocol 3.
Saved records gain one optional `horse_stats` field. Saves from 1.1.0 load unchanged, and horses recorded by 1.1.0 get stats the next time they load. If you go back to 1.1.0, it keeps every record but drops the stats on its next save. They return when the horses load under 1.2.0.
release
Family Tree 1.2.0 for 26.1.1 Fabric
1.2.0+26.1.129 окт. 2026 г.1Minecraft: 26.1.1fabric, quilt
Что нового
# Family Tree 1.2.0
## Horse breeding stats
Family Tree records speed, jump height, and health for horses, donkeys, mules, llamas, trader llamas, camels, skeleton horses, and zombie horses. Speed is in blocks per second, jump in blocks, and health in hearts, using the Minecraft Wiki's conversions. Llamas also show strength and their chest slots.
- Tree cards show each animal's stats. A green ▲ marks a stat higher than both parents, and a red ▼ marks one lower than both.
- Select a pet in the tree to compare each stat with both parents' values. Small windows and large GUI scales show a one-line summary instead.
- **Sort** in the browser orders pets by speed, jump, or health. Pets without stats follow in name order.
- Exported PNGs include the stats and a legend for the markers.
- Settings has **Show horse stats** to hide the stats everywhere, including exports.
- `/familytree info <name>` lists the stats.
- Horses, donkeys, mules, skeleton horses, and zombie horses have portraits. In the game they match coat and markings; exports show a side profile cut from the animal's texture. Llamas and camels have in-game portraits only.
Stats are base values, so potion effects don't change them. Family Tree reads them when it records an animal and again whenever the server loads, unloads, or scans it.
## Camels and skeleton trap horses
Minecraft treats every camel as tamed, and skeleton trap horses are tamed without an owner. Version 1.1.0 recorded each of these animals as soon as it loaded, without an owner, so only operators could see them. Now Family Tree records them once a player rides or breeds them, and that player becomes their owner in Family Tree. Minecraft's own ownership stays unchanged. Wild camels nobody rides stay out of the tree. Ownerless records that 1.1.0 already saved stay in the history, and the first player to ride one of those animals becomes its owner.
Foals that are not tamed yet keep their last known location and stats current, because their record already exists from breeding.
## Minecraft 1.21.11
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.11. Fabric needs Fabric API for 1.21.11. NeoForge needs 21.11.48 or newer within 21.11. Both builds run on Java 21.
- A 1.21.1 world upgraded to 1.21.11 keeps its Family Tree history. Both versions save to the same file, so nothing gets imported or converted. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- Tamed nautiluses and zombie nautiluses are recorded, and foals from bred nautiluses keep their parents. They have no portraits; the browser shows the first letter of the name.
## Minecraft 1.20.1 on Fabric and Forge
Family Tree now runs on Minecraft 1.20.1. The Fabric build needs Fabric API 0.92.x for 1.20.1, and the Forge build needs Forge 47.1.0 or newer. Both run on Java 17 and include horse stats and every other feature of the newer builds.
- 1.20.1 worlds keep their history in `data/familytree.dat`, the same file and format that 1.21.1 uses. A 1.20.1 world upgraded to 1.21.1 kept its pets, parents, and deaths in testing.
- Wolves in 1.20.1 have a single coat, so wolf portraits use the tamed wolf texture. Cat and horse portraits match their coats.
- Forge uses the same channel names as the other builds and registers protocol 3. Players without Family Tree can join a Forge server that runs it.
## Quilt
The Fabric builds are now listed for Quilt. With Quilt Loader 0.30.1 and Fabric API, a dedicated server started with Family Tree on all seven Fabric targets. Clients on 1.21.1 and 26.3 joined a Quilt server, received the welcome message, and opened the browser. Older Quilt Loader releases such as 0.24 report a Fabric Loader version below Family Tree's minimum, so Quilt refuses to start the mod on them.
## Upgrade
Update the server and clients together. This release changes the snapshot, open, discovery, and rename channels, and NeoForge registers protocol 3.
Saved records gain one optional `horse_stats` field. Saves from 1.1.0 load unchanged, and horses recorded by 1.1.0 get stats the next time they load. If you go back to 1.1.0, it keeps every record but drops the stats on its next save. They return when the horses load under 1.2.0.
release
Family Tree 1.2.0 for 1.21.11 Fabric
1.2.0+1.21.1129 окт. 2026 г.3Minecraft: 1.21.11fabric, quilt
Что нового
# Family Tree 1.2.0
## Horse breeding stats
Family Tree records speed, jump height, and health for horses, donkeys, mules, llamas, trader llamas, camels, skeleton horses, and zombie horses. Speed is in blocks per second, jump in blocks, and health in hearts, using the Minecraft Wiki's conversions. Llamas also show strength and their chest slots.
- Tree cards show each animal's stats. A green ▲ marks a stat higher than both parents, and a red ▼ marks one lower than both.
- Select a pet in the tree to compare each stat with both parents' values. Small windows and large GUI scales show a one-line summary instead.
- **Sort** in the browser orders pets by speed, jump, or health. Pets without stats follow in name order.
- Exported PNGs include the stats and a legend for the markers.
- Settings has **Show horse stats** to hide the stats everywhere, including exports.
- `/familytree info <name>` lists the stats.
- Horses, donkeys, mules, skeleton horses, and zombie horses have portraits. In the game they match coat and markings; exports show a side profile cut from the animal's texture. Llamas and camels have in-game portraits only.
Stats are base values, so potion effects don't change them. Family Tree reads them when it records an animal and again whenever the server loads, unloads, or scans it.
## Camels and skeleton trap horses
Minecraft treats every camel as tamed, and skeleton trap horses are tamed without an owner. Version 1.1.0 recorded each of these animals as soon as it loaded, without an owner, so only operators could see them. Now Family Tree records them once a player rides or breeds them, and that player becomes their owner in Family Tree. Minecraft's own ownership stays unchanged. Wild camels nobody rides stay out of the tree. Ownerless records that 1.1.0 already saved stay in the history, and the first player to ride one of those animals becomes its owner.
Foals that are not tamed yet keep their last known location and stats current, because their record already exists from breeding.
## Minecraft 1.21.11
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.11. Fabric needs Fabric API for 1.21.11. NeoForge needs 21.11.48 or newer within 21.11. Both builds run on Java 21.
- A 1.21.1 world upgraded to 1.21.11 keeps its Family Tree history. Both versions save to the same file, so nothing gets imported or converted. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- Tamed nautiluses and zombie nautiluses are recorded, and foals from bred nautiluses keep their parents. They have no portraits; the browser shows the first letter of the name.
## Minecraft 1.20.1 on Fabric and Forge
Family Tree now runs on Minecraft 1.20.1. The Fabric build needs Fabric API 0.92.x for 1.20.1, and the Forge build needs Forge 47.1.0 or newer. Both run on Java 17 and include horse stats and every other feature of the newer builds.
- 1.20.1 worlds keep their history in `data/familytree.dat`, the same file and format that 1.21.1 uses. A 1.20.1 world upgraded to 1.21.1 kept its pets, parents, and deaths in testing.
- Wolves in 1.20.1 have a single coat, so wolf portraits use the tamed wolf texture. Cat and horse portraits match their coats.
- Forge uses the same channel names as the other builds and registers protocol 3. Players without Family Tree can join a Forge server that runs it.
## Quilt
The Fabric builds are now listed for Quilt. With Quilt Loader 0.30.1 and Fabric API, a dedicated server started with Family Tree on all seven Fabric targets. Clients on 1.21.1 and 26.3 joined a Quilt server, received the welcome message, and opened the browser. Older Quilt Loader releases such as 0.24 report a Fabric Loader version below Family Tree's minimum, so Quilt refuses to start the mod on them.
## Upgrade
Update the server and clients together. This release changes the snapshot, open, discovery, and rename channels, and NeoForge registers protocol 3.
Saved records gain one optional `horse_stats` field. Saves from 1.1.0 load unchanged, and horses recorded by 1.1.0 get stats the next time they load. If you go back to 1.1.0, it keeps every record but drops the stats on its next save. They return when the horses load under 1.2.0.
release
Family Tree 1.2.0 for 1.21.1 Fabric
1.2.0+1.21.129 окт. 2026 г.4Minecraft: 1.21.1fabric, quilt
Что нового
# Family Tree 1.2.0
## Horse breeding stats
Family Tree records speed, jump height, and health for horses, donkeys, mules, llamas, trader llamas, camels, skeleton horses, and zombie horses. Speed is in blocks per second, jump in blocks, and health in hearts, using the Minecraft Wiki's conversions. Llamas also show strength and their chest slots.
- Tree cards show each animal's stats. A green ▲ marks a stat higher than both parents, and a red ▼ marks one lower than both.
- Select a pet in the tree to compare each stat with both parents' values. Small windows and large GUI scales show a one-line summary instead.
- **Sort** in the browser orders pets by speed, jump, or health. Pets without stats follow in name order.
- Exported PNGs include the stats and a legend for the markers.
- Settings has **Show horse stats** to hide the stats everywhere, including exports.
- `/familytree info <name>` lists the stats.
- Horses, donkeys, mules, skeleton horses, and zombie horses have portraits. In the game they match coat and markings; exports show a side profile cut from the animal's texture. Llamas and camels have in-game portraits only.
Stats are base values, so potion effects don't change them. Family Tree reads them when it records an animal and again whenever the server loads, unloads, or scans it.
## Camels and skeleton trap horses
Minecraft treats every camel as tamed, and skeleton trap horses are tamed without an owner. Version 1.1.0 recorded each of these animals as soon as it loaded, without an owner, so only operators could see them. Now Family Tree records them once a player rides or breeds them, and that player becomes their owner in Family Tree. Minecraft's own ownership stays unchanged. Wild camels nobody rides stay out of the tree. Ownerless records that 1.1.0 already saved stay in the history, and the first player to ride one of those animals becomes its owner.
Foals that are not tamed yet keep their last known location and stats current, because their record already exists from breeding.
## Minecraft 1.21.11
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.11. Fabric needs Fabric API for 1.21.11. NeoForge needs 21.11.48 or newer within 21.11. Both builds run on Java 21.
- A 1.21.1 world upgraded to 1.21.11 keeps its Family Tree history. Both versions save to the same file, so nothing gets imported or converted. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- Tamed nautiluses and zombie nautiluses are recorded, and foals from bred nautiluses keep their parents. They have no portraits; the browser shows the first letter of the name.
## Minecraft 1.20.1 on Fabric and Forge
Family Tree now runs on Minecraft 1.20.1. The Fabric build needs Fabric API 0.92.x for 1.20.1, and the Forge build needs Forge 47.1.0 or newer. Both run on Java 17 and include horse stats and every other feature of the newer builds.
- 1.20.1 worlds keep their history in `data/familytree.dat`, the same file and format that 1.21.1 uses. A 1.20.1 world upgraded to 1.21.1 kept its pets, parents, and deaths in testing.
- Wolves in 1.20.1 have a single coat, so wolf portraits use the tamed wolf texture. Cat and horse portraits match their coats.
- Forge uses the same channel names as the other builds and registers protocol 3. Players without Family Tree can join a Forge server that runs it.
## Quilt
The Fabric builds are now listed for Quilt. With Quilt Loader 0.30.1 and Fabric API, a dedicated server started with Family Tree on all seven Fabric targets. Clients on 1.21.1 and 26.3 joined a Quilt server, received the welcome message, and opened the browser. Older Quilt Loader releases such as 0.24 report a Fabric Loader version below Family Tree's minimum, so Quilt refuses to start the mod on them.
## Upgrade
Update the server and clients together. This release changes the snapshot, open, discovery, and rename channels, and NeoForge registers protocol 3.
Saved records gain one optional `horse_stats` field. Saves from 1.1.0 load unchanged, and horses recorded by 1.1.0 get stats the next time they load. If you go back to 1.1.0, it keeps every record but drops the stats on its next save. They return when the horses load under 1.2.0.
release
Family Tree 1.2.0 for 1.20.1 Fabric
1.2.0+1.20.129 окт. 2026 г.2Minecraft: 1.20.1fabric, quilt
Что нового
# Family Tree 1.2.0
## Horse breeding stats
Family Tree records speed, jump height, and health for horses, donkeys, mules, llamas, trader llamas, camels, skeleton horses, and zombie horses. Speed is in blocks per second, jump in blocks, and health in hearts, using the Minecraft Wiki's conversions. Llamas also show strength and their chest slots.
- Tree cards show each animal's stats. A green ▲ marks a stat higher than both parents, and a red ▼ marks one lower than both.
- Select a pet in the tree to compare each stat with both parents' values. Small windows and large GUI scales show a one-line summary instead.
- **Sort** in the browser orders pets by speed, jump, or health. Pets without stats follow in name order.
- Exported PNGs include the stats and a legend for the markers.
- Settings has **Show horse stats** to hide the stats everywhere, including exports.
- `/familytree info <name>` lists the stats.
- Horses, donkeys, mules, skeleton horses, and zombie horses have portraits. In the game they match coat and markings; exports show a side profile cut from the animal's texture. Llamas and camels have in-game portraits only.
Stats are base values, so potion effects don't change them. Family Tree reads them when it records an animal and again whenever the server loads, unloads, or scans it.
## Camels and skeleton trap horses
Minecraft treats every camel as tamed, and skeleton trap horses are tamed without an owner. Version 1.1.0 recorded each of these animals as soon as it loaded, without an owner, so only operators could see them. Now Family Tree records them once a player rides or breeds them, and that player becomes their owner in Family Tree. Minecraft's own ownership stays unchanged. Wild camels nobody rides stay out of the tree. Ownerless records that 1.1.0 already saved stay in the history, and the first player to ride one of those animals becomes its owner.
Foals that are not tamed yet keep their last known location and stats current, because their record already exists from breeding.
## Minecraft 1.21.11
Family Tree now has Fabric and NeoForge builds for Minecraft 1.21.11. Fabric needs Fabric API for 1.21.11. NeoForge needs 21.11.48 or newer within 21.11. Both builds run on Java 21.
- A 1.21.1 world upgraded to 1.21.11 keeps its Family Tree history. Both versions save to the same file, so nothing gets imported or converted. When the world later moves to 26.x, Family Tree imports that file once, as it does for 1.21.1 worlds.
- Tamed nautiluses and zombie nautiluses are recorded, and foals from bred nautiluses keep their parents. They have no portraits; the browser shows the first letter of the name.
## Minecraft 1.20.1 on Fabric and Forge
Family Tree now runs on Minecraft 1.20.1. The Fabric build needs Fabric API 0.92.x for 1.20.1, and the Forge build needs Forge 47.1.0 or newer. Both run on Java 17 and include horse stats and every other feature of the newer builds.
- 1.20.1 worlds keep their history in `data/familytree.dat`, the same file and format that 1.21.1 uses. A 1.20.1 world upgraded to 1.21.1 kept its pets, parents, and deaths in testing.
- Wolves in 1.20.1 have a single coat, so wolf portraits use the tamed wolf texture. Cat and horse portraits match their coats.
- Forge uses the same channel names as the other builds and registers protocol 3. Players without Family Tree can join a Forge server that runs it.
## Quilt
The Fabric builds are now listed for Quilt. With Quilt Loader 0.30.1 and Fabric API, a dedicated server started with Family Tree on all seven Fabric targets. Clients on 1.21.1 and 26.3 joined a Quilt server, received the welcome message, and opened the browser. Older Quilt Loader releases such as 0.24 report a Fabric Loader version below Family Tree's minimum, so Quilt refuses to start the mod on them.
## Upgrade
Update the server and clients together. This release changes the snapshot, open, discovery, and rename channels, and NeoForge registers protocol 3.
Saved records gain one optional `horse_stats` field. Saves from 1.1.0 load unchanged, and horses recorded by 1.1.0 get stats the next time they load. If you go back to 1.1.0, it keeps every record but drops the stats on its next save. They return when the horses load under 1.2.0.
beta
Family Tree 1.1.0 for 26.3 Neoforge
1.1.0+26.3-neoforge30 сент. 2026 г.64Minecraft: 26.3neoforge
Что нового
# Family Tree 1.1.0
Add known parents without commands. Select a pet in the tree, choose Add parents, search for both parents, and confirm. Clear recorded parents through a confirmation screen. Horse and donkey parents can link to a mule.
The browser has Getting started and Refresh. The tree also has Refresh and Open folder after export. Export reports the actual PNG filename. The selected browser filter is visible.
## Supported builds
Fabric supports Minecraft 1.21.1, 26.1.1, 26.1.2, 26.2, and 26.3. It requires Fabric Loader 0.19.3 or newer and the matching Fabric API. NeoForge supports 1.21.1 with 21.1.252, 26.2 with 26.2.0.88, and 26.3 with 26.3.0.37-beta. The NeoForge 26.3 release is beta because its loader is beta. Minecraft 1.21.1 uses Java 21; the 26.x builds use Java 25.
## Reliability
- Family snapshots use pages below 256 KiB. The browser shows a completed snapshot and rejects incomplete replies. Tests cover a 10,000-pet snapshot with Unicode names. Snapshots above 100,000 visible records fail with a message rather than silently omitting pets.
- Commands and network requests share cooldowns for loaded-pet scans. Open, rename, locate, and parent-edit requests also have cooldowns.
- Generation calculation uses an explicit stack and passes a 10,000-generation test.
- Unreadable and duplicate save entries remain in the next save. Unsupported future save formats disable edits and preserve the original data. Check the server log for recovery details.
- Legacy import runs once for a new store and copies the old file to a migration backup. Empty modern stores do not import old history again.
- Name-based edits reject ambiguous matches. Use one of the UUIDs printed in chat. Locate still reports all permitted name matches and also accepts an exact UUID.
- Operator pruning writes a JSON backup under the world's `familytree-backups/` directory. A failed backup cancels deletion.
- Jars use exact Minecraft version predicates and include the MIT license, icon, and source links. Linking sessions and portrait caches clear on disconnect.
## Upgrade
Update the server and clients together. This release changes snapshot, open-request, discovery, and NeoForge protocol identifiers. Existing saved record field names stay unchanged.
Back up the world before upgrading. Older mod releases can drop fields they do not understand when saving, and older releases do not protect future formats. Minecraft world downgrades remain unsupported.
A focused tree displays up to six generations in either direction. Use a species view for all its families. Screens refresh when requested rather than updating automatically while open. Revival mods, altered pet models, and modded species still need separate compatibility testing.
release
Family Tree 1.1.0 for 26.2 Neoforge
1.1.0+26.2-neoforge30 сент. 2026 г.20Minecraft: 26.2neoforge
Что нового
# Family Tree 1.1.0
Add known parents without commands. Select a pet in the tree, choose Add parents, search for both parents, and confirm. Clear recorded parents through a confirmation screen. Horse and donkey parents can link to a mule.
The browser has Getting started and Refresh. The tree also has Refresh and Open folder after export. Export reports the actual PNG filename. The selected browser filter is visible.
## Supported builds
Fabric supports Minecraft 1.21.1, 26.1.1, 26.1.2, 26.2, and 26.3. It requires Fabric Loader 0.19.3 or newer and the matching Fabric API. NeoForge supports 1.21.1 with 21.1.252, 26.2 with 26.2.0.88, and 26.3 with 26.3.0.37-beta. The NeoForge 26.3 release is beta because its loader is beta. Minecraft 1.21.1 uses Java 21; the 26.x builds use Java 25.
## Reliability
- Family snapshots use pages below 256 KiB. The browser shows a completed snapshot and rejects incomplete replies. Tests cover a 10,000-pet snapshot with Unicode names. Snapshots above 100,000 visible records fail with a message rather than silently omitting pets.
- Commands and network requests share cooldowns for loaded-pet scans. Open, rename, locate, and parent-edit requests also have cooldowns.
- Generation calculation uses an explicit stack and passes a 10,000-generation test.
- Unreadable and duplicate save entries remain in the next save. Unsupported future save formats disable edits and preserve the original data. Check the server log for recovery details.
- Legacy import runs once for a new store and copies the old file to a migration backup. Empty modern stores do not import old history again.
- Name-based edits reject ambiguous matches. Use one of the UUIDs printed in chat. Locate still reports all permitted name matches and also accepts an exact UUID.
- Operator pruning writes a JSON backup under the world's `familytree-backups/` directory. A failed backup cancels deletion.
- Jars use exact Minecraft version predicates and include the MIT license, icon, and source links. Linking sessions and portrait caches clear on disconnect.
## Upgrade
Update the server and clients together. This release changes snapshot, open-request, discovery, and NeoForge protocol identifiers. Existing saved record field names stay unchanged.
Back up the world before upgrading. Older mod releases can drop fields they do not understand when saving, and older releases do not protect future formats. Minecraft world downgrades remain unsupported.
A focused tree displays up to six generations in either direction. Use a species view for all its families. Screens refresh when requested rather than updating automatically while open. Revival mods, altered pet models, and modded species still need separate compatibility testing.
release
Family Tree 1.1.0 for 1.21.1 Neoforge
1.1.0+1.21.1-neoforge30 сент. 2026 г.75Minecraft: 1.21.1neoforge
Что нового
# Family Tree 1.1.0
Add known parents without commands. Select a pet in the tree, choose Add parents, search for both parents, and confirm. Clear recorded parents through a confirmation screen. Horse and donkey parents can link to a mule.
The browser has Getting started and Refresh. The tree also has Refresh and Open folder after export. Export reports the actual PNG filename. The selected browser filter is visible.
## Supported builds
Fabric supports Minecraft 1.21.1, 26.1.1, 26.1.2, 26.2, and 26.3. It requires Fabric Loader 0.19.3 or newer and the matching Fabric API. NeoForge supports 1.21.1 with 21.1.252, 26.2 with 26.2.0.88, and 26.3 with 26.3.0.37-beta. The NeoForge 26.3 release is beta because its loader is beta. Minecraft 1.21.1 uses Java 21; the 26.x builds use Java 25.
## Reliability
- Family snapshots use pages below 256 KiB. The browser shows a completed snapshot and rejects incomplete replies. Tests cover a 10,000-pet snapshot with Unicode names. Snapshots above 100,000 visible records fail with a message rather than silently omitting pets.
- Commands and network requests share cooldowns for loaded-pet scans. Open, rename, locate, and parent-edit requests also have cooldowns.
- Generation calculation uses an explicit stack and passes a 10,000-generation test.
- Unreadable and duplicate save entries remain in the next save. Unsupported future save formats disable edits and preserve the original data. Check the server log for recovery details.
- Legacy import runs once for a new store and copies the old file to a migration backup. Empty modern stores do not import old history again.
- Name-based edits reject ambiguous matches. Use one of the UUIDs printed in chat. Locate still reports all permitted name matches and also accepts an exact UUID.
- Operator pruning writes a JSON backup under the world's `familytree-backups/` directory. A failed backup cancels deletion.
- Jars use exact Minecraft version predicates and include the MIT license, icon, and source links. Linking sessions and portrait caches clear on disconnect.
## Upgrade
Update the server and clients together. This release changes snapshot, open-request, discovery, and NeoForge protocol identifiers. Existing saved record field names stay unchanged.
Back up the world before upgrading. Older mod releases can drop fields they do not understand when saving, and older releases do not protect future formats. Minecraft world downgrades remain unsupported.
A focused tree displays up to six generations in either direction. Use a species view for all its families. Screens refresh when requested rather than updating automatically while open. Revival mods, altered pet models, and modded species still need separate compatibility testing.
release
Family Tree 1.1.0 for 26.3 Fabric
1.1.0+26.330 сент. 2026 г.222Minecraft: 26.3fabric
Что нового
# Family Tree 1.1.0
Add known parents without commands. Select a pet in the tree, choose Add parents, search for both parents, and confirm. Clear recorded parents through a confirmation screen. Horse and donkey parents can link to a mule.
The browser has Getting started and Refresh. The tree also has Refresh and Open folder after export. Export reports the actual PNG filename. The selected browser filter is visible.
## Supported builds
Fabric supports Minecraft 1.21.1, 26.1.1, 26.1.2, 26.2, and 26.3. It requires Fabric Loader 0.19.3 or newer and the matching Fabric API. NeoForge supports 1.21.1 with 21.1.252, 26.2 with 26.2.0.88, and 26.3 with 26.3.0.37-beta. The NeoForge 26.3 release is beta because its loader is beta. Minecraft 1.21.1 uses Java 21; the 26.x builds use Java 25.
## Reliability
- Family snapshots use pages below 256 KiB. The browser shows a completed snapshot and rejects incomplete replies. Tests cover a 10,000-pet snapshot with Unicode names. Snapshots above 100,000 visible records fail with a message rather than silently omitting pets.
- Commands and network requests share cooldowns for loaded-pet scans. Open, rename, locate, and parent-edit requests also have cooldowns.
- Generation calculation uses an explicit stack and passes a 10,000-generation test.
- Unreadable and duplicate save entries remain in the next save. Unsupported future save formats disable edits and preserve the original data. Check the server log for recovery details.
- Legacy import runs once for a new store and copies the old file to a migration backup. Empty modern stores do not import old history again.
- Name-based edits reject ambiguous matches. Use one of the UUIDs printed in chat. Locate still reports all permitted name matches and also accepts an exact UUID.
- Operator pruning writes a JSON backup under the world's `familytree-backups/` directory. A failed backup cancels deletion.
- Jars use exact Minecraft version predicates and include the MIT license, icon, and source links. Linking sessions and portrait caches clear on disconnect.
## Upgrade
Update the server and clients together. This release changes snapshot, open-request, discovery, and NeoForge protocol identifiers. Existing saved record field names stay unchanged.
Back up the world before upgrading. Older mod releases can drop fields they do not understand when saving, and older releases do not protect future formats. Minecraft world downgrades remain unsupported.
A focused tree displays up to six generations in either direction. Use a species view for all its families. Screens refresh when requested rather than updating automatically while open. Revival mods, altered pet models, and modded species still need separate compatibility testing.
release
Family Tree 1.1.0 for 26.2 Fabric
1.1.0+26.230 сент. 2026 г.49Minecraft: 26.2fabric
Что нового
# Family Tree 1.1.0
Add known parents without commands. Select a pet in the tree, choose Add parents, search for both parents, and confirm. Clear recorded parents through a confirmation screen. Horse and donkey parents can link to a mule.
The browser has Getting started and Refresh. The tree also has Refresh and Open folder after export. Export reports the actual PNG filename. The selected browser filter is visible.
## Supported builds
Fabric supports Minecraft 1.21.1, 26.1.1, 26.1.2, 26.2, and 26.3. It requires Fabric Loader 0.19.3 or newer and the matching Fabric API. NeoForge supports 1.21.1 with 21.1.252, 26.2 with 26.2.0.88, and 26.3 with 26.3.0.37-beta. The NeoForge 26.3 release is beta because its loader is beta. Minecraft 1.21.1 uses Java 21; the 26.x builds use Java 25.
## Reliability
- Family snapshots use pages below 256 KiB. The browser shows a completed snapshot and rejects incomplete replies. Tests cover a 10,000-pet snapshot with Unicode names. Snapshots above 100,000 visible records fail with a message rather than silently omitting pets.
- Commands and network requests share cooldowns for loaded-pet scans. Open, rename, locate, and parent-edit requests also have cooldowns.
- Generation calculation uses an explicit stack and passes a 10,000-generation test.
- Unreadable and duplicate save entries remain in the next save. Unsupported future save formats disable edits and preserve the original data. Check the server log for recovery details.
- Legacy import runs once for a new store and copies the old file to a migration backup. Empty modern stores do not import old history again.
- Name-based edits reject ambiguous matches. Use one of the UUIDs printed in chat. Locate still reports all permitted name matches and also accepts an exact UUID.
- Operator pruning writes a JSON backup under the world's `familytree-backups/` directory. A failed backup cancels deletion.
- Jars use exact Minecraft version predicates and include the MIT license, icon, and source links. Linking sessions and portrait caches clear on disconnect.
## Upgrade
Update the server and clients together. This release changes snapshot, open-request, discovery, and NeoForge protocol identifiers. Existing saved record field names stay unchanged.
Back up the world before upgrading. Older mod releases can drop fields they do not understand when saving, and older releases do not protect future formats. Minecraft world downgrades remain unsupported.
A focused tree displays up to six generations in either direction. Use a species view for all its families. Screens refresh when requested rather than updating automatically while open. Revival mods, altered pet models, and modded species still need separate compatibility testing.
release
Family Tree 1.1.0 for 26.1.2 Fabric
1.1.0+26.1.230 сент. 2026 г.27Minecraft: 26.1.2fabric
Что нового
# Family Tree 1.1.0
Add known parents without commands. Select a pet in the tree, choose Add parents, search for both parents, and confirm. Clear recorded parents through a confirmation screen. Horse and donkey parents can link to a mule.
The browser has Getting started and Refresh. The tree also has Refresh and Open folder after export. Export reports the actual PNG filename. The selected browser filter is visible.
## Supported builds
Fabric supports Minecraft 1.21.1, 26.1.1, 26.1.2, 26.2, and 26.3. It requires Fabric Loader 0.19.3 or newer and the matching Fabric API. NeoForge supports 1.21.1 with 21.1.252, 26.2 with 26.2.0.88, and 26.3 with 26.3.0.37-beta. The NeoForge 26.3 release is beta because its loader is beta. Minecraft 1.21.1 uses Java 21; the 26.x builds use Java 25.
## Reliability
- Family snapshots use pages below 256 KiB. The browser shows a completed snapshot and rejects incomplete replies. Tests cover a 10,000-pet snapshot with Unicode names. Snapshots above 100,000 visible records fail with a message rather than silently omitting pets.
- Commands and network requests share cooldowns for loaded-pet scans. Open, rename, locate, and parent-edit requests also have cooldowns.
- Generation calculation uses an explicit stack and passes a 10,000-generation test.
- Unreadable and duplicate save entries remain in the next save. Unsupported future save formats disable edits and preserve the original data. Check the server log for recovery details.
- Legacy import runs once for a new store and copies the old file to a migration backup. Empty modern stores do not import old history again.
- Name-based edits reject ambiguous matches. Use one of the UUIDs printed in chat. Locate still reports all permitted name matches and also accepts an exact UUID.
- Operator pruning writes a JSON backup under the world's `familytree-backups/` directory. A failed backup cancels deletion.
- Jars use exact Minecraft version predicates and include the MIT license, icon, and source links. Linking sessions and portrait caches clear on disconnect.
## Upgrade
Update the server and clients together. This release changes snapshot, open-request, discovery, and NeoForge protocol identifiers. Existing saved record field names stay unchanged.
Back up the world before upgrading. Older mod releases can drop fields they do not understand when saving, and older releases do not protect future formats. Minecraft world downgrades remain unsupported.
A focused tree displays up to six generations in either direction. Use a species view for all its families. Screens refresh when requested rather than updating automatically while open. Revival mods, altered pet models, and modded species still need separate compatibility testing.
release
Family Tree 1.1.0 for 26.1.1 Fabric
1.1.0+26.1.130 сент. 2026 г.4Minecraft: 26.1.1fabric
Что нового
# Family Tree 1.1.0
Add known parents without commands. Select a pet in the tree, choose Add parents, search for both parents, and confirm. Clear recorded parents through a confirmation screen. Horse and donkey parents can link to a mule.
The browser has Getting started and Refresh. The tree also has Refresh and Open folder after export. Export reports the actual PNG filename. The selected browser filter is visible.
## Supported builds
Fabric supports Minecraft 1.21.1, 26.1.1, 26.1.2, 26.2, and 26.3. It requires Fabric Loader 0.19.3 or newer and the matching Fabric API. NeoForge supports 1.21.1 with 21.1.252, 26.2 with 26.2.0.88, and 26.3 with 26.3.0.37-beta. The NeoForge 26.3 release is beta because its loader is beta. Minecraft 1.21.1 uses Java 21; the 26.x builds use Java 25.
## Reliability
- Family snapshots use pages below 256 KiB. The browser shows a completed snapshot and rejects incomplete replies. Tests cover a 10,000-pet snapshot with Unicode names. Snapshots above 100,000 visible records fail with a message rather than silently omitting pets.
- Commands and network requests share cooldowns for loaded-pet scans. Open, rename, locate, and parent-edit requests also have cooldowns.
- Generation calculation uses an explicit stack and passes a 10,000-generation test.
- Unreadable and duplicate save entries remain in the next save. Unsupported future save formats disable edits and preserve the original data. Check the server log for recovery details.
- Legacy import runs once for a new store and copies the old file to a migration backup. Empty modern stores do not import old history again.
- Name-based edits reject ambiguous matches. Use one of the UUIDs printed in chat. Locate still reports all permitted name matches and also accepts an exact UUID.
- Operator pruning writes a JSON backup under the world's `familytree-backups/` directory. A failed backup cancels deletion.
- Jars use exact Minecraft version predicates and include the MIT license, icon, and source links. Linking sessions and portrait caches clear on disconnect.
## Upgrade
Update the server and clients together. This release changes snapshot, open-request, discovery, and NeoForge protocol identifiers. Existing saved record field names stay unchanged.
Back up the world before upgrading. Older mod releases can drop fields they do not understand when saving, and older releases do not protect future formats. Minecraft world downgrades remain unsupported.
A focused tree displays up to six generations in either direction. Use a species view for all its families. Screens refresh when requested rather than updating automatically while open. Revival mods, altered pet models, and modded species still need separate compatibility testing.
release
Family Tree 1.1.0 for 1.21.1 Fabric
1.1.0+1.21.130 сент. 2026 г.36Minecraft: 1.21.1fabric
Что нового
# Family Tree 1.1.0
Add known parents without commands. Select a pet in the tree, choose Add parents, search for both parents, and confirm. Clear recorded parents through a confirmation screen. Horse and donkey parents can link to a mule.
The browser has Getting started and Refresh. The tree also has Refresh and Open folder after export. Export reports the actual PNG filename. The selected browser filter is visible.
## Supported builds
Fabric supports Minecraft 1.21.1, 26.1.1, 26.1.2, 26.2, and 26.3. It requires Fabric Loader 0.19.3 or newer and the matching Fabric API. NeoForge supports 1.21.1 with 21.1.252, 26.2 with 26.2.0.88, and 26.3 with 26.3.0.37-beta. The NeoForge 26.3 release is beta because its loader is beta. Minecraft 1.21.1 uses Java 21; the 26.x builds use Java 25.
## Reliability
- Family snapshots use pages below 256 KiB. The browser shows a completed snapshot and rejects incomplete replies. Tests cover a 10,000-pet snapshot with Unicode names. Snapshots above 100,000 visible records fail with a message rather than silently omitting pets.
- Commands and network requests share cooldowns for loaded-pet scans. Open, rename, locate, and parent-edit requests also have cooldowns.
- Generation calculation uses an explicit stack and passes a 10,000-generation test.
- Unreadable and duplicate save entries remain in the next save. Unsupported future save formats disable edits and preserve the original data. Check the server log for recovery details.
- Legacy import runs once for a new store and copies the old file to a migration backup. Empty modern stores do not import old history again.
- Name-based edits reject ambiguous matches. Use one of the UUIDs printed in chat. Locate still reports all permitted name matches and also accepts an exact UUID.
- Operator pruning writes a JSON backup under the world's `familytree-backups/` directory. A failed backup cancels deletion.
- Jars use exact Minecraft version predicates and include the MIT license, icon, and source links. Linking sessions and portrait caches clear on disconnect.
## Upgrade
Update the server and clients together. This release changes snapshot, open-request, discovery, and NeoForge protocol identifiers. Existing saved record field names stay unchanged.
Back up the world before upgrading. Older mod releases can drop fields they do not understand when saving, and older releases do not protect future formats. Minecraft world downgrades remain unsupported.
A focused tree displays up to six generations in either direction. Use a species view for all its families. Screens refresh when requested rather than updating automatically while open. Revival mods, altered pet models, and modded species still need separate compatibility testing.
release
Family Tree 1.0.1 for Minecraft 26.2 | NeoForge
1.0.1+26.2-neoforge29 сент. 2026 г.5Minecraft: 26.2neoforge
Что нового
# Family Tree 1.0.1
Fixed cropped wolf portraits in exported family trees. PNG exports now show each wolf's complete head, including its ears and muzzle, using its coat texture.
The family layout and connections are unchanged. Existing pet history is unaffected. This patch supports the same four targets as 1.0.0: Fabric 1.21.1, Fabric 26.1.1, Fabric 26.2, and NeoForge 26.2.
release
Family Tree 1.0.1 for Minecraft 26.2 | Fabric
1.0.1+26.229 сент. 2026 г.5Minecraft: 26.2fabric
Что нового
# Family Tree 1.0.1
Fixed cropped wolf portraits in exported family trees. PNG exports now show each wolf's complete head, including its ears and muzzle, using its coat texture.
The family layout and connections are unchanged. Existing pet history is unaffected. This patch supports the same four targets as 1.0.0: Fabric 1.21.1, Fabric 26.1.1, Fabric 26.2, and NeoForge 26.2.
release
Family Tree 1.0.1 for Minecraft 26.1.1 | Fabric
1.0.1+26.1.129 сент. 2026 г.4Minecraft: 26.1.1fabric
Что нового
# Family Tree 1.0.1
Fixed cropped wolf portraits in exported family trees. PNG exports now show each wolf's complete head, including its ears and muzzle, using its coat texture.
The family layout and connections are unchanged. Existing pet history is unaffected. This patch supports the same four targets as 1.0.0: Fabric 1.21.1, Fabric 26.1.1, Fabric 26.2, and NeoForge 26.2.
release
Family Tree 1.0.1 for Minecraft 1.21.1 | Fabric
1.0.1+1.21.129 сент. 2026 г.5Minecraft: 1.21.1fabric
Что нового
# Family Tree 1.0.1
Fixed cropped wolf portraits in exported family trees. PNG exports now show each wolf's complete head, including its ears and muzzle, using its coat texture.
The family layout and connections are unchanged. Existing pet history is unaffected. This patch supports the same four targets as 1.0.0: Fabric 1.21.1, Fabric 26.1.1, Fabric 26.2, and NeoForge 26.2.
release
Family Tree 1.0.0 for Minecraft 26.2 | NeoForge
1.0.0+26.2-neoforge28 сент. 2026 г.2Minecraft: 26.2neoforge
Что нового
# Family Tree 1.0.0
- Existing tamed pets now enter the tracker when their chunks load. The browser's **Find existing pets** button scans pets that are already loaded.
- A first-use chat hint shows your configured key for opening Family Tree.
- Select a pet and click **Locate pet** to get its current or last known location in chat.
- **Export family tree** saves the visible tree as a PNG in `screenshots/familytree/`, independent of screen zoom and pan. Exports include names, generations, and living or deceased status, with cat and wolf portraits. Player names and coordinates are excluded.
- Added Fabric support for Minecraft 1.21.1 and NeoForge support for Minecraft 26.2.
- Fixed a Minecraft 26.2 crash when rendering cat and wolf portraits in the browser or tree.
- Commands, the linking stick, and screen actions now share ownership checks. Public viewing does not grant permission to locate, rename, link, or change the age of another player's pet. Public snapshots omit other players' pet coordinates.
- The linking stick checks ownership again when a player confirms a link.
- Automatic discovery preserves parents and inherited ownership when a newborn enters the world before its breeding event finishes.
- The browser distinguishes an empty tracker from a search with no matches, preserves searches when returning, and wraps controls on smaller screens. Tree cards keep generation and death details visible at a wider range of zoom levels.
## Installation
| Minecraft | Loader | Java | Dependency |
| --- | --- | --- | --- |
| 1.21.1 | Fabric | 21 or newer | Matching Fabric API |
| 26.1.1 | Fabric | 25 or newer | Matching Fabric API |
| 26.2 | Fabric | 25 or newer | Matching Fabric API |
| 26.2 | NeoForge 26.2.0.88 or newer within 26.2 | 25 or newer | None |
Choose the file for your exact Minecraft version and loader. Install Family Tree 1.0.0 on the server and clients. Tracking runs on the server, and the client installation adds the screens. NeoForge builds do not need Fabric API.
## Existing worlds
Pet history, lineage, death records, and custom names remain. Version 1.0.0 does not rename persisted fields or add required save fields. Older records still load through the tolerant save reader.
Update both sides together because 1.0.0 uses new screen packet identifiers. A mismatched Fabric client and server cannot open the screen. The 1.21.1 build is for 1.21.1 worlds, not for downgrading a newer Minecraft world.
Discovery cannot recover parents or birth dates from before the mod recorded them. Newly imported pets use the discovery day until you correct their age. Use the linking stick for known parents. Unloaded pets show a last known location, which may be out of date.
Downgrading Family Tree to a release before 0.3.3 drops custom tree names when it next saves. Original names and lineage remain.
release
Family Tree 1.0.0 for Minecraft 26.2 | Fabric
1.0.0+26.228 сент. 2026 г.3Minecraft: 26.2fabric
Что нового
# Family Tree 1.0.0
- Existing tamed pets now enter the tracker when their chunks load. The browser's **Find existing pets** button scans pets that are already loaded.
- A first-use chat hint shows your configured key for opening Family Tree.
- Select a pet and click **Locate pet** to get its current or last known location in chat.
- **Export family tree** saves the visible tree as a PNG in `screenshots/familytree/`, independent of screen zoom and pan. Exports include names, generations, and living or deceased status, with cat and wolf portraits. Player names and coordinates are excluded.
- Added Fabric support for Minecraft 1.21.1 and NeoForge support for Minecraft 26.2.
- Fixed a Minecraft 26.2 crash when rendering cat and wolf portraits in the browser or tree.
- Commands, the linking stick, and screen actions now share ownership checks. Public viewing does not grant permission to locate, rename, link, or change the age of another player's pet. Public snapshots omit other players' pet coordinates.
- The linking stick checks ownership again when a player confirms a link.
- Automatic discovery preserves parents and inherited ownership when a newborn enters the world before its breeding event finishes.
- The browser distinguishes an empty tracker from a search with no matches, preserves searches when returning, and wraps controls on smaller screens. Tree cards keep generation and death details visible at a wider range of zoom levels.
## Installation
| Minecraft | Loader | Java | Dependency |
| --- | --- | --- | --- |
| 1.21.1 | Fabric | 21 or newer | Matching Fabric API |
| 26.1.1 | Fabric | 25 or newer | Matching Fabric API |
| 26.2 | Fabric | 25 or newer | Matching Fabric API |
| 26.2 | NeoForge 26.2.0.88 or newer within 26.2 | 25 or newer | None |
Choose the file for your exact Minecraft version and loader. Install Family Tree 1.0.0 on the server and clients. Tracking runs on the server, and the client installation adds the screens. NeoForge builds do not need Fabric API.
## Existing worlds
Pet history, lineage, death records, and custom names remain. Version 1.0.0 does not rename persisted fields or add required save fields. Older records still load through the tolerant save reader.
Update both sides together because 1.0.0 uses new screen packet identifiers. A mismatched Fabric client and server cannot open the screen. The 1.21.1 build is for 1.21.1 worlds, not for downgrading a newer Minecraft world.
Discovery cannot recover parents or birth dates from before the mod recorded them. Newly imported pets use the discovery day until you correct their age. Use the linking stick for known parents. Unloaded pets show a last known location, which may be out of date.
Downgrading Family Tree to a release before 0.3.3 drops custom tree names when it next saves. Original names and lineage remain.
release
Family Tree 1.0.0 for Minecraft 26.1.1 | Fabric
1.0.0+26.1.128 сент. 2026 г.6Minecraft: 26.1.1fabric
Что нового
# Family Tree 1.0.0
- Existing tamed pets now enter the tracker when their chunks load. The browser's **Find existing pets** button scans pets that are already loaded.
- A first-use chat hint shows your configured key for opening Family Tree.
- Select a pet and click **Locate pet** to get its current or last known location in chat.
- **Export family tree** saves the visible tree as a PNG in `screenshots/familytree/`, independent of screen zoom and pan. Exports include names, generations, and living or deceased status, with cat and wolf portraits. Player names and coordinates are excluded.
- Added Fabric support for Minecraft 1.21.1 and NeoForge support for Minecraft 26.2.
- Fixed a Minecraft 26.2 crash when rendering cat and wolf portraits in the browser or tree.
- Commands, the linking stick, and screen actions now share ownership checks. Public viewing does not grant permission to locate, rename, link, or change the age of another player's pet. Public snapshots omit other players' pet coordinates.
- The linking stick checks ownership again when a player confirms a link.
- Automatic discovery preserves parents and inherited ownership when a newborn enters the world before its breeding event finishes.
- The browser distinguishes an empty tracker from a search with no matches, preserves searches when returning, and wraps controls on smaller screens. Tree cards keep generation and death details visible at a wider range of zoom levels.
## Installation
| Minecraft | Loader | Java | Dependency |
| --- | --- | --- | --- |
| 1.21.1 | Fabric | 21 or newer | Matching Fabric API |
| 26.1.1 | Fabric | 25 or newer | Matching Fabric API |
| 26.2 | Fabric | 25 or newer | Matching Fabric API |
| 26.2 | NeoForge 26.2.0.88 or newer within 26.2 | 25 or newer | None |
Choose the file for your exact Minecraft version and loader. Install Family Tree 1.0.0 on the server and clients. Tracking runs on the server, and the client installation adds the screens. NeoForge builds do not need Fabric API.
## Existing worlds
Pet history, lineage, death records, and custom names remain. Version 1.0.0 does not rename persisted fields or add required save fields. Older records still load through the tolerant save reader.
Update both sides together because 1.0.0 uses new screen packet identifiers. A mismatched Fabric client and server cannot open the screen. The 1.21.1 build is for 1.21.1 worlds, not for downgrading a newer Minecraft world.
Discovery cannot recover parents or birth dates from before the mod recorded them. Newly imported pets use the discovery day until you correct their age. Use the linking stick for known parents. Unloaded pets show a last known location, which may be out of date.
Downgrading Family Tree to a release before 0.3.3 drops custom tree names when it next saves. Original names and lineage remain.
release
Family Tree 1.0.0 for Minecraft 1.21.1 | Fabric
1.0.0+1.21.128 сент. 2026 г.2Minecraft: 1.21.1fabric
Что нового
# Family Tree 1.0.0
- Existing tamed pets now enter the tracker when their chunks load. The browser's **Find existing pets** button scans pets that are already loaded.
- A first-use chat hint shows your configured key for opening Family Tree.
- Select a pet and click **Locate pet** to get its current or last known location in chat.
- **Export family tree** saves the visible tree as a PNG in `screenshots/familytree/`, independent of screen zoom and pan. Exports include names, generations, and living or deceased status, with cat and wolf portraits. Player names and coordinates are excluded.
- Added Fabric support for Minecraft 1.21.1 and NeoForge support for Minecraft 26.2.
- Fixed a Minecraft 26.2 crash when rendering cat and wolf portraits in the browser or tree.
- Commands, the linking stick, and screen actions now share ownership checks. Public viewing does not grant permission to locate, rename, link, or change the age of another player's pet. Public snapshots omit other players' pet coordinates.
- The linking stick checks ownership again when a player confirms a link.
- Automatic discovery preserves parents and inherited ownership when a newborn enters the world before its breeding event finishes.
- The browser distinguishes an empty tracker from a search with no matches, preserves searches when returning, and wraps controls on smaller screens. Tree cards keep generation and death details visible at a wider range of zoom levels.
## Installation
| Minecraft | Loader | Java | Dependency |
| --- | --- | --- | --- |
| 1.21.1 | Fabric | 21 or newer | Matching Fabric API |
| 26.1.1 | Fabric | 25 or newer | Matching Fabric API |
| 26.2 | Fabric | 25 or newer | Matching Fabric API |
| 26.2 | NeoForge 26.2.0.88 or newer within 26.2 | 25 or newer | None |
Choose the file for your exact Minecraft version and loader. Install Family Tree 1.0.0 on the server and clients. Tracking runs on the server, and the client installation adds the screens. NeoForge builds do not need Fabric API.
## Existing worlds
Pet history, lineage, death records, and custom names remain. Version 1.0.0 does not rename persisted fields or add required save fields. Older records still load through the tolerant save reader.
Update both sides together because 1.0.0 uses new screen packet identifiers. A mismatched Fabric client and server cannot open the screen. The 1.21.1 build is for 1.21.1 worlds, not for downgrading a newer Minecraft world.
Discovery cannot recover parents or birth dates from before the mod recorded them. Newly imported pets use the discovery day until you correct their age. Use the linking stick for known parents. Unloaded pets show a last known location, which may be out of date.
Downgrading Family Tree to a release before 0.3.3 drops custom tree names when it next saves. Original names and lineage remain.
release
Family Tree 0.3.3 for Minecraft 26.2
0.3.3+26.228 сент. 2026 г.0Minecraft: 26.2fabric
Что нового
# Family Tree 0.3.3
- Select a pet and click **Rename** to give it a name just for Family Tree. Its name in the world stays unchanged. **Use original** clears the custom name.
- Owners and server operators can rename their tracked pets, including unloaded pets and deceased records. Commands accept original names and custom tree names.
- **Fit tree** brings the visible tree into view. **Center pet** centers the selected pet at a readable zoom.
- **Hide branch**, **Show branch**, and **Show all** let you collapse and restore descendants. Shared descendants hide with the selected branch.
- Cards show compact portraits and names when zoomed out. Double-click a pet to open its tree. Back or Escape restores the previous view.
- Manual pairing and the linking stick reject ancestry loops. The stick checks again at confirmation in case another player has edited the tree.
- Card borders, connecting lines, and click targets now use the same zoom dimensions.
Install the matching jar for Minecraft 26.1.1 or 26.2, with Fabric API and Java 25. The server and clients should use the same Family Tree version.
Existing saves keep their pet history. Custom tree names use a new optional save field. Older mod versions drop those custom names when saving after a downgrade; original names and lineage remain.
release
Family Tree 0.3.3 for Minecraft 26.1.1
0.3.3+26.1.128 сент. 2026 г.1Minecraft: 26.1.1fabric
Что нового
# Family Tree 0.3.3
- Select a pet and click **Rename** to give it a name just for Family Tree. Its name in the world stays unchanged. **Use original** clears the custom name.
- Owners and server operators can rename their tracked pets, including unloaded pets and deceased records. Commands accept original names and custom tree names.
- **Fit tree** brings the visible tree into view. **Center pet** centers the selected pet at a readable zoom.
- **Hide branch**, **Show branch**, and **Show all** let you collapse and restore descendants. Shared descendants hide with the selected branch.
- Cards show compact portraits and names when zoomed out. Double-click a pet to open its tree. Back or Escape restores the previous view.
- Manual pairing and the linking stick reject ancestry loops. The stick checks again at confirmation in case another player has edited the tree.
- Card borders, connecting lines, and click targets now use the same zoom dimensions.
Install the matching jar for Minecraft 26.1.1 or 26.2, with Fabric API and Java 25. The server and clients should use the same Family Tree version.
Existing saves keep their pet history. Custom tree names use a new optional save field. Older mod versions drop those custom names when saving after a downgrade; original names and lineage remain.
beta
Family Tree 0.3.2
0.3.211 июл. 2026 г.268Minecraft: 26.1.1fabric
Что нового
Archive note: the primary file is for Minecraft 26.1.1. The secondary +26.2 file is retained for manual historical downloads. For current Minecraft 26.2 installations, use the separate matching 1.1.0 release. Both old files require Fabric API.
## Family Tree 0.3.2
### Added
- **Generation numbers**: every pet now shows its lineage depth on its tree card and in `/familytree info`. A pet with no tracked parents is **Gen 1** (a founder); each step down the family line adds one (child = Gen 2, grandchild = Gen 3, ...).
- A **Show generation** display toggle in the in-screen Settings.
### Changed
- **Cleaner tree cards**: removed the redundant species line from each pet card in the tree view (the tree is already opened per species), leaving more room for the name and lineage info.
No data-format changes — existing worlds upgrade seamlessly.
beta
Family Tree 0.3.1
0.3.14 июл. 2026 г.164Minecraft: 26.1, 26.1.1, 26.1.2fabric
Что нового
Small quality-of-life update.
### Default keybind
The **Open Family Tree** key is now bound to **H** by default (previously unbound). You can still rebind it under **Options > Controls > Family Tree**. If you already changed or saved this binding before, your existing setting is kept.
### Compatibility
- Fully save-compatible with 0.3.0 and earlier worlds.
- Minecraft 26.1.1, Fabric Loader >= 0.16, Fabric API, Java 25.
beta
Family Tree 0.3.0
0.3.04 июл. 2026 г.8Minecraft: 26.1, 26.1.1, 26.1.2fabric
Что нового
### New in 0.3.0
- 📍 **Pet locator**: `/familytree locate <name>` shows a pet's coordinates, dimension, and distance from you. If the pet's chunk is unloaded you get its last known position with a "last seen day N" note. Pets sharing the same name are all listed. Operators get clickable coordinates that pre-fill a teleport command.
- ⚰️ **Death cause**: when a tracked pet dies, the mod records what killed it. Tree nodes now show "Slain by Creeper, day 43" or "Died of fall, day 12" instead of just "deceased".
- ✨ **Linking stick glow**: pets clicked with the `familytree` stick glow for about 5 seconds, so you can tell which cat in a pile you actually selected.
Fully save-compatible with 0.2.x worlds. Run `/familytree scan` near your pets once to populate locations for existing records.
beta
Family Tree 0.2.0
0.2.03 июл. 2026 г.22Minecraft: 26.1, 26.1.1, 26.1.2fabric
Что нового
### New: Linking stick 🪄
Rename a stick to `familytree` in an anvil, then right-click parent 1 → parent 2 → child and confirm in chat to record parentage — perfect for pets tamed before installing the mod. Sneak-click a pet to clear its parents.
### Fixes & tweaks
- Family tree layout: children now always appear below both parents, mates side by side
- "Show age" and "Show birth day" now default to off
beta
Familytree 0.1.1
0.1.123 июн. 2026 г.27Minecraft: 26.1, 26.1.1, 26.1.2fabric
Что нового
First public release.