Tutorial  Updated

Mario Kart 8: Custom Track Tutorial

This tutorial is now obsolete with my new track editor released.

Track Editor

I will keep this one up for archival purposes but I highly suggest you use the above tool. The github page includes a new tutorial and is extremely easy now to make tracks.


(Screenshot of track not final! Will have normal, specular, and full lights set up)

Example tracks:
DS Shroom Ridge v1.0 by Wexos and Atlas

Skyscraper City by Wexos and Atlas

We can finally make our own custom tracks for Mario Kart 8! Nearly everything can be edited and it's up to the community to finally start more track creation. This tutorial is pretty big as it took about a week of research and testing to put together. With that being said, lets get straight to how these are done! If you are familiar with MKWii course making, then this is very similar and may be easier for those experienced with that game.

A course located in content/course will contain mutiple files.
  • BFRES Models, textures, and texture animations are stored inside
  • KCL Collision files
  • BYAML Course data for things like lap paths(checkpoints), enemy paths(ai routes), object placement, glider paths, ect.
  • BFILM Stores ui stuff. In this case course_maptexture is the mini map.
  • BARS Stores sound effects executed from the byaml
  • BIN Ideally the course_mapcamera, which controls mini map paramters.

Advanced stuff (No tools to edit these yet)
    • PTCL Particle effects executed via byaml objects
    • BGLPBD AAMP file. Not sure what they control.
    • BGENV A sarc which stores AAMP files and sometimes a bfres files to control the looks of a course.
    • collect.genvres. Some sorta 3D model and may have a small white texture. Unknown what this does.

Useful Resources
Track/Music List

Now lets make our course! We first are going to start the modeling part!

Part 1 Modeling
There are multiple ways you can make your own track. Here is just a list of a few programs.
  • Blender
  • 3DS Max
  • Maya
  • Sketch Up (Lacks a few things blender or max or maya has like normal map baking, or the complex modifiers that can be used)

Ideally, any program will work fine aslong as your model can be exported as an .obj file or dae file. Wexos's Toolbox may have trouble with certain .obj/dae formats from other programs so you may need to open your model in 3DS Max first and then export them.

Now for this test, i am going to make a very basic track. For this I will use blender.

First I will explain the size of a road.


(You can enable measurements in blender with this tutorial)

Enabling measurements in blender, the road is around 249 meters, (32.1 centimeters). You ideally want to make your road model around that size in whatever program you are using.

For those who would like to download a model to use for a size reference. Here you go! Please use the one for the right program and in max make sure scale = 1!

Making a track can be relatively easy.

Sketchup users use this tutorial:

3DS Max Users use this tutorial:

Blender Users can use this tutorial:

I hope to make a more in depth video regarding track making soon covering some tricks for anti gravity areas and such.

For now i will explain some basic track modeling.

The most common way a track would be made is using a curve and plane.


This allows your model to follow the curve path allowing you to design tracks that twist around and curve very well. To do this there are a few basic steps.

I suggest watching either this or this to get a better idea of how these are made.
Now moving the curve and extruding in edit mode with "E" you can make a track. You can use CTRL +T to tilt and move the track around for anti gravity areas like this.


Things to also take note of.
- Before applying any modifiers, in edit mode press U and unwrap your model.
- W key has many extremely useful options.
  • Smooth - smooths your curve, great for turns.
  • Subdive - Adds an extra point in between
  • Smooth Tilt - smooths out tilts from using CTRL + T. Useful for making anti gravity stuff.

For this test I made a simple track for gliding and gravity paths.


I've added 2 planes which will be a water section and a small little tunnel to show how shadows cast.

The track is mainly for the sake of go over things quickly and easily, but do not be afraid of doing anything complex as it is simply the same process.

Now that i got my models created, i will be exporting it an fbx to 3DS Max. You can use blender for everything but I will be using max as i know how to bake shadows for that. Blender tutorial on that will be gone over soon.


Then reimport it into max.


Also I will import a reference model to scale my track.


The reference model being blue, i now scaled it to around that size of my road. It may be a bit tricky to get the size right so i suggest using orthographic view and then switching sides with the viewport cube on the right.

Part 2 Shadows, Lighting, and Special effects! (Please use! Do not skip!)
All tracks similar to the other Mario Kart series have their lighting and shadows baked onto a texture.

MK8 has 2 bake textures a model often uses.

Some may look like this:


And others may look like this (or very transparent)


As crazy as these might look, they're quite simple. First I will explain how they work.


Here i made a basic key on what color does what.

The first bake map controls lighting and shadows. Red being used for shadows

The second one is basically like vertex colors, they will color in particular spots. However the alpha channel controls the intensity or scale of how well these show.Often these are very dark and this alpha channel can be seen in Photoshop or similar.


For those who are curious why the map is yellow and red, the game only uses the red and green channels. The green one controlling shadows like this and the red one is ambient occlusion. The shadows being black in the green channel so it appears red.

