4.2.2
Hello everyone,
I am making a 3D game like Smash Bros but with the ability to add your own custom characters and stages rather than being limited to only the characters and stages the makers of the game give you,
But what I need help figuring out is, I tried Googling the answer before like “Godot how to add custom characters”, but they gave the answers to other problems that were similar and not exactly what I wanted, like they were about adding decorations on a pre-made character and not importing a character from nothing at all, which is what I want.
Could anyone please help me figure out how to code a system of adding custom characters and levels from nothing at all, rather than using pre-made characters, so that way the choices aren’t limited to specific designs for no logical reason?
Thank you all in advance 
You could use godot’s powerful node system to create a character creator. The character creator could assign nodes with different functions. The different functions have to be premade, but it would make it easy for users to create characters.
Ofc we don’t know the entire situation and no one is going to write the code for you.
That’s okay with me that no one is going to write the code for me, I just wanted general pointers, cause I know that would be like asking my peers to paint my work for me in an art class rather than doing any effort myself.
Do you think I should Google “godot how to create a character creator”?
If yes, I meant in my first post the help/tutorials given by other people were something like “how to make a system where you add hair or pants accessories to a character, but the character itself you can’t change”, which I don’t want, but instead a system where you make the character from nothing at all, like you can customize all the details and not just only the hair or only the pants.
Do you think though, I should just read the character creation system tutorials with the limitations and then I can expand on them to do it without limitations, using the same ideas they give me (like how to load a scene from a path and so on)?
My first idea is my best guess at how you could do it.
And it’s a great one, but it doesn’t give me any concerete directions, which is why I wanted a referral to a tutorial that does give me more particular details.
I do know that I can Google “Godot how to make characters with the node system” or something to that effect, so I should get something more concrete from my own research. Thank you for the pointers though!
Okay, I found this one for 2D characters:
You will have to break down the problem into smaller parts; figure out the exact scope you want and how players will interact with the system.
Control from “nothing at all” means your player will have to 3D model and code. Are you sure you want players to need to know blender and a programming language? If so then you need to figure out importing models, probably in GLTF format. You need to figure out loading scripts at runtime, and putting these two together (more on that at the end).
I hope with this project you’ll find that many limiting design descisions are made for very logical reasons haha!
The good news is that Godot’s pack format is extensible, much like modding other games you can give users a Godot version, they can make a export pck or zip for it, and Godot will happily load it with ProjectSettings.load_resource_pack("a user mod.pck")
.
Now getting these pack files is a little bit trickier since you have to access the player’s file system, "user://"
paths could work, though I prefer to make a “mods” folder next to the game executable and read through that. You can find the executable’s location on a player computer with OS.get_executable_path()
, though this kind of fails when debugging as the executable will be your “godot.exe”, not the game, so test with exported builds.
Once you have the directory you want to read use DirAccess to iterate through the directory looking for packs and/or zips. You will have to change your character and level loaders to do the same, using DirAccess to search for characters and levels instead of load
/preload
since you will not know how many of or what the name/path of these new characters are.
Maybe brush up on the history of M.U.G.E.N a 2D fighting game engine that supports custom characters.
1 Like
And it’s working good, and I get from a technical viewpoint having an unlimited/infinite amount of characters is just not doable because of how much memory and processing power that would take up on even the best supercomputers, my point was though not to limit your character amount to an arbitrary number like “10” or “12” like the original Smash Bros did, but be able to add your own characters exactly like how MUGEN you referred to does, just in 3D rather than 2D.
Since you’re doing this in 3D, I strongly recommend this course: Godot 4: Build a Feature-Packed 3D RPG by Bramwell Williams on GameDev TV. He goes over how to create an inventory screen and use inventory slots to customize the look of a character in realtime in a viewport and in the game at the same time. The course is $13, and it’s worth it for that alone. The whole course is great, and I learned a lot. Also, I added in comments in the Q&A section how to implement Gamepad controls throughout the entire thing because I was doing that and wanted to help others who prefer using controllers. (I’m assuming you also want controller support in a fighting game.)
Hi!.
I dont understand your question…
with: add your own custom characters
Do you want to take it like " Spore the game "…
Or just want to instantiate predefined characters ?
It’s already explained in detail above and answered by someone else, but I mean adding your own custom characters MUGEN style (if you are familiar with that game; I know it’s popular), so it’s not about customizing a pre-made character with accesories, but it’s about adding your own character from nothing at all, so you can fully control all the details.
With a simple rig and more than 30 animations in my own game, for only a single character this would be a challenge… and then i am pointing toward rigging the thing…
So i am just wondering how to appoach such a " buillder "… Creating a builder tool for character is one part of the dice. but rigging and animation is the second part…
Or do you want to create a t-pose character (wich would be exportable to i.e. mixamo) to have you animation pre-cooked ?..
And dont get this as critics, i am just curious how you are approaching this, and maybe give some tips/hints and-or any advice… 
No, you’re right 100%. I will just follow the advice the other guys gave me about following the tutorials they linked me.
So my plan is to use the procedure/code to load all the files from a directory using an array method, and then all the animation names will be the same for each player character regardless of how the model looks and therefore they will all have the same amount of animations total, no less or more than each other, to make everything consistent.
I don’t want a limited amount of characters, but just the ability to add your own characters for the users, just like in the MUGEN game I am referencing just in 3D rather than 2D like that one is.
Fun tip from me…
Draw a character you want to have within godot on paper or paint…
Run this trough → https://hyper3d.ai/
You can download this as mesh…
Import in blender and decimate the vertices, save as a base character…
Import the thing in mixamo,… select the points and get it rigged.
Export the whole thing including character and import it into godot.
now for every alternate “animation”, save only the animation…
–
When opened and cloned the character in godot you will have a single character and animation…
Now import the " other " animation, make it unique, copy the keyframes, and paste it into the existing animation of you base character… and Boom… within no-time you have a fully living character swining you scene ;)…
-R.
1 Like
Awesome advice for a quick character creator. Thank you!
Hi, im actually looking for a similar thing. I want to basically setup the player using vector graphics in the animatiin player, and im wondering if its possible for certain signals to replace images in the animations and therefore create a custom design for the character while only having to create 1 set of animations. Is this what you’re looking for, and if so, did you find a solution?
I didn’t finish it 100% yet, but I am still working on it; you just have to Google “how to make a custom character system godot” or something similar, and look at the appropirate lines of code to sort through a list of items in a folder, how to play sounds and animations, etc, there is no 1 simple answer like anything in coding.