<?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=Jerzykv</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=Jerzykv"/>
	<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Special:Contributions/Jerzykv"/>
	<updated>2026-10-30T19:24:08Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki.cobblemon.com/index.php?title=Tutorials/Riding_Setup&amp;diff=9671</id>
		<title>Tutorials/Riding Setup</title>
		<link rel="alternate" type="text/html" href="https://wiki.cobblemon.com/index.php?title=Tutorials/Riding_Setup&amp;diff=9671"/>
		<updated>2026-09-15T11:10:48Z</updated>

		<summary type="html">&lt;p&gt;Jerzykv: updated riding setup page for 1.8&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC|right}}&lt;br /&gt;
== Preface ==&lt;br /&gt;
This tutorial will teach you how to add custom ride Pokémon to Cobblemon. The process is relatively simple to accomplish, but it is recommended to have the minimum basic knowledge of Blockbench&#039;s controls and the ability to read json&#039;s.&lt;br /&gt;
== Step 1: Adding a Locator ==&lt;br /&gt;
To allow the player to sit on the Pokémon, you need to add a locator (which is shown visually like an anchor) named &amp;lt;code&amp;gt;seat_1&amp;lt;/code&amp;gt; to your model. If you want to add multiple seats to your Pokémon, you can add more locators named &amp;lt;code&amp;gt;seat_2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;seat_3&amp;lt;/code&amp;gt;, and so on. you can find the &amp;quot;Add Locator&amp;quot; tool in the Blockbench toolbar customization. The model should be placed in &amp;lt;code&amp;gt;assets/cobblemon/bedrock/pokemon/models/[folder named after your Pokémon]&amp;lt;/code&amp;gt; as a &amp;lt;code&amp;gt;[pokemon].geo.json&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
=== One seat (Charizard model example) ===&lt;br /&gt;
[[File:One Seat Locator Example.png|150px]]&lt;br /&gt;
[[File:One Seat Viewport Example.png|250px]]&lt;br /&gt;
&lt;br /&gt;
=== Two Seats (Dewgong model example) ===&lt;br /&gt;
[[File:Two Seat Locator Example.png|150px]]&lt;br /&gt;
[[File:Two Seat Viewport Example.png|250px]]&lt;br /&gt;
&lt;br /&gt;
=== Six Seats (Camerupt model example) ===&lt;br /&gt;
[[File:Six Seat Locator Example.png|150px]]&lt;br /&gt;
[[File:Six Seat Viewport Example.png|250px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 2: Adding Ride Data ==&lt;br /&gt;
In the &amp;lt;code&amp;gt;species&amp;lt;/code&amp;gt; file of the Pokémon (or by species additions) you must add riding behaviours.&lt;br /&gt;
&lt;br /&gt;
=== Example from Arcanine ===&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;riding&amp;quot;: {&lt;br /&gt;
    &amp;quot;&amp;lt;abbr title=&amp;quot;This is where you define how a Pokémon should behave while riding. You add how your Pokémon can move.&amp;quot;&amp;gt;behaviours&amp;lt;/abbr&amp;gt;&amp;quot;: {&lt;br /&gt;
      &amp;quot;&amp;lt;abbr title=&amp;quot;The type of movement in that category. LAND is for moving on ground, AIR is for moving in air, and LIQUID is for moving in liquids&amp;quot;&amp;gt;LAND&amp;lt;/abbr&amp;gt;&amp;quot;: {&lt;br /&gt;
        &amp;quot;&amp;lt;abbr title=&amp;quot;The movement style in that category. This is very important as it chooses which ride style the Pokémon will use; for example, if it hovers above the ground like Minecraft creative flight, or flies like a bird&amp;quot;&amp;gt;key&amp;lt;/abbr&amp;gt;&amp;quot;: &amp;quot;cobblemon:land/horse&amp;quot;,&lt;br /&gt;
        &amp;quot;&amp;lt;abbr title=&amp;quot;The sound that plays when riding. See &#039;Extra Notes&#039; below for more information.&amp;quot;&amp;gt;rideSounds&amp;lt;/abbr&amp;gt;&amp;quot;: [],&lt;br /&gt;
        &amp;quot;&amp;lt;abbr title=&amp;quot;Similar to a Pokémon&#039;s base stats, but for riding. Each stat does something different for each ride style.&amp;quot;&amp;gt;stats&amp;lt;/abbr&amp;gt;&amp;quot;: {&lt;br /&gt;
          &amp;quot;&amp;lt;abbr title=&amp;quot;How fast the Pokémon can reach the maximum speed.&amp;quot;&amp;gt;ACCELERATION&amp;lt;/abbr&amp;gt;&amp;quot;: &amp;quot;&amp;lt;abbr title=&amp;quot;A range of values for the stat written as min-max. Should be kept in range of 0-100.&amp;quot;&amp;gt;70-90&amp;lt;/abbr&amp;gt;&amp;quot;,&lt;br /&gt;
          &amp;quot;&amp;lt;abbr title=&amp;quot;How high the Pokémon can jump. For air style mounts, this has other effects, such as gliding effectiveness for Bird style mounts.&amp;quot;&amp;gt;JUMP&amp;lt;/abbr&amp;gt;&amp;quot;: &amp;quot;45-65&amp;quot;,&lt;br /&gt;
          &amp;quot;&amp;lt;abbr title=&amp;quot;How fast the Pokémon can turn. For Hover style mounts, this affects the rate of deceleration.&amp;quot;&amp;gt;SKILL&amp;lt;/abbr&amp;gt;&amp;quot;: &amp;quot;40-80&amp;quot;,&lt;br /&gt;
          &amp;quot;&amp;lt;abbr title=&amp;quot;The maximum speed the Pokémon can reach.&amp;quot;&amp;gt;SPEED&amp;lt;/abbr&amp;gt;&amp;quot;: &amp;quot;45-70&amp;quot;,&lt;br /&gt;
          &amp;quot;&amp;lt;abbr title=&amp;quot;The length of time the Pokémon may be ridden in its specific style, such as sprinting duration for Land mounts.&amp;quot;&amp;gt;STAMINA&amp;lt;/abbr&amp;gt;&amp;quot;: &amp;quot;35-80&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      } &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;&amp;lt;abbr title=&amp;quot;How many seats a Pokémon will have, along with their locator. See &#039;Extra Notes&#039; below for more information.&amp;quot;&amp;gt;seats&amp;lt;/abbr&amp;gt;&amp;quot;: [&lt;br /&gt;
       {&lt;br /&gt;
         &amp;quot;&amp;lt;abbr title=&amp;quot;The seat locator on your model.&amp;quot;&amp;gt;locator&amp;lt;/abbr&amp;gt;&amp;quot;: &amp;quot;seat_1&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
     ]&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
=== Extra Notes===&lt;br /&gt;
==== rideSounds====&lt;br /&gt;
The sounds and the configuration of the volume of the sounds. Mainly used for air mounts.&lt;br /&gt;
An example of the configurations (Dragapult example):&lt;br /&gt;
       &amp;quot;rideSounds&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;&amp;lt;abbr title=&amp;quot;Whether sound muffling is enabled or not&amp;quot;&amp;gt;muffleEnabled&amp;lt;/abbr&amp;gt;&amp;quot;: true,&lt;br /&gt;
            &amp;quot;&amp;lt;abbr title=&amp;quot;A molang expression of the pitch of the sound&amp;quot;&amp;gt;pitchExpr&amp;lt;/abbr&amp;gt;&amp;quot;: &amp;quot;math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))&amp;quot;,&lt;br /&gt;
            &amp;quot;&amp;lt;abbr title=&amp;quot;Whether the ride sounds should play for players that currently aren&#039;t riding the Pokémon or not&amp;quot;&amp;gt;playForNonPassengers&amp;lt;/abbr&amp;gt;&amp;quot;: true,&lt;br /&gt;
            &amp;quot;&amp;lt;abbr title=&amp;quot;The sound that plays whilst riding. Loop sounds have 4 different options: leather, plumage, chitin and wind, all are listed as cobblemon:ride.loop.[option]&amp;quot;&amp;gt;soundLocation&amp;lt;/abbr&amp;gt;&amp;quot;: &amp;quot;cobblemon:ride.loop.wind&amp;quot;,&lt;br /&gt;
            &amp;quot;&amp;lt;abbr title=&amp;quot;A molang expression for the volume of the sound&amp;quot;&amp;gt;volumeExpr&amp;lt;/abbr&amp;gt;&amp;quot;: &amp;quot;math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
&lt;br /&gt;
==== seats====&lt;br /&gt;
How many seats a Pokémon will have, along with their locator. You should list as many seat locators as you have on your model.&lt;br /&gt;
&lt;br /&gt;
	A Pokémon with one seat:&lt;br /&gt;
    &amp;quot;seats&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;locator&amp;quot;: &amp;quot;seat_1&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
	A Pokémon with two seats:&lt;br /&gt;
    &amp;quot;seats&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;locator&amp;quot;: &amp;quot;seat_1&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;locator&amp;quot;: &amp;quot;seat_2&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
&lt;br /&gt;
===Available Ride Keys ===&lt;br /&gt;
&amp;lt;b&amp;gt;For more in-depth information, see [https://wiki.cobblemon.com/index.php/Pok%C3%A9mon/Riding#Riding_Styles Riding Styles]&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LAND&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;land/horse&amp;lt;/code&amp;gt; (also known as standard)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AIR&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;air/bird&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;air/jet&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;air/hover&amp;lt;/code&amp;gt; (also known as ufo)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;air/rocket&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LIQUID&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;liquid/boat&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;liquid/submarine&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;liquid/dolphin&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make your Pokémon unable to jump, you can add a &amp;lt;code&amp;gt;&amp;quot;canJump&amp;quot;: false&amp;lt;/code&amp;gt; line. To make it unable to sprint, you add a &amp;lt;code&amp;gt;&amp;quot;canSprint&amp;quot;: false&amp;lt;/code&amp;gt; line, as shown below (Dragapult example):&lt;br /&gt;
     &amp;quot;LAND&amp;quot;: {&lt;br /&gt;
        &amp;quot;key&amp;quot;: &amp;quot;cobblemon:land/horse&amp;quot;,&lt;br /&gt;
        &amp;quot;rideSounds&amp;quot;: [],&lt;br /&gt;
        &amp;quot;canJump&amp;quot;: false,&lt;br /&gt;
        &amp;quot;canSprint&amp;quot;: false,&lt;br /&gt;
        &amp;quot;stats&amp;quot;: {&lt;br /&gt;
          &amp;quot;ACCELERATION&amp;quot;: &amp;quot;10-40&amp;quot;,&lt;br /&gt;
          &amp;quot;JUMP&amp;quot;: &amp;quot;10-40&amp;quot;,&lt;br /&gt;
          &amp;quot;SKILL&amp;quot;: &amp;quot;80-100&amp;quot;,&lt;br /&gt;
          &amp;quot;SPEED&amp;quot;: &amp;quot;10-40&amp;quot;,&lt;br /&gt;
          &amp;quot;STAMINA&amp;quot;: &amp;quot;10-40&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
==Step 3: Animations ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Small Note: Ride animations are optional and not required for riding to work.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ride Pokémon have additional animations, mainly overlays, jumps and run animations.&lt;br /&gt;
&lt;br /&gt;
Overlays play on top of the ride animation, allowing dynamic movement using molang.&lt;br /&gt;
They use the variables feature of Blockbench. To make a variable slider, copy this text and replace yaw_change with whatever you want your slider to control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;abbr title=&amp;quot;q means query. This should be left as is&amp;quot;&amp;gt;q&amp;lt;/abbr&amp;gt;.&amp;lt;abbr title=&amp;quot;This should be left as is&amp;quot;&amp;gt;r&amp;lt;/abbr&amp;gt;.&amp;lt;abbr title=&amp;quot;Left and right movement. 1 is moving right, -1 is moving left&amp;quot;&amp;gt;yaw_change&amp;lt;/abbr&amp;gt; = slider(&#039;yaw_change&#039;, 0.02, -1.0, 1.0)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;abbr title=&amp;quot;up and down movement. 1 is moving up, -1 is moving down&amp;quot;&amp;gt;pitch_change&amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;abbr title=&amp;quot;jump up and down movement, 1 is upwards motion, and -1 is downwards&amp;quot;&amp;gt;velocity_y&amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;abbr title=&amp;quot;air diving motion. 0 is no dive, 1 is diving at full velocity.&amp;quot;&amp;gt;dive&amp;lt;/abbr&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For example, to make the slider affect yaw, you need to add &amp;lt;code&amp;gt;q.r.yaw_change&amp;lt;/code&amp;gt; to a keyframe. If you would put &amp;lt;code&amp;gt;q.r.yaw_change(0)*7&amp;lt;/code&amp;gt; in a rotation keyframe, it will cause the part to rotate 7 degrees left or right, depending on the value of yaw_change on the slider.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Land rides usually use:&lt;br /&gt;
&amp;lt;code&amp;gt;ride_ground_run&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;ride_ground_walk&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;ride_jump&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Air rides usually use:&lt;br /&gt;
&amp;lt;code&amp;gt;ride_air_fly&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;air_glide&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;ride_air_dive&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Liquid rides usually use:&lt;br /&gt;
&amp;lt;code&amp;gt;ride_water_swim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Posers====&lt;br /&gt;
The poser is how you set up the ride animations. You need to add a condition animation in the &amp;lt;code&amp;gt;&amp;quot;animations&amp;quot;: []&amp;lt;/code&amp;gt; bracket  with the condition &amp;lt;code&amp;gt;q.is_ridden&amp;lt;/code&amp;gt;. This will cause the animation to only play whilst riding (Charizard&#039;s ride run overlay).&lt;br /&gt;
       {&lt;br /&gt;
          &amp;quot;condition&amp;quot;: &amp;quot;q.is_ridden&amp;quot;,&lt;br /&gt;
          &amp;quot;animation&amp;quot;: &amp;quot;q.bedrock(&#039;charizard&#039;, &#039;ride_ground_run&#039;)&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
When adding a run to a Pokémon, you need to add a &amp;lt;code&amp;gt;q.is_sprinting&amp;lt;/code&amp;gt; condition to your run pose and a &amp;lt;code&amp;gt;!q.is_sprinting&amp;lt;/code&amp;gt; anticondition to your walk pose. To make a jump, you need to add a &amp;lt;code&amp;gt;q.in_air&amp;lt;/code&amp;gt; condition to your jump pose and a &amp;lt;code&amp;gt;!q.in_air&amp;lt;/code&amp;gt; to your grounded poses, so run, walk and idle. (Wyrdeer poser example)&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;in-air&amp;quot;: {&lt;br /&gt;
        &amp;quot;poseTypes&amp;quot;: [&amp;quot;STAND&amp;quot;, &amp;quot;WALK&amp;quot;],&lt;br /&gt;
        &amp;quot;isBattle&amp;quot;: false,&lt;br /&gt;
        &amp;quot;condition&amp;quot;: &amp;quot;q.in_air &amp;amp;&amp;amp; q.is_ridden&amp;quot;,&lt;br /&gt;
        &amp;quot;animations&amp;quot;: [&amp;quot;q.look(&#039;head&#039;)&amp;quot;, &amp;quot;q.bedrock(&#039;wyrdeer&#039;, &#039;ride_jump&#039;)&amp;quot;],&lt;br /&gt;
        &amp;quot;transformTicks&amp;quot;: 2,&lt;br /&gt;
        &amp;quot;transformToTicks&amp;quot;: 2&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;walk&amp;quot;: {&lt;br /&gt;
        &amp;quot;poseName&amp;quot;: &amp;quot;walk&amp;quot;,&lt;br /&gt;
        &amp;quot;poseTypes&amp;quot;: [&amp;quot;WALK&amp;quot;],&lt;br /&gt;
        &amp;quot;isBattle&amp;quot;: false,&lt;br /&gt;
        &amp;quot;condition&amp;quot;: &amp;quot;!q.in_air &amp;amp;&amp;amp; !q.is_sprinting&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;wyrdeer&#039;, &#039;ground_walk&#039;)&amp;quot;,&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;condition&amp;quot;: &amp;quot;q.is_ridden&amp;quot;,&lt;br /&gt;
          &amp;quot;animation&amp;quot;: &amp;quot;q.bedrock(&#039;wyrdeer&#039;, &#039;ride_ground_run&#039;)&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;quirks&amp;quot;: [&lt;br /&gt;
          &amp;quot;q.bedrock_quirk(&#039;wyrdeer&#039;, &#039;blink&#039;)&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transformTicks&amp;quot;: 10&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;run&amp;quot;: {&lt;br /&gt;
        &amp;quot;poseName&amp;quot;: &amp;quot;run&amp;quot;,&lt;br /&gt;
        &amp;quot;poseTypes&amp;quot;: [&amp;quot;STAND&amp;quot;,&amp;quot;WALK&amp;quot;],&lt;br /&gt;
        &amp;quot;isBattle&amp;quot;: false,&lt;br /&gt;
        &amp;quot;condition&amp;quot;: &amp;quot;!q.in_air &amp;amp;&amp;amp; q.is_sprinting&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;wyrdeer&#039;, &#039;ground_run&#039;)&amp;quot;,&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;condition&amp;quot;: &amp;quot;q.is_ridden&amp;quot;,&lt;br /&gt;
          &amp;quot;animation&amp;quot;: &amp;quot;q.bedrock(&#039;wyrdeer&#039;, &#039;ride_ground_run&#039;)&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;quirks&amp;quot;: [&lt;br /&gt;
          &amp;quot;q.bedrock_quirk(&#039;wyrdeer&#039;, &#039;blink&#039;)&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transformTicks&amp;quot;: 10&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Addon Creation}}&lt;br /&gt;
[[Category:Tutorial]]&lt;/div&gt;</summary>
		<author><name>Jerzykv</name></author>
	</entry>
</feed>