Now to make these I will be using 3DS max. Blender can also do this however I had the best results in max.

Click this sun icon.

Click the lamp icon then set the settings from photmetric to standard.

Click on the Omni lamp.

Next check Shadows to be on and then set the color to be red like this.



Now you can configure and move around based on how you want shadows to look. I suggest moving it quite high up so it gets a good amount of the area.

Now apply this yellow texture on the top to the model you want to have the baked shadows to. This will act as the background for the shadows.

Lets unwrap all our models. Select all objects

Add a Unwrap UVW modifier


Switch to UV channel 2 and then select Abandon.


Now open the UV editor and flatten UVs.


Now exit out of the editor. Right click in the viewport and convert to editable mesh to apply the modifiers.

Select your object that you want shadows on and goto Rendering - RenderToTexture.

Use these settings.



-Use Scaline renderer
-Set the padding value to anything above 1. This will remove any seams.
-Set UV channel to 2 and use curremt uv channel
-Set resolution at what best fits. I suggest using x256 first and see how it looks, then use higher if it comes out bad.
-check lighting and shadows
-Click the add button highlighted in green and add a diffuse color
-Next add your file location highlighted in blue and save it as a png without alpha.
-optionally check both view and render with the baked setting to see how your bake map looks

Now click the Render button at the bottom. Your bake map is now complete.
To preview you can check these 2 settings like this and when you render it again it will appear on your model. Then set the viewport to shaded.

It worked! It will save in the output directory in max. Default is (C:\Users\UserNameHere\Documents\3dsMax\sceneassets\images)

Do not save it within max where you get the preview of your bake map! This will NOT have padding and will give UV seams!!!! It will save in the directory set in your render to texture settings!


Now i should note that yes shadows do cover the walls for inside areas aswell.


Now we got our main shadow map. We can also optionally bake ambient occlusion aswell as this is located in the red channel.

An example of this usage


This technique is used often to add nice lighting and shading to areas not exposed or obstructed too well.

I will go over that soon.

Part 3 Bake Maps (continued) Vertex Color to Bake Map, Light sources, and More!
We got the first bake map done now onto the second one.

Now this one can control lighting and many other effects. You can even color parts of the stage Like this from this.

Also Bowser's castle uses these quite well.

Without these (using a basic color texture)

And with the second bake map



The way these work is like a layer of color on a model. If you've ever seen vertex colors get used on previous Mario Kart courses, this is basically the same thing.
It can control the brightness of shadows aswell, orange can often remove a shadow effect as it gives off light.

I've seen this primary to darken areas so light can stand out well.

Here is how the whole effect looks when shown in game (textures greyed and color scale maxed)


This gives off a nice shading effect based on the color.

It works like a hue selector. Purple will be the darkest, while red is the brightest. The alpha channel then controls how easy you can see the color. For bowser's course most of the blue parts are often black in the alpha channel so you don't get any blue colors in the map however it still darkens areas in game.

This can be used to darken shadow color or just the overall look to act more relativistic.

A light blue can slightly darken areas like in the Airport level.



While the Lobby can have an even lighter blue to brighten the room



Twisted Mansion having a darker color which helps lights stand out better



Now we need to make our own second bake map. This process is basically the same as before.

I however haven't found exactly a good way to replicate these effects sadly due to how games not using effects like these. Lamps and such may work but results always show faded unwanted results. If anyone figures this out I will update this part!

Baking Vertex Colors from a model or track.

Mario Kart Double Dash!!!, mkwii, mkds, and mk7 all greatly use vertex colors for shading effects.

Some examples of these:
With Vertex Colors:

Without Vertex Colors:


