Species Features

Revision as of 11:28, 24 July 2023 by Frank The Farmer (talk | contribs) (Created page with "{{TOC|right}} == Preface == Creating Pokémon variants starts at the creation of the <code>species_features</code> file. This file creates one or many <code>aspects</code> that can each be assigned its own assets in the <code>resolver</code> files. Pokémon that are assigned with a feature can also assign each aspect with its own set of stats in the <code>species</code> files using <code>forms</code>. This article will give some examples of species features and break do...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Preface

Creating Pokémon variants starts at the creation of the species_features file. This file creates one or many aspects that can each be assigned its own assets in the resolver files. Pokémon that are assigned with a feature can also assign each aspect with its own set of stats in the species files using forms.

This article will give some examples of species features and break down its different properties.

Species Feature Breakdown

There are two types of species features. The flag type feature creates a single aspect and is often used in the creation of regional forms. The choice type feature creates a pool of aspects and is often used in the creation of Pokémon that require multiple textures like Basculin or Alcremie.

Flag Type

Here is a breakdown of the alolan species feature. Hover over the underlined text to see more information.

{
 "keys": ["alolan"],
 "type": "flag",
 "isAspect": true,
 "default": false
}

Choice Type

Here is a breakdown of the pumpkin_size species feature. Hover over the underlined text to see more information.

{
 "type": "choice",
 "keys": ["pumpkin_size"],
 "default": "random",
 "choices": [
   "small",
   "average",
   "large",
   "super"
 ],
 "isAspect": true,
 "aspectFormat": "pumpkin-size-{{choice}}"
}
  • You can list as many choices as you like and name them whatever you like

Species Feature Examples

This section will list a couple of examples you may use a template for your own species_features. The formats generally stay the same, but the values can be changed if desired.

Regional Variants

You can borrow one of the following examples if you'd like to create a feature for custom regional Pokémon. Most regional features use the flag type format. The one exception is Tauros' Paldean breed feature.

  • Galarian
{
 "keys": ["galarian"],
 "type": "flag",
 "isAspect": true,
 "default": false
}


  • Hisuian
{
 "keys": ["hisuian"],
 "type": "flag",
 "isAspect": true,
 "default": false
}

Variants With Multiple Textures

You can borrow one of the following examples if you'd like to create a Pokemon that will have more than one model or texture. These types of Pokémon always use the choice type format. You can assign multiple choice type features to a single Pokémon like with Alcremie and Spinda. Combining the different sub-aspects of 2 or more aspect pools exponentially increases the number of unique variants as a result.

  • Arbok's Snake Patterns
{
 "type": "choice",
 "keys": ["snake_pattern"],
 "default": "random",
 "choices": [
   "classic",
   "legacy",
   "attack",
   "dark",
   "elusive",
   "heart",
   "speed",
   "sound"
 ],
 "isAspect": true,
 "aspectFormat": "snake-pattern-{{choice}}"
}


  • Alcremie's Cream And Decoration Features
    • Cream
{
 "type": "choice",
 "keys": ["cream"],
 "default": "random",
 "choices": [
   "vanilla",
   "ruby",
   "matcha",
   "mint",
   "lemon",
   "salted",
   "ruby_swirl",
   "caramel_swirl",
   "rainbow_swirl"
 ],
 "isAspect": true,
 "aspectFormat": "cream-{{choice}}"
}
    • Decoration
{
 "type": "choice",
 "keys": ["decoration"],
 "default": "random",
 "choices": [
   "strawberry",
   "berry",
   "love",
   "star",
   "clover",
   "flower",
   "ribbon"
 ],
 "isAspect": true,
 "aspectFormat": "decoration-{{choice}}"
}


Assigning a Species Feature

A Pokémon can't use the aspects from a species feature if it is never assigned to its species file. There are 3 different ways you can assign a feature to a species file. Although each method achieves the same purpose, one method will always be the most efficient depending on the addon you want to make.

Writing the feature directly into the species file

This method is most efficient when you are the creator of both the custom Pokémon species and the custom species feature. Assuming you created both, you can just insert the feature into the species file instead of creating a new file for one of the other options. Do not forget to assign the aspect to any special forms if you made any.

  1. Open your target Pokémon's species file
  2. Insert the following line of data somewhere in the species file
    • Do not insert this line in another property's brackets
    • Remember to include commas when necessary

"features": ["<your_feature>"]

  1. Save the file

The target Pokémon should now be assigned a new species feature!


Creating a "species addition" file

This method is most efficient when you want to create a regional variant or similar feature for a Pokémon you didn't make. The species addition file is a helpful way of adding a feature and form data to a Pokémon without having to edit the main species file. This method should also allow your addon to stay compatible with other addons that want to add data to the same Pokémon!

  1. Create a new text file and name it after your Pokémon. Include the extension of .json
    • Example: bulbasaur.json
  2. Insert the following data into this new species_addition JSON:
{
  "target": "cobblemon:example",
  "features": ["custom_feature"],
  "forms": [
    {
      example form data
    }
  ]
}
  1. Change "cobblemon:example" to reference the Pokémon you want to add a form to. It must remain in quotes.
    • Example: "cobblemon:bulbasaur"
  2. Change "custom_feature" to the feature you made earlier. It must remain in quotes.
  3. Write all the data for your form inside of the curly brackets
    • The average form data is too long to list as an example for this guide. It's like writing data for an entirely different Pokémon, which is kind of what a regional variant is like.
    • If you need an example, you can look at the "forms" data for Vulpix on the Gitlab. It starts on line 29 and ends on line 204.
    • Remember to include evolution data if this regional variant can evolve.
  4. Write your species feature name into the "aspects" section of your "forms" data.
    • Include the line for aspects if it doesn't exist yet. It should look like this:
  "aspects": ["custom_feature"]
  1. Save the file.
  2. Place this new species addition file into the species_additions folder of your addon.
    • Create this folder if needed

Your target Pokémon should now be assigned a new feature and some new stats for its special form.


Creating a "species feature assignment" file

This method is most efficient when you want to assign one or more Pokémon with one or more features. This can be helpful if you want to assign a feature to an entire evolutionary line that you or somebody else made. It can also be helpful if you want to apply a list of features to a single Pokémon.

  1. Create a new text file and name it after your idea. Include the extension of .json
    • Example: spinda_spots.json
  2. Insert the following data into this new species_addition JSON:
    • You can list as many Pokémon or features as you need
{
  "pokemon": ["<target_pokemon_1>", "<target_pokemon_2>"],
  "features": ["<feature_1>", "<feature_2>"]
}
  1. Change "<target_pokemon_#>" to reference the Pokémon you want to add the features to. It must remain in quotes.
    • Example: ["bulbasaur", "ivysaur", "venusaur"]
  2. Change "<feature_#>" to the feature(s) you made earlier. It must remain in quotes.
  3. Save the file.
  4. Place this new file into the species_feature_assignments folder of your addon.
    • Create this folder if needed

Depending on what you wrote, the listed Pokémon should now have the listed features