Morph

Morph

22M Downloads

Introducing Morph: Enhanced And Transformed

aka MEAT

Rewritten from the ground up (Another rewrite?!), Morph is back for 1.16.5+! New animations! New systems! New mechanics (kinda)!

Kill a mob and acquire it, turn into it at will. 

Like before:
[ ] keys opens/navigates the selector (Hold SHIFT to navigate horizontally).
` (more commonly known as ~ ) to favourite a morph in the selector and open the favourites radial menu. 

Our fellow community member luckyu19 has compiled a list of traits & abilities available in the mod and which mobs have them which you can find here.


Unfortunately, the mod isn't finished, content-wise.

I had plans on adding proper progression to the mod via the Biomass ability which was meant to be available by default. Unfortunately due to time constraints and IRL obligations, I've decided to wrap up development on this mod and release a "Classic" mode. Classic mode is Morph as we know and love: Kill a thing, become it, use its abilities. Most of you who have used old Morph (pre-1.12.2 era) will be familiar with how the mod works, but I'll outline what's planned anyway down below.

Because the mod is unfinished, there are remnants of default mode that spill over to classic mode (eg configs) that have no effect. This will be addressed later. Examples of these will be:

Key binds:

  • Biomass - Biomass hasn't been implemented yet, but will take up a key bind to open the menu.
  • Abilities - These refer to active abilities that are meant to be used with Biomass and as thus have also been disabled. Passive Abilities and Traits such as slow fall, water breathing, creative flight, etc, those that were in Morph for MC 1.12.2, are in the mod. Unfortunately there is also no way to figure out which mobs have what traits & abilities in-game.

Known Issues:

 10.2.0:

- Modded morphs appear as pigs: Pigs are Morph's "fail-catch" entity. Read below for details.
- There is a mod (probably Optifine) that prevents Morph's GUI from rendering. Everything else from the mod works except for this.


Some mobs don't look right.

To address the concerns of mob duplications which the old Morph had, I now strip all irrelevant NBT data. NBT modifiers are required to tell Morph which NBT data to keep in the Morph.

For some mobs that appear as "Invalid Morph Pig", these mobs are erroring out possibly due to a code issue and fail to be created. Entities that extend IAngerable will have to fix MC-189565 by checking world.isRemote before casting to ServerWorld when reading NBT data, similar to how Forge patches the 6 classes that implement it.

For mobs that appear as the correct type but wrong texture/models, they will need special NBT modifiers to allow Morph to capture their NBT data properly. Details on creating these files below.


Adding compatibility with mods

To add compatibility with modded mobs or modded capabilities, Morph needs (up to) three types of JSON files. Hand Info, Mob Data, NBT Modifiers. These files go into /config/morph/

Hand Info is created with Tabula. Import the modded mob and then export a new Hand Info JSON. The steps will guide you.

Mob Data is created with the command "/morph resources generate mob". This will show you your morphs with a GUI for you to add and modify the morph's traits.

NBT Modifiers are created with the command "/morph resources generate nbt [entity]". You will need a living entity for this and not a morph. Either look at the entity you want to make a modifier for or use a target such as @e[type=<type>]. This will show you a GUI where you can modify NBT keys and compare the mob's appearance with its morph appearance.


Additional Jargon

Planned:

Default Mode:
Default mode adds a Biomass ability that would be gated by the Nether, requiring the wither and regeneration effects active at the same time. This unlocks the ability for players to absorb/consume other mobs' biomass, eventually leading to upgrades and unlocks (such as the morph ability, and capacity).

Active Abilities:
Morph now splits the old abilities system into Traits and Abilities. Abilities will cost Biomass to use, most will be passive and others active. Most of these will have to be unlocked using Biomass to give the players a use for Biomass and a sense of progression. All of old Morph's abilities have been rewritten for this, and more will come in the future. It ought to also be easier for Mod Devs to add support for their mobs.

Future Classic Mode Support:
Since the JSON files are shared between modes, updates to those for Default mode will include Classic mode, that means Classic mode will get more traits/abilities over time as well. Only time will tell!

About the JSON Data Files:

Morph extracts a default pack of mob support (similar to Hats/Googly Eyes) into the /config/morph/ folder. These are split to "biomass", "hand", "mob" and "nbt".

"biomass" obviously isn't used currently, but it is synced between servers and clients. These will be completed later on.

"hand" denotes which model part is the entity's hand and renders them on the client (when you're not holding anything). Client only. As mentioned you can use Tabula to generate these.

"mob" denotes all the mob's traits and abilities and the (eventual) biomass cost of each. These are not synched between clients and server. You can find their deserialised versions here. If you want to add mappings for a particular mob, use the command mentioned above.

"nbt" denotes which NBT data to keep/modify for mobs killed. Only the server needs these. These are done by entity class, modifiers for super classes are automatically inherited. The deserialised version of these files can be found here. Use the command mentioned above to help make one.

If you make any new files you can reload all the files using the /morph command or in the in-game config for Morph. If you made any files please share them on the Official Discord Server! Like before, I'm relying on community contributions for 3rd party mob support, I can't map them all myself, so your contribution would help many others enjoy the mod better!

Bonus for Mod Developers:

I've tried to make it much easier for mod devs to add support for their mods, from IMC messages to putting as much as I can into the API. Please let me know (on the GitHub) if there is anything else you need that would help and I'll see where I can accommodate!


1.12.2 and older:

More information can be found at iChun's Blog.