Difference between revisions of "KCL flag"

From Custom Mario Kart
Jump to navigation Jump to search
(some research with jasperr)
 
(74 intermediate revisions by 19 users not shown)
Line 1: Line 1:
This page describes the '''flags of [[KCL]] files'''.
 
  
== Mario Kart Wii Collision Flags ==
+
== Overview ==
In [[Mario Kart Wii]] the collision flag values are normally split. The 5 least significant bits determine the basic type of the flag. The next 11 bits determine the variation upon the type. The list below describes these types and their variants. The numerical relation is:
+
In [[Mario Kart Wii]], collision data is stored as a list of triangles in a [[KCL]] file. Each triangle in the file is associated with a 16-bit KCL flag, which determines the effect that the triangle has on players or items that collide with it. A KCL flag consists of 5 components, each corresponding to a bit group:
FLAG = TYPE | VARIANT << 5
 
  
[[Wiimm]] has made a statistical analysis about the usage of flags in all 32 tracks: [http://szs.wiimm.de/download/kcl/kcl-types.txt kcl-types.txt]
+
[[File:Kcl-flag-bit-groups.png|600px|frameless|center]]
 +
 
 +
'''Base Type:'''<br>
 +
Ranges in value from 0x00 to 0x1F. This component represents the main effect that the triangle will have, e.g. road, offroad, fall boundary, etc.. Descriptions of each value's effect can be found below.
 +
 
 +
'''Variant:'''<br>
 +
Ranges in value from 0 to 7. This component determines the variant of the base type. The possible variants of each base type are described below.
 +
 
 +
'''BLIGHT Index:'''<br>
 +
Ranges in value from 0 to 7. This component is the index of [[BLIGHT (File Format)|posteffect.blight]] that the triangle should use. For drivable surfaces, this refers to the lighting that is applied to any character, vehicle or item that is touching it. For most non-drivable surfaces such as walls, it appears to have no effect. Some variants of [[#Fall Boundary (0x10)|0x10]] and [[#Effect Trigger (0x1A)|0x1A]] repurpose this component to index into the [[KMP]].
 +
 
 +
'''Wheel Depth:'''<br>
 +
Ranges in value from 0 to 3. For drivable surfaces, a higher value will cause the player's wheels to "sink" further into the road. This is used by Nintendo on surfaces such as snow or sand. This likely has other subtle effects on wheel physics; exact details are unknown.
 +
 +
'''Collision effect:'''<br>
 +
This component consists of 3 bits that each have a different effect when set:
  
== Collision Types (basic type) ==
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Type
+
! Bit
! Variant type
+
! Effect
! What is it?
 
! Speed factor<sup>[1]</sup>
 
! Handling factor<sup>[1]</sup>
 
 
|-
 
|-
|[[#Road (0x00)|0x00]]
+
| 0
|A
+
| Affects drivable surfaces. If set to 1, the surface becomes '''trickable'''. NOTE: For base types that<br>are trickable by default, e.g. boost ramps, this bit should remain as 0 to avoid inconsistent trick types.
|Road
 
| align=center | 1.0
 
| align=center | 0.7
 
 
|-
 
|-
|[[#Slippery Road 1 (0x01)|0x01]]
+
| 1
|A
+
| Affects drivable surfaces. If set to 1, the surface becomes '''reject road''', which forces a player to<br>change direction when attempting to drive on it.
|Slippery Road 1
 
| align=center | 1.0
 
| align=center | 0.050 &ndash; 0.105
 
 
|-
 
|-
|[[#Weak Off-road (0x02)|0x02]]
+
| 2
|A
+
| Affects walls. If set to 1, the wall becomes a '''soft wall''', also referred to as "barrel roll" collision. This<br>is used by Nintendo on walls below ledges to prevent players from hanging on them.
|Weak Off-road
 
| align=center | 0.550 &ndash; 0.909
 
| align=center | 0.080 &ndash; 0.157
 
|-
 
|[[#Off-road (0x03)|0x03]]
 
|A
 
|Off-road
 
| align=center | 0.325 &ndash; 0.712
 
| align=center | 0.050 &ndash; 0.105
 
|-
 
|[[#Heavy_Off-road_.280x04.29|0x04]]
 
|A
 
|Heavy Off-road
 
| align=center | 0.185 &ndash; 0.422
 
| align=center | 0.050 &ndash; 0.105
 
|-
 
|[[#Slippery Road 2 (0x05)|0x05]]
 
|A
 
|Slippery Road 2
 
| align=center | 0.881 &ndash; 0.999
 
| align=center | 0.030 &ndash; 0.074
 
|-
 
|[[#Boost Pad (0x06)|0x06]]
 
|A
 
|Boost Pad
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Boost Ramp (0x07)|0x07]]
 
|A
 
|Boost Ramp
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Jump Pad (0x08)|0x08]]
 
|A
 
|Jump Pad
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Item Road (0x09)|0x09]]
 
|A
 
|Item Road
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Solid Fall (0x0A)|0x0A]]
 
|A
 
|Solid Fall
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Moving Road (0x0B)|0x0B]]
 
|B
 
|Moving Water
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Wall (0x0C)|0x0C]]
 
|unknown
 
|Wall
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Invisible Wall (0x0D)|0x0D]]
 
|unknown
 
|Invisible Wall
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Item Wall (0x0E)|0x0E]]
 
|unknown
 
|Item Wall
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Wall 3 (0x0F)|0x0F]]
 
|unknown
 
|Wall 3
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Fall Boundary (0x10)|0x10]]
 
|unknown
 
|Fall Boundary
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Cannon Activator (0x11)|0x11]]
 
|B
 
|Cannon Activator
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Force Recalculation (0x12)|0x12]]
 
|unknown
 
| Force Recalculation
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Half-pipe Ramp (0x13)|0x13]]
 
|unknown
 
|Half-pipe Ramp
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Wall (0x14)|0x14]]
 
|unknown
 
|Wall
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Moving Road (0x15)|0x15]]
 
|B
 
|Moving Road
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Gravity Road (0x16)|0x16]]
 
|A
 
|Gravity Road
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Road (0x17)|0x17]]
 
|A
 
|Road
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Sound Trigger (0x18)|0x18]]
 
|unknown
 
|Sound Trigger
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Unknown (0x19)|0x19]]
 
|unknown
 
|Unknown
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Effect Trigger (0x1A)|0x1A]]
 
|unknown
 
|Effect Trigger
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Unknown (0x1B)|0x1B]]
 
|unknown
 
|Unknown
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Unknown (0x1C)|0x1C]]
 
|unknown
 
|Unknown
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Moving Road (0x1D)|0x1D]]
 
|A
 
|Moving Road
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Special Walls (0x1E)|0x1E]]
 
|unknown
 
|Special Walls
 
| align=center | 1.0
 
| align=center | 0.7
 
|-
 
|[[#Wall 5 (0x1F)|0x1F]]
 
|unknown
 
|Wall 5
 
| align=center | 1.0
 
| align=center | 0.7
 
 
|}
 
|}
  
