Pokémon/Behaviour: Difference between revisions
mNo edit summary |
(Nobody noticed 😏) |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
A Pokémon's AI behaviour is configurable from their species JSON. This is used control whether it can walk, swim, or fly as well as the speed it moves while doing each of those, whether or not it can fall asleep, and various other things. | A Pokémon's AI behaviour is configurable from their species JSON. This is used control whether it can walk, swim, or fly as well as the speed it moves while doing each of those, whether or not it can fall asleep, and various other things. | ||
The default is a land-moving AI that moves at a brisk pace, cannot breathe underwater, and does not sleep. | '''If you don't include any of the following behavior properties in your species JSON, the Pokémon will use default AI behavior. The default is a land-moving AI that moves at a brisk pace, cannot breathe underwater, and does not sleep.''' | ||
===PokemonBehaviour=== | ===PokemonBehaviour=== | ||
Line 28: | Line 27: | ||
| canWalk | | canWalk | ||
| A <code>true/false</code> value. If <code>false</code>, the Pokémon cannot move over land. | | A <code>true/false</code> value. If <code>false</code>, the Pokémon cannot move over land. | ||
|- | |||
| avoidsLand | |||
| A <code>true/false</code> value. If <code>true</code>, the Pokémon should avoid land. | |||
|- | |- | ||
| walkSpeed | | walkSpeed | ||
Line 40: | Line 42: | ||
! Option | ! Option | ||
! style="text-align:left;" | Details | ! style="text-align:left;" | Details | ||
|- | |||
| avoidsWater | |||
| A <code>true/false</code> value. If <code>true</code>, the Pokémon should avoid water. | |||
|- | |- | ||
| canSwimInWater | | canSwimInWater | ||
| A <code>true/false</code> value. If <code>true</code>, | | A <code>true/false</code> value. If <code>true</code>, the Pokémon can swim in water. | ||
|- | |- | ||
| canBreatheUnderwater | | canBreatheUnderwater | ||
Line 51: | Line 56: | ||
|- | |- | ||
| canSwimInLava | | canSwimInLava | ||
| A <code>true/false</code> value. If <code>true</code>, | | A <code>true/false</code> value. If <code>true</code>, the Pokémon can swim in lava. | ||
|- | |- | ||
| canBreatheUnderlava | | canBreatheUnderlava | ||
Line 58: | Line 63: | ||
| canWalkOnLava | | canWalkOnLava | ||
| A <code>true/false</code> value. If <code>true</code>, the Pokémon will move across the top of lava as if it's walking on it. | | A <code>true/false</code> value. If <code>true</code>, the Pokémon will move across the top of lava as if it's walking on it. | ||
|- | |||
| hurtByLava | |||
| A <code>true/false</code> value. If <code>false</code>, the Pokémon will not take damage in lava. | |||
|- | |- | ||
| swimSpeed | | swimSpeed | ||
Line 79: | Line 87: | ||
|- | |- | ||
| canLook | | canLook | ||
| A <code>true/false</code> value. If false, the Pokémon will not even turn to look at nearby entities. | | A <code>true/false</code> value. If <code>false</code>, the Pokémon will not even turn to look at nearby entities. | ||
|- | |||
| looksAtEntities | |||
| A <code>true/false</code> value. If <code>false</code>, the Pokémon will not even turn to look at nearby entities despite <code>canLook</code> being set to true. The default value is <code>true</code>. | |||
|- | |||
| stepHeight | |||
| The height, measured in blocks, a Pokémon can step over before they consider jumping instead. The default value is <code>0.6</code>. This default height allows them to step over beds. Due to unfinished pathfinding ai, Pokémon cant properly use this property. | |||
|- | |||
| wanderChance | |||
| The number of ticks it takes before the Pokémon has a chance at wandering. The default value is <code>120</code>. | |||
|- | |||
| wanderSpeed | |||
| Multiplies the Pokémon's speed by this value when the Pokémon is using the wander behavior. The default value is <code>1</code>. This property also seems to change the pathfinding behavior if the Pokémon is moving very fast. | |||
|} | |} | ||
|- | |- | ||
Line 85: | Line 105: | ||
| A set of properties relating to how and when the Pokémon sleeps, if it sleeps at all. | | A set of properties relating to how and when the Pokémon sleeps, if it sleeps at all. | ||
<br> | <br> | ||
{| class="wikitable" style="margin:auto" | {| class="wikitable" style="margin:auto" | ||
|- | |- | ||
Line 96: | Line 114: | ||
|- | |- | ||
| times | | times | ||
| A time range for when it can sleep, which can be abbreviations or tick ranges and can be combined with commas. Examples: <code>"day"</code>, <code>"night"</code>, <code>"dawn,dusk"</code>, <code>"1200-2400,morning"</code>. This is the same format as the time range controls in Spawner Conditions. | | A time range for when it can sleep, which can be abbreviations or tick ranges and can be combined with commas. Examples: <code>"day"</code>, <code>"night"</code>, <code>"dawn,dusk"</code>, <code>"1200-2400,morning"</code>. This is the same format as the time range controls in Spawner Conditions. The default value is set to <code>"night"</code> if no other value is specified. | ||
|- | |- | ||
| sleepChance | | sleepChance | ||
Line 108: | Line 126: | ||
|- | |- | ||
| light | | light | ||
| A light level or level range, between <code>0</code> and <code>15</code>, which represents the light levels in which the Pokémon is able to sleep. If you set this option to <code>"15"</code>, then the Pokémon can only fall asleep in maximum light. If you set this option to <code>"0-7"</code>, then it can only fall asleep when it's fairly dark. | | A light level or level range, between <code>0</code> and <code>15</code>, which represents the light levels in which the Pokémon is able to sleep. If you set this option to <code>"15"</code>, then the Pokémon can only fall asleep in maximum light. If you set this option to <code>"0-7"</code>, then it can only fall asleep when it's fairly dark. [[minecraftwiki:Light#Light_level|These light levels can be found on the Minecraft Wiki]]. | ||
|- | |- | ||
| depth | | depth | ||
Line 121: | Line 139: | ||
Examples from existing species JSONs: | Examples from existing species JSONs: | ||
'''Charmander''' | '''Charmander''' - A classic land walker using many default behavior values which don't need to be specified in code. | ||
"behaviour": { | "behaviour": { | ||
"resting": { | "resting": { | ||
Line 132: | Line 150: | ||
'''Charizard''' | '''Charizard''' - A land walker that can also fly | ||
"behaviour": { | |||
"resting": { | |||
"canSleep": true, | |||
"depth": "normal", | |||
"light": "0-4" | |||
}, | }, | ||
"moving": { | |||
"fly": { | |||
"canFly": true, | |||
"flySpeedHorizontal": 0.6 | |||
} | |||
} | |||
}, | |||
''' | '''Bidoof''' - A semi-aquatic egg laying land dweller. Chooses to 'walk' on water in combination with animations to appear like it prefers to float on the surface of water and walk on land. | ||
"behaviour": { | |||
"moving": { | |||
"walk": { | |||
"walkSpeed": 0.28 | |||
}, | |||
"swim": { | |||
"swimSpeed": 0.17, | |||
"canSwimInWater": true, | |||
"canBreatheUnderwater": true, | |||
"canWalkOnWater": true | |||
} | |||
}, | }, | ||
"resting": { | |||
"canSleep": true, | |||
"willSleepOnBed": true, | |||
"depth": "normal", | |||
"light": "0-4" | |||
} | |||
}, | |||
'''Magikarp''' - A basic fish-like aquatic pokemon | |||
"behaviour": { | |||
"moving": { | |||
"canLook": false, | |||
"walk": { | |||
"avoidsLand": true | |||
}, | |||
"swim": { | |||
"swimSpeed": 0.1, | |||
"canSwimInWater": true, | |||
"canBreatheUnderwater": true | |||
} | |||
} | |||
}, | |||
'''Shellder'''- An aquatic Pokémon prefers to walk on surfaces. Can walk on both land or underwater | |||
"behaviour": { | |||
"moving": { | |||
"swim": { | |||
"swimSpeed": 0.1, | |||
"canSwimInWater": false, | |||
"canBreatheUnderwater": true | |||
} | |||
} | |||
}, | |||
{{Addon Creation}} |
Latest revision as of 00:46, 21 March 2024
A Pokémon's AI behaviour is configurable from their species JSON. This is used control whether it can walk, swim, or fly as well as the speed it moves while doing each of those, whether or not it can fall asleep, and various other things.
If you don't include any of the following behavior properties in your species JSON, the Pokémon will use default AI behavior. The default is a land-moving AI that moves at a brisk pace, cannot breathe underwater, and does not sleep.
PokemonBehaviour
Option | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
moving | A set of properties relating to the movement of a Pokémon.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
resting | A set of properties relating to how and when the Pokémon sleeps, if it sleeps at all.
|
Examples
Examples from existing species JSONs:
Charmander - A classic land walker using many default behavior values which don't need to be specified in code.
"behaviour": { "resting": { "canSleep": true, "willSleepOnBed": true, "depth": "normal", "light": "0-2" } },
Charizard - A land walker that can also fly
"behaviour": { "resting": { "canSleep": true, "depth": "normal", "light": "0-4" }, "moving": { "fly": { "canFly": true, "flySpeedHorizontal": 0.6 } } },
Bidoof - A semi-aquatic egg laying land dweller. Chooses to 'walk' on water in combination with animations to appear like it prefers to float on the surface of water and walk on land.
"behaviour": { "moving": { "walk": { "walkSpeed": 0.28 }, "swim": { "swimSpeed": 0.17, "canSwimInWater": true, "canBreatheUnderwater": true, "canWalkOnWater": true } }, "resting": { "canSleep": true, "willSleepOnBed": true, "depth": "normal", "light": "0-4" } },
Magikarp - A basic fish-like aquatic pokemon
"behaviour": { "moving": { "canLook": false, "walk": { "avoidsLand": true }, "swim": { "swimSpeed": 0.1, "canSwimInWater": true, "canBreatheUnderwater": true } } },
Shellder- An aquatic Pokémon prefers to walk on surfaces. Can walk on both land or underwater
"behaviour": { "moving": { "swim": { "swimSpeed": 0.1, "canSwimInWater": false, "canBreatheUnderwater": true } } },