Skip to content

Configuring Morphs

McHorse edited this page Nov 1, 2022 · 6 revisions

This page describes how to modify/configure available properties of Metamorph morphs.

IMPORTANT: when editing JSON, PLEASE, make sure to check whether modified file has a valid JSON code using a JSON linter, such as this. This will save both mine and your time.

Basics

There are few properties that are available for configuration:

  • Abilities (abilities, string array) – allows to specify the abilities given morph will be able to use. You can list here few abilities from abilities list.
  • Attack (attack, string) – allows to specify an attack this morph will have. You can specify only one attack.
  • Action (action, string) – allows to specify an action this morph will have. You can specify only one action.
  • Health (health, number, by default is 20) – allows to specify the player's maximum health while morphed into this morph.
  • Speed (speed, number, by default is 0.1) – allows to specify the player's speed while morphed into this morph. This option also affects FOV, unfortunately.
  • Hostility (hostile, boolean, by default is false) – allows to specify whether hostile mobs will attack the player. If player attacks a hostile mob, they will fight back.
  • First-person hand rendering (hands, boolean, by default false) – allows to specify whether to render hands in first person. The algorithm isn't optimal for finding hands, so this gives you ability to control whether you want to see hands.
  • Mob updating (calling Entity.onUpdate(), updates, default true) – allows to disable mob updating in case mob's logic does something fishy (steals items from player's inventory, breaks blocks around it). Possible side effect is it will break mob animations due to mob's animations being programmed into AI or mob's update loop.

By default, vanilla morphs have some default morph configuration in the mod. Here is the default morph configuration. Those values might change in the future.

To configure a morph, you'll need to add an entry of morph configuration in the file morphs.json, which is located in Metamorphs config folder (i.e. .minecraft/config/metamorph). morphs.json should have JSON map/object as a root element. By default, its content is an empty map element:

{}

To add a morph configuration, you'll need first to look up morph name (Blacklisting Morphs page covers that up), insert the morph name as a key into map, and specify any properties you want to modify.

For example, if you want to make:

  • Wolf morph more OP by making him twice maximum health of player, fast as ocelot, be able to negate any fall damage and be able to shoot fireballs
  • Bat morph less OP but with some balancing in health, making it able to glide, hunger-less and be able to explode like Creeper and immune to hostile mobs targeting

You'll need to add this to your morphs.json file:

{
    "Wolf": {
        "abilities": ["prevent_fall"],
        "action": "small_fireball",
        "health": 40,
        "speed": 0.15
    },
    "Bat": {
        "abilities": ["glide", "hungerless"],
        "action": "explode",
        "health": 20,
        "hostile": true
    }
}

Or minecraft:wolf instead of Wolf, and minecraft:bat instead of Bat, if you're using 1.11.2 build of Metamorph.

If your Minecraft is running, and you modified and saved morphs.json file, then you need to reload the morph configuration. Simply type in a command /metamorph reload morphs.

Ability, attack and action list

This section lists all possible abilities, attacks and actions available in Metamorph by default. Other mods might add new abilities, attacks and/or actions, but here are only list of actions available by default.

Abilities

Abilities are special actions that apply something on a player on every tick (in update loop).

  • climb – allows players to climb like a spider. This ability also prevents fall damage.
  • fire_proof - make players invincible to fire damage.
  • fly – allows players to fly in survival.
  • glide – makes players fly slowly toward the ground. Also prevents fall damage while gliding. If you sneak, you'll fall as usual.
  • hungerless - makes player immune to hunger potion effect.
  • jumping – makes player hopping.
  • night_vision – makes player see in the night.
  • prevent_fall – prevents fall damage.
  • snow_walk – generates snow under players' feet. Just like a snow man.
  • sun_allergy – inflicts damage when morphed player is in day light.
  • swim – makes player very mobile in the water. Also inflicts damage on player when he's on air.
  • water_allergy – inflicts damage when morphed player steps into water.
  • water_breath – makes player stay in the water forever.

Actions

Actions are some abilities that are getting triggered when a player presses the action key (V by default).

  • explode – makes an explosion like creeper. Also kills player.
  • fireball – shoots exploding fireball.
  • fire_breath – shoots ender dragon fireball.
  • jump – jumps 3 blocks high in the air.
  • potions – throws a random negative potion.
  • small_fireball – shoots a small fireball.
  • snowball – shoots a snowball.
  • teleport – teleports player at the block at which he looks.

Attacks

Attacks are like actions but they're applied on an entity which player attacks.

  • poison – applies poison potion effect on the attacked target.
  • wither – applies wither potion effect on the attacked target.
  • knockback – throws the target in the air when player attacks.