Custom Track Tutorial

From Custom Mario Kart
Jump to: navigation, search


This page contains a brief overview of Custom Track files, a listing of the programs used to create Custom Tracks, and a listing of in-depth tutorials on creating Custom Tracks and related topics. If you plan to create your first custom track, please read each page and topic thoroughly and follow the tutorial steps. If you have any questions, you may post them on the talk page (please sign your posts with --~~~~).

Note that, when creating a custom track, it is important to know what each file you are working with does and how each section of it works. The files are combined together to build a track and even though this tutorial presents each one of them in an order, you will most likely find yourself going back to previous steps of the tutorial to change something in the track. It is common, even for advanced track makers, to run into issues or crashes that they don't know where they are coming from, or even simple stuff that requires a fix, such as a turn that is too tight for vehicles with outer drifting or long straight sections that get too boring in 50cc.

Overview of a Custom Track File

A view of SZS Explorer showing SZS file structure.

Mario Kart Wii uses SZS files to store track data; all of the original tracks can be found and extracted from the game's ISO using a program such as WiiScrubber or Wiimms ISO Tools. You will mainly be working with the following files when creating a custom track.

SZS is an archive format used by Nintendo for many types of data, and is similar to a ZIP or RAR file. Your SZS file will contain all the files needed by your track, including:
This is collision data. This file determines what parts of the level can be driven on, where the walls and boost pads are, and which parts of the level are out of bounds.
This file controls the placement of all objects in a level, including item boxes and other animated objects such as trees, as well as enemy routes, start positions, checkpoints, and intro and replay cameras.
This is the model of the level displayed in-game. It has no solidity of its own, but can be used by programs such as SZS Modifier or Wiimms SZS Tools to generate collision data into a KCL file.
  • map_model.brres
This is the minimap, which is a textureless 3D model that is displayed in-game from a birds-eye viewpoint.
  • vrcorn_model.brres
This is the background of the track, often a 3D model of the sky.

An SZS archive typically contains many other files. The posteffect folder contains data for effects such as fog, glow, bloom and lightning, simulating the natural environment of the world. Objects are usually composed of one or more files, and all associated files must be present for the track to load and the object to function properly, otherwise your level will freeze on load. These files usually include BRRES files. BRRES files usually contain models, textures, "bones" and multiple types of animation. You may also find folders labeled effect and brasd. Effects include water splashes (Pocha), snow and fireworks (Hanabi). The brasd folder contains animations, needed for Goombas (Kuribo), Chain Chomps (Wanwan), flags, cannons and other items. Files can also be imported, exported or deleted from an SZS file as needed.

Required Programs and Files

You will need to download these programs and obtain the original track files to use as a base for your new level.

This program is used to load an SZS file archive and manage the files inside, such as the course and map models. Double clicking on an object inside an SZS archive will open it in an external editor, if available.
  • Model Editor
  • Google SketchUp (Recommended)
  • 3DS Max (Recommended for advanced modellers or for proper texture mapping of Sketchup models)
  • Any other 3D modeler program; usually needs to be used along with Blender or 3DS Max.
  • BRRES Editor
This program is used to view models and convert OBJ-format models (exported with 3D modeling programs) to the BRRES model format used in Mario Kart Wii. It is also used to import and export textures without otherwise altering a model.
This program is originally designed for Brawl, but can edit Mario Kart Wii's BRRES files aswell. You can convert DAE files, which hold a better texture mapping and have more features than OBJ files, to the BRRES model format. This way other features that the BRRES model format supports, like vertex painting and more complex materials, can be converted too.
  • KMP Editor
This program can edit and expand KMP data. It allows you to add or remove extra objects, checkpoints, respawn points, etc.
A tool giving an overview of the whole KMP file and is able to add/delete/move points with a click of the mouse button. For more complex models an imported map model OBJ file can be used to directly calculate the height values.
Both tools convert a KMP file into a text file, which can be edited with any text editor. And both tools use an internal compiler to re-create the KMP.
These command-line tools can perform many tasks and surpasses many of the capabilities of other programs. They allow the creation of compressed SZS files automatically using scripts (batch files) and checking/fixing errors in KMP, KCL and SZS files. It can adjust the minimap automatically and can generate KCL files directly from OBJ imports. It does not, however, possess any model importing or viewing functions (for BRRES files) and does not have any visual form of KMP editing.
  • Track Files
