Prototype system for my game that could be modified to fit your gameplay.
Making the move
First you’ve gotta write a function for the move so you can easily create similar attacks.
Properties
Each move has 7 basic properties, possibly more based on the game’s core systems like blocking.
-
Damage - Damage noob! what else would it be?
-
Hitstun - How long they will be left vulnerable for combos and such
-
Knockback - The velocity your opponent recieves upon impact.
-
Startup - Winding up of your move, uses long anticipation
-
Active - The part where hitboxes activate and attacks collide
-
Endlag - Animation comes to an end, leaving your character vulnerable to attacks.
Tip: Use the acronym DHKSAE to memorize the 6 basic properties of moves!
Hitboxes
Now that you’ve got that out of the way you need to find out how to hit the move itself.
So basically there’s 2 main types of hitboxes:
Physical attacks are what you’re gonna be using the most often but projectiles are cool too, right? 
I suggest you place the hitboxes while animating so you can see where you are placing them and to keep track of their timing. Then you can weld it to the RootPart of the animation rig or a part already at the same spot so that you can position it correctly in game.
Magnets
Here, there are some though choices to make. You’re going to need pick which magnet your move uses.
btw you always have the option of not using magnets which is often the best choice for most moves!
-
Hard Magnets - The opponent is instantly teleported to the hitbox’s position. Use this carefully as it can be infuriating to be 1 mile away and get struck down by a rev sp1.
-
Soft Magnets - A tug to hitbox’s position. Just a hard magnet but has a pull, delaying it.
-
Drifts - Similar to soft magnets but way more weaker and have way less of the bs aspect.
-
Autohit - Moves that will make the next attack guaranteed to hit. Great for attacks with multiple strikes, such as a flurry of sword slashes!
-
Cutscenes - Cutscenes. Make them look good to reward difficult plays so that the player feels like a badass B)
Put them all together in a function with way too many parameters and you’ve got yourself a move maker! Or you can do something else idk much scripting.
function BasicAttack (Hitbox, Animation, Damage, Hitstun, Knockback, Startup, Active, Endlag, MagnetType, MagnetForce, Autohit)
-- you could make it so that it automatically switch between Hard, Soft, and Drift based on the value if you don't like having too many paraments
end)
For effects you’d need to create another function or multiple that would probably contain parameters such as X Torque or Y Velocity. Try to make as few functions that cover different types of effects like meshs, explosions, beams (underrated, use them!), etc. You get the picture. There are alot but designing for maximum efficiency in the long run will have you thanking yourself later.
A thing I’ve come up with are “Hypercubes”. Honestly it’s a rough idea where there’s a rig with just 1 part attached but that part’s position and orientation relative to it’s RootPart animates other objects in the workspace. Ex: The X vector changes facial expressions, Y vector manipulates sword glow
I’m planning on building a plugin that could easily implement this easily in game systems to make it simple for more expressiveness to happen (not self promoting but sharing an idea)
Move Execution & Hitbox Detection
The next step is finding a way to make the move feel reactive, whilst keeping it fair for both players and removing the power of exploiters.
You can do this by making the move happen first the in client, firing a remote event, executing it in the server, and then comparing the distances between the two to prevent kills from 1 mile away. This also works for cooldowns.
coughs rev sp1 coughs
So on the server’s version of the move executor there are all the technical stuff such as the hitboxes the client has but in addition there should be a max distance parameter added to the move maker function so that each move has a maximum range of effectiveness. Maybe you could even just remove the character animation for the server so there’s less lag?
make sure some attacks have high range preferably without much magnet so that extremely laggy people can at least hit moves and stand a chance against the 0 ping tryhards who live right under roblox headquarters.
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
The server should pass on effects and such to other clients so that they can also see the coolness of your attacks.
Conclusion
Anyways that’s about all. Projectiles aren’t really that bad but might be too much to cover one reply.
Thank you for attending my Ted Talk, this was probably a bit too much than what you asked for but it should help you in designing algorithms for your game. C:
side note: take time to make the gameplay is good. planning out a core feature wrong could have disastrous consequences. movement is important btw.
uwu