![]()

Entity Model Features (EMF) is a Fabric, Forge, & NeoForge mod that adds support for OptiFine's Custom Entity Models (CEM).
designed for anyone who wants to use CEM resource pack features but also use OptiFine alternative mods such as Sodium, Continuity or ETF.
Please also install the below mods if you can, the obvious ones such as Sodium are not mentioned.
It should also go without saying EMF is NOT compatible with dorianpb's CEM and OptiFine / OptiFabric.
Yes.
it works :)

Up-to-date feature details page : Features & Optifine differences
You can find the changelog here.
You can reach out on my Discord (preferred) or open an issue on GitHub.
Required
Unsupported
Умови використання, зміни та поширення цього товару.
24.06.2026 · Modrinth
Скриншоти та зображення з оригінальної сторінки Modrinth.








![[EMF] Entity Model Features](https://i.imgur.com/vU8pcbf.png)
![[EMF] Entity Model Features](https://i.imgur.com/rpoyjVG.png)
![[EMF] Entity Model Features](https://i.imgur.com/VgKekoJ.png)
![[EMF] Entity Model Features](https://i.imgur.com/7fioiRx.png)
![[EMF] Entity Model Features](https://i.imgur.com/tiNmDIH.png)
![[EMF] Entity Model Features](https://i.imgur.com/EYNx6oL.png)
![[EMF] Entity Model Features](https://i.imgur.com/yar5K6v.png)
![[EMF] Entity Model Features](https://i.imgur.com/xdhWKwC.png)
![[EMF] Entity Model Features](https://cdn.modrinth.com/data/BVzZfTc1/images/bfb592538f8206a6a2d72d19c90714bea91b0e07.png)
![[EMF] Entity Model Features](https://cdn.modrinth.com/data/4I1XuqiY/images/49f5b98dfef5b073a3971750673d343e1f92efe5.png)
![[EMF] Entity Model Features](https://cdn.modrinth.com/data/4I1XuqiY/images/2f32dbeadc25e46ef6c56f0e47e5eb5d305c8ea2.png)
Опубліковані версії та оригінальні файли Modrinth.
24.06.2026 · 984 446 завантаження
23.06.2026 · 11 856 завантаження
17.06.2026 · 346 787 завантаження
26.2
17.06.2026 · 12 423 завантаження
26.2
09.05.2026 · 46 491 завантаження
09.05.2026 · 1 671 710 завантаження
09.05.2026 · 4 548 завантаження
09.05.2026 · 3 654 завантаження
09.05.2026 · 96 406 завантаження
09.05.2026 · 4 402 завантаження
09.05.2026 · 2 275 завантаження
09.05.2026 · 71 547 завантаження
09.05.2026 · 1 350 завантаження
09.05.2026 · 1 199 завантаження
09.05.2026 · 42 932 завантаження
09.05.2026 · 2 052 завантаження
09.05.2026 · 3 724 завантаження
09.05.2026 · 78 261 завантаження
09.05.2026 · 647 завантаження
09.05.2026 · 427 завантаження
09.05.2026 · 5 563 завантаження
09.05.2026 · 25 708 завантаження
09.05.2026 · 15 967 завантаження
09.05.2026 · 764 804 завантаження
09.05.2026 · 16 341 завантаження
09.05.2026 · 604 686 завантаження
09.05.2026 · 611 641 завантаження
09.05.2026 · 249 676 завантаження
09.05.2026 · 1 100 857 завантаження
09.05.2026 · 1 428 завантаження
== or != operators09.05.2026 · 8 281 завантаження
== or != operators09.05.2026 · 76 завантаження
== or != operators09.05.2026 · 57 завантаження
== or != operators09.05.2026 · 1 352 завантаження
== or != operators09.05.2026 · 80 завантаження
== or != operators09.05.2026 · 50 завантаження
== or != operators09.05.2026 · 661 завантаження
== or != operators09.05.2026 · 28 завантаження
== or != operators09.05.2026 · 25 завантаження
== or != operators09.05.2026 · 243 завантаження
== or != operators09.05.2026 · 63 завантаження
== or != operators09.05.2026 · 48 завантаження
== or != operators09.05.2026 · 703 завантаження
== or != operators09.05.2026 · 21 завантаження
== or != operators09.05.2026 · 23 завантаження
== or != operators09.05.2026 · 51 завантаження
== or != operators09.05.2026 · 484 завантаження
== or != operators09.05.2026 · 213 завантаження
== or != operators09.05.2026 · 11 671 завантаження
== or != operators09.05.2026 · 158 завантаження
== or != operators09.05.2026 · 3 197 завантаження
== or != operators09.05.2026 · 4 425 завантаження
== or != operators09.05.2026 · 98 406 завантаження
== or != operators09.05.2026 · 1 958 завантаження
== or != operators27.04.2026 · 430 757 завантаження
27.04.2026 · 8 774 завантаження
27.04.2026 · 170 590 завантаження
27.04.2026 · 3 558 завантаження
27.04.2026 · 2 342 завантаження
27.04.2026 · 18 171 завантаження
27.04.2026 · 536 завантаження
27.04.2026 · 427 завантаження
27.04.2026 · 20 818 завантаження
27.04.2026 · 562 завантаження
27.04.2026 · 321 завантаження
27.04.2026 · 4 351 завантаження
27.04.2026 · 165 завантаження
27.04.2026 · 188 завантаження
27.04.2026 · 9 410 завантаження
27.04.2026 · 392 завантаження
27.04.2026 · 280 завантаження
27.04.2026 · 803 завантаження
27.04.2026 · 74 завантаження
27.04.2026 · 66 завантаження
27.04.2026 · 53 147 завантаження
27.04.2026 · 148 861 завантаження
27.04.2026 · 2 030 завантаження
27.04.2026 · 29 822 завантаження
27.04.2026 · 314 493 завантаження
27.04.2026 · 335 завантаження
27.04.2026 · 568 завантаження
27.04.2026 · 3 174 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 96 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 10 738 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 80 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 56 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 519 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 15 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 18 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 283 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 31 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 21 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 98 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 17 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 12 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 181 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 13 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 13 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 34 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 15 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 15 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 1 189 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 2 801 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 48 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 561 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF27.04.2026 · 1 081 завантаження
EMFAnimationAPI, mods that use this API may need to update, like ESF17.04.2026 · 454 983 завантаження
17.04.2026 · 3 848 завантаження
17.04.2026 · 286 220 завантаження
17.04.2026 · 2 942 завантаження
17.04.2026 · 2 123 завантаження
17.04.2026 · 23 594 завантаження
17.04.2026 · 502 завантаження
17.04.2026 · 577 завантаження
17.04.2026 · 10 788 завантаження
17.04.2026 · 494 завантаження
17.04.2026 · 309 завантаження
17.04.2026 · 3 553 завантаження
17.04.2026 · 176 завантаження
17.04.2026 · 193 завантаження
17.04.2026 · 8 123 завантаження
17.04.2026 · 385 завантаження
17.04.2026 · 332 завантаження
17.04.2026 · 716 завантаження
17.04.2026 · 95 завантаження
17.04.2026 · 105 завантаження
17.04.2026 · 58 751 завантаження
17.04.2026 · 245 783 завантаження
17.04.2026 · 2 138 завантаження
17.04.2026 · 24 807 завантаження
17.04.2026 · 74 030 завантаження
15.04.2026 · 30 432 завантаження
15.04.2026 · 797 завантаження
15.04.2026 · 47 963 завантаження
15.04.2026 · 660 завантаження
15.04.2026 · 717 завантаження
15.04.2026 · 4 632 завантаження
15.04.2026 · 89 завантаження
15.04.2026 · 73 завантаження
15.04.2026 · 2 731 завантаження
15.04.2026 · 81 завантаження
15.04.2026 · 58 завантаження
15.04.2026 · 819 завантаження
15.04.2026 · 34 завантаження
15.04.2026 · 31 завантаження
15.04.2026 · 1 829 завантаження
15.04.2026 · 59 завантаження
15.04.2026 · 89 завантаження
15.04.2026 · 136 завантаження
15.04.2026 · 18 завантаження
15.04.2026 · 21 завантаження
15.04.2026 · 8 614 завантаження
15.04.2026 · 6 873 завантаження
15.04.2026 · 349 завантаження
15.04.2026 · 5 588 завантаження
15.04.2026 · 13 593 завантаження
15.04.2026 · 300 завантаження
15.04.2026 · 417 завантаження
28.03.2026 · 556 040 завантаження
28.03.2026 · 12 523 завантаження
28.03.2026 · 643 549 завантаження
28.03.2026 · 6 696 завантаження
28.03.2026 · 5 476 завантаження
28.03.2026 · 46 736 завантаження
28.03.2026 · 1 128 завантаження
28.03.2026 · 1 216 завантаження
28.03.2026 · 27 525 завантаження
28.03.2026 · 1 187 завантаження
28.03.2026 · 826 завантаження
28.03.2026 · 8 276 завантаження
28.03.2026 · 380 завантаження
28.03.2026 · 418 завантаження
28.03.2026 · 18 227 завантаження
28.03.2026 · 1 019 завантаження
28.03.2026 · 689 завантаження
28.03.2026 · 1 580 завантаження
28.03.2026 · 160 завантаження
28.03.2026 · 146 завантаження
28.03.2026 · 931 994 завантаження
28.03.2026 · 91 264 завантаження
28.03.2026 · 3 573 завантаження
28.03.2026 · 24 539 завантаження
28.03.2026 · 495 завантаження
28.03.2026 · 1 229 завантаження
28.03.2026 · 22 508 завантаження
28.03.2026 · 977 завантаження
28.03.2026 · 1 883 завантаження
28.03.2026 · 4 745 завантаження
28.03.2026 · 164 завантаження
28.03.2026 · 994 завантаження
28.03.2026 · 68 235 завантаження
28.03.2026 · 436 344 завантаження
28.03.2026 · 7 355 завантаження
28.03.2026 · 82 завантаження
28.03.2026 · 12 885 завантаження
28.03.2026 · 269 завантаження
28.03.2026 · 174 завантаження
28.03.2026 · 1 556 завантаження
28.03.2026 · 44 завантаження
28.03.2026 · 40 завантаження
28.03.2026 · 961 завантаження
28.03.2026 · 52 завантаження
28.03.2026 · 25 завантаження
28.03.2026 · 237 завантаження
28.03.2026 · 16 завантаження
28.03.2026 · 17 завантаження
28.03.2026 · 685 завантаження
28.03.2026 · 37 завантаження
28.03.2026 · 36 завантаження
28.03.2026 · 47 завантаження
28.03.2026 · 9 завантаження
28.03.2026 · 12 завантаження
28.03.2026 · 2 034 завантаження
28.03.2026 · 1 435 завантаження
28.03.2026 · 101 завантаження
28.03.2026 · 34 завантаження
28.03.2026 · 11 завантаження
28.03.2026 · 20 завантаження
28.03.2026 · 112 завантаження
28.03.2026 · 12 завантаження
28.03.2026 · 22 завантаження
28.03.2026 · 38 завантаження
28.03.2026 · 9 завантаження
28.03.2026 · 15 завантаження
28.03.2026 · 1 488 завантаження
28.03.2026 · 3 336 завантаження
26.03.2026 · 28 033 завантаження
26.03.2026 · 231 завантаження
26.03.2026 · 40 539 завантаження
26.03.2026 · 790 завантаження
26.03.2026 · 564 завантаження
26.03.2026 · 8 615 завантаження
26.03.2026 · 113 завантаження
26.03.2026 · 103 завантаження
26.03.2026 · 2 574 завантаження
26.03.2026 · 188 завантаження
26.03.2026 · 51 завантаження
26.03.2026 · 916 завантаження
26.03.2026 · 43 завантаження
26.03.2026 · 43 завантаження
26.03.2026 · 2 128 завантаження
26.03.2026 · 79 завантаження
26.03.2026 · 63 завантаження
26.03.2026 · 168 завантаження
26.03.2026 · 16 завантаження
26.03.2026 · 20 завантаження
26.03.2026 · 10 038 завантаження
26.03.2026 · 7 992 завантаження
26.03.2026 · 264 завантаження
26.03.2026 · 92 завантаження
26.03.2026 · 17 завантаження
26.03.2026 · 24 завантаження
26.03.2026 · 428 завантаження
26.03.2026 · 25 завантаження
26.03.2026 · 36 завантаження
26.03.2026 · 76 завантаження
26.03.2026 · 17 завантаження
26.03.2026 · 25 завантаження
26.03.2026 · 6 128 завантаження
26.03.2026 · 18 284 завантаження
25.03.2026 · 452 завантаження
25.03.2026 · 69 478 завантаження
25.03.2026 · 3 038 завантаження
[3.0.13]
- 26.1 support for fabric and forge (note baby models changed significantly)
- fixed an issue with the animation variable api
- bumped the animation api version
- fixed shoulder parrots not animating in 1.21.9+
- fixed boat water patch models not animating in 1.21.9+
- fixed horse saddle OptiFine part names on 1.21.5+
- fixed the ifb() function causing a stack overflow
25.03.2026 · 22 027 завантаження
[3.0.13]
- 26.1 support for fabric and forge (note baby models changed significantly)
- fixed an issue with the animation variable api
- bumped the animation api version
- fixed shoulder parrots not animating in 1.21.9+
- fixed boat water patch models not animating in 1.21.9+
- fixed horse saddle OptiFine part names on 1.21.5+
- fixed the ifb() function causing a stack overflow
19.02.2026 · 1 326 338 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 38 687 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 20 268 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 154 758 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 2 998 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 2 963 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 65 906 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 3 303 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 1 742 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 46 608 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 799 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 932 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 50 221 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 1 548 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 1 351 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 4 495 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 352 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 393 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 765 031 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 145 349 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 6 975 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 3 168 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 204 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 443 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 10 820 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 423 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 732 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 2 182 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 75 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 324 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 532 250 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)19.02.2026 · 479 708 завантаження
is_on_shoulder in 1.21.9+body not working correctly (fresh animations also needs to update for this fix)31.01.2026 · 840 215 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 17 539 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 13 077 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 103 351 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 2 068 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 2 570 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 49 915 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 1 386 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 1 521 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 18 983 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 533 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 670 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 32 842 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 1 834 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 1 109 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 2 363 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 240 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 340 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 426 929 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 105 751 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 4 615 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 1 399 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 175 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 351 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 7 100 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 169 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 561 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 1 001 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 56 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 202 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 72 789 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.01.2026 · 212 880 завантаження
OptiFine 1.21.11_HD_U_J9_pre2parrot_shoulder modeldragon_fireball with only a single part fireball (EMF ONLY)31.12.2025 · 1 962 759 завантаження
31.12.2025 · 28 469 завантаження
31.12.2025 · 19 975 завантаження
31.12.2025 · 326 698 завантаження
31.12.2025 · 4 461 завантаження
31.12.2025 · 5 826 завантаження
31.12.2025 · 95 194 завантаження
31.12.2025 · 2 841 завантаження
31.12.2025 · 2 995 завантаження
31.12.2025 · 60 027 завантаження
31.12.2025 · 940 завантаження
31.12.2025 · 1 236 завантаження
31.12.2025 · 69 088 завантаження
31.12.2025 · 1 928 завантаження
31.12.2025 · 1 921 завантаження
31.12.2025 · 4 520 завантаження
31.12.2025 · 389 завантаження
31.12.2025 · 518 завантаження
31.12.2025 · 1 958 838 завантаження
31.12.2025 · 242 600 завантаження
31.12.2025 · 8 035 завантаження
31.12.2025 · 2 777 завантаження
31.12.2025 · 329 завантаження
31.12.2025 · 544 завантаження
31.12.2025 · 14 712 завантаження
31.12.2025 · 301 завантаження
31.12.2025 · 897 завантаження
31.12.2025 · 1 940 завантаження
31.12.2025 · 68 завантаження
31.12.2025 · 358 завантаження
31.12.2025 · 231 459 завантаження
31.12.2025 · 671 897 завантаження
30.12.2025 · 35 141 завантаження
30.12.2025 · 1 008 завантаження
30.12.2025 · 675 завантаження
30.12.2025 · 13 011 завантаження
30.12.2025 · 239 завантаження
30.12.2025 · 272 завантаження
30.12.2025 · 6 566 завантаження
30.12.2025 · 141 завантаження
30.12.2025 · 139 завантаження
30.12.2025 · 2 206 завантаження
30.12.2025 · 61 завантаження
30.12.2025 · 60 завантаження
30.12.2025 · 2 816 завантаження
30.12.2025 · 90 завантаження
30.12.2025 · 99 завантаження
30.12.2025 · 207 завантаження
30.12.2025 · 42 завантаження
30.12.2025 · 26 завантаження
30.12.2025 · 8 289 завантаження
30.12.2025 · 4 344 завантаження
30.12.2025 · 280 завантаження
30.12.2025 · 154 завантаження
30.12.2025 · 31 завантаження
30.12.2025 · 47 завантаження
30.12.2025 · 412 завантаження
30.12.2025 · 26 завантаження
30.12.2025 · 59 завантаження
30.12.2025 · 80 завантаження
30.12.2025 · 20 завантаження
30.12.2025 · 30 завантаження
30.12.2025 · 4 330 завантаження
30.12.2025 · 42 349 завантаження
16.12.2025 · 629 834 завантаження
16.12.2025 · 7 897 завантаження
25.11.2025 · 862 002 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 13 560 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 13 211 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 182 323 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 3 255 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 3 549 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 51 599 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 1 170 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 1 345 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 60 951 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 2 003 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 2 048 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 4 813 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 228 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 313 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 2 142 390 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 205 185 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 7 427 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 2 760 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 199 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 466 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 10 723 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 272 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 817 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 3 138 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 78 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 368 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 200 268 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+25.11.2025 · 2 869 810 завантаження
registerPauseCondition(Function<EMFEntity, Boolean> shouldPause) to the EMFAnimationApi to better allow other mods to add their own pause conditions for entities rather than mixing in like EmoteCraft didprevent first person hand animations player setting not working correctly in 1.21.9+21.11.2025 · 74 628 завантаження
random()s behaviour exactly to optifine21.11.2025 · 2 053 завантаження
random()s behaviour exactly to optifine21.11.2025 · 2 020 завантаження
random()s behaviour exactly to optifine21.11.2025 · 29 828 завантаження
random()s behaviour exactly to optifine21.11.2025 · 602 завантаження
random()s behaviour exactly to optifine21.11.2025 · 621 завантаження
random()s behaviour exactly to optifine21.11.2025 · 26 544 завантаження
random()s behaviour exactly to optifine21.11.2025 · 177 завантаження
random()s behaviour exactly to optifine21.11.2025 · 228 завантаження
random()s behaviour exactly to optifine21.11.2025 · 10 499 завантаження
random()s behaviour exactly to optifine21.11.2025 · 446 завантаження
random()s behaviour exactly to optifine21.11.2025 · 309 завантаження
random()s behaviour exactly to optifine21.11.2025 · 1 786 завантаження
random()s behaviour exactly to optifine21.11.2025 · 61 завантаження
random()s behaviour exactly to optifine21.11.2025 · 75 завантаження
random()s behaviour exactly to optifine21.11.2025 · 179 829 завантаження
random()s behaviour exactly to optifine21.11.2025 · 31 273 завантаження
random()s behaviour exactly to optifine21.11.2025 · 1 006 завантаження
random()s behaviour exactly to optifine21.11.2025 · 373 завантаження
random()s behaviour exactly to optifine21.11.2025 · 46 завантаження
random()s behaviour exactly to optifine21.11.2025 · 68 завантаження
random()s behaviour exactly to optifine21.11.2025 · 1 659 завантаження
random()s behaviour exactly to optifine21.11.2025 · 45 завантаження
random()s behaviour exactly to optifine21.11.2025 · 124 завантаження
random()s behaviour exactly to optifine21.11.2025 · 293 завантаження
random()s behaviour exactly to optifine21.11.2025 · 30 завантаження
random()s behaviour exactly to optifine21.11.2025 · 67 завантаження
random()s behaviour exactly to optifine21.11.2025 · 17 799 завантаження
random()s behaviour exactly to optifine21.11.2025 · 38 434 завантаження
random()s behaviour exactly to optifine04.11.2025 · 602 510 завантаження
print() & printb() functions that only accept 1 argument and print every frame with the id being the argument itself04.11.2025 · 7 095 завантаження
print() & printb() functions that only accept 1 argument and print every frame with the id being the argument itself04.11.2025 · 6 489 завантаження
print() & printb() functions that only accept 1 argument and print every frame with the id being the argument itself24.10.2025 · 20 116 завантаження
24.10.2025 · 5 080 завантаження
22.10.2025 · 459 452 завантаження
22.10.2025 · 5 501 завантаження
22.10.2025 · 3 292 завантаження
07.10.2025 · 406 180 завантаження
07.10.2025 · 3 539 завантаження
07.10.2025 · 3 580 завантаження
24.08.2025 · 1 535 458 завантаження
24.08.2025 · 27 204 завантаження
24.08.2025 · 22 674 завантаження
24.08.2025 · 245 866 завантаження
24.08.2025 · 2 459 завантаження
24.08.2025 · 3 769 завантаження
24.08.2025 · 177 537 завантаження
24.08.2025 · 6 000 завантаження
24.08.2025 · 5 213 завантаження
24.08.2025 · 10 874 завантаження
24.08.2025 · 541 завантаження
24.08.2025 · 777 завантаження
24.08.2025 · 1 095 577 завантаження
24.08.2025 · 245 282 завантаження
24.08.2025 · 14 672 завантаження
24.08.2025 · 5 856 завантаження
24.08.2025 · 487 завантаження
24.08.2025 · 892 завантаження
24.08.2025 · 22 789 завантаження
24.08.2025 · 582 завантаження
24.08.2025 · 1 624 завантаження
24.08.2025 · 4 286 завантаження
24.08.2025 · 128 завантаження
24.08.2025 · 722 завантаження
24.08.2025 · 1 717 349 завантаження
24.08.2025 · 1 216 077 завантаження
24.08.2025 · 3 661 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 200 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 394 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 834 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 134 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 54 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 964 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 69 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 102 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 102 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 38 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 57 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 1 823 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 822 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 141 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 57 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 34 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 43 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 130 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 42 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 52 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 48 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 39 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 49 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 1 208 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine24.08.2025 · 3 338 завантаження
sheep_wool_undercoat, sheep_baby_wool_undercoat, (all the horse types)_saddlemouth.ty resolved to classic_mouth.ty)baby_wolf_collar.jemcold_ and warm_ variants they will not fall back to the base model any moretemperate_cow.jem as an optional override to cow.jem on 1.21.5+ to allow pack makers an easier time managing the different versions models, also applies to pigs and chickensmirrorTexture field like optifine18.06.2025 · 1 769 320 завантаження
wolf_baby_collar.jem18.06.2025 · 30 840 завантаження
wolf_baby_collar.jem18.06.2025 · 556 014 завантаження
wolf_baby_collar.jem18.06.2025 · 6 898 завантаження
wolf_baby_collar.jem18.06.2025 · 8 340 завантаження
wolf_baby_collar.jem28.03.2025 · 1 654 664 завантаження
warm_ and cold_ model variants for the new pigs, chickens, and cows, they will attempt to fallback to the old model if the new one is not presentcold_cow.jem also has right_horn and left_horn parts, all other model differences for the 3 mobs are done via cubes only, not new partsResourceLocationException log spam when attempting to find modded chest models28.03.2025 · 25 779 завантаження
warm_ and cold_ model variants for the new pigs, chickens, and cows, they will attempt to fallback to the old model if the new one is not presentcold_cow.jem also has right_horn and left_horn parts, all other model differences for the 3 mobs are done via cubes only, not new partsResourceLocationException log spam when attempting to find modded chest models28.03.2025 · 21 904 завантаження
warm_ and cold_ model variants for the new pigs, chickens, and cows, they will attempt to fallback to the old model if the new one is not presentcold_cow.jem also has right_horn and left_horn parts, all other model differences for the 3 mobs are done via cubes only, not new partsResourceLocationException log spam when attempting to find modded chest models22.03.2025 · 99 551 завантаження
1.21.5-pre
18.12.2024 · 2 381 742 завантаження
18.12.2024 · 36 278 завантаження
18.12.2024 · 48 290 завантаження
18.12.2024 · 117 893 завантаження
18.12.2024 · 1 873 завантаження
18.12.2024 · 3 813 завантаження
18.12.2024 · 4 522 793 завантаження
18.12.2024 · 784 689 завантаження
18.12.2024 · 32 433 завантаження
18.12.2024 · 29 421 завантаження
18.12.2024 · 706 завантаження
18.12.2024 · 2 212 завантаження
18.12.2024 · 119 066 завантаження
18.12.2024 · 2 029 завантаження
18.12.2024 · 5 372 завантаження
18.12.2024 · 14 837 завантаження
18.12.2024 · 340 завантаження
18.12.2024 · 3 075 завантаження
18.12.2024 · 2 596 878 завантаження
18.12.2024 · 6 613 910 завантаження
17.12.2024 · 5 249 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 290 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 431 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 1 419 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 56 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 132 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 7 903 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 872 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 315 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 176 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 40 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 63 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 490 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 44 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 82 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 144 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 51 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 68 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 203 785 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer17.12.2024 · 28 571 завантаження
helmet, chestplate, leggings, and boots partial armor model support. e.g. helmet.jem, each piece can be varied separately e.g. helmet.properties (1.21.2+ ONLY!, for now)drowned_outer.jem will vary with drowned.properties if drowned_outer.properties doesn't exist. (The latter is only possible via EMF as OptiFine will only use drowned.properties)\ to escape the ,, (, ), & \ characters, such as when needing a , in one of the inputs for nbt(). e.g. nbt(Test,text='this\, that')minecart model in 1.21.2+, they now correctly use it as a fallback onlymove_forward & move_strafing breaking for other entities in multiplayer12.12.2024 · 34 804 завантаження
spectral_arrow model breaking in 1.21.3time, frame_counter, id, and a few other variables to 2772012.12.2024 · 1 116 завантаження
spectral_arrow model breaking in 1.21.3time, frame_counter, id, and a few other variables to 2772012.12.2024 · 1 006 завантаження
spectral_arrow model breaking in 1.21.3time, frame_counter, id, and a few other variables to 2772020.11.2024 · 86 570 завантаження
14.11.2024 · 166 958 завантаження
[2.3.0]
- the remaining 1.21.3 changes should be fairly "stable" now and are unlikely to have significant changes going forwards, likely only semantic ones as OptiFine develops
- improved how EMF exports default models, they will now look much prettier in blockbench due to various semantic only changes
- fixed baby and other model scaling issues in previous 1.21.3 builds, baby models with certain custom animations, using the old offsets, are still broken and need pack makers to update their packs
- updated model & part names, see the emf > models > all models settings in game for the most detailed and accurate list of all model & part names
- dragon - "neck1 - neck5" and "tail1 - tail12", replacing "spine"
- bogged - same as skeleton + "mushrooms" part
- bogged_outer - same as stray_outer
- armadillo - see in-game model settings screen for parts list
- end_crystal - "inner_glass" and "outer_glass" replacing "glass"
- arrow - "back, cross_1, cross_2"
- spectral_arrow - "back, cross_1, cross_2"
- bee_stinger - "cross_1, cross_2"
- player_cape - "cape"
- player_ears - "left_ear" and "right_ear"
- player_slim - will now fallback to player.jem if not present
- salmon_large - falls back to "salmon"
- salmon_small - falls back to "salmon"
- breeze_wind_charge - same as "wind_charge"
- boat models now use the naming convention _ e.g. "oak_boat" and "oak_chest_boat" and fallback to the old model names e.g. "boat" and "chest_boat"
- raft and boat models no longer contain the "water_patch" part themselves, this is now a separate model
- water_patch - "water_patch" also supports boat type variants e.g. "oak_water_patch"
- minecraft models now all fallback to the default minecart model
- chest_large - has been split into "chest_left" and "chest_right" models, same for trapped_chests. EMF will retain legacy support for the old model name for the time being
- wall_sign - falls back to the "sign" model and doesn't have the "stick" part
- sign, wall_sign, and hanging_sign - all support wood types in the model name e.g. "oak_sign" and "oak_wall_sign" that will fall back to the generic model
- there may be several more minor changes, see the in-game emf > models > all models settings screen for the most accurate and complete list
- added legacy model fallbacks book, evocation_illager, evocation_fangs, and vindication_illager
- many other minor tweaks and fixes
14.11.2024 · 3 415 завантаження
[2.3.0]
- the remaining 1.21.3 changes should be fairly "stable" now and are unlikely to have significant changes going forwards, likely only semantic ones as OptiFine develops
- improved how EMF exports default models, they will now look much prettier in blockbench due to various semantic only changes
- fixed baby and other model scaling issues in previous 1.21.3 builds, baby models with certain custom animations, using the old offsets, are still broken and need pack makers to update their packs
- updated model & part names, see the emf > models > all models settings in game for the most detailed and accurate list of all model & part names
- dragon - "neck1 - neck5" and "tail1 - tail12", replacing "spine"
- bogged - same as skeleton + "mushrooms" part
- bogged_outer - same as stray_outer
- armadillo - see in-game model settings screen for parts list
- end_crystal - "inner_glass" and "outer_glass" replacing "glass"
- arrow - "back, cross_1, cross_2"
- spectral_arrow - "back, cross_1, cross_2"
- bee_stinger - "cross_1, cross_2"
- player_cape - "cape"
- player_ears - "left_ear" and "right_ear"
- player_slim - will now fallback to player.jem if not present
- salmon_large - falls back to "salmon"
- salmon_small - falls back to "salmon"
- breeze_wind_charge - same as "wind_charge"
- boat models now use the naming convention _ e.g. "oak_boat" and "oak_chest_boat" and fallback to the old model names e.g. "boat" and "chest_boat"
- raft and boat models no longer contain the "water_patch" part themselves, this is now a separate model
- water_patch - "water_patch" also supports boat type variants e.g. "oak_water_patch"
- minecraft models now all fallback to the default minecart model
- chest_large - has been split into "chest_left" and "chest_right" models, same for trapped_chests. EMF will retain legacy support for the old model name for the time being
- wall_sign - falls back to the "sign" model and doesn't have the "stick" part
- sign, wall_sign, and hanging_sign - all support wood types in the model name e.g. "oak_sign" and "oak_wall_sign" that will fall back to the generic model
- there may be several more minor changes, see the in-game emf > models > all models settings screen for the most accurate and complete list
- added legacy model fallbacks book, evocation_illager, evocation_fangs, and vindication_illager
- many other minor tweaks and fixes
14.11.2024 · 2 156 завантаження
[2.3.0]
- the remaining 1.21.3 changes should be fairly "stable" now and are unlikely to have significant changes going forwards, likely only semantic ones as OptiFine develops
- improved how EMF exports default models, they will now look much prettier in blockbench due to various semantic only changes
- fixed baby and other model scaling issues in previous 1.21.3 builds, baby models with certain custom animations, using the old offsets, are still broken and need pack makers to update their packs
- updated model & part names, see the emf > models > all models settings in game for the most detailed and accurate list of all model & part names
- dragon - "neck1 - neck5" and "tail1 - tail12", replacing "spine"
- bogged - same as skeleton + "mushrooms" part
- bogged_outer - same as stray_outer
- armadillo - see in-game model settings screen for parts list
- end_crystal - "inner_glass" and "outer_glass" replacing "glass"
- arrow - "back, cross_1, cross_2"
- spectral_arrow - "back, cross_1, cross_2"
- bee_stinger - "cross_1, cross_2"
- player_cape - "cape"
- player_ears - "left_ear" and "right_ear"
- player_slim - will now fallback to player.jem if not present
- salmon_large - falls back to "salmon"
- salmon_small - falls back to "salmon"
- breeze_wind_charge - same as "wind_charge"
- boat models now use the naming convention _ e.g. "oak_boat" and "oak_chest_boat" and fallback to the old model names e.g. "boat" and "chest_boat"
- raft and boat models no longer contain the "water_patch" part themselves, this is now a separate model
- water_patch - "water_patch" also supports boat type variants e.g. "oak_water_patch"
- minecraft models now all fallback to the default minecart model
- chest_large - has been split into "chest_left" and "chest_right" models, same for trapped_chests. EMF will retain legacy support for the old model name for the time being
- wall_sign - falls back to the "sign" model and doesn't have the "stick" part
- sign, wall_sign, and hanging_sign - all support wood types in the model name e.g. "oak_sign" and "oak_wall_sign" that will fall back to the generic model
- there may be several more minor changes, see the in-game emf > models > all models settings screen for the most accurate and complete list
- added legacy model fallbacks book, evocation_illager, evocation_fangs, and vindication_illager
- many other minor tweaks and fixes
26.10.2024 · 125 765 завантаження
[2.2.7]
- updated to 1.21.2+
1.21.2+ has a large amount of internal entity rendering changes many of these changes will affect models, see my discord for a write-up I have done on the changes to expect and their impacts
or this link
https://github.com/Traben-0/Entity_Model_Features/blob/master/.github/1.21.2%2B%20%20changes.md
creaking_transient entity variant will try and use creaking_transient.jem first and will use creaking.jem otherwiseoak_boat.jem, oak_chest_boat.jem, and the rafts bamboo_raft.jem, bamboo_chest_raft.jemboat/oak.jembaby_inner_armor.jem and baby_outer_armor.jem have been added as fallbacks for the baby armor modelsplayer_cape.jem and arrow.jem have completely different implementations now, due to inclusion in vanilla renderingwind_charge part names updated to reflect changes in OptiFine26.10.2024 · 8 334 завантаження
[2.2.7]
- updated to 1.21.2+
1.21.2+ has a large amount of internal entity rendering changes many of these changes will affect models, see my discord for a write-up I have done on the changes to expect and their impacts
or this link
https://github.com/Traben-0/Entity_Model_Features/blob/master/.github/1.21.2%2B%20%20changes.md
creaking_transient entity variant will try and use creaking_transient.jem first and will use creaking.jem otherwiseoak_boat.jem, oak_chest_boat.jem, and the rafts bamboo_raft.jem, bamboo_chest_raft.jemboat/oak.jembaby_inner_armor.jem and baby_outer_armor.jem have been added as fallbacks for the baby armor modelsplayer_cape.jem and arrow.jem have completely different implementations now, due to inclusion in vanilla renderingwind_charge part names updated to reflect changes in OptiFine14.09.2024 · 1 476 716 завантаження
./ & ~/ breaking from a recent changeint getCurrentEMFVariantOfModel(EntityModel<?>) returns the current variant of the model or -1 if the model is not a custom EMF model.boolean isModelAnimatedByEMF(EntityModel<?>) returns true if the model has custom EMF animations.boolean isModelCustomizedByEMF(EntityModel<?>) returns true if the model is a custom EMF model.boolean isModelPartCustomToEMF(ModelPart) returns true if this model part is an extraneous part added by EMF, and does not represent any actual normal vanilla parts.boolean isModelPartAnimatedByEMF(ModelPart) returns true if this model part itself is animated by EMF, e.g "modePart.rx":"sin(age)".14.09.2024 · 33 680 завантаження
./ & ~/ breaking from a recent changeint getCurrentEMFVariantOfModel(EntityModel<?>) returns the current variant of the model or -1 if the model is not a custom EMF model.boolean isModelAnimatedByEMF(EntityModel<?>) returns true if the model has custom EMF animations.boolean isModelCustomizedByEMF(EntityModel<?>) returns true if the model is a custom EMF model.boolean isModelPartCustomToEMF(ModelPart) returns true if this model part is an extraneous part added by EMF, and does not represent any actual normal vanilla parts.boolean isModelPartAnimatedByEMF(ModelPart) returns true if this model part itself is animated by EMF, e.g "modePart.rx":"sin(age)".14.09.2024 · 14 210 завантаження
./ & ~/ breaking from a recent changeint getCurrentEMFVariantOfModel(EntityModel<?>) returns the current variant of the model or -1 if the model is not a custom EMF model.boolean isModelAnimatedByEMF(EntityModel<?>) returns true if the model has custom EMF animations.boolean isModelCustomizedByEMF(EntityModel<?>) returns true if the model is a custom EMF model.boolean isModelPartCustomToEMF(ModelPart) returns true if this model part is an extraneous part added by EMF, and does not represent any actual normal vanilla parts.boolean isModelPartAnimatedByEMF(ModelPart) returns true if this model part itself is animated by EMF, e.g "modePart.rx":"sin(age)".14.09.2024 · 49 647 завантаження
./ & ~/ breaking from a recent changeint getCurrentEMFVariantOfModel(EntityModel<?>) returns the current variant of the model or -1 if the model is not a custom EMF model.boolean isModelAnimatedByEMF(EntityModel<?>) returns true if the model has custom EMF animations.boolean isModelCustomizedByEMF(EntityModel<?>) returns true if the model is a custom EMF model.boolean isModelPartCustomToEMF(ModelPart) returns true if this model part is an extraneous part added by EMF, and does not represent any actual normal vanilla parts.boolean isModelPartAnimatedByEMF(ModelPart) returns true if this model part itself is animated by EMF, e.g "modePart.rx":"sin(age)".14.09.2024 · 293 завантаження
./ & ~/ breaking from a recent changeint getCurrentEMFVariantOfModel(EntityModel<?>) returns the current variant of the model or -1 if the model is not a custom EMF model.boolean isModelAnimatedByEMF(EntityModel<?>) returns true if the model has custom EMF animations.boolean isModelCustomizedByEMF(EntityModel<?>) returns true if the model is a custom EMF model.boolean isModelPartCustomToEMF(ModelPart) returns true if this model part is an extraneous part added by EMF, and does not represent any actual normal vanilla parts.boolean isModelPartAnimatedByEMF(ModelPart) returns true if this model part itself is animated by EMF, e.g "modePart.rx":"sin(age)".14.09.2024 · 824 завантаження
./ & ~/ breaking from a recent changeint getCurrentEMFVariantOfModel(EntityModel<?>) returns the current variant of the model or -1 if the model is not a custom EMF model.boolean isModelAnimatedByEMF(EntityModel<?>) returns true if the model has custom EMF animations.boolean isModelCustomizedByEMF(EntityModel<?>) returns true if the model is a custom EMF model.boolean isModelPartCustomToEMF(ModelPart) returns true if this model part is an extraneous part added by EMF, and does not represent any actual normal vanilla parts.boolean isModelPartAnimatedByEMF(ModelPart) returns true if this model part itself is animated by EMF, e.g "modePart.rx":"sin(age)".14.09.2024 · 60 547 завантаження
./ & ~/ breaking from a recent changeint getCurrentEMFVariantOfModel(EntityModel<?>) returns the current variant of the model or -1 if the model is not a custom EMF model.boolean isModelAnimatedByEMF(EntityModel<?>) returns true if the model has custom EMF animations.boolean isModelCustomizedByEMF(EntityModel<?>) returns true if the model is a custom EMF model.boolean isModelPartCustomToEMF(ModelPart) returns true if this model part is an extraneous part added by EMF, and does not represent any actual normal vanilla parts.boolean isModelPartAnimatedByEMF(ModelPart) returns true if this model part itself is animated by EMF, e.g "modePart.rx":"sin(age)".14.09.2024 · 621 завантаження
./ & ~/ breaking from a recent changeint getCurrentEMFVariantOfModel(EntityModel<?>) returns the current variant of the model or -1 if the model is not a custom EMF model.boolean isModelAnimatedByEMF(EntityModel<?>) returns true if the model has custom EMF animations.boolean isModelCustomizedByEMF(EntityModel<?>) returns true if the model is a custom EMF model.boolean isModelPartCustomToEMF(ModelPart) returns true if this model part is an extraneous part added by EMF, and does not represent any actual normal vanilla parts.boolean isModelPartAnimatedByEMF(ModelPart) returns true if this model part itself is animated by EMF, e.g "modePart.rx":"sin(age)".14.09.2024 · 2 018 завантаження
./ & ~/ breaking from a recent changeint getCurrentEMFVariantOfModel(EntityModel<?>) returns the current variant of the model or -1 if the model is not a custom EMF model.boolean isModelAnimatedByEMF(EntityModel<?>) returns true if the model has custom EMF animations.boolean isModelCustomizedByEMF(EntityModel<?>) returns true if the model is a custom EMF model.boolean isModelPartCustomToEMF(ModelPart) returns true if this model part is an extraneous part added by EMF, and does not represent any actual normal vanilla parts.boolean isModelPartAnimatedByEMF(ModelPart) returns true if this model part itself is animated by EMF, e.g "modePart.rx":"sin(age)".14.09.2024 · 5 371 завантаження
./ & ~/ breaking from a recent changeint getCurrentEMFVariantOfModel(EntityModel<?>) returns the current variant of the model or -1 if the model is not a custom EMF model.boolean isModelAnimatedByEMF(EntityModel<?>) returns true if the model has custom EMF animations.boolean isModelCustomizedByEMF(EntityModel<?>) returns true if the model is a custom EMF model.boolean isModelPartCustomToEMF(ModelPart) returns true if this model part is an extraneous part added by EMF, and does not represent any actual normal vanilla parts.boolean isModelPartAnimatedByEMF(ModelPart) returns true if this model part itself is animated by EMF, e.g "modePart.rx":"sin(age)".14.09.2024 · 155 завантаження
./ & ~/ breaking from a recent changeint getCurrentEMFVariantOfModel(EntityModel<?>) returns the current variant of the model or -1 if the model is not a custom EMF model.boolean isModelAnimatedByEMF(EntityModel<?>) returns true if the model has custom EMF animations.boolean isModelCustomizedByEMF(EntityModel<?>) returns true if the model is a custom EMF model.boolean isModelPartCustomToEMF(ModelPart) returns true if this model part is an extraneous part added by EMF, and does not represent any actual normal vanilla parts.boolean isModelPartAnimatedByEMF(ModelPart) returns true if this model part itself is animated by EMF, e.g "modePart.rx":"sin(age)".14.09.2024 · 798 завантаження
./ & ~/ breaking from a recent changeint getCurrentEMFVariantOfModel(EntityModel<?>) returns the current variant of the model or -1 if the model is not a custom EMF model.boolean isModelAnimatedByEMF(EntityModel<?>) returns true if the model has custom EMF animations.boolean isModelCustomizedByEMF(EntityModel<?>) returns true if the model is a custom EMF model.boolean isModelPartCustomToEMF(ModelPart) returns true if this model part is an extraneous part added by EMF, and does not represent any actual normal vanilla parts.boolean isModelPartAnimatedByEMF(ModelPart) returns true if this model part itself is animated by EMF, e.g "modePart.rx":"sin(age)".14.09.2024 · 1 846 122 завантаження
./ & ~/ breaking from a recent changeint getCurrentEMFVariantOfModel(EntityModel<?>) returns the current variant of the model or -1 if the model is not a custom EMF model.boolean isModelAnimatedByEMF(EntityModel<?>) returns true if the model has custom EMF animations.boolean isModelCustomizedByEMF(EntityModel<?>) returns true if the model is a custom EMF model.boolean isModelPartCustomToEMF(ModelPart) returns true if this model part is an extraneous part added by EMF, and does not represent any actual normal vanilla parts.boolean isModelPartAnimatedByEMF(ModelPart) returns true if this model part itself is animated by EMF, e.g "modePart.rx":"sin(age)".14.09.2024 · 1 189 374 завантаження
./ & ~/ breaking from a recent changeint getCurrentEMFVariantOfModel(EntityModel<?>) returns the current variant of the model or -1 if the model is not a custom EMF model.boolean isModelAnimatedByEMF(EntityModel<?>) returns true if the model has custom EMF animations.boolean isModelCustomizedByEMF(EntityModel<?>) returns true if the model is a custom EMF model.boolean isModelPartCustomToEMF(ModelPart) returns true if this model part is an extraneous part added by EMF, and does not represent any actual normal vanilla parts.boolean isModelPartAnimatedByEMF(ModelPart) returns true if this model part itself is animated by EMF, e.g "modePart.rx":"sin(age)".12.09.2024 · 32 843 завантаження
floor UVs OptiFine parity setting in 1.21 and newer versions, as OptiFine now matches EMF's default behaviour.floor UVs setting in earlier versions.12.09.2024 · 1 374 завантаження
floor UVs OptiFine parity setting in 1.21 and newer versions, as OptiFine now matches EMF's default behaviour.floor UVs setting in earlier versions.12.09.2024 · 507 завантаження
floor UVs OptiFine parity setting in 1.21 and newer versions, as OptiFine now matches EMF's default behaviour.floor UVs setting in earlier versions.12.09.2024 · 495 завантаження
floor UVs OptiFine parity setting in 1.21 and newer versions, as OptiFine now matches EMF's default behaviour.floor UVs setting in earlier versions.12.09.2024 · 76 завантаження
floor UVs OptiFine parity setting in 1.21 and newer versions, as OptiFine now matches EMF's default behaviour.floor UVs setting in earlier versions.12.09.2024 · 83 завантаження
floor UVs OptiFine parity setting in 1.21 and newer versions, as OptiFine now matches EMF's default behaviour.floor UVs setting in earlier versions.12.09.2024 · 1 805 завантаження
floor UVs OptiFine parity setting in 1.21 and newer versions, as OptiFine now matches EMF's default behaviour.floor UVs setting in earlier versions.12.09.2024 · 75 завантаження
floor UVs OptiFine parity setting in 1.21 and newer versions, as OptiFine now matches EMF's default behaviour.floor UVs setting in earlier versions.12.09.2024 · 144 завантаження
floor UVs OptiFine parity setting in 1.21 and newer versions, as OptiFine now matches EMF's default behaviour.floor UVs setting in earlier versions.12.09.2024 · 317 завантаження
floor UVs OptiFine parity setting in 1.21 and newer versions, as OptiFine now matches EMF's default behaviour.floor UVs setting in earlier versions.12.09.2024 · 47 завантаження
floor UVs OptiFine parity setting in 1.21 and newer versions, as OptiFine now matches EMF's default behaviour.floor UVs setting in earlier versions.12.09.2024 · 68 завантаження
floor UVs OptiFine parity setting in 1.21 and newer versions, as OptiFine now matches EMF's default behaviour.floor UVs setting in earlier versions.12.09.2024 · 24 058 завантаження
floor UVs OptiFine parity setting in 1.21 and newer versions, as OptiFine now matches EMF's default behaviour.floor UVs setting in earlier versions.12.09.2024 · 6 637 завантаження
floor UVs OptiFine parity setting in 1.21 and newer versions, as OptiFine now matches EMF's default behaviour.floor UVs setting in earlier versions.06.09.2024 · 126 247 завантаження
rot_y giving an incorrect value for specifically the client player modelpart keyword in animations not working correctly for OptiFine part names that differ from the vanilla ones06.09.2024 · 1 321 завантаження
rot_y giving an incorrect value for specifically the client player modelpart keyword in animations not working correctly for OptiFine part names that differ from the vanilla ones06.09.2024 · 1 461 завантаження
rot_y giving an incorrect value for specifically the client player modelpart keyword in animations not working correctly for OptiFine part names that differ from the vanilla ones06.09.2024 · 2 414 завантаження
rot_y giving an incorrect value for specifically the client player modelpart keyword in animations not working correctly for OptiFine part names that differ from the vanilla ones06.09.2024 · 88 завантаження
rot_y giving an incorrect value for specifically the client player modelpart keyword in animations not working correctly for OptiFine part names that differ from the vanilla ones06.09.2024 · 134 завантаження
rot_y giving an incorrect value for specifically the client player modelpart keyword in animations not working correctly for OptiFine part names that differ from the vanilla ones06.09.2024 · 3 848 завантаження
rot_y giving an incorrect value for specifically the client player modelpart keyword in animations not working correctly for OptiFine part names that differ from the vanilla ones06.09.2024 · 119 завантаження
rot_y giving an incorrect value for specifically the client player modelpart keyword in animations not working correctly for OptiFine part names that differ from the vanilla ones06.09.2024 · 247 завантаження
rot_y giving an incorrect value for specifically the client player modelpart keyword in animations not working correctly for OptiFine part names that differ from the vanilla ones06.09.2024 · 506 завантаження
rot_y giving an incorrect value for specifically the client player modelpart keyword in animations not working correctly for OptiFine part names that differ from the vanilla ones06.09.2024 · 72 завантаження
rot_y giving an incorrect value for specifically the client player modelpart keyword in animations not working correctly for OptiFine part names that differ from the vanilla ones06.09.2024 · 117 завантаження
rot_y giving an incorrect value for specifically the client player modelpart keyword in animations not working correctly for OptiFine part names that differ from the vanilla ones06.09.2024 · 52 310 завантаження
rot_y giving an incorrect value for specifically the client player modelpart keyword in animations not working correctly for OptiFine part names that differ from the vanilla ones06.09.2024 · 67 719 завантаження
rot_y giving an incorrect value for specifically the client player modelpart keyword in animations not working correctly for OptiFine part names that differ from the vanilla ones03.09.2024 · 70 594 завантаження
part directly in animations such as this already doesframe_counter variable from the latest OptiFinewolf_collar to the model listframe_time match OptiFine's pausing and tick freeze behaviouroptifine/cem/mod:model.jem instead of mod:optifine/cem/model.jem03.09.2024 · 835 завантаження
part directly in animations such as this already doesframe_counter variable from the latest OptiFinewolf_collar to the model listframe_time match OptiFine's pausing and tick freeze behaviouroptifine/cem/mod:model.jem instead of mod:optifine/cem/model.jem03.09.2024 · 650 завантаження
part directly in animations such as this already doesframe_counter variable from the latest OptiFinewolf_collar to the model listframe_time match OptiFine's pausing and tick freeze behaviouroptifine/cem/mod:model.jem instead of mod:optifine/cem/model.jem03.09.2024 · 645 завантаження
part directly in animations such as this already doesframe_counter variable from the latest OptiFinewolf_collar to the model listframe_time match OptiFine's pausing and tick freeze behaviouroptifine/cem/mod:model.jem instead of mod:optifine/cem/model.jem03.09.2024 · 118 завантаження
part directly in animations such as this already doesframe_counter variable from the latest OptiFinewolf_collar to the model listframe_time match OptiFine's pausing and tick freeze behaviouroptifine/cem/mod:model.jem instead of mod:optifine/cem/model.jem03.09.2024 · 114 завантаження
part directly in animations such as this already doesframe_counter variable from the latest OptiFinewolf_collar to the model listframe_time match OptiFine's pausing and tick freeze behaviouroptifine/cem/mod:model.jem instead of mod:optifine/cem/model.jem03.09.2024 · 5 641 завантаження
part directly in animations such as this already doesframe_counter variable from the latest OptiFinewolf_collar to the model listframe_time match OptiFine's pausing and tick freeze behaviouroptifine/cem/mod:model.jem instead of mod:optifine/cem/model.jem03.09.2024 · 70 завантаження
part directly in animations such as this already doesframe_counter variable from the latest OptiFinewolf_collar to the model listframe_time match OptiFine's pausing and tick freeze behaviouroptifine/cem/mod:model.jem instead of mod:optifine/cem/model.jem03.09.2024 · 149 завантаження
part directly in animations such as this already doesframe_counter variable from the latest OptiFinewolf_collar to the model listframe_time match OptiFine's pausing and tick freeze behaviouroptifine/cem/mod:model.jem instead of mod:optifine/cem/model.jem03.09.2024 · 296 завантаження
part directly in animations such as this already doesframe_counter variable from the latest OptiFinewolf_collar to the model listframe_time match OptiFine's pausing and tick freeze behaviouroptifine/cem/mod:model.jem instead of mod:optifine/cem/model.jem03.09.2024 · 49 завантаження
part directly in animations such as this already doesframe_counter variable from the latest OptiFinewolf_collar to the model listframe_time match OptiFine's pausing and tick freeze behaviouroptifine/cem/mod:model.jem instead of mod:optifine/cem/model.jem03.09.2024 · 89 завантаження
part directly in animations such as this already doesframe_counter variable from the latest OptiFinewolf_collar to the model listframe_time match OptiFine's pausing and tick freeze behaviouroptifine/cem/mod:model.jem instead of mod:optifine/cem/model.jem03.09.2024 · 11 926 завантаження
part directly in animations such as this already doesframe_counter variable from the latest OptiFinewolf_collar to the model listframe_time match OptiFine's pausing and tick freeze behaviouroptifine/cem/mod:model.jem instead of mod:optifine/cem/model.jem03.09.2024 · 37 214 завантаження
part directly in animations such as this already doesframe_counter variable from the latest OptiFinewolf_collar to the model listframe_time match OptiFine's pausing and tick freeze behaviouroptifine/cem/mod:model.jem instead of mod:optifine/cem/model.jem29.08.2024 · 170 396 завантаження
wavey capes mod can now correctly overwrite it & essentials works with it nowoptifine/cem/skeleton/skeleton.jem now loads before optifine/cem/skeleton.jem matching optifine behaviouroptifine/cem/skeleton/skeleton.jem will not load without a optifine/cem/skeleton/skeleton2.jem or a valid .properties file.attach=true or vanilla partsthis being correctly resolved in animation mathis_aggressive29.08.2024 · 3 556 завантаження
wavey capes mod can now correctly overwrite it & essentials works with it nowoptifine/cem/skeleton/skeleton.jem now loads before optifine/cem/skeleton.jem matching optifine behaviouroptifine/cem/skeleton/skeleton.jem will not load without a optifine/cem/skeleton/skeleton2.jem or a valid .properties file.attach=true or vanilla partsthis being correctly resolved in animation mathis_aggressive29.08.2024 · 1 135 завантаження
wavey capes mod can now correctly overwrite it & essentials works with it nowoptifine/cem/skeleton/skeleton.jem now loads before optifine/cem/skeleton.jem matching optifine behaviouroptifine/cem/skeleton/skeleton.jem will not load without a optifine/cem/skeleton/skeleton2.jem or a valid .properties file.attach=true or vanilla partsthis being correctly resolved in animation mathis_aggressive29.08.2024 · 1 361 завантаження
wavey capes mod can now correctly overwrite it & essentials works with it nowoptifine/cem/skeleton/skeleton.jem now loads before optifine/cem/skeleton.jem matching optifine behaviouroptifine/cem/skeleton/skeleton.jem will not load without a optifine/cem/skeleton/skeleton2.jem or a valid .properties file.attach=true or vanilla partsthis being correctly resolved in animation mathis_aggressive29.08.2024 · 98 завантаження
wavey capes mod can now correctly overwrite it & essentials works with it nowoptifine/cem/skeleton/skeleton.jem now loads before optifine/cem/skeleton.jem matching optifine behaviouroptifine/cem/skeleton/skeleton.jem will not load without a optifine/cem/skeleton/skeleton2.jem or a valid .properties file.attach=true or vanilla partsthis being correctly resolved in animation mathis_aggressive29.08.2024 · 131 завантаження
wavey capes mod can now correctly overwrite it & essentials works with it nowoptifine/cem/skeleton/skeleton.jem now loads before optifine/cem/skeleton.jem matching optifine behaviouroptifine/cem/skeleton/skeleton.jem will not load without a optifine/cem/skeleton/skeleton2.jem or a valid .properties file.attach=true or vanilla partsthis being correctly resolved in animation mathis_aggressive29.08.2024 · 3 457 завантаження
wavey capes mod can now correctly overwrite it & essentials works with it nowoptifine/cem/skeleton/skeleton.jem now loads before optifine/cem/skeleton.jem matching optifine behaviouroptifine/cem/skeleton/skeleton.jem will not load without a optifine/cem/skeleton/skeleton2.jem or a valid .properties file.attach=true or vanilla partsthis being correctly resolved in animation mathis_aggressive29.08.2024 · 112 завантаження
wavey capes mod can now correctly overwrite it & essentials works with it nowoptifine/cem/skeleton/skeleton.jem now loads before optifine/cem/skeleton.jem matching optifine behaviouroptifine/cem/skeleton/skeleton.jem will not load without a optifine/cem/skeleton/skeleton2.jem or a valid .properties file.attach=true or vanilla partsthis being correctly resolved in animation mathis_aggressive29.08.2024 · 257 завантаження
wavey capes mod can now correctly overwrite it & essentials works with it nowoptifine/cem/skeleton/skeleton.jem now loads before optifine/cem/skeleton.jem matching optifine behaviouroptifine/cem/skeleton/skeleton.jem will not load without a optifine/cem/skeleton/skeleton2.jem or a valid .properties file.attach=true or vanilla partsthis being correctly resolved in animation mathis_aggressive29.08.2024 · 485 завантаження
wavey capes mod can now correctly overwrite it & essentials works with it nowoptifine/cem/skeleton/skeleton.jem now loads before optifine/cem/skeleton.jem matching optifine behaviouroptifine/cem/skeleton/skeleton.jem will not load without a optifine/cem/skeleton/skeleton2.jem or a valid .properties file.attach=true or vanilla partsthis being correctly resolved in animation mathis_aggressive29.08.2024 · 74 завантаження
wavey capes mod can now correctly overwrite it & essentials works with it nowoptifine/cem/skeleton/skeleton.jem now loads before optifine/cem/skeleton.jem matching optifine behaviouroptifine/cem/skeleton/skeleton.jem will not load without a optifine/cem/skeleton/skeleton2.jem or a valid .properties file.attach=true or vanilla partsthis being correctly resolved in animation mathis_aggressive29.08.2024 · 90 завантаження
wavey capes mod can now correctly overwrite it & essentials works with it nowoptifine/cem/skeleton/skeleton.jem now loads before optifine/cem/skeleton.jem matching optifine behaviouroptifine/cem/skeleton/skeleton.jem will not load without a optifine/cem/skeleton/skeleton2.jem or a valid .properties file.attach=true or vanilla partsthis being correctly resolved in animation mathis_aggressive29.08.2024 · 28 823 завантаження
wavey capes mod can now correctly overwrite it & essentials works with it nowoptifine/cem/skeleton/skeleton.jem now loads before optifine/cem/skeleton.jem matching optifine behaviouroptifine/cem/skeleton/skeleton.jem will not load without a optifine/cem/skeleton/skeleton2.jem or a valid .properties file.attach=true or vanilla partsthis being correctly resolved in animation mathis_aggressive29.08.2024 · 47 986 завантаження
wavey capes mod can now correctly overwrite it & essentials works with it nowoptifine/cem/skeleton/skeleton.jem now loads before optifine/cem/skeleton.jem matching optifine behaviouroptifine/cem/skeleton/skeleton.jem will not load without a optifine/cem/skeleton/skeleton2.jem or a valid .properties file.attach=true or vanilla partsthis being correctly resolved in animation mathis_aggressive20.08.2024 · 570 859 завантаження
[2.2]
- fixed forge 1.21 & 1.20.6 compat
- fixed issues when used with the Sodium 0.6 betas
- Added a setting to make EMF reset all the vanilla part transforms of player models well before every render.
- Only applies if custom models are present for the player.
- This is not the typical behaviour however with how many mods alter player animations
- this setting vastly reduces the difficulty of player animation compatibility between mods and animation packs.
- E.G. player emote mods.
- This compatibility still requires work on the pack makers end.
- added the nbt(key,test) boolean animation function it works exactly like the nbt random property such that models.1.SaddleItem=exits:false will be nbt(SaddleItem,exists:false)
- added boolean animation variable is_paused true when the game is paused
- added boolean animation variable is_hovered true when the client is looking at the entity or block entity position
- added an option in model debug settings to only render models in debug mode when the mob is hovered over
- added a setting to control whether EMF requires a 'base' model for model variation like OptiFine (e.g. pig2.jem requires a pig.jem to work). This setting is now enabled by default to promote backwards compatibility and prevent confusion.
- tweaked the keyframe() & keyframeloop() animation functions to use catmulrom spline interpolation for smooth transitions between keyframes, factoring in the previous and upcoming frames
- fixed villager clothing and profession textures failing to render when a texture override is set in the model
- fixed an issue with chest_large.jem due to how it has to be split into 2 half models in game, this removes the log spam about the missing left/right half and also somewhat fixes animations referring to the opposite side of the chest, you are still highly recommended to keep the left and right half animations separate. A config option has been enabled to toggle this fix in case of modded chest model conflicts.
- fixed slime_outer models removing translucency when using texture overrides
- fixed is_swinging_right_arm and is_swinging_left_arm
- added is_using_item true when any item is being used, usually you can detect which arm via is_swinging_right_arm and is_swinging_left_arm but this is not reliable for all item usages
- added is_holding_item_right and is_holding_item_left to detect if the entity is holding an item in the right or left hand, may not work for all entities that hold items, only tested with players
- added vex charging to is_aggressive variable and also made it potentially more consistent with modded mobs
- fixed variation for special secondary or backup models, like outer_armor.jem. or old directory modded models.
- fixed the print animation methods accidentally printing during pre-validation
- signs and boats now have optional override models, based on how vanilla separates every sign and boat variant into its own models, these are only identifiable by enabling model creation logging and seeing what they are called there, and if absent will fallback to the optifine defaults.
- improved the file name and location displays in the config list of all models
- added the emf 16x logo to the config gui to replace the full logo
- improvements to texture overrides, emf now strips redundant texture declarations to improve runtime efficiency (e.g. ignores pig.png declared in pig.jem as its redundant)
- fixed an issue with some entity animation values getting reset during entity feature layer rendering and not being restored correctly
20.08.2024 · 10 364 завантаження
[2.2]
- fixed forge 1.21 & 1.20.6 compat
- fixed issues when used with the Sodium 0.6 betas
- Added a setting to make EMF reset all the vanilla part transforms of player models well before every render.
- Only applies if custom models are present for the player.
- This is not the typical behaviour however with how many mods alter player animations
- this setting vastly reduces the difficulty of player animation compatibility between mods and animation packs.
- E.G. player emote mods.
- This compatibility still requires work on the pack makers end.
- added the nbt(key,test) boolean animation function it works exactly like the nbt random property such that models.1.SaddleItem=exits:false will be nbt(SaddleItem,exists:false)
- added boolean animation variable is_paused true when the game is paused
- added boolean animation variable is_hovered true when the client is looking at the entity or block entity position
- added an option in model debug settings to only render models in debug mode when the mob is hovered over
- added a setting to control whether EMF requires a 'base' model for model variation like OptiFine (e.g. pig2.jem requires a pig.jem to work). This setting is now enabled by default to promote backwards compatibility and prevent confusion.
- tweaked the keyframe() & keyframeloop() animation functions to use catmulrom spline interpolation for smooth transitions between keyframes, factoring in the previous and upcoming frames
- fixed villager clothing and profession textures failing to render when a texture override is set in the model
- fixed an issue with chest_large.jem due to how it has to be split into 2 half models in game, this removes the log spam about the missing left/right half and also somewhat fixes animations referring to the opposite side of the chest, you are still highly recommended to keep the left and right half animations separate. A config option has been enabled to toggle this fix in case of modded chest model conflicts.
- fixed slime_outer models removing translucency when using texture overrides
- fixed is_swinging_right_arm and is_swinging_left_arm
- added is_using_item true when any item is being used, usually you can detect which arm via is_swinging_right_arm and is_swinging_left_arm but this is not reliable for all item usages
- added is_holding_item_right and is_holding_item_left to detect if the entity is holding an item in the right or left hand, may not work for all entities that hold items, only tested with players
- added vex charging to is_aggressive variable and also made it potentially more consistent with modded mobs
- fixed variation for special secondary or backup models, like outer_armor.jem. or old directory modded models.
- fixed the print animation methods accidentally printing during pre-validation
- signs and boats now have optional override models, based on how vanilla separates every sign and boat variant into its own models, these are only identifiable by enabling model creation logging and seeing what they are called there, and if absent will fallback to the optifine defaults.
- improved the file name and location displays in the config list of all models
- added the emf 16x logo to the config gui to replace the full logo
- improvements to texture overrides, emf now strips redundant texture declarations to improve runtime efficiency (e.g. ignores pig.png declared in pig.jem as its redundant)
- fixed an issue with some entity animation values getting reset during entity feature layer rendering and not being restored correctly
20.08.2024 · 10 364 завантаження
[2.2]
- fixed forge 1.21 & 1.20.6 compat
- fixed issues when used with the Sodium 0.6 betas
- Added a setting to make EMF reset all the vanilla part transforms of player models well before every render.
- Only applies if custom models are present for the player.
- This is not the typical behaviour however with how many mods alter player animations
- this setting vastly reduces the difficulty of player animation compatibility between mods and animation packs.
- E.G. player emote mods.
- This compatibility still requires work on the pack makers end.
- added the nbt(key,test) boolean animation function it works exactly like the nbt random property such that models.1.SaddleItem=exits:false will be nbt(SaddleItem,exists:false)
- added boolean animation variable is_paused true when the game is paused
- added boolean animation variable is_hovered true when the client is looking at the entity or block entity position
- added an option in model debug settings to only render models in debug mode when the mob is hovered over
- added a setting to control whether EMF requires a 'base' model for model variation like OptiFine (e.g. pig2.jem requires a pig.jem to work). This setting is now enabled by default to promote backwards compatibility and prevent confusion.
- tweaked the keyframe() & keyframeloop() animation functions to use catmulrom spline interpolation for smooth transitions between keyframes, factoring in the previous and upcoming frames
- fixed villager clothing and profession textures failing to render when a texture override is set in the model
- fixed an issue with chest_large.jem due to how it has to be split into 2 half models in game, this removes the log spam about the missing left/right half and also somewhat fixes animations referring to the opposite side of the chest, you are still highly recommended to keep the left and right half animations separate. A config option has been enabled to toggle this fix in case of modded chest model conflicts.
- fixed slime_outer models removing translucency when using texture overrides
- fixed is_swinging_right_arm and is_swinging_left_arm
- added is_using_item true when any item is being used, usually you can detect which arm via is_swinging_right_arm and is_swinging_left_arm but this is not reliable for all item usages
- added is_holding_item_right and is_holding_item_left to detect if the entity is holding an item in the right or left hand, may not work for all entities that hold items, only tested with players
- added vex charging to is_aggressive variable and also made it potentially more consistent with modded mobs
- fixed variation for special secondary or backup models, like outer_armor.jem. or old directory modded models.
- fixed the print animation methods accidentally printing during pre-validation
- signs and boats now have optional override models, based on how vanilla separates every sign and boat variant into its own models, these are only identifiable by enabling model creation logging and seeing what they are called there, and if absent will fallback to the optifine defaults.
- improved the file name and location displays in the config list of all models
- added the emf 16x logo to the config gui to replace the full logo
- improvements to texture overrides, emf now strips redundant texture declarations to improve runtime efficiency (e.g. ignores pig.png declared in pig.jem as its redundant)
- fixed an issue with some entity animation values getting reset during entity feature layer rendering and not being restored correctly
20.08.2024 · 3 824 завантаження
[2.2]
- fixed forge 1.21 & 1.20.6 compat
- fixed issues when used with the Sodium 0.6 betas
- Added a setting to make EMF reset all the vanilla part transforms of player models well before every render.
- Only applies if custom models are present for the player.
- This is not the typical behaviour however with how many mods alter player animations
- this setting vastly reduces the difficulty of player animation compatibility between mods and animation packs.
- E.G. player emote mods.
- This compatibility still requires work on the pack makers end.
- added the nbt(key,test) boolean animation function it works exactly like the nbt random property such that models.1.SaddleItem=exits:false will be nbt(SaddleItem,exists:false)
- added boolean animation variable is_paused true when the game is paused
- added boolean animation variable is_hovered true when the client is looking at the entity or block entity position
- added an option in model debug settings to only render models in debug mode when the mob is hovered over
- added a setting to control whether EMF requires a 'base' model for model variation like OptiFine (e.g. pig2.jem requires a pig.jem to work). This setting is now enabled by default to promote backwards compatibility and prevent confusion.
- tweaked the keyframe() & keyframeloop() animation functions to use catmulrom spline interpolation for smooth transitions between keyframes, factoring in the previous and upcoming frames
- fixed villager clothing and profession textures failing to render when a texture override is set in the model
- fixed an issue with chest_large.jem due to how it has to be split into 2 half models in game, this removes the log spam about the missing left/right half and also somewhat fixes animations referring to the opposite side of the chest, you are still highly recommended to keep the left and right half animations separate. A config option has been enabled to toggle this fix in case of modded chest model conflicts.
- fixed slime_outer models removing translucency when using texture overrides
- fixed is_swinging_right_arm and is_swinging_left_arm
- added is_using_item true when any item is being used, usually you can detect which arm via is_swinging_right_arm and is_swinging_left_arm but this is not reliable for all item usages
- added is_holding_item_right and is_holding_item_left to detect if the entity is holding an item in the right or left hand, may not work for all entities that hold items, only tested with players
- added vex charging to is_aggressive variable and also made it potentially more consistent with modded mobs
- fixed variation for special secondary or backup models, like outer_armor.jem. or old directory modded models.
- fixed the print animation methods accidentally printing during pre-validation
- signs and boats now have optional override models, based on how vanilla separates every sign and boat variant into its own models, these are only identifiable by enabling model creation logging and seeing what they are called there, and if absent will fallback to the optifine defaults.
- improved the file name and location displays in the config list of all models
- added the emf 16x logo to the config gui to replace the full logo
- improvements to texture overrides, emf now strips redundant texture declarations to improve runtime efficiency (e.g. ignores pig.png declared in pig.jem as its redundant)
- fixed an issue with some entity animation values getting reset during entity feature layer rendering and not being restored correctly
20.08.2024 · 41 291 завантаження
[2.2]
- fixed forge 1.21 & 1.20.6 compat
- fixed issues when used with the Sodium 0.6 betas
- Added a setting to make EMF reset all the vanilla part transforms of player models well before every render.
- Only applies if custom models are present for the player.
- This is not the typical behaviour however with how many mods alter player animations
- this setting vastly reduces the difficulty of player animation compatibility between mods and animation packs.
- E.G. player emote mods.
- This compatibility still requires work on the pack makers end.
- added the nbt(key,test) boolean animation function it works exactly like the nbt random property such that models.1.SaddleItem=exits:false will be nbt(SaddleItem,exists:false)
- added boolean animation variable is_paused true when the game is paused
- added boolean animation variable is_hovered true when the client is looking at the entity or block entity position
- added an option in model debug settings to only render models in debug mode when the mob is hovered over
- added a setting to control whether EMF requires a 'base' model for model variation like OptiFine (e.g. pig2.jem requires a pig.jem to work). This setting is now enabled by default to promote backwards compatibility and prevent confusion.
- tweaked the keyframe() & keyframeloop() animation functions to use catmulrom spline interpolation for smooth transitions between keyframes, factoring in the previous and upcoming frames
- fixed villager clothing and profession textures failing to render when a texture override is set in the model
- fixed an issue with chest_large.jem due to how it has to be split into 2 half models in game, this removes the log spam about the missing left/right half and also somewhat fixes animations referring to the opposite side of the chest, you are still highly recommended to keep the left and right half animations separate. A config option has been enabled to toggle this fix in case of modded chest model conflicts.
- fixed slime_outer models removing translucency when using texture overrides
- fixed is_swinging_right_arm and is_swinging_left_arm
- added is_using_item true when any item is being used, usually you can detect which arm via is_swinging_right_arm and is_swinging_left_arm but this is not reliable for all item usages
- added is_holding_item_right and is_holding_item_left to detect if the entity is holding an item in the right or left hand, may not work for all entities that hold items, only tested with players
- added vex charging to is_aggressive variable and also made it potentially more consistent with modded mobs
- fixed variation for special secondary or backup models, like outer_armor.jem. or old directory modded models.
- fixed the print animation methods accidentally printing during pre-validation
- signs and boats now have optional override models, based on how vanilla separates every sign and boat variant into its own models, these are only identifiable by enabling model creation logging and seeing what they are called there, and if absent will fallback to the optifine defaults.
- improved the file name and location displays in the config list of all models
- added the emf 16x logo to the config gui to replace the full logo
- improvements to texture overrides, emf now strips redundant texture declarations to improve runtime efficiency (e.g. ignores pig.png declared in pig.jem as its redundant)
- fixed an issue with some entity animation values getting reset during entity feature layer rendering and not being restored correctly
20.08.2024 · 2 817 завантаження
[2.2]
- fixed forge 1.21 & 1.20.6 compat
- fixed issues when used with the Sodium 0.6 betas
- Added a setting to make EMF reset all the vanilla part transforms of player models well before every render.
- Only applies if custom models are present for the player.
- This is not the typical behaviour however with how many mods alter player animations
- this setting vastly reduces the difficulty of player animation compatibility between mods and animation packs.
- E.G. player emote mods.
- This compatibility still requires work on the pack makers end.
- added the nbt(key,test) boolean animation function it works exactly like the nbt random property such that models.1.SaddleItem=exits:false will be nbt(SaddleItem,exists:false)
- added boolean animation variable is_paused true when the game is paused
- added boolean animation variable is_hovered true when the client is looking at the entity or block entity position
- added an option in model debug settings to only render models in debug mode when the mob is hovered over
- added a setting to control whether EMF requires a 'base' model for model variation like OptiFine (e.g. pig2.jem requires a pig.jem to work). This setting is now enabled by default to promote backwards compatibility and prevent confusion.
- tweaked the keyframe() & keyframeloop() animation functions to use catmulrom spline interpolation for smooth transitions between keyframes, factoring in the previous and upcoming frames
- fixed villager clothing and profession textures failing to render when a texture override is set in the model
- fixed an issue with chest_large.jem due to how it has to be split into 2 half models in game, this removes the log spam about the missing left/right half and also somewhat fixes animations referring to the opposite side of the chest, you are still highly recommended to keep the left and right half animations separate. A config option has been enabled to toggle this fix in case of modded chest model conflicts.
- fixed slime_outer models removing translucency when using texture overrides
- fixed is_swinging_right_arm and is_swinging_left_arm
- added is_using_item true when any item is being used, usually you can detect which arm via is_swinging_right_arm and is_swinging_left_arm but this is not reliable for all item usages
- added is_holding_item_right and is_holding_item_left to detect if the entity is holding an item in the right or left hand, may not work for all entities that hold items, only tested with players
- added vex charging to is_aggressive variable and also made it potentially more consistent with modded mobs
- fixed variation for special secondary or backup models, like outer_armor.jem. or old directory modded models.
- fixed the print animation methods accidentally printing during pre-validation
- signs and boats now have optional override models, based on how vanilla separates every sign and boat variant into its own models, these are only identifiable by enabling model creation logging and seeing what they are called there, and if absent will fallback to the optifine defaults.
- improved the file name and location displays in the config list of all models
- added the emf 16x logo to the config gui to replace the full logo
- improvements to texture overrides, emf now strips redundant texture declarations to improve runtime efficiency (e.g. ignores pig.png declared in pig.jem as its redundant)
- fixed an issue with some entity animation values getting reset during entity feature layer rendering and not being restored correctly
20.08.2024 · 573 завантаження
[2.2]
- fixed forge 1.21 & 1.20.6 compat
- fixed issues when used with the Sodium 0.6 betas
- Added a setting to make EMF reset all the vanilla part transforms of player models well before every render.
- Only applies if custom models are present for the player.
- This is not the typical behaviour however with how many mods alter player animations
- this setting vastly reduces the difficulty of player animation compatibility between mods and animation packs.
- E.G. player emote mods.
- This compatibility still requires work on the pack makers end.
- added the nbt(key,test) boolean animation function it works exactly like the nbt random property such that models.1.SaddleItem=exits:false will be nbt(SaddleItem,exists:false)
- added boolean animation variable is_paused true when the game is paused
- added boolean animation variable is_hovered true when the client is looking at the entity or block entity position
- added an option in model debug settings to only render models in debug mode when the mob is hovered over
- added a setting to control whether EMF requires a 'base' model for model variation like OptiFine (e.g. pig2.jem requires a pig.jem to work). This setting is now enabled by default to promote backwards compatibility and prevent confusion.
- tweaked the keyframe() & keyframeloop() animation functions to use catmulrom spline interpolation for smooth transitions between keyframes, factoring in the previous and upcoming frames
- fixed villager clothing and profession textures failing to render when a texture override is set in the model
- fixed an issue with chest_large.jem due to how it has to be split into 2 half models in game, this removes the log spam about the missing left/right half and also somewhat fixes animations referring to the opposite side of the chest, you are still highly recommended to keep the left and right half animations separate. A config option has been enabled to toggle this fix in case of modded chest model conflicts.
- fixed slime_outer models removing translucency when using texture overrides
- fixed is_swinging_right_arm and is_swinging_left_arm
- added is_using_item true when any item is being used, usually you can detect which arm via is_swinging_right_arm and is_swinging_left_arm but this is not reliable for all item usages
- added is_holding_item_right and is_holding_item_left to detect if the entity is holding an item in the right or left hand, may not work for all entities that hold items, only tested with players
- added vex charging to is_aggressive variable and also made it potentially more consistent with modded mobs
- fixed variation for special secondary or backup models, like outer_armor.jem. or old directory modded models.
- fixed the print animation methods accidentally printing during pre-validation
- signs and boats now have optional override models, based on how vanilla separates every sign and boat variant into its own models, these are only identifiable by enabling model creation logging and seeing what they are called there, and if absent will fallback to the optifine defaults.
- improved the file name and location displays in the config list of all models
- added the emf 16x logo to the config gui to replace the full logo
- improvements to texture overrides, emf now strips redundant texture declarations to improve runtime efficiency (e.g. ignores pig.png declared in pig.jem as its redundant)
- fixed an issue with some entity animation values getting reset during entity feature layer rendering and not being restored correctly
20.08.2024 · 894 завантаження
[2.2]
- fixed forge 1.21 & 1.20.6 compat
- fixed issues when used with the Sodium 0.6 betas
- Added a setting to make EMF reset all the vanilla part transforms of player models well before every render.
- Only applies if custom models are present for the player.
- This is not the typical behaviour however with how many mods alter player animations
- this setting vastly reduces the difficulty of player animation compatibility between mods and animation packs.
- E.G. player emote mods.
- This compatibility still requires work on the pack makers end.
- added the nbt(key,test) boolean animation function it works exactly like the nbt random property such that models.1.SaddleItem=exits:false will be nbt(SaddleItem,exists:false)
- added boolean animation variable is_paused true when the game is paused
- added boolean animation variable is_hovered true when the client is looking at the entity or block entity position
- added an option in model debug settings to only render models in debug mode when the mob is hovered over
- added a setting to control whether EMF requires a 'base' model for model variation like OptiFine (e.g. pig2.jem requires a pig.jem to work). This setting is now enabled by default to promote backwards compatibility and prevent confusion.
- tweaked the keyframe() & keyframeloop() animation functions to use catmulrom spline interpolation for smooth transitions between keyframes, factoring in the previous and upcoming frames
- fixed villager clothing and profession textures failing to render when a texture override is set in the model
- fixed an issue with chest_large.jem due to how it has to be split into 2 half models in game, this removes the log spam about the missing left/right half and also somewhat fixes animations referring to the opposite side of the chest, you are still highly recommended to keep the left and right half animations separate. A config option has been enabled to toggle this fix in case of modded chest model conflicts.
- fixed slime_outer models removing translucency when using texture overrides
- fixed is_swinging_right_arm and is_swinging_left_arm
- added is_using_item true when any item is being used, usually you can detect which arm via is_swinging_right_arm and is_swinging_left_arm but this is not reliable for all item usages
- added is_holding_item_right and is_holding_item_left to detect if the entity is holding an item in the right or left hand, may not work for all entities that hold items, only tested with players
- added vex charging to is_aggressive variable and also made it potentially more consistent with modded mobs
- fixed variation for special secondary or backup models, like outer_armor.jem. or old directory modded models.
- fixed the print animation methods accidentally printing during pre-validation
- signs and boats now have optional override models, based on how vanilla separates every sign and boat variant into its own models, these are only identifiable by enabling model creation logging and seeing what they are called there, and if absent will fallback to the optifine defaults.
- improved the file name and location displays in the config list of all models
- added the emf 16x logo to the config gui to replace the full logo
- improvements to texture overrides, emf now strips redundant texture declarations to improve runtime efficiency (e.g. ignores pig.png declared in pig.jem as its redundant)
- fixed an issue with some entity animation values getting reset during entity feature layer rendering and not being restored correctly
20.08.2024 · 146 завантаження
[2.2]
- fixed forge 1.21 & 1.20.6 compat
- fixed issues when used with the Sodium 0.6 betas
- Added a setting to make EMF reset all the vanilla part transforms of player models well before every render.
- Only applies if custom models are present for the player.
- This is not the typical behaviour however with how many mods alter player animations
- this setting vastly reduces the difficulty of player animation compatibility between mods and animation packs.
- E.G. player emote mods.
- This compatibility still requires work on the pack makers end.
- added the nbt(key,test) boolean animation function it works exactly like the nbt random property such that models.1.SaddleItem=exits:false will be nbt(SaddleItem,exists:false)
- added boolean animation variable is_paused true when the game is paused
- added boolean animation variable is_hovered true when the client is looking at the entity or block entity position
- added an option in model debug settings to only render models in debug mode when the mob is hovered over
- added a setting to control whether EMF requires a 'base' model for model variation like OptiFine (e.g. pig2.jem requires a pig.jem to work). This setting is now enabled by default to promote backwards compatibility and prevent confusion.
- tweaked the keyframe() & keyframeloop() animation functions to use catmulrom spline interpolation for smooth transitions between keyframes, factoring in the previous and upcoming frames
- fixed villager clothing and profession textures failing to render when a texture override is set in the model
- fixed an issue with chest_large.jem due to how it has to be split into 2 half models in game, this removes the log spam about the missing left/right half and also somewhat fixes animations referring to the opposite side of the chest, you are still highly recommended to keep the left and right half animations separate. A config option has been enabled to toggle this fix in case of modded chest model conflicts.
- fixed slime_outer models removing translucency when using texture overrides
- fixed is_swinging_right_arm and is_swinging_left_arm
- added is_using_item true when any item is being used, usually you can detect which arm via is_swinging_right_arm and is_swinging_left_arm but this is not reliable for all item usages
- added is_holding_item_right and is_holding_item_left to detect if the entity is holding an item in the right or left hand, may not work for all entities that hold items, only tested with players
- added vex charging to is_aggressive variable and also made it potentially more consistent with modded mobs
- fixed variation for special secondary or backup models, like outer_armor.jem. or old directory modded models.
- fixed the print animation methods accidentally printing during pre-validation
- signs and boats now have optional override models, based on how vanilla separates every sign and boat variant into its own models, these are only identifiable by enabling model creation logging and seeing what they are called there, and if absent will fallback to the optifine defaults.
- improved the file name and location displays in the config list of all models
- added the emf 16x logo to the config gui to replace the full logo
- improvements to texture overrides, emf now strips redundant texture declarations to improve runtime efficiency (e.g. ignores pig.png declared in pig.jem as its redundant)
- fixed an issue with some entity animation values getting reset during entity feature layer rendering and not being restored correctly
20.08.2024 · 62 575 завантаження
[2.2]
- fixed forge 1.21 & 1.20.6 compat
- fixed issues when used with the Sodium 0.6 betas
- Added a setting to make EMF reset all the vanilla part transforms of player models well before every render.
- Only applies if custom models are present for the player.
- This is not the typical behaviour however with how many mods alter player animations
- this setting vastly reduces the difficulty of player animation compatibility between mods and animation packs.
- E.G. player emote mods.
- This compatibility still requires work on the pack makers end.
- added the nbt(key,test) boolean animation function it works exactly like the nbt random property such that models.1.SaddleItem=exits:false will be nbt(SaddleItem,exists:false)
- added boolean animation variable is_paused true when the game is paused
- added boolean animation variable is_hovered true when the client is looking at the entity or block entity position
- added an option in model debug settings to only render models in debug mode when the mob is hovered over
- added a setting to control whether EMF requires a 'base' model for model variation like OptiFine (e.g. pig2.jem requires a pig.jem to work). This setting is now enabled by default to promote backwards compatibility and prevent confusion.
- tweaked the keyframe() & keyframeloop() animation functions to use catmulrom spline interpolation for smooth transitions between keyframes, factoring in the previous and upcoming frames
- fixed villager clothing and profession textures failing to render when a texture override is set in the model
- fixed an issue with chest_large.jem due to how it has to be split into 2 half models in game, this removes the log spam about the missing left/right half and also somewhat fixes animations referring to the opposite side of the chest, you are still highly recommended to keep the left and right half animations separate. A config option has been enabled to toggle this fix in case of modded chest model conflicts.
- fixed slime_outer models removing translucency when using texture overrides
- fixed is_swinging_right_arm and is_swinging_left_arm
- added is_using_item true when any item is being used, usually you can detect which arm via is_swinging_right_arm and is_swinging_left_arm but this is not reliable for all item usages
- added is_holding_item_right and is_holding_item_left to detect if the entity is holding an item in the right or left hand, may not work for all entities that hold items, only tested with players
- added vex charging to is_aggressive variable and also made it potentially more consistent with modded mobs
- fixed variation for special secondary or backup models, like outer_armor.jem. or old directory modded models.
- fixed the print animation methods accidentally printing during pre-validation
- signs and boats now have optional override models, based on how vanilla separates every sign and boat variant into its own models, these are only identifiable by enabling model creation logging and seeing what they are called there, and if absent will fallback to the optifine defaults.
- improved the file name and location displays in the config list of all models
- added the emf 16x logo to the config gui to replace the full logo
- improvements to texture overrides, emf now strips redundant texture declarations to improve runtime efficiency (e.g. ignores pig.png declared in pig.jem as its redundant)
- fixed an issue with some entity animation values getting reset during entity feature layer rendering and not being restored correctly
20.08.2024 · 3 163 завантаження
[2.2]
- fixed forge 1.21 & 1.20.6 compat
- fixed issues when used with the Sodium 0.6 betas
- Added a setting to make EMF reset all the vanilla part transforms of player models well before every render.
- Only applies if custom models are present for the player.
- This is not the typical behaviour however with how many mods alter player animations
- this setting vastly reduces the difficulty of player animation compatibility between mods and animation packs.
- E.G. player emote mods.
- This compatibility still requires work on the pack makers end.
- added the nbt(key,test) boolean animation function it works exactly like the nbt random property such that models.1.SaddleItem=exits:false will be nbt(SaddleItem,exists:false)
- added boolean animation variable is_paused true when the game is paused
- added boolean animation variable is_hovered true when the client is looking at the entity or block entity position
- added an option in model debug settings to only render models in debug mode when the mob is hovered over
- added a setting to control whether EMF requires a 'base' model for model variation like OptiFine (e.g. pig2.jem requires a pig.jem to work). This setting is now enabled by default to promote backwards compatibility and prevent confusion.
- tweaked the keyframe() & keyframeloop() animation functions to use catmulrom spline interpolation for smooth transitions between keyframes, factoring in the previous and upcoming frames
- fixed villager clothing and profession textures failing to render when a texture override is set in the model
- fixed an issue with chest_large.jem due to how it has to be split into 2 half models in game, this removes the log spam about the missing left/right half and also somewhat fixes animations referring to the opposite side of the chest, you are still highly recommended to keep the left and right half animations separate. A config option has been enabled to toggle this fix in case of modded chest model conflicts.
- fixed slime_outer models removing translucency when using texture overrides
- fixed is_swinging_right_arm and is_swinging_left_arm
- added is_using_item true when any item is being used, usually you can detect which arm via is_swinging_right_arm and is_swinging_left_arm but this is not reliable for all item usages
- added is_holding_item_right and is_holding_item_left to detect if the entity is holding an item in the right or left hand, may not work for all entities that hold items, only tested with players
- added vex charging to is_aggressive variable and also made it potentially more consistent with modded mobs
- fixed variation for special secondary or backup models, like outer_armor.jem. or old directory modded models.
- fixed the print animation methods accidentally printing during pre-validation
- signs and boats now have optional override models, based on how vanilla separates every sign and boat variant into its own models, these are only identifiable by enabling model creation logging and seeing what they are called there, and if absent will fallback to the optifine defaults.
- improved the file name and location displays in the config list of all models
- added the emf 16x logo to the config gui to replace the full logo
- improvements to texture overrides, emf now strips redundant texture declarations to improve runtime efficiency (e.g. ignores pig.png declared in pig.jem as its redundant)
- fixed an issue with some entity animation values getting reset during entity feature layer rendering and not being restored correctly
20.08.2024 · 391 завантаження
[2.2]
- fixed forge 1.21 & 1.20.6 compat
- fixed issues when used with the Sodium 0.6 betas
- Added a setting to make EMF reset all the vanilla part transforms of player models well before every render.
- Only applies if custom models are present for the player.
- This is not the typical behaviour however with how many mods alter player animations
- this setting vastly reduces the difficulty of player animation compatibility between mods and animation packs.
- E.G. player emote mods.
- This compatibility still requires work on the pack makers end.
- added the nbt(key,test) boolean animation function it works exactly like the nbt random property such that models.1.SaddleItem=exits:false will be nbt(SaddleItem,exists:false)
- added boolean animation variable is_paused true when the game is paused
- added boolean animation variable is_hovered true when the client is looking at the entity or block entity position
- added an option in model debug settings to only render models in debug mode when the mob is hovered over
- added a setting to control whether EMF requires a 'base' model for model variation like OptiFine (e.g. pig2.jem requires a pig.jem to work). This setting is now enabled by default to promote backwards compatibility and prevent confusion.
- tweaked the keyframe() & keyframeloop() animation functions to use catmulrom spline interpolation for smooth transitions between keyframes, factoring in the previous and upcoming frames
- fixed villager clothing and profession textures failing to render when a texture override is set in the model
- fixed an issue with chest_large.jem due to how it has to be split into 2 half models in game, this removes the log spam about the missing left/right half and also somewhat fixes animations referring to the opposite side of the chest, you are still highly recommended to keep the left and right half animations separate. A config option has been enabled to toggle this fix in case of modded chest model conflicts.
- fixed slime_outer models removing translucency when using texture overrides
- fixed is_swinging_right_arm and is_swinging_left_arm
- added is_using_item true when any item is being used, usually you can detect which arm via is_swinging_right_arm and is_swinging_left_arm but this is not reliable for all item usages
- added is_holding_item_right and is_holding_item_left to detect if the entity is holding an item in the right or left hand, may not work for all entities that hold items, only tested with players
- added vex charging to is_aggressive variable and also made it potentially more consistent with modded mobs
- fixed variation for special secondary or backup models, like outer_armor.jem. or old directory modded models.
- fixed the print animation methods accidentally printing during pre-validation
- signs and boats now have optional override models, based on how vanilla separates every sign and boat variant into its own models, these are only identifiable by enabling model creation logging and seeing what they are called there, and if absent will fallback to the optifine defaults.
- improved the file name and location displays in the config list of all models
- added the emf 16x logo to the config gui to replace the full logo
- improvements to texture overrides, emf now strips redundant texture declarations to improve runtime efficiency (e.g. ignores pig.png declared in pig.jem as its redundant)
- fixed an issue with some entity animation values getting reset during entity feature layer rendering and not being restored correctly
20.08.2024 · 121 завантаження
[2.2]
- fixed forge 1.21 & 1.20.6 compat
- fixed issues when used with the Sodium 0.6 betas
- Added a setting to make EMF reset all the vanilla part transforms of player models well before every render.
- Only applies if custom models are present for the player.
- This is not the typical behaviour however with how many mods alter player animations
- this setting vastly reduces the difficulty of player animation compatibility between mods and animation packs.
- E.G. player emote mods.
- This compatibility still requires work on the pack makers end.
- added the nbt(key,test) boolean animation function it works exactly like the nbt random property such that models.1.SaddleItem=exits:false will be nbt(SaddleItem,exists:false)
- added boolean animation variable is_paused true when the game is paused
- added boolean animation variable is_hovered true when the client is looking at the entity or block entity position
- added an option in model debug settings to only render models in debug mode when the mob is hovered over
- added a setting to control whether EMF requires a 'base' model for model variation like OptiFine (e.g. pig2.jem requires a pig.jem to work). This setting is now enabled by default to promote backwards compatibility and prevent confusion.
- tweaked the keyframe() & keyframeloop() animation functions to use catmulrom spline interpolation for smooth transitions between keyframes, factoring in the previous and upcoming frames
- fixed villager clothing and profession textures failing to render when a texture override is set in the model
- fixed an issue with chest_large.jem due to how it has to be split into 2 half models in game, this removes the log spam about the missing left/right half and also somewhat fixes animations referring to the opposite side of the chest, you are still highly recommended to keep the left and right half animations separate. A config option has been enabled to toggle this fix in case of modded chest model conflicts.
- fixed slime_outer models removing translucency when using texture overrides
- fixed is_swinging_right_arm and is_swinging_left_arm
- added is_using_item true when any item is being used, usually you can detect which arm via is_swinging_right_arm and is_swinging_left_arm but this is not reliable for all item usages
- added is_holding_item_right and is_holding_item_left to detect if the entity is holding an item in the right or left hand, may not work for all entities that hold items, only tested with players
- added vex charging to is_aggressive variable and also made it potentially more consistent with modded mobs
- fixed variation for special secondary or backup models, like outer_armor.jem. or old directory modded models.
- fixed the print animation methods accidentally printing during pre-validation
- signs and boats now have optional override models, based on how vanilla separates every sign and boat variant into its own models, these are only identifiable by enabling model creation logging and seeing what they are called there, and if absent will fallback to the optifine defaults.
- improved the file name and location displays in the config list of all models
- added the emf 16x logo to the config gui to replace the full logo
- improvements to texture overrides, emf now strips redundant texture declarations to improve runtime efficiency (e.g. ignores pig.png declared in pig.jem as its redundant)
- fixed an issue with some entity animation values getting reset during entity feature layer rendering and not being restored correctly
20.08.2024 · 325 завантаження
[2.2]
- fixed forge 1.21 & 1.20.6 compat
- fixed issues when used with the Sodium 0.6 betas
- Added a setting to make EMF reset all the vanilla part transforms of player models well before every render.
- Only applies if custom models are present for the player.
- This is not the typical behaviour however with how many mods alter player animations
- this setting vastly reduces the difficulty of player animation compatibility between mods and animation packs.
- E.G. player emote mods.
- This compatibility still requires work on the pack makers end.
- added the nbt(key,test) boolean animation function it works exactly like the nbt random property such that models.1.SaddleItem=exits:false will be nbt(SaddleItem,exists:false)
- added boolean animation variable is_paused true when the game is paused
- added boolean animation variable is_hovered true when the client is looking at the entity or block entity position
- added an option in model debug settings to only render models in debug mode when the mob is hovered over
- added a setting to control whether EMF requires a 'base' model for model variation like OptiFine (e.g. pig2.jem requires a pig.jem to work). This setting is now enabled by default to promote backwards compatibility and prevent confusion.
- tweaked the keyframe() & keyframeloop() animation functions to use catmulrom spline interpolation for smooth transitions between keyframes, factoring in the previous and upcoming frames
- fixed villager clothing and profession textures failing to render when a texture override is set in the model
- fixed an issue with chest_large.jem due to how it has to be split into 2 half models in game, this removes the log spam about the missing left/right half and also somewhat fixes animations referring to the opposite side of the chest, you are still highly recommended to keep the left and right half animations separate. A config option has been enabled to toggle this fix in case of modded chest model conflicts.
- fixed slime_outer models removing translucency when using texture overrides
- fixed is_swinging_right_arm and is_swinging_left_arm
- added is_using_item true when any item is being used, usually you can detect which arm via is_swinging_right_arm and is_swinging_left_arm but this is not reliable for all item usages
- added is_holding_item_right and is_holding_item_left to detect if the entity is holding an item in the right or left hand, may not work for all entities that hold items, only tested with players
- added vex charging to is_aggressive variable and also made it potentially more consistent with modded mobs
- fixed variation for special secondary or backup models, like outer_armor.jem. or old directory modded models.
- fixed the print animation methods accidentally printing during pre-validation
- signs and boats now have optional override models, based on how vanilla separates every sign and boat variant into its own models, these are only identifiable by enabling model creation logging and seeing what they are called there, and if absent will fallback to the optifine defaults.
- improved the file name and location displays in the config list of all models
- added the emf 16x logo to the config gui to replace the full logo
- improvements to texture overrides, emf now strips redundant texture declarations to improve runtime efficiency (e.g. ignores pig.png declared in pig.jem as its redundant)
- fixed an issue with some entity animation values getting reset during entity feature layer rendering and not being restored correctly
04.07.2024 · 1 439 315 завантаження
fixed a crash when holding certain entity renderers with custom models.
04.07.2024 · 37 260 завантаження
fixed a crash when holding certain entity renderers with custom models.
04.07.2024 · 62 877 завантаження
fixed a crash when holding certain entity renderers with custom models.
04.07.2024 · 8 447 завантаження
fixed a crash when holding certain entity renderers with custom models.
04.07.2024 · 1 201 723 завантаження
fixed a crash when holding certain entity renderers with custom models.
04.07.2024 · 2 521 завантаження
fixed a crash when holding certain entity renderers with custom models.
04.07.2024 · 645 завантаження
fixed a crash when holding certain entity renderers with custom models.
04.07.2024 · 218 092 завантаження
fixed a crash when holding certain entity renderers with custom models.
04.07.2024 · 9 063 завантаження
fixed a crash when holding certain entity renderers with custom models.
04.07.2024 · 742 завантаження
fixed a crash when holding certain entity renderers with custom models.
04.07.2024 · 757 завантаження
fixed a crash when holding certain entity renderers with custom models.
04.07.2024 · 1 615 завантаження
fixed a crash when holding certain entity renderers with custom models.
03.07.2024 · 12 050 завантаження
[2.1.2]
- fixed the player shadows not animating in first person with iris with custom player models
- fixed a crash when holding tridents, chests, and other custom entity models with texture overrides.
03.07.2024 · 567 завантаження
[2.1.2]
- fixed the player shadows not animating in first person with iris with custom player models
- fixed a crash when holding tridents, chests, and other custom entity models with texture overrides.
03.07.2024 · 935 завантаження
[2.1.2]
- fixed the player shadows not animating in first person with iris with custom player models
- fixed a crash when holding tridents, chests, and other custom entity models with texture overrides.
03.07.2024 · 166 завантаження
[2.1.2]
- fixed the player shadows not animating in first person with iris with custom player models
- fixed a crash when holding tridents, chests, and other custom entity models with texture overrides.
03.07.2024 · 8 285 завантаження
[2.1.2]
- fixed the player shadows not animating in first person with iris with custom player models
- fixed a crash when holding tridents, chests, and other custom entity models with texture overrides.
03.07.2024 · 145 завантаження
[2.1.2]
- fixed the player shadows not animating in first person with iris with custom player models
- fixed a crash when holding tridents, chests, and other custom entity models with texture overrides.
03.07.2024 · 76 завантаження
[2.1.2]
- fixed the player shadows not animating in first person with iris with custom player models
- fixed a crash when holding tridents, chests, and other custom entity models with texture overrides.
03.07.2024 · 2 296 завантаження
[2.1.2]
- fixed the player shadows not animating in first person with iris with custom player models
- fixed a crash when holding tridents, chests, and other custom entity models with texture overrides.
03.07.2024 · 149 завантаження
[2.1.2]
- fixed the player shadows not animating in first person with iris with custom player models
- fixed a crash when holding tridents, chests, and other custom entity models with texture overrides.
03.07.2024 · 66 завантаження
[2.1.2]
- fixed the player shadows not animating in first person with iris with custom player models
- fixed a crash when holding tridents, chests, and other custom entity models with texture overrides.
03.07.2024 · 79 завантаження
[2.1.2]
- fixed the player shadows not animating in first person with iris with custom player models
- fixed a crash when holding tridents, chests, and other custom entity models with texture overrides.
03.07.2024 · 92 завантаження
[2.1.2]
- fixed the player shadows not animating in first person with iris with custom player models
- fixed a crash when holding tridents, chests, and other custom entity models with texture overrides.
03.07.2024 · 3 036 завантаження
[2.1.1]
- now requires ETF 6.1.3 or newer
- added new EMFAnimationAPI methods to allow other mods to:
- pause/resume entire custom model animations for an entity
- pause/resume individual custom model parts from animations for an entity
- lock/unlock an entity to only use their vanilla models
- utility methods to cast Entity and BlockEntity into the EMFEntity interface
these will allow other mods to inhibit EMF animations and models for specific entities when required e.g. for emotes
- fixed EMF applying values to the last part with the given id as opposed to the first (OptiFine parity)
- fixed the scale model part default setting not correctly applying on mobs with new format animations like wardens & frogs
- fixed a crash when exporting models in 1.21
- fixed a not building crash in 1.21
- fixed the root part not appearing in model exports
- fixed a bug where item attachments could carry over to other mob renders
- fixed the ender dragon spine part not rendering when having a texture override
- the setting that allows EMF to disable EBE settings, when custom block entity models are loaded, now has a much more verbose and informative display in the EMF config warning screen
- fixed the modded model export log using the old modded directory format, the export log now also gives a full path for the jem starting from the assets folder
- model exports are now placed inside the emf/export/assets/ folder in the .minecraft directory with a fully correct and namespaced path starting from the assets folder
- fixed the vanilla banner model waving adding on top of EMF animations due to vanilla banners being rendered in multiple stages
- changed pi from 3.1415926 to 3.1415927 to match vanilla pi usage and seems to match OptiFine despite the docs
- changed various math methods such as sin() & cos() to no longer use java.lang.Math and instead use Minecraft internal math class
- the above 2 changes fixed vindicators in fa 1.9.1
- added support for inner_armor.jem & outer_armor.jem as fallbacks if an entity specific armor model is not found, e.g. zombie_inner_armor.jem & zombie_outer_armor.jem
- fixed some missing mobs support for the is_aggressive variable
- changed the height_above_ground variable to detect blocks with standable top surfaces not just solid blocks
- fixed a bug causing some block entity model texture overrides to appear in first person view in their iris shader shadow pass position
- added an optimization option that will skip recalculating entity model animations during the iris shadow pass, on by default, and should always stay on, it is only an option in case of future breaking iris api changes or weird behaviour with iris ports.
- fixed the trident model part declaring additional parts in the OptiFine mapping by accident, which could cause vanilla trident parts to re-appear in many custom trident models
03.07.2024 · 364 завантаження
[2.1.1]
- now requires ETF 6.1.3 or newer
- added new EMFAnimationAPI methods to allow other mods to:
- pause/resume entire custom model animations for an entity
- pause/resume individual custom model parts from animations for an entity
- lock/unlock an entity to only use their vanilla models
- utility methods to cast Entity and BlockEntity into the EMFEntity interface
these will allow other mods to inhibit EMF animations and models for specific entities when required e.g. for emotes
- fixed EMF applying values to the last part with the given id as opposed to the first (OptiFine parity)
- fixed the scale model part default setting not correctly applying on mobs with new format animations like wardens & frogs
- fixed a crash when exporting models in 1.21
- fixed a not building crash in 1.21
- fixed the root part not appearing in model exports
- fixed a bug where item attachments could carry over to other mob renders
- fixed the ender dragon spine part not rendering when having a texture override
- the setting that allows EMF to disable EBE settings, when custom block entity models are loaded, now has a much more verbose and informative display in the EMF config warning screen
- fixed the modded model export log using the old modded directory format, the export log now also gives a full path for the jem starting from the assets folder
- model exports are now placed inside the emf/export/assets/ folder in the .minecraft directory with a fully correct and namespaced path starting from the assets folder
- fixed the vanilla banner model waving adding on top of EMF animations due to vanilla banners being rendered in multiple stages
- changed pi from 3.1415926 to 3.1415927 to match vanilla pi usage and seems to match OptiFine despite the docs
- changed various math methods such as sin() & cos() to no longer use java.lang.Math and instead use Minecraft internal math class
- the above 2 changes fixed vindicators in fa 1.9.1
- added support for inner_armor.jem & outer_armor.jem as fallbacks if an entity specific armor model is not found, e.g. zombie_inner_armor.jem & zombie_outer_armor.jem
- fixed some missing mobs support for the is_aggressive variable
- changed the height_above_ground variable to detect blocks with standable top surfaces not just solid blocks
- fixed a bug causing some block entity model texture overrides to appear in first person view in their iris shader shadow pass position
- added an optimization option that will skip recalculating entity model animations during the iris shadow pass, on by default, and should always stay on, it is only an option in case of future breaking iris api changes or weird behaviour with iris ports.
- fixed the trident model part declaring additional parts in the OptiFine mapping by accident, which could cause vanilla trident parts to re-appear in many custom trident models
03.07.2024 · 633 завантаження
[2.1.1]
- now requires ETF 6.1.3 or newer
- added new EMFAnimationAPI methods to allow other mods to:
- pause/resume entire custom model animations for an entity
- pause/resume individual custom model parts from animations for an entity
- lock/unlock an entity to only use their vanilla models
- utility methods to cast Entity and BlockEntity into the EMFEntity interface
these will allow other mods to inhibit EMF animations and models for specific entities when required e.g. for emotes
- fixed EMF applying values to the last part with the given id as opposed to the first (OptiFine parity)
- fixed the scale model part default setting not correctly applying on mobs with new format animations like wardens & frogs
- fixed a crash when exporting models in 1.21
- fixed a not building crash in 1.21
- fixed the root part not appearing in model exports
- fixed a bug where item attachments could carry over to other mob renders
- fixed the ender dragon spine part not rendering when having a texture override
- the setting that allows EMF to disable EBE settings, when custom block entity models are loaded, now has a much more verbose and informative display in the EMF config warning screen
- fixed the modded model export log using the old modded directory format, the export log now also gives a full path for the jem starting from the assets folder
- model exports are now placed inside the emf/export/assets/ folder in the .minecraft directory with a fully correct and namespaced path starting from the assets folder
- fixed the vanilla banner model waving adding on top of EMF animations due to vanilla banners being rendered in multiple stages
- changed pi from 3.1415926 to 3.1415927 to match vanilla pi usage and seems to match OptiFine despite the docs
- changed various math methods such as sin() & cos() to no longer use java.lang.Math and instead use Minecraft internal math class
- the above 2 changes fixed vindicators in fa 1.9.1
- added support for inner_armor.jem & outer_armor.jem as fallbacks if an entity specific armor model is not found, e.g. zombie_inner_armor.jem & zombie_outer_armor.jem
- fixed some missing mobs support for the is_aggressive variable
- changed the height_above_ground variable to detect blocks with standable top surfaces not just solid blocks
- fixed a bug causing some block entity model texture overrides to appear in first person view in their iris shader shadow pass position
- added an optimization option that will skip recalculating entity model animations during the iris shadow pass, on by default, and should always stay on, it is only an option in case of future breaking iris api changes or weird behaviour with iris ports.
- fixed the trident model part declaring additional parts in the OptiFine mapping by accident, which could cause vanilla trident parts to re-appear in many custom trident models
03.07.2024 · 143 завантаження
[2.1.1]
- now requires ETF 6.1.3 or newer
- added new EMFAnimationAPI methods to allow other mods to:
- pause/resume entire custom model animations for an entity
- pause/resume individual custom model parts from animations for an entity
- lock/unlock an entity to only use their vanilla models
- utility methods to cast Entity and BlockEntity into the EMFEntity interface
these will allow other mods to inhibit EMF animations and models for specific entities when required e.g. for emotes
- fixed EMF applying values to the last part with the given id as opposed to the first (OptiFine parity)
- fixed the scale model part default setting not correctly applying on mobs with new format animations like wardens & frogs
- fixed a crash when exporting models in 1.21
- fixed a not building crash in 1.21
- fixed the root part not appearing in model exports
- fixed a bug where item attachments could carry over to other mob renders
- fixed the ender dragon spine part not rendering when having a texture override
- the setting that allows EMF to disable EBE settings, when custom block entity models are loaded, now has a much more verbose and informative display in the EMF config warning screen
- fixed the modded model export log using the old modded directory format, the export log now also gives a full path for the jem starting from the assets folder
- model exports are now placed inside the emf/export/assets/ folder in the .minecraft directory with a fully correct and namespaced path starting from the assets folder
- fixed the vanilla banner model waving adding on top of EMF animations due to vanilla banners being rendered in multiple stages
- changed pi from 3.1415926 to 3.1415927 to match vanilla pi usage and seems to match OptiFine despite the docs
- changed various math methods such as sin() & cos() to no longer use java.lang.Math and instead use Minecraft internal math class
- the above 2 changes fixed vindicators in fa 1.9.1
- added support for inner_armor.jem & outer_armor.jem as fallbacks if an entity specific armor model is not found, e.g. zombie_inner_armor.jem & zombie_outer_armor.jem
- fixed some missing mobs support for the is_aggressive variable
- changed the height_above_ground variable to detect blocks with standable top surfaces not just solid blocks
- fixed a bug causing some block entity model texture overrides to appear in first person view in their iris shader shadow pass position
- added an optimization option that will skip recalculating entity model animations during the iris shadow pass, on by default, and should always stay on, it is only an option in case of future breaking iris api changes or weird behaviour with iris ports.
- fixed the trident model part declaring additional parts in the OptiFine mapping by accident, which could cause vanilla trident parts to re-appear in many custom trident models
03.07.2024 · 2 235 завантаження
[2.1.1]
- now requires ETF 6.1.3 or newer
- added new EMFAnimationAPI methods to allow other mods to:
- pause/resume entire custom model animations for an entity
- pause/resume individual custom model parts from animations for an entity
- lock/unlock an entity to only use their vanilla models
- utility methods to cast Entity and BlockEntity into the EMFEntity interface
these will allow other mods to inhibit EMF animations and models for specific entities when required e.g. for emotes
- fixed EMF applying values to the last part with the given id as opposed to the first (OptiFine parity)
- fixed the scale model part default setting not correctly applying on mobs with new format animations like wardens & frogs
- fixed a crash when exporting models in 1.21
- fixed a not building crash in 1.21
- fixed the root part not appearing in model exports
- fixed a bug where item attachments could carry over to other mob renders
- fixed the ender dragon spine part not rendering when having a texture override
- the setting that allows EMF to disable EBE settings, when custom block entity models are loaded, now has a much more verbose and informative display in the EMF config warning screen
- fixed the modded model export log using the old modded directory format, the export log now also gives a full path for the jem starting from the assets folder
- model exports are now placed inside the emf/export/assets/ folder in the .minecraft directory with a fully correct and namespaced path starting from the assets folder
- fixed the vanilla banner model waving adding on top of EMF animations due to vanilla banners being rendered in multiple stages
- changed pi from 3.1415926 to 3.1415927 to match vanilla pi usage and seems to match OptiFine despite the docs
- changed various math methods such as sin() & cos() to no longer use java.lang.Math and instead use Minecraft internal math class
- the above 2 changes fixed vindicators in fa 1.9.1
- added support for inner_armor.jem & outer_armor.jem as fallbacks if an entity specific armor model is not found, e.g. zombie_inner_armor.jem & zombie_outer_armor.jem
- fixed some missing mobs support for the is_aggressive variable
- changed the height_above_ground variable to detect blocks with standable top surfaces not just solid blocks
- fixed a bug causing some block entity model texture overrides to appear in first person view in their iris shader shadow pass position
- added an optimization option that will skip recalculating entity model animations during the iris shadow pass, on by default, and should always stay on, it is only an option in case of future breaking iris api changes or weird behaviour with iris ports.
- fixed the trident model part declaring additional parts in the OptiFine mapping by accident, which could cause vanilla trident parts to re-appear in many custom trident models
03.07.2024 · 101 завантаження
[2.1.1]
- now requires ETF 6.1.3 or newer
- added new EMFAnimationAPI methods to allow other mods to:
- pause/resume entire custom model animations for an entity
- pause/resume individual custom model parts from animations for an entity
- lock/unlock an entity to only use their vanilla models
- utility methods to cast Entity and BlockEntity into the EMFEntity interface
these will allow other mods to inhibit EMF animations and models for specific entities when required e.g. for emotes
- fixed EMF applying values to the last part with the given id as opposed to the first (OptiFine parity)
- fixed the scale model part default setting not correctly applying on mobs with new format animations like wardens & frogs
- fixed a crash when exporting models in 1.21
- fixed a not building crash in 1.21
- fixed the root part not appearing in model exports
- fixed a bug where item attachments could carry over to other mob renders
- fixed the ender dragon spine part not rendering when having a texture override
- the setting that allows EMF to disable EBE settings, when custom block entity models are loaded, now has a much more verbose and informative display in the EMF config warning screen
- fixed the modded model export log using the old modded directory format, the export log now also gives a full path for the jem starting from the assets folder
- model exports are now placed inside the emf/export/assets/ folder in the .minecraft directory with a fully correct and namespaced path starting from the assets folder
- fixed the vanilla banner model waving adding on top of EMF animations due to vanilla banners being rendered in multiple stages
- changed pi from 3.1415926 to 3.1415927 to match vanilla pi usage and seems to match OptiFine despite the docs
- changed various math methods such as sin() & cos() to no longer use java.lang.Math and instead use Minecraft internal math class
- the above 2 changes fixed vindicators in fa 1.9.1
- added support for inner_armor.jem & outer_armor.jem as fallbacks if an entity specific armor model is not found, e.g. zombie_inner_armor.jem & zombie_outer_armor.jem
- fixed some missing mobs support for the is_aggressive variable
- changed the height_above_ground variable to detect blocks with standable top surfaces not just solid blocks
- fixed a bug causing some block entity model texture overrides to appear in first person view in their iris shader shadow pass position
- added an optimization option that will skip recalculating entity model animations during the iris shadow pass, on by default, and should always stay on, it is only an option in case of future breaking iris api changes or weird behaviour with iris ports.
- fixed the trident model part declaring additional parts in the OptiFine mapping by accident, which could cause vanilla trident parts to re-appear in many custom trident models
03.07.2024 · 57 завантаження
[2.1.1]
- now requires ETF 6.1.3 or newer
- added new EMFAnimationAPI methods to allow other mods to:
- pause/resume entire custom model animations for an entity
- pause/resume individual custom model parts from animations for an entity
- lock/unlock an entity to only use their vanilla models
- utility methods to cast Entity and BlockEntity into the EMFEntity interface
these will allow other mods to inhibit EMF animations and models for specific entities when required e.g. for emotes
- fixed EMF applying values to the last part with the given id as opposed to the first (OptiFine parity)
- fixed the scale model part default setting not correctly applying on mobs with new format animations like wardens & frogs
- fixed a crash when exporting models in 1.21
- fixed a not building crash in 1.21
- fixed the root part not appearing in model exports
- fixed a bug where item attachments could carry over to other mob renders
- fixed the ender dragon spine part not rendering when having a texture override
- the setting that allows EMF to disable EBE settings, when custom block entity models are loaded, now has a much more verbose and informative display in the EMF config warning screen
- fixed the modded model export log using the old modded directory format, the export log now also gives a full path for the jem starting from the assets folder
- model exports are now placed inside the emf/export/assets/ folder in the .minecraft directory with a fully correct and namespaced path starting from the assets folder
- fixed the vanilla banner model waving adding on top of EMF animations due to vanilla banners being rendered in multiple stages
- changed pi from 3.1415926 to 3.1415927 to match vanilla pi usage and seems to match OptiFine despite the docs
- changed various math methods such as sin() & cos() to no longer use java.lang.Math and instead use Minecraft internal math class
- the above 2 changes fixed vindicators in fa 1.9.1
- added support for inner_armor.jem & outer_armor.jem as fallbacks if an entity specific armor model is not found, e.g. zombie_inner_armor.jem & zombie_outer_armor.jem
- fixed some missing mobs support for the is_aggressive variable
- changed the height_above_ground variable to detect blocks with standable top surfaces not just solid blocks
- fixed a bug causing some block entity model texture overrides to appear in first person view in their iris shader shadow pass position
- added an optimization option that will skip recalculating entity model animations during the iris shadow pass, on by default, and should always stay on, it is only an option in case of future breaking iris api changes or weird behaviour with iris ports.
- fixed the trident model part declaring additional parts in the OptiFine mapping by accident, which could cause vanilla trident parts to re-appear in many custom trident models
03.07.2024 · 1 028 завантаження
[2.1.1]
- now requires ETF 6.1.3 or newer
- added new EMFAnimationAPI methods to allow other mods to:
- pause/resume entire custom model animations for an entity
- pause/resume individual custom model parts from animations for an entity
- lock/unlock an entity to only use their vanilla models
- utility methods to cast Entity and BlockEntity into the EMFEntity interface
these will allow other mods to inhibit EMF animations and models for specific entities when required e.g. for emotes
- fixed EMF applying values to the last part with the given id as opposed to the first (OptiFine parity)
- fixed the scale model part default setting not correctly applying on mobs with new format animations like wardens & frogs
- fixed a crash when exporting models in 1.21
- fixed a not building crash in 1.21
- fixed the root part not appearing in model exports
- fixed a bug where item attachments could carry over to other mob renders
- fixed the ender dragon spine part not rendering when having a texture override
- the setting that allows EMF to disable EBE settings, when custom block entity models are loaded, now has a much more verbose and informative display in the EMF config warning screen
- fixed the modded model export log using the old modded directory format, the export log now also gives a full path for the jem starting from the assets folder
- model exports are now placed inside the emf/export/assets/ folder in the .minecraft directory with a fully correct and namespaced path starting from the assets folder
- fixed the vanilla banner model waving adding on top of EMF animations due to vanilla banners being rendered in multiple stages
- changed pi from 3.1415926 to 3.1415927 to match vanilla pi usage and seems to match OptiFine despite the docs
- changed various math methods such as sin() & cos() to no longer use java.lang.Math and instead use Minecraft internal math class
- the above 2 changes fixed vindicators in fa 1.9.1
- added support for inner_armor.jem & outer_armor.jem as fallbacks if an entity specific armor model is not found, e.g. zombie_inner_armor.jem & zombie_outer_armor.jem
- fixed some missing mobs support for the is_aggressive variable
- changed the height_above_ground variable to detect blocks with standable top surfaces not just solid blocks
- fixed a bug causing some block entity model texture overrides to appear in first person view in their iris shader shadow pass position
- added an optimization option that will skip recalculating entity model animations during the iris shadow pass, on by default, and should always stay on, it is only an option in case of future breaking iris api changes or weird behaviour with iris ports.
- fixed the trident model part declaring additional parts in the OptiFine mapping by accident, which could cause vanilla trident parts to re-appear in many custom trident models
03.07.2024 · 105 завантаження
[2.1.1]
- now requires ETF 6.1.3 or newer
- added new EMFAnimationAPI methods to allow other mods to:
- pause/resume entire custom model animations for an entity
- pause/resume individual custom model parts from animations for an entity
- lock/unlock an entity to only use their vanilla models
- utility methods to cast Entity and BlockEntity into the EMFEntity interface
these will allow other mods to inhibit EMF animations and models for specific entities when required e.g. for emotes
- fixed EMF applying values to the last part with the given id as opposed to the first (OptiFine parity)
- fixed the scale model part default setting not correctly applying on mobs with new format animations like wardens & frogs
- fixed a crash when exporting models in 1.21
- fixed a not building crash in 1.21
- fixed the root part not appearing in model exports
- fixed a bug where item attachments could carry over to other mob renders
- fixed the ender dragon spine part not rendering when having a texture override
- the setting that allows EMF to disable EBE settings, when custom block entity models are loaded, now has a much more verbose and informative display in the EMF config warning screen
- fixed the modded model export log using the old modded directory format, the export log now also gives a full path for the jem starting from the assets folder
- model exports are now placed inside the emf/export/assets/ folder in the .minecraft directory with a fully correct and namespaced path starting from the assets folder
- fixed the vanilla banner model waving adding on top of EMF animations due to vanilla banners being rendered in multiple stages
- changed pi from 3.1415926 to 3.1415927 to match vanilla pi usage and seems to match OptiFine despite the docs
- changed various math methods such as sin() & cos() to no longer use java.lang.Math and instead use Minecraft internal math class
- the above 2 changes fixed vindicators in fa 1.9.1
- added support for inner_armor.jem & outer_armor.jem as fallbacks if an entity specific armor model is not found, e.g. zombie_inner_armor.jem & zombie_outer_armor.jem
- fixed some missing mobs support for the is_aggressive variable
- changed the height_above_ground variable to detect blocks with standable top surfaces not just solid blocks
- fixed a bug causing some block entity model texture overrides to appear in first person view in their iris shader shadow pass position
- added an optimization option that will skip recalculating entity model animations during the iris shadow pass, on by default, and should always stay on, it is only an option in case of future breaking iris api changes or weird behaviour with iris ports.
- fixed the trident model part declaring additional parts in the OptiFine mapping by accident, which could cause vanilla trident parts to re-appear in many custom trident models
03.07.2024 · 55 завантаження
[2.1.1]
- now requires ETF 6.1.3 or newer
- added new EMFAnimationAPI methods to allow other mods to:
- pause/resume entire custom model animations for an entity
- pause/resume individual custom model parts from animations for an entity
- lock/unlock an entity to only use their vanilla models
- utility methods to cast Entity and BlockEntity into the EMFEntity interface
these will allow other mods to inhibit EMF animations and models for specific entities when required e.g. for emotes
- fixed EMF applying values to the last part with the given id as opposed to the first (OptiFine parity)
- fixed the scale model part default setting not correctly applying on mobs with new format animations like wardens & frogs
- fixed a crash when exporting models in 1.21
- fixed a not building crash in 1.21
- fixed the root part not appearing in model exports
- fixed a bug where item attachments could carry over to other mob renders
- fixed the ender dragon spine part not rendering when having a texture override
- the setting that allows EMF to disable EBE settings, when custom block entity models are loaded, now has a much more verbose and informative display in the EMF config warning screen
- fixed the modded model export log using the old modded directory format, the export log now also gives a full path for the jem starting from the assets folder
- model exports are now placed inside the emf/export/assets/ folder in the .minecraft directory with a fully correct and namespaced path starting from the assets folder
- fixed the vanilla banner model waving adding on top of EMF animations due to vanilla banners being rendered in multiple stages
- changed pi from 3.1415926 to 3.1415927 to match vanilla pi usage and seems to match OptiFine despite the docs
- changed various math methods such as sin() & cos() to no longer use java.lang.Math and instead use Minecraft internal math class
- the above 2 changes fixed vindicators in fa 1.9.1
- added support for inner_armor.jem & outer_armor.jem as fallbacks if an entity specific armor model is not found, e.g. zombie_inner_armor.jem & zombie_outer_armor.jem
- fixed some missing mobs support for the is_aggressive variable
- changed the height_above_ground variable to detect blocks with standable top surfaces not just solid blocks
- fixed a bug causing some block entity model texture overrides to appear in first person view in their iris shader shadow pass position
- added an optimization option that will skip recalculating entity model animations during the iris shadow pass, on by default, and should always stay on, it is only an option in case of future breaking iris api changes or weird behaviour with iris ports.
- fixed the trident model part declaring additional parts in the OptiFine mapping by accident, which could cause vanilla trident parts to re-appear in many custom trident models
03.07.2024 · 55 завантаження
[2.1.1]
- now requires ETF 6.1.3 or newer
- added new EMFAnimationAPI methods to allow other mods to:
- pause/resume entire custom model animations for an entity
- pause/resume individual custom model parts from animations for an entity
- lock/unlock an entity to only use their vanilla models
- utility methods to cast Entity and BlockEntity into the EMFEntity interface
these will allow other mods to inhibit EMF animations and models for specific entities when required e.g. for emotes
- fixed EMF applying values to the last part with the given id as opposed to the first (OptiFine parity)
- fixed the scale model part default setting not correctly applying on mobs with new format animations like wardens & frogs
- fixed a crash when exporting models in 1.21
- fixed a not building crash in 1.21
- fixed the root part not appearing in model exports
- fixed a bug where item attachments could carry over to other mob renders
- fixed the ender dragon spine part not rendering when having a texture override
- the setting that allows EMF to disable EBE settings, when custom block entity models are loaded, now has a much more verbose and informative display in the EMF config warning screen
- fixed the modded model export log using the old modded directory format, the export log now also gives a full path for the jem starting from the assets folder
- model exports are now placed inside the emf/export/assets/ folder in the .minecraft directory with a fully correct and namespaced path starting from the assets folder
- fixed the vanilla banner model waving adding on top of EMF animations due to vanilla banners being rendered in multiple stages
- changed pi from 3.1415926 to 3.1415927 to match vanilla pi usage and seems to match OptiFine despite the docs
- changed various math methods such as sin() & cos() to no longer use java.lang.Math and instead use Minecraft internal math class
- the above 2 changes fixed vindicators in fa 1.9.1
- added support for inner_armor.jem & outer_armor.jem as fallbacks if an entity specific armor model is not found, e.g. zombie_inner_armor.jem & zombie_outer_armor.jem
- fixed some missing mobs support for the is_aggressive variable
- changed the height_above_ground variable to detect blocks with standable top surfaces not just solid blocks
- fixed a bug causing some block entity model texture overrides to appear in first person view in their iris shader shadow pass position
- added an optimization option that will skip recalculating entity model animations during the iris shadow pass, on by default, and should always stay on, it is only an option in case of future breaking iris api changes or weird behaviour with iris ports.
- fixed the trident model part declaring additional parts in the OptiFine mapping by accident, which could cause vanilla trident parts to re-appear in many custom trident models
03.07.2024 · 66 завантаження
[2.1.1]
- now requires ETF 6.1.3 or newer
- added new EMFAnimationAPI methods to allow other mods to:
- pause/resume entire custom model animations for an entity
- pause/resume individual custom model parts from animations for an entity
- lock/unlock an entity to only use their vanilla models
- utility methods to cast Entity and BlockEntity into the EMFEntity interface
these will allow other mods to inhibit EMF animations and models for specific entities when required e.g. for emotes
- fixed EMF applying values to the last part with the given id as opposed to the first (OptiFine parity)
- fixed the scale model part default setting not correctly applying on mobs with new format animations like wardens & frogs
- fixed a crash when exporting models in 1.21
- fixed a not building crash in 1.21
- fixed the root part not appearing in model exports
- fixed a bug where item attachments could carry over to other mob renders
- fixed the ender dragon spine part not rendering when having a texture override
- the setting that allows EMF to disable EBE settings, when custom block entity models are loaded, now has a much more verbose and informative display in the EMF config warning screen
- fixed the modded model export log using the old modded directory format, the export log now also gives a full path for the jem starting from the assets folder
- model exports are now placed inside the emf/export/assets/ folder in the .minecraft directory with a fully correct and namespaced path starting from the assets folder
- fixed the vanilla banner model waving adding on top of EMF animations due to vanilla banners being rendered in multiple stages
- changed pi from 3.1415926 to 3.1415927 to match vanilla pi usage and seems to match OptiFine despite the docs
- changed various math methods such as sin() & cos() to no longer use java.lang.Math and instead use Minecraft internal math class
- the above 2 changes fixed vindicators in fa 1.9.1
- added support for inner_armor.jem & outer_armor.jem as fallbacks if an entity specific armor model is not found, e.g. zombie_inner_armor.jem & zombie_outer_armor.jem
- fixed some missing mobs support for the is_aggressive variable
- changed the height_above_ground variable to detect blocks with standable top surfaces not just solid blocks
- fixed a bug causing some block entity model texture overrides to appear in first person view in their iris shader shadow pass position
- added an optimization option that will skip recalculating entity model animations during the iris shadow pass, on by default, and should always stay on, it is only an option in case of future breaking iris api changes or weird behaviour with iris ports.
- fixed the trident model part declaring additional parts in the OptiFine mapping by accident, which could cause vanilla trident parts to re-appear in many custom trident models
14.06.2024 · 3 121 завантаження
14.06.2024 · 9 418 завантаження
12.06.2024 · 473 909 завантаження
30.04.2024 · 370 372 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
30.04.2024 · 371 255 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
30.04.2024 · 41 559 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
30.04.2024 · 2 114 961 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
30.04.2024 · 64 967 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
30.04.2024 · 93 459 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
30.04.2024 · 44 160 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
30.04.2024 · 2 847 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
30.04.2024 · 800 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
30.04.2024 · 428 478 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
30.04.2024 · 27 985 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
30.04.2024 · 2 130 406 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
30.04.2024 · 377 651 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
30.04.2024 · 1 592 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
30.04.2024 · 3 003 завантаження
2.0.2
- fixed the first person hand settings not getting reset correctly in 2.0.1
- added the is_swinging_right_arm & is_swinging_left_arm boolean variables,
used to distinguish right and left arm swinging in biped models, if no arm is swinging both should be false, if swing_progress > 0 then one of these should be true.
- added support for an optional player_cape.jem model file to be used for better animating the player cape
player_cape.jem only contains a cloak part, positioned exactly as it is in the regular player.jem,
if this model is present it will render in a special way that will not apply the vanilla animations to the cape.
Allowing much easier custom animations
(note this jem file can not be exported by the EMF config, but the player.jem exported model will work perfectly for it, as of v2.0.2)
The only transforms EMF applies to player_cape.jem before rendering & custom animating is:
- rotating the cape 180 degrees around the y axis. (matching vanilla)
- translating the cape 2 pixels backwards. (matching vanilla)
- translating the cape a further 1 pixel backwards & upwards if the player has a chest-plate on. (matching vanilla)
No other rotations or translations are applied to the cape, allowing for fully custom animations.
The cloak part inside the regular player.jem will render if player_cape.jem is not present, but will not benefit from having its vanilla animation cancelled by EMF
29.04.2024 · 1 753 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose29.04.2024 · 4 052 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose29.04.2024 · 384 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose29.04.2024 · 8 108 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose29.04.2024 · 288 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose29.04.2024 · 617 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose29.04.2024 · 281 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose29.04.2024 · 129 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose29.04.2024 · 89 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose29.04.2024 · 1 683 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose29.04.2024 · 145 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose29.04.2024 · 4 956 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose29.04.2024 · 404 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose29.04.2024 · 83 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose29.04.2024 · 103 завантаження
is_first_person_hand variable to detect then the model part being rendered is the first person player handplayer settings category in the model settings guiis_sneaking variable not working correctly, should now line up with all models that have a sneaking pose19.04.2024 · 32 816 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities19.04.2024 · 77 556 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities19.04.2024 · 1 890 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities19.04.2024 · 187 442 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities19.04.2024 · 1 063 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities19.04.2024 · 1 329 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities19.04.2024 · 1 293 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities19.04.2024 · 431 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities19.04.2024 · 177 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities19.04.2024 · 89 729 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities19.04.2024 · 215 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities19.04.2024 · 32 472 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities19.04.2024 · 1 755 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities19.04.2024 · 690 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities19.04.2024 · 416 завантаження
missing texture texture if the texture wasn't found instead of not applyingifb() randomb() catch() animation functionsifb() is a boolean returning version of if() randomb() is a boolean returning version of random()catch(x, c, id) is a new debug function that will always return x unless it had an error in which case it will return c. id is optional and will make the function print the reason c was returned to the log with this id to identify the printoutis_jumping is_swimming is_gliding is_right_handed animation variablesmodelRule modelSuffix var varb global_var global_varb random propertiesadded a model display to the model list in the gui to see the model before exporting its .jem file
added attachment points
OptiFine 1.20.4_HD_U_I8_pre3distance is_blocking is_crawling height_above_ground fluid_depth fluid_depth_down fluid_depth_upcannot inherit from final class forge crash returning in v1.3.jem failed to load java.lang.NullPointerException: Cannot read the array length because "textureSize" is nullsizeAdd to the emf model exportingsizeAddX sizeAddY sizeAddZ, as opposed to just sizeAdd with OptiFine, for per axis model inflation. sizeAdd will still work as before, though will be overridden if the others are present.breeze, breeze_eyes, breeze_wind, wind_chargeassets/minecraft/optifine/cem/modded/<namespace>/<modelname>.jem to assets/<namespace>/optifine/cem/<modelname>.jememf/cem/ directory is also valid in these namespaces as well as the ability to put the <modelname>.jem file within a folder of the same name, such as cem/<modelname>/<modelname>.jem!between(....)0 when applied to a model part or variable (OptiFine parity)Animation math details which lists and explains all functions and variables registered to the animation math systemAll models which allows applying certain settings per .jem file as well as selectively disable the loading of certain modelsperformance settingsper entity settings category to allows applying certain settings to only those entities04.03.2024 · 304 018 завантаження
EMFAnimationApi which allows other mods to register their own custom animation variables and functions to EMFEMFAnimationApi FloatSupplier for simple number variables BooleanSupplier for simple boolean variablesEMFAnimationApiFunction<Float, Float> for simple functions witn 1 argumentBiFunction<Float, Float, Float> for simple functions with 2 argumentsTriFunction<Float, Float, Float, Float> for simple functions with 3 argumentsFunction<List<Float>, Float> for functions with a variable amount of arguments provided via a Listunknown model printing option to Model exporting and added options to export all models info to a .jem file or the log, not just the unknown / modded onesBlockbench ready with correct pivots, boxes, and uvs..minecraft/emf/export/is_on_head, is_in_hand & is_in_item_frame, which did nothing before"newstate" is null crashAnimation LOD distance setting which allows you to set the distance at which EMF will start skipping animation frames to save performanceRetain LOD at low fps setting which will proportionally reduce the impact of the above LOD setting while the game is running at below 60 fps, as skipped frames can become more noticeable at lower fpswolf_armor to the OptiFine name mappings[EMF]Wireframe over texture which renders both the wireframe and texture of a model together at the same timeWireframe flashing over texture which renders both the wireframe and texture of a model together at the same time but the wireframe fades in and out./, ~/ etcenhanced block entity (EBE) mod's config to disable it for block entities that have custom EMF models loadedleft_ear & right_ear to head_piglin.jem which seems to be correct but missing in OptiFine's documentation :/wrapdeg() wraprad() degdiff() raddiff()wrap functions will wrap a rotation value down to it's smallest identical value, e.g. wrapdeg(370) will return 10 & wrapdeg(350) will return -10diff functions will return the resulting difference between two rotation values factoring in the rotation, e.g. degdiff(10, 350) will return -20 & degdiff(10, 370) will return 0 catmullrom() quadbezier() cubicbezier() hermite() easeinoutexpo() easeinexpo() easeoutexpo() easeinoutcirc() easeincirc() easeoutcirc() easeinoutelastic() easeinelastic() easeoutelastic() easeinoutback() easeinback() easeoutback() easeinoutbounce() easeinbounce() easeoutbounce() easeinquad() easeoutquad() easeinoutquad() easeincubic() easeoutcubic() easeinoutcubic() easeinquart() easeoutquart() easeinoutquart() easeinquint() easeoutquint() easeinoutquint() easeinsine() easeoutsine() easeinoutsine()lerp() with the delta value being the first argument.e variable addedlootr mod's chest now tries to read modded/lootr/special_loot_chest.jem instead of conflicting with chest.jem)04.03.2024 · 44 458 завантаження
EMFAnimationApi which allows other mods to register their own custom animation variables and functions to EMFEMFAnimationApi FloatSupplier for simple number variables BooleanSupplier for simple boolean variablesEMFAnimationApiFunction<Float, Float> for simple functions witn 1 argumentBiFunction<Float, Float, Float> for simple functions with 2 argumentsTriFunction<Float, Float, Float, Float> for simple functions with 3 argumentsFunction<List<Float>, Float> for functions with a variable amount of arguments provided via a Listunknown model printing option to Model exporting and added options to export all models info to a .jem file or the log, not just the unknown / modded onesBlockbench ready with correct pivots, boxes, and uvs..minecraft/emf/export/is_on_head, is_in_hand & is_in_item_frame, which did nothing before"newstate" is null crashAnimation LOD distance setting which allows you to set the distance at which EMF will start skipping animation frames to save performanceRetain LOD at low fps setting which will proportionally reduce the impact of the above LOD setting while the game is running at below 60 fps, as skipped frames can become more noticeable at lower fpswolf_armor to the OptiFine name mappings[EMF]Wireframe over texture which renders both the wireframe and texture of a model together at the same timeWireframe flashing over texture which renders both the wireframe and texture of a model together at the same time but the wireframe fades in and out./, ~/ etcenhanced block entity (EBE) mod's config to disable it for block entities that have custom EMF models loadedleft_ear & right_ear to head_piglin.jem which seems to be correct but missing in OptiFine's documentation :/wrapdeg() wraprad() degdiff() raddiff()wrap functions will wrap a rotation value down to it's smallest identical value, e.g. wrapdeg(370) will return 10 & wrapdeg(350) will return -10diff functions will return the resulting difference between two rotation values factoring in the rotation, e.g. degdiff(10, 350) will return -20 & degdiff(10, 370) will return 0 catmullrom() quadbezier() cubicbezier() hermite() easeinoutexpo() easeinexpo() easeoutexpo() easeinoutcirc() easeincirc() easeoutcirc() easeinoutelastic() easeinelastic() easeoutelastic() easeinoutback() easeinback() easeoutback() easeinoutbounce() easeinbounce() easeoutbounce() easeinquad() easeoutquad() easeinoutquad() easeincubic() easeoutcubic() easeinoutcubic() easeinquart() easeoutquart() easeinoutquart() easeinquint() easeoutquint() easeinoutquint() easeinsine() easeoutsine() easeinoutsine()lerp() with the delta value being the first argument.e variable addedlootr mod's chest now tries to read modded/lootr/special_loot_chest.jem instead of conflicting with chest.jem)04.03.2024 · 491 383 завантаження
EMFAnimationApi which allows other mods to register their own custom animation variables and functions to EMFEMFAnimationApi FloatSupplier for simple number variables BooleanSupplier for simple boolean variablesEMFAnimationApiFunction<Float, Float> for simple functions witn 1 argumentBiFunction<Float, Float, Float> for simple functions with 2 argumentsTriFunction<Float, Float, Float, Float> for simple functions with 3 argumentsFunction<List<Float>, Float> for functions with a variable amount of arguments provided via a Listunknown model printing option to Model exporting and added options to export all models info to a .jem file or the log, not just the unknown / modded onesBlockbench ready with correct pivots, boxes, and uvs..minecraft/emf/export/is_on_head, is_in_hand & is_in_item_frame, which did nothing before"newstate" is null crashAnimation LOD distance setting which allows you to set the distance at which EMF will start skipping animation frames to save performanceRetain LOD at low fps setting which will proportionally reduce the impact of the above LOD setting while the game is running at below 60 fps, as skipped frames can become more noticeable at lower fpswolf_armor to the OptiFine name mappings[EMF]Wireframe over texture which renders both the wireframe and texture of a model together at the same timeWireframe flashing over texture which renders both the wireframe and texture of a model together at the same time but the wireframe fades in and out./, ~/ etcenhanced block entity (EBE) mod's config to disable it for block entities that have custom EMF models loadedleft_ear & right_ear to head_piglin.jem which seems to be correct but missing in OptiFine's documentation :/wrapdeg() wraprad() degdiff() raddiff()wrap functions will wrap a rotation value down to it's smallest identical value, e.g. wrapdeg(370) will return 10 & wrapdeg(350) will return -10diff functions will return the resulting difference between two rotation values factoring in the rotation, e.g. degdiff(10, 350) will return -20 & degdiff(10, 370) will return 0 catmullrom() quadbezier() cubicbezier() hermite() easeinoutexpo() easeinexpo() easeoutexpo() easeinoutcirc() easeincirc() easeoutcirc() easeinoutelastic() easeinelastic() easeoutelastic() easeinoutback() easeinback() easeoutback() easeinoutbounce() easeinbounce() easeoutbounce() easeinquad() easeoutquad() easeinoutquad() easeincubic() easeoutcubic() easeinoutcubic() easeinquart() easeoutquart() easeinoutquart() easeinquint() easeoutquint() easeinoutquint() easeinsine() easeoutsine() easeinoutsine()lerp() with the delta value being the first argument.e variable addedlootr mod's chest now tries to read modded/lootr/special_loot_chest.jem instead of conflicting with chest.jem)04.03.2024 · 6 246 завантаження
EMFAnimationApi which allows other mods to register their own custom animation variables and functions to EMFEMFAnimationApi FloatSupplier for simple number variables BooleanSupplier for simple boolean variablesEMFAnimationApiFunction<Float, Float> for simple functions witn 1 argumentBiFunction<Float, Float, Float> for simple functions with 2 argumentsTriFunction<Float, Float, Float, Float> for simple functions with 3 argumentsFunction<List<Float>, Float> for functions with a variable amount of arguments provided via a Listunknown model printing option to Model exporting and added options to export all models info to a .jem file or the log, not just the unknown / modded onesBlockbench ready with correct pivots, boxes, and uvs..minecraft/emf/export/is_on_head, is_in_hand & is_in_item_frame, which did nothing before"newstate" is null crashAnimation LOD distance setting which allows you to set the distance at which EMF will start skipping animation frames to save performanceRetain LOD at low fps setting which will proportionally reduce the impact of the above LOD setting while the game is running at below 60 fps, as skipped frames can become more noticeable at lower fpswolf_armor to the OptiFine name mappings[EMF]Wireframe over texture which renders both the wireframe and texture of a model together at the same timeWireframe flashing over texture which renders both the wireframe and texture of a model together at the same time but the wireframe fades in and out./, ~/ etcenhanced block entity (EBE) mod's config to disable it for block entities that have custom EMF models loadedleft_ear & right_ear to head_piglin.jem which seems to be correct but missing in OptiFine's documentation :/wrapdeg() wraprad() degdiff() raddiff()wrap functions will wrap a rotation value down to it's smallest identical value, e.g. wrapdeg(370) will return 10 & wrapdeg(350) will return -10diff functions will return the resulting difference between two rotation values factoring in the rotation, e.g. degdiff(10, 350) will return -20 & degdiff(10, 370) will return 0 catmullrom() quadbezier() cubicbezier() hermite() easeinoutexpo() easeinexpo() easeoutexpo() easeinoutcirc() easeincirc() easeoutcirc() easeinoutelastic() easeinelastic() easeoutelastic() easeinoutback() easeinback() easeoutback() easeinoutbounce() easeinbounce() easeoutbounce() easeinquad() easeoutquad() easeinoutquad() easeincubic() easeoutcubic() easeinoutcubic() easeinquart() easeoutquart() easeinoutquart() easeinquint() easeoutquint() easeinoutquint() easeinsine() easeoutsine() easeinoutsine()lerp() with the delta value being the first argument.e variable addedlootr mod's chest now tries to read modded/lootr/special_loot_chest.jem instead of conflicting with chest.jem)04.03.2024 · 9 597 завантаження
EMFAnimationApi which allows other mods to register their own custom animation variables and functions to EMFEMFAnimationApi FloatSupplier for simple number variables BooleanSupplier for simple boolean variablesEMFAnimationApiFunction<Float, Float> for simple functions witn 1 argumentBiFunction<Float, Float, Float> for simple functions with 2 argumentsTriFunction<Float, Float, Float, Float> for simple functions with 3 argumentsFunction<List<Float>, Float> for functions with a variable amount of arguments provided via a Listunknown model printing option to Model exporting and added options to export all models info to a .jem file or the log, not just the unknown / modded onesBlockbench ready with correct pivots, boxes, and uvs..minecraft/emf/export/is_on_head, is_in_hand & is_in_item_frame, which did nothing before"newstate" is null crashAnimation LOD distance setting which allows you to set the distance at which EMF will start skipping animation frames to save performanceRetain LOD at low fps setting which will proportionally reduce the impact of the above LOD setting while the game is running at below 60 fps, as skipped frames can become more noticeable at lower fpswolf_armor to the OptiFine name mappings[EMF]Wireframe over texture which renders both the wireframe and texture of a model together at the same timeWireframe flashing over texture which renders both the wireframe and texture of a model together at the same time but the wireframe fades in and out./, ~/ etcenhanced block entity (EBE) mod's config to disable it for block entities that have custom EMF models loadedleft_ear & right_ear to head_piglin.jem which seems to be correct but missing in OptiFine's documentation :/wrapdeg() wraprad() degdiff() raddiff()wrap functions will wrap a rotation value down to it's smallest identical value, e.g. wrapdeg(370) will return 10 & wrapdeg(350) will return -10diff functions will return the resulting difference between two rotation values factoring in the rotation, e.g. degdiff(10, 350) will return -20 & degdiff(10, 370) will return 0 catmullrom() quadbezier() cubicbezier() hermite() easeinoutexpo() easeinexpo() easeoutexpo() easeinoutcirc() easeincirc() easeoutcirc() easeinoutelastic() easeinelastic() easeoutelastic() easeinoutback() easeinback() easeoutback() easeinoutbounce() easeinbounce() easeoutbounce() easeinquad() easeoutquad() easeinoutquad() easeincubic() easeoutcubic() easeinoutcubic() easeinquart() easeoutquart() easeinoutquart() easeinquint() easeoutquint() easeinoutquint() easeinsine() easeoutsine() easeinoutsine()lerp() with the delta value being the first argument.e variable addedlootr mod's chest now tries to read modded/lootr/special_loot_chest.jem instead of conflicting with chest.jem)04.03.2024 · 5 279 завантаження
EMFAnimationApi which allows other mods to register their own custom animation variables and functions to EMFEMFAnimationApi FloatSupplier for simple number variables BooleanSupplier for simple boolean variablesEMFAnimationApiFunction<Float, Float> for simple functions witn 1 argumentBiFunction<Float, Float, Float> for simple functions with 2 argumentsTriFunction<Float, Float, Float, Float> for simple functions with 3 argumentsFunction<List<Float>, Float> for functions with a variable amount of arguments provided via a Listunknown model printing option to Model exporting and added options to export all models info to a .jem file or the log, not just the unknown / modded onesBlockbench ready with correct pivots, boxes, and uvs..minecraft/emf/export/is_on_head, is_in_hand & is_in_item_frame, which did nothing before"newstate" is null crashAnimation LOD distance setting which allows you to set the distance at which EMF will start skipping animation frames to save performanceRetain LOD at low fps setting which will proportionally reduce the impact of the above LOD setting while the game is running at below 60 fps, as skipped frames can become more noticeable at lower fpswolf_armor to the OptiFine name mappings[EMF]Wireframe over texture which renders both the wireframe and texture of a model together at the same timeWireframe flashing over texture which renders both the wireframe and texture of a model together at the same time but the wireframe fades in and out./, ~/ etcenhanced block entity (EBE) mod's config to disable it for block entities that have custom EMF models loadedleft_ear & right_ear to head_piglin.jem which seems to be correct but missing in OptiFine's documentation :/wrapdeg() wraprad() degdiff() raddiff()wrap functions will wrap a rotation value down to it's smallest identical value, e.g. wrapdeg(370) will return 10 & wrapdeg(350) will return -10diff functions will return the resulting difference between two rotation values factoring in the rotation, e.g. degdiff(10, 350) will return -20 & degdiff(10, 370) will return 0 catmullrom() quadbezier() cubicbezier() hermite() easeinoutexpo() easeinexpo() easeoutexpo() easeinoutcirc() easeincirc() easeoutcirc() easeinoutelastic() easeinelastic() easeoutelastic() easeinoutback() easeinback() easeoutback() easeinoutbounce() easeinbounce() easeoutbounce() easeinquad() easeoutquad() easeinoutquad() easeincubic() easeoutcubic() easeinoutcubic() easeinquart() easeoutquart() easeinoutquart() easeinquint() easeoutquint() easeinoutquint() easeinsine() easeoutsine() easeinoutsine()lerp() with the delta value being the first argument.e variable addedlootr mod's chest now tries to read modded/lootr/special_loot_chest.jem instead of conflicting with chest.jem)04.03.2024 · 1 627 завантаження
EMFAnimationApi which allows other mods to register their own custom animation variables and functions to EMFEMFAnimationApi FloatSupplier for simple number variables BooleanSupplier for simple boolean variablesEMFAnimationApiFunction<Float, Float> for simple functions witn 1 argumentBiFunction<Float, Float, Float> for simple functions with 2 argumentsTriFunction<Float, Float, Float, Float> for simple functions with 3 argumentsFunction<List<Float>, Float> for functions with a variable amount of arguments provided via a Listunknown model printing option to Model exporting and added options to export all models info to a .jem file or the log, not just the unknown / modded onesBlockbench ready with correct pivots, boxes, and uvs..minecraft/emf/export/is_on_head, is_in_hand & is_in_item_frame, which did nothing before"newstate" is null crashAnimation LOD distance setting which allows you to set the distance at which EMF will start skipping animation frames to save performanceRetain LOD at low fps setting which will proportionally reduce the impact of the above LOD setting while the game is running at below 60 fps, as skipped frames can become more noticeable at lower fpswolf_armor to the OptiFine name mappings[EMF]Wireframe over texture which renders both the wireframe and texture of a model together at the same timeWireframe flashing over texture which renders both the wireframe and texture of a model together at the same time but the wireframe fades in and out./, ~/ etcenhanced block entity (EBE) mod's config to disable it for block entities that have custom EMF models loadedleft_ear & right_ear to head_piglin.jem which seems to be correct but missing in OptiFine's documentation :/wrapdeg() wraprad() degdiff() raddiff()wrap functions will wrap a rotation value down to it's smallest identical value, e.g. wrapdeg(370) will return 10 & wrapdeg(350) will return -10diff functions will return the resulting difference between two rotation values factoring in the rotation, e.g. degdiff(10, 350) will return -20 & degdiff(10, 370) will return 0 catmullrom() quadbezier() cubicbezier() hermite() easeinoutexpo() easeinexpo() easeoutexpo() easeinoutcirc() easeincirc() easeoutcirc() easeinoutelastic() easeinelastic() easeoutelastic() easeinoutback() easeinback() easeoutback() easeinoutbounce() easeinbounce() easeoutbounce() easeinquad() easeoutquad() easeinoutquad() easeincubic() easeoutcubic() easeinoutcubic() easeinquart() easeoutquart() easeinoutquart() easeinquint() easeoutquint() easeinoutquint() easeinsine() easeoutsine() easeinoutsine()lerp() with the delta value being the first argument.e variable addedlootr mod's chest now tries to read modded/lootr/special_loot_chest.jem instead of conflicting with chest.jem)04.03.2024 · 458 завантаження
EMFAnimationApi which allows other mods to register their own custom animation variables and functions to EMFEMFAnimationApi FloatSupplier for simple number variables BooleanSupplier for simple boolean variablesEMFAnimationApiFunction<Float, Float> for simple functions witn 1 argumentBiFunction<Float, Float, Float> for simple functions with 2 argumentsTriFunction<Float, Float, Float, Float> for simple functions with 3 argumentsFunction<List<Float>, Float> for functions with a variable amount of arguments provided via a Listunknown model printing option to Model exporting and added options to export all models info to a .jem file or the log, not just the unknown / modded onesBlockbench ready with correct pivots, boxes, and uvs..minecraft/emf/export/is_on_head, is_in_hand & is_in_item_frame, which did nothing before"newstate" is null crashAnimation LOD distance setting which allows you to set the distance at which EMF will start skipping animation frames to save performanceRetain LOD at low fps setting which will proportionally reduce the impact of the above LOD setting while the game is running at below 60 fps, as skipped frames can become more noticeable at lower fpswolf_armor to the OptiFine name mappings[EMF]Wireframe over texture which renders both the wireframe and texture of a model together at the same timeWireframe flashing over texture which renders both the wireframe and texture of a model together at the same time but the wireframe fades in and out./, ~/ etcenhanced block entity (EBE) mod's config to disable it for block entities that have custom EMF models loadedleft_ear & right_ear to head_piglin.jem which seems to be correct but missing in OptiFine's documentation :/wrapdeg() wraprad() degdiff() raddiff()wrap functions will wrap a rotation value down to it's smallest identical value, e.g. wrapdeg(370) will return 10 & wrapdeg(350) will return -10diff functions will return the resulting difference between two rotation values factoring in the rotation, e.g. degdiff(10, 350) will return -20 & degdiff(10, 370) will return 0 catmullrom() quadbezier() cubicbezier() hermite() easeinoutexpo() easeinexpo() easeoutexpo() easeinoutcirc() easeincirc() easeoutcirc() easeinoutelastic() easeinelastic() easeoutelastic() easeinoutback() easeinback() easeoutback() easeinoutbounce() easeinbounce() easeoutbounce() easeinquad() easeoutquad() easeinoutquad() easeincubic() easeoutcubic() easeinoutcubic() easeinquart() easeoutquart() easeinoutquart() easeinquint() easeoutquint() easeinoutquint() easeinsine() easeoutsine() easeinoutsine()lerp() with the delta value being the first argument.e variable addedlootr mod's chest now tries to read modded/lootr/special_loot_chest.jem instead of conflicting with chest.jem)04.03.2024 · 139 767 завантаження
EMFAnimationApi which allows other mods to register their own custom animation variables and functions to EMFEMFAnimationApi FloatSupplier for simple number variables BooleanSupplier for simple boolean variablesEMFAnimationApiFunction<Float, Float> for simple functions witn 1 argumentBiFunction<Float, Float, Float> for simple functions with 2 argumentsTriFunction<Float, Float, Float, Float> for simple functions with 3 argumentsFunction<List<Float>, Float> for functions with a variable amount of arguments provided via a Listunknown model printing option to Model exporting and added options to export all models info to a .jem file or the log, not just the unknown / modded onesBlockbench ready with correct pivots, boxes, and uvs..minecraft/emf/export/is_on_head, is_in_hand & is_in_item_frame, which did nothing before"newstate" is null crashAnimation LOD distance setting which allows you to set the distance at which EMF will start skipping animation frames to save performanceRetain LOD at low fps setting which will proportionally reduce the impact of the above LOD setting while the game is running at below 60 fps, as skipped frames can become more noticeable at lower fpswolf_armor to the OptiFine name mappings[EMF]Wireframe over texture which renders both the wireframe and texture of a model together at the same timeWireframe flashing over texture which renders both the wireframe and texture of a model together at the same time but the wireframe fades in and out./, ~/ etcenhanced block entity (EBE) mod's config to disable it for block entities that have custom EMF models loadedleft_ear & right_ear to head_piglin.jem which seems to be correct but missing in OptiFine's documentation :/wrapdeg() wraprad() degdiff() raddiff()wrap functions will wrap a rotation value down to it's smallest identical value, e.g. wrapdeg(370) will return 10 & wrapdeg(350) will return -10diff functions will return the resulting difference between two rotation values factoring in the rotation, e.g. degdiff(10, 350) will return -20 & degdiff(10, 370) will return 0 catmullrom() quadbezier() cubicbezier() hermite() easeinoutexpo() easeinexpo() easeoutexpo() easeinoutcirc() easeincirc() easeoutcirc() easeinoutelastic() easeinelastic() easeoutelastic() easeinoutback() easeinback() easeoutback() easeinoutbounce() easeinbounce() easeoutbounce() easeinquad() easeoutquad() easeinoutquad() easeincubic() easeoutcubic() easeinoutcubic() easeinquart() easeoutquart() easeinoutquart() easeinquint() easeoutquint() easeinoutquint() easeinsine() easeoutsine() easeinoutsine()lerp() with the delta value being the first argument.e variable addedlootr mod's chest now tries to read modded/lootr/special_loot_chest.jem instead of conflicting with chest.jem)04.03.2024 · 5 479 завантаження
EMFAnimationApi which allows other mods to register their own custom animation variables and functions to EMFEMFAnimationApi FloatSupplier for simple number variables BooleanSupplier for simple boolean variablesEMFAnimationApiFunction<Float, Float> for simple functions witn 1 argumentBiFunction<Float, Float, Float> for simple functions with 2 argumentsTriFunction<Float, Float, Float, Float> for simple functions with 3 argumentsFunction<List<Float>, Float> for functions with a variable amount of arguments provided via a Listunknown model printing option to Model exporting and added options to export all models info to a .jem file or the log, not just the unknown / modded onesBlockbench ready with correct pivots, boxes, and uvs..minecraft/emf/export/is_on_head, is_in_hand & is_in_item_frame, which did nothing before"newstate" is null crashAnimation LOD distance setting which allows you to set the distance at which EMF will start skipping animation frames to save performanceRetain LOD at low fps setting which will proportionally reduce the impact of the above LOD setting while the game is running at below 60 fps, as skipped frames can become more noticeable at lower fpswolf_armor to the OptiFine name mappings[EMF]Wireframe over texture which renders both the wireframe and texture of a model together at the same timeWireframe flashing over texture which renders both the wireframe and texture of a model together at the same time but the wireframe fades in and out./, ~/ etcenhanced block entity (EBE) mod's config to disable it for block entities that have custom EMF models loadedleft_ear & right_ear to head_piglin.jem which seems to be correct but missing in OptiFine's documentation :/wrapdeg() wraprad() degdiff() raddiff()wrap functions will wrap a rotation value down to it's smallest identical value, e.g. wrapdeg(370) will return 10 & wrapdeg(350) will return -10diff functions will return the resulting difference between two rotation values factoring in the rotation, e.g. degdiff(10, 350) will return -20 & degdiff(10, 370) will return 0 catmullrom() quadbezier() cubicbezier() hermite() easeinoutexpo() easeinexpo() easeoutexpo() easeinoutcirc() easeincirc() easeoutcirc() easeinoutelastic() easeinelastic() easeoutelastic() easeinoutback() easeinback() easeoutback() easeinoutbounce() easeinbounce() easeoutbounce() easeinquad() easeoutquad() easeinoutquad() easeincubic() easeoutcubic() easeinoutcubic() easeinquart() easeoutquart() easeinoutquart() easeinquint() easeoutquint() easeinoutquint() easeinsine() easeoutsine() easeinoutsine()lerp() with the delta value being the first argument.e variable addedlootr mod's chest now tries to read modded/lootr/special_loot_chest.jem instead of conflicting with chest.jem)04.03.2024 · 126 500 завантаження
EMFAnimationApi which allows other mods to register their own custom animation variables and functions to EMFEMFAnimationApi FloatSupplier for simple number variables BooleanSupplier for simple boolean variablesEMFAnimationApiFunction<Float, Float> for simple functions witn 1 argumentBiFunction<Float, Float, Float> for simple functions with 2 argumentsTriFunction<Float, Float, Float, Float> for simple functions with 3 argumentsFunction<List<Float>, Float> for functions with a variable amount of arguments provided via a Listunknown model printing option to Model exporting and added options to export all models info to a .jem file or the log, not just the unknown / modded onesBlockbench ready with correct pivots, boxes, and uvs..minecraft/emf/export/is_on_head, is_in_hand & is_in_item_frame, which did nothing before"newstate" is null crashAnimation LOD distance setting which allows you to set the distance at which EMF will start skipping animation frames to save performanceRetain LOD at low fps setting which will proportionally reduce the impact of the above LOD setting while the game is running at below 60 fps, as skipped frames can become more noticeable at lower fpswolf_armor to the OptiFine name mappings[EMF]Wireframe over texture which renders both the wireframe and texture of a model together at the same timeWireframe flashing over texture which renders both the wireframe and texture of a model together at the same time but the wireframe fades in and out./, ~/ etcenhanced block entity (EBE) mod's config to disable it for block entities that have custom EMF models loadedleft_ear & right_ear to head_piglin.jem which seems to be correct but missing in OptiFine's documentation :/wrapdeg() wraprad() degdiff() raddiff()wrap functions will wrap a rotation value down to it's smallest identical value, e.g. wrapdeg(370) will return 10 & wrapdeg(350) will return -10diff functions will return the resulting difference between two rotation values factoring in the rotation, e.g. degdiff(10, 350) will return -20 & degdiff(10, 370) will return 0 catmullrom() quadbezier() cubicbezier() hermite() easeinoutexpo() easeinexpo() easeoutexpo() easeinoutcirc() easeincirc() easeoutcirc() easeinoutelastic() easeinelastic() easeoutelastic() easeinoutback() easeinback() easeoutback() easeinoutbounce() easeinbounce() easeoutbounce() easeinquad() easeoutquad() easeinoutquad() easeincubic() easeoutcubic() easeinoutcubic() easeinquart() easeoutquart() easeinoutquart() easeinquint() easeoutquint() easeinoutquint() easeinsine() easeoutsine() easeinoutsine()lerp() with the delta value being the first argument.e variable addedlootr mod's chest now tries to read modded/lootr/special_loot_chest.jem instead of conflicting with chest.jem)04.03.2024 · 11 831 завантаження
EMFAnimationApi which allows other mods to register their own custom animation variables and functions to EMFEMFAnimationApi FloatSupplier for simple number variables BooleanSupplier for simple boolean variablesEMFAnimationApiFunction<Float, Float> for simple functions witn 1 argumentBiFunction<Float, Float, Float> for simple functions with 2 argumentsTriFunction<Float, Float, Float, Float> for simple functions with 3 argumentsFunction<List<Float>, Float> for functions with a variable amount of arguments provided via a Listunknown model printing option to Model exporting and added options to export all models info to a .jem file or the log, not just the unknown / modded onesBlockbench ready with correct pivots, boxes, and uvs..minecraft/emf/export/is_on_head, is_in_hand & is_in_item_frame, which did nothing before"newstate" is null crashAnimation LOD distance setting which allows you to set the distance at which EMF will start skipping animation frames to save performanceRetain LOD at low fps setting which will proportionally reduce the impact of the above LOD setting while the game is running at below 60 fps, as skipped frames can become more noticeable at lower fpswolf_armor to the OptiFine name mappings[EMF]Wireframe over texture which renders both the wireframe and texture of a model together at the same timeWireframe flashing over texture which renders both the wireframe and texture of a model together at the same time but the wireframe fades in and out./, ~/ etcenhanced block entity (EBE) mod's config to disable it for block entities that have custom EMF models loadedleft_ear & right_ear to head_piglin.jem which seems to be correct but missing in OptiFine's documentation :/wrapdeg() wraprad() degdiff() raddiff()wrap functions will wrap a rotation value down to it's smallest identical value, e.g. wrapdeg(370) will return 10 & wrapdeg(350) will return -10diff functions will return the resulting difference between two rotation values factoring in the rotation, e.g. degdiff(10, 350) will return -20 & degdiff(10, 370) will return 0 catmullrom() quadbezier() cubicbezier() hermite() easeinoutexpo() easeinexpo() easeoutexpo() easeinoutcirc() easeincirc() easeoutcirc() easeinoutelastic() easeinelastic() easeoutelastic() easeinoutback() easeinback() easeoutback() easeinoutbounce() easeinbounce() easeoutbounce() easeinquad() easeoutquad() easeinoutquad() easeincubic() easeoutcubic() easeinoutcubic() easeinquart() easeoutquart() easeinoutquart() easeinquint() easeoutquint() easeinoutquint() easeinsine() easeoutsine() easeinoutsine()lerp() with the delta value being the first argument.e variable addedlootr mod's chest now tries to read modded/lootr/special_loot_chest.jem instead of conflicting with chest.jem)04.03.2024 · 2 810 завантаження
EMFAnimationApi which allows other mods to register their own custom animation variables and functions to EMFEMFAnimationApi FloatSupplier for simple number variables BooleanSupplier for simple boolean variablesEMFAnimationApiFunction<Float, Float> for simple functions witn 1 argumentBiFunction<Float, Float, Float> for simple functions with 2 argumentsTriFunction<Float, Float, Float, Float> for simple functions with 3 argumentsFunction<List<Float>, Float> for functions with a variable amount of arguments provided via a Listunknown model printing option to Model exporting and added options to export all models info to a .jem file or the log, not just the unknown / modded onesBlockbench ready with correct pivots, boxes, and uvs..minecraft/emf/export/is_on_head, is_in_hand & is_in_item_frame, which did nothing before"newstate" is null crashAnimation LOD distance setting which allows you to set the distance at which EMF will start skipping animation frames to save performanceRetain LOD at low fps setting which will proportionally reduce the impact of the above LOD setting while the game is running at below 60 fps, as skipped frames can become more noticeable at lower fpswolf_armor to the OptiFine name mappings[EMF]Wireframe over texture which renders both the wireframe and texture of a model together at the same timeWireframe flashing over texture which renders both the wireframe and texture of a model together at the same time but the wireframe fades in and out./, ~/ etcenhanced block entity (EBE) mod's config to disable it for block entities that have custom EMF models loadedleft_ear & right_ear to head_piglin.jem which seems to be correct but missing in OptiFine's documentation :/wrapdeg() wraprad() degdiff() raddiff()wrap functions will wrap a rotation value down to it's smallest identical value, e.g. wrapdeg(370) will return 10 & wrapdeg(350) will return -10diff functions will return the resulting difference between two rotation values factoring in the rotation, e.g. degdiff(10, 350) will return -20 & degdiff(10, 370) will return 0 catmullrom() quadbezier() cubicbezier() hermite() easeinoutexpo() easeinexpo() easeoutexpo() easeinoutcirc() easeincirc() easeoutcirc() easeinoutelastic() easeinelastic() easeoutelastic() easeinoutback() easeinback() easeoutback() easeinoutbounce() easeinbounce() easeoutbounce() easeinquad() easeoutquad() easeinoutquad() easeincubic() easeoutcubic() easeinoutcubic() easeinquart() easeoutquart() easeinoutquart() easeinquint() easeoutquint() easeinoutquint() easeinsine() easeoutsine() easeinoutsine()lerp() with the delta value being the first argument.e variable addedlootr mod's chest now tries to read modded/lootr/special_loot_chest.jem instead of conflicting with chest.jem)04.03.2024 · 967 завантаження
EMFAnimationApi which allows other mods to register their own custom animation variables and functions to EMFEMFAnimationApi FloatSupplier for simple number variables BooleanSupplier for simple boolean variablesEMFAnimationApiFunction<Float, Float> for simple functions witn 1 argumentBiFunction<Float, Float, Float> for simple functions with 2 argumentsTriFunction<Float, Float, Float, Float> for simple functions with 3 argumentsFunction<List<Float>, Float> for functions with a variable amount of arguments provided via a Listunknown model printing option to Model exporting and added options to export all models info to a .jem file or the log, not just the unknown / modded onesBlockbench ready with correct pivots, boxes, and uvs..minecraft/emf/export/is_on_head, is_in_hand & is_in_item_frame, which did nothing before"newstate" is null crashAnimation LOD distance setting which allows you to set the distance at which EMF will start skipping animation frames to save performanceRetain LOD at low fps setting which will proportionally reduce the impact of the above LOD setting while the game is running at below 60 fps, as skipped frames can become more noticeable at lower fpswolf_armor to the OptiFine name mappings[EMF]Wireframe over texture which renders both the wireframe and texture of a model together at the same timeWireframe flashing over texture which renders both the wireframe and texture of a model together at the same time but the wireframe fades in and out./, ~/ etcenhanced block entity (EBE) mod's config to disable it for block entities that have custom EMF models loadedleft_ear & right_ear to head_piglin.jem which seems to be correct but missing in OptiFine's documentation :/wrapdeg() wraprad() degdiff() raddiff()wrap functions will wrap a rotation value down to it's smallest identical value, e.g. wrapdeg(370) will return 10 & wrapdeg(350) will return -10diff functions will return the resulting difference between two rotation values factoring in the rotation, e.g. degdiff(10, 350) will return -20 & degdiff(10, 370) will return 0 catmullrom() quadbezier() cubicbezier() hermite() easeinoutexpo() easeinexpo() easeoutexpo() easeinoutcirc() easeincirc() easeoutcirc() easeinoutelastic() easeinelastic() easeoutelastic() easeinoutback() easeinback() easeoutback() easeinoutbounce() easeinbounce() easeoutbounce() easeinquad() easeoutquad() easeinoutquad() easeincubic() easeoutcubic() easeinoutcubic() easeinquart() easeoutquart() easeinoutquart() easeinquint() easeoutquint() easeinoutquint() easeinsine() easeoutsine() easeinoutsine()lerp() with the delta value being the first argument.e variable addedlootr mod's chest now tries to read modded/lootr/special_loot_chest.jem instead of conflicting with chest.jem)17.01.2024 · 175 812 завантаження
1.2.3
easein,easeout,easeinout,cubiceasein,cubiceaseout,cubiceaseinout. They function identically to lerp however offer different interpolation behavioursshadow_size in model.jem files should now applylayer is nullcannot inherit from final class crash caused by completely unrelated forge mods missing their dependencies.feet part of the new bat model to the optifine name mappings (might revert if optifine doesn't do this too)mob2.jem from loading correctly without a mob.jem (fixes reimagined's boats textures)17.01.2024 · 35 106 завантаження
1.2.3
easein,easeout,easeinout,cubiceasein,cubiceaseout,cubiceaseinout. They function identically to lerp however offer different interpolation behavioursshadow_size in model.jem files should now applylayer is nullcannot inherit from final class crash caused by completely unrelated forge mods missing their dependencies.feet part of the new bat model to the optifine name mappings (might revert if optifine doesn't do this too)mob2.jem from loading correctly without a mob.jem (fixes reimagined's boats textures)17.01.2024 · 389 799 завантаження
1.2.3
easein,easeout,easeinout,cubiceasein,cubiceaseout,cubiceaseinout. They function identically to lerp however offer different interpolation behavioursshadow_size in model.jem files should now applylayer is nullcannot inherit from final class crash caused by completely unrelated forge mods missing their dependencies.feet part of the new bat model to the optifine name mappings (might revert if optifine doesn't do this too)mob2.jem from loading correctly without a mob.jem (fixes reimagined's boats textures)17.01.2024 · 3 828 завантаження
1.2.3
easein,easeout,easeinout,cubiceasein,cubiceaseout,cubiceaseinout. They function identically to lerp however offer different interpolation behavioursshadow_size in model.jem files should now applylayer is nullcannot inherit from final class crash caused by completely unrelated forge mods missing their dependencies.feet part of the new bat model to the optifine name mappings (might revert if optifine doesn't do this too)mob2.jem from loading correctly without a mob.jem (fixes reimagined's boats textures)17.01.2024 · 50 571 завантаження
1.2.3
easein,easeout,easeinout,cubiceasein,cubiceaseout,cubiceaseinout. They function identically to lerp however offer different interpolation behavioursshadow_size in model.jem files should now applylayer is nullcannot inherit from final class crash caused by completely unrelated forge mods missing their dependencies.feet part of the new bat model to the optifine name mappings (might revert if optifine doesn't do this too)mob2.jem from loading correctly without a mob.jem (fixes reimagined's boats textures)17.01.2024 · 1 037 завантаження
1.2.3
easein,easeout,easeinout,cubiceasein,cubiceaseout,cubiceaseinout. They function identically to lerp however offer different interpolation behavioursshadow_size in model.jem files should now applylayer is nullcannot inherit from final class crash caused by completely unrelated forge mods missing their dependencies.feet part of the new bat model to the optifine name mappings (might revert if optifine doesn't do this too)mob2.jem from loading correctly without a mob.jem (fixes reimagined's boats textures)17.01.2024 · 1 067 завантаження
1.2.3
easein,easeout,easeinout,cubiceasein,cubiceaseout,cubiceaseinout. They function identically to lerp however offer different interpolation behavioursshadow_size in model.jem files should now applylayer is nullcannot inherit from final class crash caused by completely unrelated forge mods missing their dependencies.feet part of the new bat model to the optifine name mappings (might revert if optifine doesn't do this too)mob2.jem from loading correctly without a mob.jem (fixes reimagined's boats textures)17.01.2024 · 375 завантаження
1.2.3
easein,easeout,easeinout,cubiceasein,cubiceaseout,cubiceaseinout. They function identically to lerp however offer different interpolation behavioursshadow_size in model.jem files should now applylayer is nullcannot inherit from final class crash caused by completely unrelated forge mods missing their dependencies.feet part of the new bat model to the optifine name mappings (might revert if optifine doesn't do this too)mob2.jem from loading correctly without a mob.jem (fixes reimagined's boats textures)17.01.2024 · 96 381 завантаження
1.2.3
easein,easeout,easeinout,cubiceasein,cubiceaseout,cubiceaseinout. They function identically to lerp however offer different interpolation behavioursshadow_size in model.jem files should now applylayer is nullcannot inherit from final class crash caused by completely unrelated forge mods missing their dependencies.feet part of the new bat model to the optifine name mappings (might revert if optifine doesn't do this too)mob2.jem from loading correctly without a mob.jem (fixes reimagined's boats textures)17.01.2024 · 2 156 завантаження
1.2.3
easein,easeout,easeinout,cubiceasein,cubiceaseout,cubiceaseinout. They function identically to lerp however offer different interpolation behavioursshadow_size in model.jem files should now applylayer is nullcannot inherit from final class crash caused by completely unrelated forge mods missing their dependencies.feet part of the new bat model to the optifine name mappings (might revert if optifine doesn't do this too)mob2.jem from loading correctly without a mob.jem (fixes reimagined's boats textures)17.01.2024 · 244 078 завантаження
1.2.3
easein,easeout,easeinout,cubiceasein,cubiceaseout,cubiceaseinout. They function identically to lerp however offer different interpolation behavioursshadow_size in model.jem files should now applylayer is nullcannot inherit from final class crash caused by completely unrelated forge mods missing their dependencies.feet part of the new bat model to the optifine name mappings (might revert if optifine doesn't do this too)mob2.jem from loading correctly without a mob.jem (fixes reimagined's boats textures)17.01.2024 · 2 975 завантаження
1.2.3
easein,easeout,easeinout,cubiceasein,cubiceaseout,cubiceaseinout. They function identically to lerp however offer different interpolation behavioursshadow_size in model.jem files should now applylayer is nullcannot inherit from final class crash caused by completely unrelated forge mods missing their dependencies.feet part of the new bat model to the optifine name mappings (might revert if optifine doesn't do this too)mob2.jem from loading correctly without a mob.jem (fixes reimagined's boats textures)17.01.2024 · 1 201 завантаження
1.2.3
easein,easeout,easeinout,cubiceasein,cubiceaseout,cubiceaseinout. They function identically to lerp however offer different interpolation behavioursshadow_size in model.jem files should now applylayer is nullcannot inherit from final class crash caused by completely unrelated forge mods missing their dependencies.feet part of the new bat model to the optifine name mappings (might revert if optifine doesn't do this too)mob2.jem from loading correctly without a mob.jem (fixes reimagined's boats textures)17.01.2024 · 604 завантаження
1.2.3
easein,easeout,easeinout,cubiceasein,cubiceaseout,cubiceaseinout. They function identically to lerp however offer different interpolation behavioursshadow_size in model.jem files should now applylayer is nullcannot inherit from final class crash caused by completely unrelated forge mods missing their dependencies.feet part of the new bat model to the optifine name mappings (might revert if optifine doesn't do this too)mob2.jem from loading correctly without a mob.jem (fixes reimagined's boats textures)31.12.2023 · 21 285 завантаження
now works with and requires ETF 5.1+ including the same stability fixes
the in() animation method now allows 2 or more parameters, instead of the previous 3 or more (OptiFine parity)
31.12.2023 · 116 648 завантаження
now works with and requires ETF 5.1+ including the same stability fixes
the in() animation method now allows 2 or more parameters, instead of the previous 3 or more (OptiFine parity)
31.12.2023 · 16 739 завантаження
now works with and requires ETF 5.1+ including the same stability fixes
the in() animation method now allows 2 or more parameters, instead of the previous 3 or more (OptiFine parity)
31.12.2023 · 204 завантаження
now works with and requires ETF 5.1+ including the same stability fixes
the in() animation method now allows 2 or more parameters, instead of the previous 3 or more (OptiFine parity)
31.12.2023 · 114 завантаження
now works with and requires ETF 5.1+ including the same stability fixes
the in() animation method now allows 2 or more parameters, instead of the previous 3 or more (OptiFine parity)
29.12.2023 · 39 408 завантаження
in() animation method now allows 2 or more parameters, instead of the previous 3 or more (OptiFine parity)29.12.2023 · 365 завантаження
in() animation method now allows 2 or more parameters, instead of the previous 3 or more (OptiFine parity)29.12.2023 · 848 завантаження
in() animation method now allows 2 or more parameters, instead of the previous 3 or more (OptiFine parity)12.12.2023 · 69 851 завантаження
1.2 backport
07.12.2023 · 52 548 завантаження
added an EMF only random property to make model variation easier in cases that do not typically need properties in ETF.
e.g. you don't need a property to check a cat variant in ETF because you are already working with the black cat texture directly.
the property name is variant or variants.
The property allows regex, pattern, or a simple list of variant names.
If the property starts with "print:" it will print the variant found for the entity to the game log, and use the rest of the property text as normal.
This property will work with any modded entity that implements the VariantHolder class and will use the string representation of the type, e.g. "black" for a cat, "oak" for a boat.
This property also works uniquely with these block entities:
signs (wood), bed (color), shulkerbox (color), Decorated pot (all 4 sherd face types).
For all other regular & block entities it returns the EntityType or BlockEntityType registry id. This allows for the
separation of different entity types that might use the same model name, such as various modded entities do.
added NeoForge 1.20.2 support, all prior versions will not have separate jars for forge and neoforge.
07.12.2023 · 30 243 завантаження
added an EMF only random property to make model variation easier in cases that do not typically need properties in ETF.
e.g. you don't need a property to check a cat variant in ETF because you are already working with the black cat texture directly.
the property name is variant or variants.
The property allows regex, pattern, or a simple list of variant names.
If the property starts with "print:" it will print the variant found for the entity to the game log, and use the rest of the property text as normal.
This property will work with any modded entity that implements the VariantHolder class and will use the string representation of the type, e.g. "black" for a cat, "oak" for a boat.
This property also works uniquely with these block entities:
signs (wood), bed (color), shulkerbox (color), Decorated pot (all 4 sherd face types).
For all other regular & block entities it returns the EntityType or BlockEntityType registry id. This allows for the
separation of different entity types that might use the same model name, such as various modded entities do.
added NeoForge 1.20.2 support, all prior versions will not have separate jars for forge and neoforge.
07.12.2023 · 96 завантаження
added an EMF only random property to make model variation easier in cases that do not typically need properties in ETF.
e.g. you don't need a property to check a cat variant in ETF because you are already working with the black cat texture directly.
the property name is variant or variants.
The property allows regex, pattern, or a simple list of variant names.
If the property starts with "print:" it will print the variant found for the entity to the game log, and use the rest of the property text as normal.
This property will work with any modded entity that implements the VariantHolder class and will use the string representation of the type, e.g. "black" for a cat, "oak" for a boat.
This property also works uniquely with these block entities:
signs (wood), bed (color), shulkerbox (color), Decorated pot (all 4 sherd face types).
For all other regular & block entities it returns the EntityType or BlockEntityType registry id. This allows for the
separation of different entity types that might use the same model name, such as various modded entities do.
added NeoForge 1.20.2 support, all prior versions will not have separate jars for forge and neoforge.
07.12.2023 · 572 завантаження
added an EMF only random property to make model variation easier in cases that do not typically need properties in ETF.
e.g. you don't need a property to check a cat variant in ETF because you are already working with the black cat texture directly.
the property name is variant or variants.
The property allows regex, pattern, or a simple list of variant names.
If the property starts with "print:" it will print the variant found for the entity to the game log, and use the rest of the property text as normal.
This property will work with any modded entity that implements the VariantHolder class and will use the string representation of the type, e.g. "black" for a cat, "oak" for a boat.
This property also works uniquely with these block entities:
signs (wood), bed (color), shulkerbox (color), Decorated pot (all 4 sherd face types).
For all other regular & block entities it returns the EntityType or BlockEntityType registry id. This allows for the
separation of different entity types that might use the same model name, such as various modded entities do.
added NeoForge 1.20.2 support, all prior versions will not have separate jars for forge and neoforge.
06.12.2023 · 665 завантаження
1.20.3 EMF builds for use with an ongoing ETF rewrite.
usually kept as dev builds downloadable only in my discord, this has been uploaded to the download pages so mod packs may access 1.20.3
full changelogs available in my discord and will accompany the full non beta release
04.11.2023 · 102 166 завантаження
1.1.0
rule_index variable using the wrong valuerandom() method breaking when used with no argsNon [a-z0-9/._-] character in path crash with modded entities having model id's that do not create valid Identifiers/ResourceLocations! boolean inverting not applying to varb variable booleanskeyframe() & keyframeloop() animation methods to simplify keyframe format animations, the format is keyframe(k, a, b, c,...) with k being the linear progress of the keyframes (typically a timer), and all further values being the individual keyframes value.a,b, and k=1.5 will give a linear output halfway between b & c. In effect k is the timera being 0. keyframeloop() will wrap arounda and so on as k increases past the last frame. whereas keyframe() will only display the last frame for higher k values. k will be treated as a positive number even if negative.print() & printb() methods only printing once if the x value had logically resolved to a constantETF 4.6.1 or highernan variable that resolves to Float.NaN in runtime mostly for debugging purposes, it being used should make any math function/equation give its failure outcome.04.11.2023 · 391 803 завантаження
1.1.0
rule_index variable using the wrong valuerandom() method breaking when used with no argsNon [a-z0-9/._-] character in path crash with modded entities having model id's that do not create valid Identifiers/ResourceLocations! boolean inverting not applying to varb variable booleanskeyframe() & keyframeloop() animation methods to simplify keyframe format animations, the format is keyframe(k, a, b, c,...) with k being the linear progress of the keyframes (typically a timer), and all further values being the individual keyframes value.a,b, and k=1.5 will give a linear output halfway between b & c. In effect k is the timera being 0. keyframeloop() will wrap arounda and so on as k increases past the last frame. whereas keyframe() will only display the last frame for higher k values. k will be treated as a positive number even if negative.print() & printb() methods only printing once if the x value had logically resolved to a constantETF 4.6.1 or highernan variable that resolves to Float.NaN in runtime mostly for debugging purposes, it being used should make any math function/equation give its failure outcome.04.11.2023 · 5 509 завантаження
1.1.0
rule_index variable using the wrong valuerandom() method breaking when used with no argsNon [a-z0-9/._-] character in path crash with modded entities having model id's that do not create valid Identifiers/ResourceLocations! boolean inverting not applying to varb variable booleanskeyframe() & keyframeloop() animation methods to simplify keyframe format animations, the format is keyframe(k, a, b, c,...) with k being the linear progress of the keyframes (typically a timer), and all further values being the individual keyframes value.a,b, and k=1.5 will give a linear output halfway between b & c. In effect k is the timera being 0. keyframeloop() will wrap arounda and so on as k increases past the last frame. whereas keyframe() will only display the last frame for higher k values. k will be treated as a positive number even if negative.print() & printb() methods only printing once if the x value had logically resolved to a constantETF 4.6.1 or highernan variable that resolves to Float.NaN in runtime mostly for debugging purposes, it being used should make any math function/equation give its failure outcome.04.11.2023 · 23 295 завантаження
1.1.0
rule_index variable using the wrong valuerandom() method breaking when used with no argsNon [a-z0-9/._-] character in path crash with modded entities having model id's that do not create valid Identifiers/ResourceLocations! boolean inverting not applying to varb variable booleanskeyframe() & keyframeloop() animation methods to simplify keyframe format animations, the format is keyframe(k, a, b, c,...) with k being the linear progress of the keyframes (typically a timer), and all further values being the individual keyframes value.a,b, and k=1.5 will give a linear output halfway between b & c. In effect k is the timera being 0. keyframeloop() will wrap arounda and so on as k increases past the last frame. whereas keyframe() will only display the last frame for higher k values. k will be treated as a positive number even if negative.print() & printb() methods only printing once if the x value had logically resolved to a constantETF 4.6.1 or highernan variable that resolves to Float.NaN in runtime mostly for debugging purposes, it being used should make any math function/equation give its failure outcome.04.11.2023 · 1 617 завантаження
1.1.0
rule_index variable using the wrong valuerandom() method breaking when used with no argsNon [a-z0-9/._-] character in path crash with modded entities having model id's that do not create valid Identifiers/ResourceLocations! boolean inverting not applying to varb variable booleanskeyframe() & keyframeloop() animation methods to simplify keyframe format animations, the format is keyframe(k, a, b, c,...) with k being the linear progress of the keyframes (typically a timer), and all further values being the individual keyframes value.a,b, and k=1.5 will give a linear output halfway between b & c. In effect k is the timera being 0. keyframeloop() will wrap arounda and so on as k increases past the last frame. whereas keyframe() will only display the last frame for higher k values. k will be treated as a positive number even if negative.print() & printb() methods only printing once if the x value had logically resolved to a constantETF 4.6.1 or highernan variable that resolves to Float.NaN in runtime mostly for debugging purposes, it being used should make any math function/equation give its failure outcome.04.11.2023 · 1 414 завантаження
1.1.0
rule_index variable using the wrong valuerandom() method breaking when used with no argsNon [a-z0-9/._-] character in path crash with modded entities having model id's that do not create valid Identifiers/ResourceLocations! boolean inverting not applying to varb variable booleanskeyframe() & keyframeloop() animation methods to simplify keyframe format animations, the format is keyframe(k, a, b, c,...) with k being the linear progress of the keyframes (typically a timer), and all further values being the individual keyframes value.a,b, and k=1.5 will give a linear output halfway between b & c. In effect k is the timera being 0. keyframeloop() will wrap arounda and so on as k increases past the last frame. whereas keyframe() will only display the last frame for higher k values. k will be treated as a positive number even if negative.print() & printb() methods only printing once if the x value had logically resolved to a constantETF 4.6.1 or highernan variable that resolves to Float.NaN in runtime mostly for debugging purposes, it being used should make any math function/equation give its failure outcome.04.11.2023 · 98 993 завантаження
1.1.0
rule_index variable using the wrong valuerandom() method breaking when used with no argsNon [a-z0-9/._-] character in path crash with modded entities having model id's that do not create valid Identifiers/ResourceLocations! boolean inverting not applying to varb variable booleanskeyframe() & keyframeloop() animation methods to simplify keyframe format animations, the format is keyframe(k, a, b, c,...) with k being the linear progress of the keyframes (typically a timer), and all further values being the individual keyframes value.a,b, and k=1.5 will give a linear output halfway between b & c. In effect k is the timera being 0. keyframeloop() will wrap arounda and so on as k increases past the last frame. whereas keyframe() will only display the last frame for higher k values. k will be treated as a positive number even if negative.print() & printb() methods only printing once if the x value had logically resolved to a constantETF 4.6.1 or highernan variable that resolves to Float.NaN in runtime mostly for debugging purposes, it being used should make any math function/equation give its failure outcome.04.11.2023 · 2 318 завантаження
1.1.0
rule_index variable using the wrong valuerandom() method breaking when used with no argsNon [a-z0-9/._-] character in path crash with modded entities having model id's that do not create valid Identifiers/ResourceLocations! boolean inverting not applying to varb variable booleanskeyframe() & keyframeloop() animation methods to simplify keyframe format animations, the format is keyframe(k, a, b, c,...) with k being the linear progress of the keyframes (typically a timer), and all further values being the individual keyframes value.a,b, and k=1.5 will give a linear output halfway between b & c. In effect k is the timera being 0. keyframeloop() will wrap arounda and so on as k increases past the last frame. whereas keyframe() will only display the last frame for higher k values. k will be treated as a positive number even if negative.print() & printb() methods only printing once if the x value had logically resolved to a constantETF 4.6.1 or highernan variable that resolves to Float.NaN in runtime mostly for debugging purposes, it being used should make any math function/equation give its failure outcome.04.11.2023 · 89 326 завантаження
1.1.0
rule_index variable using the wrong valuerandom() method breaking when used with no argsNon [a-z0-9/._-] character in path crash with modded entities having model id's that do not create valid Identifiers/ResourceLocations! boolean inverting not applying to varb variable booleanskeyframe() & keyframeloop() animation methods to simplify keyframe format animations, the format is keyframe(k, a, b, c,...) with k being the linear progress of the keyframes (typically a timer), and all further values being the individual keyframes value.a,b, and k=1.5 will give a linear output halfway between b & c. In effect k is the timera being 0. keyframeloop() will wrap arounda and so on as k increases past the last frame. whereas keyframe() will only display the last frame for higher k values. k will be treated as a positive number even if negative.print() & printb() methods only printing once if the x value had logically resolved to a constantETF 4.6.1 or highernan variable that resolves to Float.NaN in runtime mostly for debugging purposes, it being used should make any math function/equation give its failure outcome.04.11.2023 · 5 055 завантаження
1.1.0
rule_index variable using the wrong valuerandom() method breaking when used with no argsNon [a-z0-9/._-] character in path crash with modded entities having model id's that do not create valid Identifiers/ResourceLocations! boolean inverting not applying to varb variable booleanskeyframe() & keyframeloop() animation methods to simplify keyframe format animations, the format is keyframe(k, a, b, c,...) with k being the linear progress of the keyframes (typically a timer), and all further values being the individual keyframes value.a,b, and k=1.5 will give a linear output halfway between b & c. In effect k is the timera being 0. keyframeloop() will wrap arounda and so on as k increases past the last frame. whereas keyframe() will only display the last frame for higher k values. k will be treated as a positive number even if negative.print() & printb() methods only printing once if the x value had logically resolved to a constantETF 4.6.1 or highernan variable that resolves to Float.NaN in runtime mostly for debugging purposes, it being used should make any math function/equation give its failure outcome.03.10.2023 · 1 802 завантаження
1.18.2 backport
03.10.2023 · 53 261 завантаження
1.18.2 backport
23.09.2023 · 5 986 завантаження
fixed situational lag in v1.0 related to block entity rendering
fixed 1.19 forge issue preventing block entity model syncing (i.e chest and trapped_chest both using chest.jem)
23.09.2023 · 10 561 завантаження
fixed situational lag in v1.0 related to block entity rendering
fixed 1.19 forge issue preventing block entity model syncing (i.e chest and trapped_chest both using chest.jem)
this might be the last 1.19.3 version
23.09.2023 · 14 350 завантаження
fixed situational lag in v1.0 related to block entity rendering
fixed 1.19 forge issue preventing block entity model syncing (i.e chest and trapped_chest both using chest.jem)
23.09.2023 · 641 завантаження
fixed situational lag in v1.0 related to block entity rendering
fixed 1.19 forge issue preventing block entity model syncing (i.e chest and trapped_chest both using chest.jem)
23.09.2023 · 3 745 завантаження
fixed situational lag in v1.0 related to block entity rendering
fixed 1.19 forge issue preventing block entity model syncing (i.e chest and trapped_chest both using chest.jem)
this might be the last 1.19.3 version
23.09.2023 · 16 421 завантаження
fixed situational lag in v1.0 related to block entity rendering
fixed 1.19 forge issue preventing block entity model syncing (i.e chest and trapped_chest both using chest.jem)
22.09.2023 · 121 249 завантаження
1.20.2 update
22.09.2023 · 654 завантаження
1.20.2 update
20.09.2023 · 1 022 040 завантаження
20.09.2023 · 21 717 завантаження
16.09.2023 · 335 завантаження
fixed an issue with resource reloads breaking custom models on 1.19.2 & 1.19.3
16.09.2023 · 189 786 завантаження
fixed an issue with resource reloads breaking custom models on 1.19.2 & 1.19.3
16.09.2023 · 104 завантаження
fixed an issue with resource reloads breaking custom models on 1.19.2 & 1.19.3
16.09.2023 · 416 завантаження
fixed an issue with resource reloads breaking custom models on 1.19.2 & 1.19.3
16.09.2023 · 15 318 завантаження
It's time, EMF has come a long way, in 9.5 months, and now seems to be very closely on parity with OptiFine CEM, seeing as it is not
actually OptiFine there will always be some minor issues or discrepancies, please continue to report these as you find them.
However on the whole EMF seems to be ready.
Some things to note: EMF 1.0 is practically a different mod to the last beta 0.2.13 and the old private alpha,
Almost the entire model creation code is different and almost all issues reported using old beta versions will be irrelevant going forwards. (especially if it is about broken models)
With that being said, many GitHub issues have been left mostly ignored by me if the issue is something that I expected would
be resolved passively during development, I'll be going through these in the coming months to weed out any now irrelevant issues.
(changes from last beta)
- Model creation has been completely rewritten & OptiFine CEM appears to be at parity in EMF and seems to be fully working for almost every single model
- large rework, reimplementation, and internalisation of animation code and model variant checking.
preventing all occurrences of animation de-sync and fixing animations for all modded/replaced entities/models and
block entities.
- various stability fixes to model variants including texture support.
- block entities fully supported
- physics mod compat can now choose to try render the vanilla model parts or the custom EMF model parts
- should no longer cause part not found crashes or model failures
- reduced the log message length of model loading errors
- fixed emf/ & mobName/mobName directory issues
- animations now support model part name hierarchy as in OptiFine. i.e left_arm:hand:finger1 works to separate part finger1 in the left_arm model group from the right_arm one
- warnings added to the "prevent model overrides" setting prompting users to disable setting if it causes crashes or to warn users of models being modified by other mods
- added OptiFine name format support for all previously missing entities including sniffer and camel and block entities
- added support for render variables in animations e.g. render.shadow_size
- expanded animation model variable support to block entities, seemingly matching OptiFines output for these.
- block entity animations support variables "var.???"
- added various render modes for custom parts, NORMAL, GREEN FLASHING, WIREFRAME, OFF, will not affect vanilla parts.
- so much more I've probably forgotten some.
- removed now unnecessary config settings
- leaving the config screen now only triggers a resource reload if a setting has been changed
- added a random entity display to the config screen
- various minor optimizations and code cleanups
- countless fixes caused by the previous beta not having OptiFine parity
16.09.2023 · 581 завантаження
It's time, EMF has come a long way, in 9.5 months, and now seems to be very closely on parity with OptiFine CEM, seeing as it is not
actually OptiFine there will always be some minor issues or discrepancies, please continue to report these as you find them.
However on the whole EMF seems to be ready.
Some things to note: EMF 1.0 is practically a different mod to the last beta 0.2.13 and the old private alpha,
Almost the entire model creation code is different and almost all issues reported using old beta versions will be irrelevant going forwards. (especially if it is about broken models)
With that being said, many GitHub issues have been left mostly ignored by me if the issue is something that I expected would
be resolved passively during development, I'll be going through these in the coming months to weed out any now irrelevant issues.
(changes from last beta)
- Model creation has been completely rewritten & OptiFine CEM appears to be at parity in EMF and seems to be fully working for almost every single model
- large rework, reimplementation, and internalisation of animation code and model variant checking.
preventing all occurrences of animation de-sync and fixing animations for all modded/replaced entities/models and
block entities.
- various stability fixes to model variants including texture support.
- block entities fully supported
- physics mod compat can now choose to try render the vanilla model parts or the custom EMF model parts
- should no longer cause part not found crashes or model failures
- reduced the log message length of model loading errors
- fixed emf/ & mobName/mobName directory issues
- animations now support model part name hierarchy as in OptiFine. i.e left_arm:hand:finger1 works to separate part finger1 in the left_arm model group from the right_arm one
- warnings added to the "prevent model overrides" setting prompting users to disable setting if it causes crashes or to warn users of models being modified by other mods
- added OptiFine name format support for all previously missing entities including sniffer and camel and block entities
- added support for render variables in animations e.g. render.shadow_size
- expanded animation model variable support to block entities, seemingly matching OptiFines output for these.
- block entity animations support variables "var.???"
- added various render modes for custom parts, NORMAL, GREEN FLASHING, WIREFRAME, OFF, will not affect vanilla parts.
- so much more I've probably forgotten some.
- removed now unnecessary config settings
- leaving the config screen now only triggers a resource reload if a setting has been changed
- added a random entity display to the config screen
- various minor optimizations and code cleanups
- countless fixes caused by the previous beta not having OptiFine parity
16.09.2023 · 89 завантаження
It's time, EMF has come a long way, in 9.5 months, and now seems to be very closely on parity with OptiFine CEM, seeing as it is not
actually OptiFine there will always be some minor issues or discrepancies, please continue to report these as you find them.
However on the whole EMF seems to be ready.
Some things to note: EMF 1.0 is practically a different mod to the last beta 0.2.13 and the old private alpha,
Almost the entire model creation code is different and almost all issues reported using old beta versions will be irrelevant going forwards. (especially if it is about broken models)
With that being said, many GitHub issues have been left mostly ignored by me if the issue is something that I expected would
be resolved passively during development, I'll be going through these in the coming months to weed out any now irrelevant issues.
(changes from last beta)
- Model creation has been completely rewritten & OptiFine CEM appears to be at parity in EMF and seems to be fully working for almost every single model
- large rework, reimplementation, and internalisation of animation code and model variant checking.
preventing all occurrences of animation de-sync and fixing animations for all modded/replaced entities/models and
block entities.
- various stability fixes to model variants including texture support.
- block entities fully supported
- physics mod compat can now choose to try render the vanilla model parts or the custom EMF model parts
- should no longer cause part not found crashes or model failures
- reduced the log message length of model loading errors
- fixed emf/ & mobName/mobName directory issues
- animations now support model part name hierarchy as in OptiFine. i.e left_arm:hand:finger1 works to separate part finger1 in the left_arm model group from the right_arm one
- warnings added to the "prevent model overrides" setting prompting users to disable setting if it causes crashes or to warn users of models being modified by other mods
- added OptiFine name format support for all previously missing entities including sniffer and camel and block entities
- added support for render variables in animations e.g. render.shadow_size
- expanded animation model variable support to block entities, seemingly matching OptiFines output for these.
- block entity animations support variables "var.???"
- added various render modes for custom parts, NORMAL, GREEN FLASHING, WIREFRAME, OFF, will not affect vanilla parts.
- so much more I've probably forgotten some.
- removed now unnecessary config settings
- leaving the config screen now only triggers a resource reload if a setting has been changed
- added a random entity display to the config screen
- various minor optimizations and code cleanups
- countless fixes caused by the previous beta not having OptiFine parity
16.09.2023 · 376 завантаження
It's time, EMF has come a long way, in 9.5 months, and now seems to be very closely on parity with OptiFine CEM, seeing as it is not
actually OptiFine there will always be some minor issues or discrepancies, please continue to report these as you find them.
However on the whole EMF seems to be ready.
Some things to note: EMF 1.0 is practically a different mod to the last beta 0.2.13 and the old private alpha,
Almost the entire model creation code is different and almost all issues reported using old beta versions will be irrelevant going forwards. (especially if it is about broken models)
With that being said, many GitHub issues have been left mostly ignored by me if the issue is something that I expected would
be resolved passively during development, I'll be going through these in the coming months to weed out any now irrelevant issues.
(changes from last beta)
- Model creation has been completely rewritten & OptiFine CEM appears to be at parity in EMF and seems to be fully working for almost every single model
- large rework, reimplementation, and internalisation of animation code and model variant checking.
preventing all occurrences of animation de-sync and fixing animations for all modded/replaced entities/models and
block entities.
- various stability fixes to model variants including texture support.
- block entities fully supported
- physics mod compat can now choose to try render the vanilla model parts or the custom EMF model parts
- should no longer cause part not found crashes or model failures
- reduced the log message length of model loading errors
- fixed emf/ & mobName/mobName directory issues
- animations now support model part name hierarchy as in OptiFine. i.e left_arm:hand:finger1 works to separate part finger1 in the left_arm model group from the right_arm one
- warnings added to the "prevent model overrides" setting prompting users to disable setting if it causes crashes or to warn users of models being modified by other mods
- added OptiFine name format support for all previously missing entities including sniffer and camel and block entities
- added support for render variables in animations e.g. render.shadow_size
- expanded animation model variable support to block entities, seemingly matching OptiFines output for these.
- block entity animations support variables "var.???"
- added various render modes for custom parts, NORMAL, GREEN FLASHING, WIREFRAME, OFF, will not affect vanilla parts.
- so much more I've probably forgotten some.
- removed now unnecessary config settings
- leaving the config screen now only triggers a resource reload if a setting has been changed
- added a random entity display to the config screen
- various minor optimizations and code cleanups
- countless fixes caused by the previous beta not having OptiFine parity
16.09.2023 · 1 448 завантаження
It's time, EMF has come a long way, in 9.5 months, and now seems to be very closely on parity with OptiFine CEM, seeing as it is not
actually OptiFine there will always be some minor issues or discrepancies, please continue to report these as you find them.
However on the whole EMF seems to be ready.
Some things to note: EMF 1.0 is practically a different mod to the last beta 0.2.13 and the old private alpha,
Almost the entire model creation code is different and almost all issues reported using old beta versions will be irrelevant going forwards. (especially if it is about broken models)
With that being said, many GitHub issues have been left mostly ignored by me if the issue is something that I expected would
be resolved passively during development, I'll be going through these in the coming months to weed out any now irrelevant issues.
(changes from last beta)
- Model creation has been completely rewritten & OptiFine CEM appears to be at parity in EMF and seems to be fully working for almost every single model
- large rework, reimplementation, and internalisation of animation code and model variant checking.
preventing all occurrences of animation de-sync and fixing animations for all modded/replaced entities/models and
block entities.
- various stability fixes to model variants including texture support.
- block entities fully supported
- physics mod compat can now choose to try render the vanilla model parts or the custom EMF model parts
- should no longer cause part not found crashes or model failures
- reduced the log message length of model loading errors
- fixed emf/ & mobName/mobName directory issues
- animations now support model part name hierarchy as in OptiFine. i.e left_arm:hand:finger1 works to separate part finger1 in the left_arm model group from the right_arm one
- warnings added to the "prevent model overrides" setting prompting users to disable setting if it causes crashes or to warn users of models being modified by other mods
- added OptiFine name format support for all previously missing entities including sniffer and camel and block entities
- added support for render variables in animations e.g. render.shadow_size
- expanded animation model variable support to block entities, seemingly matching OptiFines output for these.
- block entity animations support variables "var.???"
- added various render modes for custom parts, NORMAL, GREEN FLASHING, WIREFRAME, OFF, will not affect vanilla parts.
- so much more I've probably forgotten some.
- removed now unnecessary config settings
- leaving the config screen now only triggers a resource reload if a setting has been changed
- added a random entity display to the config screen
- various minor optimizations and code cleanups
- countless fixes caused by the previous beta not having OptiFine parity
16.09.2023 · 140 завантаження
It's time, EMF has come a long way, in 9.5 months, and now seems to be very closely on parity with OptiFine CEM, seeing as it is not
actually OptiFine there will always be some minor issues or discrepancies, please continue to report these as you find them.
However on the whole EMF seems to be ready.
Some things to note: EMF 1.0 is practically a different mod to the last beta 0.2.13 and the old private alpha,
Almost the entire model creation code is different and almost all issues reported using old beta versions will be irrelevant going forwards. (especially if it is about broken models)
With that being said, many GitHub issues have been left mostly ignored by me if the issue is something that I expected would
be resolved passively during development, I'll be going through these in the coming months to weed out any now irrelevant issues.
(changes from last beta)
- Model creation has been completely rewritten & OptiFine CEM appears to be at parity in EMF and seems to be fully working for almost every single model
- large rework, reimplementation, and internalisation of animation code and model variant checking.
preventing all occurrences of animation de-sync and fixing animations for all modded/replaced entities/models and
block entities.
- various stability fixes to model variants including texture support.
- block entities fully supported
- physics mod compat can now choose to try render the vanilla model parts or the custom EMF model parts
- should no longer cause part not found crashes or model failures
- reduced the log message length of model loading errors
- fixed emf/ & mobName/mobName directory issues
- animations now support model part name hierarchy as in OptiFine. i.e left_arm:hand:finger1 works to separate part finger1 in the left_arm model group from the right_arm one
- warnings added to the "prevent model overrides" setting prompting users to disable setting if it causes crashes or to warn users of models being modified by other mods
- added OptiFine name format support for all previously missing entities including sniffer and camel and block entities
- added support for render variables in animations e.g. render.shadow_size
- expanded animation model variable support to block entities, seemingly matching OptiFines output for these.
- block entity animations support variables "var.???"
- added various render modes for custom parts, NORMAL, GREEN FLASHING, WIREFRAME, OFF, will not affect vanilla parts.
- so much more I've probably forgotten some.
- removed now unnecessary config settings
- leaving the config screen now only triggers a resource reload if a setting has been changed
- added a random entity display to the config screen
- various minor optimizations and code cleanups
- countless fixes caused by the previous beta not having OptiFine parity
16.09.2023 · 85 завантаження
It's time, EMF has come a long way, in 9.5 months, and now seems to be very closely on parity with OptiFine CEM, seeing as it is not
actually OptiFine there will always be some minor issues or discrepancies, please continue to report these as you find them.
However on the whole EMF seems to be ready.
Some things to note: EMF 1.0 is practically a different mod to the last beta 0.2.13 and the old private alpha,
Almost the entire model creation code is different and almost all issues reported using old beta versions will be irrelevant going forwards. (especially if it is about broken models)
With that being said, many GitHub issues have been left mostly ignored by me if the issue is something that I expected would
be resolved passively during development, I'll be going through these in the coming months to weed out any now irrelevant issues.
(changes from last beta)
- Model creation has been completely rewritten & OptiFine CEM appears to be at parity in EMF and seems to be fully working for almost every single model
- large rework, reimplementation, and internalisation of animation code and model variant checking.
preventing all occurrences of animation de-sync and fixing animations for all modded/replaced entities/models and
block entities.
- various stability fixes to model variants including texture support.
- block entities fully supported
- physics mod compat can now choose to try render the vanilla model parts or the custom EMF model parts
- should no longer cause part not found crashes or model failures
- reduced the log message length of model loading errors
- fixed emf/ & mobName/mobName directory issues
- animations now support model part name hierarchy as in OptiFine. i.e left_arm:hand:finger1 works to separate part finger1 in the left_arm model group from the right_arm one
- warnings added to the "prevent model overrides" setting prompting users to disable setting if it causes crashes or to warn users of models being modified by other mods
- added OptiFine name format support for all previously missing entities including sniffer and camel and block entities
- added support for render variables in animations e.g. render.shadow_size
- expanded animation model variable support to block entities, seemingly matching OptiFines output for these.
- block entity animations support variables "var.???"
- added various render modes for custom parts, NORMAL, GREEN FLASHING, WIREFRAME, OFF, will not affect vanilla parts.
- so much more I've probably forgotten some.
- removed now unnecessary config settings
- leaving the config screen now only triggers a resource reload if a setting has been changed
- added a random entity display to the config screen
- various minor optimizations and code cleanups
- countless fixes caused by the previous beta not having OptiFine parity
16.09.2023 · 318 завантаження
It's time, EMF has come a long way, in 9.5 months, and now seems to be very closely on parity with OptiFine CEM, seeing as it is not
actually OptiFine there will always be some minor issues or discrepancies, please continue to report these as you find them.
However on the whole EMF seems to be ready.
Some things to note: EMF 1.0 is practically a different mod to the last beta 0.2.13 and the old private alpha,
Almost the entire model creation code is different and almost all issues reported using old beta versions will be irrelevant going forwards. (especially if it is about broken models)
With that being said, many GitHub issues have been left mostly ignored by me if the issue is something that I expected would
be resolved passively during development, I'll be going through these in the coming months to weed out any now irrelevant issues.
(changes from last beta)
- Model creation has been completely rewritten & OptiFine CEM appears to be at parity in EMF and seems to be fully working for almost every single model
- large rework, reimplementation, and internalisation of animation code and model variant checking.
preventing all occurrences of animation de-sync and fixing animations for all modded/replaced entities/models and
block entities.
- various stability fixes to model variants including texture support.
- block entities fully supported
- physics mod compat can now choose to try render the vanilla model parts or the custom EMF model parts
- should no longer cause part not found crashes or model failures
- reduced the log message length of model loading errors
- fixed emf/ & mobName/mobName directory issues
- animations now support model part name hierarchy as in OptiFine. i.e left_arm:hand:finger1 works to separate part finger1 in the left_arm model group from the right_arm one
- warnings added to the "prevent model overrides" setting prompting users to disable setting if it causes crashes or to warn users of models being modified by other mods
- added OptiFine name format support for all previously missing entities including sniffer and camel and block entities
- added support for render variables in animations e.g. render.shadow_size
- expanded animation model variable support to block entities, seemingly matching OptiFines output for these.
- block entity animations support variables "var.???"
- added various render modes for custom parts, NORMAL, GREEN FLASHING, WIREFRAME, OFF, will not affect vanilla parts.
- so much more I've probably forgotten some.
- removed now unnecessary config settings
- leaving the config screen now only triggers a resource reload if a setting has been changed
- added a random entity display to the config screen
- various minor optimizations and code cleanups
- countless fixes caused by the previous beta not having OptiFine parity
12.09.2023 · 6 367 завантаження
RC-4
- axolotl tail part OptiFine part name mapping fixed
- removed now unnecessary config settings
- fixed emissive textures on CEM models acting weird in RC-3
- some minor optimizations and code cleanups
- moved animation execution code into the relevant parent bone to match OptiFine execution order (solved flickering models in inventory, and improved efficiency slightly)
- leaving the config screen now only triggers a resource reload if a setting has been changed
12.09.2023 · 864 завантаження
RC-4
- axolotl tail part OptiFine part name mapping fixed
- removed now unnecessary config settings
- fixed emissive textures on CEM models acting weird in RC-3
- some minor optimizations and code cleanups
- moved animation execution code into the relevant parent bone to match OptiFine execution order (solved flickering models in inventory, and improved efficiency slightly)
- leaving the config screen now only triggers a resource reload if a setting has been changed
11.09.2023 · 4 590 завантаження
RC-3
- re-enabled an option for testing in RC-3 that allows using minecraft's internal MathHelper class for some math methods as opposed to regular Java's Math methods (doesn't really seem to be a performance benefit in ym testing, just trialling this before I decide whether to delete this old code)
- fixed top level jem texture overrides
- fixed book.jem's flipping page pivots
- changed some default config settings for performance boosts
- fixed a forge crash
- fixed armor stand armor models not remapping the headwear part
- fixed guardian and elder_guardian OptiFine part name mappings ("eye" did not work)
11.09.2023 · 331 завантаження
RC-3
- re-enabled an option for testing in RC-3 that allows using minecraft's internal MathHelper class for some math methods as opposed to regular Java's Math methods (doesn't really seem to be a performance benefit in ym testing, just trialling this before I decide whether to delete this old code)
- fixed top level jem texture overrides
- fixed book.jem's flipping page pivots
- changed some default config settings for performance boosts
- fixed a forge crash
- fixed armor stand armor models not remapping the headwear part
- fixed guardian and elder_guardian OptiFine part name mappings ("eye" did not work)
10.09.2023 · 12 909 завантаження
RC-2
- added a random entity display to the config screen
- fixed null pointer exception with model overrides
- fixed ravager jaw having the wrong OptiFine part name
- fixed is_on_shoulder animation variable
- fixed wolf_collar.jem loading
- fixed an accidental limitation where a vanilla part unknown to the OptiFine part name map would be targeted by animations intended for custom parts (in FA this was parrot heads and witch hats)
- fixed a crash with unknown models building illegal paths
- fixed an issue with parts with empty ids using "this" animation key
- fixed book models
- fixed chest & shulker model mixups
- fixed animations not being read from models with parts with duplicate ids (fixed several of Creepermax123's packs)
10.09.2023 · 266 завантаження
RC-2
- added a random entity display to the config screen
- fixed null pointer exception with model overrides
- fixed ravager jaw having the wrong OptiFine part name
- fixed is_on_shoulder animation variable
- fixed wolf_collar.jem loading
- fixed an accidental limitation where a vanilla part unknown to the OptiFine part name map would be targeted by animations intended for custom parts (in FA this was parrot heads and witch hats)
- fixed a crash with unknown models building illegal paths
- fixed an issue with parts with empty ids using "this" animation key
- fixed book models
- fixed chest & shulker model mixups
- fixed animations not being read from models with parts with duplicate ids (fixed several of Creepermax123's packs)
09.09.2023 · 1 626 завантаження
RC-1
- OptiFine CEM appears to be officially solved in EMF and seems to be fully working for almost every single use case :)
- large rework, reimplementation, and internalisation of animation code and model variant checking.
preventing all occurrences of animation de-sync and fixing animations for all modded/replaced entities/models and
block entities.
- various stability fixes to model variants including texture support.
- block entities fully supported (expect a few missalignments due to possible OptiFine part name differences, report these if you can , e.g. lectern and enchating table books might be swapped)
- physics mod compat can now choose to try render the vanilla model parts or the custom EMF model parts
- should no longer cause part not found crashes or model failures
- reduced the log message length of model loading errors
- fixed emf/ & mobName/mobName directory issues
- animations now support model part name hierarchy as in OptiFine. i.e left_arm:hand:finger1 works to separate part finger1 in the left_arm model group from the right_arm one
- warning structure added to detected model overrides prompting to disable setting if it crashes or to warn users of models modified by other mods
- added OptiFine name format support for all previously missing entities including sniffer and camel and block entities
- added support for render variables in animations e.g. render.shadow_size
- expanded animation model variable support to block entities, seemingly matching OptiFines output for these.
- block entity animations support variables "var.???"
- added various render modes for custom parts, NORMAL, GREEN FLASHING, WIREFRAME, OFF, will not affect vanilla parts.
- so much more i've probably forgotten some.
09.09.2023 · 232 завантаження
RC-1
- OptiFine CEM appears to be officially solved in EMF and seems to be fully working for almost every single use case :)
- large rework, reimplementation, and internalisation of animation code and model variant checking.
preventing all occurrences of animation de-sync and fixing animations for all modded/replaced entities/models and
block entities.
- various stability fixes to model variants including texture support.
- block entities fully supported (expect a few missalignments due to possible OptiFine part name differences, report these if you can , e.g. lectern and enchating table books might be swapped)
- physics mod compat can now choose to try render the vanilla model parts or the custom EMF model parts
- should no longer cause part not found crashes or model failures
- reduced the log message length of model loading errors
- fixed emf/ & mobName/mobName directory issues
- animations now support model part name hierarchy as in OptiFine. i.e left_arm:hand:finger1 works to separate part finger1 in the left_arm model group from the right_arm one
- warning structure added to detected model overrides prompting to disable setting if it crashes or to warn users of models modified by other mods
- added OptiFine name format support for all previously missing entities including sniffer and camel and block entities
- added support for render variables in animations e.g. render.shadow_size
- expanded animation model variable support to block entities, seemingly matching OptiFines output for these.
- block entity animations support variables "var.???"
- added various render modes for custom parts, NORMAL, GREEN FLASHING, WIREFRAME, OFF, will not affect vanilla parts.
- so much more i've probably forgotten some.
13.07.2023 · 258 488 завантаження
IndexOutOfBoundsException & already building crashes related to texture overrides in sub-models13.07.2023 · 15 520 завантаження
IndexOutOfBoundsException & already building crashes related to texture overrides in sub-models13.07.2023 · 424 завантаження
IndexOutOfBoundsException & already building crashes related to texture overrides in sub-models13.07.2023 · 73 751 завантаження
IndexOutOfBoundsException & already building crashes related to texture overrides in sub-models13.07.2023 · 3 584 завантаження
IndexOutOfBoundsException & already building crashes related to texture overrides in sub-models13.07.2023 · 571 завантаження
IndexOutOfBoundsException & already building crashes related to texture overrides in sub-models13.07.2023 · 260 завантаження
IndexOutOfBoundsException & already building crashes related to texture overrides in sub-models13.07.2023 · 3 425 завантаження
IndexOutOfBoundsException & already building crashes related to texture overrides in sub-models11.07.2023 · 12 556 завантаження
0.2.12
11.07.2023 · 37 103 завантаження
0.2.12
11.07.2023 · 91 завантаження
0.2.12
11.07.2023 · 1 088 завантаження
0.2.12
11.07.2023 · 273 завантаження
0.2.12
11.07.2023 · 91 завантаження
0.2.12
11.07.2023 · 71 завантаження
0.2.12
11.07.2023 · 475 завантаження
0.2.12
22.06.2023 · 179 176 завантаження
0.2.11
Did someone say mod compatibility?
This update adds a few features regarding EMF and other mods the most notable of which being an initial trial of modded entity support.
The following rules for modded entities are subject to change at any time during the beta.
As a rule of thumb all modded entities jem files will need to be placed at optifine/cem/modded/{NAMESPACE}/{MOBNAME}.jem
To see if a modded entity can be altered by EMF enable the option to print modded entity model details to the game log,
if it shows up in the log it will give you the .jem file path and all the root part names and their default values to work with.
If the mod creator for some reason gave the entity a different type name from its model name they will not currently animate, I have some plans for this eventually.
Secondly this change opens up the entirety of the minecraft entity model loading system to be customized via jem files safely without restriction,
for example I have yet to add any code specifically to model or animate signs but the modded printout option will reveal that
optifine/cem/sign/oak.jem is a detected valid model file for signs now, this will be true for many unexpected vanilla models
such as elytra and block entities. HOWEVER if they appear in this printout it means they are effectively "unknown" models,
they DO NOT yet use the OptiFine part names and are very unlikely to animate.
The OptiFine part names are something I need to add manually because they differ from the internal code names.
And all of these modded or unknown models that are not the main model of a LivingEntity need to have animation support manually added in the code.
There is also a new option, enabled by default, to try and force the game to use the CEM models for vanilla entities even
if another mod has tried to replace them, I'm not too sure how well this will work with all mods, but it seems to work nicely with the few I've tested with
EMF models to not be overridden by other mods (probably won't work with all mods)22.06.2023 · 1 479 завантаження
0.2.11
Did someone say mod compatibility?
This update adds a few features regarding EMF and other mods the most notable of which being an initial trial of modded entity support.
The following rules for modded entities are subject to change at any time during the beta.
As a rule of thumb all modded entities jem files will need to be placed at optifine/cem/modded/{NAMESPACE}/{MOBNAME}.jem
To see if a modded entity can be altered by EMF enable the option to print modded entity model details to the game log,
if it shows up in the log it will give you the .jem file path and all the root part names and their default values to work with.
If the mod creator for some reason gave the entity a different type name from its model name they will not currently animate, I have some plans for this eventually.
Secondly this change opens up the entirety of the minecraft entity model loading system to be customized via jem files safely without restriction,
for example I have yet to add any code specifically to model or animate signs but the modded printout option will reveal that
optifine/cem/sign/oak.jem is a detected valid model file for signs now, this will be true for many unexpected vanilla models
such as elytra and block entities. HOWEVER if they appear in this printout it means they are effectively "unknown" models,
they DO NOT yet use the OptiFine part names and are very unlikely to animate.
The OptiFine part names are something I need to add manually because they differ from the internal code names.
And all of these modded or unknown models that are not the main model of a LivingEntity need to have animation support manually added in the code.
There is also a new option, enabled by default, to try and force the game to use the CEM models for vanilla entities even
if another mod has tried to replace them, I'm not too sure how well this will work with all mods, but it seems to work nicely with the few I've tested with
EMF models to not be overridden by other mods (probably won't work with all mods)09.06.2023 · 68 776 завантаження
0.2.10
- 1.20 update
- fixed an issues with the max() animation method
- added a temporary config option to experiment with how EMF handles resetting its data (intended to be used to troubleshoot with users when a known bug occurs that I haven't yet been able to replicate myself)
09.06.2023 · 553 завантаження
0.2.10
- 1.20 update
- fixed an issues with the max() animation method
- added a temporary config option to experiment with how EMF handles resetting its data (intended to be used to troubleshoot with users when a known bug occurs that I haven't yet been able to replicate myself)
11.05.2023 · 611 завантаження
10.05.2023 · 87 997 завантаження
10.05.2023 · 2 411 завантаження
10.05.2023 · 52 523 завантаження
10.05.2023 · 3 339 завантаження
10.05.2023 · 296 завантаження
10.05.2023 · 5 402 завантаження
25.04.2023 · 15 547 завантаження
0.2.8
- made ETF a required dependency (Consider EMF now as an ETF addon, allowing you to still use other model mods without losing ETF)
- EMF now has a basic config screen on both Fabric and Forge
- added model texture override support
- re-added option to render the vanilla model underneath the custom one, or offset from it (they will not animate and are meant to help pack makers position their models)
- random model variations now update according to ETF's texture update rate setting
- fixed frame_time value it was about 2 times too large resulting in some animation transitions or counters playing faster
- added animation variables day_time, day_count, and tweaked time
- added anger_time_start and included tickDelta smoothing in anger_time
- fixed logical error in animation math expressions where "!(boolean)" was different to "!boolean"
- green render mode now pulses to allow accurate viewing of texture colours
- added an implementation of move_forward & move_strafing which are broken in OptiFine, in EMF these values relate
how much the entities total movement is in a particular direction. Using a players [wasd] movement as reference a
player holding W has a move_forward of 1, and a player holding S has a move_forward of -1, and a player
holding D has a move_strafing of 1, and a player holding A has a move_strafing of -1, and a player holding WD
has a move_forward & move_strafing of roughly 0.7 in both . this value is independent of speed and is intended as a measurement
of the directionality of an entities' movement.
25.04.2023 · 922 завантаження
0.2.8
- made ETF a required dependency (Consider EMF now as an ETF addon, allowing you to still use other model mods without losing ETF)
- EMF now has a basic config screen on both Fabric and Forge
- added model texture override support
- re-added option to render the vanilla model underneath the custom one, or offset from it (they will not animate and are meant to help pack makers position their models)
- random model variations now update according to ETF's texture update rate setting
- fixed frame_time value it was about 2 times too large resulting in some animation transitions or counters playing faster
- added animation variables day_time, day_count, and tweaked time
- added anger_time_start and included tickDelta smoothing in anger_time
- fixed logical error in animation math expressions where "!(boolean)" was different to "!boolean"
- green render mode now pulses to allow accurate viewing of texture colours
- added an implementation of move_forward & move_strafing which are broken in OptiFine, in EMF these values relate
how much the entities total movement is in a particular direction. Using a players [wasd] movement as reference a
player holding W has a move_forward of 1, and a player holding S has a move_forward of -1, and a player
holding D has a move_strafing of 1, and a player holding A has a move_strafing of -1, and a player holding WD
has a move_forward & move_strafing of roughly 0.7 in both . this value is independent of speed and is intended as a measurement
of the directionality of an entities' movement.
25.04.2023 · 2 694 завантаження
0.2.8
- made ETF a required dependency (Consider EMF now as an ETF addon, allowing you to still use other model mods without losing ETF)
- EMF now has a basic config screen on both Fabric and Forge
- added model texture override support
- re-added option to render the vanilla model underneath the custom one, or offset from it (they will not animate and are meant to help pack makers position their models)
- random model variations now update according to ETF's texture update rate setting
- fixed frame_time value it was about 2 times too large resulting in some animation transitions or counters playing faster
- added animation variables day_time, day_count, and tweaked time
- added anger_time_start and included tickDelta smoothing in anger_time
- fixed logical error in animation math expressions where "!(boolean)" was different to "!boolean"
- green render mode now pulses to allow accurate viewing of texture colours
- added an implementation of move_forward & move_strafing which are broken in OptiFine, in EMF these values relate
how much the entities total movement is in a particular direction. Using a players [wasd] movement as reference a
player holding W has a move_forward of 1, and a player holding S has a move_forward of -1, and a player
holding D has a move_strafing of 1, and a player holding A has a move_strafing of -1, and a player holding WD
has a move_forward & move_strafing of roughly 0.7 in both . this value is independent of speed and is intended as a measurement
of the directionality of an entities' movement.
25.04.2023 · 414 завантаження
0.2.8
- made ETF a required dependency (Consider EMF now as an ETF addon, allowing you to still use other model mods without losing ETF)
- EMF now has a basic config screen on both Fabric and Forge
- added model texture override support
- re-added option to render the vanilla model underneath the custom one, or offset from it (they will not animate and are meant to help pack makers position their models)
- random model variations now update according to ETF's texture update rate setting
- fixed frame_time value it was about 2 times too large resulting in some animation transitions or counters playing faster
- added animation variables day_time, day_count, and tweaked time
- added anger_time_start and included tickDelta smoothing in anger_time
- fixed logical error in animation math expressions where "!(boolean)" was different to "!boolean"
- green render mode now pulses to allow accurate viewing of texture colours
- added an implementation of move_forward & move_strafing which are broken in OptiFine, in EMF these values relate
how much the entities total movement is in a particular direction. Using a players [wasd] movement as reference a
player holding W has a move_forward of 1, and a player holding S has a move_forward of -1, and a player
holding D has a move_strafing of 1, and a player holding A has a move_strafing of -1, and a player holding WD
has a move_forward & move_strafing of roughly 0.7 in both . this value is independent of speed and is intended as a measurement
of the directionality of an entities' movement.
25.04.2023 · 148 завантаження
0.2.8
- made ETF a required dependency (Consider EMF now as an ETF addon, allowing you to still use other model mods without losing ETF)
- EMF now has a basic config screen on both Fabric and Forge
- added model texture override support
- re-added option to render the vanilla model underneath the custom one, or offset from it (they will not animate and are meant to help pack makers position their models)
- random model variations now update according to ETF's texture update rate setting
- fixed frame_time value it was about 2 times too large resulting in some animation transitions or counters playing faster
- added animation variables day_time, day_count, and tweaked time
- added anger_time_start and included tickDelta smoothing in anger_time
- fixed logical error in animation math expressions where "!(boolean)" was different to "!boolean"
- green render mode now pulses to allow accurate viewing of texture colours
- added an implementation of move_forward & move_strafing which are broken in OptiFine, in EMF these values relate
how much the entities total movement is in a particular direction. Using a players [wasd] movement as reference a
player holding W has a move_forward of 1, and a player holding S has a move_forward of -1, and a player
holding D has a move_strafing of 1, and a player holding A has a move_strafing of -1, and a player holding WD
has a move_forward & move_strafing of roughly 0.7 in both . this value is independent of speed and is intended as a measurement
of the directionality of an entities' movement.
25.04.2023 · 1 047 завантаження
0.2.8
- made ETF a required dependency (Consider EMF now as an ETF addon, allowing you to still use other model mods without losing ETF)
- EMF now has a basic config screen on both Fabric and Forge
- added model texture override support
- re-added option to render the vanilla model underneath the custom one, or offset from it (they will not animate and are meant to help pack makers position their models)
- random model variations now update according to ETF's texture update rate setting
- fixed frame_time value it was about 2 times too large resulting in some animation transitions or counters playing faster
- added animation variables day_time, day_count, and tweaked time
- added anger_time_start and included tickDelta smoothing in anger_time
- fixed logical error in animation math expressions where "!(boolean)" was different to "!boolean"
- green render mode now pulses to allow accurate viewing of texture colours
- added an implementation of move_forward & move_strafing which are broken in OptiFine, in EMF these values relate
how much the entities total movement is in a particular direction. Using a players [wasd] movement as reference a
player holding W has a move_forward of 1, and a player holding S has a move_forward of -1, and a player
holding D has a move_strafing of 1, and a player holding A has a move_strafing of -1, and a player holding WD
has a move_forward & move_strafing of roughly 0.7 in both . this value is independent of speed and is intended as a measurement
of the directionality of an entities' movement.
22.04.2023 · 2 459 завантаження
22.04.2023 · 174 завантаження
22.04.2023 · 391 завантаження
22.04.2023 · 84 завантаження
22.04.2023 · 88 завантаження
22.04.2023 · 157 завантаження
21.04.2023 · 1 680 завантаження
21.04.2023 · 103 завантаження
21.04.2023 · 642 завантаження
21.04.2023 · 87 завантаження
21.04.2023 · 68 завантаження
21.04.2023 · 127 завантаження
10.04.2023 · 5 743 завантаження
0.2.5
10.04.2023 · 426 завантаження
0.2.5
10.04.2023 · 9 384 завантаження
0.2.5
10.04.2023 · 104 завантаження
0.2.5
10.04.2023 · 92 завантаження
0.2.5
10.04.2023 · 163 завантаження
0.2.5
01.04.2023 · 296 завантаження
01.04.2023 · 111 завантаження
01.04.2023 · 221 завантаження
01.04.2023 · 669 завантаження
first public beta
01.04.2023 · 300 завантаження
first public beta
01.04.2023 · 5 362 завантаження
first public beta