Zombie Villager - 1.13.0.34

<< back to entity list

Last Updated

The Zombie Villager entity last updated in Minecraft Version old
View Entity Version History >>

What's Changed:

Changes since stable release 1.12.0.28



      • New Value:
        "body": {
            "rotation": [
                0,
                "math.sin(math.sqrt(variable.attack_time) * 360) * 11.46 - this",
                0
            ]
        }
        Previous Value:
        "body": {
            "rotation": [
                0,
                "variable.attack_body_rot_y - this",
                0
            ]
        }
      • New Value:
        "head": {
            "scale": 1.4
        }
        Previous Value:
        "head": {
            "scale": 1.399999976158142
        }
      • New Value:
        "head": {
            "relative_to": {
                "rotation": "entity"
            },
            "rotation": [
                "query.target_x_rotation",
                "query.target_y_rotation",
                0
            ]
        }
        Previous Value:
        "head": {
            "rotation": [
                "query.target_x_rotation",
                "query.target_y_rotation",
                0
            ]
        }
      • New Value:
        "leftarm": {
            "rotation": {
                "0.7": {
                 "post": [
                    "math.lerp(this, 11.25 * math.mod(query.modified_distance_moved, 26.0), variable.leftarmswim_amount)",
                    "math.lerp(this, 180.0, variable.leftarmswim_amount)",
                    "math.lerp(this, 72.77 + 13.4 * math.mod(query.modified_distance_moved, 26.0), variable.leftarmswim_amount)"
                 ],
                 "pre": [
                    "math.lerp(this, 0.0, variable.leftarmswim_amount)",
                    "math.lerp(this, 180.0, variable.leftarmswim_amount)",
                    "math.lerp(this, 180.0 - 0.01877 * (-65.0 * math.mod(query.modified_distance_moved, 26.0) + math.mod(query.modified_distance_moved, 26.0) * math.mod(query.modified_distance_moved, 26.0)), variable.leftarmswim_amount)"
                 ]
                },
                "1.1": [
                 "math.lerp(this, 11.25 * math.mod(query.modified_distance_moved, 26.0), variable.leftarmswim_amount)",
                 "math.lerp(this, 180.0, variable.leftarmswim_amount)",
                 "math.lerp(this, 72.77 + 13.4 * math.mod(query.modified_distance_moved, 26.0), variable.leftarmswim_amount)"
                ],
                "1.3": {
                 "post": [
                    "math.lerp(this, 90.0 - (22.5 * math.mod(query.modified_distance_moved, 26.0)), variable.leftarmswim_amount)",
                    "math.lerp(this, 180.0, variable.leftarmswim_amount)",
                    "math.lerp(this, 180.0, variable.leftarmswim_amount)"
                 ],
                 "pre": [
                    "math.lerp(this, 11.25 * math.mod(query.modified_distance_moved, 26.0), variable.leftarmswim_amount)",
                    "math.lerp(this, 180.0, variable.leftarmswim_amount)",
                    "math.lerp(this, 72.77 + 13.4 * math.mod(query.modified_distance_moved, 26.0), variable.leftarmswim_amount)"
                 ]
                }
            }
        }
        Previous Value:
        "leftarm": {
            "rotation": {
                "0.7": {
                 "post": [
                    "math.lerp(this, 11.25 * variable.internal_swim_pos, variable.leftarmswim_amount)",
                    "math.lerp(this, 180.0, variable.leftarmswim_amount)",
                    "math.lerp(this, 72.77 + 13.4 * variable.internal_swim_pos, variable.leftarmswim_amount)"
                 ],
                 "pre": [
                    "math.lerp(this, 0.0, variable.leftarmswim_amount)",
                    "math.lerp(this, 180.0, variable.leftarmswim_amount)",
                    "math.lerp(this, 180.0 - 0.01877 * (-65.0 * variable.internal_swim_pos + variable.internal_swim_pos * variable.internal_swim_pos), variable.leftarmswim_amount)"
                 ]
                },
                "1.1": [
                 "math.lerp(this, 11.25 * variable.internal_swim_pos, variable.leftarmswim_amount)",
                 "math.lerp(this, 180.0, variable.leftarmswim_amount)",
                 "math.lerp(this, 72.77 + 13.4 * variable.internal_swim_pos, variable.leftarmswim_amount)"
                ],
                "1.3": {
                 "post": [
                    "math.lerp(this, 90.0 - (22.5 * variable.internal_swim_pos), variable.leftarmswim_amount)",
                    "math.lerp(this, 180.0, variable.leftarmswim_amount)",
                    "math.lerp(this, 180.0, variable.leftarmswim_amount)"
                 ],
                 "pre": [
                    "math.lerp(this, 11.25 * variable.internal_swim_pos, variable.leftarmswim_amount)",
                    "math.lerp(this, 180.0, variable.leftarmswim_amount)",
                    "math.lerp(this, 72.77 + 13.4 * variable.internal_swim_pos, variable.leftarmswim_amount)"
                 ]
                }
            }
        }
      • New Value:
        "rightarm": {
            "rotation": [
                "variable.use_item_startup_progress * -60.0 + variable.use_item_interval_progress * 11.25",
                "variable.use_item_startup_progress * -22.5 + variable.use_item_interval_progress * 11.25",
                "variable.use_item_startup_progress * -5.625 + variable.use_item_interval_progress * 11.25"
            ]
        }
        Previous Value:
        "rightarm": {
            "rotation": [
                "variable.useitemstartupprogress * -60.0 + variable.useitemintervalprogress * 11.25",
                "variable.useitemstartupprogress * -22.5 + variable.useitemintervalprogress * 11.25",
                "variable.useitemstartupprogress * -5.625 + variable.useitemintervalprogress * 11.25"
            ]
        }
      • New Value:
        "animation.humanoid.celebrating": {
            "loop": true,
            "bones": {
                "leftarm": {
                 "rotation": [
                    "(math.cos(query.life_time * 800.0) * 2.865)",
                    180,
                    -135
                 ]
                },
                "rightarm": {
                 "rotation": [
                    "(math.cos(query.life_time * 800.0) * 2.865)",
                    180,
                    153
                 ]
                }
            }
        }
      • New Value:
        "animation_length": 1.3
        Previous Value:
        "animation_length": 1.299999952316284
      • New Value:
        "rightarm": {
            "rotation": [
                "math.sin(1.0 - math.pow(1.0 - variable.attack_time, 3.0) * 180.0) * (variable.is_brandishing_spear ? -1.0 : 1.0 )",
                "variable.is_brandishing_spear ? 0.0 : (math.sin(math.sqrt(variable.attack_time) * 360) * 11.46) * 2.0",
                0
            ]
        }
        Previous Value:
        "rightarm": {
            "rotation": [
                "math.sin(1.0 - math.pow(1.0 - variable.attack_time, 3.0) * 180.0) * (variable.is_brandishing_spear ? -1.0 : 1.0 )",
                "variable.is_brandishing_spear ? 0.0 : variable.attack_body_rot_y * 2.0",
                0
            ]
        }
      • New Value:
        "leftarm": {
            "rotation": [
                "math.sin(math.sqrt(variable.attack_time) * 360) * 11.46",
                0,
                0
            ]
        }
        Previous Value:
        "leftarm": {
            "rotation": [
                "variable.attack_body_rot_y",
                0,
                0
            ]
        }
      • New Value:
        "leftleg": {
            "rotation": [
                "variable.tcos0 * -1.4",
                0,
                0
            ]
        }
        Previous Value:
        "leftleg": {
            "rotation": [
                "variable.tcos1 * 1.4",
                0,
                0
            ]
        }
      • Previous Value:
        "leftleg": {
            "rotation": [
                "-math.sin(query.life_time * 76.8) * 2.865",
                0,
                0
            ]
        }
      • New Value:
        "rightarm": {
            "rotation": [
                "-variable.tcos0",
                0,
                0
            ]
        }
        Previous Value:
        "rightarm": {
            "rotation": [
                "variable.tcos1",
                0,
                0
            ]
        }
      • New Value:
        "rightarm": {
            "rotation": {
                "0.7": {
                 "post": [
                    "math.lerp(this, 11.25 * math.mod(query.modified_distance_moved, 26.0), variable.rightarmswim_amount)",
                    "math.lerp(this, 180.0, variable.rightarmswim_amount)",
                    "math.lerp(this, 72.77 + 13.4 * math.mod(query.modified_distance_moved, 26.0), variable.rightarmswim_amount)"
                 ],
                 "pre": [
                    "math.lerp(this, 0.0, variable.rightarmswim_amount)",
                    "math.lerp(this, 180.0, variable.rightarmswim_amount)",
                    "math.lerp(this, -0.1019 * (-65.0 * math.mod(query.modified_distance_moved, 26.0) + math.mod(query.modified_distance_moved, 26.0) * math.mod(query.modified_distance_moved, 26.0)), variable.rightarmswim_amount)"
                 ]
                },
                "1.1": [
                 "math.lerp(this, 11.25 * math.mod(query.modified_distance_moved, 26.0), variable.rightarmswim_amount)",
                 "math.lerp(this, 180.0, variable.rightarmswim_amount)",
                 "math.lerp(this, 72.77 + 13.4 * math.mod(query.modified_distance_moved, 26.0), variable.rightarmswim_amount)"
                ],
                "1.3": {
                 "post": [
                    "math.lerp(this, 90.0 - (22.5 * math.mod(query.modified_distance_moved, 26.0)), variable.rightarmswim_amount)",
                    "math.lerp(this, 180.0, variable.rightarmswim_amount)",
                    "math.lerp(this, 180.0, variable.rightarmswim_amount)"
                 ],
                 "pre": [
                    "math.lerp(this, 11.25 * math.mod(query.modified_distance_moved, 26.0), variable.rightarmswim_amount)",
                    "math.lerp(this, 180.0, variable.rightarmswim_amount)",
                    "math.lerp(this, 72.77 + 13.4 * math.mod(query.modified_distance_moved, 26.0), variable.rightarmswim_amount)"
                 ]
                }
            }
        }
        Previous Value:
        "rightarm": {
            "rotation": {
                "0.7": {
                 "post": [
                    "math.lerp(this, 11.25 * variable.internal_swim_pos, variable.rightarmswim_amount)",
                    "math.lerp(this, 180.0, variable.rightarmswim_amount)",
                    "math.lerp(this, 72.77 + 13.4 * variable.internal_swim_pos, variable.rightarmswim_amount)"
                 ],
                 "pre": [
                    "math.lerp(this, 0.0, variable.rightarmswim_amount)",
                    "math.lerp(this, 180.0, variable.rightarmswim_amount)",
                    "math.lerp(this, -0.1019 * (-65.0 * variable.internal_swim_pos + variable.internal_swim_pos * variable.internal_swim_pos), variable.rightarmswim_amount)"
                 ]
                },
                "1.1": [
                 "math.lerp(this, 11.25 * variable.internal_swim_pos, variable.rightarmswim_amount)",
                 "math.lerp(this, 180.0, variable.rightarmswim_amount)",
                 "math.lerp(this, 72.77 + 13.4 * variable.internal_swim_pos, variable.rightarmswim_amount)"
                ],
                "1.3": {
                 "post": [
                    "math.lerp(this, 90.0 - (22.5 * variable.internal_swim_pos), variable.rightarmswim_amount)",
                    "math.lerp(this, 180.0, variable.rightarmswim_amount)",
                    "math.lerp(this, 180.0, variable.rightarmswim_amount)"
                 ],
                 "pre": [
                    "math.lerp(this, 11.25 * variable.internal_swim_pos, variable.rightarmswim_amount)",
                    "math.lerp(this, 180.0, variable.rightarmswim_amount)",
                    "math.lerp(this, 72.77 + 13.4 * variable.internal_swim_pos, variable.rightarmswim_amount)"
                 ]
                }
            }
        }
      • New Value:
        "leftarm": {
            "rotation": [
                "-90 - ((math.sin(variable.attack_time * 180.0) * 57.3) * 1.2 - (math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3) * 0.4) - (math.sin(query.life_time * 76.776372) * 2.865) - this",
                "5.73 - ((math.sin(variable.attack_time * 180.0) * 57.3) * 0.6) - this",
                "math.cos(query.life_time * 103.13244) * -2.865 - 2.865 - this"
            ]
        }
        Previous Value:
        "leftarm": {
            "rotation": [
                "-90 - (variable.attack2 * 1.2 - variable.attack * 0.4) - variable.x_bob - this",
                "5.73 - (variable.attack2 * 0.6) - this",
                "-variable.z_bob - this"
            ]
        }
      • New Value:
        "leftarm": {
            "rotation": [
                "math.lerprotate(this, -180.0, variable.swim_amount) - (variable.swim_amount * ((math.sin(variable.attack_time * 180.0) * 57.3) * 1.2 - (math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3) * 0.4)) - (variable.swim_amount * (math.sin(query.life_time * 76.776372) * 2.865)) - this",
                "math.lerprotate(this, 14.325, variable.swim_amount) - this",
                "math.lerprotate(this, 14.325, variable.swim_amount) - (variable.swim_amount * (math.cos(query.life_time * 103.13244) * 2.865 + 2.865)) - this"
            ]
        }
        Previous Value:
        "leftarm": {
            "rotation": [
                "math.lerprotate(this, -180.0, variable.swim_amount) - (variable.swim_amount * (variable.attack2 * 1.2 - variable.attack * 0.4)) - (variable.swim_amount * variable.x_bob) - this",
                "math.lerprotate(this, 14.325, variable.swim_amount) - this",
                "math.lerprotate(this, 14.325, variable.swim_amount) - (variable.swim_amount * variable.z_bob) - this"
            ]
        }
      • New Value:
        "rightarm": {
            "rotation": [
                "90 * (variable.is_brandishing_spear - 1.0) - ((math.sin(variable.attack_time * 180.0) * 57.3) * 1.2 - (math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3) * 0.4) + (math.sin(query.life_time * 76.776372) * 2.865) - this",
                "(math.sin(variable.attack_time * 180.0) * 57.3) * 0.6 - 5.73 - this",
                "math.cos(query.life_time * 103.13244) * 2.865 + 2.865 - this"
            ]
        }
        Previous Value:
        "rightarm": {
            "rotation": [
                "90 * (variable.is_brandishing_spear - 1.0) - (variable.attack2 * 1.2 - variable.attack * 0.4) + variable.x_bob - this",
                "variable.attack2 * 0.6 - 5.73 - this",
                "variable.z_bob - this"
            ]
        }
      • New Value:
        "rightarm": {
            "rotation": [
                "math.lerprotate(this, -180.0, variable.swim_amount) - (variable.swim_amount * ((math.sin(variable.attack_time * 180.0) * 57.3) * 1.2 - (math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3) * 0.4)) + (variable.swim_amount * (math.sin(query.life_time * 76.776372) * 2.865)) - this",
                "math.lerprotate(this, 14.325, variable.swim_amount) - this",
                "math.lerprotate(this, -14.325, variable.swim_amount) + (variable.swim_amount * (math.cos(query.life_time * 103.13244) * 2.865 + 2.865)) - this"
            ]
        }
        Previous Value:
        "rightarm": {
            "rotation": [
                "math.lerprotate(this, -180.0, variable.swim_amount) - (variable.swim_amount * (variable.attack2 * 1.2 - variable.attack * 0.4)) + (variable.swim_amount * variable.x_bob) - this",
                "math.lerprotate(this, 14.325, variable.swim_amount) - this",
                "math.lerprotate(this, -14.325, variable.swim_amount) + (variable.swim_amount * variable.z_bob) - this"
            ]
        }
      • New Value:
        "scripts": {
            "pre_animation": [
                "variable.tcos0 = (Math.cos(query.modified_distance_moved * 38.17) * query.modified_move_speed / variable.gliding_speed_value) * 57.3;"
            ]
        }
        Previous Value:
        "scripts": {
            "pre_animation": [
                "variable.tcos0 = (Math.cos(query.modified_distance_moved * 38.17) * query.modified_move_speed / variable.gliding_speed_value) * 57.3;",
                "variable.tcos1 = -variable.tcos0;",
                "variable.attack_body_rot_y = Math.sin(Math.sqrt(variable.attack_time) * 360.0) * 11.46;",
                "variable.cos_attack_body_rot_y = Math.cos(variable.attack_body_rot_y);",
                "variable.sin_attack_body_rot_y = Math.sin(variable.attack_body_rot_y);",
                "variable.internal_swim_pos = Math.mod(query.modified_distance_moved, 26.0);",
                "variable.attack = Math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3;",
                "variable.attack2 = Math.sin(variable.attack_time * 180.0) * 57.3;",
                "variable.z_bob = Math.cos(query.life_time * 103.13244) * 2.865 + 2.865;",
                "variable.x_bob = Math.sin(query.life_time * 76.776372) * 2.865;"
            ]
        }