(Screenshot taken from MKDasher's track and one i added vertex colors to)

With Vertex Colors



(screenshots taken in BMD viewer)

Of course some games use vertex colors more than others but if you plan on porting a track, i highly suggest doing this!

First open your track. I will have detailed info on importing each to maintain vertex colors in the bottom of this thread.

I will be using 3DS MAX for this


Go ahead and save your current object as a .max file. We will need to go back to it after we make our texture map.

First select an object. We need to combine models first so right click - convert to editable mesh.
Then click the attach button


Select all your objects and press attach. This will make them all one object.

Press the M key to open the material editor

Drag this white texture over to a material sphere


Then goto the maps section and click on the diffuse color map


Click the bitmap option


Then click on "vertex color map"


Now click this to assign this material to the model.


Alright last step. Open Render to texture like last time. You can use the same settings or use my preset however
check use existing UV channel and make sure it is set to 2.
Set renderer to scanline

Press the bake button.


It worked! It will save in the output directory in max. Default is (C:\Users\UserNameHere\Documents\3dsMax\sceneassets\images)

Now we also need to go back to our old save now that we have the texture!

Simply goto the exporting part of the tutorial now that this is done!

Part 4 Exporting our track into Wexos Toolbox & Material Editing
Now for this step you will need a program called Wexo's Toolbox. You can obtain this here. (This tool is currently Windows only)

First need to export your model as a .dae. If you are exporting in max look at what rotation the front of your model is. I suggest having the front of your track be on the Top view like this. Then when you export as a .dae file, set Axis Conversion to Z up.

Obj files can be used but is not recommend as bake maps will not import!

List of formats I know work so far
Blender: .DAE Works great
3DS Max: .OBJ, .DAE Works great
Sketchup ???? May want to run track through blender or max. May need to scale down to proper size if necessary.
Maya ???? May want to run track through blender or max. May need to scale down to proper size if necessary.

After exporting your model. If you wish for this effect in any underwater areas like this where it is wavy on the ground and walls, create a model that covers all the areas of the water effect (does not need to be exactly perfect, can go outside of the walls) like this. Then with that one object make it a separate dae.

Then goto the CausticArea section of material editing.

Now open the tool


If you are familiar with brawlbox, this tool is somewhat similar.

What we need to do first is open a course that we will use as a base. (This will not reflect on the actual course your track will go over! If you use rainbow road as a base then you can put it over Mario Stadium, ect)

I will be using Mario Stadium as a base. The course you choose will reflect the materials and shaders used however these are often very similar through each course and may not make a huge difference.

I highly suggest using Wario Stadium as a base. It has the best set of materials i've seen so far and i included alot of nice materials to use!

Now lets open our track base.


Now right click the "Models" section in the tool and click import.


Then change it to use dae.

Select your dae file you exported and then a settings box should appear.


These are the settings I use.

Then press OK.

Now your model will show in the models section.


You can rename your model anything you like. The tool also allows you to import multiple models if needed.

Now your objects will all appear under the materials section. We will need to transfer material data from our base track to our own. (If any model has no materials, it will crash in game!)

Material Editing

A full set of presets can be found here.

Now lets open the base model and goto the materials.


You will be using the materials from the track you chose.

Materials are structured like this.


The only thing you will likely need to edit is the Attribute Selectors and the Selectors under the Textures tab. You can open these or anything with (Collection) by selecting the gray box after the option is clicked on.

Now lets get a few materials to use for our course. I will have a full pack of materials for easy use for those who do not want to do this and I highly recommend using them as it has a few things I needed to edit for bake maps to work!

For those who want to use materials from other tracks rather than my presets.
First I suggest looking at the texture selector option.


Your material needs to have each material map.

Alb is the main texture

Nrm being a Normal Map for a bump effect. Makes your texture appear less flat.

Spm is the shininess of your texture

Emm is the Emission texture which controls brightness or glow. Great for signs or panels.

Bake is the lighting and shadow effects.

Some materials will not have all the maps you need so you will need to keep looking for one. You can not remove or add any on an existing material!

Now to export a material simply right click and export the material.
Same goes for replacing a model with the replace option.


Replace a material from your base course or my material presets and do this for every object.

Texture Mapping

Simply open the "Selector" option under textures to rename the texture name to one of yours.


Now for those using my material preset, I made it fairly simple. There are basic secular, normal, emission, bake, and also main textures for tracks.

Every material given will have either these sets of textures:

Basic_Alb (Main Texture)
Basic_Nrm (Normal Map)
Basic_Spm (Specular Map)
Basic_Emm (Emission Map)
Bake_CustomTrack_bake1 (first bake map that was red and yellow)
Bake_CustomTrack_bake2 (second bake map)

These all will give a neutral effect so you can just edit the main texture and have it work. I suggest doing every map for the best possible look.

For those who want to mirror your texture, goto the attributes selection option and open it.


Change the WrapU or WrapV option from "Repeat" to mirror. Some tracks like from MK7 use this feature.
For the options on the right side:
_a0 = Main texture/alb
_n0 = Normal map/Nrm
_s0 = Spec Map/Spm
_e0 = Emission/Emm
_b0 = Bake Map 1
_b1 - Bake Map 2

Previewing Our Model
(Back Up the szs/bfres before doing incase something breaks or crashes)

Note as of now there may be a bug where your model is black or gray, this is fine and will work in game still!

You can right click on your model and preview it! This is useful for looking at texture mapping and if the model looks fine.


Now for transparent textures to work. Simply use the Alpha texture in my material presets or use one a material that supports this on your base course. This can easily be found if the Alpha Condition option is set to "Always"


Culling is a technique used to make a certain part of a model not view able from a particular viewpoint.

You can remove this if you need to see both faces/sides of a model by setting this to both faces.


For most objects like roads on the ground or one sided walls, i suggest keeping this to front.


If you want to replicate the very nice water MK8 uses. Simply grab ef_waterF from your base course or my material presets. Water only uses a normal map, the rest is all material and shader based. Editing the color of this is currently unkown.

Also be sure to add the ef_water_Nrm texture from your base course aswell! More on that in the textures section of the tutorial

Lastly goto Texture SRT Animations and import the water animation from your base course.
Sometimes called ef_water_auto however other courses may vary.

Caustic Area (Underwater wavy effect)
So if you made your model as noted in the beginning of this tutorial all you need now is to first import your object.

After the dae is imported name it CausticsArea like this.


Then use the CausticsArea9 material from either my preset or the stage your are using a base off of.

That should be all. Keep in mind this does not have any textures and does not need any! Adding any may not work or can crash.

Animated Gravity, Boost, and Glider Panels.
Use the right material from your base course to get these working.
Material list:
ef_dashboard - Boost Panel
ef_glideboard - Glider Panel
ef_gravityboard - Gravity Panel

Optimizing Our Model
(Back Up the szs/bfres before doing incase something breaks)

In the newest build you can optimize and fix possible lag from going to Edit - Optimize model!

The default settings are fine, just press Ok and your model is optimized!


Saving Our Model
Once you have done your material edits you can goahead and save it.

First goto Plugin - Program Manager.


Set your compression to Yaz0 if it isn't already.

File - Save As and name it

Press "Yes" on this dialouge


Now it is saved! For testing I suggest making a quick KCL in the collision section of this tutorial and a byaml in the byaml section of this tutorial.

To test this out you can open cemu and launch the track. For Wii U users use SD cafiine. More noted on all this at the end of the tutorial in Part 9.

Checking Errors!
Before saving our model always check for errors! These are often material errors!

First goto edit - check.

Here is a list of what errors mean.

(Material Name) links to buffer "B" but does not have a vertex input!)

