Husk
Registry name
etfuturum:husk
Audit correction: previously written as
etfuturum.husk(wrong separator). Evidence:core/proxy/CommonProxy.java:206registerEntity(EntityHusk.class, "husk", 4, ...)
Basic info
-
Health: Inherited from
EntityZombie— standard zombie health (20 HP base) -
Armor: Inherited from
EntityZombie -
Size:
0.6 × 1.8(width × height) -
Spawn conditions: No natural spawn is registered by default. The husk is registered as an entity, but
EntityRegistry.addSpawn(EntityHusk.class, ...)sits inside anif (ConfigWorld.oldHuskSpawning)block, andoldHuskSpawningdefaults to false (configuration/configs/ConfigWorld.java:202). With the default config the husk therefore never spawns naturally at all — it is obtainable only via spawn egg / commands.When
oldHuskSpawning = true, the logic is: in biomes that are simultaneouslySANDY+DRY+HOT(deserts), vanilla zombie spawn is removed and replaced byEntityZombieweight 20 +EntityHuskweight 80, both group 4–4 — i.e. husks are 80% of zombie spawns, and they spawn regardless of sky exposure. Evidence:core/proxy/CommonProxy.java:209-219.Audit correction: the previous text said “desert biomes; standard zombie spawn rules (light level ≤ 7, etc.)” — that described neither the 80:20 weight split nor the fact that the whole thing is off by default. The config’s own description (
ConfigWorld.java:202) states the default behaviour is “replacing 80% of zombies exposed to the sky in the right biomes”.
Configuration gate
- Entity registration:
ConfigEntities.enableHusk, keyenableHusks, default ON (ConfigEntities.java:59). - Natural spawning:
ConfigWorld.oldHuskSpawning, default OFF (ConfigWorld.java:202) → no natural husks by default. Forced ON when OptiFine is detected (CommonProxy.java:196-199). - Drops: Inherited from
EntityZombie(rotten flesh, rarely iron ingot/ingots with Looting) - Behaviour: Desert variant of zombie. Same AI as zombie with two key differences: ignores sunlight (never burns), and deals Hunger effect on hit.
Key differences from Zombie
| Feature | Husk | Zombie |
|---|---|---|
| Sunlight | Ignores it (always brightness=0) | Burns in sunlight |
| Effect on hit | Hunger (140 × difficulty ticks) | None |
| Drops | Same as zombie | Same |
AI tasks
- Swimming
- Melee attack player
- Melee attack villager
- Move toward restriction
- Move through village
- Wander
- Watch closest player
- Look idle
- Target: hurt-by-target
- Target: nearest attackable player
- Target: nearest attackable villager
Notes
- Extends
EntityZombiedirectly; all zombie mechanics (spawning, equipment, attributes) apply onLivingUpdate: setsignoreSunlight=true→ callssuper.onLivingUpdate()→ resets, forcing brightness to 0 during the update tick- Sound IDs:
minecraft:entity.husk.ambient,.hurt,.death,.step - Spawn egg returns the standard zombie spawn egg via
ModEntityList.getEggFromEntity