KCL flag
This page describes the flags of KCL files.
Mario Kart Wii Collision Flags
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:
FLAG = TYPE | VARIANT << 5
Wiimm has made a statistical analysis about the usage of flags in all 32 tracks: kcl-types.txt
Collision Types (basic type)
Type | Variant type | What is it? | Speed factor[1] | Second factor[1] with unknown impact |
---|---|---|---|---|
0x00 | A | Road | 1.0 | 0.7 |
0x01 | A | Slippery Road 1 | 1.0 | 0.050 – 0.105 |
0x02 | A | Weak Off-road | 0.550 – 0.909 | 0.080 – 0.157 |
0x03 | A | Off-road | 0.325 – 0.712 | 0.050 – 0.105 |
0x04 | A | Heavy Off-road | 0.185 – 0.422 | 0.050 – 0.105 |
0x05 | A | Slippery Road 2 | 0.881 – 0.999 | 0.030 – 0.074 |
0x06 | A | Boost Pad | 1.0 | 0.7 |
0x07 | A | Boost Ramp | 1.0 | 0.7 |
0x08 | A | Jump Pad | 1.0 | 0.7 |
0x09 | A | Item Road | 1.0 | 0.7 |
0x0A | A | Solid Fall | 1.0 | 0.7 |
0x0B | B | Moving Water | 1.0 | 0.7 |
0x0C | unknown | Wall | 1.0 | 0.7 |
0x0D | unknown | Invisible Wall | 1.0 | 0.7 |
0x0E | unknown | Item Wall | 1.0 | 0.7 |
0x0F | unknown | Wall 3 | 1.0 | 0.7 |
0x10 | unknown | Fall Boundary | 1.0 | 0.7 |
0x11 | B | Cannon Activator | 1.0 | 0.7 |
0x12 | unknown | Force Recalculation | 1.0 | 0.7 |
0x13 | unknown | Half-pipe Ramp | 1.0 | 0.7 |
0x14 | unknown | Wall | 1.0 | 0.7 |
0x15 | B | Moving Road | 1.0 | 0.7 |
0x16 | A | Sticky Road | 1.0 | 0.7 |
0x17 | A | Road | 1.0 | 0.7 |
0x18 | unknown | Sound Trigger | 1.0 | 0.7 |
0x19 | unknown | Does nothing | 1.0 | 0.7 |
0x1A | unknown | Does nothing | 1.0 | 0.7 |
0x1B | unknown | Does nothing | 1.0 | 0.7 |
0x1C | unknown | Does nothing | 1.0 | 0.7 |
0x1D | A | Road | 1.0 | 0.7 |
0x1E | unknown | Special Walls | 1.0 | 0.7 |
0x1F | unknown | Wall 5 | 1.0 | 0.7 |
- [1] : Notes for Speed factor
- Each vehicle and driver combinations has it's own basic speed. The Speed factor is always ≤1.0 and defines the relative KCL type dependent speed.
- The impact of the second factors column is unknown. The first assumption small vehicles is wrong.
- 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 – 85.07) and the driver modifications of the basic speed (add 0 – 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
Type A
Variant type A is split in 4 bit-groups. The first and last 2 groups are 3 bits each, and the second group is 2 bits.
Group W | Group X | Group Y | Group Z | |
---|---|---|---|---|
Amount of bits | 3 | 2 | 3 | 3 |
Function | Collision effect | Intensity | Shadow effect | Basic effect |
To write this structure down, you can write each group as an octal number, but be aware of the 2-bits group, calculating hex to octal will not work right. A good way to get the right variant in hex is this:
- write down each group in octal (X can be max. 3)
- convert each group to binary (X is 2 bits, others 3 bits)
- write them in the order: wxyz, you'll get www|xx|yyy|zzz in binary, you can convert that number to hex.
Note: hex shows only W right, octal only Y and Z.
So, www in binary controls the collision effect, xx controls intensity, yyy controls shadow effect, and zzz controls the basic effect (such as grass vs. dirt). For example, www represents a binary number of three digits. This 3-digit number controls which effect is used. The same applies to yyy and zzz, except xx can only go up to 3 as there are only 2 binary digits. A complete string of binary numbers (wwwxxyyyzzz in that order) is converted as a whole to hex to get the variant that is entered into the SZS Modifier or CTools.
Another way is using the following formula: Variant (in hexadecimals) = 0x100W+0x40X+0x8Y+Z Of course is this formula basic on the theory stated above.
Functions:
Collision effect:
Bit | Effect |
---|---|
0 | 0 = Not trickable 1 = Trickable |
1 | 0 = Drivable 1 = Not drivable. Forces a player to change direction which makes the player unable to drive on that surface. |
2 | Value 1 is used for walls that don't make you bounce when colliding on them |
Intensity:
Exact values unknown
Shadow effect:
All light effects pertain to the light IDs in posteffect.blight. These colors can be modified by hex editing it in the SZS file (./posteffect/posteffect.blight).
Basic effect:
Different for each basic flag
Type B
Variant type B refers to an ID in the kmp file, which section is different for each flag: "Triggers" means that it's variant refers to a group or point of the specified section.
Type (value) | Triggers | |
---|---|---|
Moving road (0x0B) | AREA entry | If the area has a route it makes the water follow the route, else it moves towards the area point. |
Cannon activator (0x11) | Cannon (CNPT entry) | |
Moving road (0x15) | Object |
Basic Effects (for type A, and type A-like variants)
Road (0x00)
A type of road that's solid for both players and items.
Basic effect (Z, octal) | What is it? |
---|---|
0 | Normal |
1 | Dirt, GFX on Slots 7.3 and 8.3 |
2 | Dirt, no GFX |
3 | Smooth |
4 | Wood |
5 | Snow with GFX |
6 | Metal Grid |
7 | Normal |
Slippery Road 1 (0x01)
A type of road that is slippery, but does not slow you down.
Basic effect (Z, octal) | What is it? |
---|---|
0 | Sand |
1 | Dirt |
2 | Water |
3 | Snow |
4 | Grass |
5 | Sand |
6 | Sand, no effect |
7 | Dirt, no effect |
Weak Off-road (0x02)
Basic effect (Z, octal) | What is it? |
---|---|
0 | Sand |
1 | Dirt |
2 | Water |
3 | Grass |
4 | White sand |
5 | Sand/Gravel |
6 | Gravel |
7 | Gravel, different sound |
Off-road (0x03)
Basic effect (Z, octal) | What is it? |
---|---|
0 | Sand |
1 | Dirt |
2 | Mud |
3 | Water |
4 | Grass |
5 | Sand |
6 | Gravel |
7 | Sand/Gravel |
Heavy Off-road (0x04)
Basic effect (Z, octal) | What is it? |
---|---|
0 | Sand |
1 | Dirt |
2 | Mud |
3 | Flowers |
4 | Grass |
5 | Snow |
6 | Sand |
7 | Dirt, no effect |
Slippery Road 2 (0x05)
A type of road that is slippery and slightly slows you down. Only variant 0 is used in Mario Kart Wii. The other values are most likely filler.
Basic effect (Z, octal) | What is it? |
---|---|
0 | Ice |
1 | Mud |
2 | Water |
3 | Water |
4 | Water |
5 | Water |
6 | Normal road, different sound |
7 | Normal road, different sound |
Boost Pad (0x06)
Basic effect (Z, octal) | What is it? |
---|---|
0 | unknown |
1 | unknown |
2 | unknown |
3 | unknown |
4 | unknown |
5 | unknown |
6 | unknown |
7 | unknown |
Boost Ramp (0x07)
Basic effect (Z, octal) | What is it? |
---|---|
0 | 2 flips |
1 | 1 flip |
2 | no flips |
3 | no flips |
4 | no flips |
5 | no flips |
6 | no flips |
7 | no flips |
Jump Pad (0x08)
Basic effect (Z, octal) | What is it? |
---|---|
0 | used in GBA Bowser Castle 3 |
1 | used in SNES Ghost Valley 2 |
2 | used in GBA Shy Guy Beach |
3 | used in Mushroom Gorge |
4 | Bouncy Mushroom (SFX only works in kinoko_bend object KCL) |
5 | unused |
6 | used in DS Yoshi Falls |
7 | unused |
Item Road (0x09)
A type of road that's solid for items only.
Basic effect (Z, octal) | What is it? |
---|---|
0 | unknown |
1 | unknown |
2 | unknown |
3 | unknown |
4 | unknown |
5 | unknown |
6 | unknown |
7 | unknown |
Solid Fall (0x0A)
Basic effect (Z, octal) | What is it? |
---|---|
0 | unknown |
1 | Grass |
2 | unknown |
3 | unknown |
4 | unknown |
5 | unknown |
6 | unknown |
7 | Sand effect |
Moving Water (0x0B)
Basic effect (Z, octal) | What is it? |
---|---|
0 | unknown |
1 | unknown |
2 | unknown |
3 | unknown |
4 | unknown |
5 | unknown |
6 | unknown |
7 | unknown |
Wall (0x0C)
A type of wall that's solid for both players and items. 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 is ignored or unused.
ID | What is it? |
---|---|
000 | Normal |
001 | Rock |
002 | Metal |
003 | Wood |
004 | Ice |
005 | Bush |
006 | Bush without leaf effect |
007 | Mushroom |
40x | The "bump" depends on the angle you hit the wall. |
Invisible Wall (0x0D)
A type of wall that's solid for players only.
Basic effect (Z, octal) | What is it? |
---|---|
0 | unknown |
1 | unknown |
2 | unknown |
3 | unknown |
4 | unknown |
5 | unknown |
6 | unknown |
7 | unknown |
Item Wall (0x0E)
A type of wall that's solid for items only.
Basic effect (Z, octal) | What is it? |
---|---|
0 | unknown |
1 | unknown |
2 | unknown |
3 | unknown |
4 | unknown |
5 | unknown |
6 | unknown |
7 | unknown |
Wall 3 (0x0F)
Basic effect (Z, octal) | What is it? |
---|---|
0 | unknown |
1 | unknown |
2 | unknown |
3 | unknown |
4 | unknown |
5 | unknown |
6 | unknown |
7 | unknown |
Fall Boundary (0x10)
Note: this is an A-like variant type kcl. 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 pocha's)
Formula: 0x8Y + Z
Y = index
Z = basic type
Basic effect (Z, octal) | What is it? |
---|---|
0 | Air fall |
1 | Water (pocha.brres), Setting 1 refers to the index in KMP |
2 | Lava (pochaYogan.brres), Setting 1 refers to the index in KMP |
3 | Ice water (pocha.brres, ice.brres on respawn), Setting 1 refers to the index in KMP. Will only run at Slot 6.1 (Sherbet). |
4 | Water (used in MT) |
5 | Air fall, but with entry a burning air fall |
6 | Quicksand |
7 | Short fall |
Cannon Activator (0x11)
Basic effect (Z, octal) | What is it? |
---|---|
0 | To Point 0 |
1 | To Point 1 |
2 | To Point 2 |
3 | To Point 3 |
4 | To Point 4 |
5 | To Point 5 |
6 | To Point 6 |
7 | To Point 7 |
Force Recalculation (0x12)
Forces an enemy/item route recalculation when triggered.
Basic effect (Z, octal) | What is it? |
---|---|
0 | unknown |
1 | unknown |
2 | unknown |
3 | unknown |
4 | unknown |
5 | unknown |
6 | unknown |
7 | unknown |
Half-pipe Ramp (0x13)
Best used with Invisible Wall (0x0D) KCL, although that is not needed for this flag to function.
Basic effect (Z, octal) | What is it? |
---|---|
0 | unknown |
1 | unknown |
2 | unknown |
3 | unknown |
4 | unknown |
5 | unknown |
6 | unknown |
7 | unknown |
Wall (0x14)
Allows objects to pass through it like 0x0D, with the same properties as 0x0C.
ID | What is it? |
---|---|
000 | Normal Wall |
001 | Rock Wall |
002 | Metal Wall |
003 | Guard Rail |
004 | Short tree wall sound effect |
005 | Tree Wall |
006 | Tree Wall without leaf effect |
007 | Rubber Wall |
40x | The "bump" depends on the angle you hit the wall |
Moving Road (0x15)
Basic effect (Z, octal) | What is it? |
---|---|
0 | Activated by objects. |
1 | Activated by objects. |
2 | Activated by objects. |
3 | Activated by objects. |
4 | unknown |
5 | unknown |
6 | unknown |
7 | unknown |
Unlike moving water, moving road is NOT controlled by routes in the KMP, but rather by specific objects. Variant 000 is controlled by the object BeltCrossing from Toad's Factory, and the escalator objects at Coconut Mall. If the BeltCrossing object is positioned in the KMP to be nearby Moving Road (variant 000) in course.kcl, the moving road will pull all objects directly west. As such the positioning of the object 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 BeltCrossing is at its normal position inside the tunnel.
Sticky Road (0x16)
Basic effect (Z, octal) | What is it? |
---|---|
0 | Wood |
1 | Sand/Gravel |
2 | Gravel |
3 | Dirt |
4 | Sand/Gravel |
5 | Slot-bound drift sound effect, normal road. |
6 | Normal Road |
7 | Mud |
Road (0x17)
Basic effect (Z, octal) | What is it? |
---|---|
0 | Normal road, different sound |
1 | Gravel |
2 | Grass |
3 | Normal road, different sound |
4 | Grass |
5 | Glass road with sound-effect |
6 | Dirt |
7 | Dirt effect with no sound |
Does nothing (0x19)
Nintendo use this type in tracks 2.4 and 4.4 with variant values 0x400, 0x410.
Basic effect (Z, octal) | What is it? |
---|---|
0 | unknown |
1 | unknown |
2 | unknown |
3 | unknown |
4 | unknown |
5 | unknown |
6 | unknown |
7 | unknown |
Does nothing (0x1A)
Nintendo use this type in 17 different tracks with variant values 0x000, 0x001, 0x002, 0x004, 0x009, 0x00a, 0x011, 0x012, 0x019, 0x01c, 0x022 and 0x02a.
Basic effect (Z, octal) | What is it? |
---|---|
0 | unknown |
1 | unknown |
2 | water splash (pocha.brres), reused only if a fall boundary is triggered |
3 | unknown |
4 | unknown |
5 | unknown |
6 | unknown |
7 | unknown |
Does nothing (0x1B)
Nintendo use this type only in track 1.4 (Toad's Factory) with variant value 0x008.
Basic effect (Z, octal) | What is it? |
---|---|
0 | unknown |
1 | unknown |
2 | unknown |
3 | unknown |
4 | unknown |
5 | unknown |
6 | unknown |
7 | unknown |
Does nothing (0x1C)
Nintendo use this type only in track 4.3 (Bowser's Castle) with variant value 0x020.
Basic effect (Z, octal) | What is it? |
---|---|
0 | unknown |
1 | unknown |
2 | unknown |
3 | unknown |
4 | unknown |
5 | unknown |
6 | unknown |
7 | unknown |
Road (0x1D)
Basic effect (Z, octal) | What is it? |
---|---|
0 | Gravel |
1 | Dirt, different sound |
2 | Normal road |
3 | Glass road with echo |
4 | Gravel, different sound |
5 | No sound effect |
6 | Sand |
7 | Dirt |
Special Walls (0x1E)
Basic effect (Z, octal) | Visual | Sound | Effect |
---|---|---|---|
0 | Fast: spark (stars) | Fast: nothing | Fast: bump |
Slow: spark (stars) | Slow: nothing | Slow: bump | |
1 | Fast: nothing | Fast: nothing | Fast: bump (rubber wall) |
Slow: nothing | Slow: nothing | Slow: nothing | |
2 | Fast: spark | Fast: hollow | Fast: bump |
Slow: nothing | Slow: nothing | Slow: many bumps (rubber wall) | |
3 | Fast: nothing | Fast: nothing | Fast: bump |
Slow: nothing | Slow: nothing | Slow: nothing | |
4 | Fast: spark | Fast: nothing | Fast: bump |
Slow: nothing | Slow: nothing | Slow: nothing | |
5 | Fast: spark | Fast: cracking | Fast: bump |
Slow: nothing | Slow: nothing | Slow: nothing | |
6 | Fast: spark | Fast: metal | Fast: bump |
Slow: nothing | Slow: nothing | Slow: nothing | |
7 | Fast: spark | Fast: nothing | Fast: bump |
Slow: nothing | Slow: nothing | Slow: nothing |
Wall 5 (0x1F)
Basic effect (Z, octal) | Speed | Visual | Sound | Effect |
---|---|---|---|---|
0-7 | Fast: | nothing | nothing | bump (Players can't go through it, items can) |
Slow: | nothing | nothing | nothing (Players can't go through it, items can) |
Sound Trigger (0x18)
Bowser Castle Wii
ID | What is it? |
---|---|
000 | Disable one time use Sound Trigger (like Bowser Howl). |
001 | Bowser's Howl + Echo (put 007 at the end of a turn to be able to reuse Bowser Howl!) |
002 | Sound Distortion + Echo. |
003 | Deactivate above. |
004 | Add Drums + Echo on music + Koopa ball / koopa figure sound |
005 | Unknown or nothing (but tested.) |
006 | Add Drums without Echo |
007 | Back to normal - Allow reuse for one time use Sound Trigger. |
Little Info in order to have Thwomp effect, just disable every sound trigger (put 003 then 007).
Koopa Cape
ID | What is it? |
---|---|
000 | Unknown or nothing (but tested) |
001 | Unknown or nothing (but tested) |
002 | Unknown or nothing (but tested) |
003 | Music change (Underwater) |
004 | Music change (Normal) + echo + water background sound |
005 | Deactivate all only keep echo |
006 | Music change (Riverside) |
007 | Add echo on every trigger |
008 | Music change (Normal) |
009 | Unknown or nothing (but tested) |
00A | Unknown or nothing (but tested) |
00B | Unknown or nothing (but tested) |
00C | Music change (Water Tunnel) |
00D | Music change + echo + water sound |
00E | Music normal + echo + water sound |
00F | Back to normal + echo |
Rainbow Road
ID | What is it? |
---|---|
000 | Turn Off button. |
001 | Gate Sound 1 (Add a turn off button before and after if you use only one gate. |
002 | Gate Sound 2 |
003 | Gate Sound 3 |
004 | Gate Sound 4 |
005 | Gate Sound 5 |
006 | Tunnel Sound (Add a turn off button to stop it) |
007 | Nothing or unknown. |
Sound triggers are easy to use if you know how to use them.
Here's a good example:
- 000 -> 001 -> 002 -> 003 -> 004 -> 005 -> 000
- That's how the original Rainbow Road uses the triggers. All the triggers will play once and won't replay until you reach a "000" turn-off button.
Here's a way to play the first gate more than once:
- 000 -> 001 -> 000 -> 001 -> etc.
- Note that 000 -> 002 won't play, and 001 -> 001 will only play once. Every sound trigger must be one more than the one before it, in order for it to work.
The tunnel trigger works similarly. Use "000" to stop it.
Good luck :3
N64 Bowser's Castle
ID | What is it? |
---|---|
000 | Disable one time use Sound Trigger (like Bowser Howl) |
001 | ? |
002 | Bowser's Howl (put 000 at the end of a turn to be able to reuse this) |
003 | ? |
004 | ? |
005 | ? |
006 | ? |
007 | ? |