This is an important error as this can cause a crash. To fix:
Goto vertex inputs under the shader control panel


Open it and add the buffer that appears in the error.


(Material Name) links to buffer "B" but does not exist! (buffer B being u0,u1,t0,b0,c0,n0,p0, ect) Example
This error often does not have any effect nor will break anything.
If you feel you want to fix this:
Goto vertex inputs under the shader control panel


Open it and remove the buffer that appears in the error.


Part 5 Texture Editing
This tool in particular makes it very easy to add textures.

First lets go over importing textures. Then I will go over making them.

Goto the textures tab.

Export any wanted textures first as .bftex. You may want to keep glider, gravity, and other panel related textures.
A list of these:

Now importing our own textures.
Right click the textures section like you did models and click import.


You have many options to choose from. I often use .png.


Once you have your texture clicked on you will get this settings box. The only thing you need is to edit the format.

T_BC3_UNORM or T_BC3_SRGB For transparent textures (and second bake map)
T_BC1_UNORM or T_BC1_SRGB For most textures not transparent (also first bake map)
T_BC4_UNORM or T_BC4_SRGB for black and white textures
T_BC5_UNORM or T_BC5_SRGB for normal maps (recommend UNORM, SRGB can be too shiny or weird at times)

(SRGB may have a slightly better color range. Whatever comes out best for you in the previewer)

These ones are often not used for tracks but you can if you want.

TCS_R8_G8_B8_A8_SRGB for very good quality. Should only be used on smaller textures however due to how big these can be. If used too much the game will crash due to size/memory limits!!!)
TC_R5_G5_B5_A1_UNORM (A bit smaller in size than TCS_R8_G8_B8_A8_SRGB)
T_BC2_UNORM or T_BC2_SRGB is slightly smaller than BC3 and supports transparency.

Size reference! Higher can risk crashes!


For saving bake maps


Set mipmap amount to 0.

Now that is done our texture is now added!

To apply all you need to do is goto the materials and add it to the selector as note in the materials section.

Creating Normal Maps

Normal Maps give off a bumpy less flat look to your texture. These are used in most modern games due to how reliable and useful these can be.

The BEST possible way to make these is ideally 3D modeling a high poly to a low poly model. Another way is a texture to a normal map which can still look alot nicer however 3D modeling can give specific details not in the texture itself.

Normal Maps - High to Low Poly

Text Based Version:

So lets try this out.


So far I got a fully 3D modeled fence and then a very low poly 3D cube that is around the shape of the original model.

Go ahead and UV unwrap your low poly model in edit mode (by going into it with "Tab") with "U" to unwrap.

Now change the renderer from blender to cycles.


Then we need to allign our models to be in the same spot.


Now open the UV editor. Create a new image with Image - New Image


Now add the texture to the model. To do this simply go to materials tab with a sphere on it.

Then click "New".

In the color option set it to an image texture and select your texture.


Now lastly goto the render tab with a camera on it.


  • Bake type -Normal
  • Space -Tangent.
  • Select to Active - On
Now Ray Distance is a bit interesting. This value controls the lighting for what is being captured for your normal map. I often use 1 however if you get any artifacts like this then try 0.01 and go higher or experiment with random ones.

Select your high poly model first then your low poly model.

Press the "Bake" option. It should output a normal map!


How it came out (shown in crazy bump)


Came out pretty good.You can always experiment with ray values or even in crazy bump to edit certain things or even use an image editor if any artifacts or issues exist.

