1. IntroductionThis tutorial will be guiding you through the steps to learning how to import custom models in Super Smash Bros. Ultimate. This tutorial presumes you are importing over a character due to their complexity, but these methods will work for any standard game model such as items or Assist Trophies.
1.1. Some Notes Before StartingThis tutorial assumes you have an exploitable Switch and are capable of modding the game and know how to install mods.
This tutorial assumes you have experience interacting with Blender and other basics. If not, there are plenty of guides out there to assist you with learning blender. If you are more used to using 3DS Max, there is a separate guide for that.
Please do not release unfinished work as a full mod. Also, do not submit a work in progress for mods you have not started. If you need help with your mods, the recommended option is to ask in the Smash Ultimate Modding Group, but making a help thread is another option.
**Please avoid using Brawl models as they are lower-poly and lower-detail than models from Ultimate. Finding a better model or sculpting your own contributes to the quality of your work!
Credit any content you may have used for your mods when releasing or showcasing. Taking credit for content you did not create from scratch isn't cool or permitted.
- Blender (2.8 or higher)
- Blender Source Tools (do not Unzip. Install with File > Preferences > Add-ons > Install... and make sure to tick the small box)
- StudioSB (in some cases, the later steps using this program will cause errors when exporting. If this bug is still not fixed at the time you are reading this, install this version and make sure to unblock the .7z file)
- Switch Toolbox
3. Choose your CharacterAs of writing this guide, Smash Ultimate modding has not taken off to the point where you can have a unique model on a single slot for every character. A list of characters that support single slot models are the following:
- Bayonetta (if you can make the mesh list match up with numdlb, otherwise custom numdlb is not single slot)
- Cloud (if you can make the mesh list match up with numdlb, otherwise custom numdlb is not single slot)
- Donkey Kong
- Dolly (Terry)
- Ike (if you can make the mesh list match up with numdlb, otherwise custom numdlb is not single slot)
- Corrin (if you can make the mesh list match up with numdlb, otherwise custom numdlb is not single slot)
- Bowser Jr.
- Link (if you can make the mesh list match up with numdlb, otherwise custom numdlb is not single slot)
- Little Mac
- Byleth (if you can make the mesh list match up with numdlb for MALE, otherwise custom numdlb is not single slot, Female can be 100% custom)
- Mario (has shared textures tho)
- Meta Knight
- Nana/Popo (if you can make the mesh list match up with numdlb, otherwise custom numdlb is not single slot
- Piranha Plant (if you can make the mesh list match up with numdlb, otherwise custom numdlb is not single slot)
- Pokemon Trainer (no not the trainers Pokemons)
- Robin (if you can make the mesh list match up with numdlb, otherwise custom numdlb is not single slot)
- Ridley (if you can make the mesh list match up with numdlb, otherwise custom numdlb is not single slot)
- Isabelle (if you can make the mesh list match up with numdlb, otherwise custom numdlb is not single slot)
- Steve (Shared normal map and PRM map)
- szerosuit/Zero Suit Samus
- Wario (if you can make the mesh list match up with numdlb, otherwise custom numdlb is not single slot)
- Wii Fit Trainer (if you can make the mesh list match up with numdlb, otherwise custom numdlb is not single slot)
A numdlb file is the file used for mesh order, names, and which materials are applied to which meshes. To make your model match up you will need to match the exact mesh count, order, and material settings as your original character costume model's list appears in the StudioSB program, which you will learn later on how to use.
Some textures (mainly normal maps and PRM maps) are also shared between slots. If you want to check if a certain file is shared before importing, go in CrossArc and see if the offset is higher than 0x35AD03678. If it is lower, it isn't shared.
4. Setting Everything UpThe most crucial thing you need is Blender. Blender is free, open source, and lightweight in design. It can run on less powerful computers compared to 3DS Max and boasts a large variety of plugins and community support.
If you have never touched Blender or any type of 3D software before, I recommend you go over a beginner guide so you understand how to navigate the program. I would recommend watching at least the start of the Donut Tutorial for blender as it teaches the essentials, and learning weight painting in other guides, as those will be the most crucial skills for imports.
Additionally, many models may not have all the textures you need to make a model look good in Ultimate's engine, or aren't good models on their own.
If you want to learn more about making your own models and textures from scratch, I would recommend following Blender Guru's main tutorial series, those being the Donut, Anvil and Chair tutorials.
After those, practice and seek out as many resources as you can, and I would suggest you try out other software that can make up for what Blender isn't the best at, like Substance Painter for texture creation, or ZBrush for model sculpting. There's a lot to learn, but if you have the passion and patience to learn, you can get there.
For finding a model to use, any type of model that can be rigged and is under around 180k tris (without expressions being counted) will work just fine ingame in 1v1 without lag. You can create your own or use model rips from The Models Resource or elsewhere if you wish.
Some models will be much higher quality than others, so you'll want to prioritize using those if you do not wish to learn how to create your own assets for mods. I still heavily recommend you try to understand the very basics if you just want to import existing models.
For example purposes, I will be using a generic human character as a test rig. Generally, you'll need to have a model that contains PBR textures, namely roughness, metallic, and ambient occlusion, which will be imported later on into the character's PRM texture. If you don't have these, there are tools to create them and guides online via baking/painting the textures in software like Blender or Substance Painter.
Now to the right of Blender, in the default interface, you should see the Scene Explorer. If you can't find it anywhere else or you haven't set up your own interface, reconfigure your UI layout.
If you see bones or anything other than the meshes (your characters model) in the current scene, remove them now. This is so we can import the Smash Ultimate skeleton of the fighter you are importing over without conflicts. Alternatively, if you need to edit the proportions, you could use this existing skeleton to re-proportion the model to more closely fit a character's model.
Your character should be facing in the grid now similar to the screenshot. If they aren't, change the rotation in intervals of 90 to properly lie/center your model in (or on, depending on character) the grid.
Now that we have our model set up, we need to extract and import our character from Smash into the scene. Character models are located in the directory of CrossArc:
fighternamehere should be obvious as to what it implies, but cXX refers to any of the folders that start with the letter 'c.' You should be extracting the whole cXX folder.
To import a Smash Ultimate model into the scene, the first thing you will need to do is download StudioSB if you haven't already and launch it.
This is what the interface should look like by default. Go to File > Open > Folder and select the folder of the costume you wish to replace. c00 is the default costume/look of a character, so we'll be selecting that for the tutorial. I will be using Luigi for the example. Reminder you will need all the other files in the costume folder so make sure those are extracted from CrossArc.
Click on model.numdlb. Your character should pop into the scene in their default pose. Go to File > Export > Scene to File(s). Name your file accordingly and make sure it ends with the .smd format, something like default_luigi.smd will do. You can also use .dae if you want to replace the character's eyes and still have the pupils move. Keep in mind you can keep certain parts of the model in the scene afterwards, so if you were to do something like give luigi glasses, you wouldn't have to remove any meshes from Luigi.
Now, back in blender, you will need to import again similar to last time, but instead import as SMD/DAE.
Delete all the models/objects of the default Smash character that just got imported in the scene, and make sure to keep the bones. If you want to only do something simple like replace a character's clothes, you should still remove the original models from the scene, or only keep the ones you plan to edit. Make sure you leave your new custom model(s) in.
You can also scale and repose, and it is heavily recommended to make sure that the character is lying straight on the ground and not at an odd angle. Its also useful to move the model up and down so that the proportions occupy the same relative space.
Don't be wary if your model doesn't completely fit. Vertexing the model, or editing the portions of the model, can help immensely in certain models that don't fit perfectly.
Before you start on the next step, I highly recommend using Noesis on your models first before rigging or importing. To do this, select your model(s) and go to Export > Export Selected > and set as fbx with the default export setting of scale being "1.0". Then, open noesis and locate the fbx file, right click on it, hit export, set to fbx, and it should export properly. Now delete your original meshes before importing, and import the fbx as usual but with a scale setting being 1.0. Then one by one for each mesh set the rotation of 90 to 0, or back to what it was originally.
5. Rigging the ModelRigging a model is the process of bringing life to a static 3D model. Some of you may know about T-posing or A-posing, which are both commonly used positions for rigging a model. Smash uses T-poses for most of the character models but it varies some depending on the character.
For any bones that you do not need to rig onto, for example, Captain Falcon's scarf bones on a character who has no scarf, you can choose not to rig to them, as they would be redundant to add. If you're rigging a character who doesn't need them, for example Rayman, this principle applies. Experiment to see what works for your model if you need to do so.
If you are clueless on weighting and rigging in general, there are great tutorials to help you out with bones and rigging. Below are two short guides that explain the fundamentals, but there are many more advanced tutorials for Blender 2.8 rigging that go much more in detail for specific types of rigs and rigging.
You will very likely be confused by these tutorials if you don't have a solid grasp of working with Blender already, so I would watch an extended weight painting tutorial like this two part series as to understand if you're new to the software alongside the first level of the donut tutorial I mentioned earlier.
Do not that you don't want to create any bones for rigging your model since you need to use the pre-existent unmodified Ultimate skeleton.
The main principle you want to follow is to understand the fundamentals: Everything is balanced together between the bones, meaning that if you want a smooth stretch you would want a mixed value for limbs, i.e the Kneecap is roughly half rigged to the knee bone and half to the Leg bone. This also means everything has to be rigged to something in order to move.
It is very important to know how to rig and weight so your character has proper structure in-game.
Explaining of the finger bones and hand rigging. Drawn by Y2K.
Make sure your models all are rigged properly and have been weighted before exporting and testing. Errors you may get may happen due to some vertices not having any weights, dead vertices, or in the case of compression failing, just being too high polygon of a model.
You'll also want to select the Weight Tools panel in the toolbar and run Limit Total, which will remove vertex groups with the lowest weights. The default of 4 shouldn't be changed.
Now we want to smooth our normals before exporting. Some models, like swords, might need manually edited normals so they look as sharp as they should be. You might also want to make a seam in a model like in specific clothing pieces.
Now that the rigging process is finally completed (note that this will likely not be your final rig and you will need to make adjustments later on), we are ready to export the model from Blender.
Export as DAE, and in your StudioSB window, go to File > Import > Model and select your newly exported DAE file.
6. Model Importing / StudioSB UsageStudioSB is an application designed to mainly preview and import models. However, it has other functions such as animation viewing. It is regularly updated every so often, so I'd download a new release if you haven't done this in a while or ever.
Open the application and navigate to "File", "Import", then "Model". Locate and select your file to import it. Select import and it should appear alongside the rest of the original characters or objects models which you can remove if needed. If you want to view animations for the sake of testing what the rig looks like, you can do file > import > animation > and locate the extracted animation folder and choose one to your liking.
7. Texture Replacement & Material EditingIn Smash Ultimate, every model requires at least one material to function. Each material has a set of textures assigned to it that can be picked from the character's model folder, and each material uses its own unique set of parameters and flags that decide effects like how bright or dark a texture will appear.
You can use materials that already exist and replace textures that are assigned to them, or you can combine existing textures with new ones, and then set the combined texture to whatever new materials you make, which I will go into more detail on later.
Eye materials, such as EyeL - EyeRL in many characters, use a base texture for the eye itself and then overlay the pupil as a seperate texture by using the 2nd UV layer, which allows the pupil to move independently. You'll want to make sure ExportUVSet1 is set to True in the export options menu under the Mesh Panel if you plan to use the Eye material for your eye mesh, but some characters don't use this method.
Unfortunately, since FBX export is bugged for Blender users of StudioSB, implementing moving eyes won't work unless you use DAE file imports over SMD file imports. DAE is recommended as your model import's export option anyways, so you should be fine if DAE works as it should.
For example, this is Palutena's material list found in the Mesh Panel of StudioSB.
Different materials assign different textures to objects. If you set a model's mesh to metal_palutena_002, it'll use the texture set of .nutexb files starting with metal_palutena_002.
Some materials aren't labelled this way, or were never properly labelled, such as Mario's main body material. If you want to make sure you know what texture file or files a certain material uses, you can go to View > Material Editor > to find your material and then scroll down to find which textures it uses.
You can also edit certain materials to change parameter values or lead to other texture files in external software such as CrossMod with the material editor, or by using Mat Lab which is a command line tool. You can find both of their releases here. The material file for all characters is model.numatb with the World of Light materials being
The Mat Lab editor also allows you to add more materials to an existing material list. This would be most useful if you wanted to give a character "more textures" without sacrificing or losing quality. The easiest way of doing this would for you to:
- Edit any texture from your character (preferably smaller and/or not shared) to be larger in dimensions while keeping the base texture the same, making room for more textures on the side.
- Set up the UV maps on the original and new model to fit to each part of the texture properly.
- Create or copy in a new material for said new object(s) using Mat Lab (you can copy paste materials from anywhere in the game or use them as references), and then assign the combined texture to all your new materials that use it.
Of course, you would also need an added material and bigger texture for this setup to work, and those will naturally be larger in file size. You will need ARCropolis for bigger file size on textures and materials, so I would grab that if you haven't already. Be wary of making textures too big and causing any lag.
Adding certain effects such as transparency still needs research, but some modders have found success in adding transparency effects using Mat Lab to change the ending of a material's base name from
_sort, setting both
BlendFactor2parameters to 2 or 6, and turning
Unk10to 5. If a material already has the
_sortin the Material Editor of StudioSB, it can already handle transparent textures.
When splitting meshes for material purposes, you want to follow a rule of grouping like things.
- Clothes materials should be set to
- Hair/generally transparent objects should be set to
- Skin should be set to
- Metallic objects like a sword or a shield should be set to a
metal_material, but is not always the case as seen in the image above.
- Eyes should be set to the
EyeRmaterials for each respective eye model.
I would split up whatever meshes you have based on this rule. Keep in mind that the red channel of the PRM map should be completely red on the proper parts of a skin texture to emulate sub-surface scattering.
For replacing the textures of whatever material/materials you use, I've made a separate tutorial that should go into proper detail on replacing the existing character's texture maps. You can find it here.
8. PBR & Normal MapsAll characters make usage of Normal (nor) maps and Parameter (prm) maps which you will need to bake, generate, or design custom textures for. PRM maps are essentially a collection of PBR textures packaged into one image. If you don't know what PBR is, PBR stands for Physically based rendering, which is a technique Smash and many other modern games use to emulate realistic surface properties and ambient lighting. Each color channel represents a different texture:
|R||Metalness/Subsurface Scattering for Skin|
A simplified explanation of this is essentially that, the higher a color value for a certain spot the more extreme the effect. If the metal channel for instance is set to be 100% red, it will look very metallic ingame.
If you are using a skin material for all your skin meshes as you should be doing based on the rules earlier, the material is set up so that the red channel is used for subsurface scattering which is an effect to make the skin look less flat or muddy and more accurate to the surface of a skin in real life. The material usually controls how tan or dark skin will look ingame and will generally use a very pale base texture.
You will also need to make a texture for when your character is getting inked. The way smash handles the ink effect is based on a blend map, which is included in the blue color channel of the normal map. There are many ways of going about this, but generally you will need to bake this type of texture to emulate ink maps that already exist in the game.
This is an example of a blend map which is used for the effect (also present in the Metal, Gold, and Ditto transitioning effects):
The blue channel of normal maps will generally look similar to this with the darker spots being inked later and the brightest (or deepest blue) spots being inked earlier. I would also make sure to have the eyes completely black in the blend map since in the base game the eyes never get inked for all characters.
Setting up proper PBR textures is very important to making the model look great ingame and I highly suggest you take the time to implement these effects if you have the skillset to do so. Also, the alpha channel/transparency on the normal map textures are used for rim lighting effects (cavity map.)
9.1. Game Soft-lock or CrashYou might have broken something along the way with your textures. To diagnose a crash, remove the textures first to see if it's your model or not. If your model caused the crash, there is a chance you have corrupted your model across the way. Try using a clean rip of your character's model to import over and export again. Alternatively, if this doesn't work, uninstall and reinstall with a backup data.arc in UMM.
9.2. Model appears as a Yellow Checkerboard IngameThere is a missing vertex attribute on your mesh or meshes which basically means you forgot to export with something important that the game couldn't find.
It could be anything, but common culprits are ExportMap1 and ExportColorSet1 for most regular models. For stage imports, it's usually Bake1.
If you can't seem to figure out what you're missing, I would reference whatever Export Options are labelled on the original material's models. For example, if you are using skin_palutena_001, reference the export options of the original character's meshes that used skin_palutena_001 and try to replicate it for the meshes that use that material on your import.