1. IntroductionThis tutorial will be guiding you through the steps to learning how to import your own models in Super Smash Bros. Ultimate. This tutorial presumes you are importing over a character due to complexity, but this will work on any standard game model such as items or Assist Trophies as well as Custom Stage models. If you wish to use Blender instead of 3DS max, there is a separate guide for Blender users here.
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 the 3DS Max viewport and other basics. If not, there are plenty of guides out there, such as this one.
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 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.
- 3DS Max (Blender will also work, but this guide is centered on 3DS Max.)
- NUMDLB Import Script
- 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)
- 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 3DS Max. If you do not have 3DS Max, you can create a student trial that lasts three years. It is the safest way to get access to the program for a long duration, as other methods may not be as safe.
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 may want to prioritize using those or even sculpting your own if you have the skills to do so. If you want your model to be compatible with Ultimate Mod Manager, you will need to aim for going under the polygon and vertex count of the original character including all their expressions. You can use ARCropolis for extended polygon limits if this is not a concern.
Once you have your model, launch 3DS Max. It may take a bit, especially for slower computers. Once it does fully open, click on the square "Max" button on the very top left. Then click on the Import button. A window titled "Select File to Import" will pop up. Find your model and import it into the scene. If your model is in a format that is not supported by 3DS Max, search for a script to import it or use the program Noesis to convert it, if supported.
For example purposes, I will be using a generic human character as a test rig. Now you are ready for rescaling, rotating, and moving. If you have blue or green-ish hues with detailed patterns all over them, they are likely to be normal maps, which can be imported later on to give your character more detail. If you don't have these, there are tools to create them and guides online, either from your texture, or from baking the model in a 3D software such as 3DS Max.
Now to the left of 3DS Max, you should see the Scene Explorer. If not, click on Tools at the top left and then click "New Scene Explorer, and drag it to the left or the right depending on your preference.
Select all your custom model/s (you can have more than one) and right click > Collapse All in the scene OR right click > convert > convert to mesh in the scene. If you see bones or anything other than the meshes (your characters model) in the current scene, delete those using the Del key after selecting them, so we can import the Smash Ultimate skeleton of the fighter you are importing over. 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, and then Convert to Mesh/Collapse All as described before.
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, simply drag and drop the
SSBUlt_NUMDLB.msfile onto the window. The script should popup like so:
Click on the big "Import *.NUMDLB" button and it will bring up a window prompting you to select your
model.numdlbfile. Locate it and double-click on it. It may take a while to import, depending on the model size. Reminder you will need all the other files in the costume folder so make sure those are extracted from CrossArc.
Delete all the models/objects of the default Smash character that were just imported into the scene, unless you wish to do something such as a clothing replacement instead of a full import. You can do this by clicking on the individual models in the scene while holding CTRL and press "Del" on the keyboard. Make sure you left your new custom model(s) in.
Do this for every model until the only remaining model or models is your custom one you imported in Max. Now, there should be bones from the Smash character still remaining in the scene, meaning it should have "Trans" as a root bone and your custom model or models beside it on the list:
(Note: several more meshes can be there depending on model.)
Now, move your custom model around and rotate it at proper angles that match up with the bones properly inside of the viewport. E.X 90 degrees, 180 degrees, to match up with the model. Scale it and move it to match the proportions of the original character at least loose enough to use as a base.
You can also scale and repose, and it is heavily recommended to make sure that the character is lying flat on the ground and not at an odd angle. Its also useful to move the model up and down so that the arms and limbs fit properly.
Don't be wary if your model doesn't completely fit, since the next step will go over that.
Vertexing the model, or editing the portions of the model, can help immensely in certain models that don't fit perfectly. The next step explains this since it'll be needed to fit the model to the scale of the bones.
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.
Select your model from the scene. If you have multiple models, select all the models and continue, unless you'd like to separately rig each model which can be useful depending on what you're modding in.
Start off by selecting all of your models, or each by each, and on the right of the screen, there should be a "Modifier List" on the right side. What it is is it allows you to transform your models with certain attributes. Click on the "Modifier List" and scroll down to find "Skin." Select it and click on "Add." You can also start typing it to jump to it down the list.
In the new window that pops up, click on "Select," then "Select All" to highlight the entire skeleton:
Hold the CTRL key and click on Trans and Rot to deselect them, as they may cause issues while rigging. Anything else that is not a bone, deselect it.
For any bones that you do not need to rig onto, for example, Captain Falcon's scarf bones, you can deselect them, as they would be redundant to add. If you're rigging a character who doesn't need them, for example Rayman, deselect root bones for the bones you don't need to rig to and select bones inside of those if needed. For example, if a character has no left arm, you can deselect every bone in the RShoulderN hierarchy. Experiment to see what works for your model if you need to do so.
Hit "Select" in the bottom right corner of the window for bone selection.
Now you should see your chosen selected bones here, meaning you did it correctly.
If you are clueless on weighting and rigging in general, there are great tutorials to help you out with bones and rigging. Below is a compilation of key fundamentals when it comes to rigging:
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 Half and Half value for limbs, i.e the Kneecap is 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.
I chose clips from 2 other Brawl tutorials that still apply together to teach you how to vertex the model to fit and also how to make your rig and body work correctly. A big part about rigging is trial and error and thinking about how hard or soft vertices moving should be. Many other tutorials do exist out there, so if you are ever lost or confused by this tutorial in general, looking up more basics on 3DS Max and skinning will help you greatly, including other brawl rigging tutorials with tips and tricks to help you out.
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.
If you do not understand this video tutorial, find other tutorials about rigging and weighting to help you out like I said above, and try different methods to make your models look proper in smash as I also said above, such as the Skin Wrap method (many tutorials exist on this) that parents the original model's rigging and slapping it over yours and using it as a base to work off of.
You can hit the F3 key to go into wireframe mode to see how the bones are lining up with your model. It will help you greatly throughout the rigging process.
Make sure your models all have a skin modifier applied and are rigged properly before exporting and testing. Errors you may get may happen due to some vertices not having any weights, ( you can see which ones specifically by moving around the Hip bone in 3DS max,) dead vertices (solvable with this 30 second video tutorial), or just being too high polygon of a model.
In 3DS Max, select a mesh and go to the Skin Modifier. Under the Advanced Parameters tab, find an option titled "Bone Affect Limit" and set it to 4 to prevent rigging issues. Do this for all of the meshes just in case. Also, underneath it, select "Remove Zero Weights" as well.
Now we want to smooth our normals before exporting. To do this, select each mesh individually, make an "Edit Normals" modifier, and right click on the scene and select "normal". CTRL + A to select all of your model's normals. Hit break, and then hit unify. Finally, toggle "use threshold" in the bottom right part of the screen, set the threshold to 0.001, and hit "selected." Sometimes, a model will be disconnected but still look like it's connected to another model. In order to make sure there's no visible seaming, you'll want to select both at a time before making the edit normals modifier.
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 nearly ready to export the model from our program.
Make sure absolutely that your Skin modifier is on top as seen here. This can be done simply by dragging the skin modifier to the top or your other modifiers to the bottom.
Now we can export the model as
.fbx. Make sure you have these settings in your FBX Export window.
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 .fbx 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 separate 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.
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 Softlock 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.