![]()

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