Join our discord
In partnership with NodeCraft Logo NodeCraft


You are not logged in! Create an account or login to contribute! Log in here!

Model Locators

From Pixelmon Wiki
Revision as of 04:39, 17 February 2023 by Snowyfeather (talk | contribs) (New page for the modelLocators, updated for more precise language.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Model Predicates

As of 9.1.3, the Species Datapacks have unified "flyingModelLocator" and "modelLocator" into one field called "modelLocators". This format still contains support for the old formats, and will not break pre-existing datapacks.

The list of model locators order is important as it dictates priority. For example, if a flying model was at the top, then that is the first to get checked, then it keeps going down the list until it returns back to "always", ending the check.


This is an example for Cyclizar. The "pixelmon:always" model predicate type always has to be last as this always returns "true", which means anything after it will just be ignored.

Then for this example the "riding" predicate means that model locator information will be used when a player is riding the Pokémon.

             "modelLocators": [
               {
                 "factoryType": "NORMAL",
                 "modelPredicate": {
                   "type": "pixelmon:riding"
                 },
                 "pqc": [
                   "pixelmon:pokemon/967_cyclizar/all/base/none/riding/model.pqc"
                 ]
               },
               {
                 "factoryType": "NORMAL",
                 "modelPredicate": {
                   "type": "pixelmon:always"
                 },
                 "pqc": [
                   "pixelmon:pokemon/967_cyclizar/all/base/none/model.pqc"
                 ]
               }
             ], 

There are also "flying" and "battle" types. Types can be registered servier-side using a sidemod, so a client side mod is not needed.

Here's an example of a flying one:

             "modelLocators": [
               {
                 "factoryType": "NORMAL",
                 "modelPredicate": {
                   "type": "pixelmon:flying",
                   "flying_delay_limit": 10
                 },
                 "pqc": [
                   "pixelmon:pokemon/967_cyclizar/all/base/none/riding/model.pqc"
                 ]
               },
               {
                 "factoryType": "NORMAL",
                 "modelPredicate": {
                   "type": "pixelmon:always"
                 },
                 "pqc": [
                   "pixelmon:pokemon/967_cyclizar/all/base/none/model.pqc"
                 ]
               }
             ],

The "pixelmon:flying" predicate type is for a Pokémon that the player is using for flying. As mentioned before, the model predicate for "pixelmon:flying" comes before the "pixelmon:always" since "pixelmon:always" is the default model predicate to return to.

© 2012 - 2025 Pixelmon Mod