You can base your level on one of Mario Kart Wii's track files, such as beginner_course (Wii Luigi Circuit), castle_course (Wii Mario Circuit) or old_mario_64 (N64 Mario Raceway.) These levels all have fairly easy to understand KMPs. This option is usually preferable, as long as you have access to the original files.
You can also base your track off of another custom track. Rooster Island works well as it can replace almost any track and is based on castle_course's KMP. Fishdom Island is another good choice if you need more complex checkpoints, item routes and enemy routes. Or you can create an SZS file from scratch using CTools or Wiimms SZS Tools. If you create the SZS from scratch you will need to import some of the files from another Nintendo or custom track into your SZS. Some dedicated CT creators have managed to create their own glitch-free KCL or KMP files, such as the KCL at Sunset Ridge.


These are helpful programs that can enhance your track.

  • Image Editor
Photoshop, GIMP, and Paint.NET are just a few examples. Since they are free, GIMP and are recommended; is much faster and lighter while GIMP is slower but more powerful.
This program is the predecessor of CTools. It can be used for editing things that CTools currently cannot. It is also better for certain tasks that CTools can handle, such as creating minimaps and editing KCL data, as both of these features in CTools have problems that will produce glitches in-game. Unlike CTools, SZS Modifier cannot expand files to make them larger than the originals.
A Hex Editor is included with CTools, but this technique is for experienced hackers or experimental purposes only. Some files, such as post-effects and animation files, cannot be edited with the current suite of programs. Hex Editing is the only option is cases like these, and can lead to greater understanding of these files.


If you're going to create a Texture Hack you need to follow the Texturing tutorial. Otherwise you should begin with the Modeling with 3D Editor tutorial.

Basic Tutorials

These tutorials cover all the normal procedures for making a Custom Track.

How to import textures to and export textures from BRRES model files. Useful information even if you aren't creating a texture hack.
How to make your track with a model editor, map the textures to follow the road (optional but recommended), and convert it to a BRRES model that Mario Kart Wii can load.
How to create an optimized collision model, assign properties such as boosts, walls, and off road to surfaces in your level and generate a KCL file.
How to create a minimap for your level. A minimap not only helps players by showing their location on the track, it is needed as a guide to place objects in your level.
  • How to texture and change other models (sky dome, item boxes, etc.) in your level.
  • How to import objects from other levels.
How to set up objects, routes, checkpoints and many other important things. Expanding KMP files is also covered in this tutorial.
How to set up intro and replay cameras in your level for a professional look.
How to change data for effects such as fog, glow, bloom and lightning of the world.

Miscellaneous/Advanced Tutorials

These tutorials cover additional topics.

How to create a KCL using Wiimms SZS Tools.
How to convert music into the BRSTM format used by Mario Kart Wii and many other Nintendo games.
How to create a custom battle arena.
How to Port 3D levels from other games such as Mario Kart 64, Mario Kart Double Dash!!, or Super Mario 64.
How to make your track with MS Paint and import into a BRRES file. (OBSOLETE AND NOT RECOMMENDED.)
How to remake a MS Paint level in SketchUp using an image, while maintaining the original scale and position of the track.

Testing and Bug-Fixing Tutorials

In all phases of the development it is important to test the track. This is especially true before releasing the new track:

Testing check list.
Create an OBJ file and import by a 3D tool to make a visual review of your track.

These pages cover various glitches and errors that may occur in your course.

Scale your track, if it is too small or too large.
Problems with transparent textures.
How to fix various problems with checkpoints.
Slow frame rates can make a fun level a dread to play.
If your viewpoint when playing gets stuck under your level, this tutorial is for you.
A little discussion about often found KCL glitches.
A way to skip a large portion of a course by a glitch or skipping the first checkpoint.
When two overlapping polygons/faces "fight" to be seen, which causes flickering in-game.
A visual artifact caused by small repeated textures.