About Entity Texture Features
Entity Texture Features (ETF) is a client-side mod by Traben that lets resource packs decide how mobs and other entities are textured: several variants of the same mob, textures chosen by biome or name, glowing layers, blinking eyes and optional effects on player skins. It reads the file format OptiFine introduced for these features, so packs written for OptiFine's random and emissive entities work on Fabric, Quilt, NeoForge and Forge without OptiFine installed. Without such a pack, only the player-skin features described below have anything to do.
What a resource pack can do with ETF installed
A vanilla resource pack can replace a mob's texture with exactly one other texture. ETF adds four abilities, each switched on by files inside the pack:
- Random and custom textures. The pack ships numbered copies of a texture, such as
zombie2.png and zombie3.png, and ETF assigns one to each mob. A properties file beside them turns the lottery into rules: this texture in deserts, that one for a zombie named John, another below a certain height.
- Emissive textures. A copy of the texture with the
_e suffix holds only the pixels that should glow, so eyes, runes or lanterns on a mob stay lit at night.
- Blinking. A
TEXTURE_blink.png, optionally joined by a half-closed TEXTURE_blink2.png, makes the mob blink at intervals. Sleeping mobs keep their eyes shut where the pack provides the frame, and blinded ones close or half-close them.
- Player skin features, which work differently from the rest and are covered further down.
ETF changes textures, EMF changes models
ETF never alters the shape of an entity. Custom Entity Models, the other half of OptiFine's entity system, belong to Entity Model Features, a separate mod by the same author. When mobs turn invisible, stretched or scrambled after a pack is enabled, the pack contains models and EMF is missing. ETF's own FAQ gives exactly that answer.
The dependency runs one way. EMF cannot load without ETF, because it borrows ETF's random selection, texture variation and settings screen. ETF runs perfectly well alone, and it is the only mod a pack needs when it ships textures but no model files. Fresh Animations is the best-known pack that needs both.
More conditions than OptiFine offers
Every OptiFine random-entity property works, including the biome, name and height rules, and ETF adds its own on top. Pack authors can match on the block a mob spawned on, its scoreboard team, several names at once, a horse's speed or jump strength, maximum health, a screaming goat, a player-built iron golem, a charged creeper, active status effects and the distance to the player.
One behaviour catches people out while testing a pack. Biome, block and most other conditions are checked once, when the mob spawns or first loads. A zombie that picked up the desert texture keeps it after wandering into a forest. Name, health, baby state, team, anger, held items and movement are re-checked while the mob exists, at the update speed set in ETF's options.
ETF also looks for random textures in more places than OptiFine does. It checks its own etf/random/entity folder first, then OptiFine's optifine/random/entity, then the legacy optifine/mob, and finally the vanilla texture folder. Numbering starts at 2, and when there is no properties file the numbers must run without gaps: anything after a missing number is ignored.
Emissive textures and the two brightness modes
Glowing textures render in one of two modes, chosen in ETF's settings. The default, dull emissives, behaves like OptiFine: glowing parts still take directional shading and stay restrained in daylight. Bright emissives skip the shading and glow harder, which tends to produce more bloom under shaders. ETF's documentation also warns they are more likely to break with some shader packs, so they are a matter of taste rather than an upgrade.
ETF's emissives reach entities and a set of block entities (chests, shulker boxes, beds, bells, lecterns and enchanting table books) but not ordinary blocks or items. Glowing ores and item textures come from Continuity instead. Worn gear is covered too: armor, elytra and tridents accept emissive layers, and armor trims take them per material, through file names such as coast_amethyst_e.png. Two conflicts are documented as well. Complementary Shaders has emissive handling of its own that can clash with a pack's emissive textures, and the suggested fix is to turn off the emissives in one of the two. The Enhanced Block Entities mod, which renders chests and similar blocks as plain block models for speed, removes ETF's support for those blocks.
Player skin features
ETF can read extra effects from a player's own skin file: transparent sections, glowing pixels, an enchantment shimmer on chosen pixels, blinking, and cosmetic extras such as a jacket or a dress extension. Nothing happens unless the skin carries a small coloured marker below the head, so no one else's pack can alter your skin. The Skin Tool in ETF's settings applies the features for you and can upload the finished skin to Mojang directly.
These effects are drawn by the mod on each viewer's own game, so a player without ETF sees your skin as vanilla Minecraft draws it. To limit abuse in PvP, ETF caps how transparent a skin can be overall, and transparency can be switched off for players on an enemy team.
Loaders and versions
ETF has builds for Fabric (which also load on Quilt), NeoForge and Forge from Minecraft 1.16.5 to 26.3. Forge builds continue up to 1.21.11. From 26.1 onward the choice is Fabric or NeoForge. The current files require nothing but the loader, not even Fabric API. Settings open from a button on the Resource Packs screen, from Mod Menu on Fabric, or in config/entity_texture_features.json.
The mod is client-side: a server needs nothing, and other players do not need it for you to see a pack's textures. It runs alongside Sodium and Iris, although how emissive textures look under a shader varies from pack to pack. ETF declares OptiFabric incompatible, and there is no reason to pair it with OptiFine, which already covers the same ground.
When a pack's mobs look wrong
- Mobs are invisible or broken: the pack has custom models. Install EMF.
- The game stutters with a pack enabled: ETF's FAQ points to a badly written properties file or a texture the pack names but does not contain.
logs/latest.log usually says which.
- Modded mobs ignore the pack: ETF works on modded entities only when they render through vanilla's living-entity renderer.
- One variant never appears: check the numbering and the folder, as described above.
ETF is a single jar per loader and Minecraft version, and it needs no API or library mod beside it.
How to Download Entity Texture Features for Minecraft
Every ETF file is built for one loader and one Minecraft version, so start in the Entity Texture Features Downloads section: set the version filter to your game version and the loader filter to Fabric, NeoForge or Forge. Quilt players choose Fabric. The Download button on the remaining row leads to that file on Modrinth.
From Minecraft 26.1 onward there are Fabric and NeoForge files only. Forge players on 1.21.11 or older still have a Forge row.
How to Install Entity Texture Features in Minecraft
- Install Fabric, NeoForge or Forge for your Minecraft version and start that profile once, so its
mods folder exists.
- Put the ETF jar into that
mods folder. Fabric API is not required, and Mod Menu is optional.
- In game, go to Options and Resource Packs and move a pack that uses entity texture features into the Selected column. Nothing needs to be installed on a server, since ETF only changes what your own game draws.
Packs that also contain models
Fresh Animations and other Custom Entity Models packs also need Entity Model Features. Get it for the same Minecraft version and loader and place it next to ETF. Update the two together: current EMF (3.3 and newer) refuses to start with an ETF older than 7.2, and ETF 7.2 refuses an EMF older than 3.3.
Coming from OptiFine
Remove OptiFine or OptiFabric first. Your packs stay as they are, since ETF reads the same random and emissive files.
Confirming it works
With ETF loaded, the Resource Packs screen gains a button for ETF's settings, which is the quickest sign the mod is running. Then look at a mob your pack changes. Packs with variants usually cover common mobs such as villagers, zombies or cows, so a group of them should no longer look identical.
If the game will not start, check that the jar matches both your loader and your Minecraft version. The mod installation guide covers loaders from scratch, and texture packs not working helps when the pack itself is missing from the list.