GameBanana shows no ads to members. Sign up now!
Ads keep us online. Without them, we wouldn't exist. We don't have paywalls or sell mods - we never will. But every month we have large bills and running ads is our only way to cover them. Please consider unblocking us. Thank you from GameBanana <3

How to import custom models + collision (2020)

A Tutorial for Super Mario 3D World

How to import your own custom models!

1. Introduction

This tutorial will cover replacing and adding new models into 3DW.

2. Requirements

This tutorial requires Switch Toolbox and Spotlight. You should preferably also create a duplicate of your 3DW dump, and set Spotlight to use it.

3. Importing display model

Have your model prepared in a common 3D format, such as .obj or .dae, as well as your textures mapped. Exporting an existing model from another game with Switch Toolbox will do this automatically. You should also have the model you plan to use for collision in here as an .obj as well.

In Switch Toolbox, open the duplicated ObjectData folder (File > Open (Folder)). In this example, we'll be replacing EnterCatMarioStepA, the first platform of the first level, with the first platform in 3D Land. You can always check the name of objects in Spotlight. After opening the folder, search for EnterCatMario and select EnterCatMarioStepA, then close the search box. Quadruple click on it and it should expand into multiple files.


The main ones you'll want to worry about for model replacement are the kcl (the one that shares the name with the object) and bfres. The kcl is for collision, while the bfres is the display model. To replace the bfres, double click it to open it. Double click again to expand it. Open the models folder and right click on the model, then select "Replace".

Select your .dae or .obj that you want displayed. In the import settings window that will popup, leave them as-is and hit Ok. On the next one, change the game preset to "SuperMario3DWorld" and select "Use Material". Click on the red box underneath it, download this file, and select it. Make sure "Create Placeholder Textures" is disabled, and hit Save.

You should now see a loading screen for a few seconds as the model is imported, and then it will appear in the viewport. If it doesn't, you may be zoomed too far in or out. Right click the model again, and select "Calculate Tangents/Bitangents". Do the same for "Normals > Recalculate". You will notice that the textures aren't applied, so we'll now add some. Right click on the Textures folder in the bfres. If there are textures inside, select clear. To import them, right click and hit Import. Select all the textures used for your model, as well as these 2, and click Ok on the next dialog. You should now see your textures appear on the model! You're not done yet, though. Double click on InitModel.byml (within the szs) and check if there's anything inside it. If there's not, you're good to go, but if there is, right click on TextureArc and delete it. 

Deleting it tells the game to use the textures inside its own file, rather than another one. Be sure to click the save button after, which will be at the bottom of the box if you double clicked the byml. Stop here and move to Finalizing if you don't want custom collision.

4. Importing collision model

For the collision model, you'll want to double click on the kcl, and it should display in the viewport. Right click it and select Replace, then select your collision .obj. A box will show up that lets you assign materials to the kcl, making different sounds when you walk on them. This is for things such as grass and water, but we won't worry about that in this tutorial. Join the discord server linked at the end for more info about it. Select "Material by meshes", and make sure Game Select is set to 3D World and Platform is Wii U. Pressing Apply in the top left will generate the kcl.

That's all there is to the kcl!

5. Finalizing

Now we need to save the szs. Right click it and select Save. Save it in the duplicated ObjectData folder, as well as whatever folder you use for running mods. When it asks you if you want to compress with Yaz0, make sure you select Yes. Next, open Spotlight and open the level that the object is in. Position the replaced object to the location of your choosing, and save the level in your mods folder. Now, simply start the level, and voila! Your very own custom model.

6. Adding instead of replacing

In many cases, you might want to add objects instead of replacing them. To do this, the steps are largely the same, however you need to rename some files first. Rename the bfres to (insertyournewname).bfres, the kcl to (insertyournewname).kcl (make sure to rename before double clicking it, otherwise renaming will not work), and *Attribute.byml to (insertyournewname)Attribute.byml. Then, simply follow the rest of the guide as normal. When it's time to save, name your szs the same name that you named your bfres and kcl. In Spotlight, duplicate the object you had used to add a new one, and rename the ObjectName, to your own one. You should see the model change, and that's how you know it's worked. In general, you can add as many as you want.

7. Extra Information

For more information, visit The Cat Chat discord server. I and many other people will be there to help you out :)
Sign up to access this!
  • tom avatar
    tom username pic Joined 19y ago
    End Boss Ripe Supporter TBS2 Manager Super Admin
    1,385 points Ranked 22,690th
    72 medals 13 legendary 10 rare
    • Achieved Super Admin clearance Medal icon
    • 10 years a member Medal icon
    • Thanked 500 submitters Medal icon
    • Submitted 200 Blogs Medal icon
    • Submitted 200 Threads Medal icon
    • Submitted 60 Polls Medal icon
    tom avatar
    End Boss
    Thanks for the great tutorial :) I did some minor formatting to some headings for you.
    testing 1234 222
    URL to post:
  • GoldToad avatar
    GoldToad Joined 6mo ago
    901 points Ranked 42,176th
    7 medals 1 rare
    • Returned 1000 times Medal icon
    • Returned 100 times Medal icon
    • 1 post awarded Exemplary Feedback Medal icon
    • One month a member Medal icon
    • Submission featured Medal icon
    • Reached 1,000 Points Medal icon
    This is so much easier than doing it in discord! Thank you!
    URL to post:
  • ARV avatar
    ARV Joined 2mo ago
    104 points Ranked 71,303rd
    oh my god thank you. here there are very few tutorials and finally new one about impoprting models, thanks again
    URL to post:
  • trippixyz avatar
    trippixyz Joined 6mo ago
    422 points Ranked 48,478th
    Yo sick!! Now i can finally start with custom models :)
    URL to post:


Share banner
Image URL
HTML embed code
BB embed code
Markdown embed code


Key Authors


souperman9 avatar
souperman9 Joined 3mo ago
486 points Ranked 47,104th
Sign up to access this!
Sign up to access this!
Sign up to access this!


Sign up to access this!



Difficulty Level



  • Share on Reddit
  • Share on Twitter
  • Share on Facebook
  • 5
  • 1.7k
  • 8
  • 27d
  • 20d

WiPs by Submitter

More Other/Misc Tutorials