Animal Pen

Who doesn't love making entities simple to collect?

File Details

Animal Pen v0.3.0 - NeoForge Edition

  • R
  • Jul 17, 2026
  • 100.74 KB
  • 15
  • 1.21.1
  • NeoForge

File Name

animalpen-0.3.0.jar

Supported Versions

  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:animalpen-1409534:8449842"

Learn more about Curse Maven

[0.3.0] - Individual Animals & Interface Rework

Highlights

  • Animal Pens now retain every animal as an individual instead of representing the entire pen with one shared NBT template
  • Sheep of different colors retain their own color and produce the correct wool when sheared or killed
  • The Animal Pen information screen has been redesigned into a compact, coherent, responsive interface

Added

  • Individual Animal Storage

    • Stores complete NBT, health, age, appearance, name, ownership, and variant data for every animal in a pen
    • Preserves differently colored sheep and other same-type animal variants in one pen
    • Includes migration support for existing count-based Animal Pen saves
    • Uses compact client update data so full NBT for all 64 animals is not sent with every visual update
  • Per-Animal Sheep Drops

    • Shearing evaluates every stored adult sheep individually
    • Mixed-color pens produce the corresponding wool colors rather than copying the front sheep's color
    • Wool of matching colors is merged into stacks before being given to the player
    • Baby sheep are excluded from shearing
  • Improved Capture Safety

    • Prevents players from capturing another player's owned animals
    • Prevents capture while an animal is mounted, carrying passengers, or leashed
    • Keeps the animal in the world if the captured item cannot be inserted or spawned safely
    • Validates captured entity data before deposit or release
    • Prevents releasing animals into obstructed spaces
  • Passive Resource Collection

    • Empty-hand right-click now collects stored passive resources
    • Resource changes synchronize to the Animal Pen screen
    • Resource icons in the screen include counts and hover tooltips

Changed

  • Breeding Rework

    • Breeding now feeds at most two pairs (2-4 animals) per cycle
    • Baby capacity is reserved when food is consumed, preventing deposits from filling those slots mid-cycle
    • Full pens no longer consume breeding food without producing offspring
    • Breeding creates real offspring NBT from individual parents instead of incrementing a shared adult count
    • Stored babies continue growing inside the pen
    • Individual vanilla age and post-breeding cooldown values continue ticking while stored
    • Breeding timing now uses level game time for consistent server/client progress and unload behavior
  • Combat Rework

    • Sneak-attack targets the front animal while ordinary attacks remain available for breaking the pen
    • Sneak-attacking an occupied pen no longer progresses block mining
    • Damage is calculated from the player's attack-damage attribute and attack strength
    • Loot tables receive the actual killed animal and its individual NBT state
  • Tool Interactions

    • Bucket interactions dispatch directly to chickens or milkable animals without contradictory messages
    • Buckets, bottles, and bowls now use vanilla-style filled-container handling
    • Creative-mode interactions no longer consume captured animals or empty containers
    • Milking, stewing, shearing, and brushing respect the targeted animal's adult state
    • Tool failures are treated as handled pen interactions and no longer fall through to unrelated item behavior
  • Animal Pen Screen

    • Replaced the oversized split overlay with one centered, bounded panel
    • Added consistent preview, pen status, breeding, and stored-resource cards
    • Improved spacing, alignment, typography hierarchy, progress bars, and footer controls
    • Added responsive sizing for different window and GUI scales
    • Reduced the animal preview size and refreshes it when the front animal changes
    • Moved all screen text to localization keys
  • Captured Animal Rendering

    • Captured items are cached by entity type and individual NBT instead of entity type alone
    • Different sheep colors and other variants now render correctly in inventories, hands, item frames, and as dropped items
    • Added a bounded render cache that is cleared when changing worlds

Fixed

  • Same-type animals losing or duplicating names, colors, owners, ages, health, and variant data
  • Damaged animals using their current health as their permanent maximum health
  • Extracting a damaged animal restoring health from an unrelated shared template
  • Stale breeding state carrying across extraction, death, or replacement with another species
  • Breeding progress and passive resources appearing stale in the client screen
  • Passive honey and other generated resources being inaccessible without breaking the pen
  • Chicken egg collection showing an incorrect "cannot milk" message first
  • Entity loot conditions evaluating against the attacking player instead of the killed animal
  • Client and server disagreeing about whether arbitrary held-item interactions succeeded
  • Client-only ghost resource drops when an Animal Pen was removed
  • Partial inventory insertion potentially duplicating passive resource drops
  • Item removal utilities removing incorrect quantities across multiple stacks
  • Captured Animal items reusing the first-rendered animal's appearance
  • Renderer shadow state remaining disabled after a rendering exception

Technical

  • Replaced deprecated item client-extension initialization with RegisterClientExtensionsEvent
  • Added per-animal save serialization with backward-compatible legacy migration
  • Added compact front-animal serialization for block entity update packets
  • Centralized entity validation and safer NBT copying
  • Improved render entity cleanup when caches, screens, block entities, or worlds are removed