Question regarding Custom Movesets...

AnontheMarten

Newbie
Aug 11, 2025
1
0
80
Pronouns
He/Him
I wanted to try and get like a complete package for Mario 64 where all the different kinds of movesets like with Sonic, Pizza Tower, Celeste, Odyssey Rebirth, etc. But I noticed when I activated some of them others would be disabled or character specific, likely due to how code is rewriting Mario 64 interactions. But I was wondering; is it possible to apply certain movesets to specific characters? Like having the Sonic Rebooted moveset applied to other Sonic skins, the Pizza Tower mod applied to Peppino or someone like Wario, having the Celeste moveset apply to another character and the Odyssey moveset apply to another, all at the same time? Or is that just way too much?
 
In character select mods, I have seen that characters can have custom movesets, like the DK Bananza or Sonic Mods. Once I learn how CS mods and custom movesets work together, I'll get back to you.
Don't double post! Use that edit button! Post automatically merged:

Good news! It is very possible to potentially port movesets and mods into characters! However, it is a fairly long process and its applications I know of are fairly limited. I'll tell you the steps I took to add a moveset to my character.

1. You need to have a moveset mod to port over. My moveset I used was a singular .lua file. I don't yet know how more complex movesets port, but I believe it can be done.
2. COPY the moveset file, and PASTE it into the CS mod's file, likely near that CS file's main.lua.
3. You need to have all the functions in the mod be declared functions. What I mean is instead of writing
hook_event(HOOK_MARIO_UPDATE, function(m) end)
you need to write
function mario_update(m) end
hook_event(HOOK_MARIO_UPDATE, mario_update)
4. The organization of your mod's commands is pretty important, so to prevent it from colliding with other mods and staying organized. We'll use a table to wrap all the functions. Put cs_func = {} at the top of the moveset mod.
5. All of your functions need to bfe a part of the cs_func table. To do so, you'll need to rename your functions as follows.
function cs_func.mario_update(m)
tip! Don't use just mario_update, since that could collide with other mods! I recommend putting two letters preceding the function names, such as cs_func.mm_mario_update(m) if you were making Mega Man.
6. Make sure to stuff return cs_func at the BOTTOM of the moveset lua. That way, the CS mod's main file can read it.
7. You can now head over to the CS Mod's main.lua file. Further edits will be done there.
8. Near the top of the main.lua, you'll need to reference the script/scripts your moveset entails. To reference a script, you'll type
cs_func = require("modname") where "modname" is the name of the lua. If Its buried in a file, type
cs_func = require("foldername/modname") where "foldername" is, well, you get the idea.
9. You will NEED your custom character to be declared as a variable. Thankfully, this is already done if the script works. You just need to migrate it to open space. The script you want will look something like this.
Code:
CT_MM = _G.charSelect.character_add("Mega Man",
  {"X-Tremely Cool"},
  "MysteryAuthor",
  {r = 0, g = 0, b = 255},
  E_MODEL_MEGA_MAN,
  CT_TOAD,
  TEX_MEGA_MAN_CUSTOM_LIFE_ICON)
10. Now its time to start migrating your scripts to the main.lua file. There are two different cases. For most moveset mods, there are custom actions, and normal hooks. Go to the bottom of the main.lua file. You may want to have the moveset file open to see the scripts and custom actions.
11. To migrate a normal hook, such as HOOK_MARIO_UPDATE, here is the syntax.
[CODE]_G.charSelect.character_hook_moveset(CT_MM, HOOK_MARIO_UPDATE, cs_func.mm_mario_update)[/CODE]
Remember, CT_MM is the character's variable, cs_func is how we retrieve the action, and mm_mario_update is Mega Man's (or your custom character's) function.
12. To migrate a custom action, such as ACT_WALL_CLIMB, here is the syntax.
Code:
hook_mario_action(ACT_WALL_CLIMB, cs_func.mm_wall_climb)
This does not reference the character's variable, such as CT_MM because all it needs to know is what the action does, not who needs it.

If all goes well, then your character of choice should now have a custom moveset! I do not know how converting UI, Assets, or other more complex behaviors goes, but this is what I know for now. Please reach out to me or other mod devs if you have any questions.

I'm not sure if it is possible in the scripting to simply detect if they are using a certain CS character. If it is, I would love to know of that method.

Sorry if this crushed your hope of seeing that. You may have to enjoy the characters separately if they aren't already bundled with a moveset.

Have a nice day :D

- SkyCaster09
 
Last edited:

Users who are viewing this thread