promotional bannermobile promotional banner

Tolkien Tweaks - Mobs Edition

Additional tools for modpack and map makers
Back to Files

tolkienmobs-4.4.83.jar

File nametolkienmobs-4.4.83.jar
Uploader
GreatOratorGreatOrator
Uploaded
Oct 23, 2026
Downloads
9
Size
29.4 MB
Mod Loaders
NeoForge
File ID
9293475
Type
R
Release
Supported game versions
  • 1.21.4

Curse Maven Snippet

NeoForge

implementation "curse.maven:tolkien-tweaks-mobs-edition-306801:9293475"

Learn more about Curse Maven

What's new

Added

  • Mithril, morguliron and ammolite trims show on the armour icon. Those three are the mod's own materials, so vanilla's sprite atlas has no cut for them and a piece trimmed with one fell back to its plain icon; the datagen now bakes a trim sprite for each material and armour slot by putting vanilla's trim shape through the material's own colour palette - the same swap the game applies to vanilla trims - and each piece selects it by material just like the vanilla ones.
  • The fell beast glides. While it was on the wing its animation file's glide clip was never asked for, so a beast soaring with nothing to chase beat its wings exactly like one in a fight; it now holds glide whenever it is flying without climbing, keeps fly for the climb, and still stoops with dive when it drops on prey.
  • The fell beast really flies. Its own AI was holding it at exactly the height its navigator asked for, so it could never sink or climb on its own; it now beats its wings to climb at about two blocks a second, coasts between beats, and sinks slowly while it glides, holding its path with a wingbeat roughly every second. When its path leads well below it, it commits to a fast stoop instead of easing down. A player riding the beast still steers its height with their pitch.
  • The fell beast's wingbeats are heard. Its flap sound was only ever played by a wingbeat routine nothing called, so a beast flying under its own AI moved in silence; each downstroke of its flight now sounds, quieter than the one that lifts a rider and at most about once a second, so a long climb does not turn into a siren.
  • A stooping fell beast is heard coming. Its dive is silent, so a beast dropping out of the sky gave no sign of it; the air over its wings now plays while it stoops, and a rider's flight wind is driven by height as well as ground speed, so it no longer fades exactly when the beast drops straight down instead of flying flat.
  • The dive wind has a sound of its own, captioned "The beast dives." It borrowed the elytra's wind, so with subtitles on a stooping fell beast read as an elytra whooshing; the beast now carries its own wind event, built from the mod's gust samples.
  • The dive wind loops for the length of the stoop. Its gusts are three seconds long but were replayed on a one-second timer, so every one was cut off mid-gust and the seam was audible; the wind is now a purpose-made 7.25 second loop, assembled from the loud middles of those gusts and joined end to start inside a crossfade, recorded at the depth the dive plays at, that follows the beast and ends when the dive does.
  • The fell beast's wings are heard while a player rides it. A rider's flight is simulated on their own client, so the beast's AI wingbeat never ran for it and the ride was silent; the wings now beat at the same configured volume and rate while it is being flown, and the beat is played from the server so players nearby hear it too, not just the rider.

Changed

  • The mithril, morguliron and ammolite trim palettes are proper ramps. Each is eight steps from a highlight down to a shadow, and the old strips jumped between extremes - mithril ran bright yellow, near-black, then three whites - so a trim built from them read as speckle rather than metal. The colours now also keep clear of the armour they sit on: mithril's trim is a deeper blue than its silver plate, morguliron's a cold green against its warm black, and ammolite's a blue that separates from its green. The trim icons and sprites are regenerated from the new palettes; the same strips are what the trim colours elsewhere read from.
  • The fell beast's wingbeat can be tuned in the mod config. Its volume and the shortest gap between two beats were fixed in code; they are now fellbeastWingbeatVolume (default 2.0) and fellbeastWingbeatInterval in ticks (default 15, and 20 ticks is one second), read on every beat, so the loudness and cadence can be adjusted by ear without a new build.
  • The dive wind's volume can be tuned in the mod config. It was fixed at 1.6 in code; it is now fellbeastDiveWindVolume (default 1.6), read while the wind plays, so unlike the wingbeat it can be changed without a new dive. Its pitch is fellbeastDiveWindPitch (default 1.0, since the loop is recorded at the depth the dive should sound) alongside it, so the wind can be made deeper or sharper by ear. The wind is heard on each client, so both are the listener's own settings rather than the server's.
  • The Dwarven Mining enchant is Dwarven Excavation now, and its description says what it does: it breaks a slice across the face you struck, 3x3 at level I up to 9x9 at level IV, and sneaking breaks only the block you hit. It used to promise a vein of matching blocks, which the effect has not done since it was rewritten. Both languages carry the new wording; the enchantment's id is unchanged, so existing gear keeps it.
  • The Dwarven Mining effect's field is haste rather than range. It was never the area - the area follows the enchantment's level - it is the amplifier on the mining speed buff the effect also hands out, so a datapack that set "range" on the effect wants "haste" now (nothing the mod ships sets either).
  • A rider's dive is quiet. The wings beat for as long as a player flew the beast, even with its nose down; the beat now stops once the beast is dropping more than a block a second and steeper than fellbeastDiveAngle (default 45 degrees below horizontal), and comes back as soon as it levels out.
  • homeRadius can be set as low as 8. Its floor was equal to its default, so the only direction the setting allowed was up.
  • The config descriptions for disableFakePlayer and paymentType say what the two options actually do. One claimed a default it did not have, and the fake-player option was written as though turning it off disabled the effect rather than the fake players.

