<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.cobblemon.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Patch+Notes+Guy</id>
	<title>Cobblemon Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cobblemon.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Patch+Notes+Guy"/>
	<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php/Special:Contributions/Patch_Notes_Guy"/>
	<updated>2026-06-03T10:31:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki.cobblemon.com/index.php?title=Poser&amp;diff=4989</id>
		<title>Poser</title>
		<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Poser&amp;diff=4989"/>
		<updated>2024-10-20T09:49:40Z</updated>

		<summary type="html">&lt;p&gt;Patch Notes Guy: Fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Under construction. Dont look or else!&lt;br /&gt;
&lt;br /&gt;
{{TOC|right}}&lt;br /&gt;
== Preface ==&lt;br /&gt;
The new &amp;lt;code&amp;gt;poser&amp;lt;/code&amp;gt; JSON controls all the animations of a Pokémon just as the old [[Poser]] did. It contains the same information for when the Pokémon will perform certain animations, but has received many requested upgrades. Some of these upgrades include multi-bone look animations, support for move animations, and even selecting from a pool of animations for quirks. Functionality of the new Poser will always be maintained and should let addon creators have the same options as the [https://gitlab.com/cable-mc/cobblemon/-/blob/main/common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen1/SquirtleModel.kt hard-coded Kotlin Posers.]&lt;br /&gt;
&lt;br /&gt;
== Poser Properties ==&lt;br /&gt;
Before breaking down each section of the new Poser file, let&#039;s take a look at all its different properties and how to use them. This section includes all of the different functions of the poser, any configurable options for said function, and how to write each function. You will notice that the poser now includes something in the format of &amp;lt;code&amp;gt;q.&amp;lt;function&amp;gt;&amp;lt;/code&amp;gt;. These are molang functions which allow you to do many new things. The q stands for query and its just part of the standard format for these new functions. Some functions can even go inside of other functions. It&#039;s not terribly complicated once you read what each one does. They allow addon creators to do many things they couldn&#039;t before!&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Poses &amp;amp; Animations ===&lt;br /&gt;
There&#039;s a handful of Pose types and Animation types that you can make animations for. &amp;lt;code&amp;gt;Poses&amp;lt;/code&amp;gt; are the states a Pokémon is in, like idle or moving. Poses are for assigning animations like your ground idles, ground walks, water idles, etc. The &amp;lt;code&amp;gt;animation types&amp;lt;/code&amp;gt; are the different events in battles that you can assign animations to for each Pokémon. Animation types would include your faints, cries, and attack animations. Below is a list of currently available Animation types and Poses to choose from. &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Animations ====&lt;br /&gt;
* &#039;&#039;&#039;faint&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.faint&amp;lt;/code&amp;gt; - The animation that plays when a Pokémon faints.&lt;br /&gt;
* &#039;&#039;&#039;cry&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.cry&amp;lt;/code&amp;gt; - The animation that plays when a Pokémon is called out or when it starts battle. &lt;br /&gt;
* &#039;&#039;&#039;recoil&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.recoil&amp;lt;/code&amp;gt; - The animation that plays when a Pokémon takes damage in battle. &lt;br /&gt;
* &#039;&#039;&#039;physical&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.physical&amp;lt;/code&amp;gt; - The animation that plays when a Pokémon uses a physical move in battle. &lt;br /&gt;
* &#039;&#039;&#039;special&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.special&amp;lt;/code&amp;gt; - The animation that plays when a Pokémon uses a special move in battle.&lt;br /&gt;
* &#039;&#039;&#039;status&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.status&amp;lt;/code&amp;gt; - The animation that plays when a pokemon uses a status move in battle. &lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
==== Poses ====&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;STAND&amp;quot;&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.ground_idle&amp;lt;/code&amp;gt; - The animation that plays when a Pokémon is idle on land.&lt;br /&gt;
** This pose type is also used for battle-idles: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.battle_idle&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PORTRAIT&amp;quot;&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.portrait&amp;lt;/code&amp;gt; - The animation that plays in the Party Overlay, or left hand party GUI&lt;br /&gt;
** This pose often uses the &amp;lt;code&amp;gt;ground_idle&amp;lt;/code&amp;gt; instead of a dedicated animation. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PROFILE&amp;quot;&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.profile&amp;lt;/code&amp;gt; - The animation that plays in the Party Menu, or when you press M. &lt;br /&gt;
** This pose often uses the &amp;lt;code&amp;gt;ground_idle&amp;lt;/code&amp;gt; instead of a dedicated animation. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;WALK&amp;quot;&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.ground_walk&amp;lt;/code&amp;gt; - The animation that plays when a Pokémon is moving on land&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;HOVER&amp;quot;&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.air_idle&amp;lt;/code&amp;gt; - The animation that plays when a Pokémon is idle in the air. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;FLY&amp;quot;&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.air_fly&amp;lt;/code&amp;gt; - The animation that plays when a Pokémon is moving in the air. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;FLOAT&amp;quot;&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.water_idle&amp;lt;/code&amp;gt; - The animation that plays when a Pokémon is idle in or on water.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;SWIM&amp;quot;&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.water_swim&amp;lt;/code&amp;gt; - The animation that plays when a Pokémon is moving in or on water.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;SLEEP&amp;quot;&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.sleep&amp;lt;/code&amp;gt; - The animation that plays when a Pokémon is asleep. Usually on land. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;SHOULDER_LEFT&amp;quot;&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.shoulder_left&amp;lt;/code&amp;gt; - The animation that plays when the Pokémon is on the player&#039;s left shoulder. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;SHOULDER_RIGHT&amp;quot;&#039;&#039;&#039;: &amp;lt;code&amp;gt;animation.&amp;lt;pokemon&amp;gt;.shoulder_right&amp;lt;/code&amp;gt; - The animation that plays when the Pokémon is on the player&#039;s right shoulder. &lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
==== q.bedrock_stateful ====&lt;br /&gt;
The function &amp;lt;code&amp;gt;q.bedrock_stateful()&amp;lt;/code&amp;gt; allows you to assign a stateful animation to an animation type. &amp;lt;code&amp;gt;Stateful animations&amp;lt;/code&amp;gt; are meant to animate just a few bones of the Pokémon and get overlaid on the current pose. An example would be cries only animating the mouth or head of the Pokémon. A stateful animation won&#039;t take control of the whole model to play its animation. &lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an example of the 2 stateful animations, cry and recoil, in the poser:&lt;br /&gt;
    &amp;quot;cry&amp;quot;: &amp;quot;q.bedrock_stateful(&#039;blastoise&#039;, &#039;cry&#039;)&amp;quot;,&lt;br /&gt;
    &amp;quot;recoil&amp;quot;: &amp;quot;q.bedrock_stateful(&#039;blastoise&#039;, &#039;recoil&#039;)&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
==== q.bedrock_primary ====&lt;br /&gt;
The function &amp;lt;code&amp;gt;q.bedrock_primary()&amp;lt;/code&amp;gt; allows you to assign a primary animation to an animation type. &amp;lt;code&amp;gt;Primary animations&amp;lt;/code&amp;gt; are meant to take control of the entire model to play its animation and will clear any previous animations it was doing. An example would be a Pokémon&#039;s physical attack animation. When a Pokémon uses a physical move, it should clear the battle idle animation and play its physical animation instead. These animations often move the whole body and many of its limbs. When the physical animation is done, it returns control of the model to the battle idle after the physical animation has finished and should play a short transition animation in between. &lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since Primary animations behave in a similar way to swapping poses, they can use special transition animation types via the &amp;lt;code&amp;gt;q.curve&amp;lt;/code&amp;gt; property written within its sub properties. These provide different types of smoothness to the interpolation and will be explained in the next section. &lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the 4 primary animation in the poser:&lt;br /&gt;
    &amp;quot;faint&amp;quot;: &amp;quot;q.bedrock_primary(&#039;blastoise&#039;, &#039;faint&#039;, q.curve(&#039;one&#039;))&amp;quot;,&lt;br /&gt;
    &amp;quot;physical&amp;quot;: &amp;quot;q.bedrock_primary(&#039;blastoise&#039;, &#039;physical&#039;, q.curve(&#039;symmetrical_wide&#039;))&amp;quot;,&lt;br /&gt;
    &amp;quot;special&amp;quot;: &amp;quot;q.bedrock_primary(&#039;blastoise&#039;, &#039;special&#039;, q.curve(&#039;symmetrical_wide&#039;))&amp;quot;,&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;q.bedrock_primary(&#039;blastoise&#039;, &#039;status&#039;, q.curve(&#039;symmetrical_wide&#039;))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
==== q.curve ====&lt;br /&gt;
The function &amp;lt;code&amp;gt;q.curve()&amp;lt;/code&amp;gt; is a sub function for &amp;lt;code&amp;gt;q.bedrock_primary()&amp;lt;/code&amp;gt; which allows the animation to interpolate back into the main pose. This allows the transition between animations to behave similarly to linear keyframes and smooth keyframes when animating.&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The q.curve function comes with 3 options for now which are:&lt;br /&gt;
* &amp;lt;code&amp;gt;one&amp;lt;/code&amp;gt;: Does not interpolate at all. Just jumps from one animation to the next. Preferred for faint animations.&lt;br /&gt;
* &amp;lt;code&amp;gt;symmetric&amp;lt;/code&amp;gt;: Interpolates in a similar fashion to 2 smooth keyframes in blockbench. Not preferable, but is an option. &lt;br /&gt;
* &amp;lt;code&amp;gt;symmetrical_wide&amp;lt;/code&amp;gt;: Interpolates in a similar fashion to 2 smooth keyframes in blockbench, but with a wider margin. The preferred choice when transitioning from moves.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the 2 main q.curve types:&lt;br /&gt;
    &amp;quot;faint&amp;quot;: &amp;quot;q.bedrock_primary(&#039;blastoise&#039;, &#039;faint&#039;, q.curve(&#039;one&#039;))&amp;quot;,&lt;br /&gt;
    &amp;quot;physical&amp;quot;: &amp;quot;q.bedrock_primary(&#039;blastoise&#039;, &#039;physical&#039;, q.curve(&#039;symmetrical_wide&#039;))&amp;quot;,&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
==== q.bedrock ====&lt;br /&gt;
The &amp;lt;code&amp;gt;q.bedrock()&amp;lt;/code&amp;gt; function is the familiar animation format from the [[Poser | old poser]] which got converted into a molang function. It&#039;s the same thing as before, just in a new look. You are still just listing your Pokémon and then the animation in the parenthesis. This function is mainly used to assign poses their animations. These animations are meant to be overwritten by Primary or Stateful animations whenever convenient.&amp;lt;/br&amp;gt;&lt;br /&gt;
Below is an example of the &amp;lt;code&amp;gt;q.bedrock&amp;lt;/code&amp;gt; function assigning a walk animation to the &amp;lt;code&amp;gt;&amp;quot;WALK&amp;quot;&amp;lt;/code&amp;gt; pose type:&lt;br /&gt;
    &amp;quot;walking&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;WALK&amp;quot;],&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;blastoise&#039;, &#039;ground_walk&#039;)&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Portraits and Profiles &amp;amp; Scale and Translation ===&lt;br /&gt;
Portrait and Profile are the poses that are used when rendering any Pokémon in a GUI or Menu. Portrait is used for the left hand party screen, or Party Overlay, and Profile is used for the Party Menu. The poser file assigns some &amp;lt;code&amp;gt;Scale&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Translation&amp;lt;/code&amp;gt; values to these poses which control the camera location for rendering the Pokémon. There is a dev tool that you can enable in the [[Config]] which allows you to use some customizable keys to move the camera around the Pokémon in these menus. This tool will print the Scale and Translation values when the associated hotkey is pressed. &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Translation&amp;lt;/code&amp;gt; values control the location of the camera for the Portrait or Profile. Translation is a set of 3 values which represent xyz coordinates. You will mainly be changing the first 2 values, or the x and y axis values. X for left and right, and Y for up and down. The Z value is rarely used, but is important for really big models that are not being fully rendered in the menus. It often needs a larger Z value.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Scale&amp;lt;/code&amp;gt; values control the amount of zoom for the Portrait or Profile. A value less than one should make it zoom out and a value greater than one will zoom in. Sometimes with larger models, the camera cannot render the whole Pokémon no matter how far you zoom out. The back side of the Pokémon may not be rendered. This means you need to increase the Translation z value.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is a short breakdown of the previously mentioned properties:&lt;br /&gt;
    &amp;quot;&amp;lt;abbr title=&amp;quot;This property controls the size of the Pokémon in the party menu on the left side of the screen. (Tip: you can refresh your resource pack with F3 + T for quick edits.)&amp;quot;&amp;gt;portraitScale&amp;lt;/abbr&amp;gt;&amp;quot;: 1.65,&lt;br /&gt;
    &amp;quot;&amp;lt;abbr title=&amp;quot;This property controls the location of the Pokémon in the party menu on the left side of the screen. The first value moves it left or right, which is your x axis. The second value moves it up or down, which is your y axis. The third value seems to do nothing and can generally be ignored. (Tip: you can refresh your resource pack with F3 + T for quick edits.)&amp;quot;&amp;gt;portraitTranslation&amp;lt;/abbr&amp;gt;&amp;quot;: [0, -0.6, 0],&lt;br /&gt;
    &amp;quot;&amp;lt;abbr title=&amp;quot;These refer to the full body view of the Pokémon seen in GUI, but most notably the summary UI. (Tip: you can refresh your resource pack with F3 + T for quick edits.)&amp;quot;&amp;gt;profileScale&amp;lt;/abbr&amp;gt;&amp;quot;: 1,&lt;br /&gt;
    &amp;quot;&amp;lt;abbr title=&amp;quot;This property controls the location of the Pokémon seen in GUI, but most notably the summary UI. The first value moves it left or right, which is your x axis. The second value moves it up or down, which is your y axis. The third value seems to do nothing and can generally be ignored. (Tip: you can refresh your resource pack with F3 + T for quick &lt;br /&gt;
 edits.)&amp;quot;&amp;gt;profileTranslation&amp;lt;/abbr&amp;gt;&amp;quot;: [0, 0.15, 0],&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conditions ===&lt;br /&gt;
You can expand the amount of animations a Pokémon can have and when they should be played by using &amp;lt;code&amp;gt;conditions&amp;lt;/code&amp;gt;. Conditions are what allow for battle animations despite the &amp;lt;code&amp;gt;standing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;battle-idle&amp;lt;/code&amp;gt; poses both using the &amp;lt;code&amp;gt;&amp;quot;STAND&amp;quot;&amp;lt;/code&amp;gt; pose type. Typically, if you want different animations using the same pose types, then you must set one pose&#039;s condition to true, and the other pose&#039;s matching condition to false. You can mix and match these conditions to make something like an animation that only plays in battle, if it is raining while the sun is setting. &amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
List of Currently Implemented Conditions:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;isBattle&amp;quot;&amp;lt;/code&amp;gt;: The Pokémon must be in a battle.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;isTouchingWater&amp;quot;&amp;lt;/code&amp;gt;: The Pokémon must be touching water. Not necessarily underwater.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;isTouchingWaterOrRain&amp;quot;&amp;lt;/code&amp;gt;: The Pokémon must be touching water or rain. Again, not necessarily underwater. &lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;isSubmergedInWater&amp;quot;&amp;lt;/code&amp;gt;: The Pokémon must be underwater. The red line on the hitbox must be below the surface.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;isStandingOnRedSand&amp;quot;&amp;lt;/code&amp;gt;: The Pokémon must be standing on red sand.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;isStandingOnSand&amp;quot;&amp;lt;/code&amp;gt;: The Pokémon must be standing on sand&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;isStandingOnSandOrRedSand&amp;quot;&amp;lt;/code&amp;gt;: The Pokémon must be standing on either sand or red sand.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;isDusk&amp;quot;&amp;lt;/code&amp;gt;: It must be &amp;quot;Dusk&amp;quot; time in the world, or roughly at sunset. &lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
Below is an example of 2 poses using the &amp;lt;code&amp;gt;&amp;quot;STAND&amp;quot;&amp;lt;/code&amp;gt; pose type and &amp;lt;code&amp;gt;Conditions&amp;lt;/code&amp;gt; to separate the battle-idle animation from the ground idle animation:&lt;br /&gt;
* In these scenarios, you want one pose to have the condition set to true, and any other pose that shares the same pose type to have the condition set to false. &lt;br /&gt;
    &amp;quot;battle-standing&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;STAND&amp;quot;],&lt;br /&gt;
      &amp;quot;isBattle&amp;quot;: true,&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;blastoise&#039;, &#039;battle_idle&#039;)&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;standing&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;STAND&amp;quot;, &amp;quot;NONE&amp;quot;, &amp;quot;PORTRAIT&amp;quot;, &amp;quot;PROFILE&amp;quot;],&lt;br /&gt;
      &amp;quot;isBattle&amp;quot;: false,&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;blastoise&#039;, &#039;ground_idle&#039;)&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
=== Transformed Parts ===&lt;br /&gt;
This function allows you to transform parts of the model when the Pokémon is in a certain pose. You can change the location, rotation, and visibility of bones for each pose. This allows you to make some slight adjustments to an in-game animation without having to edit the animation itself. While there aren&#039;t many examples of this function, it&#039;s most common use is to hide model parts when a Pokémon is not in its battle idle. This is the case with Rillaboom and its drum.&lt;br /&gt;
&lt;br /&gt;
A great use for location and rotation transformation is to adjust shoulder animations. You don&#039;t have to account for the model location on the player shoulder when making the animation. If it doesn&#039;t line up in the game, you can move the whole model using this function.&lt;br /&gt;
&lt;br /&gt;
The visibility transformation allows you to hide a specific bone in the model when the Pokémon is currently in a pose. This can be used to hide certain bones if needed. This allows you to do things like making Rillaboom use its drum for its battle-idle. It also allows Typhlosion to have its flames ignited only during battle. Something to keep in mind is that if you want a bone to be visible only during battle, then you must set this bone as invisible for all other poses. This is why &amp;lt;code&amp;gt;transformedParts&amp;lt;/code&amp;gt; is written under every pose in the poser file breakdown.&lt;br /&gt;
&lt;br /&gt;
Below is an example of all the transformed part properties being used. This is mostly a demonstration of your options when using this function. If this example was applied in game, Charizard&#039;s wings would be detached from its body, but only the left wing would be invisible. Realistically, you would never want to do something like that.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;&amp;lt;abbr title=&amp;quot;This property will allow you to manipulate the model parts without having to edit things in blockbench! You can select a bone from the model, and edit this bone specifically for this pose.&amp;quot;&amp;gt;transformedParts&amp;lt;/abbr&amp;gt;&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;&amp;lt;abbr title=&amp;quot;Here, we are selecting a bone from the model. In this case, it&#039;s charizard&#039;s right wing.&amp;quot;&amp;gt;part&amp;lt;/abbr&amp;gt;&amp;quot;: &amp;quot;&amp;lt;abbr title=&amp;quot;The bone that will be manipulated. The next 3 lines can change this bone specifically for charizard&#039;s pose.&amp;quot;&amp;gt;wing_right&amp;lt;/abbr&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;&amp;lt;abbr title=&amp;quot;This property will change the bone&#039;s position. The following set of numbers can change its location on the x, y, and z axis.&amp;quot;&amp;gt;position&amp;lt;/abbr&amp;gt;&amp;quot;: [&amp;lt;abbr title=&amp;quot;The xyz axis values that will be applied to the bone. In this case, the bone will move 10 units on the x axis. This would be 10 units to the right if you were looking at charizard.&amp;quot;&amp;gt;10, 0, 0&amp;lt;/abbr&amp;gt;],&lt;br /&gt;
            &amp;quot;&amp;lt;abbr title=&amp;quot;This property will change the bone&#039;s rotation. The following set of numbers can change its rotation in degrees on the x, y, and z axis. You will likely never have to rotate a bone for a pose, so these values will be left blank. This part of the example is merely to show you your options.&amp;quot;&amp;gt;rotation&amp;lt;/abbr&amp;gt;&amp;quot;: [&amp;lt;abbr title=&amp;quot;We don&#039;t actually want to rotate charizard&#039;s wings, so these values will be left at zero. If you don&#039;t want to use this rotation property at all, you can simply remove this one line!&amp;quot;&amp;gt;0, 0, 0&amp;lt;/abbr&amp;gt;],&lt;br /&gt;
            &amp;quot;&amp;lt;abbr title=&amp;quot;This property controls whether or not the selected bone will be visible for this pose. Note that if you want a bone to be visible just for 1 pose, then it must be set as invisible for all other poses.&amp;quot;&amp;gt;isVisible&amp;lt;/abbr&amp;gt;&amp;quot;: &amp;lt;abbr title=&amp;quot;Here, we are setting charizard&#039;s right wing to be visible.&amp;quot;&amp;gt;true&amp;lt;/abbr&amp;gt;&lt;br /&gt;
          },&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;&amp;lt;abbr title=&amp;quot;Here, we are selecting a second bone from the model. In this case, it&#039;s charizard&#039;s left wing.&amp;quot;&amp;gt;part&amp;lt;/abbr&amp;gt;&amp;quot;: &amp;quot;&amp;lt;abbr title=&amp;quot;The bone that will be manipulated. The next 3 lines can change this bone specifically for charizard&#039;s pose.&amp;quot;&amp;gt;wing_left&amp;lt;/abbr&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;&amp;lt;abbr title=&amp;quot;This property will change the bone&#039;s position. The following set of numbers can change its location on the x, y, and z axis.&amp;quot;&amp;gt;position&amp;lt;/abbr&amp;gt;&amp;quot;: [&amp;lt;abbr title=&amp;quot;The xyz axis values that will be applied to the bone. In this case, the bone will move -10 units on the x axis. This would be 10 units to the left if you were looking at charizard.&amp;quot;&amp;gt;-10, 0, 0&amp;lt;/abbr&amp;gt;],&lt;br /&gt;
            &amp;quot;&amp;lt;abbr title=&amp;quot;This property will change the bone&#039;s rotation. The following set of numbers can change its rotation in degrees on the x, y, and z axis. You will likely never have to rotate a bone for a pose, so these values will be left blank. This part of the example is merely to show you your options.&amp;quot;&amp;gt;rotation&amp;lt;/abbr&amp;gt;&amp;quot;: [&amp;lt;abbr title=&amp;quot;We don&#039;t actually want to rotate charizard&#039;s wings, so these values will be left at zero. If you don&#039;t want to use this rotation property at all, you can simply remove this one line!&amp;quot;&amp;gt;0, 0, 0&amp;lt;/abbr&amp;gt;],&lt;br /&gt;
            &amp;quot;&amp;lt;abbr title=&amp;quot;This property controls whether or not the selected bone will be visible for this pose. Note that if you want a bone to be visible just for 1 pose, then it must be set as invisible for all other poses.&amp;quot;&amp;gt;isVisible&amp;lt;/abbr&amp;gt;&amp;quot;: &amp;lt;abbr title=&amp;quot;Here, we are setting charizard&#039;s left wing to be invisible.&amp;quot;&amp;gt;false&amp;lt;/abbr&amp;gt;&lt;br /&gt;
          }&lt;br /&gt;
         ]&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Look Animation(s) ===&lt;br /&gt;
The new Poser allows you to manipulate the look animation in a number of ways. Creators can now list multiple look animations where each one can define its own head bone and edit some of the properties of the look animation. Changing the properties allows you to manipulate the sight cone of the Pokémon if desired. This can help prevent some odd clipping or extend/shorten how far it can look up and down or left and right. Having multiple look animations allows for Pokémon with multiple heads to turn each head individually. You could even assign the torso and head bones to look at the same time while limiting the range for each. This can be helpful for Pokémon with little to no neck and they have to look with their body more than their head. &amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;q.look()&amp;lt;/code&amp;gt; function is the format of this new look animation. When using this function, all the properties must be listed in a specific order and the name of the bone must be in single quotes. (the apostrophe key) &amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
* Please refer to the image below to visualize pitch, yaw, and the origin.&lt;br /&gt;
* Pressing F3+B in game can show the hitboxes. That blue line shows where the pokemon is looking at and if its looking at nothing, it is centered at 0 pitch and yaw. You can call this the origin.&amp;lt;/br&amp;gt;&lt;br /&gt;
[[File:Sight_Cones.png|800px|caption|The default sight cone visualized.]]&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The properties of &amp;lt;code&amp;gt;q.look&amp;lt;/code&amp;gt; must be in the following order:&lt;br /&gt;
* With the exception of the bone name, these are also the default values for each property&lt;br /&gt;
# Bone name: &amp;lt;code&amp;gt;&#039;head_ai&#039;&amp;lt;/code&amp;gt; - The name of the bone on the model which will perform the look animation&lt;br /&gt;
# Pitch Multiplier - &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Multiplies the amount of pitch gained by this amount. Can use -1 to invert the pitch!&lt;br /&gt;
# Yaw Multiplier - &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Multiplies the amount of yaw gained by this amount. Can use -1 to invert the yaw!&lt;br /&gt;
# Max Pitch - &amp;lt;code&amp;gt;70&amp;lt;/code&amp;gt; - How many degrees the Pokémon can look down from origin.&lt;br /&gt;
# Min Pitch - &amp;lt;code&amp;gt;-45&amp;lt;/code&amp;gt; - How many degrees the Pokémon can look up from origin.&lt;br /&gt;
# Max Yaw - &amp;lt;code&amp;gt;45&amp;lt;/code&amp;gt; - How many degrees the Pokémon can look right from origin.&lt;br /&gt;
# Min Yaw - &amp;lt;code&amp;gt;-45&amp;lt;/code&amp;gt; - How many degrees the Pokémon can look left from origin. &lt;br /&gt;
&amp;lt;/br&amp;gt; &lt;br /&gt;
A look animation using the previously listed values would look something like this inside of the standing pose:&lt;br /&gt;
    &amp;quot;standing&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;STAND&amp;quot;, &amp;quot;NONE&amp;quot;, &amp;quot;PORTRAIT&amp;quot;, &amp;quot;PROFILE&amp;quot;],&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.look(&#039;head_ai&#039;, 1, 1, 70, -45, 45, -45)&amp;quot;,&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;riolu&#039;, &#039;ground_idle&#039;)&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to use the default values and keep it short, you can also write it like this:&lt;br /&gt;
    &amp;quot;standing&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;STAND&amp;quot;, &amp;quot;NONE&amp;quot;, &amp;quot;PORTRAIT&amp;quot;, &amp;quot;PROFILE&amp;quot;],&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.look(&#039;head_ai&#039;)&amp;quot;,&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;riolu&#039;, &#039;ground_idle&#039;)&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to list multiple head bones, you can write the q.look function multiple times:&lt;br /&gt;
    &amp;quot;standing&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;STAND&amp;quot;, &amp;quot;NONE&amp;quot;, &amp;quot;PORTRAIT&amp;quot;, &amp;quot;PROFILE&amp;quot;],&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.look(&#039;head_ai&#039;)&amp;quot;,&lt;br /&gt;
        &amp;quot;q.look(&#039;torso&#039;)&amp;quot;,&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;riolu&#039;, &#039;ground_idle&#039;)&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Quirks ===&lt;br /&gt;
Quirk animations are stateful animations (for now) that you can have play over the main animation for a pose. The new poser format introduced a shorthand method to writing in your quirk animations in the &amp;lt;code&amp;gt;q.bedrock_quirk()&amp;lt;/code&amp;gt; format. The [[Poser#Quirks | old Poser method for quirks]] can be condensed into one line using this function. When using this function, all the properties must be listed in specific order, placed inside of single quotes (the apostrophe key) unless its a number, and separated by commas.&lt;br /&gt;
&lt;br /&gt;
If your poser and animations are made just right, then you can have a single Pokémon running so many quirk animations at once. Remember that you can combine any of the following quirk examples if you have lots of animations like Blastoise.&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
The properties of &amp;lt;code&amp;gt;q.bedrock_quirk&amp;lt;/code&amp;gt; must be in the following order:&lt;br /&gt;
# Animation Group: &amp;lt;code&amp;gt;&#039;blastoise&#039;&amp;lt;/code&amp;gt; - the name of the Pokémon&lt;br /&gt;
# Animation Name(s): &amp;lt;code&amp;gt;&#039;quirk_ground_idle&#039;&amp;lt;/code&amp;gt; - the name of the animation. Supports a pool of animations using the &amp;lt;code&amp;gt;q.array&amp;lt;/code&amp;gt; function&lt;br /&gt;
# Minimum seconds between occurences: &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; - The decimal-friendly number of seconds that is the minimum between the quirk playing once and it playing a second time.&lt;br /&gt;
# Maximum seconds between occurences: &amp;lt;code&amp;gt;60&amp;lt;/code&amp;gt; - What do you think?&lt;br /&gt;
# Loop times: &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - The number of times the animation should play for the quirk&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
The previously listed properties would get written as a quirk like so:&lt;br /&gt;
      &amp;quot;quirks&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.bedrock_quirk(&#039;blastoise&#039;, &#039;quirk_ground_idle&#039;, 20, 60, 1)&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
You don&#039;t need to include all the properties if you just want to use the default values of 8-30 seconds between quirks. You can write it like so to use the default values and keep it short:&lt;br /&gt;
      &amp;quot;quirks&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.bedrock_quirk(&#039;blastoise&#039;, &#039;blink&#039;)&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
==== q.array ====&lt;br /&gt;
You can replace your animation name with the &amp;lt;code&amp;gt;q.array()&amp;lt;/code&amp;gt; function to have the quirk pick from a list of animations to play. This can be helpful if you have a lot of quirks that you want to play under one pose. You simply need to put the list of animations inside of the parenthesis, include each animation name inside of single quotes, and separate them with a comma. &lt;br /&gt;
* Example: &amp;lt;code&amp;gt;q.array(&#039;quirk_battle_idle&#039;, &#039;quirk_battle_idle2&#039;)&amp;lt;/code&amp;gt;&lt;br /&gt;
** These quirks are for Blastoise adjusting each of its cannons. Writing it this way lets Blastoise adjust only one cannon at a time, but it&#039;s a random cannon each time.&lt;br /&gt;
&lt;br /&gt;
So if you were to make that into a quirk, it would look like this:&lt;br /&gt;
      &amp;quot;quirks&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.bedrock_quirk(&#039;blastoise&#039;, q.array(&#039;quirk_battle_idle&#039;, &#039;quirk_battle_idle2&#039;), 30, 60, 1)&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Placeholder Animations ===&lt;br /&gt;
The new poser allows creators to use the placeholder animations which the JSON poser could not access before. These placeholder animations are based on the body type or limb features of the Pokémon. Each placeholder features a very simple animation that swings a limb back and forth. For now, you&#039;ll have to figure out how to configure these yourself lol&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is a list of all the Placeholder animations:&lt;br /&gt;
* &amp;lt;code&amp;gt;[https://gitlab.com/cable-mc/cobblemon/-/blob/main/common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/PoseableEntityModel.kt#L172 &amp;quot;q.quadruped_walk()&amp;quot;]&amp;lt;/code&amp;gt; - A basic walk animation for Pokémon with 4 legs&lt;br /&gt;
* &amp;lt;code&amp;gt;[https://gitlab.com/cable-mc/cobblemon/-/blob/main/common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/PoseableEntityModel.kt#L192 &amp;quot;q.biped_walk()&amp;quot;]&amp;lt;/code&amp;gt; - A basic walking animation for Pokémon who stand on 2 legs.&lt;br /&gt;
* &amp;lt;code&amp;gt;[https://gitlab.com/cable-mc/cobblemon/-/blob/main/common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/PoseableEntityModel.kt#L208 &amp;quot;q.bimanual_swing()&amp;quot;]&amp;lt;/code&amp;gt; - A basic arm swinging animation for Pokémon with 2 arms that usually stand on 2 legs.&lt;br /&gt;
* &amp;lt;code&amp;gt;[https://gitlab.com/cable-mc/cobblemon/-/blob/main/common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/PoseableEntityModel.kt#L224 &amp;quot;q.sine_wing_flap()&amp;quot;]&amp;lt;/code&amp;gt; - A basic wing flap animation for a pair of wings on a Pokémon. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Poser File Breakdown ==&lt;br /&gt;
Soon™&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Poser File Example ==&lt;br /&gt;
Instead of making &amp;lt;code&amp;gt;poser&amp;lt;/code&amp;gt; files from scratch each time, you can use other custom Pokémon posers as a template. Just be aware of the animations each Pokémon has. Also be aware that not all Pokémon have a bone called &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here is an example of a poser file for a custom &amp;lt;code&amp;gt;riolu&amp;lt;/code&amp;gt; that includes all currently implemented poses and their appropriate animations.&lt;br /&gt;
* Riolu obviously can&#039;t fly. This is just an example as no Pokémon can do everything currently.&lt;br /&gt;
* Blink animations are not applied to the sleep pose. This is because you don&#039;t blink when you sleep!&lt;br /&gt;
 {&lt;br /&gt;
  &amp;quot;portraitScale&amp;quot;: 2.3,&lt;br /&gt;
  &amp;quot;portraitTranslation&amp;quot;: [-0.1, 0.58, 0],&lt;br /&gt;
  &amp;quot;profileScale&amp;quot;: 0.75,&lt;br /&gt;
  &amp;quot;profileTranslation&amp;quot;: [0, 0.68, 0],&lt;br /&gt;
  &amp;quot;animations&amp;quot;: {&lt;br /&gt;
    &amp;quot;faint&amp;quot;: &amp;quot;q.bedrock_primary(&#039;riolu&#039;, &#039;faint&#039;, q.curve(&#039;one&#039;))&amp;quot;,&lt;br /&gt;
    &amp;quot;cry&amp;quot;: &amp;quot;q.bedrock_stateful(&#039;riolu&#039;, &#039;cry&#039;)&amp;quot;,&lt;br /&gt;
    &amp;quot;recoil&amp;quot;: &amp;quot;q.bedrock_stateful(&#039;riolu&#039;, &#039;recoil&#039;)&amp;quot;,&lt;br /&gt;
    &amp;quot;physical&amp;quot;: &amp;quot;q.bedrock_primary(&#039;riolu&#039;, &#039;physical&#039;, q.curve(&#039;symmetrical_wide&#039;))&amp;quot;,&lt;br /&gt;
    &amp;quot;special&amp;quot;: &amp;quot;q.bedrock_primary(&#039;riolu&#039;, &#039;special&#039;, q.curve(&#039;symmetrical_wide&#039;))&amp;quot;,&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;q.bedrock_primary(&#039;riolu&#039;, &#039;status&#039;, q.curve(&#039;symmetrical_wide&#039;))&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;poses&amp;quot;: {&lt;br /&gt;
    &amp;quot;battle-standing&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;STAND&amp;quot;],&lt;br /&gt;
      &amp;quot;isBattle&amp;quot;: true,&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.look(&#039;head&#039;)&amp;quot;,&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;riolu&#039;, &#039;battle_idle&#039;)&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;quirks&amp;quot;: [&amp;quot;q.bedrock_quirk(&#039;riolu&#039;, &#039;blink&#039;)&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;standing&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;STAND&amp;quot;, &amp;quot;NONE&amp;quot;, &amp;quot;PORTRAIT&amp;quot;, &amp;quot;PROFILE&amp;quot;],&lt;br /&gt;
      &amp;quot;isBattle&amp;quot;: false,&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.look(&#039;head&#039;)&amp;quot;,&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;riolu&#039;, &#039;ground_idle&#039;)&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;quirks&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.bedrock_quirk(&#039;riolu&#039;, &#039;blink&#039;)&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;walking&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;WALK&amp;quot;],&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.look(&#039;head&#039;)&amp;quot;,&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;riolu&#039;, &#039;ground_walk&#039;)&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;quirks&amp;quot;: [&amp;quot;q.bedrock_quirk(&#039;riolu&#039;, &#039;blink&#039;)&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;hover&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;HOVER&amp;quot;],&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.look(&#039;head&#039;)&amp;quot;,&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;riolu&#039;, &#039;air_idle&#039;)&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;quirks&amp;quot;: [&amp;quot;q.bedrock_quirk(&#039;riolu&#039;, &#039;blink&#039;)&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;fly&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;FLY&amp;quot;],&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.look(&#039;head&#039;)&amp;quot;,&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;riolu&#039;, &#039;air_fly&#039;)&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;quirks&amp;quot;: [&amp;quot;q.bedrock_quirk(&#039;riolu&#039;, &#039;blink&#039;)&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;float&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;FLOAT&amp;quot;],&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.look(&#039;head&#039;)&amp;quot;,&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;riolu&#039;, &#039;water_idle&#039;)&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;quirks&amp;quot;: [&amp;quot;q.bedrock_quirk(&#039;riolu&#039;, &#039;blink&#039;)&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;swim&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;SWIM&amp;quot;],&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.look(&#039;head&#039;)&amp;quot;,&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;riolu&#039;, &#039;water_swim&#039;)&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;quirks&amp;quot;: [&amp;quot;q.bedrock_quirk(&#039;riolu&#039;, &#039;blink&#039;)&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;sleep&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;SLEEP&amp;quot;],&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&amp;quot;q.bedrock(&#039;riolu&#039;, &#039;sleep&#039;)&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;shoulder_left&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;SHOULDER_LEFT&amp;quot;],&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.look(&#039;head&#039;)&amp;quot;,&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;riolu&#039;, &#039;shoulder_left&#039;)&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;quirks&amp;quot;: [&amp;quot;q.bedrock_quirk(&#039;riolu&#039;, &#039;blink&#039;)&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;shoulder_right&amp;quot;: {&lt;br /&gt;
      &amp;quot;poseTypes&amp;quot;: [&amp;quot;SHOULDER_RIGHT&amp;quot;],&lt;br /&gt;
      &amp;quot;animations&amp;quot;: [&lt;br /&gt;
        &amp;quot;q.look(&#039;head&#039;)&amp;quot;,&lt;br /&gt;
        &amp;quot;q.bedrock(&#039;riolu&#039;, &#039;shoulder_right&#039;)&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;quirks&amp;quot;: [&amp;quot;q.bedrock_quirk(&#039;riolu&#039;, &#039;blink&#039;)&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Addon Creation}}&lt;/div&gt;</summary>
		<author><name>Patch Notes Guy</name></author>
	</entry>
	<entry>
		<id>https://wiki.cobblemon.com/index.php?title=Config&amp;diff=4012</id>
		<title>Config</title>
		<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Config&amp;diff=4012"/>
		<updated>2024-03-03T03:48:05Z</updated>

		<summary type="html">&lt;p&gt;Patch Notes Guy: Updated spawning options&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category &lt;br /&gt;
! Setting &lt;br /&gt;
! Default &lt;br /&gt;
! Min-Max/Options&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || maxPokemonLevel || 100 || 1-1000 || The maximum level Pokémon can get to.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || maxPokemonFriendship || 255 || 0-1000 || The maximum friendship value.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || announceDropItems || true || true/false || Whether to notify the Player of dropped items from defeating wild Pokémon.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || defaultDropItemMethod || on-entity || on-entity/on-player/to-inventory || &lt;br /&gt;
&#039;&#039;&#039;entity:&#039;&#039;&#039; Drops the item on the entity that is dying, if it exists. If not, drops at the position parsed into drops.&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;player:&#039;&#039;&#039; Drops the item on the player that caused the drop, if they exist. If not, drops at the position parsed into drops.&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;inventory:&#039;&#039;&#039; Puts the item in the player&#039;s inventory or drops it on the ground if the inventory is full. If the player that caused the drop doesn&#039;t exist, it drops at the position parsed into drops.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || ambientPokemonCryTicks || 1080 || || Ticks between Pokémon cries. (Currently unused)&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || experienceMultiplier || 2 || || Additional Exp multiplier for Exp calculation.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || ninjaskCreatesShedinja || true || true/false || Whether to give the Player a Shedinja using the first available Pokéball in their inventory when evolving a Nincada.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || displayEntityLevelLabel || true || true/false || Whether to display the level above a Pokémon.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || captureCalculator || cobblemon || cobblemon || The ID of the capture calculator. Can be added by another mod. If the ID doesn&#039;t exist it uses the default capture calculator.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || playerDamagePokemon || true || true/false || Whether Players can attack Pokémon like normal Minecraft entities.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || maxDynamaxLevel || 10 || 0-10 || The maximum Dynamax level Pokémon can be upgraded to.&lt;br /&gt;
|-&lt;br /&gt;
| Storage || defaultBoxCount || 30 || 1-1000 || The number of boxes available in the PC.&lt;br /&gt;
|-&lt;br /&gt;
| Storage || pokemonSaveIntervalSeconds || 30 || 1-120 || Seconds between saving storage data to file. eg Party &amp;amp; PC data.&lt;br /&gt;
|-&lt;br /&gt;
| Storage || storageFormat || nbt || nbt/json/mongodb || The storage format used for storing Cobblemon data.&lt;br /&gt;
|-&lt;br /&gt;
| Storage || preventCompletePartyDeposit || false || true/false || Whether to prevent Players from depositing their last Party Pokémon into the PC.&lt;br /&gt;
|-&lt;br /&gt;
| Storage || mongoDBConnectionString || mongodb://localhost:27017 || mongodb://IP address:port || The database connection string for your mongoDB database for Cobblemon data storage.&lt;br /&gt;
|-&lt;br /&gt;
| Storage || mongoDBDatabaseName || cobblemon || || The name of the mongoDB for Cobblemon data storage.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || maxVerticalCorrectionBlocks || 64 || 1-200 || The maximum number of blocks that can be corrected when choosing a spawning area. The larger this value, the more reliably spawning will work in vertically bumpy terrain such as mountains. Raising this value only has a very small, negative impact on performance.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || minimumLevelRangeMax || 10 || 1-1000 || The value considered to be the highest party Pokémon level when a player&#039;s party is empty or extremely low level. The higher this value, the higher the levels of Pokémon can be around players with no or very weak Pokémon.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || enableSpawning || true || true/false || Whether to allow Pokémon to spawn.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || minimumDistanceBetweenEntities || 8.0 || || The minimum block distance between spawning Pokémon and existing Entities in the World. This prevents clustered Pokémon spawning.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || maxNearbyBlocksHorizontalRange || 4 || || The maximum number of horizontal blocks away that a block can be for it to still be considered &#039;nearby&#039; in a spawn condition. Lowering this value can slightly improve performance.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || maxNearbyBlocksVerticalRange || 2 || || The maximum number of vertical blocks away that a block can be for it to still be considered &#039;nearby&#039; in a spawn condition. Lowering this value can slightly improve performance.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || maxVerticalSpace || 8 || || How far to check above a spawn location to investigate head room. This value exists for performance reasons but should never be less than the largest &#039;height&#039;/&#039;depth&#039; condition in a spawn file.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || worldSliceDiameter || 8 || || The diameter of the world slices that a spawn action can occur in. When this value is large, there is more reliably frequent spawning at the cost of performance.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || worldSliceHeight || 16 || || The height of the world slices that a spawn action can occur in. When this value is large, there is more reliably frequent spawning at the cost of performance.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || ticksBetweenSpawnAttempts || 20.0 || || The amount of ticks (~20/second) between spawn attempts.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || minimumSliceDistanceFromPlayer || 16.0 || || Minimum amount of blocks from the Player that Pokémon can spawn.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || maximumSliceDistanceFromPlayer || 64.0 || || Maximum amount of blocks from the Player that Pokémon can spawn.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || exportSpawnConfig || false || true/false || Whether to generate the spawn config for more specific spawning settings.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || savePokemonToWorld || true || true/false || Whether to save Pokémon to the World so they exist after a Chunk/World is reloaded.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || pokemonPerChunk || 1.0 || || The amount of Pokémon allowed within a Chunk when spawning.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || baseApricornTreeGenerationChance || 0.1 || || Multiplier on biome-based chance for Apricorn trees to spawn during world generation.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || shinyRate || 8192.0 || || The chance for a spawned Pokémon to be shiny. If 0 no spawned Pokémon will be shiny. Calculated as 1/x.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || teraTypeRate || 20.0 || || The chance for a spawned Pokémon to have a Tera type that doesn&#039;t match it&#039;s typing. Calculated as 1/x.&lt;br /&gt;
|-&lt;br /&gt;
| Starter || exportStarterConfig || false || true/false || Whether to generate starter.json for editing the starter list.&lt;br /&gt;
|-&lt;br /&gt;
| Battles || autoUpdateShowdown || true || true/false || Whether to automatically update Showdown to the version shipped in the current Cobblemon version.&lt;br /&gt;
|-&lt;br /&gt;
| Battles || defaultFleeDistance || 32 || || How far away a Player must get to flee a battle (non-PvP). If the value is -1, battles cannot be fled.&lt;br /&gt;
|-&lt;br /&gt;
| Battles || allowExperienceFromPvP || true || true/false || Whether to allow Exp gain from PvP battles.&lt;br /&gt;
|-&lt;br /&gt;
| Battles || experienceShareMultiplier || 0.5 || || Multiplier of how much of the total Exp is given to a Pokémon holding an Exp. Share.&lt;br /&gt;
|-&lt;br /&gt;
| Battles || luckyEggMultiplier || 1.5 || || Multiplier of how much of the total Exp is given to a Pokémon holding a Lucky Egg.&lt;br /&gt;
|-&lt;br /&gt;
| Battles || allowSpectating || true || true/false || Whether to allow battles to be spectated.&lt;br /&gt;
|-&lt;br /&gt;
| Battles || walkingInBattleAnimations || false || true/false || Whether to allow walking animations to play during battle animations.&lt;br /&gt;
|-&lt;br /&gt;
| Passive Status || || 180-300 || || Range of seconds before clearing the status effect. The value is selected randomly from the range each time an effect is applied.&lt;br /&gt;
|-&lt;br /&gt;
| Healing || infiniteHealerCharge || false || true/false || Whether Healing Machines have infinite charges to heal Pokémon.&lt;br /&gt;
|-&lt;br /&gt;
| Healing || maxHealerCharge || 6.0 || || The maximum amount of full HP restoration Healing Machines can have. 1 charge is equivalent to a Max Revive, plus PP restoration.&lt;br /&gt;
|-&lt;br /&gt;
| Healing || chargeGainedPerTick || 0.000333333 || 0.0-maxHealerCharge || The amount of charge a Healing Machine gains per Server tick.&lt;br /&gt;
|-&lt;br /&gt;
| Healing || defaultFaintTimer || 300 || || &lt;br /&gt;
|-&lt;br /&gt;
| Healing || faintAwakenHealthPercent || 0.2 || || &lt;br /&gt;
|-&lt;br /&gt;
| Healing || healPercent || 0.05 || || &lt;br /&gt;
|-&lt;br /&gt;
| Healing || healTimer || 60 || || &lt;br /&gt;
|-&lt;br /&gt;
| World || appleLeftoversChance || 0.025 || || The chance to drop Leftovers when a Player eats an item that has &amp;lt;code&amp;gt;#cobblemon:held/leaves_leftovers&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| World || maxRootsInArea || 5 || || The maximum number of &amp;lt;code&amp;gt;#cobblemon:roots&amp;lt;/code&amp;gt; that can generate within a 8x2x8 sphere.&lt;br /&gt;
|-&lt;br /&gt;
| World || bigRootPropagationChance || 0.1 || || The chance that Big Roots will grow more roots where possible.&lt;br /&gt;
|-&lt;br /&gt;
| World || energyRootChance || 0.25 || || The chance that a Big Root will grow an Energy Root.&lt;br /&gt;
|-&lt;br /&gt;
| World || defaultPasturedPokemonLimit || 16 || || The maximum Pokémon that can be placed in a Pasture block.&lt;br /&gt;
|-&lt;br /&gt;
| World || pastureBlockUpdateTicks || 40 || || The number of server ticks between Pasture block updates.&lt;br /&gt;
|-&lt;br /&gt;
| World || pastureMaxWanderDistance || 64 || || The maximum amount of blocks a Pokémon can move from the Pasture block.&lt;br /&gt;
|-&lt;br /&gt;
| World || pastureMaxPerChunk || 4.0 || || The maximum number of pastured Pokémon that can be sent out in a chunk.&lt;br /&gt;
|-&lt;br /&gt;
| World || maxInsertedFossilItems || 2 || || The maximum amount of fossils that can be added to the FossilAnalyzer.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Patch Notes Guy</name></author>
	</entry>
	<entry>
		<id>https://wiki.cobblemon.com/index.php?title=Config&amp;diff=4011</id>
		<title>Config</title>
		<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Config&amp;diff=4011"/>
		<updated>2024-03-03T03:43:51Z</updated>

		<summary type="html">&lt;p&gt;Patch Notes Guy: Updated spawning options&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Category &lt;br /&gt;
! Setting &lt;br /&gt;
! Default &lt;br /&gt;
! Min-Max/Options&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || maxPokemonLevel || 100 || 1-1000 || The maximum level Pokémon can get to.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || maxPokemonFriendship || 255 || 0-1000 || The maximum friendship value.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || announceDropItems || true || true/false || Whether to notify the Player of dropped items from defeating wild Pokémon.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || defaultDropItemMethod || on-entity || on-entity/on-player/to-inventory || &lt;br /&gt;
&#039;&#039;&#039;entity:&#039;&#039;&#039; Drops the item on the entity that is dying, if it exists. If not, drops at the position parsed into drops.&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;player:&#039;&#039;&#039; Drops the item on the player that caused the drop, if they exist. If not, drops at the position parsed into drops.&amp;lt;/br&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;inventory:&#039;&#039;&#039; Puts the item in the player&#039;s inventory or drops it on the ground if the inventory is full. If the player that caused the drop doesn&#039;t exist, it drops at the position parsed into drops.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || ambientPokemonCryTicks || 1080 || || Ticks between Pokémon cries. (Currently unused)&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || experienceMultiplier || 2 || || Additional Exp multiplier for Exp calculation.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || ninjaskCreatesShedinja || true || true/false || Whether to give the Player a Shedinja using the first available Pokéball in their inventory when evolving a Nincada.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || displayEntityLevelLabel || true || true/false || Whether to display the level above a Pokémon.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || captureCalculator || cobblemon || cobblemon || The ID of the capture calculator. Can be added by another mod. If the ID doesn&#039;t exist it uses the default capture calculator.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || playerDamagePokemon || true || true/false || Whether Players can attack Pokémon like normal Minecraft entities.&lt;br /&gt;
|-&lt;br /&gt;
| Pokemon || maxDynamaxLevel || 10 || 0-10 || The maximum Dynamax level Pokémon can be upgraded to.&lt;br /&gt;
|-&lt;br /&gt;
| Storage || defaultBoxCount || 30 || 1-1000 || The number of boxes available in the PC.&lt;br /&gt;
|-&lt;br /&gt;
| Storage || pokemonSaveIntervalSeconds || 30 || 1-120 || Seconds between saving storage data to file. eg Party &amp;amp; PC data.&lt;br /&gt;
|-&lt;br /&gt;
| Storage || storageFormat || nbt || nbt/json/mongodb || The storage format used for storing Cobblemon data.&lt;br /&gt;
|-&lt;br /&gt;
| Storage || preventCompletePartyDeposit || false || true/false || Whether to prevent Players from depositing their last Party Pokémon into the PC.&lt;br /&gt;
|-&lt;br /&gt;
| Storage || mongoDBConnectionString || mongodb://localhost:27017 || mongodb://IP address:port || The database connection string for your mongoDB database for Cobblemon data storage.&lt;br /&gt;
|-&lt;br /&gt;
| Storage || mongoDBDatabaseName || cobblemon || || The name of the mongoDB for Cobblemon data storage.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || maxVerticalCorrectionBlocks || 64 || 1-200 || &lt;br /&gt;
|-&lt;br /&gt;
| Spawning || minimumLevelRangeMax || 10 || 1-1000 || &lt;br /&gt;
|-&lt;br /&gt;
| Spawning || enableSpawning || true || true/false || Whether to allow Pokémon to spawn.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || minimumDistanceBetweenEntities || 8.0 || || The minimum block distance between spawning Pokémon and existing Entities in the World. This prevents clustered Pokémon spawning.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || maxNearbyBlocksHorizontalRange || 4 || || The maximum number of horizontal blocks away that a block can be for it to still be considered &#039;nearby&#039; in a spawn condition. Lowering this value can slightly improve performance.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || maxNearbyBlocksVerticalRange || 2 || || The maximum number of vertical blocks away that a block can be for it to still be considered &#039;nearby&#039; in a spawn condition. Lowering this value can slightly improve performance.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || maxVerticalSpace || 8 || || How far to check above a spawn location to investigate head room. This value exists for performance reasons but should never be less than the largest &#039;height&#039;/&#039;depth&#039; condition in a spawn file.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || worldSliceDiameter || 8 || || The diameter of the world slices that a spawn action can occur in. When this value is large, there is more reliably frequent spawning at the cost of performance.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || worldSliceHeight || 16 || || The height of the world slices that a spawn action can occur in. When this value is large, there is more reliably frequent spawning at the cost of performance.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || ticksBetweenSpawnAttempts || 20.0 || || The amount of ticks (~20/second) between spawn attempts.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || minimumSliceDistanceFromPlayer || 16.0 || || Minimum amount of blocks from the Player that Pokémon can spawn.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || maximumSliceDistanceFromPlayer || 64.0 || || Maximum amount of blocks from the Player that Pokémon can spawn.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || exportSpawnConfig || false || true/false || Whether to generate the spawn config for more specific spawning settings.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || savePokemonToWorld || true || true/false || Whether to save Pokémon to the World so they exist after a Chunk/World is reloaded.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || pokemonPerChunk || 1.0 || || The amount of Pokémon allowed within a Chunk when spawning.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || baseApricornTreeGenerationChance || 0.1 || || Multiplier on biome-based chance for Apricorn trees to spawn during world generation.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || shinyRate || 8192.0 || || The chance for a spawned Pokémon to be shiny. If 0 no spawned Pokémon will be shiny. Calculated as 1/x.&lt;br /&gt;
|-&lt;br /&gt;
| Spawning || teraTypeRate || 20.0 || || The chance for a spawned Pokémon to have a Tera type that doesn&#039;t match it&#039;s typing. Calculated as 1/x.&lt;br /&gt;
|-&lt;br /&gt;
| Starter || exportStarterConfig || false || true/false || Whether to generate starter.json for editing the starter list.&lt;br /&gt;
|-&lt;br /&gt;
| Battles || autoUpdateShowdown || true || true/false || Whether to automatically update Showdown to the version shipped in the current Cobblemon version.&lt;br /&gt;
|-&lt;br /&gt;
| Battles || defaultFleeDistance || 32 || || How far away a Player must get to flee a battle (non-PvP). If the value is -1, battles cannot be fled.&lt;br /&gt;
|-&lt;br /&gt;
| Battles || allowExperienceFromPvP || true || true/false || Whether to allow Exp gain from PvP battles.&lt;br /&gt;
|-&lt;br /&gt;
| Battles || experienceShareMultiplier || 0.5 || || Multiplier of how much of the total Exp is given to a Pokémon holding an Exp. Share.&lt;br /&gt;
|-&lt;br /&gt;
| Battles || luckyEggMultiplier || 1.5 || || Multiplier of how much of the total Exp is given to a Pokémon holding a Lucky Egg.&lt;br /&gt;
|-&lt;br /&gt;
| Battles || allowSpectating || true || true/false || Whether to allow battles to be spectated.&lt;br /&gt;
|-&lt;br /&gt;
| Battles || walkingInBattleAnimations || false || true/false || Whether to allow walking animations to play during battle animations.&lt;br /&gt;
|-&lt;br /&gt;
| Passive Status || || 180-300 || || Range of seconds before clearing the status effect. The value is selected randomly from the range each time an effect is applied.&lt;br /&gt;
|-&lt;br /&gt;
| Healing || infiniteHealerCharge || false || true/false || Whether Healing Machines have infinite charges to heal Pokémon.&lt;br /&gt;
|-&lt;br /&gt;
| Healing || maxHealerCharge || 6.0 || || The maximum amount of full HP restoration Healing Machines can have. 1 charge is equivalent to a Max Revive, plus PP restoration.&lt;br /&gt;
|-&lt;br /&gt;
| Healing || chargeGainedPerTick || 0.000333333 || 0.0-maxHealerCharge || The amount of charge a Healing Machine gains per Server tick.&lt;br /&gt;
|-&lt;br /&gt;
| Healing || defaultFaintTimer || 300 || || &lt;br /&gt;
|-&lt;br /&gt;
| Healing || faintAwakenHealthPercent || 0.2 || || &lt;br /&gt;
|-&lt;br /&gt;
| Healing || healPercent || 0.05 || || &lt;br /&gt;
|-&lt;br /&gt;
| Healing || healTimer || 60 || || &lt;br /&gt;
|-&lt;br /&gt;
| World || appleLeftoversChance || 0.025 || || The chance to drop Leftovers when a Player eats an item that has &amp;lt;code&amp;gt;#cobblemon:held/leaves_leftovers&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| World || maxRootsInArea || 5 || || The maximum number of &amp;lt;code&amp;gt;#cobblemon:roots&amp;lt;/code&amp;gt; that can generate within a 8x2x8 sphere.&lt;br /&gt;
|-&lt;br /&gt;
| World || bigRootPropagationChance || 0.1 || || The chance that Big Roots will grow more roots where possible.&lt;br /&gt;
|-&lt;br /&gt;
| World || energyRootChance || 0.25 || || The chance that a Big Root will grow an Energy Root.&lt;br /&gt;
|-&lt;br /&gt;
| World || defaultPasturedPokemonLimit || 16 || || The maximum Pokémon that can be placed in a Pasture block.&lt;br /&gt;
|-&lt;br /&gt;
| World || pastureBlockUpdateTicks || 40 || || The number of server ticks between Pasture block updates.&lt;br /&gt;
|-&lt;br /&gt;
| World || pastureMaxWanderDistance || 64 || || The maximum amount of blocks a Pokémon can move from the Pasture block.&lt;br /&gt;
|-&lt;br /&gt;
| World || pastureMaxPerChunk || 4.0 || || The maximum number of pastured Pokémon that can be sent out in a chunk.&lt;br /&gt;
|-&lt;br /&gt;
| World || maxInsertedFossilItems || 2 || || The maximum amount of fossils that can be added to the FossilAnalyzer.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Patch Notes Guy</name></author>
	</entry>
	<entry>
		<id>https://wiki.cobblemon.com/index.php?title=Spawn_Rules&amp;diff=3652</id>
		<title>Spawn Rules</title>
		<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Spawn_Rules&amp;diff=3652"/>
		<updated>2023-12-23T05:10:06Z</updated>

		<summary type="html">&lt;p&gt;Patch Notes Guy: The example should probably be enabled&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Coming in 1.5&lt;br /&gt;
&lt;br /&gt;
Spawn Rules are a datapack feature that allow addons to modify spawning behaviour in a global way. Spawn Rules contain a set of rule components, and there are several component types to choose from. Spawn rules are loaded from the `spawn_rules` folder.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;weight&amp;quot;:&lt;br /&gt;
The weight rule component allows you to selectively modify the weight of spawn details as they are used. For example, you can make the weight of a Pikachu spawn in an area that is well lit to be multiplied by 20.&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;weight&amp;quot;,&lt;br /&gt;
  &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
  &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;gt; 8&amp;quot;,&lt;br /&gt;
  &amp;quot;weight&amp;quot;: &amp;quot;v.weight * 20&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;filter&amp;quot;:&lt;br /&gt;
The filter rule component allows you to block or allow spawns. This is like adding a global rule against spawning. For example, you can make Pikachu unable to spawn in an area that is not well lit.&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;filter&amp;quot;,&lt;br /&gt;
  &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
  &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;lt; 8&amp;quot;,&lt;br /&gt;
  &amp;quot;allow&amp;quot;: &amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;location&amp;quot;:&lt;br /&gt;
The location rule component allows you to block or allow locations to be considered for any spawning. This is more aggressive than the filter rule component because it cancels the spawning process much sooner. This is best used to create no-spawn zones.&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;location&amp;quot;,&lt;br /&gt;
  &amp;quot;allow&amp;quot;: &amp;quot;v.y &amp;gt; 100 || v.world.is_of(&#039;minecraft:overworld&#039;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Spawn Detail Properties&lt;br /&gt;
Every spawn detail that is made available under the name &amp;quot;spawn&amp;quot; has properties that can be checked in your spawn rule components.&lt;br /&gt;
* &amp;quot;weight&amp;quot;: The base weight of the spawn.&lt;br /&gt;
* &amp;quot;percentage&amp;quot;: The base percentage spawn chance (usually null)&lt;br /&gt;
* &amp;quot;id&amp;quot;: The unique ID of the spawn.&lt;br /&gt;
* &amp;quot;bucket&amp;quot;: The bucket of the spawn.&lt;br /&gt;
* &amp;quot;width&amp;quot;: The specified width required for spawning.&lt;br /&gt;
* &amp;quot;height&amp;quot;: The specified height required for spawning.&lt;br /&gt;
* &amp;quot;context&amp;quot;: The context type of the spawn.&lt;br /&gt;
* &amp;quot;labels&amp;quot;: A list of label strings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pokémon Spawn Detail Properties&lt;br /&gt;
Pokémon spawn details have more properties than the general spawn detail.&lt;br /&gt;
* &amp;quot;pokemon&amp;quot;: The specified Pokémon as a variable. This is what was specified in the file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pokémon Properties&lt;br /&gt;
Pokémon Properties referenced from MoLang expressions have many properties.&lt;br /&gt;
* &amp;quot;species&amp;quot;: The species of the Pokémon, such as cobblemon:bulbasaur, if set.&lt;br /&gt;
* &amp;quot;level&amp;quot;: The level of the Pokémon, if set.&lt;br /&gt;
* &amp;quot;shiny&amp;quot;: True or false depending on if the Pokémon is explicitly marked as either. It can be null.&lt;br /&gt;
* &amp;quot;gender&amp;quot;: The gender name, if set.&lt;br /&gt;
* &amp;quot;friendship&amp;quot;: The friendship value of the Pokémon, if set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Location properties&lt;br /&gt;
When using the &amp;quot;location&amp;quot; rule component, many variables are supplied.&lt;br /&gt;
* &amp;quot;x&amp;quot;: The x coordinate being checked.&lt;br /&gt;
* &amp;quot;y&amp;quot;: The y coordinate being checked.&lt;br /&gt;
* &amp;quot;z&amp;quot;: The z coordinate being checked.&lt;br /&gt;
* &amp;quot;context&amp;quot;: The context type being checked, such as &amp;quot;grounded&amp;quot; or &amp;quot;seafloor&amp;quot;.&lt;br /&gt;
* &amp;quot;world&amp;quot;: The world it&#039;s in. This contains two functions, is_of and is_in for checking the ID or if it fits a specific tag, respectively. For example, v.world.is_in(&#039;yourmod:your_world_tag&#039;).&lt;br /&gt;
* &amp;quot;dimension_type&amp;quot;: The dimension it&#039;s in. This contains the same two functions as the &amp;quot;world&amp;quot; property.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context properties&lt;br /&gt;
When using a context selector, a context will be added as a variable and it contains many variables.&lt;br /&gt;
* &amp;quot;light&amp;quot;: The light level, from 0 to 15.&lt;br /&gt;
* &amp;quot;x&amp;quot;: The x coordinate.&lt;br /&gt;
* &amp;quot;y&amp;quot;: The y coordinate.&lt;br /&gt;
* &amp;quot;z&amp;quot;: The z coordinate.&lt;br /&gt;
* &amp;quot;moon_phase&amp;quot;: The phase of the moon, between 0 and 7 inclusive.&lt;br /&gt;
* &amp;quot;world&amp;quot;: The world of the context, in the same format in the &amp;quot;location&amp;quot; properties.&lt;br /&gt;
* &amp;quot;biome&amp;quot;: The biome of the context. This, like world and dimension type, contains two functions: is_of and is_in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example (weird) spawn rule:&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;displayName&amp;quot;: &amp;quot;Pikachu Daylight Multiplier - (Example file)&amp;quot;,&lt;br /&gt;
  &amp;quot;enabled&amp;quot;: &amp;quot;true&amp;quot;,&lt;br /&gt;
  &amp;quot;components&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;weight&amp;quot;,&lt;br /&gt;
      &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
      &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;gt; 8&amp;quot;,&lt;br /&gt;
      &amp;quot;weight&amp;quot;: &amp;quot;v.weight * 20&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;filter&amp;quot;,&lt;br /&gt;
      &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
      &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;lt; 8&amp;quot;,&lt;br /&gt;
      &amp;quot;allow&amp;quot;: &amp;quot;false&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;location&amp;quot;,&lt;br /&gt;
      &amp;quot;allow&amp;quot;: &amp;quot;v.y &amp;gt; 100 || v.world.is_of(&#039;minecraft:overworld&#039;)&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;/div&gt;</summary>
		<author><name>Patch Notes Guy</name></author>
	</entry>
	<entry>
		<id>https://wiki.cobblemon.com/index.php?title=Spawn_Rules&amp;diff=3651</id>
		<title>Spawn Rules</title>
		<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Spawn_Rules&amp;diff=3651"/>
		<updated>2023-12-23T05:05:57Z</updated>

		<summary type="html">&lt;p&gt;Patch Notes Guy: More formatting improvements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Coming in 1.5&lt;br /&gt;
&lt;br /&gt;
Spawn Rules are a datapack feature that allow addons to modify spawning behaviour in a global way. Spawn Rules contain a set of rule components, and there are several component types to choose from. Spawn rules are loaded from the `spawn_rules` folder.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;weight&amp;quot;:&lt;br /&gt;
The weight rule component allows you to selectively modify the weight of spawn details as they are used. For example, you can make the weight of a Pikachu spawn in an area that is well lit to be multiplied by 20.&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;weight&amp;quot;,&lt;br /&gt;
  &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
  &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;gt; 8&amp;quot;,&lt;br /&gt;
  &amp;quot;weight&amp;quot;: &amp;quot;v.weight * 20&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;filter&amp;quot;:&lt;br /&gt;
The filter rule component allows you to block or allow spawns. This is like adding a global rule against spawning. For example, you can make Pikachu unable to spawn in an area that is not well lit.&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;filter&amp;quot;,&lt;br /&gt;
  &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
  &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;lt; 8&amp;quot;,&lt;br /&gt;
  &amp;quot;allow&amp;quot;: &amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;location&amp;quot;:&lt;br /&gt;
The location rule component allows you to block or allow locations to be considered for any spawning. This is more aggressive than the filter rule component because it cancels the spawning process much sooner. This is best used to create no-spawn zones.&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;location&amp;quot;,&lt;br /&gt;
  &amp;quot;allow&amp;quot;: &amp;quot;v.y &amp;gt; 100 || v.world.is_of(&#039;minecraft:overworld&#039;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Spawn Detail Properties&lt;br /&gt;
Every spawn detail that is made available under the name &amp;quot;spawn&amp;quot; has properties that can be checked in your spawn rule components.&lt;br /&gt;
* &amp;quot;weight&amp;quot;: The base weight of the spawn.&lt;br /&gt;
* &amp;quot;percentage&amp;quot;: The base percentage spawn chance (usually null)&lt;br /&gt;
* &amp;quot;id&amp;quot;: The unique ID of the spawn.&lt;br /&gt;
* &amp;quot;bucket&amp;quot;: The bucket of the spawn.&lt;br /&gt;
* &amp;quot;width&amp;quot;: The specified width required for spawning.&lt;br /&gt;
* &amp;quot;height&amp;quot;: The specified height required for spawning.&lt;br /&gt;
* &amp;quot;context&amp;quot;: The context type of the spawn.&lt;br /&gt;
* &amp;quot;labels&amp;quot;: A list of label strings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pokémon Spawn Detail Properties&lt;br /&gt;
Pokémon spawn details have more properties than the general spawn detail.&lt;br /&gt;
* &amp;quot;pokemon&amp;quot;: The specified Pokémon as a variable. This is what was specified in the file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pokémon Properties&lt;br /&gt;
Pokémon Properties referenced from MoLang expressions have many properties.&lt;br /&gt;
* &amp;quot;species&amp;quot;: The species of the Pokémon, such as cobblemon:bulbasaur, if set.&lt;br /&gt;
* &amp;quot;level&amp;quot;: The level of the Pokémon, if set.&lt;br /&gt;
* &amp;quot;shiny&amp;quot;: True or false depending on if the Pokémon is explicitly marked as either. It can be null.&lt;br /&gt;
* &amp;quot;gender&amp;quot;: The gender name, if set.&lt;br /&gt;
* &amp;quot;friendship&amp;quot;: The friendship value of the Pokémon, if set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Location properties&lt;br /&gt;
When using the &amp;quot;location&amp;quot; rule component, many variables are supplied.&lt;br /&gt;
* &amp;quot;x&amp;quot;: The x coordinate being checked.&lt;br /&gt;
* &amp;quot;y&amp;quot;: The y coordinate being checked.&lt;br /&gt;
* &amp;quot;z&amp;quot;: The z coordinate being checked.&lt;br /&gt;
* &amp;quot;context&amp;quot;: The context type being checked, such as &amp;quot;grounded&amp;quot; or &amp;quot;seafloor&amp;quot;.&lt;br /&gt;
* &amp;quot;world&amp;quot;: The world it&#039;s in. This contains two functions, is_of and is_in for checking the ID or if it fits a specific tag, respectively. For example, v.world.is_in(&#039;yourmod:your_world_tag&#039;).&lt;br /&gt;
* &amp;quot;dimension_type&amp;quot;: The dimension it&#039;s in. This contains the same two functions as the &amp;quot;world&amp;quot; property.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Context properties&lt;br /&gt;
When using a context selector, a context will be added as a variable and it contains many variables.&lt;br /&gt;
* &amp;quot;light&amp;quot;: The light level, from 0 to 15.&lt;br /&gt;
* &amp;quot;x&amp;quot;: The x coordinate.&lt;br /&gt;
* &amp;quot;y&amp;quot;: The y coordinate.&lt;br /&gt;
* &amp;quot;z&amp;quot;: The z coordinate.&lt;br /&gt;
* &amp;quot;moon_phase&amp;quot;: The phase of the moon, between 0 and 7 inclusive.&lt;br /&gt;
* &amp;quot;world&amp;quot;: The world of the context, in the same format in the &amp;quot;location&amp;quot; properties.&lt;br /&gt;
* &amp;quot;biome&amp;quot;: The biome of the context. This, like world and dimension type, contains two functions: is_of and is_in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example (weird) spawn rule:&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;displayName&amp;quot;: &amp;quot;Pikachu Daylight Multiplier - (Example file)&amp;quot;,&lt;br /&gt;
  &amp;quot;enabled&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
  &amp;quot;components&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;weight&amp;quot;,&lt;br /&gt;
      &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
      &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;gt; 8&amp;quot;,&lt;br /&gt;
      &amp;quot;weight&amp;quot;: &amp;quot;v.weight * 20&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;filter&amp;quot;,&lt;br /&gt;
      &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
      &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;lt; 8&amp;quot;,&lt;br /&gt;
      &amp;quot;allow&amp;quot;: &amp;quot;false&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;location&amp;quot;,&lt;br /&gt;
      &amp;quot;allow&amp;quot;: &amp;quot;v.y &amp;gt; 100 || v.world.is_of(&#039;minecraft:overworld&#039;)&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;/div&gt;</summary>
		<author><name>Patch Notes Guy</name></author>
	</entry>
	<entry>
		<id>https://wiki.cobblemon.com/index.php?title=Spawn_Rules&amp;diff=3650</id>
		<title>Spawn Rules</title>
		<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Spawn_Rules&amp;diff=3650"/>
		<updated>2023-12-23T05:03:58Z</updated>

		<summary type="html">&lt;p&gt;Patch Notes Guy: Some formatting improvements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Coming in 1.5&lt;br /&gt;
&lt;br /&gt;
Spawn Rules are a datapack feature that allow addons to modify spawning behaviour in a global way. Spawn Rules contain a set of rule components, and there are several component types to choose from. Spawn rules are loaded from the `spawn_rules` folder.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;weight&amp;quot;:&lt;br /&gt;
The weight rule component allows you to selectively modify the weight of spawn details as they are used. For example, you can make the weight of a Pikachu spawn in an area that is well lit to be multiplied by 20.&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;weight&amp;quot;,&lt;br /&gt;
  &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
  &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;gt; 8&amp;quot;,&lt;br /&gt;
  &amp;quot;weight&amp;quot;: &amp;quot;v.weight * 20&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;filter&amp;quot;:&lt;br /&gt;
The filter rule component allows you to block or allow spawns. This is like adding a global rule against spawning. For example, you can make Pikachu unable to spawn in an area that is not well lit.&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;filter&amp;quot;,&lt;br /&gt;
  &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
  &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;lt; 8&amp;quot;,&lt;br /&gt;
  &amp;quot;allow&amp;quot;: &amp;quot;false&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;location&amp;quot;:&lt;br /&gt;
The location rule component allows you to block or allow locations to be considered for any spawning. This is more aggressive than the filter rule component because it cancels the spawning process much sooner. This is best used to create no-spawn zones.&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;location&amp;quot;,&lt;br /&gt;
  &amp;quot;allow&amp;quot;: &amp;quot;v.y &amp;gt; 100 || v.world.is_of(&#039;minecraft:overworld&#039;)&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Spawn Detail Properties&lt;br /&gt;
Every spawn detail that is made available under the name &amp;quot;spawn&amp;quot; has properties that can be checked in your spawn rule components.&lt;br /&gt;
- &amp;quot;weight&amp;quot;: The base weight of the spawn.&lt;br /&gt;
- &amp;quot;percentage&amp;quot;: The base percentage spawn chance (usually null)&lt;br /&gt;
- &amp;quot;id&amp;quot;: The unique ID of the spawn.&lt;br /&gt;
- &amp;quot;bucket&amp;quot;: The bucket of the spawn.&lt;br /&gt;
- &amp;quot;width&amp;quot;: The specified width required for spawning.&lt;br /&gt;
- &amp;quot;height&amp;quot;: The specified height required for spawning.&lt;br /&gt;
- &amp;quot;context&amp;quot;: The context type of the spawn.&lt;br /&gt;
- &amp;quot;labels&amp;quot;: A list of label strings.&lt;br /&gt;
&lt;br /&gt;
Pokémon Spawn Detail Properties&lt;br /&gt;
Pokémon spawn details have more properties than the general spawn detail.&lt;br /&gt;
- &amp;quot;pokemon&amp;quot;: The specified Pokémon as a variable. This is what was specified in the file.&lt;br /&gt;
&lt;br /&gt;
Pokémon Properties&lt;br /&gt;
Pokémon Properties referenced from MoLang expressions have many properties.&lt;br /&gt;
- &amp;quot;species&amp;quot;: The species of the Pokémon, such as cobblemon:bulbasaur, if set.&lt;br /&gt;
- &amp;quot;level&amp;quot;: The level of the Pokémon, if set.&lt;br /&gt;
- &amp;quot;shiny&amp;quot;: True or false depending on if the Pokémon is explicitly marked as either. It can be null.&lt;br /&gt;
- &amp;quot;gender&amp;quot;: The gender name, if set.&lt;br /&gt;
- &amp;quot;friendship&amp;quot;: The friendship value of the Pokémon, if set.&lt;br /&gt;
&lt;br /&gt;
Location properties&lt;br /&gt;
When using the &amp;quot;location&amp;quot; rule component, many variables are supplied.&lt;br /&gt;
- &amp;quot;x&amp;quot;: The x coordinate being checked.&lt;br /&gt;
- &amp;quot;y&amp;quot;: The y coordinate being checked.&lt;br /&gt;
- &amp;quot;z&amp;quot;: The z coordinate being checked.&lt;br /&gt;
- &amp;quot;context&amp;quot;: The context type being checked, such as &amp;quot;grounded&amp;quot; or &amp;quot;seafloor&amp;quot;.&lt;br /&gt;
- &amp;quot;world&amp;quot;: The world it&#039;s in. This contains two functions, is_of and is_in for checking the ID or if it fits a specific tag, respectively. For example, v.world.is_in(&#039;yourmod:your_world_tag&#039;).&lt;br /&gt;
- &amp;quot;dimension_type&amp;quot;: The dimension it&#039;s in. This contains the same two functions as the &amp;quot;world&amp;quot; property.&lt;br /&gt;
&lt;br /&gt;
Context properties&lt;br /&gt;
When using a context selector, a context will be added as a variable and it contains many variables.&lt;br /&gt;
- &amp;quot;light&amp;quot;: The light level, from 0 to 15.&lt;br /&gt;
- &amp;quot;x&amp;quot;: The x coordinate.&lt;br /&gt;
- &amp;quot;y&amp;quot;: The y coordinate.&lt;br /&gt;
- &amp;quot;z&amp;quot;: The z coordinate.&lt;br /&gt;
- &amp;quot;moon_phase&amp;quot;: The phase of the moon, between 0 and 7 inclusive.&lt;br /&gt;
- &amp;quot;world&amp;quot;: The world of the context, in the same format in the &amp;quot;location&amp;quot; properties.&lt;br /&gt;
- &amp;quot;biome&amp;quot;: The biome of the context. This, like world and dimension type, contains two functions: is_of and is_in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example (weird) spawn rule:&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;displayName&amp;quot;: &amp;quot;Pikachu Daylight Multiplier - (Example file)&amp;quot;,&lt;br /&gt;
  &amp;quot;enabled&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
  &amp;quot;components&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;weight&amp;quot;,&lt;br /&gt;
      &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
      &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;gt; 8&amp;quot;,&lt;br /&gt;
      &amp;quot;weight&amp;quot;: &amp;quot;v.weight * 20&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;filter&amp;quot;,&lt;br /&gt;
      &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
      &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;lt; 8&amp;quot;,&lt;br /&gt;
      &amp;quot;allow&amp;quot;: &amp;quot;false&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;location&amp;quot;,&lt;br /&gt;
      &amp;quot;allow&amp;quot;: &amp;quot;v.y &amp;gt; 100 || v.world.is_of(&#039;minecraft:overworld&#039;)&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Patch Notes Guy</name></author>
	</entry>
	<entry>
		<id>https://wiki.cobblemon.com/index.php?title=Spawn_Rules&amp;diff=3649</id>
		<title>Spawn Rules</title>
		<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Spawn_Rules&amp;diff=3649"/>
		<updated>2023-12-23T05:02:35Z</updated>

		<summary type="html">&lt;p&gt;Patch Notes Guy: Rough draft of spawn rules.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Coming in 1.5&lt;br /&gt;
&lt;br /&gt;
Spawn Rules are a datapack feature that allow addons to modify spawning behaviour in a global way. Spawn Rules contain a set of rule components, and there are several component types to choose from. Spawn rules are loaded from the `spawn_rules` folder.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;weight&amp;quot;:&lt;br /&gt;
The weight rule component allows you to selectively modify the weight of spawn details as they are used. For example, you can make the weight of a Pikachu spawn in an area that is well lit to be multiplied by 20.&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;weight&amp;quot;,&lt;br /&gt;
  &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
  &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;gt; 8&amp;quot;,&lt;br /&gt;
  &amp;quot;weight&amp;quot;: &amp;quot;v.weight * 20&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;filter&amp;quot;:&lt;br /&gt;
The filter rule component allows you to block or allow spawns. This is like adding a global rule against spawning. For example, you can make Pikachu unable to spawn in an area that is not well lit.&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;filter&amp;quot;,&lt;br /&gt;
  &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
  &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;lt; 8&amp;quot;,&lt;br /&gt;
  &amp;quot;allow&amp;quot;: &amp;quot;false&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;location&amp;quot;:&lt;br /&gt;
The location rule component allows you to block or allow locations to be considered for any spawning. This is more aggressive than the filter rule component because it cancels the spawning process much sooner. This is best used to create no-spawn zones.&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;location&amp;quot;,&lt;br /&gt;
  &amp;quot;allow&amp;quot;: &amp;quot;v.y &amp;gt; 100 || v.world.is_of(&#039;minecraft:overworld&#039;)&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Spawn Detail Properties&lt;br /&gt;
Every spawn detail that is made available under the name &amp;quot;spawn&amp;quot; has properties that can be checked in your spawn rule components.&lt;br /&gt;
&amp;quot;weight&amp;quot;: The base weight of the spawn.&lt;br /&gt;
&amp;quot;percentage&amp;quot;: The base percentage spawn chance (usually null)&lt;br /&gt;
&amp;quot;id&amp;quot;: The unique ID of the spawn.&lt;br /&gt;
&amp;quot;bucket&amp;quot;: The bucket of the spawn.&lt;br /&gt;
&amp;quot;width&amp;quot;: The specified width required for spawning.&lt;br /&gt;
&amp;quot;height&amp;quot;: The specified height required for spawning.&lt;br /&gt;
&amp;quot;context&amp;quot;: The context type of the spawn.&lt;br /&gt;
&amp;quot;labels&amp;quot;: A list of label strings.&lt;br /&gt;
&lt;br /&gt;
Pokémon Spawn Detail Properties&lt;br /&gt;
Pokémon spawn details have more properties than the general spawn detail.&lt;br /&gt;
&amp;quot;pokemon&amp;quot;: The specified Pokémon as a variable. This is what was specified in the file.&lt;br /&gt;
&lt;br /&gt;
Pokémon Properties&lt;br /&gt;
Pokémon Properties referenced from MoLang expressions have many properties.&lt;br /&gt;
&amp;quot;species&amp;quot;: The species of the Pokémon, such as cobblemon:bulbasaur, if set.&lt;br /&gt;
&amp;quot;level&amp;quot;: The level of the Pokémon, if set.&lt;br /&gt;
&amp;quot;shiny&amp;quot;: True or false depending on if the Pokémon is explicitly marked as either. It can be null.&lt;br /&gt;
&amp;quot;gender&amp;quot;: The gender name, if set.&lt;br /&gt;
&amp;quot;friendship&amp;quot;: The friendship value of the Pokémon, if set.&lt;br /&gt;
&lt;br /&gt;
Location properties&lt;br /&gt;
When using the &amp;quot;location&amp;quot; rule component, many variables are supplied.&lt;br /&gt;
&amp;quot;x&amp;quot;: The x coordinate being checked.&lt;br /&gt;
&amp;quot;y&amp;quot;: The y coordinate being checked.&lt;br /&gt;
&amp;quot;z&amp;quot;: The z coordinate being checked.&lt;br /&gt;
&amp;quot;context&amp;quot;: The context type being checked, such as &amp;quot;grounded&amp;quot; or &amp;quot;seafloor&amp;quot;.&lt;br /&gt;
&amp;quot;world&amp;quot;: The world it&#039;s in. This contains two functions, is_of and is_in for checking the ID or if it fits a specific tag, respectively. For example, v.world.is_in(&#039;yourmod:your_world_tag&#039;).&lt;br /&gt;
&amp;quot;dimension_type&amp;quot;: The dimension it&#039;s in. This contains the same two functions as the &amp;quot;world&amp;quot; property.&lt;br /&gt;
&lt;br /&gt;
Context properties&lt;br /&gt;
When using a context selector, a context will be added as a variable and it contains many variables.&lt;br /&gt;
&amp;quot;light&amp;quot;: The light level, from 0 to 15.&lt;br /&gt;
&amp;quot;x&amp;quot;: The x coordinate.&lt;br /&gt;
&amp;quot;y&amp;quot;: The y coordinate.&lt;br /&gt;
&amp;quot;z&amp;quot;: The z coordinate.&lt;br /&gt;
&amp;quot;moon_phase&amp;quot;: The phase of the moon, between 0 and 7 inclusive.&lt;br /&gt;
&amp;quot;world&amp;quot;: The world of the context, in the same format in the &amp;quot;location&amp;quot; properties.&lt;br /&gt;
&amp;quot;biome&amp;quot;: The biome of the context. This, like world and dimension type, contains two functions: is_of and is_in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example (weird) spawn rule:&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;displayName&amp;quot;: &amp;quot;Pikachu Daylight Multiplier - (Example file)&amp;quot;,&lt;br /&gt;
  &amp;quot;enabled&amp;quot;: &amp;quot;false&amp;quot;,&lt;br /&gt;
  &amp;quot;components&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;weight&amp;quot;,&lt;br /&gt;
      &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
      &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;gt; 8&amp;quot;,&lt;br /&gt;
      &amp;quot;weight&amp;quot;: &amp;quot;v.weight * 20&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;filter&amp;quot;,&lt;br /&gt;
      &amp;quot;spawnSelector&amp;quot;: &amp;quot;v.spawn.pokemon.species == &#039;pikachu&#039;&amp;quot;,&lt;br /&gt;
      &amp;quot;contextSelector&amp;quot;: &amp;quot;v.context.light &amp;lt; 8&amp;quot;,&lt;br /&gt;
      &amp;quot;allow&amp;quot;: &amp;quot;false&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;location&amp;quot;,&lt;br /&gt;
      &amp;quot;allow&amp;quot;: &amp;quot;v.y &amp;gt; 100 || v.world.is_of(&#039;minecraft:overworld&#039;)&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Patch Notes Guy</name></author>
	</entry>
	<entry>
		<id>https://wiki.cobblemon.com/index.php?title=Apricorn&amp;diff=219</id>
		<title>Apricorn</title>
		<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Apricorn&amp;diff=219"/>
		<updated>2023-02-19T10:23:46Z</updated>

		<summary type="html">&lt;p&gt;Patch Notes Guy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{InfoboxBlock&lt;br /&gt;
| image = File:apricorn block stage 0.png&lt;br /&gt;
| image2 = File:apricorn block stage 1.png&lt;br /&gt;
| image3 = File:apricorn block stage 2.png&lt;br /&gt;
| image4 = File:red apricorn block.png&lt;br /&gt;
| image5 = File:apricorn block stage 0.png&lt;br /&gt;
| image6 = File:apricorn block stage 1.png&lt;br /&gt;
| image7 = File:apricorn block stage 2.png&lt;br /&gt;
| image8 = File:yellow apricorn block.png&lt;br /&gt;
| image9 = File:apricorn block stage 0.png&lt;br /&gt;
| image10 = File:apricorn block stage 1.png&lt;br /&gt;
| image11 = File:apricorn block stage 2.png&lt;br /&gt;
| image12 = File:green apricorn block.png&lt;br /&gt;
| image13 = File:apricorn block stage 0.png&lt;br /&gt;
| image14 = File:apricorn block stage 1.png&lt;br /&gt;
| image15 = File:apricorn block stage 2.png&lt;br /&gt;
| image16 = File:blue apricorn block.png&lt;br /&gt;
| image17 = File:apricorn block stage 0.png&lt;br /&gt;
| image18 = File:apricorn block stage 1.png&lt;br /&gt;
| image19 = File:apricorn block stage 2.png&lt;br /&gt;
| image20 = File:pink apricorn block.png&lt;br /&gt;
| image21 = File:apricorn block stage 0.png&lt;br /&gt;
| image22 = File:apricorn block stage 1.png&lt;br /&gt;
| image23 = File:apricorn block stage 2.png&lt;br /&gt;
| image24 = File:white apricorn block.png&lt;br /&gt;
| image25 = File:apricorn block stage 0.png&lt;br /&gt;
| image26 = File:apricorn block stage 1.png&lt;br /&gt;
| image27 = File:apricorn block stage 2.png&lt;br /&gt;
| image28 = File:black apricorn block.png&lt;br /&gt;
| item = File:red apricorn.png&lt;br /&gt;
| itemtooltip = Red Apricorn&lt;br /&gt;
| item2 = File:yellow apricorn.png&lt;br /&gt;
| itemtooltip2 = Yellow Apricorn&lt;br /&gt;
| item3 = File:green apricorn.png&lt;br /&gt;
| itemtooltip3 = Green Apricorn&lt;br /&gt;
| item4 = File:blue apricorn.png&lt;br /&gt;
| itemtooltip4 = Blue Apricorn&lt;br /&gt;
| item5 = File:pink apricorn.png&lt;br /&gt;
| itemtooltip5 = Pink Apricorn&lt;br /&gt;
| item6 = File:white apricorn.png&lt;br /&gt;
| itemtooltip6 = White Apricorn&lt;br /&gt;
| item7 = File:black apricorn.png&lt;br /&gt;
| itemtooltip7 = Black Apricorn&lt;br /&gt;
| stacklimit = 64&lt;br /&gt;
| hardness = 0.2&lt;br /&gt;
| resistance = 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;apricorn&#039;&#039;&#039; is a fruit that can be used to craft Poké Balls.&lt;br /&gt;
&lt;br /&gt;
==Obtaining==&lt;br /&gt;
Apricorns can be found growing naturally on [[Apricorn Tree|apricorn trees]]. Interacting with one when fully grown will yield a single apricorn and will leave behind an apricorn in its first growth stage.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
Bonemeal can be used on a growing apricorn to speed up its growth.&lt;br /&gt;
&lt;br /&gt;
Putting an apricorn in a composter has a 65% chance of raising the compost level by 1.&lt;br /&gt;
&lt;br /&gt;
Apricorns can be placed on [[Apricorn Leaves|apricorn leaves]] in Creative Mode to create new buds.&lt;br /&gt;
&lt;br /&gt;
==Gallery==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
apricorn tree.png | Apricorns at various stages growing on an apricorn tree&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Blocks}}&lt;/div&gt;</summary>
		<author><name>Patch Notes Guy</name></author>
	</entry>
	<entry>
		<id>https://wiki.cobblemon.com/index.php?title=Apricorn&amp;diff=217</id>
		<title>Apricorn</title>
		<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Apricorn&amp;diff=217"/>
		<updated>2023-02-19T10:22:45Z</updated>

		<summary type="html">&lt;p&gt;Patch Notes Guy: Another language test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{InfoboxBlock&lt;br /&gt;
| image = File:apricorn block stage 0.png&lt;br /&gt;
| image2 = File:apricorn block stage 1.png&lt;br /&gt;
| image3 = File:apricorn block stage 2.png&lt;br /&gt;
| image4 = File:red apricorn block.png&lt;br /&gt;
| image5 = File:apricorn block stage 0.png&lt;br /&gt;
| image6 = File:apricorn block stage 1.png&lt;br /&gt;
| image7 = File:apricorn block stage 2.png&lt;br /&gt;
| image8 = File:yellow apricorn block.png&lt;br /&gt;
| image9 = File:apricorn block stage 0.png&lt;br /&gt;
| image10 = File:apricorn block stage 1.png&lt;br /&gt;
| image11 = File:apricorn block stage 2.png&lt;br /&gt;
| image12 = File:green apricorn block.png&lt;br /&gt;
| image13 = File:apricorn block stage 0.png&lt;br /&gt;
| image14 = File:apricorn block stage 1.png&lt;br /&gt;
| image15 = File:apricorn block stage 2.png&lt;br /&gt;
| image16 = File:blue apricorn block.png&lt;br /&gt;
| image17 = File:apricorn block stage 0.png&lt;br /&gt;
| image18 = File:apricorn block stage 1.png&lt;br /&gt;
| image19 = File:apricorn block stage 2.png&lt;br /&gt;
| image20 = File:pink apricorn block.png&lt;br /&gt;
| image21 = File:apricorn block stage 0.png&lt;br /&gt;
| image22 = File:apricorn block stage 1.png&lt;br /&gt;
| image23 = File:apricorn block stage 2.png&lt;br /&gt;
| image24 = File:white apricorn block.png&lt;br /&gt;
| image25 = File:apricorn block stage 0.png&lt;br /&gt;
| image26 = File:apricorn block stage 1.png&lt;br /&gt;
| image27 = File:apricorn block stage 2.png&lt;br /&gt;
| image28 = File:black apricorn block.png&lt;br /&gt;
| item = File:red apricorn.png&lt;br /&gt;
| itemtooltip = Red Apricorn&lt;br /&gt;
| item2 = File:yellow apricorn.png&lt;br /&gt;
| itemtooltip2 = Yellow Apricorn&lt;br /&gt;
| item3 = File:green apricorn.png&lt;br /&gt;
| itemtooltip3 = Green Apricorn&lt;br /&gt;
| item4 = File:blue apricorn.png&lt;br /&gt;
| itemtooltip4 = Blue Apricorn&lt;br /&gt;
| item5 = File:pink apricorn.png&lt;br /&gt;
| itemtooltip5 = Pink Apricorn&lt;br /&gt;
| item6 = File:white apricorn.png&lt;br /&gt;
| itemtooltip6 = White Apricorn&lt;br /&gt;
| item7 = File:black apricorn.png&lt;br /&gt;
| itemtooltip7 = Black Apricorn&lt;br /&gt;
| stacklimit = 64&lt;br /&gt;
| hardness = 0.2&lt;br /&gt;
| resistance = 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;apricorn&#039;&#039;&#039; is a fruit that can be used to craft Poké Balls.&lt;br /&gt;
&lt;br /&gt;
[[:fr:Apricorn]]&lt;br /&gt;
&lt;br /&gt;
==Obtaining==&lt;br /&gt;
Apricorns can be found growing naturally on [[Apricorn Tree|apricorn trees]]. Interacting with one when fully grown will yield a single apricorn and will leave behind an apricorn in its first growth stage.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
Bonemeal can be used on a growing apricorn to speed up its growth.&lt;br /&gt;
&lt;br /&gt;
Putting an apricorn in a composter has a 65% chance of raising the compost level by 1.&lt;br /&gt;
&lt;br /&gt;
Apricorns can be placed on [[Apricorn Leaves|apricorn leaves]] in Creative Mode to create new buds.&lt;br /&gt;
&lt;br /&gt;
==Gallery==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
apricorn tree.png | Apricorns at various stages growing on an apricorn tree&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Blocks}}&lt;/div&gt;</summary>
		<author><name>Patch Notes Guy</name></author>
	</entry>
</feed>