In Game with some minor tweaks:


There is also this site online that can create these

Photoshop can be used as it has a 3D viewer depending on the version, and can generate these easily.

Another video on baking high to low poly models for normal maps.

Creating Secular Maps

Specular maps are the shininess of an object. These are controlled in a gray scale manor where white is shiny and black has no shine. Generally the best way to achieve this is to use the main diffuse and lower the contrast for more rough less shiny objects and lower the brightness a bit and the opposite for metalic objects.

Now I'm going to create some to set a good example of how I do these myself.

First open your texture in photoshop or similar.


Now if your texture is low on detail do not worry.

Go here and pick a texture for you to use for detail. You can grab up to 15 free textures a day with an account created.

Resize your base/lowres texture to something around 512x512 or higher

I will be getting a wood texture. Copy your texture and paste in into photshop as another layer (should paste it automatically as another one)


Now you need to add a "Multiply" effect. This will overlay the detailed texture and may darken it a bit.


You can change the opacity and all that too if you don't want it to be too noticable.

Of course you can always edit the brightness and make it brighter too if you want to use it as the main texture however for this we just need to make it black and white.

Right click the layers and flatten image.



Set the slider of the saturation all the way down.


Now we need to darken it a bit with curves.



Now setting this depends on material. Less shiny things like wood needs to be fairly dark, while metal should be grayish.


I moved the curve a bit low so it is nearly black but not too much.

Now lastly goto


Select "Use Legacy"


Turn up the contrast a bit till you start to see some details. The better the detailed texture, the better it'll come out. The black areas

Now mine didn't come out all too good. Here is a better one


Small scratches and detail shows up better.

In Game:


Here are some great videos on this map.

Creating Emission Maps
These control glow in your texture, generally anything black has no glow, and any other color will glow.

Also can be known as Emissive Maps, you can simply remove anything in your diffuse map that you don't want to glow and have it black.

A video on these:

Part 6 KCL - Collision editing
Mario Kart 8 has collision done with a KCL file. This is basically a simplified model that has materials for specific properties such as boost panels or glider spots. These also can have invisible walls to prevent out of bounds or shortcuts if you're that cruel.

For this you can use this tool.


Part 7 BYAML (Map Object Placement, Checkpoints, AI paths, and more)
A BYAML file is pretty much like a KMP file in MKWII or MK7. It controls checkpoints, respawn points from Latiku after falling, enemy/AI paths, map objects, and alot more.

A list of things the BYAML can do can be found here.

Now to start you need to use an original byaml from a course.

Then get these 2 things:
Ray Koopa's byaml plugin for blender

To install read this

So now that is all done we need to open our byaml. In blender goto file - import - .byaml.

A bunch of objects will import. To remove all of these, simply CTRL + A and press the delete key or press X.

Now you want to import your track. So get this and install it.

Goto file - import - bfres and select the bfres you saved in Wexos Toolbox.

A track needs two things to work properly.
- A start position/spawn
-A skybox

Object Placement

you can easily add these with CTRL + A and in the Mario Kart 8 section select "Obj"


This will spawn in an item box. We need to change this. Goto the objects tab like this


And in the Mario Kart 8 section there an area for the obj type. Click on the search box and type in "Start"


This will be our spawn point. You can then move it around to where you need the spawn to be.

Add another object like before.

Now to add a skybox. Type in "VR" in the search box.


These are all the skybox choices. We currently cannot add any however so if you want to edit these you will need to replace them from inside mapobj folder in your mk8 dump.

Now for objects you really should just experiment a bunch and see what works well. You can spawn Thwomps (Called Dossun) , enemies, coIns, itemboxes and many other things.

More info here

Saving Byaml From Blender

I suggest saving your byaml frequently incase the program crashes. This is very simple.

File - Export - MK8 Course Info .byaml and save as course_muunt.byaml

Lap Count, Headlights, and more

These are pretty simple to edit. Go in the scenes tab


and under Mario Kart 8 set scene type to course if it isn't already.

You can edit lap count, headlights and many more.

More info here

Underwater Sections

These require quite a few things to work.
-In the bfres, A model/plane for the water with ef_waterF material or similar.
-A waterbox map obj
-Area effects

So i assume you already did the plane part for water.

Now lets add a waterbox. This can be optained as any other object with ctrl+w and adding a mario kart object. Then search for "WaterBox" and select it.


Now you will not be able to see it so goto the object data tab and change the display to image.


This box will be where the player goes into the water. It will create water effects like splashes.

Effect Areas
These are pretty simple. CTRL + W in edit mode and obj - effect area

Effect areas simply give off effects like confetti or leaves. Can be editing in blender with Ray's tool


Currently this is done by the FX ID. I suggest looking at other courses with Effect Areas enabled and looking at the FX ID.


As noted on github
  • FX: The index of the visual effect to play inside this area, like falling confetti or leafs. It differs between each course. Is the same index like the Global FX parameter in the scene properties. 0 is no effect.
  • Params: Unclear what these specify.


