Species Features
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.
- Open your target Pokémon's
species
file - 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>"]
- 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!
- Create a new text file and name it after your Pokémon. Include the extension of
.json
- Example:
bulbasaur.json
- Example:
- Insert the following data into this new species_addition JSON:
{
"target": "cobblemon:example",
"features": ["custom_feature"],
"forms": [
{
example form data
}
]
}
- Change
"cobblemon:example"
to reference the Pokémon you want to add a form to. It must remain in quotes.- Example:
"cobblemon:bulbasaur"
- Example:
- Change
"custom_feature"
to the feature you made earlier. It must remain in quotes. - 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.
- 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"]
- Save the file.
- 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.
- Create a new text file and name it after your idea. Include the extension of
.json
- Example:
spinda_spots.json
- Example:
- 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>"]
}
- Change
"<target_pokemon_#>"
to reference the Pokémon you want to add the features to. It must remain in quotes.- Example:
["bulbasaur", "ivysaur", "venusaur"]
- Example:
- Change
"<feature_#>"
to the feature(s) you made earlier. It must remain in quotes. - Save the file.
- 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