# ArceusPanel

## Highlights

* Supports item, bank, and impactor as currency.
* Create pokemon from scratch with ease through user interface.
* Modify pokemon properties with ease through user interface. Including natures, sizes, moves etc.
* Unite/Fuse pokemons to make a stronger pokemon.
* Create a pokemon using different item and pokemon combinations.
* Items that can modify the pokemon directly.

## Commands

| /arceuspanel info                                            | N/A                               | Shows the plugin information and commands.                                                         |
| ------------------------------------------------------------ | --------------------------------- | -------------------------------------------------------------------------------------------------- |
| /arceuspanel reload                                          | arceuspanel.command.reload        | Reloads the configuration files.                                                                   |
| /arceuspanel open \[\<player>]                               | arceuspanel.command.open          | Opens the user interface.                                                                          |
| /arceuspanel givecurrency \<player> \<amount>                | arceuspanel.command.givecurrency  | Gives an item currency to the player.                                                              |
| /arceuspanel addbalance \<player> \<amount>                  | arceuspanel.command.addbalance    | Adds funds to the player\`s bank account.                                                          |
| /arceuspanel removebalance \<player> \<amount>               | arceuspanel.command.removebalance | Removes funds from the player\`s bank account.                                                     |
| /arceuspanel bank balance/transfer \[\<player>] \[\<amount>] | arceuspanel.command.bank          | Check player or other players balance in the bank or transfer funds to other players bank account. |
| /arceuspanel givemodifier \<player> \<modifier> \<amount>    | arceuspanel.command.givemodifier  | Gives an item modifier to the player.                                                              |

## Extra Permissions

| arceuspanel.open.targetothers  | Allows the player to open the user interface to other players. |
| ------------------------------ | -------------------------------------------------------------- |
| arceuspanel.bank.balanceothers | Allows the player to check other players balance in the bank.  |

## Main Configuration

<details>

<summary>Expand</summary>

```json
{
  "CommandAlias": [
    "arceuspanel",
    "apanel"
  ],
  "ImpactorCurrency": "impactor:dollars",
  # These options will be use in the size selection UI.
  "PokemonSizes": {
    "&6Microscopic": 0.33,
    "&6Pygmy": 0.5,
    "&6Runt": 0.75,
    "&6Small": 0.9,
    "&6Ordinary": 1.0,
    "&6Huge": 1.1,
    "&6Giant": 1.25,
    "&6Enormous": 1.5,
    "&6Ginormous": 1.66
  },
  "CurrencyItemEnchanted": true,
  "CurrencyItem": "cobblemon:relic_coin",
  "CurrencyItemName": "&aArkCoin",
  "CurrencyItemLore": [
    "&eA coin that was created by arceus using its plates.",
    "&eLegends said that it can create, modify, and unite pokemon."
  ],
  "CurrencyItemNbt": [
    "String/arceuspanel/currency"
  ],
  "UserInterfaceRows": 3,
  "UserInterfaceTitle": "            &#404040Arceus Panel",
  "UserInterface": {
    "0": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "1": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "2": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "3": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "4": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "5": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "6": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "7": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "8": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "9": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "11": {
      "Type": "creation",
      "DisplayItem": "minecraft:book",
      "DisplayName": "&6Plate of Creation"
    },
    "13": {
      "Type": "modification",
      "DisplayItem": "minecraft:anvil",
      "DisplayName": "&6Plate of Modification"
    },
    "15": {
      "Type": "unification",
      "DisplayItem": "minecraft:nether_star",
      "DisplayName": "&6Plate of Unification"
    },
    "17": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "18": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "19": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "20": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "21": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "22": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "23": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "24": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "25": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "26": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    }
  },
  "PokemonSelectionUserInterfaceRows": 3,
  "PokemonSelectionUserInterfaceTitle": "       &#404040Select the Pokemon",
  "PokemonSelectionUserInterface": {
    "0": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "1": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "2": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "3": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "4": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "5": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "6": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "7": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "8": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "9": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "10": {
      "Type": "pokemon1",
      "DisplayItem": "cobblemon:poke_ball",
      "DisplayName": "&cNo pokemon in party slot 1"
    },
    "11": {
      "Type": "pokemon2",
      "DisplayItem": "cobblemon:poke_ball",
      "DisplayName": "&cNo pokemon in party slot 2"
    },
    "12": {
      "Type": "pokemon3",
      "DisplayItem": "cobblemon:poke_ball",
      "DisplayName": "&cNo pokemon in party slot 3"
    },
    "14": {
      "Type": "pokemon4",
      "DisplayItem": "cobblemon:poke_ball",
      "DisplayName": "&cNo pokemon in party slot 4"
    },
    "15": {
      "Type": "pokemon5",
      "DisplayItem": "cobblemon:poke_ball",
      "DisplayName": "&cNo pokemon in party slot 5"
    },
    "16": {
      "Type": "pokemon6",
      "DisplayItem": "cobblemon:poke_ball",
      "DisplayName": "&cNo pokemon in party slot 6"
    },
    "17": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "18": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "19": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "20": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "21": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "22": {
      "Type": "back",
      "DisplayItem": "cobblemon:eject_button",
      "DisplayName": "&6Back"
    },
    "23": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "24": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "25": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "26": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    }
  },
  "ItemSelectionUserInterfaceTitle": "           &#404040Select the item",
  "SelectionUserInterfaceRows": 5,
  "SelectionUserInterface": {
    "0": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "1": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "2": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "3": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "4": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "5": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "6": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "7": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "8": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "9": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "17": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "18": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "26": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "27": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "35": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "36": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "37": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "38": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "39": {
      "Type": "previous",
      "DisplayItem": "minecraft:spectral_arrow",
      "DisplayName": "&6Previous"
    },
    "40": {
      "Type": "back",
      "DisplayItem": "cobblemon:eject_button",
      "DisplayName": "&6Back"
    },
    "41": {
      "Type": "next",
      "DisplayItem": "minecraft:spectral_arrow",
      "DisplayName": "&6Next"
    },
    "42": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "43": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "44": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    }
  }
}
```

</details>

## Creation Configuration

<details>

<summary>Expand</summary>

```json
{
  # Use 'item' for item currency.
  # Use 'impactor' for impactor currency.
  # Use 'bank' for bank currency.
  "Currency": "item",
  # This will be added on the total price.
  "BasePrice": 1,
  # If true, the pokemon will be given directly instead of spawning it at the player`s location.
  "AutoCapture": false,
  # List of properties that won`t be allowed to be created.
  "BlacklistedProperties": [
    "mewtwo shiny=true",
    "hiddenability"
  ],
  # The added price base on their properties.
  "CustomPrices": {
    # Creating a Magikarp with Jolly nature will cost 5.
    "magikarp nature=jolly": 5,
    "shiny=true": 2
  },
  # The list of properties that will be added to the pokemon after creation.
  "AddedProperties": [
    "lvl=1",
    "shiny=false"
  ],
  "UserInterfaceRows": 6,
  "UserInterfaceTitle": "         &#404040Plate of Creation",
  "UserInterface": {
    "0": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "1": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "2": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "3": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "4": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "5": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "6": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "7": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "8": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "9": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "13": {
      "Type": "pokemon",
      "DisplayItem": "cobblemon:poke_ball",
      "DisplayName": "&6Click to enter a pokemon"
    },
    "17": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "18": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "21": {
      "Type": "back",
      "DisplayItem": "cobblemon:eject_button",
      "DisplayName": "&6Back"
    },
    "23": {
      "Type": "balance",
      "DisplayEnchanted": true,
      "DisplayItem": "cobblemon:relic_coin",
      "DisplayName": "&6You have %balance% ArkCoin"
    },
    "26": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "27": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "29": {
      "Type": "level",
      "DisplayItem": "cobblemon:rare_candy",
      "DisplayName": "&6Level"
    },
    "30": {
      "Type": "ability",
      "DisplayItem": "cobblemon:ability_capsule",
      "DisplayName": "&6Ability"
    },
    "31": {
      "Type": "nature",
      "DisplayItem": "cobblemon:adamant_mint",
      "DisplayName": "&6Nature"
    },
    "32": {
      "Type": "gender",
      "DisplayItem": "cobblemon:love_sweet",
      "DisplayName": "&6Gender"
    },
    "33": {
      "Type": "evs",
      "DisplayItem": "cobblemon:power_weight",
      "DisplayName": "&6EVs"
    },
    "35": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "36": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "37": {
      "Type": "ivs",
      "DisplayItem": "cobblemon:power_lens",
      "DisplayName": "&6IVs"
    },
    "38": {
      "Type": "held_item",
      "DisplayItem": "cobblemon:exp_share",
      "DisplayName": "&6Held Item"
    },
    "39": {
      "Type": "moves",
      "DisplayItem": "cobblemon:dubious_disc",
      "DisplayName": "&6Moves"
    },
    "40": {
      "Type": "size",
      "DisplayItem": "cobblemon:growth_mulch",
      "DisplayName": "&6Size"
    },
    "41": {
      "Type": "friendship",
      "DisplayItem": "cobblemon:soothe_bell",
      "DisplayName": "&6Friendship"
    },
    "42": {
      "Type": "aspect",
      "DisplayItem": "cobblemon:upgrade",
      "DisplayName": "&6Aspect"
    },
    "43": {
      "Type": "ball",
      "DisplayItem": "cobblemon:red_apricorn",
      "DisplayName": "&6Poké Ball"
    },
    "44": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "45": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "46": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "47": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "48": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "49": {
      "Type": "confirm",
      "DisplayItem": "minecraft:nether_star",
      "DisplayName": "&6Confirm (Shift + Left Click to Execute)",
      "DisplayLore": [
        "&ePrice: %price% ArkCoin"
      ]
    },
    "50": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "51": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "52": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "53": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    }
  }
}
```

</details>

## Modification Configuration

<details>

<summary>Expand</summary>

```json
{
  "Currency": "item",
  "BasePrice": 1,
  "PricePerLevel": 2,
  "PricePerEV": 2,
  "PricePerIV": 2,
  "PricePerFriendship": 2,
  # List of properties that won`t be allowed to use the specified modification.
  "BlacklistedProperties": {
    "aspect": [
      "bidoof shiny=true hiddenability",
      "mew"
    ],
    "ability": [
      "mewtwo",
      "magikarp shiny=true"
    ]
  },
  # List of properties that will be getting an added or multiplied total price.
  "PriceMultipliers": {
    "magikarp shiny=true": "+2",
    "mewtwo": "x2"
  },
  # The prices for each modification.
  # 'all' - every value of that modification will have the specified price.
  # Put -1 to prevent the value from being selected/displayed.
  "CustomPrices": {
    "nature": {
      "all": 3,
      "adamant": 10
    },
    "ability": {
      "hidden_ability": 5
    }
  },
  # List of custom modification that will be added to the exising modification.
  # Any properties you have are supported.
  "CustomModifications": {
    # The Identification of the custom modification (Case Sensitive).
    # To add the custom modification in user interface, put the Identification in the button Type.
    # Same process for ConfirmationTitles in the messages configuration.
    "ShinyHA": {
      "Price": 50,
      "Properties": [
        "shiny=true ha"
      ]
    },
    "GoldenOP": {
      "Price": 100,
      "Properties": [
        "shiny=true",
        "lvl=100 hp_iv=31 attack_iv=31 defence_iv=31 special_attack_iv=31 special_defence_iv=31 speed_iv=31 "
      ]
    }
  },
  # The list of properties that will be added to the pokemon after on the specified modification.
  "AddedProperties": {
    "ivs": [
      "lvl=1",
      "shiny=false"
    ],
    "ability": [
      "lvl=1",
      "shiny=false"
    ]
  },
  "UserInterfaceRows": 6,
  "UserInterfaceTitle": "       &#404040Plate of Modification",
  "UserInterface": {
    "0": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "1": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "2": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "3": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "4": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "5": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "6": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "7": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "8": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "9": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "11": {
      "Type": "back",
      "DisplayItem": "cobblemon:eject_button",
      "DisplayName": "&6Back"
    },
    "13": {
      "Type": "pokemon"
    },
    "15": {
      "Type": "balance",
      "DisplayEnchanted": true,
      "DisplayItem": "cobblemon:relic_coin",
      "DisplayName": "&6You have %balance% ArkCoin"
    },
    "17": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "18": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "21": {
      "Type": "ShinyHA",
      "DisplayItem": "cobblemon:exp_candy_l",
      "DisplayName": "&6Shiny and HA",
      "DisplayLore": [
        "&ePrice: %price% ArkCoin"
      ]
    },
    "22": {
      "Type": "GoldenOP",
      "DisplayItem": "cobblemon:exp_candy_xl",
      "DisplayName": "&6Shiny, Lvl 100, and Max IVs",
      "DisplayLore": [
        "&ePrice: %price% ArkCoin"
      ]
    },
    "23": {
      "Type": "original_trainer",
      "DisplayItem": "cobblemon:red_card",
      "DisplayName": "&6Original Trainer",
      "DisplayLore": [
        "&ePrice: %price% ArkCoin"
      ]
    },
    "26": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "27": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "29": {
      "Type": "level",
      "DisplayItem": "cobblemon:rare_candy",
      "DisplayName": "&6Level"
    },
    "30": {
      "Type": "ability",
      "DisplayItem": "cobblemon:ability_capsule",
      "DisplayName": "&6Ability"
    },
    "31": {
      "Type": "nature",
      "DisplayItem": "cobblemon:adamant_mint",
      "DisplayName": "&6Nature"
    },
    "32": {
      "Type": "gender",
      "DisplayItem": "cobblemon:love_sweet",
      "DisplayName": "&6Gender",
      "DisplayLore": [
        "&ePrice: %price% ArkCoin"
      ]
    },
    "33": {
      "Type": "evs",
      "DisplayItem": "cobblemon:power_weight",
      "DisplayName": "&6EVs"
    },
    "35": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "36": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "37": {
      "Type": "ivs",
      "DisplayItem": "cobblemon:power_lens",
      "DisplayName": "&6IVs"
    },
    "38": {
      "Type": "held_item",
      "DisplayItem": "cobblemon:exp_share",
      "DisplayName": "&6Held Item"
    },
    "39": {
      "Type": "moves",
      "DisplayItem": "cobblemon:dubious_disc",
      "DisplayName": "&6Moves"
    },
    "40": {
      "Type": "size",
      "DisplayItem": "cobblemon:growth_mulch",
      "DisplayName": "&6Size"
    },
    "41": {
      "Type": "friendship",
      "DisplayItem": "cobblemon:soothe_bell",
      "DisplayName": "&6Friendship"
    },
    "42": {
      "Type": "aspect",
      "DisplayItem": "cobblemon:upgrade",
      "DisplayName": "&6Aspect"
    },
    "43": {
      "Type": "ball",
      "DisplayItem": "cobblemon:red_apricorn",
      "DisplayName": "&6Poké Ball"
    },
    "44": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "45": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "46": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "47": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "48": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "49": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "50": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "51": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "52": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "53": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    }
  },
  "ConfirmationUserInterfaceRows": 3,
  "ConfirmationUserInterface": {
    "0": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "1": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "2": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "3": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "4": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "5": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "6": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "7": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "8": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "9": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "11": {
      "Type": "yes_button",
      "DisplayItem": "minecraft:lime_wool",
      "DisplayName": "&aYes (Price: %price% ArkCoin)"
    },
    "15": {
      "Type": "no_button",
      "DisplayItem": "minecraft:red_wool",
      "DisplayName": "&cNo (Price: free XD)"
    },
    "17": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "18": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "19": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "20": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "21": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "22": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "23": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "24": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "25": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "26": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    }
  }
}
```

</details>

## Unification Configuration

<details>

<summary>Expand</summary>

```json
{
  "Currency": "item",
  "BasePrice": 1,
  "PricePerSameSpecies": 2,
  # List of properties that won`t be allowed to be united.
  "SameSpeciesBlacklistedProperties": [
    "mewtwo",
    "caterpie shiny=true"
  ],
  "SameSpeciesPropertiesPrice": {
    "hiddenability": 2,
    "shiny=true": 1
  },
  # The list of properties that will be added to the pokemon after unification.
  "SameSpeciesAddedProperties": [
    "lvl=1",
    "shiny=false"
  ],
  "CustomUnification": [
    {
      "Price": 5,
      "RequiredItems": [
        "minecraft:elytra"
      ],
      "RequiredProperties": [
        "bidoof",
        "magikarp"
      ],
      "PropertiesResult": "rayquaza",
      "DisplayName": "&eRayquaza",
      "DisplayLore": [
        "&7Unknown Statistics"
      ]
    },
    {
      "Price": 5,
      "RequiredProperties": [
        "mew",
        "caterpie shiny"
      ],
      "PropertiesResult": "mewtwo level=100",
      "DisplayName": "&eMewtwo",
      "DisplayLore": [
        "&bLevel 100"
      ]
    }
  ],
  "SameSpeciesResultDisplayName": "&e%pokemon%",
  "SameSpeciesResultDisplayLore": [
    "&6Level: &b%level%",
    "&6IVs: &b%iv_hp%&7/&b%iv_atk%&7/&b%iv_def%&7/&b%iv_spa%&7/&b%iv_spd%&7/&b%iv_spe% &b(%iv_percentage%%)",
    "&6Aspects: &b%aspects%",
    " ",
    "&6Possible Size: &b%sizes%",
    "&6Possible Gender: &b%genders%",
    "&6Possible Nature: &b%natures%",
    "&6Possible Ability: &b%abilities%",
    "&6Possible Poké Ball: &b%balls%"
  ],
  "UserInterfaceRows": 5,
  "UserInterfaceTitle": "        &#404040Plate of Unification",
  "UserInterface": {
    "0": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "1": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "2": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "3": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "4": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "5": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "6": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "7": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "8": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "9": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "10": {
      "Type": "back",
      "DisplayItem": "cobblemon:eject_button",
      "DisplayName": "&6Back"
    },
    "11": {
      "Type": "balance",
      "DisplayEnchanted": true,
      "DisplayItem": "cobblemon:relic_coin",
      "DisplayName": "&6You have %balance% ArkCoin"
    },
    "12": {
      "Type": "confirm",
      "DisplayItem": "minecraft:nether_star",
      "DisplayName": "&6Confirm (Shift + Left Click to Execute)",
      "DisplayLore": [
        "&ePrice: %price% ArkCoin"
      ]
    },
    "17": {
      "DisplayItem": "minecraft:red_stained_glass_pane"
    },
    "18": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "19": {
      "Type": "item_input",
      "DisplayItem": "minecraft:chest",
      "DisplayName": "&6Click to add item"
    },
    "20": {
      "Type": "item_input",
      "DisplayItem": "minecraft:chest",
      "DisplayName": "&6Click to add item"
    },
    "21": {
      "Type": "item_input",
      "DisplayItem": "minecraft:chest",
      "DisplayName": "&6Click to add item"
    },
    "24": {
      "Type": "result",
      "DisplayItem": "minecraft:barrier",
      "DisplayName": "&6No Result"
    },
    "26": {
      "DisplayItem": "minecraft:black_stained_glass_pane"
    },
    "27": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "28": {
      "Type": "pokemon_input",
      "DisplayItem": "cobblemon:poke_ball",
      "DisplayName": "&6Click to add pokemon"
    },
    "29": {
      "Type": "pokemon_input",
      "DisplayItem": "cobblemon:poke_ball",
      "DisplayName": "&6Click to add pokemon"
    },
    "30": {
      "Type": "pokemon_input",
      "DisplayItem": "cobblemon:poke_ball",
      "DisplayName": "&6Click to add pokemon"
    },
    "35": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "36": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "37": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "38": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "39": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "40": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "41": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "42": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "43": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    },
    "44": {
      "DisplayItem": "minecraft:white_stained_glass_pane"
    }
  }
}
```

</details>

## Item Modifiers Configuration

<details>

<summary>Expand</summary>

```json
{
  "Modifiers": {
    "OriginalTrainer": {
      # The chance of failing to apply the modification. (1-100)
      "FailChance": 0,
      # The properties to apply to the pokemon.
      "AppliedProperties": "originaltrainer",
      # The list of properties that can only use this modification.
      "WhitelistedProperties": [],
      # The list of properties that cannot use this modification.
      "BlacklistedProperties": [],
      "ItemEnchanted": true,
      "ItemID": "cobblemon:red_card",
      "ItemName": "&6Original Trainer Modifier",
      "ItemLore": [
        "&eRight Click the pokemon to change the pokemon OT to you."
      ]
    },
    "HiddenAbility": {
      "FailChance": 50,
      "AppliedProperties": "hiddenability",
      "WhitelistedProperties": [],
      "BlacklistedProperties": [],
      "ItemEnchanted": true,
      "ItemID": "cobblemon:ability_capsule",
      "ItemName": "&6Hidden Ability Modifier",
      "ItemLore": [
        "&eRight Click the pokemon to change its ability into hidden ability.",
        "&cHas a 50% chance of failing."
      ]
    },
    "level100": {
      "FailChance": 0,
      "AppliedProperties": "level=100",
      "WhitelistedProperties": [],
      "BlacklistedProperties": [],
      "ItemEnchanted": true,
      "ItemID": "cobblemon:rare_candy",
      "ItemName": "&6Level 100 Modifier",
      "ItemLore": [
        "&eRight Click the pokemon to change its level to 100."
      ]
    },
    "Shiny": {
      "FailChance": 0,
      "AppliedProperties": "shiny",
      "WhitelistedProperties": [],
      "BlacklistedProperties": [],
      "ItemEnchanted": true,
      "ItemID": "cobblemon:shiny_stone",
      "ItemName": "&6Shiny Modifier",
      "ItemLore": [
        "&eRight Click the pokemon to make it shiny."
      ]
    }
  }
}
```

</details>

## Messages Configuration

<details>

<summary>Expand</summary>

```json
{
  "InsufficientItemCurrency": "&cInsufficient funds, you need %price% ArkCoin.",
  "InsufficientImpactorCurrency": "&cInsufficient funds, you need %price% PokeDollar.",
  "InsufficientBankBalance": "&cInsufficient funds, you need to have a balance of %price% in the Bank.",
  "InvalidPokemonName": "&cNo pokemon found with the name %name%",
  "PropertyBlacklisted": "&cThe property %property% is blacklisted",
  "InvalidInteger": "&cEnter a valid integer.",
  "PlayerNotFound": "&cThe player %player% does not exist.",
  "OnPokemonCreation": "&aThe pokemon %pokemon% fell down from the sky.",
  "AddedBalance": "&aThe amount of %amount% has been added to your bank account.",
  "NeedBankArgs": "&cPlease enter transfer or balance.",
  "BankBalanceSelf": "&aYou have %balance% balance in your bank account.",
  "BankBalanceOther": "&aThe player %player% has %balance% balance in their bank account.",
  "BankTransferSender": "&aThe amount of %amount% has been transfered to %player%`s bank account.",
  "BankTransferReceiver": "&aYou receive %amount% from %player%`s bank account.",
  "CurrencyItemReceived": "&aYou received %amount% ArkCoin.",
  "ModifierReceived": "&aYou received %amount% %modifier%&r.",
  "ModifierNotWhitelisted": "&cThis modifier is not suitable for this pokemon.",
  "ModifierBlacklisted": "&cUsing this modifier on %property% is not allowed.",
  "ModifierFail": "&cThe modifier has failed to apply the modification!",
  "ModifierApplied": "&aThe %modifier% &ahas been applied to %pokemon%.",
  "DialogueSpeakerPokemon": "pikachu",
  "DialogueSpeakerPlayerUUID": "",
  "DialogueSpeakerName": "&6Professor Pikachu",
  "PokemonInputDialogueText": [
    "&8Enter the pokemon name."
  ],
  "CreationLevelDialogueText": [
    "&8Enter the pokemon level."
  ],
  "CreationFriendshipDialogueText": [
    "&8Enter the pokemon friendship."
  ],
  "CreationEvsDialogueText": [
    "Enter the pokemon %stat% EVs stat."
  ],
  "CreationIvsDialogueText": [
    "Enter the pokemon %stat% IVs stat."
  ],
  "ModificationLevelDialogueText": [
    "&8Enter the amount of level(s) to add."
  ],
  "ModificationFriendshipDialogueText": [
    "&8Enter the amount of friendship point(s) to add."
  ],
  "ModificationEvsDialogueText": [
    "Add '+' to add points or '-' to remove points to %stat% EVs stat. e.g +20 adds 20 EVs points to your pokemon %stat% stat."
  ],
  "ModificationIvsDialogueText": [
    "Add '+' to add points or '-' to remove points to %stat% IVs stat. e.g +20 adds 20 IVs points to your pokemon %stat% stat."
  ],
  "NicknameDialogueText": [
    "&8Enter the pokemon nickname, leave blank to use its default name. Using color codes are allowed."
  ],
  "MissingMathSymbols": "&cEnter '+' for addition or '-' for subtraction. e.g +20 will add 20 to the current value.",
  "PriceText": "&ePrice: %price% ArkCoin",
  "BlacklistedText": " &c(Blacklisted)",
  "NoneText": "&bNone",
  "HeldItemDisplayName": "&6%held_item%",
  "AbilityDisplayName": "&6%ability%",
  "HiddenAbilityText": " &b(Hidden Ability)",
  "NatureDisplayName": "&6%nature% %effect%",
  "NatureEffectText": "&7(&a+ %increased_stat%&7) (&c- %decreased_stat%&7)",
  "AspectDisplayName": "&6%aspect%",
  "BallTypeDisplayName": "&6%ball%",
  "HPDisplayName": "&6HP&r",
  "AttackDisplayName": "&6Attack&r",
  "DefenseDisplayName": "&6Defense&r",
  "SpecialAttackDisplayName": "&6Special Attack&r",
  "SpecialDefenseDisplayName": "&6Special Defense&r",
  "SpeedDisplayName": "&6Speed&r",
  "MoveLore": [
    "&6Type: &b%type%",
    "&6Power: &b%power%",
    "&6Accuracy: &b%accuracy%",
    "&6Power Points: &b%pp%",
    "&6Description: &7%description%"
  ],
  "PokemonSpriteTitle": "&a%pokemon% %nickname%",
  "PokemonSpriteLore": [
    "&6Level: &b%level%",
    "&6Friendship: &b%friendship%",
    "&6Nature: &b%nature%",
    "&6Ability: &b%ability%",
    " ",
    "&6Size: &b%size%",
    "&6Poké Ball: &b%ball%",
    "&6Held Item: &b%held_item%",
    "&6Original Trainer: &b%original_trainer%",
    "&6Aspects: &b%aspects%",
    " ",
    "&6IVs: &b%iv_hp%&7/&b%iv_atk%&7/&b%iv_def%&7/&b%iv_spa%&7/&b%iv_spd%&7/&b%iv_spe% &b(%iv_percentage%%)",
    "&6EVs: &b%ev_hp%&7/&b%ev_atk%&7/&b%ev_def%&7/&b%ev_spa%&7/&b%ev_spd%&7/&b%ev_spe% &b(%ev_total%)",
    " ",
    "&6Moves: &b%move_1%&7/&b%move_2%&7/&b%move_3%&7/&b%move_4%"
  ],
  "ConfirmationTitles": {
    "ShinyHA": "Shiny and HA",
    "GoldenOP": "Shiny, Lvl 100, and Max IVs",
    "friendship": "&lFriendship ➤ %value%",
    "evs": "&lEVs %stat% ➤ %value%",
    "gender": "&lGender ➤ %value%",
    "nature": "&lNature ➤ %value%",
    "level": "&lLevel ➤ %value%",
    "ivs": "&lIVs %stat% ➤ %value%",
    "held_item": "&lHeld Item ➤ %value%",
    "original_trainer": "&lSets the pokemon OT to you",
    "ball": "&lPoké Ball ➤ %value%",
    "size": "&lSize ➤ %value%",
    "moves": "&l%move% ➤ %value%",
    "aspect": "&lAspect ➤ %value%",
    "nickname": "&lNickname ➤ %value%",
    "ability": "&lAbility ➤ %value%"
  },
  "SelectionTitles": {
    "ball": "&lPoké Ball Selection",
    "evs": "&lEVs Selection",
    "size": "&lSize Selection",
    "replace_move": "&lSelect move to replace",
    "nature": "&lNature Selection",
    "moves": "&lMove Selection",
    "aspect": "&lAspect Selection",
    "ivs": "&lIVs Selection",
    "held_item": "&lHeld Item Selection",
    "ability": "&lAbility Selection"
  },
  "TypeColors": {
    "Water": "&#539AE2",
    "Fighting": "&#CB5F48",
    "Rock": "&#B2A061",
    "Ground": "&#CC9F4F",
    "Electric": "&#E5C531",
    "Ice": "&#70CBD4",
    "Grass": "&#71C558",
    "Normal": "&#C0C0C0",
    "Steel": "&#89A1B0",
    "Dragon": "&#6A7BAF",
    "Flying": "&#7DA6DE",
    "Psychic": "&#E5709B",
    "Bug": "&#94BC4A",
    "Ghost": "&#846AB6",
    "Dark": "&#736C75",
    "Fire": "&#EA7A3C",
    "Poison": "&#B468B7",
    "Fairy": "&#E397D1"
  }
}
```

</details>

## Dependencies

* Java 21
* [GooeyLibs Fabric 1.21.1](https://modrinth.com/mod/gooeylibs)
* [Cobblemon Fabric 1.21.1](https://modrinth.com/mod/cobblemon/)
* (Optional) [Impactor Fabric 1.21.1](https://modrinth.com/mod/impactor)

## Example

{% embed url="<https://www.youtube.com/watch?v=ctDDt-vIoIk>" %}