These are a bit interesting as they can do a bunch of things that affect game play or objects.


As noted on github
  • Type: Control what the area is used for. Not all types are known yet.
  • Pull: Moves objects along the PullPath linked to this area, like racers along a stream of water, when being inside this area.
  • Roam: Used for only a few Objs (like the hot air balloon) to move around randomly in the region. Requires those Objs to have this Area linked in their relations.
  • Shape: Defines the form of the Area, spherical areas where introduced with Big Blue and are only used twice there.
  • Params: Unclear what these specify.
  • Camera Areas: Trigger the replay cameras by index when watching the highlight reel. Edit support is missing at the moment.
Sound Objects

These control sound effects having a radius on how far the player can hear them.


As noted on github

  • Sound Index: The index of the sound effect (in the BARS file?) to play. The sound gets louder as racers approach the center of the object, it gets quieter the larger the spherical distance is.
  • Param 2: Unknown meaning, always -1 in the original files.
  • 1P / 2P / 3/4P / WiFi 1P / WiFi 2P: This is the list of game modes in which the sound will play (blue) or not (gray). Hold Shift to toggle the state of one mode without affecting the others. This is done to be in sync with hidden Objs (like cheering toads being gone, as seen in Royal Raceway 2 player WiFi mode).
  • 1P: Single player offline modes (unsure). Introduced with the DLC courses, but can be applied to other courses too.
  • 2P: Two player offline modes.
  • 3/4P: Three or four player offline modes.
  • WiFi 1P: Single player online modes.
  • WiFi 2P: Two player online modes.
SoundSW in lap paths may be able to link with index's however i haven't found any tracks that have this set to anything other than -1.

Clip / ClipArea / ClipPattern
These control culling of a track set by lap paths. When you goto a certain lap path, an area may cull away to save on resources and prevent lag.

The way these work is currently unknown and may not work with custom models.

Part 8 BGENV - Environment effects such as Fog, Day, Night, ect
Although the main files cannot be edited, we can easily swap them around!

The course.bgenv controls most of the lighting effects. I will list a few courses and what effects can be done with them.

For some courses you need to also use the same skybox to get the right effects like for night or day time

Gu_FirstCircuit - Great effect for early morning, not too bright outside.
Gu_BowserCastle - Fog is alot less noticeable with this one
G64_KinopioHighway - Good for night time courses
Gwii_MooMooMeadows - Good for sunset courses

Part 9 Testing the track (Cemu and Wii U)
If you have a PC good enough, I highly suggest using cemu for testing as it is very fast and easy to boot and test out the track. This doesn't have a specific set, just replace existing files in your dump.

Wii U users use SD cafiine using this guide:

Porting Tracks (Please read if you plan on porting any previous Mario Kart Tracks)
This is a list of what I suggest doing when porting tracks from each game. Of course you can always go the extra mile and remake the track from scratch as I'm doing with Wario Colosseum but for those who aren't too familiar with that and want to reuse the originals then I will go over the best way to do so!

Mario Kart Double Dash!!!!
This game can be a bit tricky. The most common method is bmd viewer but that lacks vertex colors and for those who don't know what those do, they make up alot of the neat effects like this with and then without.

Models Resource also lacks them.

Getting files

So first you need to extract your dump of MKDD. Simply use dolphin to extract by right clicking the game in the gamelist, then properties. Goto "Fileystem" then right click and extract the files.

The tracks are in arc files which can simple be extracted with Wexos Toolbox or every file explorer.

Importing Models

So the best way to import the models is with this tool. Drag the bmd course file over to the exe and you'll get the model and textures.

Then goahead and open your dae file in 3ds max or another modeling program.


Go ahead and save it as a max file. Vertex colors may not appear but don't worry, they should still be there. continue to the section in Part 3 that explains the second bake map to make these a texture.

Mario Kart Wii

These are quite simple and yes you can do the same for custom tracks of this game.

Getting files

So first you need to extract your dump of MKWII. Simply use dolphin to extract by right clicking the game in the gamelist, then properties. Goto "Fileystem" then right click and extract the files.
Custom tracks can be also ported if you get them from the wiki, however ask permission of the authors of the map to port it.

The files are in szs format which can easily be opened in brawlbox or similar and can then be exported as a dae which can be imported into max.

I'll cover more later. DD mainly has specific requirements out of them all, the rest often work fine by other means. MK7 with Every File Explorer, Mario Kart GP with Smash Forge, ect.

Are you going to create CTGP for MK8?
Nope. If i think anyone should make it should be whoever can manage to add extra stage slots with memory edits but that's my opinion, anyone can if they want. We also have quite a lack of tracks atm to have such a pack. Not even a cup worth.