Statistics:

Health

[20]

Loot / Barter Loot / Additional Drops
  • Rotten Flesh
  • Iron Ingot
  • Carrot
  • Potato
    Attack Damage
    • Default: 3
    Can be Ridden by Mobs
    • Adult: Zombie
    Families
    • Armorer: Armorer, Mob, Monster, Undead, Zombie, Zombie Villager
    • Butcher: Butcher, Mob, Monster, Undead, Zombie, Zombie Villager
    • Cartographer: Cartographer, Mob, Monster, Undead, Zombie, Zombie Villager
    • Cleric: Cleric, Mob, Monster, Undead, Zombie, Zombie Villager
    • Farmer: Farmer, Mob, Monster, Undead, Zombie, Zombie Villager
    • Fisherman: Fisherman, Mob, Monster, Undead, Zombie, Zombie Villager
    • Fletcher: Fletcher, Mob, Monster, Undead, Zombie, Zombie Villager
    • Leatherworker: Leatherworker, Mob, Monster, Undead, Zombie, Zombie Villager
    • Librarian: Librarian, Mob, Monster, Undead, Zombie, Zombie Villager
    • Shepherd: Mob, Monster, Shepherd, Undead, Zombie, Zombie Villager
    • Toolsmith: Mob, Monster, Toolsmith, Undead, Zombie, Zombie Villager
    • Weaponsmith: Mob, Monster, Undead, Weaponsmith, Zombie, Zombie Villager
    Movement Speed
    • Adult: 0.23
    • Baby: 0.35
    Variations
    • Armorer
    • Butcher
    • Cartographer
    • Cleric
    • Farmer
    • Fisherman
    • Fletcher
    • Leatherworker
    • Librarian
    • Shepherd
    • Toolsmith
    • Weaponsmith
    Other Attributes
    • Burns in Daylight
    • Can be Renamed
    • Can Breath in Water
    • Can Climb
    • Can Jump
    • Has Collisions
    • Has Gravity
    • Pushable
    • Pushable by Pistons

    Associated Files:

    Behavior File
    • behavior_packs/vanilla/entities/zombie_villager.json
    Animations
    • resource_packs/vanilla/animations/humanoid.animation.json
    • resource_packs/vanilla/animations/zombie.animation.json
    Animation Controllers
    • resource_packs/vanilla/animation_controllers/humanoid.animation_controllers.json
    • resource_packs/vanilla/animation_controllers/zombie.animation_controllers.json
    Entity
    • resource_packs/vanilla/entity/zombie_villager.entity.json
    Geometry
    • resource_packs/vanilla/models/entity/zombie_villager.geo.json
    Loot Tables
    • behavior_packs/vanilla/loot_tables/entities/zombie.json
    Render Controllers
    • resource_packs/vanilla/render_controllers/zombie_villager.render_controllers.json
    Sounds
    • resource_packs/vanilla/sounds/mob/zombie/step1.fsb
    • resource_packs/vanilla/sounds/mob/zombie/step2.fsb
    • resource_packs/vanilla/sounds/mob/zombie/step3.fsb
    • resource_packs/vanilla/sounds/mob/zombie/step4.fsb
    • resource_packs/vanilla/sounds/mob/zombie/step5.fsb
    • resource_packs/vanilla/sounds/mob/zombie_villager/death.fsb
    • resource_packs/vanilla/sounds/mob/zombie_villager/hurt1.fsb
    • resource_packs/vanilla/sounds/mob/zombie_villager/hurt2.fsb
    • resource_packs/vanilla/sounds/mob/zombie_villager/say1.fsb
    • resource_packs/vanilla/sounds/mob/zombie_villager/say2.fsb
    • resource_packs/vanilla/sounds/mob/zombie_villager/say3.fsb
    Textures
    • resource_packs/vanilla/textures/entity/zombie_villager/zombie_butcher.png
    • resource_packs/vanilla/textures/entity/zombie_villager/zombie_farmer.png
    • resource_packs/vanilla/textures/entity/zombie_villager/zombie_librarian.png
    • resource_packs/vanilla/textures/entity/zombie_villager/zombie_priest.png
    • resource_packs/vanilla/textures/entity/zombie_villager/zombie_smith.png

    Material Info:

    Material: Zombie Villager
    {
        "vertexShader": "shaders/entity.vertex",
        "vrGeometryShader": "shaders/entity.geometry",
        "fragmentShader": "shaders/entity.fragment",
        "vertexFields": [
            {
                "field": "Position"
            },
            {
                "field": "Normal"
            },
            {
                "field": "UV0"
            }
        ],
        "variants": [
            {
                "skinning": {
                    "+defines": [
                        "USE_SKINNING"
                    ],
                    "vertexFields": [
                        {
                            "field": "Position"
                        },
                        {
                            "field": "BoneId0"
                        },
                        {
                            "field": "Normal"
                        },
                        {
                            "field": "UV0"
                        }
                    ]
                }
            },
            {
                "skinning_color": {
                    "+defines": [
                        "USE_SKINNING",
                        "USE_OVERLAY"
                    ],
                    "+states": [
                        "Blending"
                    ],
                    "vertexFields": [
                        {
                            "field": "Position"
                        },
                        {
                            "field": "BoneId0"
                        },
                        {
                            "field": "Color"
                        },
                        {
                            "field": "Normal"
                        },
                        {
                            "field": "UV0"
                        }
                    ]
                }
            }
        ],
        "msaaSupport": [
            "Both"
        ],
        "+samplerStates": {
            "samplerIndex": 1,
            "textureWrap": "Repeat"
        },
        "+defines": [
            "USE_OVERLAY",
            "ALPHA_TEST"
        ],
        "+states": [
            "DisableCulling"
        ]
    }