; '''[1]''' &#58; Notes for '''Speed factor'''
+
=== Example ===
* Each vehicle and driver combinations has it's own basic speed. The '''Speed factor''' is always &le;1.0 and defines the relative KCL type dependent speed.
+
To manually calculate the KCL flag for '''grass offroad''' (base type = 0x03, variant = 4) that is '''trickable''' (collision effect bit 0 = 1) and uses '''BLIGHT index 3''': First insert the components into the correct bit groups, then convert the resulting binary number to hexadecimal.
* The values are calculated after analysing different [[Mario Kart Wii]] files. The ranges depends on the possible driver and vehicle combinations.
 
* The different basic speed of the vehicles (75.00 &ndash; 85.07) and the driver modifications of the basic speed (add 0 &ndash; 0.53) are not part of this speed factor calculations.
 
* Some values are senseless (e.g. walls, fall down, effects). But the values are available in the MKWii tables.
 
  
== Variant types ==
+
[[File:Kcl-flags-ex.png|600px|frameless|center]]
=== Type A ===
 
{{KCL-Flag-Variant type A}}
 
 
 
=== Type B ===
 
{{KCL-Flag-Variant type B}}
 
  
 
=== Cheat Sheet ===
 
=== Cheat Sheet ===
This image sums up the basic effects and variants for finding them more quickly.
+
This image sums up the base types and variants for finding them more quickly (although it is a bit outdated).
 
[[File:KCL Cheat Sheet.png|600px|left]]
 
[[File:KCL Cheat Sheet.png|600px|left]]
 
<br clear=all/>
 
<br clear=all/>
 +
<br>
  
== Basic Effects (for type A, and type A-like variants) ==
+
== Base Types & Variants ==
=== Road (0x00) ===
+
=== <span id=00>Road (0x00)</span> ===
A type of road that's solid for both players and items.
+
Default road. The variant controls the terrain type, i.e. the sound effects (SFX) and particles (GFX) generated by driving on it.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
| Normal
+
| Normal road
 
|-
 
|-
 
| 1
 
| 1
Line 242: Line 61:
 
|-
 
|-
 
| 2
 
| 2
| Gravel/stone
+
| Dirt, no GFX
 
|-
 
|-
 
| 3
 
| 3
Line 257: Line 76:
 
|-
 
|-
 
| 7
 
| 7
| Normal, but the sound cuts off and returns immediately when triggered
+
| Road, but the sound cuts off and returns immediately when triggered
 
|}
 
|}
  
=== Slippery Road 1 (0x01) ===
+
=== <span id=01>Slippery Road 1 (0x01)</span> ===
 
A type of road that is slippery, but does not slow you down.
 
A type of road that is slippery, but does not slow you down.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 295: Line 114:
 
</references>
 
</references>
  
=== Weak Off-road (0x02) ===
+
=== <span id=02>Weak Off-road (0x02)</span> ===
 +
A type of road that slows the player down a small amount.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
| Orange Sand
+
| Orange sand
 
|-
 
|-
 
| 1
 
| 1
Line 331: Line 151:
 
</references>
 
</references>
  
=== Off-road (0x03) ===
+
=== <span id=03>Off-road (0x03)</span> ===
 +
A type of road that slows the player down a moderate amount.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 365: Line 186:
 
</references>
 
</references>
  
=== Heavy Off-road (0x04) ===
+
=== <span id=04>Heavy Off-road (0x04)</span> ===
 +
A type of road that slows the player down a large amount.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 396: Line 218:
 
|}
 
|}
  
=== Slippery Road 2 (0x05) ===
+
=== <span id=05>Slippery Road 2 (0x05)</span> ===
 
A type of road that is slippery and slightly slows you down.
 
A type of road that is slippery and slightly slows you down.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 407: Line 229:
 
|-
 
|-
 
| 1
 
| 1
| Mud (unused)
+
| Mud, no GFX (unused)
 
|-
 
|-
 
| 2-5
 
| 2-5
| Water (unused)
+
| Water, no GFX (unused)
 
|-
 
|-
 
| 6-7
 
| 6-7
Line 416: Line 238:
 
|}
 
|}
  
=== Boost Pad (0x06) ===
+
=== <span id=06>Boost (0x06) [DASH]</span> ===
 +
(Boost Panel) Applies a boost when you drive over it.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 426: Line 249:
 
|-
 
|-
 
| 1
 
| 1
| Default boost, used in Chain Chomp Wheel
+
| If used in course.kcl and {{obj-ref|casino_roulette}} is present, this surface will rotate around it counterclockwise. Used in Chain Chomp Wheel.
 
|-
 
|-
 
| 2-7
 
| 2-7
Line 432: Line 255:
 
|}
 
|}
  
=== Boost Ramp (0x07) ===
+
=== <span id=07>Boost Ramp (0x07) [DASHJ]</span> ===
Higher stages mean longer air time and more landing boost time.
+
Applies a boost and is trickable by default. The variant controls the trick animation, and by extension the duration of the trick boost you get upon landing. The duration is listed in frames for karts/bikes. Generally, more flips mean longer airtime and more landing boost time.
 +
Note that you should not use the collision effect "trickable" with this KCL flag, otherwise the trick type will be semi random. Additionally, if used in course.kcl and {{obj-ref|casino_roulette}} is present, this surface will rotate around it counterclockwise.
 +
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 +
! Trick Boost (Karts)
 +
! Trick Boost (Bikes)
 
|-
 
|-
 
| 0
 
| 0
| Stage 3 (2 flips)
+
| Double flip trick
 +
| 85 frames
 +
| 95 frames
 
|-
 
|-
 
| 1
 
| 1
| Stage 2 (1 flip)
+
| Single flip trick
 +
| 70 frames
 +
| 80 frames
 
|-
 
|-
 
| 2-7
 
| 2-7
| Stage 1 (Boost trick, unused)
+
| Stunt trick, unused
 +
| 40 frames
 +
| 45 frames
 
|}
 
|}
  
=== Jump Pad (0x08) ===
+
=== <span id=08>Jump Pad (0x08)</span> ===
Higher stages mean approximately longer air time and more distance.
+
Bounces the player into the air, and locks their speed until they touch the ground. Trickable by default. The variant controls the speed lock and the amount of Y velocity applied (both in units/frame). Values in parentheses are used if the player is in a boost when they touch this surface.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Speed Lock
 +
! Y Velocity
 +
! Description
 
|-
 
|-
 
| 0
 
| 0
| Stage 2, used in <small>GBA</small> Bowser Castle 3
+
| 50.0
 +
| 35.0
 +
| Used in <small>GBA</small> Bowser Castle 3
 
|-
 
|-
 
| 1
 
| 1
| Stage 3, used in <small>SNES</small> Ghost Valley 2
+
| 50.0
 +
| 47.0
 +
| Used in <small>SNES</small> Ghost Valley 2
 
|-
 
|-
 
| 2
 
| 2
| Stage 1, used in <small>GBA</small> Shy Guy Beach
+
| 59.0
 +
| 30.0
 +
| Used in <small>GBA</small> Shy Guy Beach
 
|-
 
|-
 
| 3
 
| 3
| Stage 4, used in Mushroom Gorge<ref name="offroadglitch" />
+
| 73.0 (100.0)
 +
| 45.0 (70.0)
 +
| Ramps in Mushroom Gorge<ref name="offroadglitch" />
 
|-
 
|-
 
| 4
 
| 4
| Stage 5, Bouncy mushroom<ref name="bouncymushroomsfx" />
+
| 73.0 (100.0)
 +
| 53.0 (65.0)
 +
| Bouncy mushrooms in Mushroom Gorge<ref name="bouncymushroomsfx" />
 
|-
 
|-
 
| 5
 
| 5
| Stage 4, used in Chain Chomp Wheel
+
| 56.0
 +
| 50.0
 +
| Used in Chain Chomp Wheel
 
|-
 
|-
 
| 6
 
| 6
| Stage 2, used in <small>DS</small> Yoshi Falls and Funky Stadium
+
| 55.0
 +
| 35.0
 +
| Used in <small>DS</small> Yoshi Falls and Funky Stadium
 
|-
 
|-
 
| 7
 
| 7
| Stage 4, unused
+
| 56.0
 +
| 50.0
 +
| Unused, seems to be identical to 5
 
|}
 
|}
 
<references>
 
<references>
Line 485: Line 336:
 
</references>
 
</references>
  
=== Item Road (0x09) ===
+
=== <span id=09>Item Road (0x09)</span> ===
A type of road that's solid for items only.
+
A type of road that is solid for items only. Items that land on it will despawn after 3 seconds (180 frames). The purpose of the variant is unknown.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 514: Line 365:
 
|}
 
|}
  
=== Solid Fall (0x0A) ===
+
=== <span id=0A>Solid Fall (0x0A)</span> ===
 +
A solid surface that counts the player out of bounds. The variant controls the terrain type.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 524: Line 376:
 
|-
 
|-
 
| 1
 
| 1
| Underwater
+
| Sand/Underwater
 
|-
 
|-
 
| 2
 
| 2
Line 542: Line 394:
 
|-
 
|-
 
| 7
 
| 7
| {{Unknown-left|'''Unknown'''}}
+
| Dark sand with GFX
 
|}
 
|}
  
=== Moving Road (0x0B) ===
+
=== <span id=0B>Moving Water (0x0B)</span> ===
This is a kind of road that moves the player to a direction. It is activated when entering an [[AREA type#AREA type 0x03 (moving road)|AREA type 0x3]].
+
A type of road that moves the player along a route, used in Koopa Cape and <small>DS</small> Yoshi Falls. It is only active while inside an [[AREA type#AREA type 0x03 (moving road)|AREA type 0x3]]. The exact functionality depends on the variant. For more information, see: [[Moving Terrain#Moving Water (KCL 0x0B)|Moving Terrain]]<br>
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
| Moving water that follows a route. Route settings:
+
| Moving water that follows a route, pulling the player downwards.
*1 = speed
+
 
*2 = ''unknown''
 
 
|-
 
|-
 
| 1
 
| 1
| Moving water that follows a route and strongly pulls the player downwards, making it hard to drive. Route settings:
+
| Moving water that follows a route and strongly pulls the player downwards, making it hard to drive.
*1 = speed
 
*2 = ''unknown''
 
 
|-
 
|-
 
| 2
 
| 2
| Moving water that follows a route from the start of the path to the end of it, while the water pulls you down to the left or right (unsure how). Route settings:
+
| Moving water that follows a route from the start of the path to the end of it.
*1 = ''unknown''
+
Uses 2 [[AREA type#AREA type 0x03 (moving road)|AREA]] settings:
*2 = ''unknown''
+
* Setting 1: Acceleration modifier.
It also uses two settings in the [[AREA]]:
+
* Setting 2: Moving speed.<ref name="spd" />
*At 0x28 = acceleration/deceleration
 
*At 0x2A = route speed (speed at which the route pulls the player)
 
 
|-
 
|-
 
| 3
 
| 3
| Moving water with no route. It pulls you down and you can't move from it
+
| Moving water that follows a route from the start of the path to the end of it and disables player's acceleration.
 +
Uses 2 [[AREA type#AREA type 0x03 (moving road)|AREA]] settings:
 +
* Setting 1: Current player's speed modifier.<br>eg. value of 100 will keep current player's speed. Values below 100 will slow down player until full stop.
 +
* Setting 2: Moving speed.<ref name="spd" />
 
|-
 
|-
 
| 4
 
| 4
| Moving asphalt, unused. Unknown settings
+
| Moving asphalt, unused. Functions the same as variant 0.
 
|-
 
|-
 
| 5
 
| 5
| Moving asphalt, unused. Unknown settings
+
| Moving asphalt, unused. Functions the same as variant 0.
 
|-
 
|-
 
| 6
 
| 6
| Moving road, unused. Unknown settings
+
| Moving road, unused. Functions the same as variant 0.
 
|-
 
|-
 
| 7
 
| 7
| {{Unknown-left|'''Unknown'''. Unused}}
+
| Moving road, unused. Functions the same as variant 0.
 +
|}
 +
<references>
 +
<ref name="spd">Always overrides route's moving speed setting.</ref>
 +
</references>
 +
'''Route Settings:'''
 +
{| class="wikitable"
 +
|-
 +
! Setting !! Description
 +
|-
 +
| 1 || Moving speed.
 +
|-
 +
| 2 || Value of 1 changes moving water direction 90 degrees to the right.<br>Value of 2 changes moving water direction 90 degrees to the left.
 +
|-
 
|}
 
|}
  
=== Wall (0x0C) ===
+
=== <span id=0C>Wall (0x0C)</span> ===
A type of wall that's solid for both players and items.
+
Default wall, solid for both players and items. The variant controls the sound played when colliding with it.
Similar to A as the last 3 bits are the basic effect and the first 3 bits are the collision effect.
 
Shadow effect and intensity have an unknown usage.
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! ID
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 611: Line 472:
 
|-
 
|-
 
| 5
 
| 5
| Bush
+
| Bush (with GFX)
 
|-
 
|-
 
| 6
 
| 6
Line 620: Line 481:
 
|}
 
|}
  
=== Invisible Wall (0x0D) ===
+
=== <span id=0D>Invisible Wall (0x0D)</span> ===
A type of wall that's solid for players only.
+
A type of wall that is solid for players only, and is typically invisible in-game.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 637: Line 498:
 
|}
 
|}
  
=== Item Wall (0x0E) ===
+
=== <span id=0E>Item Wall (0x0E)</span> ===
A type of wall that's solid for items only.
+
A type of wall that is solid for items only. Items that land on it will despawn instantly. The purpose of the variant is unknown.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 666: Line 527:
 
|}
 
|}
  
=== Wall 3 (0x0F) ===
+
=== <span id=0F>Wall 2 (0x0F)</span> ===
 +
Solid for players and items. The difference between this and Wall (0x0C) is unknown.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 688: Line 550:
 
|-
 
|-
 
| 5
 
| 5
| Bush (unused)
+
| Bush (no GFX, unused)
 
|-
 
|-
 
| 6
 
| 6
Line 697: Line 559:
 
|}
 
|}
  
=== Fall Boundary (0x10) ===
+
=== <span id=10>Fall Boundary (0x10)</span> ===
Note: this is an A-like variant type KCL.
+
A non-solid barrier that counts the player out of bounds. The variant controls the animation and sounds to play when it is triggered. For variants 1-3, the BLIGHT index is instead used to reference a {{obj-ref|pocha}} object in the KMP, which is used to determine the height of the splash effect. The BLIGHT index should match Setting 1 of the corresponding pocha object.
Probably it's divided in 2 sections of 8 and 3 bits.
 
The 3 bits one is the basic type (column Z)
 
The 8 bits section defines the index. KMP can also refer to this index (only for the {{obj-ref|pocha}}s). Different variants can refer to the same index, but only one Y value will be selected.
 
 
 
Formula: 0x8Y + Z<br>
 
Y = index<br>
 
Z = basic type
 
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 716: Line 571:
 
|-
 
|-
 
| 1
 
| 1
| {{obj-ref|0x7|Water}}, setting 1 refers to the index in KMP
+
| {{obj-ref|0x7|Water}}
 
|-
 
|-
 
| 2
 
| 2
| {{obj-ref|0x11|Lava}}, setting 1 refers to the index in KMP
+
| {{obj-ref|0x11|Lava}}
 
|-
 
|-
 
| 3
 
| 3
| {{obj-ref|0x17 0x7|Icy water}}, (ice on respawn), setting 1 refers to the index in KMP<ref name="icywaterslot" />
+
| {{obj-ref|0x17 0x7|Icy water}}, (ice on respawn)<ref name="icywaterslot" />
 
|-
 
|-
 
| 4
 
| 4
Line 731: Line 586:
 
|-
 
|-
 
| 6
 
| 6
| Quicksand (used in object {{obj-ref|quicksand}})
+
| Quicksand (used in object {{obj-ref|quicksand}})<ref name="quicksandslot" />
 
|-
 
|-
 
| 7
 
| 7
Line 738: Line 593:
 
<references>
 
<references>
 
<ref name="icywaterslot">Requires slot [[Slot#6.1|6.1]].</ref>
 
<ref name="icywaterslot">Requires slot [[Slot#6.1|6.1]].</ref>
 +
<ref name="quicksandslot">In rare cases with complex KCL geometry, this variant can activate, but not cause the player to respawn, resulting in intangibility and no control of the character. If this occurs somewhere on your track, an additional fall boundary may be needed to "catch" the victim and make them respawn.</ref>
 
</references>
 
</references>
  
=== Cannon Activator (0x11) ===
+
=== <span id=11>Cannon Trigger (0x11)</span> ===
 +
Used to implement [[cannon|cannons]]. Upon contact, the player will be launched to a destination [[KMP (File Format) #CNPT|cannon point]]. The variant determines the KMP index of the cannon point to launch to. Subsequently, a track cannot have more than 8 distinct cannons.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 772: Line 629:
  
 
<span id="type-12">
 
<span id="type-12">
=== Force Recalculation (0x12) ===
+
=== <span id=12>Force Recalculation (0x12)</span> ===
Forces an enemy/item route recalculation when triggered.
+
A trigger that forces an enemy/item route recalculation when a player or CPU passes through it. This is typically used in areas where players or CPUs can fall to a different route. It is only active while inside an [[AREA type#AREA type 0x04 (destination point)|AREA type 0x4]]. Variants are never used and likely have no effect.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 +
|-
 +
| 0
 +
| Default
 
|-
 
|-
| N
+
| 1-7
| Link to N'th element (zero based) of [[KMP#AREA|KMP/AREA]] (AREA type 4). The position and rotation is used as base for the new route calculation
+
| {{Unknown-left|'''Unknown'''. Unused}}
 
|}
 
|}
  
=== Half-pipe Ramp (0x13) ===
+
=== <span id=13>Half-pipe Ramp (0x13)</span> ===
Best used with [[#Invisible Wall (0x0D)|Invisible Wall (0x0D)]], although that is not needed for this flag to function.
+
A special type of ramp that functions like a half-pipe jump. Trickable by default. This type is best used in combination with Invisible Wall (0x0D), although this is not strictly necessary.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 794: Line 654:
 
|-
 
|-
 
| 1
 
| 1
| Boost pad applied, Used in Bowser's Castle
+
| Applies a boost, used in Bowser's Castle
 
|-
 
|-
 
| 2-7
 
| 2-7
Line 800: Line 660:
 
|}
 
|}
  
=== Wall (0x14) ===
+
=== <span id=14>Player-Only Wall (0x14)</span> ===
Allows objects to pass through it like 0x0D, with the same properties as 0x0C.
+
Allows items to pass through it like Invisible Wall (0x0D), but produces sounds upon collision similar to Wall (0x0C). Used by Nintendo below open ledges to prevent players from hanging on to them.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! ID
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 829: Line 689:
 
|-
 
|-
 
| 7
 
| 7
| Rubber
+
| No SFX/GFX
 
|}
 
|}
  
=== Moving Road (0x15) ===
+
=== <span id=15>Moving Road (0x15)</span> ===
Unlike moving water, moving road is '''not''' controlled by routes in the KMP, but rather by specific objects. The positioning of them works similar to an AREA point, however it is unknown exactly how large this area is. It is large enough to cause objects outside of the first tunnel in Toad's Factory to be affected when {{obj-ref|BeltCrossing}} is at its normal position inside the tunnel.
+
A type of road that moves players in a specified direction, used in Toad's Factory and Coconut Mall. Unlike moving water, moving road is '''not''' controlled by routes in the KMP, but rather by specific objects. For more information, see: [[Moving Terrain#Moving Road (KCL 0x15)|Moving Terrain]]
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 861: Line 721:
 
|}
 
|}
  
=== Gravity Road (0x16) ===
+
=== <span id=16>Sticky Road (0x16) [ATTACH]</span> ===
A type of road that applies a strong downward pull on players.
+
A type of road that attaches players to the road if they are within 200 units of the road with a correction of up to 200 units/frame.
 +
Moving water shares this code internally. The game logic does not care if player is also colliding with a different surface; as long as the player within 200 units of a surface with this attribute, the player's position will be corrected. This effect does not stack; layering on moving water will not make it more intense.
 +
The variant controls the terrain type.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
Line 872: Line 734:
 
|-
 
|-
 
| 1
 
| 1
| Gravel
+
| Gravel, different impact SFX
 
|-
 
|-
 
| 2
 
| 2
Line 878: Line 740:
 
|-
 
|-
 
| 3
 
| 3
| Dirt
+
| Dirt, no GFX
 
|-
 
|-
 
| 4
 
| 4
| Sand
+
| Sand, different impact and drift SFX, no GFX
 
|-
 
|-
 
| 5
 
| 5
Line 890: Line 752:
 
|-
 
|-
 
| 7
 
| 7
| Mud
+
| Mud with GFX
 
|}
 
|}
  
=== Road (0x17) ===
+
=== <span id=17>Road 2 (0x17)</span> ===
 +
An alternative to Road (0x00) with different variants.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Basic effect (Z, octal)
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
| Normal road, different sound
+
| Normal road, lower pitch sound
 
|-
 
|-
 
| 1
 
| 1
Line 918: Line 781:
 
|-
 
|-
 
| 6
 
| 6
| Dirt
+
| Dirt (unused)
 
|-
 
|-
 
| 7
 
| 7
Line 924: Line 787:
 
|}
 
|}
  
=== Sound Trigger (0x18) ===
+
=== <span id=18>Sound Trigger (0x18)</span> ===
==== [[Slot#1.1|Slot 1.1 (Luigi Circuit)]] ====
+
A trigger that activates/deactivates sound effects or music channels when the player passes through it. The effects of each variant are different for every track slot and are described below.<br>
{| class="wikitable"
+
<spoiler>
|-
+
{{Slot-SFX}}
! ID
+
</spoiler><br>
! What is it?
 
|-
 
| 0
 
| No audience noise
 
|-
 
| 1
 
| Soft audience noise
 
|-
 
| 2
 
| Audience noise. The race starts with this sound
 
|-
 
| 3
 
| Loud audience noise
 
|-
 
| 4
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 5
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 6
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 7
 
| {{Unknown-left|'''Unknown'''}}
 
|}
 
  
==== [[Slot#1.3|Slot 1.3 (Mushroom Gorge)]] ====
+
=== <span id=19>Weak Wall (0x19)</span> ===
 +
Nintendo uses this type in Wario's Gold Mine and Rainbow Road. It acts as a wall that pushes players away when driving at low speed, but it can easily be trespassed when accelerating. They seem to be originally used below flat road to prevent players from hanging on the edges. Variants are never used and likely have no effect.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! ID
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
| Deactivate all.
+
| Default
 
|-
 
|-
| 1
+
| 1-7
| {{Unknown-left|'''Unknown'''}}
+
| {{Unknown-left|'''Unknown'''. Unused}}
|-
 
| 2
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 3
 
| Enable cave sound effects + echo.
 
 
|}
 
|}
  
==== [[Slot#1.4|Slot 1.4 (Toad's Factory)]] ====
+
=== <span id=1A>Effect Trigger (0x1A)</span> ===
 +
A trigger that activates when the player passes through it; it can have several different functions depending on the variant.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! ID
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
| Sounds off
+
| Change BLIGHT to specified index. Useful when a lighting change is needed in mid-air.
 
|-
 
|-
 
| 1
 
| 1
| Hydraulic press area
+
| Change BLIGHT to specified index. (Different from 0?)
 
|-
 
|-
 
| 2
 
| 2
| Shipping dock area
+
| Trigger a water splash ({{obj-ref|pocha}}) without respawning the player.<ref name="harmlesssplash1" /><ref name="harmlesssplash2" /> The BLIGHT index references a pocha object in the KMP, which is used to determine the height of the splash effect. The BLIGHT index should match Setting 1 of the corresponding pocha object.
 
|-
 
|-
 
| 3
 
| 3
| Moving belt area
+
| Activate {{obj-ref|starGate}} object. Used in tournaments only.
 
|-
 
|-
 
| 4
 
| 4
| Steam room
+
| Half-pipe cancellation; forces the player out of half-pipe state.
 
|-
 
|-
 
| 5
 
| 5
| Restart music at beginning
+
| Coin despawner; despawns any coins that touch it. Used in battle mode only.
 
|-
 
|-
 
| 6
 
| 6
| Bulldozer area
+
| {{Unknown-left|'''Unknown'''. Used on top of the chimneys in Delfino Pier. Possibly related to {{obj-ref|truckChimSmkW}}?}}
 
|-
 
|-
 
| 7
 
| 7
| Audience area
+
| {{Unknown-left|'''Unknown'''. Unused}}
 
|}
 
|}
 +
<references>
 +
<ref name="harmlesssplash1">Reusable only if a fall boundary is triggered.</ref>
 +
<ref name="harmlesssplash2">On slots T4.2 and B2.5, index 5 is hardcoded to spawn a pochaLeaf or pochaLeafY ({{obj-ref|pochaMori}}) respectively. In all other cases, a pocha is used, even if the linked object is of a different type.</ref>
 +
</references>
  
==== [[Slot#2.1|Slot 2.1 (Mario Circuit)]] ====
+
=== <span id=1B>Item State Modifier (0x1B)</span> ===
 +
Nintendo uses this type only in Toad's Factory. It stops stationary items once leaving the curved conveyor belts. Variants are never used and likely have no effect.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! ID
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
| {{Unknown-left|'''Unknown'''}}
+
| Default
 
|-
 
|-
| 1
+
| 1-7
| {{Unknown-left|'''Unknown'''}}
+
| {{Unknown-left|'''Unknown'''. Unused}}
|-
 
| 2
 
| {{Unknown-left|'''Unknown'''}}
 
 
|}
 
|}
  
==== [[Slot#2.2|Slot 2.2 (Coconut Mall)]] ====
+
=== <span id=1C>Half-Pipe Invisible Wall (0x1C)</span> ===
 +
An invisible wall that is only solid for players in the air after a half-pipe jump, used in Bowser's Castle and Funky Stadium. Variants are never used and likely have no effect.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! ID
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
| {{Unknown-left|'''Unknown'''}}
+
| Default
 
|-
 
|-
| 1
+
| 1-7
| {{Unknown-left|'''Unknown'''}}
+
| {{Unknown-left|'''Unknown'''. Unused}}
|-
 
| 2
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 3
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 4
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 5
 
| {{Unknown-left|'''Unknown'''}}
 
 
|}
 
|}
  
==== [[Slot#2.3|Slot 2.3 (DK Summit)]] ====
+
=== <span id=1D>Rotating Road (0x1D)</span> ===
 +
If {{obj-ref|casino_roulette}} is present, this road slowly rotates around it counterclockwise. Without casino_roulette, it acts like ordinary road. For more information, see: [[Moving Terrain#Rotating Road (KCL 0x1D)|Moving Terrain]]
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! ID
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
| {{Unknown-left|'''Unknown'''}}
+
| Carpet, different impact SFX
 
|-
 
|-
 
| 1
 
| 1
| {{Unknown-left|'''Unknown'''}}
+
| Normal road, different sound, different impact SFX (unused)
 
|-
 
|-
 
| 2
 
| 2
| {{Unknown-left|'''Unknown'''}}
+
| Normal road
 
|-
 
|-
 
| 3
 
| 3
| {{Unknown-left|'''Unknown'''}}
+
| Glass road
 
|-
 
|-
 
| 4
 
| 4
| {{Unknown-left|'''Unknown'''}}
+
| Carpet
|}
 
 
 
==== [[Slot#2.4|Slot 2.4 (Wario's Gold Mine)]] ====
 
{| class="wikitable"
 
|-
 
! ID
 
! What is it?
 
|-
 
| 0
 
| Music change (outside)
 
|-
 
| 1
 
| Music change (cave) + gentle echo
 
|-
 
| 2
 
| Echo
 
|-
 
| 3
 
| Strong echo
 
|-
 
| 4
 
| {{Unknown-left|'''Unknown'''}}
 
 
|-
 
|-
 
| 5
 
| 5
| {{Unknown-left|'''Unknown'''}}
+
| No sound, star crash impact SFX (requires {{obj-ref|starGate}} for SFX) (unused)
 
|-
 
|-
 
| 6
 
| 6
| {{Unknown-left|'''Unknown'''}}
+
| Sand (unused)
 
|-
 
|-
 
| 7
 
| 7
| {{Unknown-left|'''Unknown'''}}
+
| Dirt (unused)
 
|}
 
|}
  
==== [[Slot#3.1|Slot 3.1 (Daisy Circuit)]] ====
+
=== <span id=1E>Special Wall (0x1E)</span> ===
 +
Variants consist of wall types that have special functionality and/or are used in very specific situations.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! ID
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
| Deactivate echo
+
| Cactus. Touching this will cause the player to spin out. Used in Dry Dry Ruins and Thwomp Desert.
 
|-
 
|-
 
| 1
 
| 1
| Weak echo
+
| No SFX/GFX. Used behind the lavafalls in Grumble Volcano.
 
|-
 
|-
 
| 2
 
| 2
| Echo
+
| Bouncy wall (unused). Driving into it at slow speed will cause the player to be pushed backwards.
|}
 
 
 
==== [[Slot#3.2|Slot 3.2 (Koopa Cape)]] ====
 
{| class="wikitable"
 
|-
 
! ID
 
! What is it?
 
|-
 
| 0
 
| Music change (normal)
 
|-
 
| 1
 
| Weak echo
 
|-
 
| 2
 
| {{Unknown-left|'''Unknown'''}}
 
 
|-
 
|-
 
| 3
 
| 3
| Music change (underwater)
+
| No SFX/GFX. Used for the finish line banners on Wario's Gold Mine and Koopa Cape.
 
|-
 
|-
 
| 4
 
| 4
| Water tunnel echo
+
| Rainbow Road railings. SFX only work on slot [[Slot#4.4|4.4]].
 
|-
 
|-
 
| 5
 
| 5
| Deactivate all + echo
+
| The sides and stalk of mushroom pads, used on Mushroom Gorge.
 
|-
 
|-
 
| 6
 
| 6
| Music change (riverside)
+
| Metal SFX. Used for the statue in Luigi Circuit and the top of the underwater section in Koopa Cape.
 
|-
 
|-
 
| 7
 
| 7
| Back to normal + echo (unused)
+
| The sides of the gates from competitions. Requires {{obj-ref|starGate}} object for SFX.
 
|}
 
|}
  
==== [[Slot#3.3|Slot 3.3 (Maple Treeway)]] ====
+
=== <span id=1F>Invisible Wall 2 (0x1F)</span> ===
 +
Solid for players only. The difference between this and Invisible Wall (0x0D) is unknown.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! ID
+
! Variant
! What is it?
+
! Effect
 
|-
 
|-
 
| 0
 
| 0
| {{Unknown-left|'''Unknown'''}}
+
| No SFX/GFX
 
|-
 
|-
| 1
+
| 1-7
| {{Unknown-left|'''Unknown'''}}
+
| {{Unknown-left|'''Unknown'''. Same as 0? (unused)}}
|-
 
| 2
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 3
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 4
 
| {{Unknown-left|'''Unknown'''}}
 
 
|}
 
|}
  
==== [[Slot#3.4|Slot 3.4 (Grumble Volcano)]] ====
+
== Additional Info ==
{| class="wikitable"
+
[[Wiimm]] has made a statistical analysis about the usage of flags in all 32 tracks: [http://szs.wiimm.de/download/kcl/kcl-types.txt kcl-types.txt]
|-
 
! ID
 
! What is it?
 
|-
 
| 0
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 1
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 2
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 3
 
| {{Unknown-left|'''Unknown'''}}
 
|}
 
  
==== [[Slot#4.1|Slot 4.1 (Dry Dry Ruins)]] ====
 
{| class="wikitable"
 
|-
 
! ID
 
! What is it?
 
|-
 
| 0
 
| Music change (normal)
 
|-
 
| 1
 
| Music change (indoors, where the bats come from the sides)
 
|-
 
| 2
 
| Music change (indoors, where the half-pipes are)
 
|-
 
| 3
 
| Music change (indoors, where the Pokeys are)
 
|-
 
| 4
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 5
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 6
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 7
 
| {{Unknown-left|'''Unknown'''}}
 
|}
 
  
==== [[Slot#4.2|Slot 4.2 (Moonview Highway)]] ====
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! ID
+
! Type
 
! What is it?
 
! What is it?
 +
! Speed factor<sup>[1]</sup>
 +
! Handling factor<sup>[1]</sup>
 
|-
 
|-
| 0
+
|[[#Road (0x00)|0x00]]
| Music change
+
|Road
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 1
+
|[[#Slippery Road 1 (0x01)|0x01]]
| {{Unknown-left|'''Unknown'''}}
+
|Slippery Road 1
 +
| align=center | 1.0
 +
| align=center | 0.050 &ndash; 0.105
 
|-
 
|-
| 2
+
|[[#Weak Off-road (0x02)|0x02]]
| {{Unknown-left|'''Unknown'''}}
+
|Weak Off-road
 +
| align=center | 0.550 &ndash; 0.909
 +
| align=center | 0.080 &ndash; 0.157
 
|-
 
|-
| 3
+
|[[#Off-road (0x03)|0x03]]
| {{Unknown-left|'''Unknown'''}}
+
|Off-road
 +
| align=center | 0.325 &ndash; 0.712
 +
| align=center | 0.050 &ndash; 0.105
 
|-
 
|-
| 4
+
|[[#Heavy_Off-road_.280x04.29|0x04]]
| {{Unknown-left|'''Unknown'''}}
+
|Heavy Off-road
 +
| align=center | 0.185 &ndash; 0.422
 +
| align=center | 0.050 &ndash; 0.105
 
|-
 
|-
| 5
+
|[[#Slippery Road 2 (0x05)|0x05]]
| {{Unknown-left|'''Unknown'''}}
+
|Slippery Road 2
|}
+
| align=center | 0.881 &ndash; 0.999
 
+
| align=center | 0.030 &ndash; 0.074
==== [[Slot#4.3|Slot 4.3 (Bowser's Castle)]] ====
 
{| class="wikitable"
 
 
|-
 
|-
! ID
+
|[[#Boost Panel (0x06)|0x06]]
! What is it?
+
|Boost Panel
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 0
+
|[[#Boost Ramp (0x07)|0x07]]
| Disable one-time use sound trigger (like Bowser's howl)
+
|Boost Ramp
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 1
+
|[[#Jump Pad (0x08)|0x08]]
| Bowser's howl + echo. Put 7 at the end of a turn to be able to reuse Bowser's howl
+
|Jump Pad
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 2
+
|[[#Item Road (0x09)|0x09]]
| Sound distortion + echo
+
|Item Road
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 3
+
|[[#Solid Fall (0x0A)|0x0A]]
| Deactivate sound distortion + echo
+
|Solid Fall
 +
| align=center | 0.1
 +
| align=center | 0.7
 
|-
 
|-
| 4
+
|[[#Moving Water (0x0B)|0x0B]]
| Add drums + echo on music + {{obj-ref|koopaBall}}/{{obj-ref|koopaFigure}} SFX
+
|Moving Water
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 5
+
|[[#Wall (0x0C)|0x0C]]
| Deactivate {{obj-ref|koopaBall}}/{{obj-ref|koopaFigure}} SFX
+
|Wall
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 6
+
|[[#Invisible Wall (0x0D)|0x0D]]
| Add drums without echo
+
|Invisible Wall
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 7
+
|[[#Item Wall (0x0E)|0x0E]]
| Back to normal. Allow reuse for one-time use sound trigger
+
|Item Wall
|}
+
| align=center | 1.0
 
+
| align=center | 0.7
In order to have Thwomp SFX, just disable every sound trigger (put 003 then 007).
 
 
 
==== [[Slot#4.4|Slot 4.4 (Rainbow Road)]] ====
 
{| class="wikitable"
 
 
|-
 
|-
! ID
+
|[[#Wall 2 (0x0F)|0x0F]]
! What is it?
+
|Wall 2
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 0
+
|[[#Fall Boundary (0x10)|0x10]]
| Deactivator
+
|Fall Boundary
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 1
+
|[[#Cannon Activator (0x11)|0x11]]
| Gate sound 1 (add a deactivator before and after if you use only one gate)
+
|Cannon Activator
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 2
+
|[[#Force Recalculation (0x12)|0x12]]
| Boost pad star ring sound 1
+
| Force Recalculation
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 3
+
|[[#Half-pipe Ramp (0x13)|0x13]]
| Boost pad star ring sound 2
+
|Half-pipe Ramp
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 4
+
|[[#Player-Only Wall (0x14)|0x14]]
| Boost pad star ring sound 3
+
|Player-Only Wall
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 5
+
|[[#Moving Road (0x15)|0x15]]
| Boost pad star ring sound 4
+
|Moving Road
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 6
+
|[[#Sticky/Gravity Road (0x16)|0x16]]
| Tunnel sound (add a deactivator to stop it)
+
|Sticky/Gravity Road
|}
+
| align=center | 1.0
 
+
| align=center | 0.7
Sound triggers are easy to use if you know how to use them.
 
 
 
Here's a good example:
 
 
 
*0 → 1 → 2 → 3 → 4 → 5 → 0
 
**That's how the original Rainbow Road uses the triggers. All the triggers will play once and won't replay until you reach a deactivator.
 
 
 
Here's a way to play the first gate more than once:
 
*0 → 1 → 0 → 1 → etc.
 
*Note that 0 → 2 won't play, and 1 → 1 will only play once. Every sound trigger must be one more time than the one before it, in order for it to work.
 
 
 
The tunnel trigger works similarly. Use a deactivator to stop it.
 
 
 
==== [[Slot#5.4|Slot 5.4 (N64 Mario Raceway)]] ====
 
{| class="wikitable"
 
 
|-
 
|-
! ID
+
|[[#Road 2 (0x17)|0x17]]
! What is it?
+
|Road 2
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 0
+
|[[#Sound Trigger (0x18)|0x18]]
| {{Unknown-left|'''Unknown'''}}
+
|Sound Trigger
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 1
+
|[[#Weak Wall (0x19)|0x19]]
| {{Unknown-left|'''Unknown'''}}
+
|Weak Wall
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 2
+
|[[#Effect Trigger (0x1A)|0x1A]]
| {{Unknown-left|'''Unknown'''}}
+
|Effect Trigger
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 3
+
|[[#Item State Modifier (0x1B)|0x1B]]
| {{Unknown-left|'''Unknown'''}}
+
|Item State Modifier
|}
+
| align=center | 1.0
==== [[Slot#6.1|Slot 6.1 (N64 Sherbet Land)]] ====
+
| align=center | 0.7
{| class="wikitable"
 
 
|-
 
|-
! ID
+
|[[#Half-pipe Invisible Wall (0x1C)|0x1C]]
! What is it?
+
|Half-pipe Invisible Wall
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 0
+
|[[#Rotating Road (0x1D)|0x1D]]
| {{Unknown-left|'''Unknown'''}}
+
|Rotating Road
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 1
+
|[[#Special Walls (0x1E)|0x1E]]
| {{Unknown-left|'''Unknown'''}}
+
|Special Walls
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|-
 
|-
| 2
+
|[[#Invisible Wall 2 (0x1F)|0x1F]]
| {{Unknown-left|'''Unknown'''}}
+
|Invisible Wall 2
 +
| align=center | 1.0
 +
| align=center | 0.7
 
|}
 
|}
  
==== [[Slot#6.3|Slot 6.3 (DS Delfino Square)]] ====
+
; '''[1]''' &#58; Notes for '''Speed factor'''
{| class="wikitable"
+
* Each vehicle and driver combination has its own basic speed. The '''Speed factor''' is always &le;1.0 and defines the relative KCL type dependent speed.
|-
+
* The values are calculated after analyzing different [[Mario Kart Wii]] files. The ranges depends on the possible driver and vehicle combinations.
! ID
+
* The different basic speed of the vehicles (75.00 &ndash; 85.07) and the driver modifications of the basic speed (add 0 &ndash; 0.53) are not part of these speed factor calculations.
! What is it?
+
* Some values are senseless (e.g. walls, fall down, effects), but the values are available in the Mario Kart Wii tables.
|-
 
| 0
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 1
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 2
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 3
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 4
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 5
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 6
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 7
 
| {{Unknown-left|'''Unknown'''}}
 
|}
 
 
 
==== [[Slot#7.3|Slot 7.3 (N64 DK's Jungle Parkway)]] ====
 
{| class="wikitable"
 
|-
 
! ID
 
! What is it?
 
|-
 
| 0
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 1
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 2
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 3
 
| {{Unknown-left|'''Unknown'''}}
 
|}
 
 
 
==== [[Slot#7.4|Slot 7.4 (GCN Mario Circuit)]] ====
 
{| class="wikitable"
 
|-
 
! ID
 
! What is it?
 
|-
 
| 0
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 1
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 2
 
| {{Unknown-left|'''Unknown'''}}
 
|}
 
 
 
==== [[Slot#8.3|Slot 8.3 (GCN DK Mountain)]] ====
 
{| class="wikitable"
 
|-
 
! ID
 
! What is it?
 
|-
 
| 0
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 1
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 2
 
| {{Unknown-left|'''Unknown'''}}
 
|}
 
 
 
==== [[Slot#8.4|Slot 8.4 (N64 Bowser's Castle)]] ====
 
{| class="wikitable"
 
|-
 
! ID
 
! What is it?
 
|-
 
| 0
 
| Disable one-time use sound trigger (like Bowser's howl)
 
|-
 
| 1
 
| Turns lava SFX off + disables echo
 
|-
 
| 2
 
| Bowser's howl. Put 0 at the end of a turn to be able to reuse this
 
|-
 
| 3
 
| Turns lava SFX off
 
|-
 
| 4
 
| Turns lava SFX off + echo
 
|-
 
| 5
 
| Echo
 
|-
 
| 6
 
| Strong echo
 
|}
 
 
 
=== Unknown (0x19) ===
 
Nintendo use this type in Wario's Gold Mine and Rainbow Road with variant values 0x400 and 0x410. It seems to be some kind of wall that affects players, but not items. <!-- Found this information by debugging in game, but still don't know its effect -->
 
{| class="wikitable"
 
|-
 
! Basic effect (Z, octal)
 
! What is it?
 
|-
 
| 0
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 1-7
 
| {{Unknown-left|'''Unknown'''. Unused}}
 
|}
 
 
 
=== Effect Trigger (0x1A) ===
 
Nintendo use this type in 21 different tracks with variant values 0x000, 0x001, 0x002, 0x004, 0x005, 0x006, 0x009, 0x00A, 0x011, 0x012, 0x019, 0x01C, 0x022 and 0x02A.
 
{| class="wikitable"
 
|-
 
! Basic effect (Z, octal)
 
! What is it?
 
|-
 
| 0
 
| BRSTM reset
 
|-
 
| 1
 
| Enable shadow effect
 
|-
 
| 2
 
| Water splash ({{obj-ref|pocha}})<ref name="harmlesssplash" />
 
|-
 
| 3
 
| {{obj-ref|starGate}} door activation
 
|-
 
| 4
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 5
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 6
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 7
 
| {{Unknown-left|'''Unknown'''. Unused}}
 
|}
 
<references>
 
<ref name="harmlesssplash">Reusable only if a fall boundary is triggered.</ref>
 
</references>
 
  
=== Unknown (0x1B) ===
 
Nintendo uses this type only in Toad's Factory with variant value 0x008.
 
{| class="wikitable"
 
|-
 
! Basic effect (Z, octal)
 
! What is it?
 
|-
 
| 0
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 1-7
 
| {{Unknown-left|'''Unknown'''. Unused}}
 
|}
 
 
=== Half-Pipe Invisible Wall (0x1C) ===
 
Nintendo only uses this type in Bowser's Castle with variant value 0x020 and in Funky Stadium with variant value 0x000.
 
It consists of an invisible wall used only while being in air after a half-pipe jump.
 
{| class="wikitable"
 
|-
 
! Basic effect (Z, octal)
 
! What is it?
 
|-
 
| 0
 
| {{Unknown-left|'''Unknown'''}}
 
|-
 
| 1-7
 
| {{Unknown-left|'''Unknown'''. Unused}}
 
|}
 
 
=== Moving Road (0x1D) ===
 
If {{obj-ref|casino_roulette}} is present, the road slowly rotates everything around it counterclockwise.
 
{| class="wikitable"
 
|-
 
! Basic effect (Z, octal)
 
! What is it?
 
|-
 
| 0
 
| Gravel
 
|-
 
| 1
 
| Dirt, different sound
 
|-
 
| 2
 
| Normal road
 
|-
 
| 3
 
| Glass road
 
|-
 
| 4
 
| Gravel, different sound
 
|-
 
| 5
 
| No sound, Star Ring spark SFX on slot [[Slot#4.4|4.4]] (requires {{obj-ref|starGate}})
 
|-
 
| 6
 
| Sand (unused)
 
|-
 
| 7
 
| Dirt (unused)
 
|}
 
 
=== Special Wall (0x1E) ===
 
{| class="wikitable"
 
|- <!-------------------------------------------------->
 
! Basic effect (Z, octal) !! Visual !! Sound !! Effect
 
|-
 
| rowspan=2 | 0  (cacti effect)
 
| Fast: spark (stars)
 
| Fast: nothing
 
| Fast: bump
 
|-
 
| Slow: spark (stars)
 
| Slow: nothing
 
| Slow: bump
 
|-
 
| rowspan=2 | 1
 
| Fast: nothing
 
| Fast: nothing
 
| Fast: bump (rubber wall)
 
|-
 
| Slow: nothing
 
| Slow: nothing
 
| Slow: nothing
 
|-
 
| rowspan=2 | 2 (unused)
 
| Fast: spark
 
| Fast: hollow
 
| Fast: bump
 
|-
 
| Slow: nothing
 
| Slow: nothing
 
| Slow: many bumps (rubber wall)
 
|-
 
| rowspan=2 | 3
 
| Fast: nothing
 
| Fast: nothing
 
| Fast: bump
 
|-
 
| Slow: nothing
 
| Slow: nothing
 
| Slow: nothing
 
|-
 
| rowspan=2 | 4, SFX on slot [[Slot#4.4|4.4]]
 
| Fast: spark
 
| Fast: nothing
 
| Fast: bump
 
|-
 
| Slow: nothing
 
| Slow: nothing
 
| Slow: nothing
 
|-
 
| rowspan=2 | 5
 
| Fast: spark
 
| Fast: cracking
 
| Fast: bump
 
|-
 
| Slow: nothing
 
| Slow: nothing
 
| Slow: nothing
 
|-
 
| rowspan=2 | 6
 
| Fast: spark
 
| Fast: metal
 
| Fast: bump
 
|-
 
| Slow: nothing
 
| Slow: nothing
 
| Slow: nothing
 
|-
 
| rowspan=2 | 7
 
| Fast: spark
 
| Fast: Star Ring crash (requires {{obj-ref|starGate}})
 
| Fast: bump
 
|-
 
| Slow: nothing
 
| Slow: Star Ring crash (requires {{obj-ref|starGate}})
 
| Slow: nothing
 
|}
 
 
=== Wall 5 (0x1F) ===
 
{| class="wikitable"
 
|- <!-------------------------------------------------->
 
! Basic effect (Z, octal)!! Speed !! Visual !! Sound !! Effect
 
|-
 
| rowspan=2 | 0<br>1-7 (unused)
 
| Fast
 
| Nothing
 
| Nothing
 
| Bump (players can't go through it, items can)
 
|-
 
| Slow
 
| Nothing
 
| Nothing
 
| Nothing (players can't go through it, items can)
 
|}
 
  
 
[[Category:File Format/MKW]]
 
[[Category:File Format/MKW]]

Latest revision as of 16:13, 17 January 2024

Overview

In Mario Kart Wii, collision data is stored as a list of triangles in a KCL file. Each triangle in the file is associated with a 16-bit KCL flag, which determines the effect that the triangle has on players or items that collide with it. A KCL flag consists of 5 components, each corresponding to a bit group:

Kcl-flag-bit-groups.png

Base Type:
Ranges in value from 0x00 to 0x1F. This component represents the main effect that the triangle will have, e.g. road, offroad, fall boundary, etc.. Descriptions of each value's effect can be found below.

Variant:
Ranges in value from 0 to 7. This component determines the variant of the base type. The possible variants of each base type are described below.

BLIGHT Index:
Ranges in value from 0 to 7. This component is the index of posteffect.blight that the triangle should use. For drivable surfaces, this refers to the lighting that is applied to any character, vehicle or item that is touching it. For most non-drivable surfaces such as walls, it appears to have no effect. Some variants of 0x10 and 0x1A repurpose this component to index into the KMP.

Wheel Depth:
Ranges in value from 0 to 3. For drivable surfaces, a higher value will cause the player's wheels to "sink" further into the road. This is used by Nintendo on surfaces such as snow or sand. This likely has other subtle effects on wheel physics; exact details are unknown.

Collision effect:
This component consists of 3 bits that each have a different effect when set:

Bit Effect
0 Affects drivable surfaces. If set to 1, the surface becomes trickable. NOTE: For base types that
are trickable by default, e.g. boost ramps, this bit should remain as 0 to avoid inconsistent trick types.
1 Affects drivable surfaces. If set to 1, the surface becomes reject road, which forces a player to
change direction when attempting to drive on it.
2 Affects walls. If set to 1, the wall becomes a soft wall, also referred to as "barrel roll" collision. This
is used by Nintendo on walls below ledges to prevent players from hanging on them.

Example

To manually calculate the KCL flag for grass offroad (base type = 0x03, variant = 4) that is trickable (collision effect bit 0 = 1) and uses BLIGHT index 3: First insert the components into the correct bit groups, then convert the resulting binary number to hexadecimal.

Kcl-flags-ex.png

Cheat Sheet

This image sums up the base types and variants for finding them more quickly (although it is a bit outdated).

KCL Cheat Sheet.png



Base Types & Variants

Road (0x00)

Default road. The variant controls the terrain type, i.e. the sound effects (SFX) and particles (GFX) generated by driving on it.

Variant Effect
0 Normal road
1 Dirt, GFX on slots 7.3 and 8.3
2 Dirt, no GFX
3 Smooth
4 Wood
5 Snow with GFX
6 Metal grate
7 Road, but the sound cuts off and returns immediately when triggered

Slippery Road 1 (0x01)

A type of road that is slippery, but does not slow you down.

Variant Effect
0 White sand
1 Dirt[1]
2 Water (unused)
3 Snow (unused)
4 Grass (unused)
5 Yellow sand
6 Sand, no GFX (unused)
7 Dirt, no GFX (unused)
  1. GFX is a lighter color on slot 8.2.

Weak Off-road (0x02)

A type of road that slows the player down a small amount.

Variant Effect
0 Orange sand
1 Dirt[1]
2 Water
3 Grass, darker GFX
4 Sand, lighter GFX
5 Carpet
6 Gravel[2][3]
7 Gravel, different impact SFX[2][3]
  1. GFX is red on slot 3.4.
  2. 2.0 2.1 GFX is orange on slot 3.1.
  3. 3.0 3.1 GFX does not include the rock particles on slot 3.4.

Off-road (0x03)

A type of road that slows the player down a moderate amount.

Variant Effect
0 Sand[1]
1 Dirt
2 Mud[1]
3 Water, no GFX (unused)
4 Grass[1]
5 Sand, lighter GFX
6 Gravel, different impact SFX
7 Carpet
  1. 1.0 1.1 1.2 GFX can be a different color on different slots.

Heavy Off-road (0x04)

A type of road that slows the player down a large amount.

Variant Effect
0 Sand
1 Dirt
2 Mud
3 Flowers
4 Grass
5 Snow
6 Sand
7 Dirt, no GFX

Slippery Road 2 (0x05)

A type of road that is slippery and slightly slows you down.

Variant Effect
0 Ice
1 Mud, no GFX (unused)
2-5 Water, no GFX (unused)
6-7 Normal road, different sound (unused)

Boost (0x06) [DASH]

(Boost Panel) Applies a boost when you drive over it.

Variant Effect
0 Default
1 If used in course.kcl and casino_roulette is present, this surface will rotate around it counterclockwise. Used in Chain Chomp Wheel.
2-7 Unknown. Unused

Boost Ramp (0x07) [DASHJ]

Applies a boost and is trickable by default. The variant controls the trick animation, and by extension the duration of the trick boost you get upon landing. The duration is listed in frames for karts/bikes. Generally, more flips mean longer airtime and more landing boost time. Note that you should not use the collision effect "trickable" with this KCL flag, otherwise the trick type will be semi random. Additionally, if used in course.kcl and casino_roulette is present, this surface will rotate around it counterclockwise.

Variant Effect Trick Boost (Karts) Trick Boost (Bikes)
0 Double flip trick 85 frames 95 frames
1 Single flip trick 70 frames 80 frames
2-7 Stunt trick, unused 40 frames 45 frames

Jump Pad (0x08)

Bounces the player into the air, and locks their speed until they touch the ground. Trickable by default. The variant controls the speed lock and the amount of Y velocity applied (both in units/frame). Values in parentheses are used if the player is in a boost when they touch this surface.

Variant Speed Lock Y Velocity Description
0 50.0 35.0 Used in GBA Bowser Castle 3
1 50.0 47.0 Used in SNES Ghost Valley 2
2 59.0 30.0 Used in GBA Shy Guy Beach
3 73.0 (100.0) 45.0 (70.0) Ramps in Mushroom Gorge[1]
4 73.0 (100.0) 53.0 (65.0) Bouncy mushrooms in Mushroom Gorge[2]
5 56.0 50.0 Used in Chain Chomp Wheel
6 55.0 35.0 Used in DS Yoshi Falls and Funky Stadium
7 56.0 50.0 Unused, seems to be identical to 5
  1. This flag causes the Off-Road Glitch.
  2. SFX always work on the kinoko_bend object, but requires slot 1.3 for the course model KCL.

Item Road (0x09)

A type of road that is solid for items only. Items that land on it will despawn after 3 seconds (180 frames). The purpose of the variant is unknown.

Variant Effect
0 Unknown
1 Unknown
2 Used on metal grates
3 Unknown. Used on wooden paths/grass/mushrooms
4 Unknown. Unused
5 Unknown. Used on grass/bushes
6-7 Unknown. Unused

Solid Fall (0x0A)

A solid surface that counts the player out of bounds. The variant controls the terrain type.

Variant Effect
0 Sand
1 Sand/Underwater
2 Unknown
3 Ice
4 Dirt
5 Grass
6 Wood
7 Dark sand with GFX

Moving Water (0x0B)

A type of road that moves the player along a route, used in Koopa Cape and DS Yoshi Falls. It is only active while inside an AREA type 0x3. The exact functionality depends on the variant. For more information, see: Moving Terrain

Variant Effect
0 Moving water that follows a route, pulling the player downwards.
1 Moving water that follows a route and strongly pulls the player downwards, making it hard to drive.
2 Moving water that follows a route from the start of the path to the end of it.

Uses 2 AREA settings:

  • Setting 1: Acceleration modifier.
  • Setting 2: Moving speed.[1]
3 Moving water that follows a route from the start of the path to the end of it and disables player's acceleration.

Uses 2 AREA settings:

  • Setting 1: Current player's speed modifier.
    eg. value of 100 will keep current player's speed. Values below 100 will slow down player until full stop.
  • Setting 2: Moving speed.[1]
4 Moving asphalt, unused. Functions the same as variant 0.
5 Moving asphalt, unused. Functions the same as variant 0.
6 Moving road, unused. Functions the same as variant 0.
7 Moving road, unused. Functions the same as variant 0.
  1. 1.0 1.1 Always overrides route's moving speed setting.

Route Settings:

Setting Description
1 Moving speed.
2 Value of 1 changes moving water direction 90 degrees to the right.
Value of 2 changes moving water direction 90 degrees to the left.

Wall (0x0C)

Default wall, solid for both players and items. The variant controls the sound played when colliding with it.

Variant Effect
0 Normal
1 Rock
2 Metal
3 Wood
4 Ice
5 Bush (with GFX)
6 Rope
7 Rubber

Invisible Wall (0x0D)

A type of wall that is solid for players only, and is typically invisible in-game.

Variant Effect
0 No spark and no character wall hit voice
1-2 Spark and character wall hit voice (unused)
3-7 Unknown. Same as 0? (unused)

Item Wall (0x0E)

A type of wall that is solid for items only. Items that land on it will despawn instantly. The purpose of the variant is unknown.

Variant Effect
0 Unknown
1 Unknown. Used on rock walls
2 Unknown. Used on metal walls
3 Unknown
4 Unknown. Unused
5 Unknown. Used on grass/bushes
6-7 Unknown. Unused

Wall 2 (0x0F)

Solid for players and items. The difference between this and Wall (0x0C) is unknown.

Variant Effect
0 Normal
1 Rock
2 Metal
3 Wood
4 Ice
5 Bush (no GFX, unused)
6 Rope
7 Rubber

Fall Boundary (0x10)

A non-solid barrier that counts the player out of bounds. The variant controls the animation and sounds to play when it is triggered. For variants 1-3, the BLIGHT index is instead used to reference a pocha object in the KMP, which is used to determine the height of the splash effect. The BLIGHT index should match Setting 1 of the corresponding pocha object.

Variant Effect
0 Air fall
1 Water
2 Lava
3 Icy water, (ice on respawn)[1]
4 Lava, no GFX
5 Burning air fall
6 Quicksand (used in object quicksand)[2]
7 Short fall
  1. Requires slot 6.1.
  2. In rare cases with complex KCL geometry, this variant can activate, but not cause the player to respawn, resulting in intangibility and no control of the character. If this occurs somewhere on your track, an additional fall boundary may be needed to "catch" the victim and make them respawn.

Cannon Trigger (0x11)

Used to implement cannons. Upon contact, the player will be launched to a destination cannon point. The variant determines the KMP index of the cannon point to launch to. Subsequently, a track cannot have more than 8 distinct cannons.

Variant Effect
0 To point 0
1 To point 1
2 To point 2
3 To point 3 (unused)
4 To point 4 (unused)
5 To point 5 (unused)
6 To point 6 (unused)
7 To point 7 (unused)

Force Recalculation (0x12)

A trigger that forces an enemy/item route recalculation when a player or CPU passes through it. This is typically used in areas where players or CPUs can fall to a different route. It is only active while inside an AREA type 0x4. Variants are never used and likely have no effect.

Variant Effect
0 Default
1-7 Unknown. Unused

Half-pipe Ramp (0x13)

A special type of ramp that functions like a half-pipe jump. Trickable by default. This type is best used in combination with Invisible Wall (0x0D), although this is not strictly necessary.

Variant Effect
0 Default
1 Applies a boost, used in Bowser's Castle
2-7 Unknown. Unused

Player-Only Wall (0x14)

Allows items to pass through it like Invisible Wall (0x0D), but produces sounds upon collision similar to Wall (0x0C). Used by Nintendo below open ledges to prevent players from hanging on to them.

Variant Effect
0 Normal (unused)
1 Rock (unused)
2 Metal (unused)
3 Wood
4 Ice (unused)
5 Bush (unused)
6 Rope (unused)
7 No SFX/GFX

Moving Road (0x15)

A type of road that moves players in a specified direction, used in Toad's Factory and Coconut Mall. Unlike moving water, moving road is not controlled by routes in the KMP, but rather by specific objects. For more information, see: Moving Terrain

Variant Effect
0 Moves west with BeltCrossing and escalator. The latter only works with escalator.kcl
1 Moves east with BeltCrossing and west with escalator. The latter only works with escalator.kcl
2 Moves east with BeltEasy
3 Moves west with BeltEasy
4 Rotates around BeltCurveA clockwise
5 Rotates around BeltCurveA counterclockwise
6-7 Unknown. Unused

Sticky Road (0x16) [ATTACH]

A type of road that attaches players to the road if they are within 200 units of the road with a correction of up to 200 units/frame. Moving water shares this code internally. The game logic does not care if player is also colliding with a different surface; as long as the player within 200 units of a surface with this attribute, the player's position will be corrected. This effect does not stack; layering on moving water will not make it more intense. The variant controls the terrain type.

Variant Effect
0 Wood
1 Gravel, different impact SFX
2 Carpet
3 Dirt, no GFX
4 Sand, different impact and drift SFX, no GFX
5 Normal road, SFX on slot 4.4
6 Normal road
7 Mud with GFX

Road 2 (0x17)

An alternative to Road (0x00) with different variants.

Variant Effect
0 Normal road, lower pitch sound
1 Carpet
2 Grass, GFX on 8.3
3 Normal road, used on green mushrooms
4 Grass
5 Glass road with SFX
6 Dirt (unused)
7 Normal road, SFX on slot 4.4

Sound Trigger (0x18)

A trigger that activates/deactivates sound effects or music channels when the player passes through it. The effects of each variant are different for every track slot and are described below.
Show text


Weak Wall (0x19)

Nintendo uses this type in Wario's Gold Mine and Rainbow Road. It acts as a wall that pushes players away when driving at low speed, but it can easily be trespassed when accelerating. They seem to be originally used below flat road to prevent players from hanging on the edges. Variants are never used and likely have no effect.

Variant Effect
0 Default
1-7 Unknown. Unused

Effect Trigger (0x1A)

A trigger that activates when the player passes through it; it can have several different functions depending on the variant.

Variant Effect
0 Change BLIGHT to specified index. Useful when a lighting change is needed in mid-air.
1 Change BLIGHT to specified index. (Different from 0?)
2 Trigger a water splash (pocha) without respawning the player.[1][2] The BLIGHT index references a pocha object in the KMP, which is used to determine the height of the splash effect. The BLIGHT index should match Setting 1 of the corresponding pocha object.
3 Activate starGate object. Used in tournaments only.
4 Half-pipe cancellation; forces the player out of half-pipe state.
5 Coin despawner; despawns any coins that touch it. Used in battle mode only.
6 Unknown. Used on top of the chimneys in Delfino Pier. Possibly related to truckChimSmkW?
7 Unknown. Unused
  1. Reusable only if a fall boundary is triggered.
  2. On slots T4.2 and B2.5, index 5 is hardcoded to spawn a pochaLeaf or pochaLeafY (pochaMori) respectively. In all other cases, a pocha is used, even if the linked object is of a different type.

Item State Modifier (0x1B)

Nintendo uses this type only in Toad's Factory. It stops stationary items once leaving the curved conveyor belts. Variants are never used and likely have no effect.

Variant Effect
0 Default
1-7 Unknown. Unused

Half-Pipe Invisible Wall (0x1C)

An invisible wall that is only solid for players in the air after a half-pipe jump, used in Bowser's Castle and Funky Stadium. Variants are never used and likely have no effect.

Variant Effect
0 Default
1-7 Unknown. Unused

Rotating Road (0x1D)

If casino_roulette is present, this road slowly rotates around it counterclockwise. Without casino_roulette, it acts like ordinary road. For more information, see: Moving Terrain

Variant Effect
0 Carpet, different impact SFX
1 Normal road, different sound, different impact SFX (unused)
2 Normal road
3 Glass road
4 Carpet
5 No sound, star crash impact SFX (requires starGate for SFX) (unused)
6 Sand (unused)
7 Dirt (unused)

Special Wall (0x1E)

Variants consist of wall types that have special functionality and/or are used in very specific situations.

Variant Effect
0 Cactus. Touching this will cause the player to spin out. Used in Dry Dry Ruins and Thwomp Desert.
1 No SFX/GFX. Used behind the lavafalls in Grumble Volcano.
2 Bouncy wall (unused). Driving into it at slow speed will cause the player to be pushed backwards.
3 No SFX/GFX. Used for the finish line banners on Wario's Gold Mine and Koopa Cape.
4 Rainbow Road railings. SFX only work on slot 4.4.
5 The sides and stalk of mushroom pads, used on Mushroom Gorge.
6 Metal SFX. Used for the statue in Luigi Circuit and the top of the underwater section in Koopa Cape.
7 The sides of the gates from competitions. Requires starGate object for SFX.

Invisible Wall 2 (0x1F)

Solid for players only. The difference between this and Invisible Wall (0x0D) is unknown.

Variant Effect
0 No SFX/GFX
1-7 Unknown. Same as 0? (unused)

Additional Info

Wiimm has made a statistical analysis about the usage of flags in all 32 tracks: kcl-types.txt


Type What is it? Speed factor[1] Handling factor[1]
0x00 Road 1.0 0.7
0x01 Slippery Road 1 1.0 0.050 – 0.105
0x02 Weak Off-road 0.550 – 0.909 0.080 – 0.157
0x03 Off-road 0.325 – 0.712 0.050 – 0.105
0x04 Heavy Off-road 0.185 – 0.422 0.050 – 0.105
0x05 Slippery Road 2 0.881 – 0.999 0.030 – 0.074
0x06 Boost Panel 1.0 0.7
0x07 Boost Ramp 1.0 0.7
0x08 Jump Pad 1.0 0.7
0x09 Item Road 1.0 0.7
0x0A Solid Fall 0.1 0.7
0x0B Moving Water 1.0 0.7
0x0C Wall 1.0 0.7
0x0D Invisible Wall 1.0 0.7
0x0E Item Wall 1.0 0.7
0x0F Wall 2 1.0 0.7
0x10 Fall Boundary 1.0 0.7
0x11 Cannon Activator 1.0 0.7
0x12 Force Recalculation 1.0 0.7
0x13 Half-pipe Ramp 1.0 0.7
0x14 Player-Only Wall 1.0 0.7
0x15 Moving Road 1.0 0.7
0x16 Sticky/Gravity Road 1.0 0.7
0x17 Road 2 1.0 0.7
0x18 Sound Trigger 1.0 0.7
0x19 Weak Wall 1.0 0.7
0x1A Effect Trigger 1.0 0.7
0x1B Item State Modifier 1.0 0.7
0x1C Half-pipe Invisible Wall 1.0 0.7
0x1D Rotating Road 1.0 0.7
0x1E Special Walls 1.0 0.7
0x1F Invisible Wall 2 1.0 0.7
[1] : Notes for Speed factor
  • Each vehicle and driver combination has its own basic speed. The Speed factor is always ≤1.0 and defines the relative KCL type dependent speed.
  • The values are calculated after analyzing different Mario Kart Wii files. The ranges depends on the possible driver and vehicle combinations.
  • The different basic speed of the vehicles (75.00 – 85.07) and the driver modifications of the basic speed (add 0 – 0.53) are not part of these speed factor calculations.
  • Some values are senseless (e.g. walls, fall down, effects), but the values are available in the Mario Kart Wii tables.