My mod crashes from the course_model.szs
-Make sure it is Yaz0 compressed
-Check errors in wexos toolbox with Edit-Check
-Make sure you are only using materials from one stage used as a base! Any other ones will crash
-Make sure you have everything with materials
-Only use a few TCS_R8_G8_B8_A8_SRGB textures. Any more can crash! If you really need to add more try lowering the resolution of the texture. BC1 or BC3 is also best for most transparent textures due to smaller size!

My mod crashes from the KCL (collision)
-Make sure your kcl is under 25,000 polys/verts.

My mod crashes from the byaml
-try to re-extract it from yaml conv. If it breaks then you may be using a bad build.
-Make sure for lap paths there is no clip ID. It has to be set to ClipNum="-1"
-Enemy paths must loop
-Enemy paths must not intersect in the same group
-lap paths must not intersect in the same group
-lap paths must loop
-Removing certain things in the byaml with yaml conv can break stuff. Be careful with that

Will Mario Kart 8 Deluxe be moddable?
-The file formats are fairly similar, KCL is already editable and BYAML is getting there too so i can imagine it will once the bfres format is fully rebuilt and the switch is fully hacked.

Will you make a video on this?
-I spend weeks putting this together so i'll wait and see if track making starts to take interest. I'd see no reason to make one if this doesn't get much interest in the scene. Anyone else is welcome to make one and help me out as it also would just be a ton of work to do.

Do these work online?
-Yes they do aslong as the other player has the same track. If this is not the case then you'll likely just be disconnected like Smash 4 does. There is no risk of being banned due to this being client side and only being your client.

-Wexos Toolbox

Ray Koopa & Syroot
-io_scene_mk8muunt (byaml editor)
-io_scene_bfres (bfres importer for blender)
-Info doc on stage and collision types.

-KCL editor.

-Initial importing tools


-Made tutorial

-Testing stuff and helping me with some research for tutorial.

-Made Logo

Mario Kart 8 Custom Track Check List:
Currently we can edit:
Bake Maps ✔
Everything in course_mouunt byaml (using yaml conv) ✔
course_mapcamera (Wexos Toolbox) ✔
course_maptexture (Wexos Toolbox) ✔
bfwav files inside bars files (Wexos Toolbox) ✔

My upcoming path tool has
Checkpoints/Lap Paths ✔
Enemy Paths✔
Item Paths ✔
Glider Paths ✔
Gravity Paths ✔
Obj Path ✔
Normal Paths ✔
Intro Camera ✔
GCameraPath ✔
ReplayCamera ✔
Jugem Path (Same as obj path but i'm not sure how it works?)

Rays Tool can edit these options

No programs at all to edit:
Animations (texture, bone, ect) ✘
course.bglpbd (AAMP) ✘
Every AAMP inside course.bgenv ✘
Clip / ClipArea / ClipPattern ✘

  • Shorten tutorial more. This mainly has alot of detail in it so a video may be easier to shorten.
  • Revamp byaml tutorial if someone makes a easy to use tool for paths
  • Add more track previews.
  • Create video tutorial
Last edited by KillzXGaming,


Well-Known Member
Jan 2, 2016
United States
I plan on making a quick 5 or so minute video on the whole process of importing with blender this weekend or next week.
Will go over
-Importing Model
-importing textures
-Creating Collision
-Baking shadows
-Baking vertex colors
-Material editing
-Testing with Cemu & Wii U
-BGENV swaps

Everything will be fairly basic but should get the point across and show how simple a track can be made.

Modeling will be gone over in another video with more detail, and possibly byaml stuff (though i still might wait for an editor for that)
Last edited by KillzXGaming,


Well-Known Member
Jan 2, 2016
United States
I'm just not too good at this kind of stuff and I only have luck in getting errors, but great job on this anyways
Well hopefully it'll be easier overtime. It's still in it's early stages and has alot to improve, sadly i don't think there is enough interest though for it to progress in it's current state for now atleast.

I was planning on doing a video tutorial on this but i think i'll wait till we eventually get a proper path editor as i just don't see anyone making any tracks by doing such annoying tedious method.


GBAtemp's 3DS fanatic
Aug 24, 2017
The Forest
Well hopefully it'll be easier overtime. It's still in it's early stages and has alot to improve, sadly i don't think there is enough interest though for it to progress in it's current state for now atleast.

I was planning on doing a video tutorial on this but i think i'll wait till we eventually get a proper path editor as i just don't see anyone making any tracks by doing such annoying tedious method.
But hey at least I'm good enough to import a black model without textures:D


Well-Known Member
Jan 2, 2016
United States
Alright well i have a few ideas. I am working on a script that will print all path data based on the selected objects. Ideally all you will need to do is create lap paths in blender (I will upload a easy to use lap path premade for people to use) then select them then it will print all data and automatically do any byaml text edits for you.

This will save a massive amount of time and should be easy enough to work with till a byaml editor is created.

I will then make a full video series going over everything, it won't be too much detail like this tutorial but generally to the point and simplified enough to understand.


Well-Known Member
Jan 2, 2016
United States
Just a small update, the path editor should be out this week. Automatically does path data for you based on added paths in blender.


The tool will support every path type, custom objects, will possibly have object properties, and a few other things.

The main thing I'm having difficulty with atm is just a good visual on enemy paths, i need a way to show a line between objects.

Glider path example:


Gif/video in action

Ignore clipping of ramp, glider collision not solid.

Need to do a good example of anti gravity but those are super easy to do.
Last edited by KillzXGaming,


Well-Known Member
Jan 2, 2016
United States

Flag edits are working now. So all the progress so far:
  • All formatting/layout done automatically
  • Next/PrevPT IDs automatically are added thanks to AboodXD
  • Group IDs automatically added based on layer used
  • All coordinates are filled out
  • Return points filled based on checkpoint position. Normals/Tangents too thanks to Wexos
  • Flags/Properties of paths editable.

Tools tab has:
  • Selection for specific paths
  • Hiding specific paths
  • Creating paths based on lap paths. So you want to automatically create enemy paths off of the lap path coordinates you can or create gravity paths.

Export tab has
  • Looped paths (normal)
  • Non looped paths for linear tracks like Mount Wario.

  • Object Paths for things like moving cars or item boxes
  • Viewable camera paths
  • Object to represent enemy paths
So everything should be finished hopefully in a few days. I still plan on a full video tutorial for both this and importing a full track.


May 3, 2016
My course model shows black for me too in cemu and it lags a lot (12 fps) . In the previewer runs pretty well with everything in place and the polycount (79000 tris, 23 materials, 61 textures) is under the original courses. Also what is bottlenecking is my GPU, so i dont expect any lag from geometry. I have tested with my bake maps and with yours too so i dont know whats causing it :S

Edit: Solved, i was using materials from different courses so it caused conflicts with the shader file :unsure:

But now the model shows really weird and dark, tried again your bakemaps and still weird...
Last edited by Toadsty!,


Well-Known Member
Jan 2, 2016
United States
My course model shows black for me too in cemu and it lags a lot (12 fps) . In the previewer runs pretty well with everything in place and the polycount (79000 tris, 23 materials, 61 textures) is under the original courses. Also what is bottlenecking is my GPU, so i dont expect any lag from geometry. I have tested with my bake maps and with yours too so i dont know whats causing it :S
If it's black then make sure you have replaced materials from another track and also have the bfsha file from that track.


Well-Known Member
Jan 4, 2015
This is so great.
Tbh I hate replacing things but once it's possible to add extra characters, cars and tracks into new/additional slots instead of replacing them, I'll be the first one to play the shit out of it. =)