Removed

  • The number_of_blocks option is gone from the mod config. It set a range for the Dwarven Mining enchant, which takes its area from the enchantment's own level now - 3x3 at level 1 through 9x9 at level 4 - so nothing had read it since that change.

Fixed

  • Trimmed armour wears its trim on the icon again. 1.21.4 chooses the trimmed sprite with a select on the piece's trim material; the datagen still wrote the old trim_type predicates into the model's overrides array, which the game no longer reads, so every trimmed piece kept its plain icon however it was trimmed. Each of the twelve pieces now has a select definition over the eleven materials 1.21.4 ships, and resin - new in this version and missing from the old list - has its models too.
  • Molten mithril and molten morgul iron are named when placed. The liquid blocks are registered as mithril and morguliron, while the language file only named mithril_fluid and morguliron_fluid, so a placed pool showed a raw key.
  • Spawn eggs are drawn as eggs again, each in its creature's own two colours. 1.21.4 paints a spawn egg with vanilla's two-layer egg model, using the colours an item model definition tints it with, and the datagen was still writing the older model that named that template with no colours at all - so every egg in the game came out a flat untinted shape. Each of the 55 eggs now gets a definition carrying the two colours it was registered with, and the 55 model files that only pointed at the template are gone.
  • Wall signs and hanging wall signs are named again. The blocks are registered as sign_wall_<wood> and hanging_sign_wall_<wood>, but the language file only named wall_sign_<wood> and wall_hanging_sign_<wood>, so a sign placed against a wall - and the title of the hanging sign screen you open on it - showed its raw key instead of its name; all seven woods carry the names the blocks actually ask for now.
  • Boats and chest boats are named. Their items are boat_<wood> and chest_boat_<wood>, while the language file called them <wood>_boat and <wood>_chest_boat, so every boat in an inventory showed a raw key; the item names and both boat entity names follow the real ids now.
  • Potted flowers are named. The blocks are potted_flower_<flower> and the language file used potted_<flower>, so a flower in a pot showed a raw key; the language helper now takes the potted block itself rather than rebuilding its name from the flower, which is what let the two drift apart.
  • The second decay bloom block, pipeweed crops, the Arda portal, the Morgul crystal, the six projectiles, the simple trap and the two molten fluid types all have names now; none of them was in the language file at all.
  • The camo spawner says which mob it selected or replaced. Both of those chat messages were missing from the language file, so the spawner printed raw keys at the player.
  • The Chinese translation covers everything the English one does. The orc and southron villagers with all their trades, four biomes (Nurn, Forochel, the Forochel slopes and the Blue Mountains) and two spawn eggs had been left out, and every name above was missing from it too; the two files now hold the same 1719 keys.
  • The fell beast's fireball and the boulder no longer crash the game when they are drawn in flight. Each kept the angles it sits at once it lands in a field that started empty, and its renderer read that field on every frame, grounded or not, so the first frame either one was on screen threw a NullPointerException and took the client down; the field starts at zero now.
  • The milestone's dimension cost is a setting of its own again. It and the minimum tick speed were both saved under minimum_tick_speed, so the two could not be set apart and the dimension button's lowest allowed cost was whatever the tick speed was set to; the option is dimension_cost now.
  • Milestones charge levels when the payment method is experience. That branch checked for and spent the configured payment item instead, so a jump priced in levels was refused for lack of coins, or paid with coins while the levels went untouched; it checks and spends levels now.
  • The milestone list shows every milestone. It skipped whichever milestone came first in the list, its page count was one short whenever the total was just past a multiple of seven, and scrolling moved the page number without redrawing the list.
  • The milestone's experience cost readout keeps its number. Clicking it clamped the cost shown to 1, because its bounds had been copied from the fixed payment icon beside it.
  • Hallowed Earth hurts the undead again. Its disableFakePlayer option was read as a plain off switch that skipped the damage for every entity, not as a guard against fake players, so with the option on by default the block did nothing at all; it now spares fake players and hurts everything else it was always meant to.
  • A milestone refuses a jump it cannot charge for. When the configured payment item no longer resolves to an item, the item branch skipped the charge and the teleport was free; the jump is refused with the usual payment message now.
  • The fell beast roars, stoops and swings as it moves. Its animation file carries roar, dive and three walk_attack swings that no controller ever asked for, so the beast opened fights in silence and swung the same standing animation at a run; a bout of aggression now opens with roar, losing height on the wing plays dive, and a swing made on the move plays one of the walk_attack clips.
  • The elemental golem's tornado, the web trap and the thrown cobweb are drawn again. None of the three had a client renderer registered, so the tornado and the cobweb ball were invisible and a web that hit the ground left nothing behind; each now registers its GeckoLib renderer, the cobweb draws from the model and texture that were already in the jar, and its idle animation is the one the animation file actually contains.
  • The mallorn hanging wall sign is listed with the hanging signs. Its registration named the plain mallorn wall sign where the hanging wall sign was meant, so the game's hanging sign block entity claimed a block that is not one and never listed the one that is; the mod's own sign block entity already covered every hanging sign, so a placed sign was never affected.
  • The tornado's funnel animates while it is on the field. Its animation clock was pinned to zero, so the rings never turned and the pillar stayed hidden below the spawn point; the entity reports its own age now, so the funnel rises and its rings spin through the strike.
  • The fell beast's attacks use the animations its file has. Its ranged attack asked for ranged and its swimming movement and a leftover swim controller asked for swim and swim_fast, none of which the beast's file defines, so those controllers were left with nothing to play; the ranged attack now plays the beast's fire, the beast keeps beating its wings with fly while it swims, and the redundant swim controller is gone.
  • The mithril and morguliron golems' ranged attack plays a swing. Both asked their animation file for ranged, which it does not contain, so the controller reset onto nothing and the golem stood still through the shot; they play their attack animation for it now.
  • Gollum's swing no longer blanks his pose. His attack controller asked for an attack animation his file does not have, which reset the controller onto nothing and dropped him to his rest pose; he holds his idle pose through the swing instead.
  • Villagers sit down properly. Their controller asked for a sitting animation that only the dwarf file carried, so an elf, hobbit, human, orc or southron villager who sat lost its pose and snapped back to idle; all six merchant animation files define it now.
  • The swamp hag's attack and heal animations play. Her combat controller returned STOP in the same tick it set either animation, which makes GeckoLib throw the animation away, so she cast without moving; each branch keeps the controller running until the cast is done.
  • Shadowfax's jump plays. The jump branch set the animation and then fell through to the controller's STOP, dropping it on the tick it started; the jump now runs for its length, after which running and walking take over again.
  • The rock golem and the Istari stop holding a finished attack. Their combat controllers returned CONTINUE on every tick, so after a punch, rage, attack or heal ended the controller stayed live on its last frame and the mob kept that pose through idle and walk; both now hand the controller back once the animation is done, and the Istari's attack and heal play once instead of looping.
  • The uruk-hai and mordor orcs animate their shots. Their ranged branch waited on the weapon flag, which is set on the server and never synced, so the client could not see it; it now reads the synced shooting flag the bow goal publishes.
  • The tree ent and the swamp hag animate their throws. Their attack controllers keyed the throw on the weapon flag, which is an ordinary field set only on the server (and only for a bow in the main hand), so the client never saw it and the throw animation never played; the ranged goals now publish a synced shooting flag that both controllers read.
  • Mobs that fight at range are marked as engaged while they throw. The game's throwing goal never touched the mod's aggressive flag, which only the melee and bow goals set, so a snowball, boulder or potion thrower fought with the flag stuck off and the attack animations waiting on it never played; the throwing goals now set it while they run and clear it when they stop.
  • The fell beast breathes fire again, in the three parts its file was authored in. Its fire animation waited on the weapon flag, which is set only on the server and only for a bow in hand, neither of which the beast has, so its attack controller could not see it; the breath now runs off the beast's synced breathing flag and plays fireStart to wind up, fireLoop for as long as the breath lasts, and fireEnd once as it stops.
  • The uruk-hai and mordor orcs shoot with the uruk bow they carry. The weapon check only looked for a vanilla bow in the main hand, and theirs is a mod bow in the off hand, so no archery goal was ever installed and the bow was decoration; a bow in either hand now chooses the bow goal. They fight as archers from then on, as any bow-carrying monster does.
  • Hostile mobs animate their walk while they chase. Their walk controllers also required the mob not to be aggressive, and that flag stays on for as long as the attack goal runs, so a creature running down a target slid along in a static pose; walk now depends only on movement, and the fell beast keeps the faster prowl its file provides for a beast on the hunt.
  • Hostile mobs keep breathing while they fight. Every hostile idle controller also required the mob not to be aggressive, so a creature that held a target stood frozen in its rest pose the moment it paused between swings; the idle animation now plays whenever it stands still, aggressive or not.
  • The thrown cobweb breathes as it flies. Its animation controller stopped itself right after asking for the idle animation, which makes GeckoLib drop the animation and draw the web on its rest pose; the controller keeps running now, so the web pulses the way its file describes.

This mod has no additional files