You may also like...

General chit-chat
Help Users
  • K3N1 @ K3N1:
    Sounds normal
  • K3N1 @ K3N1:
    I want my torrent refunded it's so bad
  • Shape @ Shape:
    I'm also enjoying rocket league a lot, and of course Mario Kart. But seriously I got her animal crossing and so she made me a really cool hoodie.
  • Shape @ Shape:
    Lightning tiger stripes with my comic's characters and everything. Torrent? Like bittorrent?
  • K3N1 @ K3N1:
    I bought mw2 because it's the only game my hetero friends like to play
  • Shape @ Shape:
    @K3N1 Vanilla nerds do be like that.
  • K3N1 @ K3N1:
    Got it for 50 tho fuck $70
  • Shape @ Shape:
    I prefer classic quake
  • K3N1 @ K3N1:
    The mechs of mw2 really don't feel that bad
  • Shape @ Shape:
    Neither do the mechs of mech warrior 2. Much better game.
  • K3N1 @ K3N1:
    People would say different if cod Gundam was a thing
  • Shape @ Shape:
    Omg do you know how much money I would spend if that was a thing? Especially if you get to assemble the gundams somewhat like those old model toy kits. The answer is zero dollars. I would spend zero dollars. It would still be so good, though.
  • K3N1 @ K3N1:
  • Shape @ Shape:
  • x65943 @ x65943:
    I bought 1-2 switch, imagine my pain
  • x65943 @ x65943:
    for full price at launch
  • Shape @ Shape:
    Full price at launch for full exploitability without modchips. Or so I hear.
  • K3N1 @ K3N1:
    You should like buy a 3rd one and ship it to my address
  • x65943 @ x65943:
    No no lads, the game called 1-2 switch
  • x65943 @ x65943:
    Where you feel the controller vibrate and guess how many virtual ice cubes are inside of it
  • K3N1 @ K3N1:
    You should still buy me a switch so I don't have to pay for it
  • The Real Jdbye @ The Real Jdbye:
    best game on the switch amirite
  • The Real Jdbye @ The Real Jdbye:
    i just saw a video yesterday that mentioned how it's a good thing 1-2-switch wasn't a pack in title because it would've made everyone lose faith in the switch immediately and they might have a point
    The Real Jdbye @ The Real Jdbye: i just saw a video yesterday that mentioned how it's a good thing 1-2-switch wasn't a pack in...